LocalFormspecHandler *txt_dst = new LocalFormspecHandler("MT_PAUSE_MENU");
create_formspec_menu(cur_formspec, invmgr, gamedef, tsrc, device, fs_src, txt_dst, NULL);
-
+ (*cur_formspec)->setFocus(L"btn_continue");
(*cur_formspec)->doPause = true;
}
m_form_src(fsrc),
m_text_dst(tdst),
m_formspec_version(0),
+ m_focused_element(L""),
m_font(NULL)
#ifdef __ANDROID__
,m_JavaDialogFieldName(L"")
<<std::endl;
}
-
-
void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
{
/* useless to regenerate without a screensize */
mydata.table_dyndata[tablename] = table->getDynamicData();
}
+ //set focus
+ if (!m_focused_element.empty())
+ mydata.focused_fieldname = m_focused_element;
+
//preserve focus
gui::IGUIElement *focused_element = Environment->getFocus();
if (focused_element && focused_element->getParent() == this) {
m_allowclose = value;
}
- void lockSize(bool lock,v2u32 basescreensize=v2u32(0,0)) {
+ void lockSize(bool lock,v2u32 basescreensize=v2u32(0,0))
+ {
m_lock = lock;
m_lockscreensize = basescreensize;
}
void removeChildren();
void setInitialFocus();
+
+ void setFocus(std::wstring elementname)
+ {
+ m_focused_element = elementname;
+ }
+
/*
Remove and re-add (or reposition) stuff
*/
IFormSource *m_form_src;
TextDest *m_text_dst;
unsigned int m_formspec_version;
+ std::wstring m_focused_element;
typedef struct {
bool explicit_size;