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:
Vadim Zeitlin
2000-12-28 14:07:00 +00:00
parent df5ddbca48
commit d752a3c394
6 changed files with 54 additions and 48 deletions

View File

@@ -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
{

View File

@@ -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
{

View File

@@ -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() );

View File

@@ -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;

View File

@@ -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() );

View File

@@ -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;