diff options
Diffstat (limited to 'libgtk_kylix/GTKView.pas')
| -rw-r--r-- | libgtk_kylix/GTKView.pas | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/libgtk_kylix/GTKView.pas b/libgtk_kylix/GTKView.pas index 3cd00dc..b971e7d 100644 --- a/libgtk_kylix/GTKView.pas +++ b/libgtk_kylix/GTKView.pas @@ -1,6 +1,5 @@ (* GTK-Kylix Library: GTKView - GtkTreeView and its modifications - Version 0.6.21 (last updated 2006-05-06) Copyright (C) 2006 Tomas Bzatek <tbzatek@users.sourceforge.net> This library is free software; you can redistribute it and/or @@ -24,7 +23,7 @@ unit GTKView; interface -uses gtk2, gdk2, gdk2pixbuf, glib2, lazglib2, lazgobject2, Classes, GTKControls, GTKForms; +uses lazglib2, lazgobject2, lazgdk3, lazgtk3, lazgdkpixbuf2, Classes, GTKClasses, GTKControls, GTKForms; type TGTKListItem = class; @@ -307,7 +306,7 @@ end; procedure TGTKView.SetSelectionMode(Value: TGTKSelectionMode); begin - gtk_tree_selection_set_mode(FSelection, Integer(Value)); + gtk_tree_selection_set_mode(FSelection, lazgtk3.TGtkSelectionMode(Value)); end; procedure TGTKView.SelectAll; @@ -331,13 +330,16 @@ begin end; function TGTKView.GetRulesHint: boolean; +var b: boolean; begin - Result := gtk_tree_view_get_rules_hint(PGtkTreeView(FWidget)); + b := False; + g_object_get(PGObject(FWidget), 'rules-hint', [@b, nil]); + Result := b; end; procedure TGTKView.SetRulesHint(Value: boolean); begin - gtk_tree_view_set_rules_hint(PGtkTreeView(FWidget), Value); + g_object_set(PGObject(FWidget), 'rules-hint', [gboolean(Value), nil]); end; function TGTKView.GetReorderable: boolean; @@ -417,7 +419,7 @@ var sort_column_id: gint; order: TGtkSortType; begin Result := soNone; - order := 0; + order := GTK_SORT_ASCENDING; if (FTreeModelSort <> nil) and gtk_tree_sortable_get_sort_column_id(PGtkTreeSortable(FTreeModelSort), @sort_column_id, @order) then Result := TGTKTreeViewSortOrder(order); end; @@ -511,8 +513,8 @@ begin FTreeModelSort := nil; if not FSortable then FWidget := gtk_tree_view_new_with_model(PGtkTreeModel(FListItems.FStore)) else begin - FTreeModelSort := gtk_tree_model_sort_new_with_model(FListItems.FStore); - FWidget := gtk_tree_view_new_with_model(FTreeModelSort); + FTreeModelSort := gtk_tree_model_sort_new_with_model(PGtkTreeModel(FListItems.FStore)); + FWidget := gtk_tree_view_new_with_model(PGtkTreeModel(FTreeModelSort)); end; FSelection := gtk_tree_view_get_selection(PGtkTreeView(FWidget)); g_signal_connect_data(PGObject(FSelection), 'changed', TGCallback(@TGTKListView_changed), Self, nil, G_CONNECT_DEFAULT); @@ -592,7 +594,7 @@ begin Result := nil; Path := nil; Column := nil; - if gtk_tree_view_get_path_at_pos(PGtkTreeView(FWidget), X, Y, Path, Column, nil, nil) then begin + if gtk_tree_view_get_path_at_pos(PGtkTreeView(FWidget), X, Y, @Path, @Column, nil, nil) then begin if not Assigned(Path) then Exit; ConvertPathToChild(Path); AIndex := gtk_tree_path_get_indices(Path)^; @@ -606,11 +608,10 @@ end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKListItems.Create(AOwner: TComponent); -const Types : GType = G_TYPE_STRING; begin inherited Create(AOwner); FOwner := AOwner; - FStore := gtk_list_store_newv(1, @Types); + FStore := gtk_list_store_new(1, [G_TYPE_STRING]); FList := TList.Create; end; @@ -619,14 +620,14 @@ begin if not (csDestroying in ComponentState) then begin Clear; FList.Free; - gtk_object_destroy(PGtkObject(FStore)); + g_object_unref(PGObject(FStore)); end; inherited Destroy; end; constructor TGTKListItems.CreateTyped(AOwner: TComponent; ColumnTypes: array of TGTKListColumnType); var i: integer; - Cols : array[0..255] of GType; + Cols: array[0..255] of TGType; begin inherited Create(AOwner); FOwner := AOwner; @@ -636,7 +637,7 @@ begin lcText : Cols[i] := G_TYPE_STRING; lcNumber : Cols[i] := G_TYPE_LONG; lcPointer : Cols[i] := G_TYPE_POINTER; - lcPixbuf : Cols[i] := GDK_TYPE_PIXBUF; + lcPixbuf : Cols[i] := gdk_pixbuf_get_type(); lcBoolean : Cols[i] := G_TYPE_BOOLEAN; end; FStore := gtk_list_store_newv(Length(ColumnTypes), @Cols); @@ -644,14 +645,14 @@ end; procedure TGTKListItems.SetColumnTypes(Types: array of TGTKListColumnType); var i: integer; - Cols : array[0..255] of GType; + Cols : array[0..255] of TGType; begin for i := Low(Types) to High(Types) do case Types[i] of lcText : Cols[i] := G_TYPE_STRING; lcNumber : Cols[i] := G_TYPE_LONG; lcPointer : Cols[i] := G_TYPE_POINTER; - lcPixbuf : Cols[i] := GDK_TYPE_PIXBUF; + lcPixbuf : Cols[i] := gdk_pixbuf_get_type(); lcBoolean : Cols[i] := G_TYPE_BOOLEAN; end; g_object_unref(PGObject(FStore)); @@ -827,8 +828,8 @@ end; destructor TGTKTreeViewColumn.Destroy; begin if not (csDestroying in ComponentState) then begin - gtk_object_destroy(PGtkObject(FRenderer)); - if GTK_IS_OBJECT(FColumn) then gtk_object_destroy(PGtkObject(FColumn)); + if Assigned(FRenderer) then g_object_unref(PGObject(FRenderer)); + if Assigned(FColumn) then g_object_unref(PGObject(FColumn)); end; inherited Destroy; end; @@ -1011,7 +1012,7 @@ begin FColumnType := Value; if Assigned(FRenderer) then begin gtk_tree_view_column_clear(FColumn); - gtk_object_destroy(PGtkObject(FRenderer)); + g_object_unref(PGObject(FRenderer)); end; case Value of ctText : FRenderer := gtk_cell_renderer_text_new; @@ -1177,28 +1178,28 @@ procedure TGTKListItem.SetValue(Index: longint; Value: string); var Iter: TGtkTreeIter; begin if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, PChar(IntToStr(FIndex))) - then gtk_list_store_set(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, Index, PChar(Value), -1); + then gtk_list_store_set((FOwner as TGTKListItems).FStore, @Iter, [Index, PChar(Value), -1]); end; procedure TGTKListItem.SetValue(Index: longint; Value: integer); var Iter: TGtkTreeIter; begin if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, PChar(IntToStr(FIndex))) - then gtk_list_store_set(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, Index, Value, -1); + then gtk_list_store_set((FOwner as TGTKListItems).FStore, @Iter, [Index, Value, -1]); end; procedure TGTKListItem.SetValue(Index: longint; Value: pointer); var Iter: TGtkTreeIter; begin if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, PChar(IntToStr(FIndex))) - then gtk_list_store_set(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, Index, Value, -1); + then gtk_list_store_set((FOwner as TGTKListItems).FStore, @Iter, [Index, Value, -1]); end; procedure TGTKListItem.SetValue(Index: longint; Value: boolean); var Iter: TGtkTreeIter; begin if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, PChar(IntToStr(FIndex))) - then gtk_list_store_set(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, Index, Value, -1); + then gtk_list_store_set((FOwner as TGTKListItems).FStore, @Iter, [Index, Value, -1]); end; function TGTKListItem.GetSelected: boolean; @@ -1266,8 +1267,8 @@ begin gtk_tree_view_column_focus_cell(Column, ((FOwner as TGTKListItems).FOwner as TGTKView).Columns[ColumnNo].FRenderer); CellEditable := gtk_cell_renderer_start_editing(((FOwner as TGTKListItems).FOwner as TGTKView).Columns[ColumnNo].FRenderer, nil, ((FOwner as TGTKListItems).FOwner as TGTKView).FWidget, PChar(PChar(IntToStr(FIndex))), - @BackgroundRect, @CellRect, {GTK_CELL_RENDERER_SELECTED or GTK_CELL_RENDERER_SORTED} 0); - gtk_widget_show(CellEditable); + @BackgroundRect, @CellRect, []); + gtk_widget_show(PGtkWidget(CellEditable)); // gtk_cell_editable_start_editing(CellEditable, nil); @@ -1287,7 +1288,7 @@ begin gtk_tree_view_get_background_area(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), Path, Column, @BackgroundRect); Rect.x := 0; - Rect.width := ((FOwner as TGTKListItems).FOwner as TGTKView).FWidget^.allocation.width; + Rect.width := gtk_widget_get_allocated_width(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget); Rect.y := BackgroundRect.y; Rect.height := BackgroundRect.height; gdk_window_invalidate_rect(gtk_tree_view_get_bin_window(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget)), @Rect, True); |
