From d752a3c394b830405753476e508898988d502bfd Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 28 Dec 2000 14:07:00 +0000 Subject: [PATCH] modified check listbox indicators and made them customizable git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9016 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/checklst.h | 19 +++++++++++++------ include/wx/gtk1/checklst.h | 19 +++++++++++++------ src/gtk/checklst.cpp | 24 +++++++++++------------- src/gtk/listbox.cpp | 8 +++----- src/gtk1/checklst.cpp | 24 +++++++++++------------- src/gtk1/listbox.cpp | 8 +++----- 6 files changed, 54 insertions(+), 48 deletions(-) diff --git a/include/wx/gtk/checklst.h b/include/wx/gtk/checklst.h index 3290184e06..11f9980a33 100644 --- a/include/wx/gtk/checklst.h +++ b/include/wx/gtk/checklst.h @@ -24,15 +24,22 @@ #include "wx/control.h" #include "wx/listbox.h" -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// macros +// ---------------------------------------------------------------------------- -class wxCheckListBox; +// there is no "right" choice of the checkbox indicators, so allow the user to +// define them himself if he wants +#ifndef wxCHECKLBOX_CHECKED + #define wxCHECKLBOX_CHECKED _T('x') + #define wxCHECKLBOX_UNCHECKED _T(' ') -//----------------------------------------------------------------------------- + #define wxCHECKLBOX_STRING _T("[ ] ") +#endif + +// ---------------------------------------------------------------------------- // wxCheckListBox -//----------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- class wxCheckListBox : public wxListBox { diff --git a/include/wx/gtk1/checklst.h b/include/wx/gtk1/checklst.h index 3290184e06..11f9980a33 100644 --- a/include/wx/gtk1/checklst.h +++ b/include/wx/gtk1/checklst.h @@ -24,15 +24,22 @@ #include "wx/control.h" #include "wx/listbox.h" -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// macros +// ---------------------------------------------------------------------------- -class wxCheckListBox; +// there is no "right" choice of the checkbox indicators, so allow the user to +// define them himself if he wants +#ifndef wxCHECKLBOX_CHECKED + #define wxCHECKLBOX_CHECKED _T('x') + #define wxCHECKLBOX_UNCHECKED _T(' ') -//----------------------------------------------------------------------------- + #define wxCHECKLBOX_STRING _T("[ ] ") +#endif + +// ---------------------------------------------------------------------------- // wxCheckListBox -//----------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- class wxCheckListBox : public wxListBox { diff --git a/src/gtk/checklst.cpp b/src/gtk/checklst.cpp index 0390914207..74064e190c 100644 --- a/src/gtk/checklst.cpp +++ b/src/gtk/checklst.cpp @@ -30,13 +30,13 @@ wxCheckListBox::wxCheckListBox() : wxListBox() } wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int nStrings, - const wxString *choices, - long style, - const wxValidator& validator, - const wxString& name ) + const wxPoint& pos, + const wxSize& size, + int nStrings, + const wxString *choices, + long style, + const wxValidator& validator, + const wxString& name ) { m_hasCheckBoxes = TRUE; wxListBox::Create( parent, id, pos, size, nStrings, choices, style, validator, name ); @@ -54,7 +54,7 @@ bool wxCheckListBox::IsChecked( int index ) const wxString str = wxString(label->label,*wxConvCurrent); - return (str.GetChar(1) == wxT('X')); + return str.GetChar(1) == wxCHECKLBOX_CHECKED; } wxFAIL_MSG(wxT("wrong checklistbox index")); @@ -73,12 +73,10 @@ void wxCheckListBox::Check( int index, bool check ) wxString str = wxString(label->label,*wxConvCurrent); - if (check == (str.GetChar(1) == wxT('X'))) return; + if (check == (str.GetChar(1) == wxCHECKLBOX_CHECKED)) + return; - if (check) - str.SetChar( 1, wxT('X') ); - else - str.SetChar( 1, wxT('-') ); + str.SetChar( 1, check ? wxCHECKLBOX_CHECKED : wxCHECKLBOX_UNCHECKED ); gtk_label_set( label, str.mbc_str() ); diff --git a/src/gtk/listbox.cpp b/src/gtk/listbox.cpp index de705e5ce3..56e8db0c7d 100644 --- a/src/gtk/listbox.cpp +++ b/src/gtk/listbox.cpp @@ -51,10 +51,8 @@ extern bool g_isIdle; #if wxUSE_CHECKLISTBOX -#define CHECKBOX_STRING "[-] " - // checklistboxes have "[±] " prepended to their lables, this macro removes it -// (NB: 4 below is the length of CHECKBOX_STRING above) +// (NB: 4 below is the length of wxCHECKLBOX_STRING above) // // the argument to it is a "const char *" pointer #define GET_REAL_LABEL(label) ((m_hasCheckBoxes)?(label)+4 : (label)) @@ -520,7 +518,7 @@ void wxListBox::GtkAddItem( const wxString &item, int pos ) #if wxUSE_CHECKLISTBOX if (m_hasCheckBoxes) { - label.Prepend(CHECKBOX_STRING); + label.Prepend(wxCHECKLBOX_STRING); } #endif // wxUSE_CHECKLISTBOX @@ -714,7 +712,7 @@ void wxListBox::SetString( int n, const wxString &string ) wxString str; #if wxUSE_CHECKLISTBOX if (m_hasCheckBoxes) - str += CHECKBOX_STRING; + str += wxCHECKLBOX_STRING; #endif // wxUSE_CHECKLISTBOX str += string; diff --git a/src/gtk1/checklst.cpp b/src/gtk1/checklst.cpp index 0390914207..74064e190c 100644 --- a/src/gtk1/checklst.cpp +++ b/src/gtk1/checklst.cpp @@ -30,13 +30,13 @@ wxCheckListBox::wxCheckListBox() : wxListBox() } wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int nStrings, - const wxString *choices, - long style, - const wxValidator& validator, - const wxString& name ) + const wxPoint& pos, + const wxSize& size, + int nStrings, + const wxString *choices, + long style, + const wxValidator& validator, + const wxString& name ) { m_hasCheckBoxes = TRUE; wxListBox::Create( parent, id, pos, size, nStrings, choices, style, validator, name ); @@ -54,7 +54,7 @@ bool wxCheckListBox::IsChecked( int index ) const wxString str = wxString(label->label,*wxConvCurrent); - return (str.GetChar(1) == wxT('X')); + return str.GetChar(1) == wxCHECKLBOX_CHECKED; } wxFAIL_MSG(wxT("wrong checklistbox index")); @@ -73,12 +73,10 @@ void wxCheckListBox::Check( int index, bool check ) wxString str = wxString(label->label,*wxConvCurrent); - if (check == (str.GetChar(1) == wxT('X'))) return; + if (check == (str.GetChar(1) == wxCHECKLBOX_CHECKED)) + return; - if (check) - str.SetChar( 1, wxT('X') ); - else - str.SetChar( 1, wxT('-') ); + str.SetChar( 1, check ? wxCHECKLBOX_CHECKED : wxCHECKLBOX_UNCHECKED ); gtk_label_set( label, str.mbc_str() ); diff --git a/src/gtk1/listbox.cpp b/src/gtk1/listbox.cpp index de705e5ce3..56e8db0c7d 100644 --- a/src/gtk1/listbox.cpp +++ b/src/gtk1/listbox.cpp @@ -51,10 +51,8 @@ extern bool g_isIdle; #if wxUSE_CHECKLISTBOX -#define CHECKBOX_STRING "[-] " - // checklistboxes have "[±] " prepended to their lables, this macro removes it -// (NB: 4 below is the length of CHECKBOX_STRING above) +// (NB: 4 below is the length of wxCHECKLBOX_STRING above) // // the argument to it is a "const char *" pointer #define GET_REAL_LABEL(label) ((m_hasCheckBoxes)?(label)+4 : (label)) @@ -520,7 +518,7 @@ void wxListBox::GtkAddItem( const wxString &item, int pos ) #if wxUSE_CHECKLISTBOX if (m_hasCheckBoxes) { - label.Prepend(CHECKBOX_STRING); + label.Prepend(wxCHECKLBOX_STRING); } #endif // wxUSE_CHECKLISTBOX @@ -714,7 +712,7 @@ void wxListBox::SetString( int n, const wxString &string ) wxString str; #if wxUSE_CHECKLISTBOX if (m_hasCheckBoxes) - str += CHECKBOX_STRING; + str += wxCHECKLBOX_STRING; #endif // wxUSE_CHECKLISTBOX str += string; -- 2.45.2