- // check if our (may be grand) parent is another panel: if this is
- // the case, they will know what to do with this navigation key and
- // so give them the chance to process it instead of looping inside
- // this panel (normally, the focus will go to the next/previous
- // item after this panel in the parent panel)
- wxWindow *focussed_child_of_p = this;
- for ( wxWindow *p = GetParent(); p; p = p->GetParent() )
- {
- // we don't want to tab into a different dialog or frame
- if ( focussed_child_of_p->IsTopLevel() )
- break;
-
- if ( wxDynamicCast(p, wxPanel) )
- {
- event.SetCurrentFocus( focussed_child_of_p );
- if (p->GetEventHandler()->ProcessEvent( event ))
- return;
- }
- focussed_child_of_p = p;
- }
-
- // no, we are not inside another panel so process this ourself
- node = event.GetDirection() ? GetChildren().GetFirst()
- : GetChildren().GetLast();
-
- continue;
- }
-
- wxWindow *child = node->GetData();