ID_NotebookAllowTabSplit,
ID_NotebookWindowList,
ID_NotebookScrollButtons,
+ ID_NotebookTabFixedWidth,
+ ID_NotebookArtGloss,
+ ID_NotebookArtSimple,
ID_FirstPerspective = ID_CreatePerspective+1000
};
void OnRestorePerspective(wxCommandEvent& evt);
void OnSettings(wxCommandEvent& evt);
void OnAllowNotebookDnD(wxAuiNotebookEvent& evt);
+ void OnNotebookPageClose(wxAuiNotebookEvent& evt);
void OnExit(wxCommandEvent& evt);
void OnAbout(wxCommandEvent& evt);
wxArrayString m_perspectives;
wxMenu* m_perspectives_menu;
long m_notebook_style;
+ long m_notebook_theme;
DECLARE_EVENT_TABLE()
};
EVT_MENU(ID_NoVenetianFade, MyFrame::OnManagerFlag)
EVT_MENU(ID_TransparentDrag, MyFrame::OnManagerFlag)
EVT_MENU(ID_AllowActivePane, MyFrame::OnManagerFlag)
+ EVT_MENU(ID_NotebookTabFixedWidth, MyFrame::OnNotebookFlag)
EVT_MENU(ID_NotebookNoCloseButton, MyFrame::OnNotebookFlag)
EVT_MENU(ID_NotebookCloseButton, MyFrame::OnNotebookFlag)
EVT_MENU(ID_NotebookCloseButtonAll, MyFrame::OnNotebookFlag)
EVT_MENU(ID_NotebookAllowTabSplit, MyFrame::OnNotebookFlag)
EVT_MENU(ID_NotebookScrollButtons, MyFrame::OnNotebookFlag)
EVT_MENU(ID_NotebookWindowList, MyFrame::OnNotebookFlag)
+ EVT_MENU(ID_NotebookArtGloss, MyFrame::OnNotebookFlag)
+ EVT_MENU(ID_NotebookArtSimple, MyFrame::OnNotebookFlag)
EVT_MENU(ID_NoGradient, MyFrame::OnGradient)
EVT_MENU(ID_VerticalGradient, MyFrame::OnGradient)
EVT_MENU(ID_HorizontalGradient, MyFrame::OnGradient)
EVT_MENU(ID_NotebookContent, MyFrame::OnChangeContentPane)
EVT_MENU(wxID_EXIT, MyFrame::OnExit)
EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
+ EVT_UPDATE_UI(ID_NotebookTabFixedWidth, MyFrame::OnUpdateUI)
EVT_UPDATE_UI(ID_NotebookNoCloseButton, MyFrame::OnUpdateUI)
EVT_UPDATE_UI(ID_NotebookCloseButton, MyFrame::OnUpdateUI)
EVT_UPDATE_UI(ID_NotebookCloseButtonAll, MyFrame::OnUpdateUI)
MyFrame::OnRestorePerspective)
EVT_AUI_PANECLOSE(MyFrame::OnPaneClose)
EVT_AUINOTEBOOK_ALLOW_DND(wxID_ANY, MyFrame::OnAllowNotebookDnD)
+ EVT_AUINOTEBOOK_PAGE_CLOSE(wxID_ANY, MyFrame::OnNotebookPageClose)
END_EVENT_TABLE()
// set up default notebook style
m_notebook_style = wxAUI_NB_DEFAULT_STYLE | wxAUI_NB_TAB_EXTERNAL_MOVE | wxNO_BORDER;
-
+ m_notebook_theme = 0;
+
// create menu
wxMenuBar* mb = new wxMenuBar;
view_menu->Append(ID_TextContent, _("Use a Text Control for the Content Pane"));
view_menu->Append(ID_HTMLContent, _("Use an HTML Control for the Content Pane"));
view_menu->Append(ID_TreeContent, _("Use a Tree Control for the Content Pane"));
- view_menu->Append(ID_NotebookContent, _("Use a AUI wxMultiNotebook control for the Content Pane"));
+ view_menu->Append(ID_NotebookContent, _("Use a wxAuiNotebook control for the Content Pane"));
view_menu->Append(ID_SizeReportContent, _("Use a Size Reporter for the Content Pane"));
wxMenu* options_menu = new wxMenu;
options_menu->Append(ID_Settings, _("Settings Pane"));
wxMenu* notebook_menu = new wxMenu;
+ notebook_menu->AppendRadioItem(ID_NotebookArtGloss, _("Glossy Theme (Default)"));
+ notebook_menu->AppendRadioItem(ID_NotebookArtSimple, _("Simple Theme"));
+ notebook_menu->AppendSeparator();
notebook_menu->AppendRadioItem(ID_NotebookNoCloseButton, _("No Close Button"));
notebook_menu->AppendRadioItem(ID_NotebookCloseButton, _("Close Button at Right"));
notebook_menu->AppendRadioItem(ID_NotebookCloseButtonAll, _("Close Button on All Tabs"));
notebook_menu->AppendCheckItem(ID_NotebookAllowTabSplit, _("Allow Notebook Split"));
notebook_menu->AppendCheckItem(ID_NotebookScrollButtons, _("Scroll Buttons Visible"));
notebook_menu->AppendCheckItem(ID_NotebookWindowList, _("Window List Button Visible"));
+ notebook_menu->AppendCheckItem(ID_NotebookTabFixedWidth, _("Fixed-width Tabs"));
m_perspectives_menu = new wxMenu;
m_perspectives_menu->Append(ID_CreatePerspective, _("Create Perspective"));
m_mgr.AddPane(CreateSizeReportCtrl(), wxAuiPaneInfo().
Name(wxT("test2")).Caption(wxT("Client Size Reporter")).
Bottom().Position(1).
- PinButton(true).CloseButton(true).MaximizeButton(true));
+ CloseButton(true).MaximizeButton(true));
m_mgr.AddPane(CreateSizeReportCtrl(), wxAuiPaneInfo().
Name(wxT("test3")).Caption(wxT("Client Size Reporter")).
Bottom().
- PinButton(true).CloseButton(true).MaximizeButton(true));
+ CloseButton(true).MaximizeButton(true));
m_mgr.AddPane(CreateSizeReportCtrl(), wxAuiPaneInfo().
Name(wxT("test4")).Caption(wxT("Pane Caption")).
m_mgr.AddPane(CreateSizeReportCtrl(), wxAuiPaneInfo().
Name(wxT("test6")).Caption(wxT("Client Size Reporter")).
Right().Row(1).
- PinButton(true).CloseButton(true).MaximizeButton(true));
+ CloseButton(true).MaximizeButton(true));
m_mgr.AddPane(CreateSizeReportCtrl(), wxAuiPaneInfo().
Name(wxT("test7")).Caption(wxT("Client Size Reporter")).
Left().Layer(1).
- PinButton(true).CloseButton(true).MaximizeButton(true));
+ CloseButton(true).MaximizeButton(true));
m_mgr.AddPane(CreateTreeCtrl(), wxAuiPaneInfo().
Name(wxT("test8")).Caption(wxT("Tree Pane")).
{
m_notebook_style ^= wxAUI_NB_SCROLL_BUTTONS;
}
-
-
-
+ else if (id == ID_NotebookTabFixedWidth)
+ {
+ m_notebook_style ^= wxAUI_NB_TAB_FIXED_WIDTH;
+ }
+
+
size_t i, count;
wxAuiPaneInfoArray& all_panes = m_mgr.GetAllPanes();
for (i = 0, count = all_panes.GetCount(); i < count; ++i)
{
wxAuiPaneInfo& pane = all_panes.Item(i);
-
if (pane.window->IsKindOf(CLASSINFO(wxAuiNotebook)))
{
- pane.window->SetWindowStyleFlag(m_notebook_style);
- pane.window->Refresh();
+ wxAuiNotebook* nb = (wxAuiNotebook*)pane.window;
+
+ if (id == ID_NotebookArtGloss)
+ {
+ nb->SetArtProvider(new wxAuiDefaultTabArt);
+ m_notebook_theme = 0;
+ }
+ else if (id == ID_NotebookArtSimple)
+ {
+ nb->SetArtProvider(new wxAuiSimpleTabArt);
+ m_notebook_theme = 1;
+ }
+
+
+ nb->SetWindowStyleFlag(m_notebook_style);
+ nb->Refresh();
}
}
case ID_NotebookWindowList:
event.Check((m_notebook_style & wxAUI_NB_WINDOWLIST_BUTTON) != 0);
break;
+ case ID_NotebookTabFixedWidth:
+ event.Check((m_notebook_style & wxAUI_NB_TAB_FIXED_WIDTH) != 0);
+ break;
+ case ID_NotebookArtGloss:
+ event.Check(m_notebook_style == 0);
+ break;
+ case ID_NotebookArtSimple:
+ event.Check(m_notebook_style == 1);
+ break;
+
}
}
m_mgr.LoadPerspective(m_perspectives.Item(evt.GetId() - ID_FirstPerspective));
}
+void MyFrame::OnNotebookPageClose(wxAuiNotebookEvent& evt)
+{
+ wxAuiNotebook* ctrl = (wxAuiNotebook*)evt.GetEventObject();
+ if (ctrl->GetPage(evt.GetSelection())->IsKindOf(CLASSINFO(wxHtmlWindow)))
+ {
+ int res = wxMessageBox(wxT("Are you sure you want to close/hide this notebook page?"),
+ wxT("wxAUI"),
+ wxYES_NO,
+ this);
+ if (res != wxYES)
+ evt.Veto();
+ }
+}
+
void MyFrame::OnAllowNotebookDnD(wxAuiNotebookEvent& evt)
{
// for the purpose of this test application, explicitly
m_mgr.AddPane(CreateSizeReportCtrl(), wxAuiPaneInfo().
Name(wxT("Test")).Caption(wxT("Client Size Reporter")).
Float().FloatingPosition(GetStartPosition()).
- PinButton(true).CloseButton(true).MaximizeButton(true));
+ CloseButton(true).MaximizeButton(true));
m_mgr.Update();
}
wxTreeCtrl* tree = new wxTreeCtrl(this, wxID_ANY,
wxPoint(0,0), wxSize(160,250),
wxTR_DEFAULT_STYLE | wxNO_BORDER);
-
- wxTreeItemId root = tree->AddRoot(wxT("wxAUI Project"));
- wxArrayTreeItemIds items;
-
-
+
wxImageList* imglist = new wxImageList(16, 16, true, 2);
imglist->Add(wxArtProvider::GetBitmap(wxART_FOLDER, wxART_OTHER, wxSize(16,16)));
imglist->Add(wxArtProvider::GetBitmap(wxART_NORMAL_FILE, wxART_OTHER, wxSize(16,16)));
tree->AssignImageList(imglist);
+ wxTreeItemId root = tree->AddRoot(wxT("wxAUI Project"), 0);
+ wxArrayTreeItemIds items;
+
+
+
items.Add(tree->AppendItem(root, wxT("Item 1"), 0));
items.Add(tree->AppendItem(root, wxT("Item 2"), 0));
items.Add(tree->AppendItem(root, wxT("Item 3"), 0));
wxPoint(client_size.x, client_size.y),
wxSize(430,200),
m_notebook_style);
+
+ wxBitmap page_bmp = wxArtProvider::GetBitmap(wxART_NORMAL_FILE, wxART_OTHER, wxSize(16,16));
- ctrl->AddPage(CreateHTMLCtrl(ctrl), wxT("Welcome"));
+ ctrl->AddPage(CreateHTMLCtrl(ctrl), wxT("Welcome to wxAUI") , false, page_bmp);
wxPanel *panel = new wxPanel( ctrl, wxID_ANY );
wxFlexGridSizer *flex = new wxFlexGridSizer( 2 );
wxSP_ARROW_KEYS, 5, 50, 5 ), 0, wxALL|wxALIGN_CENTRE, 5 );
flex->Add( 5,5 ); flex->Add( 5,5 );
panel->SetSizer( flex );
- ctrl->AddPage( panel, wxT("wxPanel") );
+ ctrl->AddPage( panel, wxT("wxPanel"), false, page_bmp );
ctrl->AddPage( new wxTextCtrl( ctrl, wxID_ANY, wxT("Some text"),
- wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxNO_BORDER) , wxT("wxTextCtrl 1") );
+ wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxNO_BORDER) , wxT("wxTextCtrl 1"), false, page_bmp );
ctrl->AddPage( new wxTextCtrl( ctrl, wxID_ANY, wxT("Some more text"),
wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxNO_BORDER) , wxT("wxTextCtrl 2") );
wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxNO_BORDER) , wxT("wxTextCtrl 6") );
ctrl->AddPage( new wxTextCtrl( ctrl, wxID_ANY, wxT("Some more text"),
- wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxNO_BORDER) , wxT("wxTextCtrl 7") );
+ wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxNO_BORDER) , wxT("wxTextCtrl 7 (longer title)") );
ctrl->AddPage( new wxTextCtrl( ctrl, wxID_ANY, wxT("Some more text"),
wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxNO_BORDER) , wxT("wxTextCtrl 8") );