2
* \brief Class to manage an application used for editing SVG documents
5
* \note This class is a Singleton
8
* Bryce W. Harrington <bryce@bryceharrington.org>
9
* Ralf Stephan <ralf@ark.in-berlin.de>
11
* Copyright (C) 2004 Bryce Harrington
13
* Released under GNU GPL. Read the file 'COPYING' for more information.
16
#ifndef INKSCAPE_APPLICATION_EDITOR_H
17
#define INKSCAPE_APPLICATION_EDITOR_H
19
#include <sigc++/sigc++.h>
20
#include <glib/gslist.h>
21
#include <glibmm/ustring.h>
22
#include "app-prototype.h"
38
namespace NSApplication {
40
class Editor : public AppPrototype
43
static Editor *create (int argc, char **argv);
52
void refreshDisplay();
55
bool lastViewOfDocument(SPDocument* doc, SPDesktop* view) const;
57
bool addView(SPDesktop* view);
58
bool deleteView(SPDesktop* view);
60
static Inkscape::XML::Document *getPreferences();
61
static SPDesktop* getActiveDesktop();
62
static bool isDesktopActive (SPDesktop* dt) { return getActiveDesktop()==dt; }
63
static SPDesktop* createDesktop (SPDocument* doc);
64
static void addDesktop (SPDesktop* dt);
65
static void removeDesktop (SPDesktop* dt);
66
static void activateDesktop (SPDesktop* dt);
67
static void reactivateDesktop (SPDesktop* dt);
68
static bool isDuplicatedView (SPDesktop* dt);
70
static SPDocument* getActiveDocument();
71
static void addDocument (SPDocument* doc);
72
static void removeDocument (SPDocument* doc);
74
static void selectionModified (Inkscape::Selection*, guint);
75
static void selectionChanged (Inkscape::Selection*);
76
static void subSelectionChanged (SPDesktop*);
77
static void selectionSet (Inkscape::Selection*);
78
static void eventContextSet (SPEventContext*);
79
static void hideDialogs();
80
static void unhideDialogs();
82
static sigc::connection connectSelectionModified (const sigc::slot<void, Inkscape::Selection*, guint> &slot);
83
static sigc::connection connectSelectionChanged (const sigc::slot<void, Inkscape::Selection*> &slot);
84
static sigc::connection connectSubselectionChanged (const sigc::slot<void, SPDesktop*> &slot);
85
static sigc::connection connectSelectionSet (const sigc::slot<void, Inkscape::Selection*> &slot);
86
static sigc::connection connectEventContextSet (const sigc::slot<void, SPEventContext*> &slot);
87
static sigc::connection connectDesktopActivated (const sigc::slot<void, SPDesktop*> &slot);
88
static sigc::connection connectDesktopDeactivated (const sigc::slot<void, SPDesktop*> &slot);
89
static sigc::connection connectShutdown (const sigc::slot<void> &slot);
90
static sigc::connection connectDialogsHidden (const sigc::slot<void> &slot);
91
static sigc::connection connectDialogsUnhidden (const sigc::slot<void> &slot);
92
static sigc::connection connectExternalChange (const sigc::slot<void> &slot);
96
Editor(Editor const &);
97
Editor& operator=(Editor const &);
103
bool _dialogs_toggle;
105
sigc::signal <void, Inkscape::Selection*, guint> _selection_modified_signal;
106
sigc::signal <void, Inkscape::Selection*> _selection_changed_signal;
107
sigc::signal <void, SPDesktop*> _subselection_changed_signal;
108
sigc::signal <void, Inkscape::Selection*> _selection_set_signal;
109
sigc::signal <void, SPEventContext*> _event_context_set_signal;
110
sigc::signal <void, SPDesktop*> _desktop_activated_signal;
111
sigc::signal <void, SPDesktop*> _desktop_deactivated_signal;
112
sigc::signal <void> _shutdown_signal;
113
sigc::signal <void> _dialogs_hidden_signal;
114
sigc::signal <void> _dialogs_unhidden_signal;
115
sigc::signal <void> _external_change_signal;
118
Editor(int argc, char **argv);
122
#define ACTIVE_DESKTOP Inkscape::NSApplication::Editor::getActiveDesktop()
124
} // namespace NSApplication
125
} // namespace Inkscape
128
#endif /* !INKSCAPE_APPLICATION_EDITOR_H */
133
c-file-style:"stroustrup"
134
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
139
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :