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.TreeViewColumn; 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.BuildableIF; 32 private import gtk.BuildableT; 33 private import gtk.Button; 34 private import gtk.CellArea; 35 private import gtk.CellLayoutIF; 36 private import gtk.CellLayoutT; 37 private import gtk.CellRenderer; 38 private import gtk.TreeIter; 39 private import gtk.TreeModelIF; 40 private import gtk.TreeView; 41 private import gtk.Widget; 42 private import gtk.c.functions; 43 public import gtk.c.types; 44 public import gtkc.gtktypes; 45 private import std.algorithm; 46 47 48 /** 49 * The GtkTreeViewColumn object represents a visible column in a #GtkTreeView widget. 50 * It allows to set properties of the column header, and functions as a holding pen for 51 * the cell renderers which determine how the data in the column is displayed. 52 * 53 * Please refer to the [tree widget conceptual overview][TreeWidget] 54 * for an overview of all the objects and data types related to the tree widget and how 55 * they work together. 56 */ 57 public class TreeViewColumn : ObjectG, BuildableIF, CellLayoutIF 58 { 59 /** the main Gtk struct */ 60 protected GtkTreeViewColumn* gtkTreeViewColumn; 61 62 /** Get the main Gtk struct */ 63 public GtkTreeViewColumn* getTreeViewColumnStruct(bool transferOwnership = false) 64 { 65 if (transferOwnership) 66 ownedRef = false; 67 return gtkTreeViewColumn; 68 } 69 70 /** the main Gtk struct as a void* */ 71 protected override void* getStruct() 72 { 73 return cast(void*)gtkTreeViewColumn; 74 } 75 76 /** 77 * Sets our main struct and passes it to the parent class. 78 */ 79 public this (GtkTreeViewColumn* gtkTreeViewColumn, bool ownedRef = false) 80 { 81 this.gtkTreeViewColumn = gtkTreeViewColumn; 82 super(cast(GObject*)gtkTreeViewColumn, ownedRef); 83 } 84 85 // add the Buildable capabilities 86 mixin BuildableT!(GtkTreeViewColumn); 87 88 // add the CellLayout capabilities 89 mixin CellLayoutT!(GtkTreeViewColumn); 90 91 /** 92 * Creates a new Tree view column 93 * Params: 94 * header = th column header text 95 * renderer = the rederer for the column cells 96 * type = the type of data to be displayed (shouldn't this be on the renderer?) 97 * column = the column number 98 * Throws: ConstructionException GTK+ fails to create the object. 99 */ 100 this(string header, CellRenderer renderer, string type, int column) 101 { 102 auto p = gtk_tree_view_column_new_with_attributes( 103 Str.toStringz(header), 104 renderer.getCellRendererStruct(), 105 Str.toStringz(type), 106 column, 107 null); 108 109 if(p is null) 110 { 111 throw new ConstructionException("null returned by gtk_tree_view_column_new_with_attributes"); 112 } 113 114 this(p); 115 } 116 117 /** 118 * Returns the button used in the treeview column header 119 * Returns: The button for the column header. [transfer none] Since 3.0 120 */ 121 public Button getButton() 122 { 123 // GtkWidget * gtk_tree_view_column_get_button (GtkTreeViewColumn *tree_column); 124 auto p = gtk_tree_view_column_get_button(gtkTreeViewColumn); 125 if(p is null) 126 { 127 return null; 128 } 129 return ObjectG.getDObject!(Button)(cast(GtkButton*) p); 130 } 131 132 /** 133 * Returns the GtkTreeView wherein tree_column has been inserted. 134 * If column is currently not inserted in any tree view, NULL is 135 * returned. 136 * Since 2.12 137 * Returns: The tree view wherein column has been inserted if any, NULL otherwise. [transfer none] 138 */ 139 public TreeView getTreeView() 140 { 141 // GtkWidget * gtk_tree_view_column_get_tree_view (GtkTreeViewColumn *tree_column); 142 auto p = gtk_tree_view_column_get_tree_view(gtkTreeViewColumn); 143 if(p is null) 144 { 145 return null; 146 } 147 return ObjectG.getDObject!(TreeView)(cast(GtkTreeView*) p); 148 } 149 150 /** 151 */ 152 153 /** */ 154 public static GType getType() 155 { 156 return gtk_tree_view_column_get_type(); 157 } 158 159 /** 160 * Creates a new #GtkTreeViewColumn. 161 * 162 * Returns: A newly created #GtkTreeViewColumn. 163 * 164 * Throws: ConstructionException GTK+ fails to create the object. 165 */ 166 public this() 167 { 168 auto p = gtk_tree_view_column_new(); 169 170 if(p is null) 171 { 172 throw new ConstructionException("null returned by new"); 173 } 174 175 this(cast(GtkTreeViewColumn*) p); 176 } 177 178 /** 179 * Creates a new #GtkTreeViewColumn using @area to render its cells. 180 * 181 * Params: 182 * area = the #GtkCellArea that the newly created column should use to layout cells. 183 * 184 * Returns: A newly created #GtkTreeViewColumn. 185 * 186 * Since: 3.0 187 * 188 * Throws: ConstructionException GTK+ fails to create the object. 189 */ 190 public this(CellArea area) 191 { 192 auto p = gtk_tree_view_column_new_with_area((area is null) ? null : area.getCellAreaStruct()); 193 194 if(p is null) 195 { 196 throw new ConstructionException("null returned by new_with_area"); 197 } 198 199 this(cast(GtkTreeViewColumn*) p); 200 } 201 202 /** 203 * Obtains the horizontal position and size of a cell in a column. If the 204 * cell is not found in the column, @start_pos and @width are not changed and 205 * %FALSE is returned. 206 * 207 * Params: 208 * cellRenderer = a #GtkCellRenderer 209 * xOffset = return location for the horizontal 210 * position of @cell within @tree_column, may be %NULL 211 * width = return location for the width of @cell, 212 * may be %NULL 213 * 214 * Returns: %TRUE if @cell belongs to @tree_column. 215 */ 216 public bool cellGetPosition(CellRenderer cellRenderer, out int xOffset, out int width) 217 { 218 return gtk_tree_view_column_cell_get_position(gtkTreeViewColumn, (cellRenderer is null) ? null : cellRenderer.getCellRendererStruct(), &xOffset, &width) != 0; 219 } 220 221 /** 222 * Obtains the width and height needed to render the column. This is used 223 * primarily by the #GtkTreeView. 224 * 225 * Params: 226 * cellArea = The area a cell in the column will be allocated, or %NULL 227 * xOffset = location to return x offset of a cell relative to @cell_area, or %NULL 228 * yOffset = location to return y offset of a cell relative to @cell_area, or %NULL 229 * width = location to return width needed to render a cell, or %NULL 230 * height = location to return height needed to render a cell, or %NULL 231 */ 232 public void cellGetSize(GdkRectangle* cellArea, out int xOffset, out int yOffset, out int width, out int height) 233 { 234 gtk_tree_view_column_cell_get_size(gtkTreeViewColumn, cellArea, &xOffset, &yOffset, &width, &height); 235 } 236 237 /** 238 * Returns %TRUE if any of the cells packed into the @tree_column are visible. 239 * For this to be meaningful, you must first initialize the cells with 240 * gtk_tree_view_column_cell_set_cell_data() 241 * 242 * Returns: %TRUE, if any of the cells packed into the @tree_column are currently visible 243 */ 244 public bool cellIsVisible() 245 { 246 return gtk_tree_view_column_cell_is_visible(gtkTreeViewColumn) != 0; 247 } 248 249 /** 250 * Sets the cell renderer based on the @tree_model and @iter. That is, for 251 * every attribute mapping in @tree_column, it will get a value from the set 252 * column on the @iter, and use that value to set the attribute on the cell 253 * renderer. This is used primarily by the #GtkTreeView. 254 * 255 * Params: 256 * treeModel = The #GtkTreeModel to to get the cell renderers attributes from. 257 * iter = The #GtkTreeIter to to get the cell renderer’s attributes from. 258 * isExpander = %TRUE, if the row has children 259 * isExpanded = %TRUE, if the row has visible children 260 */ 261 public void cellSetCellData(TreeModelIF treeModel, TreeIter iter, bool isExpander, bool isExpanded) 262 { 263 gtk_tree_view_column_cell_set_cell_data(gtkTreeViewColumn, (treeModel is null) ? null : treeModel.getTreeModelStruct(), (iter is null) ? null : iter.getTreeIterStruct(), isExpander, isExpanded); 264 } 265 266 /** 267 * Emits the “clicked” signal on the column. This function will only work if 268 * @tree_column is clickable. 269 */ 270 public void clicked() 271 { 272 gtk_tree_view_column_clicked(gtkTreeViewColumn); 273 } 274 275 /** 276 * Sets the current keyboard focus to be at @cell, if the column contains 277 * 2 or more editable and activatable cells. 278 * 279 * Params: 280 * cell = A #GtkCellRenderer 281 * 282 * Since: 2.2 283 */ 284 public void focusCell(CellRenderer cell) 285 { 286 gtk_tree_view_column_focus_cell(gtkTreeViewColumn, (cell is null) ? null : cell.getCellRendererStruct()); 287 } 288 289 /** 290 * Returns the current x alignment of @tree_column. This value can range 291 * between 0.0 and 1.0. 292 * 293 * Returns: The current alignent of @tree_column. 294 */ 295 public float getAlignment() 296 { 297 return gtk_tree_view_column_get_alignment(gtkTreeViewColumn); 298 } 299 300 /** 301 * Returns %TRUE if the user can click on the header for the column. 302 * 303 * Returns: %TRUE if user can click the column header. 304 */ 305 public bool getClickable() 306 { 307 return gtk_tree_view_column_get_clickable(gtkTreeViewColumn) != 0; 308 } 309 310 /** 311 * Returns %TRUE if the column expands to fill available space. 312 * 313 * Returns: %TRUE if the column expands to fill available space. 314 * 315 * Since: 2.4 316 */ 317 public bool getExpand() 318 { 319 return gtk_tree_view_column_get_expand(gtkTreeViewColumn) != 0; 320 } 321 322 /** 323 * Gets the fixed width of the column. This may not be the actual displayed 324 * width of the column; for that, use gtk_tree_view_column_get_width(). 325 * 326 * Returns: The fixed width of the column. 327 */ 328 public int getFixedWidth() 329 { 330 return gtk_tree_view_column_get_fixed_width(gtkTreeViewColumn); 331 } 332 333 /** 334 * Returns the maximum width in pixels of the @tree_column, or -1 if no maximum 335 * width is set. 336 * 337 * Returns: The maximum width of the @tree_column. 338 */ 339 public int getMaxWidth() 340 { 341 return gtk_tree_view_column_get_max_width(gtkTreeViewColumn); 342 } 343 344 /** 345 * Returns the minimum width in pixels of the @tree_column, or -1 if no minimum 346 * width is set. 347 * 348 * Returns: The minimum width of the @tree_column. 349 */ 350 public int getMinWidth() 351 { 352 return gtk_tree_view_column_get_min_width(gtkTreeViewColumn); 353 } 354 355 /** 356 * Returns %TRUE if the @tree_column can be reordered by the user. 357 * 358 * Returns: %TRUE if the @tree_column can be reordered by the user. 359 */ 360 public bool getReorderable() 361 { 362 return gtk_tree_view_column_get_reorderable(gtkTreeViewColumn) != 0; 363 } 364 365 /** 366 * Returns %TRUE if the @tree_column can be resized by the end user. 367 * 368 * Returns: %TRUE, if the @tree_column can be resized. 369 */ 370 public bool getResizable() 371 { 372 return gtk_tree_view_column_get_resizable(gtkTreeViewColumn) != 0; 373 } 374 375 /** 376 * Returns the current type of @tree_column. 377 * 378 * Returns: The type of @tree_column. 379 */ 380 public GtkTreeViewColumnSizing getSizing() 381 { 382 return gtk_tree_view_column_get_sizing(gtkTreeViewColumn); 383 } 384 385 /** 386 * Gets the logical @sort_column_id that the model sorts on when this 387 * column is selected for sorting. 388 * See gtk_tree_view_column_set_sort_column_id(). 389 * 390 * Returns: the current @sort_column_id for this column, or -1 if 391 * this column can’t be used for sorting. 392 */ 393 public int getSortColumnId() 394 { 395 return gtk_tree_view_column_get_sort_column_id(gtkTreeViewColumn); 396 } 397 398 /** 399 * Gets the value set by gtk_tree_view_column_set_sort_indicator(). 400 * 401 * Returns: whether the sort indicator arrow is displayed 402 */ 403 public bool getSortIndicator() 404 { 405 return gtk_tree_view_column_get_sort_indicator(gtkTreeViewColumn) != 0; 406 } 407 408 /** 409 * Gets the value set by gtk_tree_view_column_set_sort_order(). 410 * 411 * Returns: the sort order the sort indicator is indicating 412 */ 413 public GtkSortType getSortOrder() 414 { 415 return gtk_tree_view_column_get_sort_order(gtkTreeViewColumn); 416 } 417 418 /** 419 * Returns the spacing of @tree_column. 420 * 421 * Returns: the spacing of @tree_column. 422 */ 423 public int getSpacing() 424 { 425 return gtk_tree_view_column_get_spacing(gtkTreeViewColumn); 426 } 427 428 /** 429 * Returns the title of the widget. 430 * 431 * Returns: the title of the column. This string should not be 432 * modified or freed. 433 */ 434 public string getTitle() 435 { 436 return Str.toString(gtk_tree_view_column_get_title(gtkTreeViewColumn)); 437 } 438 439 /** 440 * Returns %TRUE if @tree_column is visible. 441 * 442 * Returns: whether the column is visible or not. If it is visible, then 443 * the tree will show the column. 444 */ 445 public bool getVisible() 446 { 447 return gtk_tree_view_column_get_visible(gtkTreeViewColumn) != 0; 448 } 449 450 /** 451 * Returns the #GtkWidget in the button on the column header. 452 * If a custom widget has not been set then %NULL is returned. 453 * 454 * Returns: The #GtkWidget in the column 455 * header, or %NULL 456 */ 457 public Widget getWidget() 458 { 459 auto p = gtk_tree_view_column_get_widget(gtkTreeViewColumn); 460 461 if(p is null) 462 { 463 return null; 464 } 465 466 return ObjectG.getDObject!(Widget)(cast(GtkWidget*) p); 467 } 468 469 /** 470 * Returns the current size of @tree_column in pixels. 471 * 472 * Returns: The current width of @tree_column. 473 */ 474 public int getWidth() 475 { 476 return gtk_tree_view_column_get_width(gtkTreeViewColumn); 477 } 478 479 /** 480 * Returns the current X offset of @tree_column in pixels. 481 * 482 * Returns: The current X offset of @tree_column. 483 * 484 * Since: 3.2 485 */ 486 public int getXOffset() 487 { 488 return gtk_tree_view_column_get_x_offset(gtkTreeViewColumn); 489 } 490 491 /** 492 * Flags the column, and the cell renderers added to this column, to have 493 * their sizes renegotiated. 494 * 495 * Since: 2.8 496 */ 497 public void queueResize() 498 { 499 gtk_tree_view_column_queue_resize(gtkTreeViewColumn); 500 } 501 502 /** 503 * Sets the alignment of the title or custom widget inside the column header. 504 * The alignment determines its location inside the button -- 0.0 for left, 0.5 505 * for center, 1.0 for right. 506 * 507 * Params: 508 * xalign = The alignment, which is between [0.0 and 1.0] inclusive. 509 */ 510 public void setAlignment(float xalign) 511 { 512 gtk_tree_view_column_set_alignment(gtkTreeViewColumn, xalign); 513 } 514 515 /** 516 * Sets the #GtkTreeCellDataFunc to use for the column. This 517 * function is used instead of the standard attributes mapping for 518 * setting the column value, and should set the value of @tree_column's 519 * cell renderer as appropriate. @func may be %NULL to remove an 520 * older one. 521 * 522 * Params: 523 * cellRenderer = A #GtkCellRenderer 524 * func = The #GtkTreeCellDataFunc to use. 525 * funcData = The user data for @func. 526 * destroy = The destroy notification for @func_data 527 */ 528 public void setCellDataFunc(CellRenderer cellRenderer, GtkTreeCellDataFunc func, void* funcData, GDestroyNotify destroy) 529 { 530 gtk_tree_view_column_set_cell_data_func(gtkTreeViewColumn, (cellRenderer is null) ? null : cellRenderer.getCellRendererStruct(), func, funcData, destroy); 531 } 532 533 /** 534 * Sets the header to be active if @clickable is %TRUE. When the header is 535 * active, then it can take keyboard focus, and can be clicked. 536 * 537 * Params: 538 * clickable = %TRUE if the header is active. 539 */ 540 public void setClickable(bool clickable) 541 { 542 gtk_tree_view_column_set_clickable(gtkTreeViewColumn, clickable); 543 } 544 545 /** 546 * Sets the column to take available extra space. This space is shared equally 547 * amongst all columns that have the expand set to %TRUE. If no column has this 548 * option set, then the last column gets all extra space. By default, every 549 * column is created with this %FALSE. 550 * 551 * Along with “fixed-width”, the “expand” property changes when the column is 552 * resized by the user. 553 * 554 * Params: 555 * expand = %TRUE if the column should expand to fill available space. 556 * 557 * Since: 2.4 558 */ 559 public void setExpand(bool expand) 560 { 561 gtk_tree_view_column_set_expand(gtkTreeViewColumn, expand); 562 } 563 564 /** 565 * If @fixed_width is not -1, sets the fixed width of @tree_column; otherwise 566 * unsets it. The effective value of @fixed_width is clamped between the 567 * minimum and maximum width of the column; however, the value stored in the 568 * “fixed-width” property is not clamped. If the column sizing is 569 * #GTK_TREE_VIEW_COLUMN_GROW_ONLY or #GTK_TREE_VIEW_COLUMN_AUTOSIZE, setting 570 * a fixed width overrides the automatically calculated width. Note that 571 * @fixed_width is only a hint to GTK+; the width actually allocated to the 572 * column may be greater or less than requested. 573 * 574 * Along with “expand”, the “fixed-width” property changes when the column is 575 * resized by the user. 576 * 577 * Params: 578 * fixedWidth = The new fixed width, in pixels, or -1. 579 */ 580 public void setFixedWidth(int fixedWidth) 581 { 582 gtk_tree_view_column_set_fixed_width(gtkTreeViewColumn, fixedWidth); 583 } 584 585 /** 586 * Sets the maximum width of the @tree_column. If @max_width is -1, then the 587 * maximum width is unset. Note, the column can actually be wider than max 588 * width if it’s the last column in a view. In this case, the column expands to 589 * fill any extra space. 590 * 591 * Params: 592 * maxWidth = The maximum width of the column in pixels, or -1. 593 */ 594 public void setMaxWidth(int maxWidth) 595 { 596 gtk_tree_view_column_set_max_width(gtkTreeViewColumn, maxWidth); 597 } 598 599 /** 600 * Sets the minimum width of the @tree_column. If @min_width is -1, then the 601 * minimum width is unset. 602 * 603 * Params: 604 * minWidth = The minimum width of the column in pixels, or -1. 605 */ 606 public void setMinWidth(int minWidth) 607 { 608 gtk_tree_view_column_set_min_width(gtkTreeViewColumn, minWidth); 609 } 610 611 /** 612 * If @reorderable is %TRUE, then the column can be reordered by the end user 613 * dragging the header. 614 * 615 * Params: 616 * reorderable = %TRUE, if the column can be reordered. 617 */ 618 public void setReorderable(bool reorderable) 619 { 620 gtk_tree_view_column_set_reorderable(gtkTreeViewColumn, reorderable); 621 } 622 623 /** 624 * If @resizable is %TRUE, then the user can explicitly resize the column by 625 * grabbing the outer edge of the column button. If resizable is %TRUE and 626 * sizing mode of the column is #GTK_TREE_VIEW_COLUMN_AUTOSIZE, then the sizing 627 * mode is changed to #GTK_TREE_VIEW_COLUMN_GROW_ONLY. 628 * 629 * Params: 630 * resizable = %TRUE, if the column can be resized 631 */ 632 public void setResizable(bool resizable) 633 { 634 gtk_tree_view_column_set_resizable(gtkTreeViewColumn, resizable); 635 } 636 637 /** 638 * Sets the growth behavior of @tree_column to @type. 639 * 640 * Params: 641 * type = The #GtkTreeViewColumnSizing. 642 */ 643 public void setSizing(GtkTreeViewColumnSizing type) 644 { 645 gtk_tree_view_column_set_sizing(gtkTreeViewColumn, type); 646 } 647 648 /** 649 * Sets the logical @sort_column_id that this column sorts on when this column 650 * is selected for sorting. Doing so makes the column header clickable. 651 * 652 * Params: 653 * sortColumnId = The @sort_column_id of the model to sort on. 654 */ 655 public void setSortColumnId(int sortColumnId) 656 { 657 gtk_tree_view_column_set_sort_column_id(gtkTreeViewColumn, sortColumnId); 658 } 659 660 /** 661 * Call this function with a @setting of %TRUE to display an arrow in 662 * the header button indicating the column is sorted. Call 663 * gtk_tree_view_column_set_sort_order() to change the direction of 664 * the arrow. 665 * 666 * Params: 667 * setting = %TRUE to display an indicator that the column is sorted 668 */ 669 public void setSortIndicator(bool setting) 670 { 671 gtk_tree_view_column_set_sort_indicator(gtkTreeViewColumn, setting); 672 } 673 674 /** 675 * Changes the appearance of the sort indicator. 676 * 677 * This does not actually sort the model. Use 678 * gtk_tree_view_column_set_sort_column_id() if you want automatic sorting 679 * support. This function is primarily for custom sorting behavior, and should 680 * be used in conjunction with gtk_tree_sortable_set_sort_column_id() to do 681 * that. For custom models, the mechanism will vary. 682 * 683 * The sort indicator changes direction to indicate normal sort or reverse sort. 684 * Note that you must have the sort indicator enabled to see anything when 685 * calling this function; see gtk_tree_view_column_set_sort_indicator(). 686 * 687 * Params: 688 * order = sort order that the sort indicator should indicate 689 */ 690 public void setSortOrder(GtkSortType order) 691 { 692 gtk_tree_view_column_set_sort_order(gtkTreeViewColumn, order); 693 } 694 695 /** 696 * Sets the spacing field of @tree_column, which is the number of pixels to 697 * place between cell renderers packed into it. 698 * 699 * Params: 700 * spacing = distance between cell renderers in pixels. 701 */ 702 public void setSpacing(int spacing) 703 { 704 gtk_tree_view_column_set_spacing(gtkTreeViewColumn, spacing); 705 } 706 707 /** 708 * Sets the title of the @tree_column. If a custom widget has been set, then 709 * this value is ignored. 710 * 711 * Params: 712 * title = The title of the @tree_column. 713 */ 714 public void setTitle(string title) 715 { 716 gtk_tree_view_column_set_title(gtkTreeViewColumn, Str.toStringz(title)); 717 } 718 719 /** 720 * Sets the visibility of @tree_column. 721 * 722 * Params: 723 * visible = %TRUE if the @tree_column is visible. 724 */ 725 public void setVisible(bool visible) 726 { 727 gtk_tree_view_column_set_visible(gtkTreeViewColumn, visible); 728 } 729 730 /** 731 * Sets the widget in the header to be @widget. If widget is %NULL, then the 732 * header button is set with a #GtkLabel set to the title of @tree_column. 733 * 734 * Params: 735 * widget = A child #GtkWidget, or %NULL. 736 */ 737 public void setWidget(Widget widget) 738 { 739 gtk_tree_view_column_set_widget(gtkTreeViewColumn, (widget is null) ? null : widget.getWidgetStruct()); 740 } 741 742 /** */ 743 gulong addOnClicked(void delegate(TreeViewColumn) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 744 { 745 return Signals.connect(this, "clicked", dlg, connectFlags ^ ConnectFlags.SWAPPED); 746 } 747 }