/////////////////////////////////////////////////////////////////////////////
-// Name: listbox.cpp
+// Name: src/gtk1/listbox.cpp
// Purpose:
// Author: Robert Roebling
// Id: $Id$
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "listbox.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#include "wx/intl.h"
#include "wx/checklst.h"
#include "wx/settings.h"
-#include "wx/gtk/private.h"
+#include "wx/gtk1/private.h"
#if wxUSE_TOOLTIPS
#include "wx/tooltip.h"
{
// not yet, notify it
win->m_hasFocus = TRUE;
-
+
wxChildFocusEvent eventChildFocus(win);
(void)win->GetEventHandler()->ProcessEvent(eventChildFocus);
for (i = 0; i < (int)listbox->GetCount(); i++)
if (i != sel)
gtk_list_unselect_item( GTK_LIST(listbox->m_list), i );
-
+
listbox->m_blockEvent = FALSE;
-
+
return false;
}
#endif // wxUSE_CHECKLISTBOX
// Check or uncheck item with SPACE
- if ((gdk_event->keyval == ' ') && (!ret) &&
+ if ((gdk_event->keyval == ' ') && (!ret) &&
(((listbox->GetWindowStyleFlag() & wxLB_MULTIPLE) != 0) ||
((listbox->GetWindowStyleFlag() & wxLB_EXTENDED) != 0)) )
{
int sel = listbox->GtkGetIndex( widget );
-
+
if (sel != -1)
{
ret = TRUE;
-
+
if (listbox->IsSelected( sel ))
gtk_list_unselect_item( listbox->m_list, sel );
else
gtk_list_select_item( listbox->m_list, sel );
-
+
wxCommandEvent new_event(wxEVT_COMMAND_LISTBOX_SELECTED, listbox->GetId() );
new_event.SetEventObject( listbox );
wxArrayInt aSelections;
listbox->GetEventHandler()->ProcessEvent( new_event );
}
}
-
+
if (ret)
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_press_event" );
{
if (g_isIdle)
wxapp_install_idle_handler();
-
+
GList *child = win->m_list->children;
for (child = win->m_list->children; child != NULL; child = child->next)
gtk_widget_show( GTK_WIDGET(child->data) );
-
+
return false;
}
}
gtk_signal_connect( GTK_OBJECT(m_list), "realize",
GTK_SIGNAL_FUNC(gtk_listbox_realized_callback), (gpointer) this );
-
+
if ( style & wxLB_SORT )
{
// this will change DoAppend() behaviour
if (GTK_WIDGET_REALIZED(m_widget))
{
gtk_widget_show( list_item );
-
+
gtk_widget_realize( list_item );
gtk_widget_realize( GTK_BIN(list_item)->child );
{
gtk_widget_modify_style( GTK_WIDGET( list_item ), style );
GtkBin *bin = GTK_BIN( list_item );
- GtkWidget *label = GTK_WIDGET( bin->child );
- gtk_widget_modify_style( label, style );
+ gtk_widget_modify_style( GTK_WIDGET( bin->child ), style );
gtk_rc_style_unref( style );
}
}
wxString str;
-#ifdef __WXGTK20__
- str = wxGTK_CONV_BACK( gtk_label_get_text( label ) );
-#else
str = wxString( label->label );
-#endif
#if wxUSE_CHECKLISTBOX
// checklistboxes have "[±] " prepended to their lables, remove it
//
- // NB: 4 below is the length of wxCHECKLBOX_STRING from wx/gtk/checklst.h
+ // NB: 4 below is the length of wxCHECKLBOX_STRING from wx/gtk1/checklst.h
if ( m_hasCheckBoxes )
str.erase(0, 4);
#endif // wxUSE_CHECKLISTBOX
wxString wxListBox::GetString( int n ) const
{
- wxCHECK_MSG( m_list != NULL, wxT(""), wxT("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, wxEmptyString, wxT("invalid listbox") );
GList *child = g_list_nth( m_list->children, n );
if (child)
wxFAIL_MSG(wxT("wrong listbox index"));
- return wxT("");
+ return wxEmptyString;
}
int wxListBox::GetCount() const
return g_list_length(children);
}
-int wxListBox::FindString( const wxString &item ) const
+int wxListBox::FindString( const wxString &item, bool bCase ) const
{
- wxCHECK_MSG( m_list != NULL, -1, wxT("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, wxNOT_FOUND, wxT("invalid listbox") );
GList *child = m_list->children;
int count = 0;
while (child)
{
- if ( GetRealLabel(child) == item )
+ if ( item.IsSameAs( GetRealLabel(child), bCase ) )
return count;
count++;
{
return TRUE;
-#if 0
+#if 0
if (m_widget->window == window) return TRUE;
if (GTK_WIDGET(m_list)->window == window) return TRUE;
lbHeight = (cy+4) * wxMin(wxMax(GetCount(), 3), 10);
wxSize best(lbWidth, lbHeight);
- CacheBestSize(best);
+ CacheBestSize(best);
return best;
}
}
#endif // wxUSE_LISTBOX
-