Code

Rework dialog management. Use singleton behavior for dialogs when
[inkscape.git] / src / ui / widget / panel.h
index 10f74cf2b3f571eed61c3db0916faf93740bbce5..40760a4a2658e431d16b855cdc128690d6b1649a 100644 (file)
@@ -27,6 +27,7 @@
 #include <gtkmm/table.h>
 #include <gtkmm/tooltips.h>
 
+#include "inkscape.h"
 #include "ui/previewfillable.h"
 #include "selection.h"
 
@@ -54,6 +55,9 @@ public:
 
     void restorePanelPrefs();
 
+    virtual void setDesktop(SPDesktop *desktop);
+    SPDesktop *getDesktop() { return _desktop; }
+    
     /** Signal accessors */
     virtual sigc::signal<void, int> &signalResponse();
     virtual sigc::signal<void> &signalPresent();
@@ -65,6 +69,10 @@ public:
     void setDefaultResponse(int response_id);
     void setResponseSensitive(int response_id, bool setting);
 
+    virtual sigc::signal<void, SPDesktop *, SPDocument *> &signalDocumentReplaced();
+    virtual sigc::signal<void, Inkscape::Application *, SPDesktop *> &signalActivateDesktop();
+    virtual sigc::signal<void, Inkscape::Application *, SPDesktop *> &signalDeactiveDesktop();
+
 protected:
     Gtk::Box *_getContents() { return &_contents; }
     void _setTargetFillable(PreviewFillable *target);
@@ -90,6 +98,9 @@ protected:
     /** Signals */
     sigc::signal<void, int> _signal_response;
     sigc::signal<void>      _signal_present;
+    sigc::signal<void, SPDesktop *, SPDocument *> _signal_document_replaced;
+    sigc::signal<void, Inkscape::Application *, SPDesktop *> _signal_activate_desktop;
+    sigc::signal<void, Inkscape::Application *, SPDesktop *> _signal_deactive_desktop;
 
 private:
     void _init();
@@ -98,6 +109,8 @@ private:
     void _popper(GdkEventButton *btn);
     void _wrapToggled(Gtk::CheckMenuItem *toggler);
 
+    SPDesktop       *_desktop;
+
     Glib::ustring    _label;
     Glib::ustring    _apply_label;
     int              _verb_num;