X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/223d09f6b523aac674ef9b72a883dfa8d37c5d4e..6811c2f3e3e8afc1872280dfd1464565a3ddb306:/src/gtk/checklst.cpp diff --git a/src/gtk/checklst.cpp b/src/gtk/checklst.cpp index de5d961859..45bc4adc20 100644 --- a/src/gtk/checklst.cpp +++ b/src/gtk/checklst.cpp @@ -7,16 +7,22 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "checklst.h" #endif -#include "wx/checklst.h" +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#include "wx/defs.h" #if wxUSE_CHECKLISTBOX -#include "gdk/gdk.h" -#include "gtk/gtk.h" +#include "wx/checklst.h" +#include "wx/gtk/private.h" + +#include +#include //----------------------------------------------------------------------------- // wxCheckListBox @@ -30,18 +36,31 @@ 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 ); } +wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id, + const wxPoint& pos, + const wxSize& size, + const wxArrayString& choices, + long style, + const wxValidator& validator, + const wxString& name ) +{ + m_hasCheckBoxes = TRUE; + wxListBox::Create( parent, id, pos, size, choices, + style, validator, name ); +} + bool wxCheckListBox::IsChecked( int index ) const { wxCHECK_MSG( m_list != NULL, FALSE, wxT("invalid checklistbox") ); @@ -52,9 +71,9 @@ bool wxCheckListBox::IsChecked( int index ) const GtkBin *bin = GTK_BIN( child->data ); GtkLabel *label = GTK_LABEL( bin->child ); - wxString str = wxString(label->label,*wxConvCurrent); + wxString str( wxGTK_CONV_BACK( label->label ) ); - return (str[1] == wxT('X')); + return str.GetChar(1) == wxCHECKLBOX_CHECKED; } wxFAIL_MSG(wxT("wrong checklistbox index")); @@ -71,16 +90,14 @@ void wxCheckListBox::Check( int index, bool check ) GtkBin *bin = GTK_BIN( child->data ); GtkLabel *label = GTK_LABEL( bin->child ); - wxString str = wxString(label->label,*wxConvCurrent); + wxString str( wxGTK_CONV_BACK( label->label ) ); - if (check == (str[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() ); + gtk_label_set( label, wxGTK_CONV( str ) ); return; }