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.CellRendererToggle; 26 27 private import glib.ConstructionException; 28 private import glib.Str; 29 private import gobject.ObjectG; 30 private import gobject.Signals; 31 private import gtk.CellRenderer; 32 public import gtkc.gdktypes; 33 private import gtkc.gtk; 34 public import gtkc.gtktypes; 35 36 37 /** 38 * #GtkCellRendererToggle renders a toggle button in a cell. The 39 * button is drawn as a radio or a checkbutton, depending on the 40 * #GtkCellRendererToggle:radio property. 41 * When activated, it emits the #GtkCellRendererToggle::toggled signal. 42 */ 43 public class CellRendererToggle : CellRenderer 44 { 45 /** the main Gtk struct */ 46 protected GtkCellRendererToggle* gtkCellRendererToggle; 47 48 /** Get the main Gtk struct */ 49 public GtkCellRendererToggle* getCellRendererToggleStruct() 50 { 51 return gtkCellRendererToggle; 52 } 53 54 /** the main Gtk struct as a void* */ 55 protected override void* getStruct() 56 { 57 return cast(void*)gtkCellRendererToggle; 58 } 59 60 protected override void setStruct(GObject* obj) 61 { 62 gtkCellRendererToggle = cast(GtkCellRendererToggle*)obj; 63 super.setStruct(obj); 64 } 65 66 /** 67 * Sets our main struct and passes it to the parent class. 68 */ 69 public this (GtkCellRendererToggle* gtkCellRendererToggle, bool ownedRef = false) 70 { 71 this.gtkCellRendererToggle = gtkCellRendererToggle; 72 super(cast(GtkCellRenderer*)gtkCellRendererToggle, ownedRef); 73 } 74 75 /** 76 */ 77 78 public static GType getType() 79 { 80 return gtk_cell_renderer_toggle_get_type(); 81 } 82 83 /** 84 * Creates a new #GtkCellRendererToggle. Adjust rendering 85 * parameters using object properties. Object properties can be set 86 * globally (with g_object_set()). Also, with #GtkTreeViewColumn, you 87 * can bind a property to a value in a #GtkTreeModel. For example, you 88 * can bind the “active” property on the cell renderer to a boolean value 89 * in the model, thus causing the check button to reflect the state of 90 * the model. 91 * 92 * Return: the new cell renderer 93 * 94 * Throws: ConstructionException GTK+ fails to create the object. 95 */ 96 public this() 97 { 98 auto p = gtk_cell_renderer_toggle_new(); 99 100 if(p is null) 101 { 102 throw new ConstructionException("null returned by new"); 103 } 104 105 this(cast(GtkCellRendererToggle*) p); 106 } 107 108 /** 109 * Returns whether the cell renderer is activatable. See 110 * gtk_cell_renderer_toggle_set_activatable(). 111 * 112 * Return: %TRUE if the cell renderer is activatable. 113 * 114 * Since: 2.18 115 */ 116 public bool getActivatable() 117 { 118 return gtk_cell_renderer_toggle_get_activatable(gtkCellRendererToggle) != 0; 119 } 120 121 /** 122 * Returns whether the cell renderer is active. See 123 * gtk_cell_renderer_toggle_set_active(). 124 * 125 * Return: %TRUE if the cell renderer is active. 126 */ 127 public bool getActive() 128 { 129 return gtk_cell_renderer_toggle_get_active(gtkCellRendererToggle) != 0; 130 } 131 132 /** 133 * Returns whether we’re rendering radio toggles rather than checkboxes. 134 * 135 * Return: %TRUE if we’re rendering radio toggles rather than checkboxes 136 */ 137 public bool getRadio() 138 { 139 return gtk_cell_renderer_toggle_get_radio(gtkCellRendererToggle) != 0; 140 } 141 142 /** 143 * Makes the cell renderer activatable. 144 * 145 * Params: 146 * setting = the value to set. 147 * 148 * Since: 2.18 149 */ 150 public void setActivatable(bool setting) 151 { 152 gtk_cell_renderer_toggle_set_activatable(gtkCellRendererToggle, setting); 153 } 154 155 /** 156 * Activates or deactivates a cell renderer. 157 * 158 * Params: 159 * setting = the value to set. 160 */ 161 public void setActive(bool setting) 162 { 163 gtk_cell_renderer_toggle_set_active(gtkCellRendererToggle, setting); 164 } 165 166 /** 167 * If @radio is %TRUE, the cell renderer renders a radio toggle 168 * (i.e. a toggle in a group of mutually-exclusive toggles). 169 * If %FALSE, it renders a check toggle (a standalone boolean option). 170 * This can be set globally for the cell renderer, or changed just 171 * before rendering each cell in the model (for #GtkTreeView, you set 172 * up a per-row setting using #GtkTreeViewColumn to associate model 173 * columns with cell renderer properties). 174 * 175 * Params: 176 * radio = %TRUE to make the toggle look like a radio button 177 */ 178 public void setRadio(bool radio) 179 { 180 gtk_cell_renderer_toggle_set_radio(gtkCellRendererToggle, radio); 181 } 182 183 int[string] connectedSignals; 184 185 void delegate(string, CellRendererToggle)[] onToggledListeners; 186 /** 187 * The ::toggled signal is emitted when the cell is toggled. 188 * 189 * It is the responsibility of the application to update the model 190 * with the correct value to store at @path. Often this is simply the 191 * opposite of the value currently stored at @path. 192 * 193 * Params: 194 * path = string representation of #GtkTreePath describing the 195 * event location 196 */ 197 void addOnToggled(void delegate(string, CellRendererToggle) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 198 { 199 if ( "toggled" !in connectedSignals ) 200 { 201 Signals.connectData( 202 this, 203 "toggled", 204 cast(GCallback)&callBackToggled, 205 cast(void*)this, 206 null, 207 connectFlags); 208 connectedSignals["toggled"] = 1; 209 } 210 onToggledListeners ~= dlg; 211 } 212 extern(C) static void callBackToggled(GtkCellRendererToggle* cellrenderertoggleStruct, char* path, CellRendererToggle _cellrenderertoggle) 213 { 214 foreach ( void delegate(string, CellRendererToggle) dlg; _cellrenderertoggle.onToggledListeners ) 215 { 216 dlg(Str.toString(path), _cellrenderertoggle); 217 } 218 } 219 }