2
* @brief A desktop dock pane to dock dialogs, a custom wrapper around gdl-dock.
5
* Gustav Broberg <broberg@kth.se>
7
* Copyright (C) 2007 Authors
9
* Released under GNU GPL. Read the file 'COPYING' for more information.
12
#ifndef INKSCAPE_UI_WIDGET_DOCK_H
13
#define INKSCAPE_UI_WIDGET_DOCK_H
15
#include <gtkmm/scrolledwindow.h>
16
#include <gtkmm/box.h>
17
#include <gtkmm/paned.h>
21
#include "ui/widget/dock-item.h"
23
#include "libgdl/libgdl.h"
33
Dock(Gtk::Orientation orientation=Gtk::ORIENTATION_VERTICAL);
36
void addItem(DockItem& item, DockItem::Placement placement);
38
Gtk::Widget& getWidget(); //< return the top widget
39
Gtk::Paned *getParentPaned();
40
Gtk::Paned *getPaned();
42
GtkWidget* getGdlWidget(); //< return the top gdl widget
44
bool isEmpty() const; //< true iff none of the dock's items are in a docked state
45
bool hasIconifiedItems() const;
47
Glib::SignalProxy0<void> signal_layout_changed();
52
/** Toggle size of dock between the previous dimensions and the ones sent as parameters */
53
void toggleDockable(int width=0, int height=0);
55
/** Scrolls the scrolled window container to make the provided dock item visible, if needed */
56
void scrollToItem(DockItem& item);
60
std::list<const DockItem *> _dock_items; //< added dock items
62
/** Interface widgets, will be packed like
63
* _scrolled_window -> (_dock_box -> (_paned -> (_dock -> _filler) | _dock_bar))
68
GdlDockBar *_gdl_dock_bar;
70
Gtk::ScrolledWindow *_scrolled_window;
72
/** Internal signal handlers */
73
void _onLayoutChanged();
74
void _onPanedButtonEvent(GdkEventButton *event);
76
static gboolean _on_paned_button_event(GtkWidget *widget, GdkEventButton *event,
79
/** GdlDock signal proxy structures */
80
static const Glib::SignalProxyInfo _signal_layout_changed_proxy;
82
/** Standard widths */
83
static const int _default_empty_width;
84
static const int _default_dock_bar_width;
89
} // namespace Inkscape
91
#endif //INKSCAPE_UI_DIALOG_BEHAVIOUR_H
96
c-file-style:"stroustrup"
97
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
102
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99