X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7fff16b863c4fb4c92d44d08e91b31e835c904d0..11a23db53128bf244a089123b7fd27deb577a889:/src/gtk/dataview.cpp diff --git a/src/gtk/dataview.cpp b/src/gtk/dataview.cpp index 2286b8c2ba..c58858a7ff 100644 --- a/src/gtk/dataview.cpp +++ b/src/gtk/dataview.cpp @@ -2,7 +2,6 @@ // Name: src/gtk/dataview.cpp // Purpose: wxDataViewCtrl GTK+2 implementation // Author: Robert Roebling -// Id: $Id$ // Copyright: (c) 1998 Robert Roebling // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -1015,7 +1014,7 @@ wxgtk_tree_model_set_sort_column_id (GtkTreeSortable *sortable, if (gs_lastLeftClickHeader) { wxDataViewCtrl *dv = tree_model->internal->GetOwner(); - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_COLUMN_SORTED, dv->GetId() ); event.SetDataViewColumn( gs_lastLeftClickHeader ); event.SetModel( dv->GetModel() ); dv->HandleWindowEvent( event ); @@ -1164,7 +1163,7 @@ static GtkCellEditable *gtk_wx_cell_renderer_text_start_editing( item(column->GetOwner()->GTKPathToItem(wxGtkTreePath(path))); wxDataViewCtrl *dv = column->GetOwner(); - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_START_EDITING, dv->GetId() ); event.SetDataViewColumn( column ); event.SetModel( dv->GetModel() ); event.SetColumn( column->GetModelColumn() ); @@ -1705,8 +1704,11 @@ bool wxGtkDataViewModelNotifier::ValueChanged( const wxDataViewItem &item, unsig GTK_TREE_MODEL(wxgtk_model), &iter )); GdkRectangle cell_area; gtk_tree_view_get_cell_area( widget, path, gcolumn, &cell_area ); - +#ifdef __WXGTK3__ + GtkAdjustment* hadjust = gtk_scrollable_get_hadjustment(GTK_SCROLLABLE(widget)); +#else GtkAdjustment* hadjust = gtk_tree_view_get_hadjustment( widget ); +#endif double d = gtk_adjustment_get_value( hadjust ); int xdiff = (int) d; @@ -1782,7 +1784,7 @@ wxgtk_cell_editable_editing_done( GtkCellEditable *WXUNUSED(editable), { wxDataViewColumn *column = wxrenderer->GetOwner(); wxDataViewCtrl *dv = column->GetOwner(); - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_EDITING_DONE, dv->GetId() ); event.SetDataViewColumn( column ); event.SetModel( dv->GetModel() ); wxDataViewItem item( s_user_data ); @@ -1799,7 +1801,7 @@ wxgtk_renderer_editing_started( GtkCellRenderer *WXUNUSED(cell), GtkCellEditable wxDataViewColumn *column = wxrenderer->GetOwner(); wxDataViewCtrl *dv = column->GetOwner(); - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_EDITING_STARTED, dv->GetId() ); event.SetDataViewColumn( column ); event.SetModel( dv->GetModel() ); wxDataViewItem item(dv->GTKPathToItem(wxGtkTreePath(path))); @@ -2841,7 +2843,7 @@ gtk_dataview_header_button_press_callback( GtkWidget *WXUNUSED(widget), gs_lastLeftClickHeader = column; wxDataViewCtrl *dv = column->GetOwner(); - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_COLUMN_HEADER_CLICK, dv->GetId() ); event.SetDataViewColumn( column ); event.SetModel( dv->GetModel() ); if (dv->HandleWindowEvent( event )) @@ -2851,7 +2853,7 @@ gtk_dataview_header_button_press_callback( GtkWidget *WXUNUSED(widget), if (gdk_event->button == 3) { wxDataViewCtrl *dv = column->GetOwner(); - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, dv->GetId() ); event.SetDataViewColumn( column ); event.SetModel( dv->GetModel() ); if (dv->HandleWindowEvent( event )) @@ -2987,7 +2989,7 @@ void wxDataViewColumn::Init(wxAlignment align, int flags, int width) SetWidth( width ); // Create container for icon and label - GtkWidget *box = gtk_hbox_new( FALSE, 1 ); + GtkWidget* box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1); gtk_widget_show( box ); // gtk_container_set_border_width((GtkContainer*)box, 2); m_image = gtk_image_new(); @@ -3491,7 +3493,7 @@ gboolean wxDataViewCtrlInternal::row_draggable( GtkTreeDragSource *WXUNUSED(drag if ( !item ) return FALSE; - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG, m_owner->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_BEGIN_DRAG, m_owner->GetId() ); event.SetEventObject( m_owner ); event.SetItem( item ); event.SetModel( m_wx_model ); @@ -3560,7 +3562,7 @@ wxDataViewCtrlInternal::drag_data_received(GtkTreeDragDest *WXUNUSED(drag_dest), if ( !item ) return FALSE; - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_DROP, m_owner->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_DROP, m_owner->GetId() ); event.SetEventObject( m_owner ); event.SetItem( item ); event.SetModel( m_wx_model ); @@ -3585,7 +3587,7 @@ wxDataViewCtrlInternal::row_drop_possible(GtkTreeDragDest *WXUNUSED(drag_dest), if ( !item ) return FALSE; - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE, m_owner->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_DROP_POSSIBLE, m_owner->GetId() ); event.SetEventObject( m_owner ); event.SetItem( item ); event.SetModel( m_wx_model ); @@ -3708,7 +3710,7 @@ bool wxDataViewCtrlInternal::ItemDeleted( const wxDataViewItem &parent, const wx bool wxDataViewCtrlInternal::ItemChanged( const wxDataViewItem &item ) { - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, m_owner->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_VALUE_CHANGED, m_owner->GetId() ); event.SetEventObject( m_owner ); event.SetModel( m_owner->GetModel() ); event.SetItem( item ); @@ -3719,7 +3721,7 @@ bool wxDataViewCtrlInternal::ItemChanged( const wxDataViewItem &item ) bool wxDataViewCtrlInternal::ValueChanged( const wxDataViewItem &item, unsigned int view_column ) { - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, m_owner->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_VALUE_CHANGED, m_owner->GetId() ); event.SetEventObject( m_owner ); event.SetModel( m_owner->GetModel() ); event.SetColumn( view_column ); @@ -4257,7 +4259,7 @@ wxdataview_selection_changed_callback( GtkTreeSelection* WXUNUSED(selection), wx if (!gtk_widget_get_realized(dv->m_widget)) return; - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_SELECTION_CHANGED, dv->GetId() ); event.SetItem( dv->GetSelection() ); event.SetModel( dv->GetModel() ); dv->HandleWindowEvent( event ); @@ -4267,7 +4269,7 @@ static void wxdataview_row_activated_callback( GtkTreeView* WXUNUSED(treeview), GtkTreePath *path, GtkTreeViewColumn *WXUNUSED(column), wxDataViewCtrl *dv ) { - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_ACTIVATED, dv->GetId() ); wxDataViewItem item(dv->GTKPathToItem(path)); event.SetItem( item ); @@ -4279,7 +4281,7 @@ static gboolean wxdataview_test_expand_row_callback( GtkTreeView* WXUNUSED(treeview), GtkTreeIter* iter, GtkTreePath *WXUNUSED(path), wxDataViewCtrl *dv ) { - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_EXPANDING, dv->GetId() ); wxDataViewItem item( (void*) iter->user_data );; event.SetItem( item ); @@ -4293,7 +4295,7 @@ static void wxdataview_row_expanded_callback( GtkTreeView* WXUNUSED(treeview), GtkTreeIter* iter, GtkTreePath *WXUNUSED(path), wxDataViewCtrl *dv ) { - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_EXPANDED, dv->GetId() ); wxDataViewItem item( (void*) iter->user_data );; event.SetItem( item ); @@ -4305,7 +4307,7 @@ static gboolean wxdataview_test_collapse_row_callback( GtkTreeView* WXUNUSED(treeview), GtkTreeIter* iter, GtkTreePath *WXUNUSED(path), wxDataViewCtrl *dv ) { - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_COLLAPSING, dv->GetId() ); wxDataViewItem item( (void*) iter->user_data );; event.SetItem( item ); @@ -4319,7 +4321,7 @@ static void wxdataview_row_collapsed_callback( GtkTreeView* WXUNUSED(treeview), GtkTreeIter* iter, GtkTreePath *WXUNUSED(path), wxDataViewCtrl *dv ) { - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_COLLAPSED, dv->GetId() ); wxDataViewItem item( (void*) iter->user_data );; event.SetItem( item ); @@ -4353,7 +4355,7 @@ void gtk_dataviewctrl_size_callback( GtkWidget *WXUNUSED(widget), wxWindow *child = node->GetData(); GtkRequisition req; - gtk_widget_size_request( child->m_widget, &req ); + gtk_widget_get_preferred_size(child->m_widget, NULL, &req); GtkAllocation alloc; alloc.x = child->m_x; @@ -4376,14 +4378,15 @@ gtk_dataview_motion_notify_callback( GtkWidget *WXUNUSED(widget), GdkEventMotion *gdk_event, wxDataViewCtrl *dv ) { + int x = gdk_event->x; + int y = gdk_event->y; if (gdk_event->is_hint) { - int x = 0; - int y = 0; - GdkModifierType state; - gdk_window_get_pointer(gdk_event->window, &x, &y, &state); - gdk_event->x = x; - gdk_event->y = y; +#ifdef __WXGTK3__ + gdk_window_get_device_position(gdk_event->window, gdk_event->device, &x, &y, NULL); +#else + gdk_window_get_pointer(gdk_event->window, &x, &y, NULL); +#endif } wxGtkTreePath path; @@ -4392,7 +4395,7 @@ gtk_dataview_motion_notify_callback( GtkWidget *WXUNUSED(widget), gint cell_y = 0; if (gtk_tree_view_get_path_at_pos( GTK_TREE_VIEW(dv->GtkGetTreeView()), - (int) gdk_event->x, (int) gdk_event->y, + x, y, path.ByRef(), &column, &cell_x, @@ -4434,7 +4437,7 @@ gtk_dataview_button_press_callback( GtkWidget *WXUNUSED(widget), &cell_y ); - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, dv->GetId() ); + wxDataViewEvent event( wxEVT_DATAVIEW_ITEM_CONTEXT_MENU, dv->GetId() ); if (path) event.SetItem(dv->GTKPathToItem(path)); event.SetModel( dv->GetModel() );