X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/caaa4cfd6779b689d6723e06df23cc23d1799fd3..7b9da2077d0975db6c965a85c91d5aca671ab5e3:/src/gtk/checklst.cpp diff --git a/src/gtk/checklst.cpp b/src/gtk/checklst.cpp index 252e216983..8d1d92f1f3 100644 --- a/src/gtk/checklst.cpp +++ b/src/gtk/checklst.cpp @@ -4,7 +4,7 @@ // Author: Robert Roebling // Id: $Id$ // Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -13,25 +13,30 @@ #include "wx/checklst.h" +#if wxUSE_CHECKLISTBOX + +#include "gdk/gdk.h" +#include "gtk/gtk.h" + //----------------------------------------------------------------------------- // wxCheckListBox //----------------------------------------------------------------------------- IMPLEMENT_DYNAMIC_CLASS(wxCheckListBox,wxListBox) -wxCheckListBox::wxCheckListBox() : - wxListBox() +wxCheckListBox::wxCheckListBox() : wxListBox() { m_hasCheckBoxes = TRUE; } + wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int nStrings = 0, - const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr) + 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 ); @@ -39,47 +44,54 @@ wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id, bool wxCheckListBox::IsChecked( int index ) const { - wxCHECK_MSG( m_list != NULL, FALSE, "invalid checklistbox" ); - + wxCHECK_MSG( m_list != NULL, FALSE, wxT("invalid checklistbox") ); + GList *child = g_list_nth( m_list->children, index ); if (child) { GtkBin *bin = GTK_BIN( child->data ); GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str = label->label; - - return (str[1] == 'X'); + + wxString str = wxString(label->label,*wxConvCurrent); + + return (str.GetChar(1) == wxT('X')); } - - wxFAIL_MSG("wrong checklistbox index"); + + wxFAIL_MSG(wxT("wrong checklistbox index")); return FALSE; } void wxCheckListBox::Check( int index, bool check ) { - wxCHECK_RET( m_list != NULL, "invalid checklistbox" ); - + wxCHECK_RET( m_list != NULL, wxT("invalid checklistbox") ); + GList *child = g_list_nth( m_list->children, index ); if (child) { GtkBin *bin = GTK_BIN( child->data ); GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str = label->label; - - if (check == (str[1] == 'X')) return; - - if (check) - str.SetChar( 1, 'X' ); - else - str.SetChar( 1, '-' ); - - gtk_label_set( label, str ); - - return; + + wxString str = wxString(label->label,*wxConvCurrent); + + if (check == (str.GetChar(1) == wxT('X'))) return; + + if (check) + str.SetChar( 1, wxT('X') ); + else + str.SetChar( 1, wxT('-') ); + + gtk_label_set( label, str.mbc_str() ); + + return; } - - wxFAIL_MSG("wrong checklistbox index"); + + wxFAIL_MSG(wxT("wrong checklistbox index")); } +int wxCheckListBox::GetItemHeight() const +{ + // FIXME + return 22; +} + +#endif