diff options
| author | MenTaLguY <mental@rydia.net> | 2006-01-16 02:36:01 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2006-01-16 02:36:01 +0000 |
| commit | 179fa413b047bede6e32109e2ce82437c5fb8d34 (patch) | |
| tree | a5a6ac2c1708bd02288fbd8edb2ff500ff2e0916 /src/ui/view/edit-widget.h | |
| download | inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.tar.gz inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.zip | |
moving trunk for module inkscape
(bzr r1)
Diffstat (limited to 'src/ui/view/edit-widget.h')
| -rw-r--r-- | src/ui/view/edit-widget.h | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/src/ui/view/edit-widget.h b/src/ui/view/edit-widget.h new file mode 100644 index 000000000..73e6f048e --- /dev/null +++ b/src/ui/view/edit-widget.h @@ -0,0 +1,211 @@ +/** + * \brief This class implements the functionality of the window layout, menus, + * and signals. + * + * Authors: + * Bryce W. Harrington <bryce@bryceharrington.org> + * Derek P. Moore <derekm@hackunix.org> + * Ralf Stephan <ralf@ark.in-berlin.de> + * + * Copyright (C) 2004 Bryce Harrington + * + * Released under GNU GPL. Read the file 'COPYING' for more information. + */ + +#ifndef INKSCAPE_UI_VIEW_EDIT_WIDGET_H +#define INKSCAPE_UI_VIEW_EDIT_WIDGET_H + +#include <gtkmm/box.h> +#include <gtkmm/table.h> +#include <gtkmm/entry.h> +#include <gtkmm/scrollbar.h> +#include <gtkmm/actiongroup.h> +#include <gtkmm/uimanager.h> +#include <gtkmm/togglebutton.h> + +#include "ui/dialog/dialog-manager.h" +#include "ui/view/edit-widget-interface.h" +#include "ui/widget/selected-style.h" +#include "ui/widget/ruler.h" +#include "ui/widget/toolbox.h" +#include "ui/widget/svg-canvas.h" +#include "ui/widget/zoom-status.h" +#include "widgets/layer-selector.h" + +struct SPDesktop; +struct SPDocument; +struct SPNamedView; + +namespace Inkscape { +namespace UI { +namespace View { + +class EditWidget : public Gtk::Window, + public EditWidgetInterface { +public: + EditWidget (SPDocument*); + ~EditWidget(); + + // Initialization + void initActions(); + void initUIManager(); + void initLayout(); + void initEdit (SPDocument*); + void destroyEdit(); + + // Actions + void onActionFileNew(); + void onActionFileOpen(); + void onActionFilePrint(); + void onActionFileQuit(); + void onToolbarItem(); + void onSelectTool(); + void onNodeTool(); + + // Menus + void onMenuItem(); + + void onDialogAbout(); + void onDialogAlignAndDistribute(); + void onDialogInkscapePreferences(); + void onDialogDialog(); + void onDialogDocumentProperties(); + void onDialogExport(); + void onDialogExtensionEditor(); + void onDialogFillAndStroke(); + void onDialogFind(); + void onDialogLayerEditor(); + void onDialogMessages(); + void onDialogObjectProperties(); + void onDialogTextProperties(); + void onDialogTransform(); + void onDialogTransformation(); + void onDialogTrace(); + void onDialogXmlEditor(); + + // Whiteboard (Inkboard) +#ifdef WITH_INKBOARD + void onDialogWhiteboardConnect(); + void onDialogWhiteboardShareWithUser(); + void onDialogWhiteboardShareWithChat(); + void onDialogOpenSessionFile(); + void onDumpXMLTracker(); +#endif + + void onUriChanged(); + + // from EditWidgetInterface + virtual void *getWindow(); + virtual void setTitle (gchar const*); + virtual void layout(); + virtual void present(); + virtual void getGeometry (gint &x, gint &y, gint &w, gint &h); + virtual void setSize (gint w, gint h); + virtual void setPosition (NR::Point p); + virtual void setTransient (void*, int); + virtual NR::Point getPointer(); + virtual void setFullscreen(); + virtual bool shutdown(); + virtual void destroy(); + virtual void requestCanvasUpdate(); + virtual void activateDesktop(); + virtual void deactivateDesktop(); + virtual void viewSetPosition (NR::Point p); + virtual void updateRulers(); + virtual void updateScrollbars (double scale); + virtual void toggleRulers(); + virtual void toggleScrollbars(); + virtual void updateZoom(); + virtual void letZoomGrabFocus(); + virtual void setToolboxFocusTo (const gchar *); + virtual void setToolboxAdjustmentValue (const gchar *, double); + virtual bool isToolboxButtonActive (gchar const*); + virtual void setCoordinateStatus (NR::Point p); + virtual void setMessage (Inkscape::MessageType type, gchar const* msg); + virtual bool warnDialog (gchar*); + +protected: + friend void _namedview_modified (SPNamedView*, guint, EditWidget*); + + Gtk::Tooltips _tooltips; + + // Child widgets: + Gtk::Table _main_window_table; + Gtk::VBox _toolbars_vbox; + Gtk::HBox _sub_window_hbox; + Gtk::Table _viewport_table; + + UI::Widget::Toolbox *_tool_ctrl; + Gtk::Toolbar *_select_ctrl; + Gtk::Toolbar *_uri_ctrl; + Gtk::Label _uri_label; + Gtk::Entry _uri_entry; + Gtk::Toolbar *_node_ctrl; + + UI::Widget::HRuler _top_ruler; + UI::Widget::VRuler _left_ruler; + Gtk::HScrollbar _bottom_scrollbar; + Gtk::VScrollbar _right_scrollbar; + Gtk::ToggleButton _sticky_zoom; + UI::Widget::SVGCanvas _svg_canvas; + Gtk::HBox _statusbar; + UI::Widget::SelectedStyle _selected_style_status; + UI::Widget::ZoomStatus _zoom_status; + Inkscape::Widgets::LayerSelector _layer_selector; + Gtk::EventBox _coord_eventbox; + Gtk::Table _coord_status; + Gtk::Label _coord_status_x, _coord_status_y; + Gtk::Label _select_status; + + SPDesktop* _desktop; + SPNamedView* _namedview; + double _dt2r; + + Glib::RefPtr<Gtk::ActionGroup> _act_grp; + Glib::RefPtr<Gtk::UIManager> _ui_mgr; + UI::Dialog::DialogManager _dlg_mgr; + + void initMenuActions(); + void initToolbarActions(); + void initAccelMap(); + void initMenuBar(); + void initCommandsBar(); + void initToolControlsBar(); + void initUriBar(); + void initToolsBar(); + void initBottomScrollbar(); + void initRightScrollbar(); + void initLeftRuler(); + void initTopRuler(); + void initStickyZoom(); + void initStatusbar(); + + virtual bool on_key_press_event (GdkEventKey*); + virtual bool on_delete_event (GdkEventAny*); + virtual bool on_focus_in_event (GdkEventFocus*); + +private: + bool onEntryFocusIn (GdkEventFocus*); + bool onEntryFocusOut (GdkEventFocus*); + void onWindowSizeAllocate (Gtk::Allocation&); + void onWindowRealize(); + void onAdjValueChanged(); + + bool _update_s_f, _update_a_f; +}; +} // namespace View +} // namespace UI +} // namespace Inkscape + +#endif // INKSCAPE_UI_VIEW_EDIT_WIDGET_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : |
