bool DemoWindow::OnEvent(const TBWidgetEvent &ev) { if (ev.type == EVENT_TYPE_KEY_DOWN && ev.special_key == TB_KEY_ESC) { // We could call Die() to fade away and die, but click the close button instead. // That way the window has a chance of intercepting the close and f.ex ask if it really should be closed. TBWidgetEvent click_ev(EVENT_TYPE_CLICK); m_close_button.InvokeEvent(click_ev); return true; } return TBWindow::OnEvent(ev); }
bool TBMessageWindow::OnEvent(const TBWidgetEvent &ev) { if (ev.type == EVENT_TYPE_CLICK && ev.target->IsOfType<TBButton>()) { TBWidgetSafePointer this_widget(this); // Invoke the click on the target TBWidgetEvent target_ev(EVENT_TYPE_CLICK); target_ev.ref_id = ev.target->GetID(); InvokeEvent(target_ev); // If target got deleted, close if (this_widget.Get()) Close(); return true; } else if (ev.type == EVENT_TYPE_KEY_DOWN && ev.special_key == TB_KEY_ESC) { TBWidgetEvent click_ev(EVENT_TYPE_CLICK); m_close_button.InvokeEvent(click_ev); return true; } return TBWindow::OnEvent(ev); }