1 /* 2 * This file is part of d-dazzle. 3 * 4 * d-dazzle 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 * d-dazzle 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 d-dazzle; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 module dazzle.ListModelFilter; 20 21 private import dazzle.c.functions; 22 public import dazzle.c.types; 23 private import gio.ListModelIF; 24 private import gio.ListModelT; 25 private import glib.ConstructionException; 26 private import gobject.ObjectG; 27 28 29 /** */ 30 public class ListModelFilter : ObjectG, ListModelIF 31 { 32 /** the main Gtk struct */ 33 protected DzlListModelFilter* dzlListModelFilter; 34 35 /** Get the main Gtk struct */ 36 public DzlListModelFilter* getListModelFilterStruct(bool transferOwnership = false) 37 { 38 if (transferOwnership) 39 ownedRef = false; 40 return dzlListModelFilter; 41 } 42 43 /** the main Gtk struct as a void* */ 44 protected override void* getStruct() 45 { 46 return cast(void*)dzlListModelFilter; 47 } 48 49 /** 50 * Sets our main struct and passes it to the parent class. 51 */ 52 public this (DzlListModelFilter* dzlListModelFilter, bool ownedRef = false) 53 { 54 this.dzlListModelFilter = dzlListModelFilter; 55 super(cast(GObject*)dzlListModelFilter, ownedRef); 56 } 57 58 // add the ListModel capabilities 59 mixin ListModelT!(DzlListModelFilter); 60 61 62 /** */ 63 public static GType getType() 64 { 65 return dzl_list_model_filter_get_type(); 66 } 67 68 /** */ 69 public this(ListModelIF childModel) 70 { 71 auto p = dzl_list_model_filter_new((childModel is null) ? null : childModel.getListModelStruct()); 72 73 if(p is null) 74 { 75 throw new ConstructionException("null returned by new"); 76 } 77 78 this(cast(DzlListModelFilter*) p, true); 79 } 80 81 /** 82 * Gets the child model that is being filtered. 83 * 84 * Returns: A #GListModel. 85 */ 86 public ListModelIF getChildModel() 87 { 88 auto p = dzl_list_model_filter_get_child_model(dzlListModelFilter); 89 90 if(p is null) 91 { 92 return null; 93 } 94 95 return ObjectG.getDObject!(ListModelIF)(cast(GListModel*) p); 96 } 97 98 /** */ 99 public void invalidate() 100 { 101 dzl_list_model_filter_invalidate(dzlListModelFilter); 102 } 103 104 /** */ 105 public void setFilterFunc(DzlListModelFilterFunc filterFunc, void* filterFuncData, GDestroyNotify filterFuncDataDestroy) 106 { 107 dzl_list_model_filter_set_filter_func(dzlListModelFilter, filterFunc, filterFuncData, filterFuncDataDestroy); 108 } 109 }