]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/widgets/bmpcombobox.cpp
also scroll vertically if necessary in MoveToItem() when the control is in a non...
[wxWidgets.git] / samples / widgets / bmpcombobox.cpp
index 7f9388545fc37725073aa76ecdeea04298416a90..9c055063afcde606a857341e5bdc7b3a59d9cd77 100644 (file)
@@ -145,7 +145,6 @@ protected:
 
     // helpers for creating bitmaps
     wxBitmap CreateBitmap(const wxColour& colour);
-    wxBitmap CreateRandomBitmap(wxString* pStr);
     wxBitmap LoadBitmap(const wxString& filepath);
     wxBitmap QueryBitmap(wxString* pStr);
 
@@ -553,13 +552,22 @@ void BitmapComboBoxWidgetsPage::OnButtonAddSeveral(wxCommandEvent& WXUNUSED(even
 
 void BitmapComboBoxWidgetsPage::OnButtonAddSeveralWithImages(wxCommandEvent& WXUNUSED(event))
 {
-    int i;
+    static const struct TestEntry
+    {
+        const char *text;
+        unsigned long rgb;
+    } s_entries[] =
+    {
+        { "Red circle",     0x0000ff },
+        { "Blue circle",    0xff0000 },
+        { "Green circle",   0x00ff00 },
+        { "Black circle",   0x000000 },
+    };
 
-    for ( i=0; i<4; i++ )
+    for ( int i = 0; i < WXSIZEOF(s_entries); i++ )
     {
-        wxString s;
-        wxBitmap bmp = CreateRandomBitmap(&s);
-        m_combobox->Append(s, bmp);
+        const TestEntry& e = s_entries[i];
+        m_combobox->Append(e.text, CreateBitmap(wxColour(e.rgb)));
     }
 }
 
@@ -843,33 +851,23 @@ wxBitmap BitmapComboBoxWidgetsPage::QueryBitmap(wxString* pStr)
 
 wxBitmap BitmapComboBoxWidgetsPage::CreateBitmap(const wxColour& colour)
 {
-    int ch = m_combobox->GetBitmapSize().y;
-    int h0 = ch - 5;
-
-    long w = ch;
-    long h = ch;
-
-    if ( w <= 0 )
-        w = h0 - 1;
-    if ( h <= 0 )
-        h = h0;
-    if ( h > ch )
-        h = ch;
+    const int w = 10,
+              h = 10;
 
     wxMemoryDC dc;
-    wxBitmap bmp(w,h);
+    wxBitmap bmp(w, h);
     dc.SelectObject(bmp);
 
     // Draw transparent background
-    wxColour magic(255,0,255);
+    wxColour magic(255, 0, 255);
     wxBrush magicBrush(magic);
     dc.SetBrush(magicBrush);
     dc.SetPen(*wxTRANSPARENT_PEN);
-    dc.DrawRectangle(0,0,bmp.GetWidth(),bmp.GetHeight());
+    dc.DrawRectangle(0, 0, w, h);
 
     // Draw image content
     dc.SetBrush(wxBrush(colour));
-    dc.DrawCircle(h/2,h/2+1,(h/2));
+    dc.DrawCircle(h/2, h/2+1, h/2);
 
     dc.SelectObject(wxNullBitmap);
 
@@ -880,47 +878,4 @@ wxBitmap BitmapComboBoxWidgetsPage::CreateBitmap(const wxColour& colour)
     return bmp;
 }
 
-wxBitmap BitmapComboBoxWidgetsPage::CreateRandomBitmap( wxString* pStr )
-{
-    int i = rand() % 6;
-    const wxChar* str = wxT("");
-    wxBitmap bmp;
-
-    if ( i == 0 )
-    {
-        str = wxT("Red Circle");
-        bmp = CreateBitmap( *wxRED );
-    }
-    else if ( i == 1 )
-    {
-        str = wxT("Green Circle");
-        bmp = CreateBitmap( *wxGREEN );
-    }
-    else if ( i == 2 )
-    {
-        str = wxT("Blue Circle");
-        bmp = CreateBitmap( *wxBLUE );
-    }
-    else if ( i == 3 )
-    {
-        str = wxT("Black Circle");
-        bmp = CreateBitmap( *wxBLACK );
-    }
-    else if ( i == 4 )
-    {
-        str = wxT("Cyan Circle");
-        bmp = CreateBitmap( *wxCYAN );
-    }
-    else if ( i == 5 )
-    {
-        str = wxT("Light Grey Circle");
-        bmp = CreateBitmap( *wxLIGHT_GREY );
-    }
-
-    if ( pStr )
-        *pStr = str;
-
-    return bmp;
-}
-
-#endif //wxUSE_BITMAPCOMBOBOX
+#endif // wxUSE_BITMAPCOMBOBOX