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.ThreeGrid; 20 21 private import dazzle.c.functions; 22 public import dazzle.c.types; 23 private import glib.ConstructionException; 24 private import gobject.ObjectG; 25 private import gtk.BuildableIF; 26 private import gtk.BuildableT; 27 private import gtk.Container; 28 private import gtk.Widget; 29 30 31 /** */ 32 public class ThreeGrid : Container 33 { 34 /** the main Gtk struct */ 35 protected DzlThreeGrid* dzlThreeGrid; 36 37 /** Get the main Gtk struct */ 38 public DzlThreeGrid* getThreeGridStruct(bool transferOwnership = false) 39 { 40 if (transferOwnership) 41 ownedRef = false; 42 return dzlThreeGrid; 43 } 44 45 /** the main Gtk struct as a void* */ 46 protected override void* getStruct() 47 { 48 return cast(void*)dzlThreeGrid; 49 } 50 51 /** 52 * Sets our main struct and passes it to the parent class. 53 */ 54 public this (DzlThreeGrid* dzlThreeGrid, bool ownedRef = false) 55 { 56 this.dzlThreeGrid = dzlThreeGrid; 57 super(cast(GtkContainer*)dzlThreeGrid, ownedRef); 58 } 59 60 61 /** 62 Adds a widget to the grid at the row and column 63 (Helper function) 64 */ 65 public void addAt(Widget widget, uint row, uint column) { 66 this.add(widget); 67 moveChild(widget, row, column); 68 } 69 70 /** 71 Moves a widget on the grid from one row/column pair to an other 72 (Helper function) 73 */ 74 public void moveChild(Widget widget, uint row, uint column) { 75 import gobject.Value : Value; 76 this.childSetProperty(widget, "row", new Value(row)); 77 this.childSetProperty(widget, "column", new Value(column)); 78 } 79 80 /** 81 Sets the column spacing 82 */ 83 public void setColumnSpacing(uint spacing) { 84 setProperty("column-spacing", spacing); 85 } 86 87 /** 88 Gets the column spacing 89 */ 90 public uint getColumnSpacing() { 91 Value val = new Value(); 92 getProperty("column-spacing", val); 93 return val.get!uint; 94 } 95 96 /** 97 Sets the row spacing 98 */ 99 public void setRowSpacing(uint spacing) { 100 setProperty("row-spacing", spacing); 101 } 102 103 /** 104 Gets the row spacing 105 */ 106 public uint getRowSpacing() { 107 Value val = new Value(); 108 getProperty("row-spacing", val); 109 return val.get!uint; 110 } 111 112 113 /** 114 */ 115 116 /** */ 117 public static GType getType() 118 { 119 return dzl_three_grid_get_type(); 120 } 121 122 /** */ 123 public this() 124 { 125 auto p = dzl_three_grid_new(); 126 127 if(p is null) 128 { 129 throw new ConstructionException("null returned by new"); 130 } 131 132 this(cast(DzlThreeGrid*) p); 133 } 134 }