bool wxsListbook::OnEnsureChildPreviewVisible(wxsItem* Child) { if ( IsChildPreviewVisible(Child) ) return false; m_CurrentSelection = Child; UpdateCurrentSelection(); return true; }
wxObject* wxsListbook::OnBuildPreview(wxWindow* Parent,long PreviewFlags) { UpdateCurrentSelection(); wxListbook* Listbook = new wxListbook(Parent,-1,Pos(Parent),Size(Parent),Style()); if ( !GetChildCount() && !(PreviewFlags&pfExact) ) { // Adding additional empty notebook to prevent from having zero-sized notebook Listbook->AddPage( new wxPanel(Listbook,-1,wxDefaultPosition,wxSize(50,50)), _("No pages")); } AddChildrenPreview(Listbook,PreviewFlags); for ( int i=0; i<GetChildCount(); i++ ) { wxsItem* Child = GetChild(i); wxsListbookExtra* LBExtra = (wxsListbookExtra*)GetChildExtra(i); wxWindow* ChildPreview = wxDynamicCast(GetChild(i)->GetLastPreview(),wxWindow); if ( !ChildPreview ) continue; bool Selected = (Child == m_CurrentSelection); if ( PreviewFlags & pfExact ) Selected = LBExtra->m_Selected; Listbook->AddPage(ChildPreview,LBExtra->m_Label,Selected); } return Listbook; }
bool wxsChoicebook::OnMouseClick(wxWindow* Preview,int PosX,int PosY) { UpdateCurrentSelection(); if ( GetChildCount()<2 ) return false; int NewIndex = GetChildIndex(m_CurrentSelection)+1; if ( NewIndex >= GetChildCount() ) NewIndex = 0; m_CurrentSelection = GetChild(NewIndex); GetResourceData()->SelectItem(m_CurrentSelection,true); return true; }
void IncrementalSelectListBase::OnKeyDown(wxKeyEvent& event) { int selected = 0, selectedMax = 0; GetCurrentSelection(selected, selectedMax); if (selected == wxNOT_FOUND) selected = 0; // remember previous selection int selectedPrevious = selected; KeyDownAction(event, selected, selectedMax); if (selectedMax < 0) return; UpdateCurrentSelection(selected, selectedPrevious); }
bool wxsListbook::OnMouseClick(wxWindow* Preview,int PosX,int PosY) { UpdateCurrentSelection(); wxListbook* Listbook = (wxListbook*)Preview; // for some reason, HitTest() is public in wxBookCtrlBase but they chose to make it protected in wxListbook... int Hit = ((wxBookCtrlBase*)Listbook)->HitTest(wxPoint(PosX,PosY)); if ( Hit != wxNOT_FOUND ) { wxsItem* OldSel = m_CurrentSelection; m_CurrentSelection = GetChild(Hit); GetResourceData()->SelectItem(m_CurrentSelection,true); return OldSel != m_CurrentSelection; } return false; }
bool wxsListbook::OnIsChildPreviewVisible(wxsItem* Child) { UpdateCurrentSelection(); return Child == m_CurrentSelection; }