index e5d326efe9a87e1c051bbc5beb0ab056138ad1d0..227814cd1f45952b99f47e5a3b0bc0851f04983c 100644 (file)
#include "ui/dialog/align-and-distribute.h"
#include "ui/dialog/document-metadata.h"
#include "ui/dialog/document-properties.h"
-#include "ui/dialog/export.h"
#include "ui/dialog/extension-editor.h"
#include "ui/dialog/fill-and-stroke.h"
#include "ui/dialog/filter-effects-dialog.h"
#include "ui/dialog/find.h"
#include "ui/dialog/inkscape-preferences.h"
-#include "ui/dialog/layer-editor.h"
+#include "ui/dialog/input.h"
#include "ui/dialog/livepatheffect-editor.h"
#include "ui/dialog/memory.h"
#include "ui/dialog/messages.h"
#include "ui/dialog/scriptdialog.h"
-#include "ui/dialog/text-properties.h"
+#ifdef ENABLE_SVG_FONTS
+#include "ui/dialog/svg-fonts-dialog.h"
+#endif // ENABLE_SVG_FONTS
#include "ui/dialog/tracedialog.h"
#include "ui/dialog/transformation.h"
#include "ui/dialog/undo-history.h"
-#include "ui/dialog/xml-editor.h"
+#include "ui/dialog/panel-dialog.h"
#include "dialogs/layers-panel.h"
#include "dialogs/tiledialog.h"
namespace {
+using namespace Behavior;
+
template <typename T, typename B>
-inline Dialog *create() { return T::create(&B::create); }
+inline Dialog *create() { return PanelDialog<B>::template create<T>(); }
}
registerFactory("AlignAndDistribute", &create<AlignAndDistribute, FloatingBehavior>);
registerFactory("DocumentMetadata", &create<DocumentMetadata, FloatingBehavior>);
registerFactory("DocumentProperties", &create<DocumentProperties, FloatingBehavior>);
- registerFactory("Export", &create<Export, FloatingBehavior>);
registerFactory("ExtensionEditor", &create<ExtensionEditor, FloatingBehavior>);
registerFactory("FillAndStroke", &create<FillAndStroke, FloatingBehavior>);
registerFactory("FilterEffectsDialog", &create<FilterEffectsDialog, FloatingBehavior>);
registerFactory("Find", &create<Find, FloatingBehavior>);
registerFactory("IconPreviewPanel", &create<IconPreviewPanel, FloatingBehavior>);
registerFactory("InkscapePreferences", &create<InkscapePreferences, FloatingBehavior>);
- registerFactory("LayerEditor", &create<LayerEditor, FloatingBehavior>);
registerFactory("LayersPanel", &create<LayersPanel, FloatingBehavior>);
registerFactory("LivePathEffect", &create<LivePathEffectEditor, FloatingBehavior>);
registerFactory("Memory", &create<Memory, FloatingBehavior>);
registerFactory("Messages", &create<Messages, FloatingBehavior>);
registerFactory("Script", &create<ScriptDialog, FloatingBehavior>);
- registerFactory("TextProperties", &create<TextProperties, FloatingBehavior>);
+#ifdef ENABLE_SVG_FONTS
+ registerFactory("SvgFontsDialog", &create<SvgFontsDialog, FloatingBehavior>);
+#endif
+ registerFactory("Swatches", &create<SwatchesPanel, FloatingBehavior>);
registerFactory("TileDialog", &create<TileDialog, FloatingBehavior>);
registerFactory("Trace", &create<TraceDialog, FloatingBehavior>);
registerFactory("Transformation", &create<Transformation, FloatingBehavior>);
registerFactory("UndoHistory", &create<UndoHistory, FloatingBehavior>);
- registerFactory("XmlEditor", &create<XmlEditor, FloatingBehavior>);
+ registerFactory("InputDevices", &create<InputDialog, FloatingBehavior>);
} else {
registerFactory("AlignAndDistribute", &create<AlignAndDistribute, DockBehavior>);
registerFactory("DocumentMetadata", &create<DocumentMetadata, DockBehavior>);
registerFactory("DocumentProperties", &create<DocumentProperties, DockBehavior>);
- registerFactory("Export", &create<Export, DockBehavior>);
registerFactory("ExtensionEditor", &create<ExtensionEditor, DockBehavior>);
registerFactory("FillAndStroke", &create<FillAndStroke, DockBehavior>);
registerFactory("FilterEffectsDialog", &create<FilterEffectsDialog, DockBehavior>);
registerFactory("Find", &create<Find, DockBehavior>);
registerFactory("IconPreviewPanel", &create<IconPreviewPanel, DockBehavior>);
registerFactory("InkscapePreferences", &create<InkscapePreferences, DockBehavior>);
- registerFactory("LayerEditor", &create<LayerEditor, DockBehavior>);
registerFactory("LayersPanel", &create<LayersPanel, DockBehavior>);
registerFactory("LivePathEffect", &create<LivePathEffectEditor, DockBehavior>);
registerFactory("Memory", &create<Memory, DockBehavior>);
registerFactory("Messages", &create<Messages, DockBehavior>);
registerFactory("Script", &create<ScriptDialog, DockBehavior>);
- registerFactory("TextProperties", &create<TextProperties, DockBehavior>);
+#ifdef ENABLE_SVG_FONTS
+ registerFactory("SvgFontsDialog", &create<SvgFontsDialog, DockBehavior>);
+#endif
+ registerFactory("Swatches", &create<SwatchesPanel, DockBehavior>);
registerFactory("TileDialog", &create<TileDialog, DockBehavior>);
registerFactory("Trace", &create<TraceDialog, DockBehavior>);
registerFactory("Transformation", &create<Transformation, DockBehavior>);
registerFactory("UndoHistory", &create<UndoHistory, DockBehavior>);
- registerFactory("XmlEditor", &create<XmlEditor, DockBehavior>);
+ registerFactory("InputDevices", &create<InputDialog, DockBehavior>);
}
}
// Appears to cause a segfault if we do
}
+
+DialogManager &DialogManager::getInstance()
+{
+ int dialogs_type = prefs_get_int_attribute_limited ("options.dialogtype", "value", DOCK, 0, 1);
+
+ /* Use singleton behavior for floating dialogs */
+ if (dialogs_type == FLOATING) {
+ static DialogManager *instance = 0;
+
+ if (!instance)
+ instance = new DialogManager();
+ return *instance;
+ }
+
+ return *new DialogManager();
+}
+
/**
* Registers a dialog factory function used to create the named dialog.
*/