summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2007-06-18 18:52:51 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2007-06-18 18:52:51 +0000
commit13d1815d69f69a9c2c029549cc973b2d90808a46 (patch)
tree8a25bab804ff17f86b8ddfe4accde6d645f072a8 /src/ui
parentUp to date with current sources. (diff)
downloadinkscape-13d1815d69f69a9c2c029549cc973b2d90808a46.tar.gz
inkscape-13d1815d69f69a9c2c029549cc973b2d90808a46.zip
patch 1734633: option to save window geometry in prefs
(bzr r3075)
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp30
-rw-r--r--src/ui/dialog/inkscape-preferences.h3
-rw-r--r--src/ui/view/edit-widget-interface.h6
-rw-r--r--src/ui/view/edit-widget.cpp20
-rw-r--r--src/ui/view/edit-widget.h2
5 files changed, 46 insertions, 15 deletions
diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
index f40197cef..5694a3ea3 100644
--- a/src/ui/dialog/inkscape-preferences.cpp
+++ b/src/ui/dialog/inkscape-preferences.cpp
@@ -414,7 +414,10 @@ void InkscapePreferences::initPageTools()
void InkscapePreferences::initPageWindows()
{
- _win_save_geom.init ( _("Save window geometry"), "options.savewindowgeometry", "value", true);
+ _win_save_geom.init ( _("Save and restore window geometry for each document"), "options.savewindowgeometry", "value", 1, true, 0);
+ _win_save_geom_prefs.init ( _("Remember and use last window's geometry"), "options.savewindowgeometry", "value", 2, false, &_win_save_geom);
+ _win_save_geom_off.init ( _("Don't save window geometry"), "options.savewindowgeometry", "value", 0, false, &_win_save_geom);
+
_win_hide_task.init ( _("Dialogs are hidden in taskbar"), "options.dialogsskiptaskbar", "value", true);
_win_zoom_resize.init ( _("Zoom when window is resized"), "options.stickyzoom", "value", false);
_win_show_close.init ( _("Show close button on dialogs"), "dialogs", "showclose", false);
@@ -427,16 +430,14 @@ void InkscapePreferences::initPageWindows()
_win_ontop_win32.init ( _("Dialogs stay on top (experimental!)"), "options.dialogsontopwin32", "value", false);
#endif
+ _page_windows.add_group_header( _("Saving window geometry (size and position):"));
+ _page_windows.add_line( false, "", _win_save_geom_off, "",
+ _("Let the window manager determine placement of all windows"));
+ _page_windows.add_line( false, "", _win_save_geom_prefs, "",
+ _("Remember and use the last window's geometry (saves geometry to user preferences)"));
_page_windows.add_line( false, "", _win_save_geom, "",
- _("Save the window size and position with each document (only for Inkscape SVG format)"));
-#ifndef WIN32 // FIXME: Temporary Win32 special code to enable transient dialogs
- _page_windows.add_line( false, "", _win_hide_task, "",
- _("Whether dialog windows are to be hidden in the window manager taskbar"));
-#endif
- _page_windows.add_line( false, "", _win_zoom_resize, "",
- _("Zoom drawing when document window is resized, to keep the same area visible (this is the default which can be changed in any window using the button above the right scrollbar)"));
- _page_windows.add_line( false, "", _win_show_close, "",
- _("Whether dialog windows have a close button (requires restart)"));
+ _("Save and restore window geometry for each document (saves geometry in the document)"));
+
_page_windows.add_group_header( _("Dialogs on top:"));
#ifndef WIN32 // FIXME: Temporary Win32 special code to enable transient dialogs
_page_windows.add_line( true, "", _win_ontop_none, "",
@@ -450,6 +451,15 @@ void InkscapePreferences::initPageWindows()
_("Whether dialogs should stay on top of document windows. Read the ReleaseNotes on this issue! (Rightclick the taskbar button and press 'Restore' to bring back a minimized document window)"));
#endif
+ _page_windows.add_group_header( _("Miscellaneous:"));
+#ifndef WIN32 // FIXME: Temporary Win32 special code to enable transient dialogs
+ _page_windows.add_line( false, "", _win_hide_task, "",
+ _("Whether dialog windows are to be hidden in the window manager taskbar"));
+#endif
+ _page_windows.add_line( false, "", _win_zoom_resize, "",
+ _("Zoom drawing when document window is resized, to keep the same area visible (this is the default which can be changed in any window using the button above the right scrollbar)"));
+ _page_windows.add_line( false, "", _win_show_close, "",
+ _("Whether dialog windows have a close button (requires restart)"));
this->AddPage(_page_windows, _("Windows"), PREFS_PAGE_WINDOWS);
}
diff --git a/src/ui/dialog/inkscape-preferences.h b/src/ui/dialog/inkscape-preferences.h
index a08894638..f2a61d1ba 100644
--- a/src/ui/dialog/inkscape-preferences.h
+++ b/src/ui/dialog/inkscape-preferences.h
@@ -117,7 +117,8 @@ protected:
PrefSpinButton _t_pencil_tolerance;
PrefRadioButton _win_ontop_none, _win_ontop_normal, _win_ontop_agressive;
- PrefCheckButton _win_save_geom, _win_hide_task, _win_zoom_resize , _win_show_close;
+ PrefRadioButton _win_save_geom_off, _win_save_geom, _win_save_geom_prefs;
+ PrefCheckButton _win_hide_task, _win_zoom_resize , _win_show_close;
// FIXME: Temporary Win32 special code to enable transient dialogs
#ifdef WIN32
diff --git a/src/ui/view/edit-widget-interface.h b/src/ui/view/edit-widget-interface.h
index 7cc0133d3..1df0bff45 100644
--- a/src/ui/view/edit-widget-interface.h
+++ b/src/ui/view/edit-widget-interface.h
@@ -56,6 +56,12 @@ struct EditWidgetInterface
/// Return mouse position in widget
virtual NR::Point getPointer() = 0;
+ /// Make widget iconified
+ virtual void setIconified() = 0;
+
+ /// Make widget maximized on screen
+ virtual void setMaximized() = 0;
+
/// Make widget fill screen and show it if possible.
virtual void setFullscreen() = 0;
diff --git a/src/ui/view/edit-widget.cpp b/src/ui/view/edit-widget.cpp
index bac6854a1..ca298cd5d 100644
--- a/src/ui/view/edit-widget.cpp
+++ b/src/ui/view/edit-widget.cpp
@@ -1168,6 +1168,18 @@ EditWidget::getPointer()
}
void
+EditWidget::setIconified()
+{
+ iconify();
+}
+
+void
+EditWidget::setMaximized()
+{
+ maximize();
+}
+
+void
EditWidget::setFullscreen()
{
fullscreen();
@@ -1426,11 +1438,11 @@ EditWidget::toggleRulers()
{
_top_ruler.hide_all();
_left_ruler.hide_all();
- prefs_set_int_attribute (_desktop->is_fullscreen ? "fullscreen.rulers" : "window.rulers", "state", 0);
+ prefs_set_int_attribute (_desktop->is_fullscreen() ? "fullscreen.rulers" : "window.rulers", "state", 0);
} else {
_top_ruler.show_all();
_left_ruler.show_all();
- prefs_set_int_attribute (_desktop->is_fullscreen ? "fullscreen.rulers" : "window.rulers", "state", 1);
+ prefs_set_int_attribute (_desktop->is_fullscreen() ? "fullscreen.rulers" : "window.rulers", "state", 1);
}
}
@@ -1441,11 +1453,11 @@ EditWidget::toggleScrollbars()
{
_bottom_scrollbar.hide_all();
_right_scrollbar.hide_all();
- prefs_set_int_attribute (_desktop->is_fullscreen ? "fullscreen.scrollbars" : "window.scrollbars", "state", 0);
+ prefs_set_int_attribute (_desktop->is_fullscreen() ? "fullscreen.scrollbars" : "window.scrollbars", "state", 0);
} else {
_bottom_scrollbar.show_all();
_right_scrollbar.show_all();
- prefs_set_int_attribute (_desktop->is_fullscreen ? "fullscreen.scrollbars" : "window.scrollbars", "state", 1);
+ prefs_set_int_attribute (_desktop->is_fullscreen() ? "fullscreen.scrollbars" : "window.scrollbars", "state", 1);
}
}
diff --git a/src/ui/view/edit-widget.h b/src/ui/view/edit-widget.h
index 55a52be4c..bedb94f98 100644
--- a/src/ui/view/edit-widget.h
+++ b/src/ui/view/edit-widget.h
@@ -106,6 +106,8 @@ public:
virtual void setPosition (NR::Point p);
virtual void setTransient (void*, int);
virtual NR::Point getPointer();
+ virtual void setIconified();
+ virtual void setMaximized();
virtual void setFullscreen();
virtual bool shutdown();
virtual void destroy();