diff options
Diffstat (limited to 'libgtk_kylix/GTKView.pas')
| -rw-r--r-- | libgtk_kylix/GTKView.pas | 100 |
1 files changed, 23 insertions, 77 deletions
diff --git a/libgtk_kylix/GTKView.pas b/libgtk_kylix/GTKView.pas index db1dc93..3b46fad 100644 --- a/libgtk_kylix/GTKView.pas +++ b/libgtk_kylix/GTKView.pas @@ -442,24 +442,12 @@ var Path: PGtkTreePath; Iter: TGtkTreeIter; begin Result := Index; - if Application.GTKVersion_2_0_5_Up then begin - Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(Index))); - if not Assigned(Path) then Exit; - if Assigned(FTreeModelSort) then Path := gtk_tree_model_sort_convert_child_path_to_path(FTreeModelSort, Path); - if not Assigned(Path) then Exit; - Result := gtk_tree_path_get_indices(Path)^; - gtk_tree_path_free(Path); - end else - if Assigned(FToSortedConvFunc) then Result := FToSortedConvFunc(Self, Index) else begin - gtk_tree_model_get_iter_from_string(FTreeModel, @Iter, PChar(IntToStr(Index))); -// gtk_tree_model_sort_convert_child_iter_to_iter(FTreeModelSort, @NewIter, @Iter); - Path := gtk_tree_model_get_path(FTreeModel, @Iter); - if not Assigned(Path) then Exit; - if Assigned(FTreeModelSort) then Path := gtk_tree_model_sort_convert_child_path_to_path(FTreeModelSort, Path); - if not Assigned(Path) then Exit; - Result := StrToIntDef(String(gtk_tree_path_to_string(Path)), Index); - gtk_tree_path_free(Path); - end; + Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(Index))); + if not Assigned(Path) then Exit; + if Assigned(FTreeModelSort) then Path := gtk_tree_model_sort_convert_child_path_to_path(FTreeModelSort, Path); + if not Assigned(Path) then Exit; + Result := gtk_tree_path_get_indices(Path)^; + gtk_tree_path_free(Path); end; function TGTKView.ConvertFromSorted(Index: integer): integer; @@ -467,24 +455,12 @@ var Path: PGtkTreePath; Iter: TGtkTreeIter; begin Result := Index; - if Application.GTKVersion_2_0_5_Up then begin - Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(Index))); - if not Assigned(Path) then Exit; - if Assigned(FTreeModelSort) then Path := gtk_tree_model_sort_convert_path_to_child_path(FTreeModelSort, Path); - if not Assigned(Path) then Exit; - Result := gtk_tree_path_get_indices(Path)^; - gtk_tree_path_free(Path); - end else - if Assigned(FFromSortedConvFunc) then Result := FFromSortedConvFunc(Self, Index) else begin - gtk_tree_model_get_iter_from_string(FTreeModel, @Iter, PChar(IntToStr(Index))); -// gtk_tree_model_sort_convert_child_iter_to_iter(FTreeModelSort, @NewIter, @Iter); - Path := gtk_tree_model_get_path(FTreeModel, @Iter); - if not Assigned(Path) then Exit; - if Assigned(FTreeModelSort) then Path := gtk_tree_model_sort_convert_path_to_child_path(FTreeModelSort, Path); - if not Assigned(Path) then Exit; - Result := StrToIntDef(String(gtk_tree_path_to_string(Path)), Index); - gtk_tree_path_free(Path); - end; + Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(Index))); + if not Assigned(Path) then Exit; + if Assigned(FTreeModelSort) then Path := gtk_tree_model_sort_convert_path_to_child_path(FTreeModelSort, Path); + if not Assigned(Path) then Exit; + Result := gtk_tree_path_get_indices(Path)^; + gtk_tree_path_free(Path); end; procedure CellDataFunc(tree_column : PGtkTreeViewColumn; cell : PGtkCellRenderer; tree_model : PGtkTreeModel; iter : PGtkTreeIter; data : gpointer); cdecl; @@ -522,8 +498,7 @@ begin Item := nil; if Assigned(arg1) then begin TGTKListView(user_data).ConvertPathToChild(arg1); - if Application.GTKVersion_2_0_5_Up then AIndex := gtk_tree_path_get_indices(arg1)^ - else AIndex := StrToIntDef(String(gtk_tree_path_to_string(arg1)), 0); + AIndex := gtk_tree_path_get_indices(arg1)^; Item := TGTKListView(user_data).Items[AIndex]; Item.FIndex := AIndex; end; @@ -562,39 +537,20 @@ begin end; function TGTKListView.GetSelected: TGTKListItem; -var Iter{, NewIter}: TGtkTreeIter; +var Iter: TGtkTreeIter; Path: PGtkTreePath; AIndex: integer; i: integer; begin Result := nil; Path := nil; - if not Application.GTKVersion_2_0_5_Up then begin - for i := 0 to Items.Count - 1 do begin - Path := gtk_tree_path_new_from_string(PChar(IntToStr(i))); - if gtk_tree_selection_path_is_selected(gtk_tree_view_get_selection(PGtkTreeView(FWidget)), Path) then Break else -// WriteLn('Index ', i, ', Selected: ', gtk_tree_selection_path_is_selected(gtk_tree_view_get_selection(PGtkTreeView(FWidget)), Path)); - gtk_tree_path_free(Path); - Path := nil; - end; -// WriteLn('Selected: ', String(gtk_tree_path_to_string(Path))); - ConvertPathToChild(Path); -(* gtk_tree_model_get_iter_from_string(gtk_tree_view_get_model(PGtkTreeView(FWidget)){FTreeModelSort}, @Iter, gtk_tree_path_to_string(Path)); - gtk_tree_model_sort_convert_child_iter_to_iter(FTreeModelSort, @NewIter, @Iter); - Path := gtk_tree_model_get_path({FTreeModelSort}gtk_tree_view_get_model(PGtkTreeView(FWidget)), @NewIter); - *) -// gtk_tree_model_sort_clear_cache(FTreeModelSort); -// Path := gtk_tree_model_sort_convert_path_to_child_path(FTreeModelSort, Path); - end else begin - if not gtk_tree_selection_get_selected(gtk_tree_view_get_selection(PGtkTreeView(FWidget)), nil, @Iter) then Exit; - Path := gtk_tree_model_get_path(gtk_tree_view_get_model(PGtkTreeView(FWidget)), @iter); - if not Assigned(Path) then Exit; - ConvertPathToChild(Path); - end; + if not gtk_tree_selection_get_selected(gtk_tree_view_get_selection(PGtkTreeView(FWidget)), nil, @Iter) then Exit; + Path := gtk_tree_model_get_path(gtk_tree_view_get_model(PGtkTreeView(FWidget)), @iter); + if not Assigned(Path) then Exit; + ConvertPathToChild(Path); // WriteLn('Selected Converted: ', String(gtk_tree_path_to_string(Path))); if Assigned(Path) then begin - if Application.GTKVersion_2_0_5_Up then AIndex := gtk_tree_path_get_indices(Path)^ - else AIndex := StrToIntDef(String(gtk_tree_path_to_string(Path)), 0); + AIndex := gtk_tree_path_get_indices(Path)^; Result := Items[AIndex]; Result.FIndex := AIndex; gtk_tree_path_free(Path); @@ -643,8 +599,7 @@ 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); - if Application.GTKVersion_2_0_5_Up then AIndex := gtk_tree_path_get_indices(Path)^ - else AIndex := StrToIntDef(String(gtk_tree_path_to_string(Path)), 0); + AIndex := gtk_tree_path_get_indices(Path)^; Result := Items[AIndex]; Result.FIndex := AIndex; gtk_tree_path_free(Path); @@ -1029,8 +984,7 @@ begin DataColumn := TGTKTreeViewColumn(data).FIndex; Path := gtk_tree_path_new_from_string(path_string); if not Assigned(Path) then Exit; - if Application.GTKVersion_2_0_5_Up then AIndex := gtk_tree_path_get_indices(Path)^ - else AIndex := StrToIntDef(String(gtk_tree_path_to_string(Path)), 0); + AIndex := gtk_tree_path_get_indices(Path)^; TGTKTreeViewColumn(data).FOnEdited(TGTKTreeViewColumn(data), TGTKTreeViewColumn(data), ((TGTKTreeViewColumn(data).FOwner as TGTKTreeViewColumns).FOwner as TGTKListView).Items[AIndex], NewText, AllowChange, DataColumn); if AllowChange and (((TGTKTreeViewColumn(data).FOwner as TGTKTreeViewColumns).FOwner as TGTKListView).Items.Count < AIndex) then ((TGTKTreeViewColumn(data).FOwner as TGTKTreeViewColumns).FOwner as TGTKListView).Items[AIndex].SetValue(DataColumn, NewText); @@ -1045,8 +999,7 @@ begin if Assigned(data) and Assigned(TGTKTreeViewColumn(data).FOnToggled) then begin Path := gtk_tree_path_new_from_string(path_string); if not Assigned(Path) then Exit; - if Application.GTKVersion_2_0_5_Up then AIndex := gtk_tree_path_get_indices(Path)^ - else AIndex := StrToIntDef(String(gtk_tree_path_to_string(Path)), 0); + AIndex := gtk_tree_path_get_indices(Path)^; TGTKTreeViewColumn(data).FOnToggled(TGTKTreeViewColumn(data), TGTKTreeViewColumn(data), ((TGTKTreeViewColumn(data).FOwner as TGTKTreeViewColumns).FOwner as TGTKListView).Items[AIndex]); end; end; @@ -1267,12 +1220,6 @@ var Iter, NewIter: TGtkTreeIter; Path: PGtkTreePath; begin try - if not Application.GTKVersion_2_0_5_Up then begin - Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(FIndex))); - ((FOwner as TGTKListItems).FOwner as TGTKView).ConvertChildToPath(Path); - gtk_tree_selection_select_path(((FOwner as TGTKListItems).FOwner as TGTKView).FSelection, Path); - gtk_tree_path_free(Path); - end else if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, StringToPgchar(IntToStr(FIndex))) then begin if Assigned(((FOwner as TGTKListItems).FOwner as TGTKView).FTreeModelSort) then begin gtk_tree_model_sort_convert_child_iter_to_iter(((FOwner as TGTKListItems).FOwner as TGTKView).FTreeModelSort, @NewIter, @Iter); @@ -1298,8 +1245,7 @@ begin Column := ((FOwner as TGTKListItems).FOwner as TGTKView).Columns[FocusColumnNo].FColumn; // Renderer := ((FOwner as TGTKListItems).FOwner as TGTKView).Columns[FocusColumnNo].FRenderer; -// if not Application.GTKVersion_2_0_5_Up then - for i := 1 to 2 do gtk_main_iteration_do(False); // This ugly piece of code HAVE TO BE HERE due some focus-related problems in GtkTreeView + for i := 1 to 2 do gtk_main_iteration_do(False); // This ugly piece of code HAVE TO BE HERE due some focus-related problems in GtkTreeView gtk_tree_view_set_cursor(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), Path, Column, StartEditing); // gtk_tree_view_set_cursor(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), Path, Column, StartEditing); // gtk_tree_view_set_cursor_on_cell(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), Path, Column, Renderer, StartEditing); |
