bool ScrollContainerWindow::OnEvent(const TBWidgetEvent &ev) { if (ev.type == EVENT_TYPE_CLICK) { if (ev.target->GetID() == TBIDC("add img")) { TBButton *button = TBSafeCast<TBButton>(ev.target); TBSkinImage *skin_image = new TBSkinImage; skin_image->SetSkinBg(TBIDC("Icon16")); button->GetContentRoot()->AddChild(skin_image, WIDGET_Z_BOTTOM); return true; } else if (ev.target->GetID() == TBIDC("new buttons")) { for(int i = 0; i < ev.target->data.GetInt(); i++) { TBStr str; str.SetFormatted("Remove %d", i); TBButton *button = new TBButton; button->SetID(TBIDC("remove button")); button->SetText(str); ev.target->GetParent()->AddChild(button); } return true; } else if (ev.target->GetID() == TBIDC("new buttons delayed")) { for(int i = 0; i < ev.target->data.GetInt(); i++) { TBMessageData *data = new TBMessageData(); data->id1 = ev.target->GetParent()->GetID(); data->v1.SetInt(i); PostMessageDelayed(TBIDC("new button"), data, 100 + i * 500); } return true; } else if (ev.target->GetID() == TBIDC("remove button")) { ev.target->GetParent()->RemoveChild(ev.target); delete ev.target; return true; } else if (ev.target->GetID() == TBIDC("showpopupmenu1")) { if (TBMenuWindow *menu = new TBMenuWindow(ev.target, TBIDC("popupmenu1"))) menu->Show(&popup_menu_source, TBPopupAlignment()); return true; } else if (ev.target->GetID() == TBIDC("popupmenu1")) { TBStr str; str.SetFormatted("Menu event received!\nref_id: %d", (int)ev.ref_id); TBMessageWindow *msg_win = new TBMessageWindow(this, TBIDC("popup_dialog")); msg_win->Show("Info", str); return true; } } return DemoWindow::OnEvent(ev); }
void ScrollContainerWindow::OnMessageReceived(TBMessage *msg) { if (msg->message == TBIDC("new button") && msg->data) { if (TBWidget *target = GetWidgetByID(msg->data->id1)) { TBStr str; str.SetFormatted("Remove %d", msg->data->v1.GetInt()); TBButton *button = new TBButton; button->SetID(TBIDC("remove button")); button->SetText(str); target->AddChild(button); } } }
ResourceEditor::ResourceEditor(Context* context, const String& fullpath, UITabContainer *container): Object(context), fullpath_(fullpath), container_(container), editorTabLayout_(0), rootContentWidget_(0), button_(0), modified_(false) { String filename = GetFileNameAndExtension(fullpath_); editorTabLayout_ = new EditorTabLayout(); editorTabLayout_->SetID(TBIDC("tab")); button_ = new UIButton(context_); button_->SetText(filename.CString()); button_->SetSqueezable(true); button_->SetSkinBg("TBButton.flat"); button_->SetValue(1); editorTabLayout_->AddChild(button_->GetInternalWidget()); TBButton* closebutton = new TBButton(); editorTabLayout_->AddChild(closebutton); closebutton->SetSkinBg(TBIDC("TBWindow.close")); closebutton->SetIsFocusable(false); closebutton->SetID(TBIDC("tabclose")); editorTabLayout_->editor_ = this; editorTabLayout_->button_ = (TBButton*) button_->GetInternalWidget(); editorTabLayout_->close_ = closebutton; editorTabLayout_->container_ = (TBTabContainer*) container->GetInternalWidget(); ((TBTabContainer*)container_->GetInternalWidget())->GetTabLayout()->AddChild(editorTabLayout_); rootContentWidget_ = new UIWidget(context_); rootContentWidget_->SetGravity(UI_GRAVITY_ALL); container_->GetContentRoot()->AddChild(rootContentWidget_); SubscribeToEvent(E_FILECHANGED, HANDLER(ResourceEditor, HandleFileChanged)); }
void SetValue(int value) { button_->SetValue(value); }