/////////////////////////////////////////////////////////////////////////////
-// Name: listbox.cpp
+// Name: src/gtk/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"
{
// 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" );
+ g_signal_stop_emission_by_name (widget, "key_press_event");
return TRUE;
}
{
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_widget_show( GTK_WIDGET(m_list) );
- gtk_signal_connect( GTK_OBJECT(m_list), "realize",
- GTK_SIGNAL_FUNC(gtk_listbox_realized_callback), (gpointer) this );
-
+ g_signal_connect (m_list, "realize",
+ G_CALLBACK (gtk_listbox_realized_callback), this);
+
if ( style & wxLB_SORT )
{
// this will change DoAppend() behaviour
else
gtk_list_insert_items( GTK_LIST (m_list), gitem_list, pos );
- gtk_signal_connect_after( GTK_OBJECT(list_item), "select",
- GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this );
+ g_signal_connect_after (list_item, "select",
+ G_CALLBACK (gtk_listitem_select_callback),
+ this);
if (HasFlag(wxLB_MULTIPLE) || HasFlag(wxLB_EXTENDED))
- gtk_signal_connect_after( GTK_OBJECT(list_item), "deselect",
- GTK_SIGNAL_FUNC(gtk_listitem_deselect_callback), (gpointer)this );
-
- gtk_signal_connect( GTK_OBJECT(list_item),
- "button_press_event",
- (GtkSignalFunc)gtk_listbox_button_press_callback,
- (gpointer) this );
-
- gtk_signal_connect_after( GTK_OBJECT(list_item),
- "button_release_event",
- (GtkSignalFunc)gtk_listbox_button_release_callback,
- (gpointer) this );
-
- gtk_signal_connect( GTK_OBJECT(list_item),
- "key_press_event",
- (GtkSignalFunc)gtk_listbox_key_press_callback,
- (gpointer)this );
-
-
- gtk_signal_connect( GTK_OBJECT(list_item), "focus_in_event",
- GTK_SIGNAL_FUNC(gtk_listitem_focus_in_callback), (gpointer)this );
-
- gtk_signal_connect( GTK_OBJECT(list_item), "focus_out_event",
- GTK_SIGNAL_FUNC(gtk_listitem_focus_out_callback), (gpointer)this );
+ g_signal_connect_after (list_item, "deselect",
+ G_CALLBACK (gtk_listitem_deselect_callback),
+ this);
+
+ g_signal_connect (list_item, "button_press_event",
+ G_CALLBACK (gtk_listbox_button_press_callback),
+ this);
+ g_signal_connect_after (list_item, "button_release_event",
+ G_CALLBACK (gtk_listbox_button_release_callback),
+ this);
+ g_signal_connect (list_item, "key_press_event",
+ G_CALLBACK (gtk_listbox_key_press_callback),
+ this);
+ g_signal_connect (list_item, "focus_in_event",
+ G_CALLBACK (gtk_listitem_focus_in_callback),
+ this);
+ g_signal_connect (list_item, "focus_out_event",
+ G_CALLBACK (gtk_listitem_focus_out_callback),
+ this);
ConnectWidget( list_item );
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
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
-