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 atk.WindowT; 26 27 public import gobject.Signals; 28 public import gtkc.atk; 29 public import gtkc.atktypes; 30 public import gtkc.gdktypes; 31 public import std.algorithm; 32 33 34 /** 35 * #AtkWindow should be implemented by the UI elements that represent 36 * a top-level window, such as the main window of an application or 37 * dialog. 38 */ 39 public template WindowT(TStruct) 40 { 41 /** Get the main Gtk struct */ 42 public AtkWindow* getWindowStruct() 43 { 44 return cast(AtkWindow*)getStruct(); 45 } 46 47 48 protected class OnActivateDelegateWrapper 49 { 50 void delegate(WindowIF) dlg; 51 gulong handlerId; 52 ConnectFlags flags; 53 this(void delegate(WindowIF) dlg, gulong handlerId, ConnectFlags flags) 54 { 55 this.dlg = dlg; 56 this.handlerId = handlerId; 57 this.flags = flags; 58 } 59 } 60 protected OnActivateDelegateWrapper[] onActivateListeners; 61 62 /** 63 * The signal #AtkWindow::activate is emitted when a window 64 * becomes the active window of the application or session. 65 * 66 * Since: 2.2 67 */ 68 gulong addOnActivate(void delegate(WindowIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 69 { 70 onActivateListeners ~= new OnActivateDelegateWrapper(dlg, 0, connectFlags); 71 onActivateListeners[onActivateListeners.length - 1].handlerId = Signals.connectData( 72 this, 73 "activate", 74 cast(GCallback)&callBackActivate, 75 cast(void*)onActivateListeners[onActivateListeners.length - 1], 76 cast(GClosureNotify)&callBackActivateDestroy, 77 connectFlags); 78 return onActivateListeners[onActivateListeners.length - 1].handlerId; 79 } 80 81 extern(C) static void callBackActivate(AtkWindow* windowStruct,OnActivateDelegateWrapper wrapper) 82 { 83 wrapper.dlg(wrapper.outer); 84 } 85 86 extern(C) static void callBackActivateDestroy(OnActivateDelegateWrapper wrapper, GClosure* closure) 87 { 88 wrapper.outer.internalRemoveOnActivate(wrapper); 89 } 90 91 protected void internalRemoveOnActivate(OnActivateDelegateWrapper source) 92 { 93 foreach(index, wrapper; onActivateListeners) 94 { 95 if (wrapper.dlg == source.dlg && wrapper.flags == source.flags && wrapper.handlerId == source.handlerId) 96 { 97 onActivateListeners[index] = null; 98 onActivateListeners = std.algorithm.remove(onActivateListeners, index); 99 break; 100 } 101 } 102 } 103 104 105 protected class OnCreateDelegateWrapper 106 { 107 void delegate(WindowIF) dlg; 108 gulong handlerId; 109 ConnectFlags flags; 110 this(void delegate(WindowIF) dlg, gulong handlerId, ConnectFlags flags) 111 { 112 this.dlg = dlg; 113 this.handlerId = handlerId; 114 this.flags = flags; 115 } 116 } 117 protected OnCreateDelegateWrapper[] onCreateListeners; 118 119 /** 120 * The signal #AtkWindow::create is emitted when a new window 121 * is created. 122 * 123 * Since: 2.2 124 */ 125 gulong addOnCreate(void delegate(WindowIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 126 { 127 onCreateListeners ~= new OnCreateDelegateWrapper(dlg, 0, connectFlags); 128 onCreateListeners[onCreateListeners.length - 1].handlerId = Signals.connectData( 129 this, 130 "create", 131 cast(GCallback)&callBackCreate, 132 cast(void*)onCreateListeners[onCreateListeners.length - 1], 133 cast(GClosureNotify)&callBackCreateDestroy, 134 connectFlags); 135 return onCreateListeners[onCreateListeners.length - 1].handlerId; 136 } 137 138 extern(C) static void callBackCreate(AtkWindow* windowStruct,OnCreateDelegateWrapper wrapper) 139 { 140 wrapper.dlg(wrapper.outer); 141 } 142 143 extern(C) static void callBackCreateDestroy(OnCreateDelegateWrapper wrapper, GClosure* closure) 144 { 145 wrapper.outer.internalRemoveOnCreate(wrapper); 146 } 147 148 protected void internalRemoveOnCreate(OnCreateDelegateWrapper source) 149 { 150 foreach(index, wrapper; onCreateListeners) 151 { 152 if (wrapper.dlg == source.dlg && wrapper.flags == source.flags && wrapper.handlerId == source.handlerId) 153 { 154 onCreateListeners[index] = null; 155 onCreateListeners = std.algorithm.remove(onCreateListeners, index); 156 break; 157 } 158 } 159 } 160 161 162 protected class OnDeactivateDelegateWrapper 163 { 164 void delegate(WindowIF) dlg; 165 gulong handlerId; 166 ConnectFlags flags; 167 this(void delegate(WindowIF) dlg, gulong handlerId, ConnectFlags flags) 168 { 169 this.dlg = dlg; 170 this.handlerId = handlerId; 171 this.flags = flags; 172 } 173 } 174 protected OnDeactivateDelegateWrapper[] onDeactivateListeners; 175 176 /** 177 * The signal #AtkWindow::deactivate is emitted when a window is 178 * no longer the active window of the application or session. 179 * 180 * Since: 2.2 181 */ 182 gulong addOnDeactivate(void delegate(WindowIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 183 { 184 onDeactivateListeners ~= new OnDeactivateDelegateWrapper(dlg, 0, connectFlags); 185 onDeactivateListeners[onDeactivateListeners.length - 1].handlerId = Signals.connectData( 186 this, 187 "deactivate", 188 cast(GCallback)&callBackDeactivate, 189 cast(void*)onDeactivateListeners[onDeactivateListeners.length - 1], 190 cast(GClosureNotify)&callBackDeactivateDestroy, 191 connectFlags); 192 return onDeactivateListeners[onDeactivateListeners.length - 1].handlerId; 193 } 194 195 extern(C) static void callBackDeactivate(AtkWindow* windowStruct,OnDeactivateDelegateWrapper wrapper) 196 { 197 wrapper.dlg(wrapper.outer); 198 } 199 200 extern(C) static void callBackDeactivateDestroy(OnDeactivateDelegateWrapper wrapper, GClosure* closure) 201 { 202 wrapper.outer.internalRemoveOnDeactivate(wrapper); 203 } 204 205 protected void internalRemoveOnDeactivate(OnDeactivateDelegateWrapper source) 206 { 207 foreach(index, wrapper; onDeactivateListeners) 208 { 209 if (wrapper.dlg == source.dlg && wrapper.flags == source.flags && wrapper.handlerId == source.handlerId) 210 { 211 onDeactivateListeners[index] = null; 212 onDeactivateListeners = std.algorithm.remove(onDeactivateListeners, index); 213 break; 214 } 215 } 216 } 217 218 219 protected class OnDestroyDelegateWrapper 220 { 221 void delegate(WindowIF) dlg; 222 gulong handlerId; 223 ConnectFlags flags; 224 this(void delegate(WindowIF) dlg, gulong handlerId, ConnectFlags flags) 225 { 226 this.dlg = dlg; 227 this.handlerId = handlerId; 228 this.flags = flags; 229 } 230 } 231 protected OnDestroyDelegateWrapper[] onDestroyListeners; 232 233 /** 234 * The signal #AtkWindow::destroy is emitted when a window is 235 * destroyed. 236 * 237 * Since: 2.2 238 */ 239 gulong addOnDestroy(void delegate(WindowIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 240 { 241 onDestroyListeners ~= new OnDestroyDelegateWrapper(dlg, 0, connectFlags); 242 onDestroyListeners[onDestroyListeners.length - 1].handlerId = Signals.connectData( 243 this, 244 "destroy", 245 cast(GCallback)&callBackDestroy, 246 cast(void*)onDestroyListeners[onDestroyListeners.length - 1], 247 cast(GClosureNotify)&callBackDestroyDestroy, 248 connectFlags); 249 return onDestroyListeners[onDestroyListeners.length - 1].handlerId; 250 } 251 252 extern(C) static void callBackDestroy(AtkWindow* windowStruct,OnDestroyDelegateWrapper wrapper) 253 { 254 wrapper.dlg(wrapper.outer); 255 } 256 257 extern(C) static void callBackDestroyDestroy(OnDestroyDelegateWrapper wrapper, GClosure* closure) 258 { 259 wrapper.outer.internalRemoveOnDestroy(wrapper); 260 } 261 262 protected void internalRemoveOnDestroy(OnDestroyDelegateWrapper source) 263 { 264 foreach(index, wrapper; onDestroyListeners) 265 { 266 if (wrapper.dlg == source.dlg && wrapper.flags == source.flags && wrapper.handlerId == source.handlerId) 267 { 268 onDestroyListeners[index] = null; 269 onDestroyListeners = std.algorithm.remove(onDestroyListeners, index); 270 break; 271 } 272 } 273 } 274 275 276 protected class OnMaximizeDelegateWrapper 277 { 278 void delegate(WindowIF) dlg; 279 gulong handlerId; 280 ConnectFlags flags; 281 this(void delegate(WindowIF) dlg, gulong handlerId, ConnectFlags flags) 282 { 283 this.dlg = dlg; 284 this.handlerId = handlerId; 285 this.flags = flags; 286 } 287 } 288 protected OnMaximizeDelegateWrapper[] onMaximizeListeners; 289 290 /** 291 * The signal #AtkWindow::maximize is emitted when a window 292 * is maximized. 293 * 294 * Since: 2.2 295 */ 296 gulong addOnMaximize(void delegate(WindowIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 297 { 298 onMaximizeListeners ~= new OnMaximizeDelegateWrapper(dlg, 0, connectFlags); 299 onMaximizeListeners[onMaximizeListeners.length - 1].handlerId = Signals.connectData( 300 this, 301 "maximize", 302 cast(GCallback)&callBackMaximize, 303 cast(void*)onMaximizeListeners[onMaximizeListeners.length - 1], 304 cast(GClosureNotify)&callBackMaximizeDestroy, 305 connectFlags); 306 return onMaximizeListeners[onMaximizeListeners.length - 1].handlerId; 307 } 308 309 extern(C) static void callBackMaximize(AtkWindow* windowStruct,OnMaximizeDelegateWrapper wrapper) 310 { 311 wrapper.dlg(wrapper.outer); 312 } 313 314 extern(C) static void callBackMaximizeDestroy(OnMaximizeDelegateWrapper wrapper, GClosure* closure) 315 { 316 wrapper.outer.internalRemoveOnMaximize(wrapper); 317 } 318 319 protected void internalRemoveOnMaximize(OnMaximizeDelegateWrapper source) 320 { 321 foreach(index, wrapper; onMaximizeListeners) 322 { 323 if (wrapper.dlg == source.dlg && wrapper.flags == source.flags && wrapper.handlerId == source.handlerId) 324 { 325 onMaximizeListeners[index] = null; 326 onMaximizeListeners = std.algorithm.remove(onMaximizeListeners, index); 327 break; 328 } 329 } 330 } 331 332 333 protected class OnMinimizeDelegateWrapper 334 { 335 void delegate(WindowIF) dlg; 336 gulong handlerId; 337 ConnectFlags flags; 338 this(void delegate(WindowIF) dlg, gulong handlerId, ConnectFlags flags) 339 { 340 this.dlg = dlg; 341 this.handlerId = handlerId; 342 this.flags = flags; 343 } 344 } 345 protected OnMinimizeDelegateWrapper[] onMinimizeListeners; 346 347 /** 348 * The signal #AtkWindow::minimize is emitted when a window 349 * is minimized. 350 * 351 * Since: 2.2 352 */ 353 gulong addOnMinimize(void delegate(WindowIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 354 { 355 onMinimizeListeners ~= new OnMinimizeDelegateWrapper(dlg, 0, connectFlags); 356 onMinimizeListeners[onMinimizeListeners.length - 1].handlerId = Signals.connectData( 357 this, 358 "minimize", 359 cast(GCallback)&callBackMinimize, 360 cast(void*)onMinimizeListeners[onMinimizeListeners.length - 1], 361 cast(GClosureNotify)&callBackMinimizeDestroy, 362 connectFlags); 363 return onMinimizeListeners[onMinimizeListeners.length - 1].handlerId; 364 } 365 366 extern(C) static void callBackMinimize(AtkWindow* windowStruct,OnMinimizeDelegateWrapper wrapper) 367 { 368 wrapper.dlg(wrapper.outer); 369 } 370 371 extern(C) static void callBackMinimizeDestroy(OnMinimizeDelegateWrapper wrapper, GClosure* closure) 372 { 373 wrapper.outer.internalRemoveOnMinimize(wrapper); 374 } 375 376 protected void internalRemoveOnMinimize(OnMinimizeDelegateWrapper source) 377 { 378 foreach(index, wrapper; onMinimizeListeners) 379 { 380 if (wrapper.dlg == source.dlg && wrapper.flags == source.flags && wrapper.handlerId == source.handlerId) 381 { 382 onMinimizeListeners[index] = null; 383 onMinimizeListeners = std.algorithm.remove(onMinimizeListeners, index); 384 break; 385 } 386 } 387 } 388 389 390 protected class OnMoveDelegateWrapper 391 { 392 void delegate(WindowIF) dlg; 393 gulong handlerId; 394 ConnectFlags flags; 395 this(void delegate(WindowIF) dlg, gulong handlerId, ConnectFlags flags) 396 { 397 this.dlg = dlg; 398 this.handlerId = handlerId; 399 this.flags = flags; 400 } 401 } 402 protected OnMoveDelegateWrapper[] onMoveListeners; 403 404 /** 405 * The signal #AtkWindow::move is emitted when a window 406 * is moved. 407 * 408 * Since: 2.2 409 */ 410 gulong addOnMove(void delegate(WindowIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 411 { 412 onMoveListeners ~= new OnMoveDelegateWrapper(dlg, 0, connectFlags); 413 onMoveListeners[onMoveListeners.length - 1].handlerId = Signals.connectData( 414 this, 415 "move", 416 cast(GCallback)&callBackMove, 417 cast(void*)onMoveListeners[onMoveListeners.length - 1], 418 cast(GClosureNotify)&callBackMoveDestroy, 419 connectFlags); 420 return onMoveListeners[onMoveListeners.length - 1].handlerId; 421 } 422 423 extern(C) static void callBackMove(AtkWindow* windowStruct,OnMoveDelegateWrapper wrapper) 424 { 425 wrapper.dlg(wrapper.outer); 426 } 427 428 extern(C) static void callBackMoveDestroy(OnMoveDelegateWrapper wrapper, GClosure* closure) 429 { 430 wrapper.outer.internalRemoveOnMove(wrapper); 431 } 432 433 protected void internalRemoveOnMove(OnMoveDelegateWrapper source) 434 { 435 foreach(index, wrapper; onMoveListeners) 436 { 437 if (wrapper.dlg == source.dlg && wrapper.flags == source.flags && wrapper.handlerId == source.handlerId) 438 { 439 onMoveListeners[index] = null; 440 onMoveListeners = std.algorithm.remove(onMoveListeners, index); 441 break; 442 } 443 } 444 } 445 446 447 protected class OnResizeDelegateWrapper 448 { 449 void delegate(WindowIF) dlg; 450 gulong handlerId; 451 ConnectFlags flags; 452 this(void delegate(WindowIF) dlg, gulong handlerId, ConnectFlags flags) 453 { 454 this.dlg = dlg; 455 this.handlerId = handlerId; 456 this.flags = flags; 457 } 458 } 459 protected OnResizeDelegateWrapper[] onResizeListeners; 460 461 /** 462 * The signal #AtkWindow::resize is emitted when a window 463 * is resized. 464 * 465 * Since: 2.2 466 */ 467 gulong addOnResize(void delegate(WindowIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 468 { 469 onResizeListeners ~= new OnResizeDelegateWrapper(dlg, 0, connectFlags); 470 onResizeListeners[onResizeListeners.length - 1].handlerId = Signals.connectData( 471 this, 472 "resize", 473 cast(GCallback)&callBackResize, 474 cast(void*)onResizeListeners[onResizeListeners.length - 1], 475 cast(GClosureNotify)&callBackResizeDestroy, 476 connectFlags); 477 return onResizeListeners[onResizeListeners.length - 1].handlerId; 478 } 479 480 extern(C) static void callBackResize(AtkWindow* windowStruct,OnResizeDelegateWrapper wrapper) 481 { 482 wrapper.dlg(wrapper.outer); 483 } 484 485 extern(C) static void callBackResizeDestroy(OnResizeDelegateWrapper wrapper, GClosure* closure) 486 { 487 wrapper.outer.internalRemoveOnResize(wrapper); 488 } 489 490 protected void internalRemoveOnResize(OnResizeDelegateWrapper source) 491 { 492 foreach(index, wrapper; onResizeListeners) 493 { 494 if (wrapper.dlg == source.dlg && wrapper.flags == source.flags && wrapper.handlerId == source.handlerId) 495 { 496 onResizeListeners[index] = null; 497 onResizeListeners = std.algorithm.remove(onResizeListeners, index); 498 break; 499 } 500 } 501 } 502 503 504 protected class OnRestoreDelegateWrapper 505 { 506 void delegate(WindowIF) dlg; 507 gulong handlerId; 508 ConnectFlags flags; 509 this(void delegate(WindowIF) dlg, gulong handlerId, ConnectFlags flags) 510 { 511 this.dlg = dlg; 512 this.handlerId = handlerId; 513 this.flags = flags; 514 } 515 } 516 protected OnRestoreDelegateWrapper[] onRestoreListeners; 517 518 /** 519 * The signal #AtkWindow::restore is emitted when a window 520 * is restored. 521 * 522 * Since: 2.2 523 */ 524 gulong addOnRestore(void delegate(WindowIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 525 { 526 onRestoreListeners ~= new OnRestoreDelegateWrapper(dlg, 0, connectFlags); 527 onRestoreListeners[onRestoreListeners.length - 1].handlerId = Signals.connectData( 528 this, 529 "restore", 530 cast(GCallback)&callBackRestore, 531 cast(void*)onRestoreListeners[onRestoreListeners.length - 1], 532 cast(GClosureNotify)&callBackRestoreDestroy, 533 connectFlags); 534 return onRestoreListeners[onRestoreListeners.length - 1].handlerId; 535 } 536 537 extern(C) static void callBackRestore(AtkWindow* windowStruct,OnRestoreDelegateWrapper wrapper) 538 { 539 wrapper.dlg(wrapper.outer); 540 } 541 542 extern(C) static void callBackRestoreDestroy(OnRestoreDelegateWrapper wrapper, GClosure* closure) 543 { 544 wrapper.outer.internalRemoveOnRestore(wrapper); 545 } 546 547 protected void internalRemoveOnRestore(OnRestoreDelegateWrapper source) 548 { 549 foreach(index, wrapper; onRestoreListeners) 550 { 551 if (wrapper.dlg == source.dlg && wrapper.flags == source.flags && wrapper.handlerId == source.handlerId) 552 { 553 onRestoreListeners[index] = null; 554 onRestoreListeners = std.algorithm.remove(onRestoreListeners, index); 555 break; 556 } 557 } 558 } 559 560 }