tab_settings.Add(t_("Language")) .Slave(&lng_language) .Slave(&txt_lang_check) .Slave(&b_preview) .Slave(&txt_preview);
ParentCtrl languageCtrl; languageCtrl << lng_language << txt_lang_check << b_preview << txt_preview; tab_settings.Add(languageCtrl.SizePos(), t_("Language"));
tab_settings.Add(lng_language.SizePos(), "lng_language"); tab_settings.Add(txt_lang_check.SizePos(), "txt_lang_check"); tab_settings.Add(b_preview.SizePos(), "b_preview"); tab_settings.Add(txt_preview.SizePos(), "txt_preview");
ParentCtrl languageCtrl; languageCtrl << lng_language.LeftPos(0, 20) << txt_lang_check.LeftPos(22, 20) << b_preview.LeftPos(42, 20) << txt_preview.LeftPos(62, 20); tab_settings.Add(languageCtrl.SizePos(), t_("Language"));
SettingsWindow::SettingsWindow() { m_language = GetCurrentLanguage(); CtrlLayout(*this, t_("Settings")); InitTabs(); b_ok <<= THISBACK(OnClickOK); b_cancel <<= THISBACK(OnClickCancel); } void SettingsWindow::InitTabs() { ParentCtrl languageCtrl; /*languageCtrl.AddChild(&lng_language); languageCtrl.AddChild(&txt_lang_check); languageCtrl.AddChild(&b_preview); languageCtrl.AddChild(&txt_preview); /**/ // did not work as well languageCtrl << lng_language << txt_lang_check << b_preview << txt_preview; /**/ tab_settings.Add(languageCtrl.SizePos(), t_("Language")); txt_preview.Show(false); b_preview <<= THISBACK(OnClickPreview); m_retriever // header -> CtrlRetriever m_retriever (lng_language, m_language) // header -> int m_language ; }
LAYOUT(SettingsLayout, 250, 300) ITEM(TabCtrl, tab_settings, LeftPosZ(0, 250).TopPosZ(0, 300)) ITEM(Button, b_ok, SetLabel(t_("OK")).LeftPosZ(10, 100).BottomPosZ(10, 30)) ITEM(Button, b_cancel, SetLabel(t_("Cancel")).RightPosZ(10, 100).BottomPosZ(10, 30)) ITEM(LNGCtrl, lng_language, LeftPosZ(30, 190).TopPosZ(50, 30)) ITEM(StaticText, txt_lang_check, SetText(t_("Press the preview button.")).SetFont(StdFontZ(11)).LeftPosZ(30, 190).TopPosZ(90, 30)) ITEM(Button, b_preview, SetLabel(t_("Preview")).LeftPosZ(30, 50).TopPosZ(125, 20)) ITEM(StaticText, txt_preview, SetText(t_("English text")).SetAlign(ALIGN_CENTER).SetFont(StdFontZ(16)).SetFrame(ThinInsetFrame()).LeftPosZ(30, 190).TopPosZ(150, 100)) END_LAYOUT
LAYOUT(SettingsLayout, 250, 300) ITEM(TabCtrl, tab_settings, LeftPosZ(0, 250).TopPosZ(0, 300)) END_LAYOUT LAYOUT(languageCtrlLayout, 256, 328) ITEM(Button, b_ok, SetLabel(t_("OK")).LeftPosZ(16, 100).BottomPosZ(22, 30)) ITEM(Button, b_cancel, SetLabel(t_("Cancel")).RightPosZ(16, 100).BottomPosZ(22, 30)) ITEM(LNGCtrl, lng_language, LeftPosZ(36, 190).TopPosZ(18, 30)) ITEM(StaticText, txt_lang_check, SetText(t_("Press the preview button.")).SetFont(StdFontZ(11)).LeftPosZ(36, 190).TopPosZ(58, 30)) ITEM(Button, b_preview, SetLabel(t_("Preview")).LeftPosZ(36, 50).TopPosZ(93, 20)) ITEM(StaticText, txt_preview, SetText(t_("English text")).SetAlign(ALIGN_CENTER).SetFont(StdFontZ(16)).SetFrame(ThinInsetFrame()).LeftPosZ(36, 190).TopPosZ(118, 100)) END_LAYOUT
class SettingsLayout : public .. { ... WithlanguageCtrlLayout<ParentCtrl> languageCtrl; ... };
SettingsWindow::SettingsWindow() { m_language = GetCurrentLanguage(); CtrlLayout(*this, t_("Settings")); CtrlLayout(languageCtrl); // Line Added InitTabs(); languageCtrl.b_ok <<= THISBACK(OnClickOK); // line modified languageCtrl.b_cancel <<= THISBACK(OnClickCancel); // line modified }
void SettingsWindow::InitTabs() { tab_settings.Add(languageCtrl.SizePos(), t_("Language")); languageCtrl.txt_preview.Show(false); languageCtrl.b_preview <<= THISBACK(OnClickPreview); m_retriever // header -> CtrlRetriever m_retriever (languageCtrl.lng_language, m_language) // header -> int m_language ; }