]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/widgets/widgets.cpp
added support for drop down toolbar buttons (patch 1713470)
[wxWidgets.git] / samples / widgets / widgets.cpp
index 510cdbc6589f8a01aaf52bc97daeb95f5c02865d..f0e31be92493590337621d7c1635c40590e97957 100644 (file)
@@ -30,6 +30,7 @@
     #include "wx/log.h"
     #include "wx/frame.h"
     #include "wx/menu.h"
+    #include "wx/image.h"
 
     #include "wx/button.h"
     #include "wx/checkbox.h"
@@ -458,9 +459,10 @@ WidgetsFrame::WidgetsFrame(const wxString& title)
 void WidgetsFrame::InitBook()
 {
 #if USE_ICONS_IN_BOOK
-    wxImageList *imageList = new wxImageList(32, 32);
+    wxImageList *imageList = new wxImageList(ICON_SIZE, ICON_SIZE);
 
-    imageList->Add(wxBitmap(sample_xpm));
+    wxImage img(sample_xpm);
+    imageList->Add(wxBitmap(img.Scale(ICON_SIZE, ICON_SIZE)));
 #else
     wxImageList *imageList = NULL;
 #endif
@@ -653,12 +655,16 @@ void WidgetsFrame::OnPageChanged(WidgetsBookCtrlEvent& event)
 
     GetMenuBar()->Check(Widgets_BusyCursor, false);
 
-    // lazy creation of the pages
+    // create the pages on demand, otherwise the sample startup is too slow as
+    // it creates hundreds of controls
     WidgetsPage *page = CurrentPage();
     if ( page->GetChildren().empty() )
     {
         wxWindowUpdateLocker noUpdates(page);
         page->CreateContent();
+        //page->Layout();
+        page->GetSizer()->Fit(page);
+
         WidgetsBookCtrl *book = wxStaticCast(page->GetParent(), WidgetsBookCtrl);
         wxSize size;
         for ( size_t i = 0; i < book->GetPageCount(); ++i )
@@ -925,7 +931,7 @@ WidgetsPage::WidgetsPage(WidgetsBookCtrl *book,
                      wxTAB_TRAVERSAL)
 {
 #if USE_ICONS_IN_BOOK
-    imaglist->Add(wxBitmap(icon));
+    imaglist->Add(wxBitmap(wxImage(icon).Scale(ICON_SIZE, ICON_SIZE)));
 #else
     wxUnusedVar(imaglist);
     wxUnusedVar(icon);