2
* \brief This class implements the functionality of the window layout, menus,
6
* Bryce W. Harrington <bryce@bryceharrington.org>
7
* Derek P. Moore <derekm@hackunix.org>
8
* Ralf Stephan <ralf@ark.in-berlin.de>
9
* John Bintz <jcoswell@coswellproductions.org>
11
* Copyright (C) 2006 John Bintz
12
* Copyright (C) 2004 Bryce Harrington
14
* Released under GNU GPL. Read the file 'COPYING' for more information.
17
#ifndef INKSCAPE_UI_VIEW_EDIT_WIDGET_H
18
#define INKSCAPE_UI_VIEW_EDIT_WIDGET_H
20
#include <gtkmm/box.h>
21
#include <gtkmm/table.h>
22
#include <gtkmm/entry.h>
23
#include <gtkmm/scrollbar.h>
24
#include <gtkmm/actiongroup.h>
25
#include <gtkmm/uimanager.h>
26
#include <gtkmm/togglebutton.h>
28
#include "ui/dialog/dialog-manager.h"
29
#include "ui/view/edit-widget-interface.h"
30
#include "ui/widget/dock.h"
31
#include "ui/widget/layer-selector.h"
32
#include "ui/widget/ruler.h"
33
#include "ui/widget/selected-style.h"
34
#include "ui/widget/svg-canvas.h"
35
#include "ui/widget/toolbox.h"
36
#include "ui/widget/zoom-status.h"
46
class EditWidget : public Gtk::Window,
47
public EditWidgetInterface {
49
EditWidget (SPDocument*);
56
void initEdit (SPDocument*);
60
void onActionFileNew();
61
void onActionFileOpen();
62
void onActionFilePrint();
63
void onActionFileQuit();
72
void onDialogAlignAndDistribute();
73
void onDialogInkscapePreferences();
74
void onDialogDialog();
75
void onDialogDocumentProperties();
76
void onDialogExport();
77
void onDialogExtensionEditor();
78
void onDialogFillAndStroke();
80
void onDialogLayerEditor();
81
void onDialogMessages();
82
void onDialogObjectProperties();
83
void onDialogTextProperties();
84
void onDialogTransform();
85
void onDialogTransformation();
87
void onDialogXmlEditor();
89
// Whiteboard (Inkboard)
91
void onDialogWhiteboardConnect();
92
void onDialogWhiteboardShareWithUser();
93
void onDialogWhiteboardShareWithChat();
94
void onDialogOpenSessionFile();
95
void onDumpXMLTracker();
100
// from EditWidgetInterface
101
virtual Gtk::Window* getWindow();
102
virtual void setTitle (gchar const*);
103
virtual void layout();
104
virtual void present();
105
virtual void getGeometry (gint &x, gint &y, gint &w, gint &h);
106
virtual void setSize (gint w, gint h);
107
virtual void setPosition (Geom::Point p);
108
virtual void setTransient (void*, int);
109
virtual Geom::Point getPointer();
110
virtual void setIconified();
111
virtual void setMaximized();
112
virtual void setFullscreen();
113
virtual bool shutdown();
114
virtual void destroy();
115
virtual void requestCanvasUpdate();
116
virtual void requestCanvasUpdateAndWait();
117
virtual void enableInteraction();
118
virtual void disableInteraction();
119
virtual void activateDesktop();
120
virtual void deactivateDesktop();
121
virtual void viewSetPosition (Geom::Point p);
122
virtual void updateRulers();
123
virtual void updateScrollbars (double scale);
124
virtual void toggleRulers();
125
virtual void toggleScrollbars();
126
virtual void toggleColorProfAdjust();
127
virtual void updateZoom();
128
virtual void letZoomGrabFocus();
129
virtual void setToolboxFocusTo (const gchar *);
130
virtual void setToolboxAdjustmentValue (const gchar *, double);
131
virtual void setToolboxSelectOneValue (const gchar *, gint);
132
virtual bool isToolboxButtonActive (gchar const*);
133
virtual void setCoordinateStatus (Geom::Point p);
134
virtual void setMessage (Inkscape::MessageType type, gchar const* msg);
135
virtual bool warnDialog (gchar*);
137
virtual Inkscape::UI::Widget::Dock* getDock ();
140
void _namedview_modified(SPObject *namedview, guint);
142
Gtk::Tooltips _tooltips;
145
Gtk::Table _main_window_table;
146
Gtk::VBox _toolbars_vbox;
147
Gtk::HBox _sub_window_hbox;
148
Gtk::Table _viewport_table;
150
UI::Widget::Toolbox *_tool_ctrl;
151
Gtk::Toolbar *_select_ctrl;
152
Gtk::Toolbar *_uri_ctrl;
153
Gtk::Label _uri_label;
154
Gtk::Entry _uri_entry;
155
Gtk::Toolbar *_node_ctrl;
157
UI::Widget::HRuler _top_ruler;
158
UI::Widget::VRuler _left_ruler;
159
Gtk::HScrollbar _bottom_scrollbar;
160
Gtk::VScrollbar _right_scrollbar;
161
Gtk::ToggleButton _sticky_zoom;
162
UI::Widget::SVGCanvas _svg_canvas;
163
Gtk::HBox _statusbar;
164
UI::Widget::Dock _dock;
165
UI::Widget::SelectedStyle _selected_style_status;
166
UI::Widget::ZoomStatus _zoom_status;
167
Inkscape::Widgets::LayerSelector _layer_selector;
168
Gtk::EventBox _coord_eventbox;
169
Gtk::Table _coord_status;
170
Gtk::Label _coord_status_x, _coord_status_y;
171
Gtk::Label _select_status;
174
SPNamedView* _namedview;
177
Glib::RefPtr<Gtk::ActionGroup> _act_grp;
178
Glib::RefPtr<Gtk::UIManager> _ui_mgr;
179
UI::Dialog::DialogManager _dlg_mgr;
181
void initMenuActions();
182
void initToolbarActions();
185
void initCommandsBar();
186
void initToolControlsBar();
189
void initBottomScrollbar();
190
void initRightScrollbar();
191
void initLeftRuler();
193
void initStickyZoom();
194
void initStatusbar();
196
virtual bool on_key_press_event (GdkEventKey*);
197
virtual bool on_delete_event (GdkEventAny*);
198
virtual bool on_focus_in_event (GdkEventFocus*);
201
bool onEntryFocusIn (GdkEventFocus*);
202
bool onEntryFocusOut (GdkEventFocus*);
203
void onWindowSizeAllocate (Gtk::Allocation&);
204
void onWindowRealize();
205
void onAdjValueChanged();
207
bool _update_s_f, _update_a_f;
208
unsigned int _interaction_disabled_counter;
210
sigc::connection _namedview_modified_connection;
214
} // namespace Inkscape
216
#endif // INKSCAPE_UI_VIEW_EDIT_WIDGET_H
221
c-file-style:"stroustrup"
222
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
227
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :