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/control.h"
|
||||||
#include "wx/listbox.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
|
// wxCheckListBox
|
||||||
//-----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
class wxCheckListBox : public wxListBox
|
class wxCheckListBox : public wxListBox
|
||||||
{
|
{
|
||||||
|
@@ -24,15 +24,22 @@
|
|||||||
#include "wx/control.h"
|
#include "wx/control.h"
|
||||||
#include "wx/listbox.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
|
// wxCheckListBox
|
||||||
//-----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
class wxCheckListBox : public wxListBox
|
class wxCheckListBox : public wxListBox
|
||||||
{
|
{
|
||||||
|
@@ -30,13 +30,13 @@ wxCheckListBox::wxCheckListBox() : wxListBox()
|
|||||||
}
|
}
|
||||||
|
|
||||||
wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
|
wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
|
||||||
const wxPoint& pos,
|
const wxPoint& pos,
|
||||||
const wxSize& size,
|
const wxSize& size,
|
||||||
int nStrings,
|
int nStrings,
|
||||||
const wxString *choices,
|
const wxString *choices,
|
||||||
long style,
|
long style,
|
||||||
const wxValidator& validator,
|
const wxValidator& validator,
|
||||||
const wxString& name )
|
const wxString& name )
|
||||||
{
|
{
|
||||||
m_hasCheckBoxes = TRUE;
|
m_hasCheckBoxes = TRUE;
|
||||||
wxListBox::Create( parent, id, pos, size, nStrings, choices, style, validator, name );
|
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);
|
wxString str = wxString(label->label,*wxConvCurrent);
|
||||||
|
|
||||||
return (str.GetChar(1) == wxT('X'));
|
return str.GetChar(1) == wxCHECKLBOX_CHECKED;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxFAIL_MSG(wxT("wrong checklistbox index"));
|
wxFAIL_MSG(wxT("wrong checklistbox index"));
|
||||||
@@ -73,12 +73,10 @@ void wxCheckListBox::Check( int index, bool check )
|
|||||||
|
|
||||||
wxString str = wxString(label->label,*wxConvCurrent);
|
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, check ? wxCHECKLBOX_CHECKED : wxCHECKLBOX_UNCHECKED );
|
||||||
str.SetChar( 1, wxT('X') );
|
|
||||||
else
|
|
||||||
str.SetChar( 1, wxT('-') );
|
|
||||||
|
|
||||||
gtk_label_set( label, str.mbc_str() );
|
gtk_label_set( label, str.mbc_str() );
|
||||||
|
|
||||||
|
@@ -51,10 +51,8 @@ extern bool g_isIdle;
|
|||||||
|
|
||||||
#if wxUSE_CHECKLISTBOX
|
#if wxUSE_CHECKLISTBOX
|
||||||
|
|
||||||
#define CHECKBOX_STRING "[-] "
|
|
||||||
|
|
||||||
// checklistboxes have "[<5B>] " prepended to their lables, this macro removes it
|
// 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
|
// the argument to it is a "const char *" pointer
|
||||||
#define GET_REAL_LABEL(label) ((m_hasCheckBoxes)?(label)+4 : (label))
|
#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 wxUSE_CHECKLISTBOX
|
||||||
if (m_hasCheckBoxes)
|
if (m_hasCheckBoxes)
|
||||||
{
|
{
|
||||||
label.Prepend(CHECKBOX_STRING);
|
label.Prepend(wxCHECKLBOX_STRING);
|
||||||
}
|
}
|
||||||
#endif // wxUSE_CHECKLISTBOX
|
#endif // wxUSE_CHECKLISTBOX
|
||||||
|
|
||||||
@@ -714,7 +712,7 @@ void wxListBox::SetString( int n, const wxString &string )
|
|||||||
wxString str;
|
wxString str;
|
||||||
#if wxUSE_CHECKLISTBOX
|
#if wxUSE_CHECKLISTBOX
|
||||||
if (m_hasCheckBoxes)
|
if (m_hasCheckBoxes)
|
||||||
str += CHECKBOX_STRING;
|
str += wxCHECKLBOX_STRING;
|
||||||
#endif // wxUSE_CHECKLISTBOX
|
#endif // wxUSE_CHECKLISTBOX
|
||||||
str += string;
|
str += string;
|
||||||
|
|
||||||
|
@@ -30,13 +30,13 @@ wxCheckListBox::wxCheckListBox() : wxListBox()
|
|||||||
}
|
}
|
||||||
|
|
||||||
wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
|
wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
|
||||||
const wxPoint& pos,
|
const wxPoint& pos,
|
||||||
const wxSize& size,
|
const wxSize& size,
|
||||||
int nStrings,
|
int nStrings,
|
||||||
const wxString *choices,
|
const wxString *choices,
|
||||||
long style,
|
long style,
|
||||||
const wxValidator& validator,
|
const wxValidator& validator,
|
||||||
const wxString& name )
|
const wxString& name )
|
||||||
{
|
{
|
||||||
m_hasCheckBoxes = TRUE;
|
m_hasCheckBoxes = TRUE;
|
||||||
wxListBox::Create( parent, id, pos, size, nStrings, choices, style, validator, name );
|
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);
|
wxString str = wxString(label->label,*wxConvCurrent);
|
||||||
|
|
||||||
return (str.GetChar(1) == wxT('X'));
|
return str.GetChar(1) == wxCHECKLBOX_CHECKED;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxFAIL_MSG(wxT("wrong checklistbox index"));
|
wxFAIL_MSG(wxT("wrong checklistbox index"));
|
||||||
@@ -73,12 +73,10 @@ void wxCheckListBox::Check( int index, bool check )
|
|||||||
|
|
||||||
wxString str = wxString(label->label,*wxConvCurrent);
|
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, check ? wxCHECKLBOX_CHECKED : wxCHECKLBOX_UNCHECKED );
|
||||||
str.SetChar( 1, wxT('X') );
|
|
||||||
else
|
|
||||||
str.SetChar( 1, wxT('-') );
|
|
||||||
|
|
||||||
gtk_label_set( label, str.mbc_str() );
|
gtk_label_set( label, str.mbc_str() );
|
||||||
|
|
||||||
|
@@ -51,10 +51,8 @@ extern bool g_isIdle;
|
|||||||
|
|
||||||
#if wxUSE_CHECKLISTBOX
|
#if wxUSE_CHECKLISTBOX
|
||||||
|
|
||||||
#define CHECKBOX_STRING "[-] "
|
|
||||||
|
|
||||||
// checklistboxes have "[<5B>] " prepended to their lables, this macro removes it
|
// 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
|
// the argument to it is a "const char *" pointer
|
||||||
#define GET_REAL_LABEL(label) ((m_hasCheckBoxes)?(label)+4 : (label))
|
#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 wxUSE_CHECKLISTBOX
|
||||||
if (m_hasCheckBoxes)
|
if (m_hasCheckBoxes)
|
||||||
{
|
{
|
||||||
label.Prepend(CHECKBOX_STRING);
|
label.Prepend(wxCHECKLBOX_STRING);
|
||||||
}
|
}
|
||||||
#endif // wxUSE_CHECKLISTBOX
|
#endif // wxUSE_CHECKLISTBOX
|
||||||
|
|
||||||
@@ -714,7 +712,7 @@ void wxListBox::SetString( int n, const wxString &string )
|
|||||||
wxString str;
|
wxString str;
|
||||||
#if wxUSE_CHECKLISTBOX
|
#if wxUSE_CHECKLISTBOX
|
||||||
if (m_hasCheckBoxes)
|
if (m_hasCheckBoxes)
|
||||||
str += CHECKBOX_STRING;
|
str += wxCHECKLBOX_STRING;
|
||||||
#endif // wxUSE_CHECKLISTBOX
|
#endif // wxUSE_CHECKLISTBOX
|
||||||
str += string;
|
str += string;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user