~centralelyon2010/inkscape/imagelinks2

« back to all changes in this revision

Viewing changes to src/ui/view/edit-widget.h

  • Committer: JazzyNico
  • Date: 2011-08-29 20:25:30 UTC
  • Revision ID: nicoduf@yahoo.fr-20110829202530-6deuoz11q90usldv
Code refactoring and merging with trunk (revision 10599).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/**
2
 
 * \brief This class implements the functionality of the window layout, menus,
3
 
 *        and signals.
4
 
 *
5
 
 * Authors:
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>
10
 
 *
11
 
 * Copyright (C) 2006 John Bintz
12
 
 * Copyright (C) 2004 Bryce Harrington
13
 
 *
14
 
 * Released under GNU GPL.  Read the file 'COPYING' for more information.
15
 
 */
16
 
 
17
 
#ifndef INKSCAPE_UI_VIEW_EDIT_WIDGET_H
18
 
#define INKSCAPE_UI_VIEW_EDIT_WIDGET_H
19
 
 
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>
27
 
 
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"
37
 
 
38
 
struct SPDesktop;
39
 
struct SPDocument;
40
 
struct SPNamedView;
41
 
 
42
 
namespace Inkscape {
43
 
namespace UI {
44
 
namespace View {
45
 
 
46
 
class EditWidget : public Gtk::Window,
47
 
                   public EditWidgetInterface {
48
 
public:
49
 
    EditWidget (SPDocument*);
50
 
    ~EditWidget();
51
 
 
52
 
    // Initialization
53
 
    void initActions();
54
 
    void initUIManager();
55
 
    void initLayout();
56
 
    void initEdit (SPDocument*);
57
 
    void destroyEdit();
58
 
 
59
 
    // Actions
60
 
    void onActionFileNew();
61
 
    void onActionFileOpen();
62
 
    void onActionFilePrint();
63
 
    void onActionFileQuit();
64
 
    void onToolbarItem();
65
 
    void onSelectTool();
66
 
    void onNodeTool();
67
 
 
68
 
    // Menus
69
 
    void onMenuItem();
70
 
 
71
 
    void onDialogAbout();
72
 
    void onDialogAlignAndDistribute();
73
 
    void onDialogInkscapePreferences();
74
 
    void onDialogDialog();
75
 
    void onDialogDocumentProperties();
76
 
    void onDialogExport();
77
 
    void onDialogExtensionEditor();
78
 
    void onDialogFillAndStroke();
79
 
    void onDialogFind();
80
 
    void onDialogLayerEditor();
81
 
    void onDialogMessages();
82
 
    void onDialogObjectProperties();
83
 
    void onDialogTextProperties();
84
 
    void onDialogTransform();
85
 
    void onDialogTransformation();
86
 
    void onDialogTrace();
87
 
    void onDialogXmlEditor();
88
 
 
89
 
    // Whiteboard (Inkboard)
90
 
#ifdef WITH_INKBOARD
91
 
    void onDialogWhiteboardConnect();
92
 
    void onDialogWhiteboardShareWithUser();
93
 
    void onDialogWhiteboardShareWithChat();
94
 
    void onDialogOpenSessionFile();
95
 
    void onDumpXMLTracker();
96
 
#endif
97
 
 
98
 
    void onUriChanged();
99
 
 
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*);
136
 
 
137
 
    virtual Inkscape::UI::Widget::Dock* getDock ();
138
 
 
139
 
protected:
140
 
    void _namedview_modified(SPObject *namedview, guint);
141
 
 
142
 
    Gtk::Tooltips        _tooltips;
143
 
 
144
 
    // Child widgets:
145
 
    Gtk::Table           _main_window_table;
146
 
    Gtk::VBox            _toolbars_vbox;
147
 
    Gtk::HBox            _sub_window_hbox;
148
 
    Gtk::Table           _viewport_table;
149
 
 
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;
156
 
 
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;
172
 
 
173
 
    SPDesktop*           _desktop;
174
 
    SPNamedView*         _namedview;
175
 
    double               _dt2r;
176
 
 
177
 
    Glib::RefPtr<Gtk::ActionGroup>  _act_grp;
178
 
    Glib::RefPtr<Gtk::UIManager>    _ui_mgr;
179
 
    UI::Dialog::DialogManager       _dlg_mgr;
180
 
 
181
 
    void initMenuActions();
182
 
    void initToolbarActions();
183
 
    void initAccelMap();
184
 
    void initMenuBar();
185
 
    void initCommandsBar();
186
 
    void initToolControlsBar();
187
 
    void initUriBar();
188
 
    void initToolsBar();
189
 
    void initBottomScrollbar();
190
 
    void initRightScrollbar();
191
 
    void initLeftRuler();
192
 
    void initTopRuler();
193
 
    void initStickyZoom();
194
 
    void initStatusbar();
195
 
 
196
 
    virtual bool on_key_press_event (GdkEventKey*);
197
 
    virtual bool on_delete_event (GdkEventAny*);
198
 
    virtual bool on_focus_in_event (GdkEventFocus*);
199
 
 
200
 
private:
201
 
    bool onEntryFocusIn (GdkEventFocus*);
202
 
    bool onEntryFocusOut (GdkEventFocus*);
203
 
    void onWindowSizeAllocate (Gtk::Allocation&);
204
 
    void onWindowRealize();
205
 
    void onAdjValueChanged();
206
 
 
207
 
    bool _update_s_f, _update_a_f;
208
 
    unsigned int _interaction_disabled_counter;
209
 
 
210
 
    sigc::connection _namedview_modified_connection;
211
 
};
212
 
} // namespace View
213
 
} // namespace UI
214
 
} // namespace Inkscape
215
 
 
216
 
#endif // INKSCAPE_UI_VIEW_EDIT_WIDGET_H
217
 
 
218
 
/*
219
 
  Local Variables:
220
 
  mode:c++
221
 
  c-file-style:"stroustrup"
222
 
  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
223
 
  indent-tabs-mode:nil
224
 
  fill-column:99
225
 
  End:
226
 
*/
227
 
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :