//-----------------------------------------------------------------------------
extern "C" {
-static gint
+static gboolean
gtk_listbox_key_press_callback( GtkWidget *WXUNUSED(widget),
GdkEventKey *gdk_event,
wxListBox *listbox )
{
- if ((gdk_event->keyval == GDK_Return) ||
+ if ((gdk_event->keyval == GDK_Return) ||
(gdk_event->keyval == GDK_ISO_Enter) ||
(gdk_event->keyval == GDK_KP_Enter))
{
return FALSE;
index = sels[0];
}
-
+
if (index != wxNOT_FOUND)
{
wxCommandEvent event(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, listbox->GetId() );
event.SetEventObject( listbox );
-
+
GtkTreeEntry* entry = listbox->GtkGetEntry( index );
// indicate that this is a selection
/* bool ret = */ listbox->HandleWindowEvent( event );
g_object_unref (entry);
-
+
// wxMac and wxMSW always invoke default action
// if (!ret)
{
gtk_window_activate_default( gtk_window );
}
}
-
+
// Always intercept, otherwise we'd get another dclick
// event from row_activated
return TRUE;
}
}
-
+
return FALSE;
}
}
void wxListBox::Init()
{
- m_treeview = (GtkTreeView*) NULL;
+ m_treeview = NULL;
#if wxUSE_CHECKLISTBOX
m_hasCheckBoxes = false;
#endif // wxUSE_CHECKLISTBOX
return false;
}
- m_widget = gtk_scrolled_window_new( (GtkAdjustment*) NULL, (GtkAdjustment*) NULL );
+ m_widget = gtk_scrolled_window_new( NULL, NULL );
+ g_object_ref(m_widget);
if (style & wxLB_ALWAYS_SB)
{
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(m_widget),
}
- GtkScrolledWindowSetBorder(m_widget, style);
+ GTKScrolledWindowSetBorder(m_widget, style);
m_treeview = GTK_TREE_VIEW( gtk_tree_view_new( ) );
g_signal_connect_after (selection, "changed",
G_CALLBACK (gtk_listitem_changed_callback), this);
-
+
return true;
}
g_signal_handlers_unblock_by_func(selection,
(gpointer) gtk_listitem_changed_callback, this);
-
+
UpdateOldSelections();
}
void wxListBox::Update()
{
wxWindow::Update();
-
+
if (m_treeview)
gdk_window_process_updates(GTK_WIDGET(m_treeview)->window, TRUE);
}
InvalidateBestSize();
gtk_list_store_clear( m_liststore ); /* well, THAT was easy :) */
-
+
GtkEnableEvents();
}
// this returns false if iter is invalid (e.g. deleting item at end) but
// since we don't use iter, we ignore the return value
gtk_list_store_remove(m_liststore, &iter);
-
+
GtkEnableEvents();
}
gint* pIntPath = gtk_tree_path_get_indices(path);
- wxCHECK_MSG( pIntPath, wxNOT_FOUND, _T("failed to get iterator path") );
+ wxCHECK_MSG( pIntPath, wxNOT_FOUND, wxT("failed to get iterator path") );
int idx = pIntPath[0];
// and update the model which will refresh the tree too
GtkTreeIter iter;
- wxCHECK_RET( GtkGetIteratorFor(n, &iter), _T("failed to get iterator") );
+ wxCHECK_RET( GtkGetIteratorFor(n, &iter), wxT("failed to get iterator") );
// FIXME: this resets the checked status of a wxCheckListBox item
wxCHECK_RET( m_treeview != NULL, wxT("invalid listbox") );
GtkDisableEvents();
-
+
GtkTreeSelection* selection = gtk_tree_view_get_selection(m_treeview);
// passing -1 to SetSelection() is documented to deselect all items
wxCHECK_RET( IsValid(n), wxT("invalid index in wxListBox::SetSelection") );
-
+
GtkTreeIter iter;
wxCHECK_RET( GtkGetIteratorFor(n, &iter), wxT("Invalid index") );
// ----------------------------------------------------------------------------
#if wxUSE_TOOLTIPS
-void wxListBox::ApplyToolTip( GtkTooltips *tips, const gchar *tip )
+void wxListBox::GTKApplyToolTip( GtkTooltips *tips, const gchar *tip )
{
// RN: Is this needed anymore?
- gtk_tooltips_set_tip( tips, GTK_WIDGET( m_treeview ), tip, (gchar*) NULL );
+ gtk_tooltips_set_tip( tips, GTK_WIDGET( m_treeview ), tip, NULL );
}
#endif // wxUSE_TOOLTIPS