void wxsListbook::OnBuildCreatingCode() { switch ( GetLanguage() ) { case wxsCPP: { AddHeader(_T("<wx/listbook.h>"),GetInfo().ClassName,0); AddHeader(_T("<wx/notebook.h>"),_T("wxNotebookEvent"),0); Codef(_T("%C(%W, %I, %P, %S, %T, %N);\n")); BuildSetupWindowCode(); AddChildrenCode(); for ( int i=0; i<GetChildCount(); i++ ) { wxsListbookExtra* LBExtra = (wxsListbookExtra*)GetChildExtra(i); Codef(_T("%AAddPage(%o, %t, %b);\n"),i,LBExtra->m_Label.wx_str(),LBExtra->m_Selected); } break; } case wxsUnknownLanguage: // fall-through default: { wxsCodeMarks::Unknown(_T("wxsListbook::OnBuildCreatingCode"),GetLanguage()); } } }
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; }
void wxsChoicebook::OnBuildCreatingCode() { switch ( GetLanguage() ) { case wxsCPP: { AddHeader(_T("<wx/choicebk.h>"),GetInfo().ClassName,0); AddHeader(_T("<wx/notebook.h>"),_T("wxNotebookEvent"),0); Codef(_T("%C(%W, %I, %P, %S, %T, %N);\n")); BuildSetupWindowCode(); AddChildrenCode(); for ( int i=0; i<GetChildCount(); i++ ) { wxsChoicebookExtra* Extra = (wxsChoicebookExtra*)GetChildExtra(i); #if wxCHECK_VERSION(2, 9, 0) Codef(_T("%AAddPage(%o, %t, %b);\n"),i,Extra->m_Label.wx_str(),Extra->m_Selected); #else Codef(_T("%AAddPage(%o, %t, %b);\n"),i,Extra->m_Label.c_str(),Extra->m_Selected); #endif } break; } default: { wxsCodeMarks::Unknown(_T("wxsChoicebook::OnBuildCreatingCode"),GetLanguage()); } } }
void wxsListbook::OnAddChildQPP(wxsItem* Child,wxsAdvQPP* QPP) { wxsListbookExtra* LBExtra = (wxsListbookExtra*)GetChildExtra(GetChildIndex(Child)); if ( LBExtra ) { QPP->Register(new wxsListbookParentQP(QPP,LBExtra),_("Listbook")); } }
void wxsChoicebook::OnAddChildQPP(wxsItem* Child,wxsAdvQPP* QPP) { wxsChoicebookExtra* Extra = (wxsChoicebookExtra*)GetChildExtra(GetChildIndex(Child)); if ( Extra ) { QPP->Register(new wxsChoicebookParentQP(QPP,Extra),_("Choicebook")); } }
void wxsGridBagSizer::OnBuildCreatingCode() { OnBuildSizerCreatingCode(); bool UnknownLang = false; int Count = GetChildCount(); for ( int i=0; i<Count; i++ ) { wxsItem* Child = GetChild(i); wxsGridBagSizerExtra* _Extra = (wxsGridBagSizerExtra*)GetChildExtra(i); // Using same parent as we got, sizer is not a parent window Child->BuildCode(GetCoderContext()); switch ( Child->GetType() ) { case wxsTWidget: case wxsTContainer: case wxsTSizer: switch ( GetLanguage() ) { case wxsCPP: { Codef(_T("%AAdd(%o, %s);\n"),i,_Extra->AllParamsCode(GetCoderContext()).wx_str()); break; } case wxsUnknownLanguage: // fall-through default: { UnknownLang = true; } } break; case wxsTSpacer: // Spacer is responsible for adding itself into sizer break; case wxsTTool: // fall-through case wxsTInvalid: // fall-through default: break; } } if ( UnknownLang ) { wxsCodeMarks::Unknown(_T("wxsGridBagSizer::OnBuildCreatingCode"),GetLanguage()); } }
void wxsListbook::UpdateCurrentSelection() { wxsItem* NewCurrentSelection = 0; for ( int i=0; i<GetChildCount(); i++ ) { if ( m_CurrentSelection == GetChild(i) ) return; wxsListbookExtra* LBExtra = (wxsListbookExtra*)GetChildExtra(i); if ( (i==0) || LBExtra->m_Selected ) { NewCurrentSelection = GetChild(i); } } m_CurrentSelection = NewCurrentSelection; }
wxObject* wxsGridBagSizer::OnBuildPreview(wxWindow* Parent,long Flags) { wxWindow* NewParent = Parent; if ( !(Flags & pfExact) ) { NewParent = new wxsSizerPreview(Parent); } wxGridBagSizer* Sizer = OnBuildSizerPreview(NewParent); int Count = GetChildCount(); for ( int i=0; i<Count; i++ ) { wxsItem* Child = GetChild(i); wxsGridBagSizerExtra* _Extra = (wxsGridBagSizerExtra*)GetChildExtra(i); // Reset span in case of wrong values if (_Extra->colspan < 1) _Extra->colspan = 1; if (_Extra->rowspan < 1) _Extra->rowspan = 1; // How many rows / cols ? int nbRows = 0; int nbCols = 0; for (int j = 0 ; j < Count ; j++) { wxsGridBagSizerExtra* ExtraRows = (wxsGridBagSizerExtra*)GetChildExtra(j); if (nbRows < ExtraRows->row + ExtraRows->rowspan) nbRows = ExtraRows->row + ExtraRows->rowspan; if (nbCols < ExtraRows->col + ExtraRows->colspan) nbCols = ExtraRows->col + ExtraRows->colspan; } // Set the position in the sizer in case of wrong values if (_Extra->col < 0 && _Extra->row < 0) { _Extra->col = 0; _Extra->row = nbRows; } if (_Extra->col < 0) _Extra->col = nbCols; if (_Extra->row < 0) _Extra->row = nbRows; // We pass either Parent passed to current BuildPreview function // or pointer to additional parent currently created wxObject* ChildPreview = Child->BuildPreview(NewParent,Flags); if ( !ChildPreview ) continue; wxSizer* ChildAsSizer = wxDynamicCast(ChildPreview,wxSizer); wxWindow* ChildAsWindow = wxDynamicCast(ChildPreview,wxWindow); wxGBSizerItem* ChildAsItem = wxDynamicCast(ChildPreview,wxGBSizerItem); if ( ChildAsSizer ) { Sizer->Add(ChildAsSizer, wxGBPosition(_Extra->row, _Extra->col), wxGBSpan(_Extra->rowspan, _Extra->colspan), wxsSizerFlagsProperty::GetWxFlags(_Extra->Flags), _Extra->Border.GetPixels(Parent)); } else if ( ChildAsWindow ) { Sizer->Add(ChildAsWindow, wxGBPosition(_Extra->row, _Extra->col), wxGBSpan(_Extra->rowspan, _Extra->colspan), wxsSizerFlagsProperty::GetWxFlags(_Extra->Flags), _Extra->Border.GetPixels(Parent)); } else if ( ChildAsItem ) { ChildAsItem->SetProportion(_Extra->Proportion); ChildAsItem->SetFlag(wxsSizerFlagsProperty::GetWxFlags(_Extra->Flags)); ChildAsItem->SetBorder(_Extra->Border.GetPixels(Parent)); ChildAsItem->SetSpan(wxGBSpan(_Extra->rowspan, _Extra->colspan)); ChildAsItem->SetPos(wxGBPosition(_Extra->row, _Extra->col)); Sizer->Add(ChildAsItem); } } if ( !(Flags & pfExact) ) { NewParent->SetSizer(Sizer); if ( !GetChildCount() ) { // Setting custom size for childless sizer to prevent // zero-size items NewParent->SetInitialSize(wxSize(20,20)); NewParent->SetSizeHints(20,20); NewParent->SetSize(wxSize(20,20)); } else { Sizer->Fit(NewParent); Sizer->SetSizeHints(NewParent); } return NewParent; } return Sizer; }