]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/ribbon/ribbondemo.cpp
Added continuation bullet style for supporting multiple paragraphs in a list item
[wxWidgets.git] / samples / ribbon / ribbondemo.cpp
index ffd13589ef1751f28c7160ec8e499efde627690c..4473602d2f388591b41c50110904e174587c5e97 100644 (file)
@@ -24,6 +24,7 @@
 #include "wx/ribbon/toolbar.h"
 #include "wx/sizer.h"
 #include "wx/menu.h"
+#include "wx/msgdlg.h"
 #include "wx/dcbuffer.h"
 #include "wx/colordlg.h"
 #include "wx/artprov.h"
@@ -81,7 +82,10 @@ public:
         ID_UI_CHECK_UPDATED,
         ID_CHANGE_TEXT1,
         ID_CHANGE_TEXT2,
-        ID_UI_CHANGE_TEXT_UPDATED
+        ID_UI_CHANGE_TEXT_UPDATED,
+        ID_REMOVE_PAGE,
+        ID_HIDE_PAGES,
+        ID_SHOW_PAGES
     };
 
     void OnEnableUpdateUI(wxUpdateUIEvent& evt);
@@ -126,7 +130,9 @@ public:
     void OnPositionLeftIcons(wxCommandEvent& evt);
     void OnPositionLeftBoth(wxCommandEvent& evt);
     void OnPositionLeftDropdown(wxRibbonToolBarEvent& evt);
-
+    void OnRemovePage(wxRibbonButtonBarEvent& evt);
+    void OnHidePages(wxRibbonButtonBarEvent& evt);
+    void OnShowPages(wxRibbonButtonBarEvent& evt);
     void OnTogglePanels(wxCommandEvent& evt);
 
     void OnExtButton(wxRibbonPanelEvent& evt);
@@ -225,6 +231,9 @@ EVT_MENU(ID_POSITION_TOP_ICONS, MyFrame::OnPositionTopIcons)
 EVT_MENU(ID_POSITION_TOP_BOTH, MyFrame::OnPositionTopBoth)
 EVT_TOGGLEBUTTON(ID_TOGGLE_PANELS, MyFrame::OnTogglePanels)
 EVT_RIBBONPANEL_EXTBUTTON_ACTIVATED(wxID_ANY, MyFrame::OnExtButton)
+EVT_RIBBONBUTTONBAR_CLICKED(ID_REMOVE_PAGE, MyFrame::OnRemovePage)
+EVT_RIBBONBUTTONBAR_CLICKED(ID_HIDE_PAGES, MyFrame::OnHidePages)
+EVT_RIBBONBUTTONBAR_CLICKED(ID_SHOW_PAGES, MyFrame::OnShowPages)
 END_EVENT_TABLE()
 
 #include "align_center.xpm"
@@ -385,7 +394,14 @@ MyFrame::MyFrame()
         bar->AddButton(ID_UI_CHANGE_TEXT_UPDATED, wxT("Zero"), ribbon_xpm);
     }
     new wxRibbonPage(m_ribbon, wxID_ANY, wxT("Empty Page"), empty_xpm);
-    new wxRibbonPage(m_ribbon, wxID_ANY, wxT("Another Page"), empty_xpm);
+    {
+        wxRibbonPage* page = new wxRibbonPage(m_ribbon, wxID_ANY, wxT("Another Page"), empty_xpm);
+        wxRibbonPanel *panel = new wxRibbonPanel(page, wxID_ANY, wxT("Page manipulation"), ribbon_xpm);
+        wxRibbonButtonBar *bar = new wxRibbonButtonBar(panel, wxID_ANY);
+        bar->AddButton(ID_REMOVE_PAGE, wxT("Remove"), wxArtProvider::GetBitmap(wxART_DELETE, wxART_OTHER, wxSize(24, 24)));
+        bar->AddButton(ID_HIDE_PAGES, wxT("Hide Pages"), ribbon_xpm);
+        bar->AddButton(ID_SHOW_PAGES, wxT("Show Pages"), ribbon_xpm);
+    }
 
     m_ribbon->Realize();
 
@@ -966,3 +982,29 @@ void MyFrame::SetArtProvider(wxRibbonArtProvider *prov)
     m_ribbon->Thaw();
     GetSizer()->Layout();
 }
+
+void MyFrame::OnRemovePage(wxRibbonButtonBarEvent& WXUNUSED(evt))
+{
+    size_t n = m_ribbon->GetPageCount();
+    if(n > 0)
+    {
+        m_ribbon->DeletePage(n-1);
+        m_ribbon->Realize();
+    }
+}
+
+void MyFrame::OnHidePages(wxRibbonButtonBarEvent& WXUNUSED(evt))
+{
+    m_ribbon->HidePage(1);
+    m_ribbon->HidePage(2);
+    m_ribbon->HidePage(3);
+    m_ribbon->Realize();
+}
+
+void MyFrame::OnShowPages(wxRibbonButtonBarEvent& WXUNUSED(evt))
+{
+    m_ribbon->ShowPage(1);
+    m_ribbon->ShowPage(2);
+    m_ribbon->ShowPage(3);
+    m_ribbon->Realize();
+}