diff --git a/include/wx/univ/checklst.h b/include/wx/univ/checklst.h index 5435127cdc..65e44e34f8 100644 --- a/include/wx/univ/checklst.h +++ b/include/wx/univ/checklst.h @@ -16,6 +16,16 @@ #pragma interface "univchecklst.h" #endif +// ---------------------------------------------------------------------------- +// actions +// ---------------------------------------------------------------------------- + +#define wxACTION_CHECKLISTBOX_TOGGLE _T("toggle") + +// ---------------------------------------------------------------------------- +// wxCheckListBox +// ---------------------------------------------------------------------------- + class WXDLLEXPORT wxCheckListBox : public wxCheckListBoxBase { public: @@ -43,6 +53,11 @@ public: virtual bool IsChecked(size_t item) const; virtual void Check(size_t item, bool check = TRUE); + // and input handling + virtual bool PerformAction(const wxControlAction& action, + long numArg = -1l, + const wxString& strArg = wxEmptyString); + // override all methods which add/delete items to update m_checks array as // well virtual void Delete(int n); @@ -60,6 +75,9 @@ protected: // take them also into account for size calculation virtual wxSize DoGetBestClientSize() const; + // our input handler + virtual wxString GetInputHandlerType() const; + // common part of all ctors void Init(); diff --git a/include/wx/univ/inphand.h b/include/wx/univ/inphand.h index fb5f8c1b7f..b31dbb9ead 100644 --- a/include/wx/univ/inphand.h +++ b/include/wx/univ/inphand.h @@ -21,6 +21,7 @@ #include "wx/univ/renderer.h" // for wxHitTest +class WXDLLEXPORT wxCheckListBox; class WXDLLEXPORT wxListBox; class WXDLLEXPORT wxRenderer; class WXDLLEXPORT wxScrollBar; @@ -33,6 +34,7 @@ class WXDLLEXPORT wxScrollBar; #define wxINP_HANDLER_DEFAULT _T("") #define wxINP_HANDLER_BUTTON _T("button") #define wxINP_HANDLER_CHECKBOX _T("checkbox") +#define wxINP_HANDLER_CHECKLISTBOX _T("checklistbox") #define wxINP_HANDLER_RADIOBTN _T("radiobtn") #define wxINP_HANDLER_SCROLLBAR _T("scrollbar") #define wxINP_HANDLER_LISTBOX _T("listbox") @@ -261,4 +263,20 @@ public: const wxMouseEvent& event); }; +// ---------------------------------------------------------------------------- +// wxStdCheckListBoxHandler +// ---------------------------------------------------------------------------- + +class WXDLLEXPORT wxStdCheckListboxInputHandler : public wxStdListboxInputHandler +{ +public: + wxStdCheckListboxInputHandler(wxInputHandler *inphand); + + virtual bool HandleKey(wxControl *control, + const wxKeyEvent& event, + bool pressed); + virtual bool HandleMouse(wxControl *control, + const wxMouseEvent& event); +}; + #endif // _WX_UNIV_INPHAND_H_ diff --git a/include/wx/univ/renderer.h b/include/wx/univ/renderer.h index ec7066031b..f97edd3dca 100644 --- a/include/wx/univ/renderer.h +++ b/include/wx/univ/renderer.h @@ -149,12 +149,19 @@ public: virtual void DrawScrollCorner(wxDC& dc, const wxRect& rect) = 0; - // draw an item of a wxControlWithItems + // draw an item of a wxListBox virtual void DrawItem(wxDC& dc, const wxString& label, const wxRect& rect, int flags = 0) = 0; + // draw an item of a wxCheckListBox + virtual void DrawCheckItem(wxDC& dc, + const wxString& label, + const wxBitmap& bitmap, + const wxRect& rect, + int flags = 0) = 0; + // draw a checkbutton (bitmap may be invalid to use default one) virtual void DrawCheckButton(wxDC& dc, const wxString& label, @@ -330,6 +337,12 @@ public: const wxRect& rect, int flags = 0) { m_renderer->DrawItem(dc, label, rect, flags); } + virtual void DrawCheckItem(wxDC& dc, + const wxString& label, + const wxBitmap& bitmap, + const wxRect& rect, + int flags = 0) + { m_renderer->DrawCheckItem(dc, label, bitmap, rect, flags); } virtual void DrawCheckButton(wxDC& dc, const wxString& label, const wxBitmap& bitmap, diff --git a/include/wx/univ/setup.h b/include/wx/univ/setup.h index a5f6ecbd45..1032baa1c4 100644 --- a/include/wx/univ/setup.h +++ b/include/wx/univ/setup.h @@ -70,13 +70,13 @@ #define wxUSE_BMPBUTTON 1 #define wxUSE_CARET 0 #define wxUSE_CHECKBOX 1 -#define wxUSE_CHECKLISTBOX 0 +#define wxUSE_CHECKLISTBOX 1 #define wxUSE_CHOICE 0 #define wxUSE_COMBOBOX 0 #define wxUSE_GAUGE 0 #define wxUSE_LISTBOX 1 #define wxUSE_LISTCTRL 0 -#define wxUSE_RADIOBOX 0 +#define wxUSE_RADIOBOX 1 #define wxUSE_RADIOBTN 1 #define wxUSE_SASH 0 #define wxUSE_SCROLLBAR 1 diff --git a/include/wx/univ/window.h b/include/wx/univ/window.h index 18f3629cba..b79d873ff9 100644 --- a/include/wx/univ/window.h +++ b/include/wx/univ/window.h @@ -146,6 +146,10 @@ public: bool UseFgCol() const { return m_hasFgCol; } bool UseFont() const { return m_hasFont; } + // returns the (low level) renderer to use for drawing the control by + // querying the current theme + wxRenderer *GetRenderer() const { return m_renderer; } + // overridden base class methods // ----------------------------- @@ -169,10 +173,6 @@ protected: void OnPaint(wxPaintEvent& event); void OnErase(wxEraseEvent& event); - // returns the (low level) renderer to use for drawing the control by - // querying the current theme - wxRenderer *GetRenderer() const { return m_renderer; } - // draw the control background, return TRUE if done virtual bool DoDrawBackground(wxControlRenderer *renderer); diff --git a/include/wx/wx.h b/include/wx/wx.h index d287d275d7..7b36022cde 100644 --- a/include/wx/wx.h +++ b/include/wx/wx.h @@ -51,6 +51,7 @@ #include "wx/ctrlsub.h" #include "wx/bmpbuttn.h" #include "wx/checkbox.h" +#include "wx/checklst.h" #include "wx/choice.h" #include "wx/scrolbar.h" #include "wx/stattext.h" diff --git a/samples/univ/univ.rc b/samples/univ/univ.rc index e083011fa0..ced0464162 100644 --- a/samples/univ/univ.rc +++ b/samples/univ/univ.rc @@ -1,5 +1,7 @@ #include "wx/msw/wx.rc" +/* bricks BITMAP "bricks.bmp" tip BITMAP "tip.bmp" open BITMAP "open.bmp" +*/ diff --git a/src/univ/checklst.cpp b/src/univ/checklst.cpp index e6c988253e..6570ae46bd 100644 --- a/src/univ/checklst.cpp +++ b/src/univ/checklst.cpp @@ -72,7 +72,9 @@ void wxCheckListBox::Check(size_t item, bool check) wxCHECK_RET( item < m_checks.GetCount(), _T("invalid index in wxCheckListBox::Check") ); - if ( check != m_checks[item] ) + // intermediate var is needed to avoid compiler warning with VC++ + bool isChecked = m_checks[item] != 0; + if ( check != isChecked ) { m_checks[item] = check; @@ -149,4 +151,85 @@ void wxCheckListBox::DoDrawRange(wxControlRenderer *renderer, renderer->DrawCheckItems(this, itemFirst, itemLast); } +// ---------------------------------------------------------------------------- +// actions +// ---------------------------------------------------------------------------- + +wxString wxCheckListBox::GetInputHandlerType() const +{ + return wxINP_HANDLER_CHECKLISTBOX; +} + +bool wxCheckListBox::PerformAction(const wxControlAction& action, + long numArg, + const wxString& strArg) +{ + if ( action == wxACTION_CHECKLISTBOX_TOGGLE ) + { + int sel = (int)numArg; + if ( sel == -1 ) + { + sel = GetSelection(); + } + + if ( sel != -1 ) + { + Check(sel, !IsChecked(sel)); + + SendEvent(sel, wxEVT_COMMAND_CHECKLISTBOX_TOGGLED); + } + } + else + { + return wxListBox::PerformAction(action, numArg, strArg); + } + + return TRUE; +} + +// ---------------------------------------------------------------------------- +// wxStdCheckListboxInputHandler +// ---------------------------------------------------------------------------- + +wxStdCheckListboxInputHandler:: +wxStdCheckListboxInputHandler(wxInputHandler *inphand) + : wxStdListboxInputHandler(inphand) +{ +} + +bool wxStdCheckListboxInputHandler::HandleKey(wxControl *control, + const wxKeyEvent& event, + bool pressed) +{ + if ( pressed && (event.GetKeyCode() == WXK_SPACE) ) + control->PerformAction(wxACTION_CHECKLISTBOX_TOGGLE); + + return wxStdListboxInputHandler::HandleKey(control, event, pressed); +} + +bool wxStdCheckListboxInputHandler::HandleMouse(wxControl *control, + const wxMouseEvent& event) +{ + if ( event.LeftDown() || event.LeftDClick() ) + { + wxCheckListBox *lbox = wxStaticCast(control, wxCheckListBox); + int x, y; + + const wxPoint& pt = event.GetPosition(); + lbox->CalcUnscrolledPosition(pt.x, pt.y, &x, &y); + int item = y / lbox->GetLineHeight(); + if ( x >= 0 && + x < lbox->GetRenderer()->GetCheckBitmapSize().x && + item >= 0 && + item < lbox->GetCount() ) + { + lbox->PerformAction(wxACTION_CHECKLISTBOX_TOGGLE, item); + + return TRUE; + } + } + + return wxStdListboxInputHandler::HandleMouse(control, event); +} + #endif // wxUSE_CHECKLISTBOX diff --git a/src/univ/renderer.cpp b/src/univ/renderer.cpp index 7985c9ddec..1a07ac76d6 100644 --- a/src/univ/renderer.cpp +++ b/src/univ/renderer.cpp @@ -650,10 +650,10 @@ void wxControlRenderer::DoDrawItems(const wxListBox *lbox, if ( checklstbox->IsChecked(n) ) flags |= wxCONTROL_CHECKED; - m_renderer->DrawCheckButton(m_dc, lbox->GetString(n), - wxNullBitmap, - rect, - flags); + m_renderer->DrawCheckItem(m_dc, lbox->GetString(n), + wxNullBitmap, + rect, + flags); } else { diff --git a/src/univ/themes/gtk.cpp b/src/univ/themes/gtk.cpp index 89d804f943..0a51f03724 100644 --- a/src/univ/themes/gtk.cpp +++ b/src/univ/themes/gtk.cpp @@ -109,6 +109,11 @@ public: const wxString& label, const wxRect& rect, int flags = 0); + virtual void DrawCheckItem(wxDC& dc, + const wxString& label, + const wxBitmap& bitmap, + const wxRect& rect, + int flags = 0); virtual void DrawCheckButton(wxDC& dc, const wxString& label, const wxBitmap& bitmap, @@ -431,6 +436,8 @@ wxInputHandler *wxGTKTheme::GetInputHandler(const wxString& control) handler = new wxGTKCheckboxInputHandler(GetDefaultInputHandler()); else if ( control == wxINP_HANDLER_LISTBOX ) handler = new wxStdListboxInputHandler(GetDefaultInputHandler()); + else if ( control == wxINP_HANDLER_CHECKLISTBOX ) + handler = new wxStdCheckListboxInputHandler(GetDefaultInputHandler()); else handler = GetDefaultInputHandler(); @@ -941,6 +948,15 @@ void wxGTKRenderer::DrawItem(wxDC& dc, } } +void wxGTKRenderer::DrawCheckItem(wxDC& dc, + const wxString& label, + const wxBitmap& bitmap, + const wxRect& rect, + int flags) +{ + DrawCheckButton(dc, label, bitmap, rect, flags); +} + // ---------------------------------------------------------------------------- // check/radion buttons // ---------------------------------------------------------------------------- diff --git a/src/univ/themes/win32.cpp b/src/univ/themes/win32.cpp index 6fc6da3eb5..5d85051605 100644 --- a/src/univ/themes/win32.cpp +++ b/src/univ/themes/win32.cpp @@ -126,6 +126,11 @@ public: const wxString& label, const wxRect& rect, int flags = 0); + virtual void DrawCheckItem(wxDC& dc, + const wxString& label, + const wxBitmap& bitmap, + const wxRect& rect, + int flags = 0); virtual void DrawCheckButton(wxDC& dc, const wxString& label, const wxBitmap& bitmap, @@ -345,6 +350,251 @@ private: WX_DECLARE_THEME(win32) }; +// ---------------------------------------------------------------------------- +// standard bitmaps +// ---------------------------------------------------------------------------- + +static char *checked_xpm[] = { +/* columns rows colors chars-per-pixel */ +"13 13 5 1", +"w c white", +"b c black", +"d c #7f7f7f", +"g c #c0c0c0", +"h c #e0e0e0", +/* pixels */ +"ddddddddddddh", +"dbbbbbbbbbbgh", +"dbwwwwwwwwwgh", +"dbwwwwwwwbwgh", +"dbwwwwwwbbwgh", +"dbwbwwwbbbwgh", +"dbwbbwbbbwwgh", +"dbwbbbbbwwwgh", +"dbwwbbbwwwwgh", +"dbwwwbwwwwwgh", +"dbwwwwwwwwwgh", +"dbwwwwwwwwwgh", +"dgggggggggggh", +"hhhhhhhhhhhhh" +}; + +static char *pressed_checked_xpm[] = { +/* columns rows colors chars-per-pixel */ +"13 13 4 1", +"b c black", +"d c #7f7f7f", +"g c #c0c0c0", +"h c #e0e0e0", +/* pixels */ +"ddddddddddddh", +"dbbbbbbbbbbgh", +"dbggggggggggh", +"dbgggggggbggh", +"dbggggggbbggh", +"dbgbgggbbbggh", +"dbgbbgbbbgggh", +"dbgbbbbbggggh", +"dbggbbbgggggh", +"dbgggbggggggh", +"dbggggggggggh", +"dbggggggggggh", +"dgggggggggggh", +"hhhhhhhhhhhhh" +}; + +static char *checked_item_xpm[] = { +/* columns rows colors chars-per-pixel */ +"13 13 3 1", +"w c white", +"b c black", +"d c #808080", +/* pixels */ +"wwwwwwwwwwwww", +"wdddddddddddw", +"wdwwwwwwwwwdw", +"wdwwwwwwwbwdw", +"wdwwwwwwbbwdw", +"wdwbwwwbbbwdw", +"wdwbbwbbbwwdw", +"wdwbbbbbwwwdw", +"wdwwbbbwwwwdw", +"wdwwwbwwwwwdw", +"wdwwwwwwwwwdw", +"wdwwwwwwwwwdw", +"wdddddddddddw", +"wwwwwwwwwwwww" +}; + +static char *unchecked_xpm[] = { +/* columns rows colors chars-per-pixel */ +"13 13 5 1", +"w c white", +"b c black", +"d c #7f7f7f", +"g c #c0c0c0", +"h c #e0e0e0", +/* pixels */ +"ddddddddddddh", +"dbbbbbbbbbbgh", +"dbwwwwwwwwwgh", +"dbwwwwwwwwwgh", +"dbwwwwwwwwwgh", +"dbwwwwwwwwwgh", +"dbwwwwwwwwwgh", +"dbwwwwwwwwwgh", +"dbwwwwwwwwwgh", +"dbwwwwwwwwwgh", +"dbwwwwwwwwwgh", +"dgggggggggggh", +"hhhhhhhhhhhhh" +}; + +static char *pressed_unchecked_xpm[] = { +/* columns rows colors chars-per-pixel */ +"13 13 4 1", +"b c black", +"d c #7f7f7f", +"g c #c0c0c0", +"h c #e0e0e0", +/* pixels */ +"ddddddddddddh", +"dbbbbbbbbbbgh", +"dbggggggggggh", +"dbggggggggggh", +"dbggggggggggh", +"dbggggggggggh", +"dbggggggggggh", +"dbggggggggggh", +"dbggggggggggh", +"dbggggggggggh", +"dbggggggggggh", +"dbggggggggggh", +"hhhhhhhhhhhhh" +}; + +static char *unchecked_item_xpm[] = { +/* columns rows colors chars-per-pixel */ +"13 13 2 1", +"w c white", +"d c #808080", +/* pixels */ +"wwwwwwwwwwwww", +"wdddddddddddw", +"wdwwwwwwwwwdw", +"wdwwwwwwwwwdw", +"wdwwwwwwwwwdw", +"wdwwwwwwwwwdw", +"wdwwwwwwwwwdw", +"wdwwwwwwwwwdw", +"wdwwwwwwwwwdw", +"wdwwwwwwwwwdw", +"wdwwwwwwwwwdw", +"wdwwwwwwwwwdw", +"wdddddddddddw", +"wwwwwwwwwwwww" +}; + +static char *checked_radio_xpm[] = { +/* columns rows colors chars-per-pixel */ +"13 13 6 1", +" c None", +"w c white", +"b c black", +"d c #7f7f7f", +"g c #c0c0c0", +"h c #e0e0e0", +/* pixels */ +" dddd ", +" ddbbbbdd ", +" dbbwwwwbbh ", +" dbwwwwwwgh ", +" dbwwwbbwwwgh", +" dbwwbbbbwwgh", +" dbwwbbbbwwgh", +" dbwwwbbwwwgh", +" dbwwwwwwgh ", +" dggwwwwggh ", +" hhgggghh ", +" hhhh ", +" " +}; + +static char *pressed_checked_radio_xpm[] = { +/* columns rows colors chars-per-pixel */ +"13 13 6 1", +" c None", +"w c white", +"b c black", +"d c #7f7f7f", +"g c #c0c0c0", +"h c #e0e0e0", +/* pixels */ +" dddd ", +" ddbbbbdd ", +" dbbggggbbh ", +" dbgggggggh ", +" dbgggbbggggh", +" dbggbbbbgggh", +" dbggbbbbgggh", +" dbgggbbggggh", +" dbgggggggh ", +" dggggggggh ", +" hhgggghh ", +" hhhh ", +" " +}; + +static char *unchecked_radio_xpm[] = { +/* columns rows colors chars-per-pixel */ +"13 13 6 1", +" c None", +"w c white", +"b c black", +"d c #7f7f7f", +"g c #c0c0c0", +"h c #e0e0e0", +/* pixels */ +" dddd ", +" ddbbbbdd ", +" dbbwwwwbbh ", +" dbwwwwwwgh ", +" dbwwwwwwwwgh", +" dbwwwwwwwwgh", +" dbwwwwwwwwgh", +" dbwwwwwwwwgh", +" dbwwwwwwgh ", +" dggwwwwggh ", +" hhgggghh ", +" hhhh ", +" " +}; + +static char *pressed_unchecked_radio_xpm[] = { +/* columns rows colors chars-per-pixel */ +"13 13 6 1", +" c None", +"w c white", +"b c black", +"d c #7f7f7f", +"g c #c0c0c0", +"h c #e0e0e0", +/* pixels */ +" dddd ", +" ddbbbbdd ", +" dbbggggbbh ", +" dbgggggggh ", +" dbgggggggggh", +" dbgggggggggh", +" dbgggggggggh", +" dbgggggggggh", +" dbgggggggh ", +" dggggggggh ", +" hhgggghh ", +" hhhh ", +" " +}; + // ============================================================================ // implementation // ============================================================================ @@ -396,6 +646,8 @@ wxInputHandler *wxWin32Theme::GetInputHandler(const wxString& control) handler = new wxWin32CheckboxInputHandler(GetDefaultInputHandler()); else if ( control == wxINP_HANDLER_LISTBOX ) handler = new wxStdListboxInputHandler(GetDefaultInputHandler()); + else if ( control == wxINP_HANDLER_CHECKLISTBOX ) + handler = new wxStdCheckListboxInputHandler(GetDefaultInputHandler()); else handler = GetDefaultInputHandler(); @@ -1131,6 +1383,10 @@ void wxWin32Renderer::DrawButtonLabel(wxDC& dc, } } +// ---------------------------------------------------------------------------- +// (check)listbox items +// ---------------------------------------------------------------------------- + void wxWin32Renderer::DrawItem(wxDC& dc, const wxString& label, const wxRect& rect, @@ -1164,206 +1420,38 @@ void wxWin32Renderer::DrawItem(wxDC& dc, } } +void wxWin32Renderer::DrawCheckItem(wxDC& dc, + const wxString& label, + const wxBitmap& bitmap, + const wxRect& rect, + int flags) +{ + wxBitmap bmp; + if ( bitmap.Ok() ) + { + bmp = bitmap; + } + else // use default bitmap + { + bmp = wxBitmap(flags & wxCONTROL_CHECKED ? checked_item_xpm + : unchecked_item_xpm); + } + + dc.DrawBitmap(bmp, rect.x, rect.y + (rect.height - bmp.GetHeight()) / 2, + TRUE /* use mask */); + + wxRect rectLabel = rect; + int bmpWidth = bmp.GetWidth(); + rectLabel.x += bmpWidth; + rectLabel.width -= bmpWidth; + + DrawItem(dc, label, rectLabel, flags); +} + // ---------------------------------------------------------------------------- // check/radio buttons // ---------------------------------------------------------------------------- -static char *checked_xpm[] = { -/* columns rows colors chars-per-pixel */ -"13 13 5 1", -"w c white", -"b c black", -"d c #7f7f7f", -"g c #c0c0c0", -"h c #e0e0e0", -/* pixels */ -"ddddddddddddh", -"dbbbbbbbbbbgh", -"dbwwwwwwwwwgh", -"dbwwwwwwwbwgh", -"dbwwwwwwbbwgh", -"dbwbwwwbbbwgh", -"dbwbbwbbbwwgh", -"dbwbbbbbwwwgh", -"dbwwbbbwwwwgh", -"dbwwwbwwwwwgh", -"dbwwwwwwwwwgh", -"dbwwwwwwwwwgh", -"dgggggggggggh", -"hhhhhhhhhhhhh" -}; - -static char *pressed_checked_xpm[] = { -/* columns rows colors chars-per-pixel */ -"13 13 4 1", -"b c black", -"d c #7f7f7f", -"g c #c0c0c0", -"h c #e0e0e0", -/* pixels */ -"ddddddddddddh", -"dbbbbbbbbbbgh", -"dbggggggggggh", -"dbgggggggbggh", -"dbggggggbbggh", -"dbgbgggbbbggh", -"dbgbbgbbbgggh", -"dbgbbbbbggggh", -"dbggbbbgggggh", -"dbgggbggggggh", -"dbggggggggggh", -"dbggggggggggh", -"dgggggggggggh", -"hhhhhhhhhhhhh" -}; - -static char *unchecked_xpm[] = { -/* columns rows colors chars-per-pixel */ -"13 13 5 1", -"w c white", -"b c black", -"d c #7f7f7f", -"g c #c0c0c0", -"h c #e0e0e0", -/* pixels */ -"ddddddddddddh", -"dbbbbbbbbbbgh", -"dbwwwwwwwwwgh", -"dbwwwwwwwwwgh", -"dbwwwwwwwwwgh", -"dbwwwwwwwwwgh", -"dbwwwwwwwwwgh", -"dbwwwwwwwwwgh", -"dbwwwwwwwwwgh", -"dbwwwwwwwwwgh", -"dbwwwwwwwwwgh", -"dgggggggggggh", -"hhhhhhhhhhhhh" -}; - -static char *pressed_unchecked_xpm[] = { -/* columns rows colors chars-per-pixel */ -"13 13 4 1", -"b c black", -"d c #7f7f7f", -"g c #c0c0c0", -"h c #e0e0e0", -/* pixels */ -"ddddddddddddh", -"dbbbbbbbbbbgh", -"dbggggggggggh", -"dbggggggggggh", -"dbggggggggggh", -"dbggggggggggh", -"dbggggggggggh", -"dbggggggggggh", -"dbggggggggggh", -"dbggggggggggh", -"dbggggggggggh", -"dbggggggggggh", -"hhhhhhhhhhhhh" -}; - -static char *checked_radio_xpm[] = { -/* columns rows colors chars-per-pixel */ -"13 13 6 1", -" c None", -"w c white", -"b c black", -"d c #7f7f7f", -"g c #c0c0c0", -"h c #e0e0e0", -/* pixels */ -" dddd ", -" ddbbbbdd ", -" dbbwwwwbbh ", -" dbwwwwwwgh ", -" dbwwwbbwwwgh", -" dbwwbbbbwwgh", -" dbwwbbbbwwgh", -" dbwwwbbwwwgh", -" dbwwwwwwgh ", -" dggwwwwggh ", -" hhgggghh ", -" hhhh ", -" " -}; - -static char *pressed_checked_radio_xpm[] = { -/* columns rows colors chars-per-pixel */ -"13 13 6 1", -" c None", -"w c white", -"b c black", -"d c #7f7f7f", -"g c #c0c0c0", -"h c #e0e0e0", -/* pixels */ -" dddd ", -" ddbbbbdd ", -" dbbggggbbh ", -" dbgggggggh ", -" dbgggbbggggh", -" dbggbbbbgggh", -" dbggbbbbgggh", -" dbgggbbggggh", -" dbgggggggh ", -" dggggggggh ", -" hhgggghh ", -" hhhh ", -" " -}; - -static char *unchecked_radio_xpm[] = { -/* columns rows colors chars-per-pixel */ -"13 13 6 1", -" c None", -"w c white", -"b c black", -"d c #7f7f7f", -"g c #c0c0c0", -"h c #e0e0e0", -/* pixels */ -" dddd ", -" ddbbbbdd ", -" dbbwwwwbbh ", -" dbwwwwwwgh ", -" dbwwwwwwwwgh", -" dbwwwwwwwwgh", -" dbwwwwwwwwgh", -" dbwwwwwwwwgh", -" dbwwwwwwgh ", -" dggwwwwggh ", -" hhgggghh ", -" hhhh ", -" " -}; - -static char *pressed_unchecked_radio_xpm[] = { -/* columns rows colors chars-per-pixel */ -"13 13 6 1", -" c None", -"w c white", -"b c black", -"d c #7f7f7f", -"g c #c0c0c0", -"h c #e0e0e0", -/* pixels */ -" dddd ", -" ddbbbbdd ", -" dbbggggbbh ", -" dbgggggggh ", -" dbgggggggggh", -" dbgggggggggh", -" dbgggggggggh", -" dbgggggggggh", -" dbgggggggh ", -" dggggggggh ", -" hhgggghh ", -" hhhh ", -" " -}; - wxBitmap wxWin32Renderer::GetCheckBitmap(int flags) { char **xpm;