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()
};
GetSizer()->SetSizeHints(this);
m_frame = frame;
- m_border_size->SetValue(frame->GetDockArt()->GetMetric(wxAUI_ART_PANE_BORDER_SIZE));
- m_sash_size->SetValue(frame->GetDockArt()->GetMetric(wxAUI_ART_SASH_SIZE));
- m_caption_size->SetValue(frame->GetDockArt()->GetMetric(wxAUI_ART_CAPTION_SIZE));
+ m_border_size->SetValue(frame->GetDockArt()->GetMetric(wxAUI_DOCKART_PANE_BORDER_SIZE));
+ m_sash_size->SetValue(frame->GetDockArt()->GetMetric(wxAUI_DOCKART_SASH_SIZE));
+ m_caption_size->SetValue(frame->GetDockArt()->GetMetric(wxAUI_DOCKART_CAPTION_SIZE));
UpdateColors();
}
void UpdateColors()
{
- wxColour bk = m_frame->GetDockArt()->GetColor(wxAUI_ART_BACKGROUND_COLOUR);
+ wxColour bk = m_frame->GetDockArt()->GetColor(wxAUI_DOCKART_BACKGROUND_COLOUR);
m_background_color->SetBitmapLabel(CreateColorBitmap(bk));
- wxColour cap = m_frame->GetDockArt()->GetColor(wxAUI_ART_INACTIVE_CAPTION_COLOUR);
+ wxColour cap = m_frame->GetDockArt()->GetColor(wxAUI_DOCKART_INACTIVE_CAPTION_COLOUR);
m_inactive_caption_color->SetBitmapLabel(CreateColorBitmap(cap));
- wxColour capgrad = m_frame->GetDockArt()->GetColor(wxAUI_ART_INACTIVE_CAPTION_GRADIENT_COLOUR);
+ wxColour capgrad = m_frame->GetDockArt()->GetColor(wxAUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR);
m_inactive_caption_gradient_color->SetBitmapLabel(CreateColorBitmap(capgrad));
- wxColour captxt = m_frame->GetDockArt()->GetColor(wxAUI_ART_INACTIVE_CAPTION_TEXT_COLOUR);
+ wxColour captxt = m_frame->GetDockArt()->GetColor(wxAUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR);
m_inactive_caption_text_color->SetBitmapLabel(CreateColorBitmap(captxt));
- wxColour acap = m_frame->GetDockArt()->GetColor(wxAUI_ART_ACTIVE_CAPTION_COLOUR);
+ wxColour acap = m_frame->GetDockArt()->GetColor(wxAUI_DOCKART_ACTIVE_CAPTION_COLOUR);
m_active_caption_color->SetBitmapLabel(CreateColorBitmap(acap));
- wxColour acapgrad = m_frame->GetDockArt()->GetColor(wxAUI_ART_ACTIVE_CAPTION_GRADIENT_COLOUR);
+ wxColour acapgrad = m_frame->GetDockArt()->GetColor(wxAUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR);
m_active_caption_gradient_color->SetBitmapLabel(CreateColorBitmap(acapgrad));
- wxColour acaptxt = m_frame->GetDockArt()->GetColor(wxAUI_ART_ACTIVE_CAPTION_TEXT_COLOUR);
+ wxColour acaptxt = m_frame->GetDockArt()->GetColor(wxAUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR);
m_active_caption_text_color->SetBitmapLabel(CreateColorBitmap(acaptxt));
- wxColour sash = m_frame->GetDockArt()->GetColor(wxAUI_ART_SASH_COLOUR);
+ wxColour sash = m_frame->GetDockArt()->GetColor(wxAUI_DOCKART_SASH_COLOUR);
m_sash_color->SetBitmapLabel(CreateColorBitmap(sash));
- wxColour border = m_frame->GetDockArt()->GetColor(wxAUI_ART_BORDER_COLOUR);
+ wxColour border = m_frame->GetDockArt()->GetColor(wxAUI_DOCKART_BORDER_COLOUR);
m_border_color->SetBitmapLabel(CreateColorBitmap(border));
- wxColour gripper = m_frame->GetDockArt()->GetColor(wxAUI_ART_GRIPPER_COLOUR);
+ wxColour gripper = m_frame->GetDockArt()->GetColor(wxAUI_DOCKART_GRIPPER_COLOUR);
m_gripper_color->SetBitmapLabel(CreateColorBitmap(gripper));
}
void OnPaneBorderSize(wxSpinEvent& event)
{
- m_frame->GetDockArt()->SetMetric(wxAUI_ART_PANE_BORDER_SIZE,
+ m_frame->GetDockArt()->SetMetric(wxAUI_DOCKART_PANE_BORDER_SIZE,
event.GetPosition());
m_frame->DoUpdate();
}
void OnSashSize(wxSpinEvent& event)
{
- m_frame->GetDockArt()->SetMetric(wxAUI_ART_SASH_SIZE,
+ m_frame->GetDockArt()->SetMetric(wxAUI_DOCKART_SASH_SIZE,
event.GetPosition());
m_frame->DoUpdate();
}
void OnCaptionSize(wxSpinEvent& event)
{
- m_frame->GetDockArt()->SetMetric(wxAUI_ART_CAPTION_SIZE,
+ m_frame->GetDockArt()->SetMetric(wxAUI_DOCKART_CAPTION_SIZE,
event.GetPosition());
m_frame->DoUpdate();
}
int var = 0;
switch (event.GetId())
{
- case ID_BackgroundColor: var = wxAUI_ART_BACKGROUND_COLOUR; break;
- case ID_SashColor: var = wxAUI_ART_SASH_COLOUR; break;
- case ID_InactiveCaptionColor: var = wxAUI_ART_INACTIVE_CAPTION_COLOUR; break;
- case ID_InactiveCaptionGradientColor: var = wxAUI_ART_INACTIVE_CAPTION_GRADIENT_COLOUR; break;
- case ID_InactiveCaptionTextColor: var = wxAUI_ART_INACTIVE_CAPTION_TEXT_COLOUR; break;
- case ID_ActiveCaptionColor: var = wxAUI_ART_ACTIVE_CAPTION_COLOUR; break;
- case ID_ActiveCaptionGradientColor: var = wxAUI_ART_ACTIVE_CAPTION_GRADIENT_COLOUR; break;
- case ID_ActiveCaptionTextColor: var = wxAUI_ART_ACTIVE_CAPTION_TEXT_COLOUR; break;
- case ID_BorderColor: var = wxAUI_ART_BORDER_COLOUR; break;
- case ID_GripperColor: var = wxAUI_ART_GRIPPER_COLOUR; break;
+ case ID_BackgroundColor: var = wxAUI_DOCKART_BACKGROUND_COLOUR; break;
+ case ID_SashColor: var = wxAUI_DOCKART_SASH_COLOUR; break;
+ case ID_InactiveCaptionColor: var = wxAUI_DOCKART_INACTIVE_CAPTION_COLOUR; break;
+ case ID_InactiveCaptionGradientColor: var = wxAUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR; break;
+ case ID_InactiveCaptionTextColor: var = wxAUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR; break;
+ case ID_ActiveCaptionColor: var = wxAUI_DOCKART_ACTIVE_CAPTION_COLOUR; break;
+ case ID_ActiveCaptionGradientColor: var = wxAUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR; break;
+ case ID_ActiveCaptionTextColor: var = wxAUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR; break;
+ case ID_BorderColor: var = wxAUI_DOCKART_BORDER_COLOUR; break;
+ case ID_GripperColor: var = wxAUI_DOCKART_GRIPPER_COLOUR; break;
default: return;
}
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")).
case ID_HorizontalGradient: gradient = wxAUI_GRADIENT_HORIZONTAL; break;
}
- m_mgr.GetArtProvider()->SetMetric(wxAUI_ART_GRADIENT_TYPE, gradient);
+ m_mgr.GetArtProvider()->SetMetric(wxAUI_DOCKART_GRADIENT_TYPE, gradient);
m_mgr.Update();
}
{
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();
}
}
switch (event.GetId())
{
case ID_NoGradient:
- event.Check(m_mgr.GetArtProvider()->GetMetric(wxAUI_ART_GRADIENT_TYPE) == wxAUI_GRADIENT_NONE);
+ event.Check(m_mgr.GetArtProvider()->GetMetric(wxAUI_DOCKART_GRADIENT_TYPE) == wxAUI_GRADIENT_NONE);
break;
case ID_VerticalGradient:
- event.Check(m_mgr.GetArtProvider()->GetMetric(wxAUI_ART_GRADIENT_TYPE) == wxAUI_GRADIENT_VERTICAL);
+ event.Check(m_mgr.GetArtProvider()->GetMetric(wxAUI_DOCKART_GRADIENT_TYPE) == wxAUI_GRADIENT_VERTICAL);
break;
case ID_HorizontalGradient:
- event.Check(m_mgr.GetArtProvider()->GetMetric(wxAUI_ART_GRADIENT_TYPE) == wxAUI_GRADIENT_HORIZONTAL);
+ event.Check(m_mgr.GetArtProvider()->GetMetric(wxAUI_DOCKART_GRADIENT_TYPE) == wxAUI_GRADIENT_HORIZONTAL);
break;
case ID_AllowFloating:
event.Check((flags & wxAUI_MGR_ALLOW_FLOATING) != 0);
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") );
"<li>Customizable floating/docking behavior</li>"
"<li>Completely customizable look-and-feel</li>"
"<li>Optional transparent window effects (while dragging or docking)</li>"
+ "<li>Splittable notebook control</li>"
+ "</ul>"
+ "<p><b>What's new in 0.9.3?</b></p>"
+ "<p>wxAUI 0.9.3, which is now bundled with wxWidgets, adds the following features:"
+ "<ul>"
+ "<li>New wxAuiNotebook class, a dynamic splittable notebook control</li>"
+ "<li>New wxAuiMDI* classes, a tab-based MDI and drop-in replacement for classic MDI</li>"
+ "<li>Maximize/Restore buttons implemented</li>"
+ "<li>Better hinting with wxGTK</li>"
+ "<li>Class rename. 'wxAui' is now the standard class prefix for all wxAUI classes</li>"
+ "<li>Lots of bug fixes</li>"
"</ul>"
"<p><b>What's new in 0.9.2?</b></p>"
"<p>The following features/fixes have been added since the last version of wxAUI:</p>"