1 /* 2 * This file is part of gtkD. 3 * 4 * gtkD is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License 6 * as published by the Free Software Foundation; either version 3 7 * of the License, or (at your option) any later version, with 8 * some exceptions, please read the COPYING file. 9 * 10 * gtkD is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with gtkD; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 20 // generated automatically - do not change 21 // find conversion definition on APILookup.txt 22 // implement new conversion functionalities on the wrap.utils pakage 23 24 25 module gtk.TreeSortableIF; 26 27 private import gobject.Signals; 28 private import gtkc.gtk; 29 public import gtkc.gtktypes; 30 private import std.algorithm; 31 32 33 /** 34 * #GtkTreeSortable is an interface to be implemented by tree models which 35 * support sorting. The #GtkTreeView uses the methods provided by this interface 36 * to sort the model. 37 */ 38 public interface TreeSortableIF{ 39 /** Get the main Gtk struct */ 40 public GtkTreeSortable* getTreeSortableStruct(bool transferOwnership = false); 41 42 /** the main Gtk struct as a void* */ 43 protected void* getStruct(); 44 45 46 /** 47 * Fills in @sort_column_id and @order with the current sort column and the 48 * order. It returns %TRUE unless the @sort_column_id is 49 * %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID or 50 * %GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID. 51 * 52 * Params: 53 * sortColumnId = The sort column id to be filled in 54 * order = The #GtkSortType to be filled in 55 * 56 * Returns: %TRUE if the sort column is not one of the special sort 57 * column ids. 58 */ 59 public bool getSortColumnId(out int sortColumnId, out GtkSortType order); 60 61 /** 62 * Returns %TRUE if the model has a default sort function. This is used 63 * primarily by GtkTreeViewColumns in order to determine if a model can 64 * go back to the default state, or not. 65 * 66 * Returns: %TRUE, if the model has a default sort function 67 */ 68 public bool hasDefaultSortFunc(); 69 70 /** 71 * Sets the default comparison function used when sorting to be @sort_func. 72 * If the current sort column id of @sortable is 73 * %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, then the model will sort using 74 * this function. 75 * 76 * If @sort_func is %NULL, then there will be no default comparison function. 77 * This means that once the model has been sorted, it can’t go back to the 78 * default state. In this case, when the current sort column id of @sortable 79 * is %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, the model will be unsorted. 80 * 81 * Params: 82 * sortFunc = The comparison function 83 * userData = User data to pass to @sort_func, or %NULL 84 * destroy = Destroy notifier of @user_data, or %NULL 85 */ 86 public void setDefaultSortFunc(GtkTreeIterCompareFunc sortFunc, void* userData, GDestroyNotify destroy); 87 88 /** 89 * Sets the current sort column to be @sort_column_id. The @sortable will 90 * resort itself to reflect this change, after emitting a 91 * #GtkTreeSortable::sort-column-changed signal. @sort_column_id may either be 92 * a regular column id, or one of the following special values: 93 * 94 * - %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID: the default sort function 95 * will be used, if it is set 96 * 97 * - %GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID: no sorting will occur 98 * 99 * Params: 100 * sortColumnId = the sort column id to set 101 * order = The sort order of the column 102 */ 103 public void setSortColumnId(int sortColumnId, GtkSortType order); 104 105 /** 106 * Sets the comparison function used when sorting to be @sort_func. If the 107 * current sort column id of @sortable is the same as @sort_column_id, then 108 * the model will sort using this function. 109 * 110 * Params: 111 * sortColumnId = the sort column id to set the function for 112 * sortFunc = The comparison function 113 * userData = User data to pass to @sort_func, or %NULL 114 * destroy = Destroy notifier of @user_data, or %NULL 115 */ 116 public void setSortFunc(int sortColumnId, GtkTreeIterCompareFunc sortFunc, void* userData, GDestroyNotify destroy); 117 118 /** 119 * Emits a #GtkTreeSortable::sort-column-changed signal on @sortable. 120 */ 121 public void sortColumnChanged(); 122 123 /** 124 * The ::sort-column-changed signal is emitted when the sort column 125 * or sort order of @sortable is changed. The signal is emitted before 126 * the contents of @sortable are resorted. 127 */ 128 gulong addOnSortColumnChanged(void delegate(TreeSortableIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0); 129 }