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
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
@@ -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
|
||||
{
|
||||
|
@@ -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() );
|
||||
|
||||
|
@@ -51,10 +51,8 @@ extern bool g_isIdle;
|
||||
|
||||
#if wxUSE_CHECKLISTBOX
|
||||
|
||||
#define CHECKBOX_STRING "[-] "
|
||||
|
||||
// checklistboxes have "[<5B>] " 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;
|
||||
|
||||
|
@@ -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() );
|
||||
|
||||
|
@@ -51,10 +51,8 @@ extern bool g_isIdle;
|
||||
|
||||
#if wxUSE_CHECKLISTBOX
|
||||
|
||||
#define CHECKBOX_STRING "[-] "
|
||||
|
||||
// checklistboxes have "[<5B>] " 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;
|
||||
|
||||
|
Reference in New Issue
Block a user