Changeset 519
- Timestamp:
- 07/07/08 16:16:35 (3 months ago)
- Files:
-
- trunk/src/build/gtkD.d (modified) (1 diff)
- trunk/src/gtk/CellEditable.d (modified) (6 diffs)
- trunk/src/gtk/CellEditableIF.d (added)
- trunk/src/gtk/CellEditableT.d (added)
- trunk/src/gtk/CellRenderer.d (modified) (6 diffs)
- trunk/src/gtk/ComboBox.d (modified) (5 diffs)
- trunk/src/gtk/Entry.d (modified) (5 diffs)
- trunk/src/gtk/Widget.d (modified) (1 diff)
- trunk/src/gtkc/gtk.d (modified) (1 diff)
- trunk/wrap/APILookupGtk.txt (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/build/gtkD.d
r517 r519 291 291 private import gtk.CellLayoutT; 292 292 private import gtk.CellRenderer; 293 private import gtk.CellEditableIF; 294 private import gtk.CellEditableT; 293 295 private import gtk.CellEditable; 294 296 private import gtk.CellRendererAccel; trunk/src/gtk/CellEditable.d
r480 r519 23 23 /* 24 24 * Conversion parameters: 25 * inFile = GtkCellEditable.html25 * inFile = 26 26 * outPack = gtk 27 27 * outFile = CellEditable 28 * strct = GtkCellEditable28 * strct = 29 29 * realStrct= 30 30 * ctorStrct= 31 31 * clss = CellEditable 32 32 * interf = 33 * class Code: No33 * class Code: Yes 34 34 * interface Code: No 35 35 * template for: 36 * extend = 36 * extend = ObjectG 37 37 * implements: 38 * - CellEditableIF 38 39 * prefixes: 39 * - gtk_cell_editable_40 * - gtk_41 40 * omit structs: 42 41 * omit prefixes: … … 44 43 * omit signals: 45 44 * imports: 45 * - gobject.ObjectG; 46 46 * - gdk.Event 47 * - gtk.CellEditableT 48 * - gtk.CellEditableIF 49 * - gobject.Signals 47 50 * structWrap: 48 * - GdkEvent* -> Event49 51 * module aliases: 50 52 * local aliases: … … 58 60 private import gtkc.gtk; 59 61 62 63 private import gobject.ObjectG;; 64 private import gdk.Event; 65 private import gtk.CellEditableT; 66 private import gtk.CellEditableIF; 60 67 private import gobject.Signals; 61 public import gtkc.gdktypes;62 63 private import gdk.Event;64 68 65 69 … … 67 71 68 72 /** 69 * Description70 * The GtkCellEditable interface must be implemented for widgets71 * to be usable when editing the contents of a GtkTreeView cell.72 73 */ 73 public class CellEditable 74 public class CellEditable : ObjectG, CellEditableIF 74 75 { 75 76 76 /** the main Gtk struct */ 77 protected GtkCellEditable* gtkCellEditable; 78 79 80 public GtkCellEditable* getCellEditableStruct() 81 { 82 return gtkCellEditable; 83 } 84 77 // Minimal implementation. 78 mixin CellEditableT!(GtkCellEditable); 85 79 86 80 /** the main Gtk struct as a void* */ 87 protected void* getStruct()81 protected override void* getStruct() 88 82 { 89 83 return cast(void*)gtkCellEditable; … … 101 95 else return; 102 96 } 97 //Check if there already is a D object for this gtk struct 98 void* ptr = getDObject(cast(GObject*)gtkCellEditable); 99 if( ptr !is null ) 100 { 101 this = cast(CellEditable)ptr; 102 return; 103 } 104 super(cast(GObject*)gtkCellEditable); 103 105 this.gtkCellEditable = gtkCellEditable; 104 106 } … … 106 108 /** 107 109 */ 108 int[char[]] connectedSignals;109 110 void delegate(CellEditable)[] onEditingDoneListeners;111 /**112 * This signal is a sign for the cell renderer to update its113 * value from the cell_editable.114 * Implementations of GtkCellEditable are responsible for115 * emitting this signal when they are done editing, e.g.116 * GtkEntry is emitting it when the user presses Enter.117 * gtk_cell_editable_editing_done() is a convenience method118 * for emitting ::editing-done.119 */120 void addOnEditingDone(void delegate(CellEditable) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)121 {122 if ( !("editing-done" in connectedSignals) )123 {124 Signals.connectData(125 getStruct(),126 "editing-done",127 cast(GCallback)&callBackEditingDone,128 cast(void*)this,129 null,130 connectFlags);131 connectedSignals["editing-done"] = 1;132 }133 onEditingDoneListeners ~= dlg;134 }135 extern(C) static void callBackEditingDone(GtkCellEditable* cellEditableStruct, CellEditable cellEditable)136 {137 bool consumed = false;138 139 foreach ( void delegate(CellEditable) dlg ; cellEditable.onEditingDoneListeners )140 {141 dlg(cellEditable);142 }143 144 return consumed;145 }146 147 void delegate(CellEditable)[] onRemoveWidgetListeners;148 /**149 * This signal is meant to indicate that the cell is finished150 * editing, and the widget may now be destroyed.151 * Implementations of GtkCellEditable are responsible for152 * emitting this signal when they are done editing. It must153 * be emitted after the "editing-done" signal,154 * to give the cell renderer a chance to update the cell's value155 * before the widget is removed.156 * gtk_cell_editable_remove_widget() is a convenience method157 * for emitting ::remove-widget.158 */159 void addOnRemoveWidget(void delegate(CellEditable) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)160 {161 if ( !("remove-widget" in connectedSignals) )162 {163 Signals.connectData(164 getStruct(),165 "remove-widget",166 cast(GCallback)&callBackRemoveWidget,167 cast(void*)this,168 null,169 connectFlags);170 connectedSignals["remove-widget"] = 1;171 }172 onRemoveWidgetListeners ~= dlg;173 }174 extern(C) static void callBackRemoveWidget(GtkCellEditable* cellEditableStruct, CellEditable cellEditable)175 {176 bool consumed = false;177 178 foreach ( void delegate(CellEditable) dlg ; cellEditable.onRemoveWidgetListeners )179 {180 dlg(cellEditable);181 }182 183 return consumed;184 }185 186 187 /**188 * Begins editing on a cell_editable. event is the GdkEvent that began189 * the editing process. It may be NULL, in the instance that editing was190 * initiated through programatic means.191 * Params:192 * event = A GdkEvent, or NULL193 */194 public void startEditing(Event event)195 {196 // void gtk_cell_editable_start_editing (GtkCellEditable *cell_editable, GdkEvent *event);197 gtk_cell_editable_start_editing(gtkCellEditable, (event is null) ? null : event.getEventStruct());198 }199 200 /**201 * Emits the "editing-done" signal.202 */203 public void editingDone()204 {205 // void gtk_cell_editable_editing_done (GtkCellEditable *cell_editable);206 gtk_cell_editable_editing_done(gtkCellEditable);207 }208 209 /**210 * Emits the "remove-widget" signal.211 */212 public void removeWidget()213 {214 // void gtk_cell_editable_remove_widget (GtkCellEditable *cell_editable);215 gtk_cell_editable_remove_widget(gtkCellEditable);216 }217 110 } trunk/src/gtk/CellRenderer.d
r506 r519 50 50 * - gdk.Event 51 51 * - gtk.CellEditable 52 * - gtk.CellEditableIF 52 53 * structWrap: 53 54 * - GdkEvent* -> Event 54 55 * - GdkRectangle* -> Rectangle 55 56 * - GdkWindow* -> Window 56 * - GtkCellEditable* -> CellEditable 57 * - GtkCellEditable* -> CellEditableIF 57 58 * - GtkWidget* -> Widget 58 59 * module aliases: … … 76 77 private import gdk.Event; 77 78 private import gtk.CellEditable; 79 private import gtk.CellEditableIF; 78 80 79 81 … … 190 192 } 191 193 192 void delegate(CellEditable , string, CellRenderer)[] onEditingStartedListeners;194 void delegate(CellEditableIF, string, CellRenderer)[] onEditingStartedListeners; 193 195 /** 194 196 * This signal gets emitted when a cell starts to be edited. … … 218 220 * GtkCellRendererText,GtkCellRendererPixbuf,GtkCellRendererToggle 219 221 */ 220 void addOnEditingStarted(void delegate(CellEditable , string, CellRenderer) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)222 void addOnEditingStarted(void delegate(CellEditableIF, string, CellRenderer) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 221 223 { 222 224 if ( !("editing-started" in connectedSignals) ) … … 237 239 bool consumed = false; 238 240 239 foreach ( void delegate(CellEditable , string, CellRenderer) dlg ; cellRenderer.onEditingStartedListeners )241 foreach ( void delegate(CellEditableIF, string, CellRenderer) dlg ; cellRenderer.onEditingStartedListeners ) 240 242 { 241 243 dlg(new CellEditable(editable), Str.toString(path), cellRenderer); … … 326 328 * Returns: A new GtkCellEditable, or NULL 327 329 */ 328 public CellEditable startEditing(Event event, Widget widget, string path, Rectangle backgroundArea, Rectangle cellArea, GtkCellRendererState flags)330 public CellEditableIF startEditing(Event event, Widget widget, string path, Rectangle backgroundArea, Rectangle cellArea, GtkCellRendererState flags) 329 331 { 330 332 // GtkCellEditable* gtk_cell_renderer_start_editing (GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, const gchar *path, GdkRectangle *background_area, GdkRectangle *cell_area, GtkCellRendererState flags); trunk/src/gtk/ComboBox.d
r517 r519 37 37 * implements: 38 38 * - CellLayoutIF 39 * - CellEditableIF 39 40 * prefixes: 40 41 * - gtk_combo_box_ … … 56 57 * - gtk.CellLayoutIF 57 58 * - gtk.CellLayoutT 59 * - gdk.Event 60 * - gtk.CellEditableT 61 * - gtk.CellEditableIF 62 * - gobject.Signals 58 63 * structWrap: 59 64 * - AtkObject* -> ObjectAtk … … 83 88 private import gtk.CellLayoutIF; 84 89 private import gtk.CellLayoutT; 90 private import gdk.Event; 91 private import gtk.CellEditableT; 92 private import gtk.CellEditableIF; 93 private import gobject.Signals; 85 94 86 95 … … 111 120 * gtk_combo_box_get_active_text(). 112 121 */ 113 public class ComboBox : Bin, CellLayoutIF 122 public class ComboBox : Bin, CellLayoutIF, CellEditableIF 114 123 { 115 124 … … 158 167 // add the CellLayout capabilities 159 168 mixin CellLayoutT!(GtkComboBox); 169 170 // add the CellEditable capabilities 171 mixin CellEditableT!(GtkComboBox); 160 172 161 173 /** trunk/src/gtk/Entry.d
r506 r519 36 36 * extend = 37 37 * implements: 38 * - CellEditableIF 38 39 * prefixes: 39 40 * - gtk_entry_ … … 48 49 * - gtk.EntryCompletion 49 50 * - pango.PgLayout 51 * - gdk.Event 52 * - gtk.CellEditableT 53 * - gtk.CellEditableIF 54 * - gobject.Signals 50 55 * structWrap: 51 56 * - GtkAdjustment* -> Adjustment … … 70 75 private import gtk.EntryCompletion; 71 76 private import pango.PgLayout; 77 private import gdk.Event; 78 private import gtk.CellEditableT; 79 private import gtk.CellEditableIF; 80 private import gobject.Signals; 72 81 73 82 … … 83 92 * position is visible. 84 93 */ 85 public class Entry : Widget 94 public class Entry : Widget, CellEditableIF 86 95 { 87 96 … … 123 132 this.gtkEntry = gtkEntry; 124 133 } 134 135 // add the CellEditable capabilities 136 mixin CellEditableT!(GtkEntry); 125 137 126 138 /** */ trunk/src/gtk/Widget.d
r518 r519 448 448 tt.setTip(this, tipText, tipPrivate); 449 449 } 450 450 451 451 //get the addOnDestroy from ObjectGtk 452 452 alias ObjectGtk.addOnDestroy addOnDestroy; trunk/src/gtkc/gtk.d
r517 r519 1738 1738 void function(GtkCellRenderer* cell, gint width, gint height)gtk_cell_renderer_set_fixed_size; 1739 1739 1740 // gtk.CellEditable 1740 // gtk.CellEditableT 1741 1742 1743 // gtk.CellEditableT 1741 1744 1742 1745 void function(GtkCellEditable* cellEditable, GdkEvent* event)gtk_cell_editable_start_editing; 1743 1746 void function(GtkCellEditable* cellEditable)gtk_cell_editable_editing_done; 1744 1747 void function(GtkCellEditable* cellEditable)gtk_cell_editable_remove_widget; 1748 1749 // gtk.CellEditable 1750 1745 1751 1746 1752 // gtk.CellRendererAccel trunk/wrap/APILookupGtk.txt
r517 r519 1746 1746 struct: GtkEntry 1747 1747 class: Entry 1748 implements: CellEditableIF 1748 1749 prefix: gtk_entry_ 1749 1750 prefix: gtk_ … … 1756 1757 structWrap: PangoLayout* PgLayout 1757 1758 1758 code: start 1759 # imports for CellEditable Interface 1760 import: gdk.Event 1761 import: gtk.CellEditableT 1762 import: gtk.CellEditableIF 1763 import: gobject.Signals 1764 1765 code: start 1766 // add the CellEditable capabilities 1767 mixin CellEditableT!(GtkEntry); 1768 1759 1769 /** */ 1760 1770 public this (string text) … … 3217 3227 structWrap: GdkEvent* Event 3218 3228 import: gtk.CellEditable 3219 structWrap: GtkCellEditable* CellEditable 3229 import: gtk.CellEditableIF 3230 structWrap: GtkCellEditable* CellEditableIF 3220 3231 outFile: CellRenderer 3221 3232 3222 3233 file: GtkCellEditable.html 3223 3234 struct: GtkCellEditable 3224 class: CellEditable 3235 class: CellEditableT 3236 template: TStruct 3225 3237 prefix: gtk_cell_editable_ 3226 3238 prefix: gtk_ 3227 3239 import: gdk.Event 3228 3240 structWrap: GdkEvent* Event 3241 interface: CellEditableIF 3242 outFile: CellEditableT 3243 3244 file: 3245 class: CellEditable 3246 extend: ObjectG 3247 implements: CellEditableIF 3248 import: gobject.ObjectG; 3249 3250 # imports for CellEditable Interface 3251 import: gdk.Event 3252 import: gtk.CellEditableT 3253 import: gtk.CellEditableIF 3254 import: gobject.Signals 3255 3256 code: start 3257 // Minimal implementation. 3258 mixin CellEditableT!(GtkCellEditable); 3259 3260 /** the main Gtk struct as a void* */ 3261 protected override void* getStruct() 3262 { 3263 return cast(void*)gtkCellEditable; 3264 } 3265 3266 /** 3267 * Sets our main struct and passes it to the parent class 3268 */ 3269 public this (GtkCellEditable* gtkCellEditable) 3270 { 3271 if(gtkCellEditable is null) 3272 { 3273 this = null; 3274 version(Exceptions) throw new Exception("Null gtkCellEditable passed to constructor."); 3275 else return; 3276 } 3277 //Check if there already is a D object for this gtk struct 3278 void* ptr = getDObject(cast(GObject*)gtkCellEditable); 3279 if( ptr !is null ) 3280 { 3281 this = cast(CellEditable)ptr; 3282 return; 3283 } 3284 super(cast(GObject*)gtkCellEditable); 3285 this.gtkCellEditable = gtkCellEditable; 3286 } 3287 code: end 3229 3288 outFile: CellEditable 3230 3289 … … 3641 3700 class: ComboBox 3642 3701 implements: CellLayoutIF 3702 implements: CellEditableIF 3643 3703 import: atk.ObjectAtk 3644 3704 structWrap: AtkObject* ObjectAtk … … 3664 3724 import: gtk.CellLayoutT 3665 3725 3726 # imports for CellEditable Interface 3727 import: gdk.Event 3728 import: gtk.CellEditableT 3729 import: gtk.CellEditableIF 3730 import: gobject.Signals 3731 3666 3732 nocode: gtk_combo_box_new 3667 3733 nocode: gtk_combo_box_new_text … … 3675 3741 // add the CellLayout capabilities 3676 3742 mixin CellLayoutT!(GtkComboBox); 3743 3744 // add the CellEditable capabilities 3745 mixin CellEditableT!(GtkComboBox); 3677 3746 3678 3747 /**
