/usr/include/gtkmm-3.0/gtkmm/toolpalette.h is in libgtkmm-3.0-dev 3.22.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 | // Generated by gmmproc 2.50.0 -- DO NOT MODIFY!
#ifndef _GTKMM_TOOLPALETTE_H
#define _GTKMM_TOOLPALETTE_H
#include <glibmm/ustring.h>
#include <sigc++/sigc++.h>
/* Copyright (C) 2009 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <gtkmm/container.h>
#include <gtkmm/toolitem.h>
#include <gtkmm/orientable.h>
#include <gtkmm/scrollable.h>
#include <gtkmm/toolitemgroup.h>
#ifndef DOXYGEN_SHOULD_SKIP_THIS
using GtkToolPalette = struct _GtkToolPalette;
using GtkToolPaletteClass = struct _GtkToolPaletteClass;
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
#ifndef DOXYGEN_SHOULD_SKIP_THIS
namespace Gtk
{ class ToolPalette_Class; } // namespace Gtk
#endif //DOXYGEN_SHOULD_SKIP_THIS
namespace Gtk
{
/** @addtogroup gtkmmEnums gtkmm Enums and Flags */
/**
* @var ToolPaletteDragTargets TOOL_PALETTE_DRAG_ITEMS
* Support drag of items.
*
* @var ToolPaletteDragTargets TOOL_PALETTE_DRAG_GROUPS
* Support drag of groups.
*
* @enum ToolPaletteDragTargets
*
* Flags used to specify the supported drag targets.
*
* @ingroup gtkmmEnums
* @par Bitwise operators:
* <tt>%ToolPaletteDragTargets operator|(ToolPaletteDragTargets, ToolPaletteDragTargets)</tt><br>
* <tt>%ToolPaletteDragTargets operator&(ToolPaletteDragTargets, ToolPaletteDragTargets)</tt><br>
* <tt>%ToolPaletteDragTargets operator^(ToolPaletteDragTargets, ToolPaletteDragTargets)</tt><br>
* <tt>%ToolPaletteDragTargets operator~(ToolPaletteDragTargets)</tt><br>
* <tt>%ToolPaletteDragTargets& operator|=(ToolPaletteDragTargets&, ToolPaletteDragTargets)</tt><br>
* <tt>%ToolPaletteDragTargets& operator&=(ToolPaletteDragTargets&, ToolPaletteDragTargets)</tt><br>
* <tt>%ToolPaletteDragTargets& operator^=(ToolPaletteDragTargets&, ToolPaletteDragTargets)</tt><br>
*/
enum ToolPaletteDragTargets
{
TOOL_PALETTE_DRAG_ITEMS = (1 << 0),
TOOL_PALETTE_DRAG_GROUPS = (1 << 1)
};
/** @ingroup gtkmmEnums */
inline ToolPaletteDragTargets operator|(ToolPaletteDragTargets lhs, ToolPaletteDragTargets rhs)
{ return static_cast<ToolPaletteDragTargets>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
/** @ingroup gtkmmEnums */
inline ToolPaletteDragTargets operator&(ToolPaletteDragTargets lhs, ToolPaletteDragTargets rhs)
{ return static_cast<ToolPaletteDragTargets>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
/** @ingroup gtkmmEnums */
inline ToolPaletteDragTargets operator^(ToolPaletteDragTargets lhs, ToolPaletteDragTargets rhs)
{ return static_cast<ToolPaletteDragTargets>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
/** @ingroup gtkmmEnums */
inline ToolPaletteDragTargets operator~(ToolPaletteDragTargets flags)
{ return static_cast<ToolPaletteDragTargets>(~static_cast<unsigned>(flags)); }
/** @ingroup gtkmmEnums */
inline ToolPaletteDragTargets& operator|=(ToolPaletteDragTargets& lhs, ToolPaletteDragTargets rhs)
{ return (lhs = static_cast<ToolPaletteDragTargets>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
/** @ingroup gtkmmEnums */
inline ToolPaletteDragTargets& operator&=(ToolPaletteDragTargets& lhs, ToolPaletteDragTargets rhs)
{ return (lhs = static_cast<ToolPaletteDragTargets>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
/** @ingroup gtkmmEnums */
inline ToolPaletteDragTargets& operator^=(ToolPaletteDragTargets& lhs, ToolPaletteDragTargets rhs)
{ return (lhs = static_cast<ToolPaletteDragTargets>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
} // namespace Gtk
#ifndef DOXYGEN_SHOULD_SKIP_THIS
namespace Glib
{
template <>
class Value<Gtk::ToolPaletteDragTargets> : public Glib::Value_Flags<Gtk::ToolPaletteDragTargets>
{
public:
static GType value_type() G_GNUC_CONST;
};
} // namespace Glib
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
namespace Gtk
{
/** A ToolPalette allows you to add ToolItems to a palette-like container with
* various categories and drag and drop support.
*
* ToolItems cannot be added directly to a ToolPalette - instead they are added
* to a ToolItemGroup which can than be added to a ToolPalette. To add a
* ToolItemGroup to a ToolPalette, use Gtk::Container::add().
*
* The easiest way to use drag and drop with ToolPalette is to call
* add_drag_dest() with the desired drag source palette and the desired drag
* target widget. Then get_drag_item() can be used to get the dragged item in
* the "drag-data-received" signal handler of the drag target.
*
* @newin{2,20}
*
* @ingroup Widgets
* @ingroup Containers
*/
class ToolPalette
: public Container,
public Orientable,
public Scrollable
{
public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
typedef ToolPalette CppObjectType;
typedef ToolPalette_Class CppClassType;
typedef GtkToolPalette BaseObjectType;
typedef GtkToolPaletteClass BaseClassType;
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
ToolPalette(ToolPalette&& src) noexcept;
ToolPalette& operator=(ToolPalette&& src) noexcept;
// noncopyable
ToolPalette(const ToolPalette&) = delete;
ToolPalette& operator=(const ToolPalette&) = delete;
~ToolPalette() noexcept override;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
private:
friend class ToolPalette_Class;
static CppClassType toolpalette_class_;
protected:
explicit ToolPalette(const Glib::ConstructParams& construct_params);
explicit ToolPalette(GtkToolPalette* castitem);
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
public:
/** Get the GType for this class, for use with the underlying GObject type system.
*/
static GType get_type() G_GNUC_CONST;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
static GType get_base_type() G_GNUC_CONST;
#endif
///Provides access to the underlying C GtkObject.
GtkToolPalette* gobj() { return reinterpret_cast<GtkToolPalette*>(gobject_); }
///Provides access to the underlying C GtkObject.
const GtkToolPalette* gobj() const { return reinterpret_cast<GtkToolPalette*>(gobject_); }
public:
//C++ methods used to invoke GTK+ virtual functions:
protected:
//GTK+ Virtual Functions (override these to change behaviour):
//Default Signal Handlers::
private:
public:
ToolPalette();
/** Sets the position of the group as an index of the tool palette.
* If position is 0 the group will become the first child, if position is
* -1 it will become the last child.
*
* @newin{2,20}
*
* @param group A Gtk::ToolItemGroup which is a child of palette.
* @param position A new index for group.
*/
void set_group_position(ToolItemGroup& group, int position);
/** Sets whether the group should be exclusive or not.
* If an exclusive group is expanded all other groups are collapsed.
*
* @newin{2,20}
*
* @param group A Gtk::ToolItemGroup which is a child of palette.
* @param exclusive Whether the group should be exclusive or not.
*/
void set_exclusive(ToolItemGroup& group, bool exclusive);
/** Sets whether the group should be given extra space.
*
* @newin{2,20}
*
* @param group A Gtk::ToolItemGroup which is a child of palette.
* @param expand Whether the group should be given extra space.
*/
void set_expand(ToolItemGroup& group, bool expand = true);
/** Gets the position of @a group in @a palette as index.
* See set_group_position().
*
* @newin{2,20}
*
* @param group A Gtk::ToolItemGroup.
* @return The index of group or -1 if @a group is not a child of @a palette.
*/
int get_group_position(ToolItemGroup& group) const;
/** Gets whether @a group is exclusive or not.
* See set_exclusive().
*
* @newin{2,20}
*
* @param group A Gtk::ToolItemGroup which is a child of palette.
* @return <tt>true</tt> if @a group is exclusive.
*/
bool get_exclusive(ToolItemGroup& group) const;
/** Gets whether group should be given extra space.
* See set_expand().
*
* @newin{2,20}
*
* @param group A Gtk::ToolItemGroup which is a child of palette.
* @return <tt>true</tt> if group should be given extra space, <tt>false</tt> otherwise.
*/
bool get_expand(ToolItemGroup& group) const;
/** Sets the size of icons in the tool palette.
*
* @newin{2,20}
*
* @param icon_size The Gtk::IconSize that icons in the tool
* palette shall have.
*/
void set_icon_size(IconSize icon_size);
/** Unsets the tool palette icon size set with set_icon_size(),
* so that user preferences will be used to determine the icon size.
*
* @newin{2,20}
*/
void unset_icon_size();
/** Sets the style (text, icons or both) of items in the tool palette.
*
* @newin{2,20}
*
* @param style The Gtk::ToolbarStyle that items in the tool palette shall have.
*/
void set_style(ToolbarStyle style);
/** Unsets a toolbar style set with set_style(),
* so that user preferences will be used to determine the toolbar style.
*
* @newin{2,20}
*/
void unset_style();
/** Gets the size of icons in the tool palette.
* See set_icon_size().
*
* @newin{2,20}
*
* @return The Gtk::IconSize of icons in the tool palette.
*/
IconSize get_icon_size() const;
/** Gets the style (icons, text or both) of items in the tool palette.
*
* @newin{2,20}
*
* @return The Gtk::ToolbarStyle of items in the tool palette.
*/
ToolbarStyle get_style() const;
/** Gets the item at position (x, y).
* See get_drop_group().
*
* @newin{2,20}
*
* @param x The x position.
* @param y The y position.
* @return The Gtk::ToolItem at position or <tt>nullptr</tt> if there is no such item.
*/
ToolItem* get_drop_item(int x, int y);
/** Gets the item at position (x, y).
* See get_drop_group().
*
* @newin{2,20}
*
* @param x The x position.
* @param y The y position.
* @return The Gtk::ToolItem at position or <tt>nullptr</tt> if there is no such item.
*/
const ToolItem* get_drop_item(int x, int y) const;
//This conversion is needed because of https://bugzilla.gnome.org/show_bug.cgi?id=567729#c37
/** Gets the group at position (x, y).
*
* @newin{2,20}
*
* @param x The x position.
* @param y The y position.
* @return The Gtk::ToolItemGroup at position
* or <tt>nullptr</tt> if there is no such group.
*/
ToolItemGroup* get_drop_group(int x, int y);
/** Gets the group at position (x, y).
*
* @newin{2,20}
*
* @param x The x position.
* @param y The y position.
* @return The Gtk::ToolItemGroup at position
* or <tt>nullptr</tt> if there is no such group.
*/
const ToolItemGroup* get_drop_group(int x, int y) const;
/** Get the dragged item from the selection.
* This could be a Gtk::ToolItem or a Gtk::ToolItemGroup.
*
* @newin{2,20}
*
* @param selection A Gtk::SelectionData.
* @return The dragged item in selection.
*/
ToolItem* get_drag_item(const SelectionData& selection);
/** Get the dragged item from the selection.
* This could be a Gtk::ToolItem or a Gtk::ToolItemGroup.
*
* @newin{2,20}
*
* @param selection A Gtk::SelectionData.
* @return The dragged item in selection.
*/
const ToolItem* get_drag_item(const SelectionData& selection) const;
/** Sets the tool palette as a drag source.
* Enables all groups and items in the tool palette as drag sources
* on button 1 and button 3 press with copy and move actions.
* See gtk_drag_source_set().
*
* @newin{2,20}
*
* @param targets The Gtk::ToolPaletteDragTargets
* which the widget should support.
*/
void set_drag_source(ToolPaletteDragTargets targets = TOOL_PALETTE_DRAG_ITEMS);
/** Sets @a palette as drag source (see set_drag_source())
* and sets @a widget as a drag destination for drags from @a palette.
* See gtk_drag_dest_set().
*
* @newin{2,20}
*
* @param widget A Gtk::Widget which should be a drag destination for @a palette.
* @param flags The flags that specify what actions GTK+ should take for drops
* on that widget.
* @param targets The Gtk::ToolPaletteDragTargets which the widget
* should support.
* @param actions The Gdk::DragActions which the widget should suppport.
*/
void add_drag_dest(Gtk::Widget& widget, DestDefaults flags = DEST_DEFAULT_ALL, ToolPaletteDragTargets targets = TOOL_PALETTE_DRAG_ITEMS, Gdk::DragAction actions = Gdk::ACTION_COPY);
/** Gets the target entry for a dragged Gtk::ToolItem.
*
* @newin{2,20}
*
* @return The Gtk::TargetEntry for a dragged item.
*/
static TargetEntry get_drag_target_item();
/** Get the target entry for a dragged Gtk::ToolItemGroup.
*
* @newin{2,20}
*
* @return The Gtk::TargetEntry for a dragged group.
*/
static TargetEntry get_drag_target_group();
/** The size of the icons in a tool palette. When this property is set,
* it overrides the default setting.
*
* This should only be used for special-purpose tool palettes, normal
* application tool palettes should respect the user preferences for the
* size of icons.
*
* @newin{2,20}
*
* @return A PropertyProxy that allows you to get or set the value of the property,
* or receive notification when the value of the property changes.
*/
Glib::PropertyProxy< IconSize > property_icon_size() ;
/** The size of the icons in a tool palette. When this property is set,
* it overrides the default setting.
*
* This should only be used for special-purpose tool palettes, normal
* application tool palettes should respect the user preferences for the
* size of icons.
*
* @newin{2,20}
*
* @return A PropertyProxy_ReadOnly that allows you to get the value of the property,
* or receive notification when the value of the property changes.
*/
Glib::PropertyProxy_ReadOnly< IconSize > property_icon_size() const;
/** Is <tt>true</tt> if the Gtk::ToolPalette::property_icon_size() property has been set.
*
* @newin{2,20}
*
* @return A PropertyProxy that allows you to get or set the value of the property,
* or receive notification when the value of the property changes.
*/
Glib::PropertyProxy< bool > property_icon_size_set() ;
/** Is <tt>true</tt> if the Gtk::ToolPalette::property_icon_size() property has been set.
*
* @newin{2,20}
*
* @return A PropertyProxy_ReadOnly that allows you to get the value of the property,
* or receive notification when the value of the property changes.
*/
Glib::PropertyProxy_ReadOnly< bool > property_icon_size_set() const;
/** The style of items in the tool palette.
*
* @newin{2,20}
*
* @return A PropertyProxy that allows you to get or set the value of the property,
* or receive notification when the value of the property changes.
*/
Glib::PropertyProxy< ToolbarStyle > property_toolbar_style() ;
/** The style of items in the tool palette.
*
* @newin{2,20}
*
* @return A PropertyProxy_ReadOnly that allows you to get the value of the property,
* or receive notification when the value of the property changes.
*/
Glib::PropertyProxy_ReadOnly< ToolbarStyle > property_toolbar_style() const;
/** Whether the item group should be the only one that is expanded
* at a given time.
*
* @newin{2,20}
*
* @return A ChildPropertyProxy that allows you to get or set the value of the property,
* or receive notification when the value of the property changes.
*/
Gtk::ChildPropertyProxy< bool > child_property_exclusive(Gtk::Widget& child) ;
/** Whether the item group should be the only one that is expanded
* at a given time.
*
* @newin{2,20}
*
* @return A ChildPropertyProxy_ReadOnly that allows you to get the value of the property,
* or receive notification when the value of the property changes.
*/
Gtk::ChildPropertyProxy_ReadOnly< bool > child_property_exclusive(const Gtk::Widget& child) const;
/** Whether the item group should receive extra space when the palette grows.
* at a given time.
*
* @newin{2,20}
*
* @return A ChildPropertyProxy that allows you to get or set the value of the property,
* or receive notification when the value of the property changes.
*/
Gtk::ChildPropertyProxy< bool > child_property_expand(Gtk::Widget& child) ;
/** Whether the item group should receive extra space when the palette grows.
* at a given time.
*
* @newin{2,20}
*
* @return A ChildPropertyProxy_ReadOnly that allows you to get the value of the property,
* or receive notification when the value of the property changes.
*/
Gtk::ChildPropertyProxy_ReadOnly< bool > child_property_expand(const Gtk::Widget& child) const;
};
} // namespace Gtk
namespace Glib
{
/** A Glib::wrap() method for this object.
*
* @param object The C instance.
* @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
* @result A C++ instance that wraps this C instance.
*
* @relates Gtk::ToolPalette
*/
Gtk::ToolPalette* wrap(GtkToolPalette* object, bool take_copy = false);
} //namespace Glib
#endif /* _GTKMM_TOOLPALETTE_H */
|