void TBWidgetListener::InvokeWidgetFocusChanged(TBWidget *widget, bool focused) { TBLinkListOf<TBWidgetListenerGlobalLink>::Iterator global_i = g_listeners.IterateForward(); TBLinkListOf<TBWidgetListener>::Iterator local_i = widget->m_listeners.IterateForward(); while (TBWidgetListener *listener = local_i.GetAndStep()) listener->OnWidgetFocusChanged(widget, focused); while (TBWidgetListenerGlobalLink *link = global_i.GetAndStep()) static_cast<TBWidgetListener*>(link)->OnWidgetFocusChanged(widget, focused); }
void TBWidgetListener::InvokeWidgetRemove(TBWidget *parent, TBWidget *child) { TBLinkListOf<TBWidgetListenerGlobalLink>::Iterator global_i = g_listeners.IterateForward(); TBLinkListOf<TBWidgetListener>::Iterator local_i = parent->m_listeners.IterateForward(); while (TBWidgetListener *listener = local_i.GetAndStep()) listener->OnWidgetRemove(parent, child); while (TBWidgetListenerGlobalLink *link = global_i.GetAndStep()) static_cast<TBWidgetListener*>(link)->OnWidgetRemove(parent, child); }
bool TBWidgetListener::InvokeWidgetInvokeEvent(TBWidget *widget, const TBWidgetEvent &ev) { bool handled = false; TBLinkListOf<TBWidgetListenerGlobalLink>::Iterator global_i = g_listeners.IterateForward(); TBLinkListOf<TBWidgetListener>::Iterator local_i = widget->m_listeners.IterateForward(); while (TBWidgetListener *listener = local_i.GetAndStep()) handled |= listener->OnWidgetInvokeEvent(widget, ev); while (TBWidgetListenerGlobalLink *link = global_i.GetAndStep()) handled |= static_cast<TBWidgetListener*>(link)->OnWidgetInvokeEvent(widget, ev); return handled; }
void TBWidgetsAnimationManager::AbortAnimations(TBWidget *widget, TB_TYPE_ID type_id) { TBLinkListOf<TBWidgetAnimationObject>::Iterator iter = widget_animations.IterateForward(); while (TBWidgetAnimationObject *wao = iter.GetAndStep()) { if (wao->m_widget == widget) { // Skip this animation if we asked for a specific (and // different) animation type. if (type_id != nullptr && !wao->IsOfTypeId(type_id)) continue; // Abort the animation. This will both autoremove itself // and delete it, so no need to do it here. TBAnimationManager::AbortAnimation(wao, true); } } }