https://wiki.inkscape.org/wiki/index.php?title=Gdl&feed=atom&action=historyGdl - Revision history2024-03-28T14:07:13ZRevision history for this page on the wikiMediaWiki 1.36.1https://wiki.inkscape.org/wiki/index.php?title=Gdl&diff=107571&oldid=prevTavmjong: Created page with " Inkscape used the [https://developer.gnome.org/gdl/stable/ Gnome Docking Library] to support docking dialogs either in the main window or in floating windows. To create a do..."2017-12-21T13:06:51Z<p>Created page with " Inkscape used the [https://developer.gnome.org/gdl/stable/ Gnome Docking Library] to support docking dialogs either in the main window or in floating windows. To create a do..."</p>
<p><b>New page</b></p><div><br />
Inkscape used the [https://developer.gnome.org/gdl/stable/ Gnome Docking Library] to support docking dialogs either in the main window or in floating windows.<br />
<br />
To create a docked dialog see the "Prototype Dialog" which is a simple example of deriving from the Inkscape::UI::Widget::Panel widget. Dialogs must be registered in dialog-manager.cpp.<br />
<br />
Dialogs are never destructed.<br />
<br />
Functionality is very confusing!<br />
<br />
GDL code: https://git.gnome.org//browse/gdl<br />
<br />
==Bugs==<br />
<br />
===Gtk Error Messages===<br />
<br />
To break at warning:<br />
$ G_DEBUG=fatal_warnings gdb inkscape<br />
<br />
* Gtk-CRITICAL **: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GdlSwitcher<br />
* Gtk-WARNING **:: Allocating size to GdlDock 0x..... without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?<br />
* Gdk-Message: Window 0x..... is a temporary window without a parent, application will not be able to postion it on screen. (WAYLAND)<br />
<br />
===Wayland===<br />
<br />
Wayland cannot position windows relative to each other: https://blog.gtk.org/2016/07/15/future-of-relative-window-positioning/<br />
This screws drag-n-drop of dialogs.<br />
<br />
===Widget Tree===<br />
<br />
To see the tree:<br />
$ GTK_DEBUG=interactive inkscape<br />
<br />
With the "Objects Tab", click on the "Target" icon in the upper left corner and the select a widget in the Inkscape window; then click on the icon next to the "Target" icon to show the tree.<br />
<br />
Tree:<br />
: gtkmm_GtkPaned: Canvas_and_Dock<br />
:: gtkmm__GtkScrolledWindow: DockScrolledWindow: Scrollbar only appears if pane is too small for dialog.<br />
::: GtkViewport: Unnamed: Auto created by scrolled window?<br />
:::: gtkmm__GtkBox: DockBox<br />
::::: gtkmm__GtkPaned: DockBoxPane: Why is this needed. Can't we just add GdlDock with Gtk::PACK_SHRINK?<br />
:::::: GdlDock<br />
::::::: GdkDockItem<br />
:::::::: GdlDockItemGrip<br />
:::::::: gtkmm__GtkFrame: : Why? Adds shadow.<br />
::::::::: gtkmm__GtkVBox: : Why?<br />
:::::::::: gtkmm__GtkBox: InkscapePanel (vertical)<br />
::::::::::: gtkmm__GtkHBox: PanelTopBar<br />
:::::::::::: gtkmm__GtkLabel: : Panel name<br />
::::::::::: gtkmm__GtkHBox: PanelBoxY<br />
:::::::::::: gtkmm__GtkVBox: PanelContents<br />
::::::::::::: Different depending on panel<br />
:::::::::::: gtkmm__GtkVBox: PanelRightBar <br />
:::::: filler: DockBoxFiller: An empty box to fill the pane.<br />
<br />
When there is more than one panel a GdlDockNotebook->GdlSwitcher is inserted between GdlDock and GdlDockItem. More than one GdlDockNotebook can exist grouping different panels.</div>Tavmjong