Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Hi,

I have added a zoom submenu to View with the same entries of the zoom
status bar right mouse button menu.
Additionally the zoom menu entries were sorted in a more logical way.

This feature was requested on the design-mailing list:
http://www.mail-archive.com/design@global.libreoffice.org/msg03561.html


I have created two patches, one, which bases on  Caolán McNamara's
patch, to move zoomitem from svx to sfx2, and the other to add the new
View zoom menu.

Since the menu is static there are cases where the functions "Optimal",
"Entire Page" and "Page Width" are shown in the View menu (for example
under Writer "Page Preview") but not in the right mouse button zoom menu
but they doesn't seem to have a negative impact if used.

During testing I found out that LO does crash if the function "Page
Width" is used in Calc in the "Page Preview" but this also does happen
with the current master branch so it should be unrelated.

Regards
Tim

-- 
SUSE LINUX Products GmbH, GF: Jeff Hawn, Jennifer Guild, Felix
Imendörffer, HRB 16746 (AG Nürnberg)
Maxfeldstr. 5, 90409 Nürnberg, Germany
T: +49 (0) 911 74053-0  F: +49 (0) 911 74053-483
http://www.suse.de/
From 5979d98c6c94b63b0f4a4e062eb412066f2bf04b Mon Sep 17 00:00:00 2001
From: Tim Hardeck <thardeck@suse.de>
Date: Tue, 12 Jun 2012 19:04:05 +0200
Subject: [PATCH 1/2] move zoomitem from svx to sfx2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

To allow using SvxZoomItem in sfx2 zoomitem is moved from svx to sfx2.
This patch does base on Caolán McNamara's patch he sent to the mailing list.

Change-Id: I4d245f938d92ad3a20b692f5f76d8e0d00b1a648
---
 cui/source/dialogs/zoom.cxx                        |    2 +-
 reportdesign/source/ui/inc/ReportController.hxx    |    2 +-
 reportdesign/source/ui/inc/ReportWindow.hxx        |    2 +-
 .../source/ui/misc/statusbarcontroller.cxx         |    2 +-
 reportdesign/source/ui/report/ReportController.cxx |    2 +-
 sc/inc/appoptio.hxx                                |    2 +-
 sc/source/ui/app/typemap.cxx                       |    2 +-
 sc/source/ui/inc/prevwsh.hxx                       |    2 +-
 sc/source/ui/inc/ui_pch.hxx                        |    2 +-
 sc/source/ui/inc/viewdata.hxx                      |    2 +-
 sd/source/core/typemap.cxx                         |    2 +-
 sd/source/ui/func/fuscale.cxx                      |    2 +-
 .../controller/SlideSorterController.cxx           |    2 +-
 .../ui/slidesorter/controller/SlsSlotManager.cxx   |    2 +-
 sd/source/ui/unoidl/SdUnoDrawView.cxx              |    2 +-
 sd/source/ui/view/drviews2.cxx                     |    2 +-
 sd/source/ui/view/drviews3.cxx                     |    2 +-
 sd/source/ui/view/drviewsa.cxx                     |    2 +-
 sd/source/ui/view/outlnvs2.cxx                     |    3 +-
 sd/source/ui/view/outlnvsh.cxx                     |    2 +-
 sfx2/Library_sfx.mk                                |    1 +
 sfx2/Package_inc.mk                                |    1 +
 sfx2/inc/sfx2/sfx.hrc                              |   11 +-
 sfx2/inc/sfx2/sfxsids.hrc                          |    3 +-
 sfx2/inc/sfx2/zoomitem.hxx                         |   92 ++++++++
 sfx2/sdi/sfx.sdi                                   |   26 +++
 sfx2/sdi/sfxitems.sdi                              |    7 +
 sfx2/source/doc/zoomitem.cxx                       |  180 ++++++++++++++++
 starmath/qa/cppunit/test_starmath.cxx              |    2 +-
 starmath/sdi/smitems.sdi                           |   10 -
 starmath/source/typemap.cxx                        |    3 +-
 starmath/source/view.cxx                           |    2 +-
 svx/Library_svx.mk                                 |    1 -
 svx/Package_inc.mk                                 |    1 -
 svx/inc/svx/svxids.hrc                             |    8 +-
 svx/inc/svx/unomid.hxx                             |    3 -
 svx/inc/svx/zoomitem.hxx                           |   92 --------
 svx/sdi/svx.sdi                                    |   27 ---
 svx/sdi/svxitems.sdi                               |    8 -
 svx/source/items/zoomitem.cxx                      |  228 --------------------
 svx/source/stbctrls/zoomctrl.cxx                   |    2 +-
 sw/inc/viewopt.hxx                                 |    3 +-
 sw/source/core/view/pagepreviewlayout.cxx          |    2 +-
 sw/source/ui/inc/pview.hxx                         |    2 +-
 sw/source/ui/inc/view.hxx                          |    3 +-
 sw/source/ui/shells/slotadd.cxx                    |    2 +-
 sw/source/ui/uno/SwXDocumentSettings.cxx           |    2 +-
 sw/source/ui/utlui/zoomctrl.cxx                    |    2 +-
 48 files changed, 353 insertions(+), 412 deletions(-)
 create mode 100644 sfx2/inc/sfx2/zoomitem.hxx
 create mode 100644 sfx2/source/doc/zoomitem.cxx
 delete mode 100644 svx/inc/svx/zoomitem.hxx
 delete mode 100644 svx/source/items/zoomitem.cxx

diff --git a/cui/source/dialogs/zoom.cxx b/cui/source/dialogs/zoom.cxx
index 64da424..740ddc8 100644
--- a/cui/source/dialogs/zoom.cxx
+++ b/cui/source/dialogs/zoom.cxx
@@ -38,7 +38,7 @@
 #include "zoom.hrc"
 
 #include "zoom.hxx"
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <svx/viewlayoutitem.hxx>
 #include <dialmgr.hxx>
 #include <svx/zoom_def.hxx>
diff --git a/reportdesign/source/ui/inc/ReportController.hxx 
b/reportdesign/source/ui/inc/ReportController.hxx
index fa734c1..37fca85 100644
--- a/reportdesign/source/ui/inc/ReportController.hxx
+++ b/reportdesign/source/ui/inc/ReportController.hxx
@@ -64,7 +64,7 @@
 #include <svl/lstner.hxx>
 #include <svtools/transfer.hxx>
 #include <svx/svdedtv.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 
 #include <boost/noncopyable.hpp>
 #include <boost/shared_ptr.hpp>
diff --git a/reportdesign/source/ui/inc/ReportWindow.hxx 
b/reportdesign/source/ui/inc/ReportWindow.hxx
index 87d549b..fef6329 100644
--- a/reportdesign/source/ui/inc/ReportWindow.hxx
+++ b/reportdesign/source/ui/inc/ReportWindow.hxx
@@ -33,7 +33,7 @@
 #include "StartMarker.hxx"
 #include <svtools/ruler.hxx>
 #include <svx/svdedtv.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 
 #include <vector>
 #include <boost/shared_ptr.hpp>
diff --git a/reportdesign/source/ui/misc/statusbarcontroller.cxx 
b/reportdesign/source/ui/misc/statusbarcontroller.cxx
index 5d77ea8..6b89a26 100644
--- a/reportdesign/source/ui/misc/statusbarcontroller.cxx
+++ b/reportdesign/source/ui/misc/statusbarcontroller.cxx
@@ -31,7 +31,7 @@
 #include <svx/zoomsliderctrl.hxx>
 #include <svx/zoomctrl.hxx>
 #include <svx/svxids.hrc>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <svx/zoomslideritem.hxx>
 
 #include <vcl/svapp.hxx>
diff --git a/reportdesign/source/ui/report/ReportController.cxx 
b/reportdesign/source/ui/report/ReportController.cxx
index a85de0c..d781f06 100644
--- a/reportdesign/source/ui/report/ReportController.cxx
+++ b/reportdesign/source/ui/report/ReportController.cxx
@@ -116,7 +116,7 @@
 #include <editeng/lrspitem.hxx>
 #include <editeng/ulspitem.hxx>
 #include <editeng/sizeitem.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <svx/zoomslideritem.hxx>
 #include <editeng/brshitem.hxx>
 #include <svx/flagsdef.hxx>
diff --git a/sc/inc/appoptio.hxx b/sc/inc/appoptio.hxx
index d4cc424..dd0cadb 100644
--- a/sc/inc/appoptio.hxx
+++ b/sc/inc/appoptio.hxx
@@ -30,7 +30,7 @@
 #define SC_APPOPTIO_HXX
 
 #include <vcl/field.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <unotools/configitem.hxx>
 #include "scdllapi.h"
 #include "scmod.hxx"
diff --git a/sc/source/ui/app/typemap.cxx b/sc/source/ui/app/typemap.cxx
index 257d911..075b9a1 100644
--- a/sc/source/ui/app/typemap.cxx
+++ b/sc/source/ui/app/typemap.cxx
@@ -43,7 +43,7 @@
 #include <svx/postattr.hxx>
 #include <editeng/postitem.hxx>
 #include <sfx2/tplpitem.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <editeng/brshitem.hxx>
 #include <editeng/wghtitem.hxx>
 #include <editeng/fhgtitem.hxx>
diff --git a/sc/source/ui/inc/prevwsh.hxx b/sc/source/ui/inc/prevwsh.hxx
index 0f89fc7..f62165f 100644
--- a/sc/source/ui/inc/prevwsh.hxx
+++ b/sc/source/ui/inc/prevwsh.hxx
@@ -34,7 +34,7 @@ class ScrollBar;
 #include "address.hxx"
 #include <sfx2/viewfac.hxx>
 #include <sfx2/viewsh.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 
 #include "shellids.hxx"
 
diff --git a/sc/source/ui/inc/ui_pch.hxx b/sc/source/ui/inc/ui_pch.hxx
index 47fab6e..a5c129b 100644
--- a/sc/source/ui/inc/ui_pch.hxx
+++ b/sc/source/ui/inc/ui_pch.hxx
@@ -135,7 +135,7 @@
 #include <svl/undo.hxx>
 #include <vcl/seleng.hxx>
 #include <rsc/rscsfx.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <vcl/scrbar.hxx>
 #include <viewutil.hxx>
 #include <vcl/svapp.hxx>
diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx
index 6ae8da2..4a08a9d 100644
--- a/sc/source/ui/inc/viewdata.hxx
+++ b/sc/source/ui/inc/viewdata.hxx
@@ -28,7 +28,7 @@
 #ifndef SC_VIEWDATA_HXX
 #define SC_VIEWDATA_HXX
 
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include "scdllapi.h"
 #include "viewopti.hxx"
 
diff --git a/sd/source/core/typemap.cxx b/sd/source/core/typemap.cxx
index 3d66df1..007a8cc 100644
--- a/sd/source/core/typemap.cxx
+++ b/sd/source/core/typemap.cxx
@@ -56,7 +56,7 @@
 #include <editeng/sizeitem.hxx>
 #include <editeng/svxenum.hxx>
 #include <svx/algitem.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <svx/pageitem.hxx>
 #include <svx/svdattr.hxx>
 #include <svx/grafctrl.hxx>
diff --git a/sd/source/ui/func/fuscale.cxx b/sd/source/ui/func/fuscale.cxx
index c62c6a2..cfe7149 100644
--- a/sd/source/ui/func/fuscale.cxx
+++ b/sd/source/ui/func/fuscale.cxx
@@ -45,7 +45,7 @@
 #include <sfx2/viewfrm.hxx>
 #include <sfx2/dispatch.hxx>
 #include <svx/zoom_def.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <sfx2/request.hxx>
 #include <svx/svxdlg.hxx>
 
diff --git a/sd/source/ui/slidesorter/controller/SlideSorterController.cxx 
b/sd/source/ui/slidesorter/controller/SlideSorterController.cxx
index 2932e20..10ca623 100644
--- a/sd/source/ui/slidesorter/controller/SlideSorterController.cxx
+++ b/sd/source/ui/slidesorter/controller/SlideSorterController.cxx
@@ -80,7 +80,7 @@
 #include <svx/svdopage.hxx>
 #include <svx/svxids.hrc>
 #include <svx/ruler.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <svtools/tabbar.hxx>
 #include <sfx2/request.hxx>
 #include <sfx2/viewfrm.hxx>
diff --git a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx 
b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
index f2d4f0e..ec04129 100644
--- a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
+++ b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
@@ -81,7 +81,7 @@
 #include <sfx2/bindings.hxx>
 #include <sfx2/dispatch.hxx>
 #include <svx/svxids.hrc>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <svx/svxdlg.hxx>
 #include <svx/dialogs.hrc>
 #include <vcl/msgbox.hxx>
diff --git a/sd/source/ui/unoidl/SdUnoDrawView.cxx b/sd/source/ui/unoidl/SdUnoDrawView.cxx
index 519b29a..b34f104 100644
--- a/sd/source/ui/unoidl/SdUnoDrawView.cxx
+++ b/sd/source/ui/unoidl/SdUnoDrawView.cxx
@@ -46,7 +46,7 @@
 #include <svx/svdpagv.hxx>
 #include <svx/unoshape.hxx>
 #include <svx/unoshcol.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <com/sun/star/drawing/DrawViewMode.hpp>
 #include <com/sun/star/drawing/XLayerManager.hpp>
 #include <com/sun/star/view/DocumentZoomType.hpp>
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index 6ecad4c..5f20f72 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -34,7 +34,7 @@
 #include <svx/svxids.hrc>
 #include <svx/svdpagv.hxx>
 #include <svx/svdundo.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <editeng/editdata.hxx>
 #include <basic/sberrors.hxx>
 #include <vcl/msgbox.hxx>
diff --git a/sd/source/ui/view/drviews3.cxx b/sd/source/ui/view/drviews3.cxx
index 4435d29..5b0fc2e 100644
--- a/sd/source/ui/view/drviews3.cxx
+++ b/sd/source/ui/view/drviews3.cxx
@@ -38,7 +38,7 @@
 #include <svx/ruler.hxx>
 #include <editeng/numitem.hxx>
 #include <svx/rulritem.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <svx/svxids.hrc>
 #include <svx/svdpagv.hxx>
 #include <sfx2/request.hxx>
diff --git a/sd/source/ui/view/drviewsa.cxx b/sd/source/ui/view/drviewsa.cxx
index 56ee97a..d99fd9b 100644
--- a/sd/source/ui/view/drviewsa.cxx
+++ b/sd/source/ui/view/drviewsa.cxx
@@ -35,7 +35,7 @@
 #endif
 #include <svx/svdlayer.hxx>
 #ifndef _SVX_ZOOMITEM
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #endif
 #include <svx/svdpagv.hxx>
 #include <svl/ptitem.hxx>
diff --git a/sd/source/ui/view/outlnvs2.cxx b/sd/source/ui/view/outlnvs2.cxx
index 7bd0448..1c894fd 100644
--- a/sd/source/ui/view/outlnvs2.cxx
+++ b/sd/source/ui/view/outlnvs2.cxx
@@ -37,7 +37,8 @@
 #include <sfx2/dispatch.hxx>
 #include <sfx2/request.hxx>
 #include <svl/eitem.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
+#include <svx/svxids.hrc>
 #include <vcl/msgbox.hxx>
 #include <editeng/eeitem.hxx>
 #include <editeng/flditem.hxx>
diff --git a/sd/source/ui/view/outlnvsh.cxx b/sd/source/ui/view/outlnvsh.cxx
index f37b7a0..acee1e6 100644
--- a/sd/source/ui/view/outlnvsh.cxx
+++ b/sd/source/ui/view/outlnvsh.cxx
@@ -39,7 +39,7 @@
 #include <sfx2/objface.hxx>
 #include <sot/exchange.hxx>
 #include <svx/ruler.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <editeng/eeitem.hxx>
 #include <editeng/flditem.hxx>
 #include <sfx2/shell.hxx>
diff --git a/sfx2/Library_sfx.mk b/sfx2/Library_sfx.mk
index f9d848b..6da9165 100644
--- a/sfx2/Library_sfx.mk
+++ b/sfx2/Library_sfx.mk
@@ -214,6 +214,7 @@ $(eval $(call gb_Library_add_exception_objects,sfx,\
     sfx2/source/doc/sfxbasemodel \
     sfx2/source/doc/sfxmodelfactory \
     sfx2/source/doc/syspath \
+    sfx2/source/doc/zoomitem \
     sfx2/source/explorer/nochaos \
     sfx2/source/inet/inettbc \
     sfx2/source/menu/mnuitem \
diff --git a/sfx2/Package_inc.mk b/sfx2/Package_inc.mk
index 4c2594c..d0a8b22 100644
--- a/sfx2/Package_inc.mk
+++ b/sfx2/Package_inc.mk
@@ -134,5 +134,6 @@ $(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/userinputinterception.hxx,sf
 $(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/viewfac.hxx,sfx2/viewfac.hxx))
 $(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/viewfrm.hxx,sfx2/viewfrm.hxx))
 $(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/viewsh.hxx,sfx2/viewsh.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/zoomitem.hxx,sfx2/zoomitem.hxx))
 
 # vim: set noet sw=4 ts=4:
diff --git a/sfx2/inc/sfx2/sfx.hrc b/sfx2/inc/sfx2/sfx.hrc
index e09af81..fd734fc 100644
--- a/sfx2/inc/sfx2/sfx.hrc
+++ b/sfx2/inc/sfx2/sfx.hrc
@@ -352,10 +352,13 @@
 #define MID_DOCINFO_ENCRYPTED                0x2c
 #define MID_DOCINFO_STATISTIC                0x33
 #define MID_DOCINFO_CHARLOCALE               0x34
-#define MID_CATEGORY                                     0x35
-#define MID_COMPANY                                      0x36
-#define MID_MANAGER                                      0x37
-#define MID_LAST_USED_PROPID              MID_MANAGER
+#define MID_CATEGORY                         0x35
+#define MID_COMPANY                          0x36
+#define MID_MANAGER                          0x37
+#define MID_TYPE                             0x38
+#define MID_VALUE                           0x39
+#define MID_VALUESET                                0x40
+#define MID_LAST_USED_PROPID              MID_VALUESET
 
 // Config-Ids -----------------------------------------------------------
 
diff --git a/sfx2/inc/sfx2/sfxsids.hrc b/sfx2/inc/sfx2/sfxsids.hrc
index 53fd3ee..1403583 100644
--- a/sfx2/inc/sfx2/sfxsids.hrc
+++ b/sfx2/inc/sfx2/sfxsids.hrc
@@ -200,6 +200,8 @@
 #define ID_FILETP_READONLY                      (ID_FILETP_START + 0)
 #define ID_FILETP_TITLE                     (ID_FILETP_START + 1)
 
+#define SID_ATTR_ZOOM                      (SID_SVX_START + 1419)
+
 #define SID_EXPLORER_PROPS_START            (SID_SFX_START + 1410)
 #define SID_EXPLORER_PROPS_END              (SID_SFX_START + 1499)
 
@@ -1025,4 +1027,3 @@
 #define SID_CHG_PROTECT         (SC_VIEW_START + 84)
 
 // eof ------------------------------------------------------------------------
-
diff --git a/sfx2/inc/sfx2/zoomitem.hxx b/sfx2/inc/sfx2/zoomitem.hxx
new file mode 100644
index 0000000..592e81f
--- /dev/null
+++ b/sfx2/inc/sfx2/zoomitem.hxx
@@ -0,0 +1,92 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _SVX_ZOOMITEM_HXX
+#define _SVX_ZOOMITEM_HXX
+
+#include <svl/intitem.hxx>
+#include <sfx2/sfxsids.hrc>
+#include "sfx2/dllapi.h"
+
+//-------------------------------------------------------------------------
+
+enum SvxZoomType
+{
+    SVX_ZOOM_PERCENT,       // GetValue() ist kein besonderer prozentualer Wert
+    SVX_ZOOM_OPTIMAL,       // GetValue() entspricht der optimalen Gr"o\se
+    SVX_ZOOM_WHOLEPAGE,     // GetValue() entspricht der ganzen Seite
+    SVX_ZOOM_PAGEWIDTH,      // GetValue() entspricht der Seitenbreite
+    SVX_ZOOM_PAGEWIDTH_NOBORDER  // GetValue() pagewidth without border
+};
+
+//-------------------------------------------------------------------------
+
+class SFX2_DLLPUBLIC SvxZoomItem: public SfxUInt16Item
+{
+    sal_uInt16                  nValueSet;  // erlaubte Werte (siehe #defines unten)
+    SvxZoomType             eType;
+
+public:
+    TYPEINFO();
+
+    SvxZoomItem( SvxZoomType eZoomType = SVX_ZOOM_PERCENT,
+                 sal_uInt16 nVal = 0, sal_uInt16 nWhich = SID_ATTR_ZOOM );
+    SvxZoomItem( const SvxZoomItem& );
+    ~SvxZoomItem();
+
+    void                    SetValueSet( sal_uInt16 nValues ) { nValueSet = nValues; }
+    sal_uInt16                  GetValueSet() const { return nValueSet; }
+    bool                    IsValueAllowed( sal_uInt16 nValue ) const
+                            { return nValue == ( nValue & nValueSet ); }
+
+    SvxZoomType             GetType() const { return eType; }
+    void                    SetType( SvxZoomType eNewType )
+                            { eType = eNewType; }
+
+    virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
+    virtual SfxPoolItem*    Create( SvStream& rStrm, sal_uInt16 nVersion ) const;
+    virtual SvStream&       Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const;
+    virtual int             operator==( const SfxPoolItem& ) const;
+    virtual bool            QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) 
const;
+    virtual bool            PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 
0 );
+};
+
+//------------------------------------------------------------------------
+
+#define SVX_ZOOM_ENABLE_50          0x0001
+#define SVX_ZOOM_ENABLE_75          0x0002
+#define SVX_ZOOM_ENABLE_100         0x0004
+#define SVX_ZOOM_ENABLE_150         0x0008
+#define SVX_ZOOM_ENABLE_200         0x0010
+#define SVX_ZOOM_ENABLE_OPTIMAL     0x1000
+#define SVX_ZOOM_ENABLE_WHOLEPAGE   0x2000
+#define SVX_ZOOM_ENABLE_PAGEWIDTH   0x4000
+#define SVX_ZOOM_ENABLE_ALL         0x701F
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi
index 396fbb7..9193417 100644
--- a/sfx2/sdi/sfx.sdi
+++ b/sfx2/sdi/sfx.sdi
@@ -8317,3 +8317,29 @@ SfxInt16Item ThesaurusFromContext SID_THES
     GroupId = GID_TEXT;
 ]
 
+//--------------------------------------------------------------------------
+SvxZoomItem Zoom SID_ATTR_ZOOM
+
+[
+    /* flags: */
+    AutoUpdate = FALSE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = TRUE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    Readonly = FALSE,
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = TRUE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_VIEW;
+]
diff --git a/sfx2/sdi/sfxitems.sdi b/sfx2/sdi/sfxitems.sdi
index 421c1cb..ab335a9 100644
--- a/sfx2/sdi/sfxitems.sdi
+++ b/sfx2/sdi/sfxitems.sdi
@@ -88,3 +88,10 @@
     item SfxScriptOrganizer SfxScriptOrganizerItem;
     item String     SvxClipboardFmtItem;    //! Dummy
 
+    struct SvxZoom
+    {
+        UINT16 Value         MID_VALUE;
+        INT16 ValueSet       MID_VALUESET;
+        INT16 Type           MID_TYPE;
+    };
+    item SvxZoom SvxZoomItem;
diff --git a/sfx2/source/doc/zoomitem.cxx b/sfx2/source/doc/zoomitem.cxx
new file mode 100644
index 0000000..d590608
--- /dev/null
+++ b/sfx2/source/doc/zoomitem.cxx
@@ -0,0 +1,180 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <tools/stream.hxx>
+#include <basic/sbxvar.hxx>
+
+#include <sfx2/zoomitem.hxx>
+#include <com/sun/star/uno/Sequence.hxx>
+#include <com/sun/star/beans/PropertyValue.hpp>
+
+// -----------------------------------------------------------------------
+
+TYPEINIT1_FACTORY(SvxZoomItem,SfxUInt16Item, new SvxZoomItem);
+
+#define ZOOM_PARAM_VALUE    "Value"
+#define ZOOM_PARAM_VALUESET "ValueSet"
+#define ZOOM_PARAM_TYPE     "Type"
+#define ZOOM_PARAMS         3
+
+// -----------------------------------------------------------------------
+
+SvxZoomItem::SvxZoomItem
+(
+    SvxZoomType eZoomType,
+    sal_uInt16      nVal,
+    sal_uInt16      _nWhich
+)
+:   SfxUInt16Item( _nWhich, nVal ),
+    nValueSet( SVX_ZOOM_ENABLE_ALL ),
+    eType( eZoomType )
+{
+}
+
+// -----------------------------------------------------------------------
+
+SvxZoomItem::SvxZoomItem( const SvxZoomItem& rOrig )
+:   SfxUInt16Item( rOrig.Which(), rOrig.GetValue() ),
+    nValueSet( rOrig.GetValueSet() ),
+    eType( rOrig.GetType() )
+{
+}
+
+// -----------------------------------------------------------------------
+
+SvxZoomItem::~SvxZoomItem()
+{
+}
+
+// -----------------------------------------------------------------------
+
+SfxPoolItem* SvxZoomItem::Clone( SfxItemPool * /*pPool*/ ) const
+{
+    return new SvxZoomItem( *this );
+}
+
+// -----------------------------------------------------------------------
+
+SfxPoolItem* SvxZoomItem::Create( SvStream& rStrm, sal_uInt16 /*nVersion*/ ) const
+{
+    sal_uInt16 nValue;
+    sal_uInt16 nValSet;
+    sal_Int8 nType;
+    rStrm >> nValue >> nValSet >> nType;
+    SvxZoomItem* pNew = new SvxZoomItem( (SvxZoomType)nType, nValue, Which() );
+    pNew->SetValueSet( nValSet );
+    return pNew;
+}
+
+// -----------------------------------------------------------------------
+
+SvStream& SvxZoomItem::Store( SvStream& rStrm, sal_uInt16 /*nItemVersion*/ ) const
+{
+    rStrm << (sal_uInt16)GetValue()
+          << nValueSet
+          << (sal_Int8)eType;
+    return rStrm;
+}
+
+// -----------------------------------------------------------------------
+
+int SvxZoomItem::operator==( const SfxPoolItem& rAttr ) const
+{
+    DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+
+    SvxZoomItem& rItem = (SvxZoomItem&)rAttr;
+
+    return ( GetValue() == rItem.GetValue()     &&
+             nValueSet  == rItem.GetValueSet()  &&
+             eType      == rItem.GetType()          );
+}
+
+bool SvxZoomItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const
+{
+//  sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+    nMemberId &= ~CONVERT_TWIPS;
+
+    assert(nMemberId == 0);
+
+    ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aSeq( ZOOM_PARAMS );
+    aSeq[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ZOOM_PARAM_VALUE ));
+    aSeq[0].Value <<= sal_Int32( GetValue() );
+    aSeq[1].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ZOOM_PARAM_VALUESET ));
+    aSeq[1].Value <<= sal_Int16( nValueSet );
+    aSeq[2].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ZOOM_PARAM_TYPE ));
+    aSeq[2].Value <<= sal_Int16( eType );
+    rVal <<= aSeq;
+
+    return true;
+}
+
+bool SvxZoomItem::PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId )
+{
+    nMemberId &= ~CONVERT_TWIPS;
+    assert(nMemberId == 0);
+
+    ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aSeq;
+    if (( rVal >>= aSeq ) && ( aSeq.getLength() == ZOOM_PARAMS ))
+    {
+        sal_Int32 nValueTmp( 0 );
+        sal_Int16 nValueSetTmp( 0 );
+        sal_Int16 nTypeTmp( 0 );
+        sal_Bool  bAllConverted( sal_True );
+        sal_Int16 nConvertedCount( 0 );
+        for ( sal_Int32 i = 0; i < aSeq.getLength(); i++ )
+        {
+            if ( aSeq[i].Name.equalsAscii( ZOOM_PARAM_VALUE ))
+            {
+                bAllConverted &= ( aSeq[i].Value >>= nValueTmp );
+                ++nConvertedCount;
+            }
+            else if ( aSeq[i].Name.equalsAscii( ZOOM_PARAM_VALUESET ))
+            {
+                bAllConverted &= ( aSeq[i].Value >>= nValueSetTmp );
+                ++nConvertedCount;
+            }
+            else if ( aSeq[i].Name.equalsAscii( ZOOM_PARAM_TYPE ))
+            {
+                bAllConverted &= ( aSeq[i].Value >>= nTypeTmp );
+                ++nConvertedCount;
+            }
+        }
+
+        if ( bAllConverted && nConvertedCount == ZOOM_PARAMS )
+        {
+            SetValue( (sal_uInt16)nValueTmp );
+            nValueSet = nValueSetTmp;
+            eType = SvxZoomType( nTypeTmp );
+            return true;
+        }
+    }
+
+    return false;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/starmath/qa/cppunit/test_starmath.cxx b/starmath/qa/cppunit/test_starmath.cxx
index e59687f..ba30ac6 100644
--- a/starmath/qa/cppunit/test_starmath.cxx
+++ b/starmath/qa/cppunit/test_starmath.cxx
@@ -55,7 +55,7 @@
 #include <editeng/editeng.hxx>
 #include <editeng/editview.hxx>
 
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 
 SO2_DECL_REF(SmDocShell)
 SO2_IMPL_REF(SmDocShell)
diff --git a/starmath/sdi/smitems.sdi b/starmath/sdi/smitems.sdi
index 019d2c5..0cf73d0 100644
--- a/starmath/sdi/smitems.sdi
+++ b/starmath/sdi/smitems.sdi
@@ -580,16 +580,6 @@ item SvxLongULSpace SvxLongULSpaceItem;
 
 //-------------------------------------------------------------------------
 
-struct SvxZoom
-{
-    INT32           Type        MID_TYPE;
-    UINT16          ValueSet    MID_VALUESET;
-    INT32           Percent     MID_PERCENT;
-};
-item SvxZoom SvxZoomItem;
-
-//-------------------------------------------------------------------------
-
 item SbxObject SvxTabStopItem;
 
 
diff --git a/starmath/source/typemap.cxx b/starmath/source/typemap.cxx
index 076758d..b46ca83 100644
--- a/starmath/source/typemap.cxx
+++ b/starmath/source/typemap.cxx
@@ -125,7 +125,8 @@
 #include <sfx2/msg.hxx>
 #include <svl/stritem.hxx>
 #include <svl/eitem.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
+#include <svx/svxids.hrc>
 #include <svl/slstitm.hxx>
 
 #define SFX_TYPEMAP
diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx
index c425b75..52a7a54 100644
--- a/starmath/source/view.cxx
+++ b/starmath/source/view.cxx
@@ -62,7 +62,7 @@
 #include <svx/dialogs.hrc>
 #include <editeng/editeng.hxx>
 #include <svx/svxdlg.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <vcl/decoview.hxx>
 #include <vcl/menu.hxx>
 #include <vcl/msgbox.hxx>
diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk
index ba8ffa1..c294c73 100644
--- a/svx/Library_svx.mk
+++ b/svx/Library_svx.mk
@@ -158,7 +158,6 @@ $(eval $(call gb_Library_add_exception_objects,svx,\
     svx/source/items/SmartTagItem \
     svx/source/items/svxerr \
     svx/source/items/viewlayoutitem \
-    svx/source/items/zoomitem \
     svx/source/items/zoomslideritem \
     svx/source/mnuctrls/clipboardctl \
     svx/source/mnuctrls/fntctl \
diff --git a/svx/Package_inc.mk b/svx/Package_inc.mk
index bd07e7b..0b8014a 100644
--- a/svx/Package_inc.mk
+++ b/svx/Package_inc.mk
@@ -120,7 +120,6 @@ $(eval $(call gb_Package_add_file,svx_inc,inc/svx/unofill.hxx,svx/unofill.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/drawitem.hxx,svx/drawitem.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/xmlgrhlp.hxx,svx/xmlgrhlp.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/fmresids.hrc,svx/fmresids.hrc))
-$(eval $(call gb_Package_add_file,svx_inc,inc/svx/zoomitem.hxx,svx/zoomitem.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdtcfitm.hxx,svx/sdtcfitm.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdmetitm.hxx,svx/sdmetitm.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/fmtools.hxx,svx/fmtools.hxx))
diff --git a/svx/inc/svx/svxids.hrc b/svx/inc/svx/svxids.hrc
index f66af83..07b8dd7 100644
--- a/svx/inc/svx/svxids.hrc
+++ b/svx/inc/svx/svxids.hrc
@@ -82,10 +82,8 @@
 #define MID_RIGHT_MARGIN        0x47
 #define MID_ROW_DIRECTION       0x48
 #define MID_SIZE                0x4a
-#define MID_TYPE                0x4c
-#define MID_UPPER               0x4d
-#define MID_USExxx              0x4e
-#define MID_VALUESET            0x4f
+#define MID_UPPER               0x4b
+#define MID_USExxx              0x4c
 
 #define MID_ADR_CITY            0x50
 #define MID_ADR_COMPANY         0x51
@@ -412,8 +410,6 @@
 // Svx-Id's
 // --------------------------------------------------------------------------
 
-#define SID_ATTR_ZOOM                                   ( SID_SVX_START + 0 )
-
 #define SID_ATTR_BORDER_INNER                           ( SID_SVX_START + 23 )
 
 
diff --git a/svx/inc/svx/unomid.hxx b/svx/inc/svx/unomid.hxx
index 828bbd5..356efb6 100644
--- a/svx/inc/svx/unomid.hxx
+++ b/svx/inc/svx/unomid.hxx
@@ -65,9 +65,6 @@
 #define MID_HORJUST_HORJUST     0
 #define MID_HORJUST_ADJUST      1
 
-// SvxZoomItem
-#define MID_VALUE               2
-
 // SvxObjectItem
 #define MID_START_X             1
 #define MID_START_Y             2
diff --git a/svx/inc/svx/zoomitem.hxx b/svx/inc/svx/zoomitem.hxx
deleted file mode 100644
index 77cf645..0000000
--- a/svx/inc/svx/zoomitem.hxx
+++ /dev/null
@@ -1,92 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVX_ZOOMITEM_HXX
-#define _SVX_ZOOMITEM_HXX
-
-#include <svl/intitem.hxx>
-#include <svx/svxids.hrc>
-#include "svx/svxdllapi.h"
-
-//-------------------------------------------------------------------------
-
-enum SvxZoomType
-{
-    SVX_ZOOM_PERCENT,       // GetValue() ist kein besonderer prozentualer Wert
-    SVX_ZOOM_OPTIMAL,       // GetValue() entspricht der optimalen Gr"o\se
-    SVX_ZOOM_WHOLEPAGE,     // GetValue() entspricht der ganzen Seite
-    SVX_ZOOM_PAGEWIDTH,      // GetValue() entspricht der Seitenbreite
-    SVX_ZOOM_PAGEWIDTH_NOBORDER  // GetValue() pagewidth without border
-};
-
-//-------------------------------------------------------------------------
-
-class SVX_DLLPUBLIC SvxZoomItem: public SfxUInt16Item
-{
-    sal_uInt16                  nValueSet;  // erlaubte Werte (siehe #defines unten)
-    SvxZoomType             eType;
-
-public:
-    TYPEINFO();
-
-    SvxZoomItem( SvxZoomType eZoomType = SVX_ZOOM_PERCENT,
-                 sal_uInt16 nVal = 0, sal_uInt16 nWhich = SID_ATTR_ZOOM );
-    SvxZoomItem( const SvxZoomItem& );
-    ~SvxZoomItem();
-
-    void                    SetValueSet( sal_uInt16 nValues ) { nValueSet = nValues; }
-    sal_uInt16                  GetValueSet() const { return nValueSet; }
-    bool                    IsValueAllowed( sal_uInt16 nValue ) const
-                            { return nValue == ( nValue & nValueSet ); }
-
-    SvxZoomType             GetType() const { return eType; }
-    void                    SetType( SvxZoomType eNewType )
-                            { eType = eNewType; }
-
-    virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
-    virtual SfxPoolItem*    Create( SvStream& rStrm, sal_uInt16 nVersion ) const;
-    virtual SvStream&       Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const;
-    virtual int             operator==( const SfxPoolItem& ) const;
-    virtual bool            QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) 
const;
-    virtual bool            PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 
0 );
-};
-
-//------------------------------------------------------------------------
-
-#define SVX_ZOOM_ENABLE_50          0x0001
-#define SVX_ZOOM_ENABLE_75          0x0002
-#define SVX_ZOOM_ENABLE_100         0x0004
-#define SVX_ZOOM_ENABLE_150         0x0008
-#define SVX_ZOOM_ENABLE_200         0x0010
-#define SVX_ZOOM_ENABLE_OPTIMAL     0x1000
-#define SVX_ZOOM_ENABLE_WHOLEPAGE   0x2000
-#define SVX_ZOOM_ENABLE_PAGEWIDTH   0x4000
-#define SVX_ZOOM_ENABLE_ALL         0x701F
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 8afec8b..5e19175 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -11786,33 +11786,6 @@ XLineStyleItem XLineStyle SID_ATTR_LINE_STYLE
 ]
 
 //--------------------------------------------------------------------------
-SvxZoomItem Zoom SID_ATTR_ZOOM
-
-[
-    /* flags: */
-    AutoUpdate = FALSE,
-    Cachable = Cachable,
-    FastCall = FALSE,
-    HasCoreId = FALSE,
-    HasDialog = TRUE,
-    ReadOnlyDoc = TRUE,
-    Toggle = FALSE,
-    Container = FALSE,
-    RecordAbsolute = FALSE,
-    RecordPerSet;
-    Asynchron;
-
-    Readonly = FALSE,
-
-    /* config: */
-    AccelConfig = TRUE,
-    MenuConfig = TRUE,
-    StatusBarConfig = TRUE,
-    ToolBoxConfig = TRUE,
-    GroupId = GID_VIEW;
-]
-
-//--------------------------------------------------------------------------
 SfxVoidItem Zoom100Percent SID_SIZE_REAL
 ()
 [
diff --git a/svx/sdi/svxitems.sdi b/svx/sdi/svxitems.sdi
index ef1a954..6824a6d 100644
--- a/svx/sdi/svxitems.sdi
+++ b/svx/sdi/svxitems.sdi
@@ -599,14 +599,6 @@ struct SvxProtect
 };
 item SvxProtect SvxProtectItem;
 
-struct SvxZoom
-{
-    UINT16 Value         MID_VALUE;
-    INT16 ValueSet       MID_VALUESET;
-    INT16 Type           MID_TYPE;
-};
-item SvxZoom SvxZoomItem;
-
 struct SvxRulerObject
 {
     INT32   StartX  MID_START_X;
diff --git a/svx/source/items/zoomitem.cxx b/svx/source/items/zoomitem.cxx
deleted file mode 100644
index 226d18d..0000000
--- a/svx/source/items/zoomitem.cxx
+++ /dev/null
@@ -1,228 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <tools/stream.hxx>
-#include <basic/sbxvar.hxx>
-
-#include <svx/zoomitem.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/beans/PropertyValue.hpp>
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1_FACTORY(SvxZoomItem,SfxUInt16Item, new SvxZoomItem);
-
-#define ZOOM_PARAM_VALUE    "Value"
-#define ZOOM_PARAM_VALUESET "ValueSet"
-#define ZOOM_PARAM_TYPE     "Type"
-#define ZOOM_PARAMS         3
-
-// -----------------------------------------------------------------------
-
-SvxZoomItem::SvxZoomItem
-(
-    SvxZoomType eZoomType,
-    sal_uInt16      nVal,
-    sal_uInt16      _nWhich
-)
-:   SfxUInt16Item( _nWhich, nVal ),
-    nValueSet( SVX_ZOOM_ENABLE_ALL ),
-    eType( eZoomType )
-{
-}
-
-// -----------------------------------------------------------------------
-
-SvxZoomItem::SvxZoomItem( const SvxZoomItem& rOrig )
-:   SfxUInt16Item( rOrig.Which(), rOrig.GetValue() ),
-    nValueSet( rOrig.GetValueSet() ),
-    eType( rOrig.GetType() )
-{
-}
-
-// -----------------------------------------------------------------------
-
-SvxZoomItem::~SvxZoomItem()
-{
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxZoomItem::Clone( SfxItemPool * /*pPool*/ ) const
-{
-    return new SvxZoomItem( *this );
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxZoomItem::Create( SvStream& rStrm, sal_uInt16 /*nVersion*/ ) const
-{
-    sal_uInt16 nValue;
-    sal_uInt16 nValSet;
-    sal_Int8 nType;
-    rStrm >> nValue >> nValSet >> nType;
-    SvxZoomItem* pNew = new SvxZoomItem( (SvxZoomType)nType, nValue, Which() );
-    pNew->SetValueSet( nValSet );
-    return pNew;
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SvxZoomItem::Store( SvStream& rStrm, sal_uInt16 /*nItemVersion*/ ) const
-{
-    rStrm << (sal_uInt16)GetValue()
-          << nValueSet
-          << (sal_Int8)eType;
-    return rStrm;
-}
-
-// -----------------------------------------------------------------------
-
-int SvxZoomItem::operator==( const SfxPoolItem& rAttr ) const
-{
-    DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
-
-    SvxZoomItem& rItem = (SvxZoomItem&)rAttr;
-
-    return ( GetValue() == rItem.GetValue()     &&
-             nValueSet  == rItem.GetValueSet()  &&
-             eType      == rItem.GetType()          );
-}
-
-bool SvxZoomItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const
-{
-//  sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
-    nMemberId &= ~CONVERT_TWIPS;
-    switch ( nMemberId )
-    {
-        case 0 :
-        {
-            ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aSeq( 
ZOOM_PARAMS );
-            aSeq[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ZOOM_PARAM_VALUE ));
-            aSeq[0].Value <<= sal_Int32( GetValue() );
-            aSeq[1].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ZOOM_PARAM_VALUESET ));
-            aSeq[1].Value <<= sal_Int16( nValueSet );
-            aSeq[2].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ZOOM_PARAM_TYPE ));
-            aSeq[2].Value <<= sal_Int16( eType );
-            rVal <<= aSeq;
-        }
-        break;
-
-        case MID_VALUE: rVal <<= (sal_Int32) GetValue(); break;
-        case MID_VALUESET: rVal <<= (sal_Int16) nValueSet; break;
-        case MID_TYPE: rVal <<= (sal_Int16) eType; break;
-        default:
-            OSL_FAIL("svx::SvxZoomItem::QueryValue(), Wrong MemberId!");
-            return false;
-    }
-
-    return true;
-}
-
-bool SvxZoomItem::PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId )
-{
-//  sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
-    nMemberId &= ~CONVERT_TWIPS;
-    switch ( nMemberId )
-    {
-        case 0 :
-        {
-            ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aSeq;
-            if (( rVal >>= aSeq ) && ( aSeq.getLength() == ZOOM_PARAMS ))
-            {
-                sal_Int32 nValueTmp( 0 );
-                sal_Int16 nValueSetTmp( 0 );
-                sal_Int16 nTypeTmp( 0 );
-                sal_Bool  bAllConverted( sal_True );
-                sal_Int16 nConvertedCount( 0 );
-                for ( sal_Int32 i = 0; i < aSeq.getLength(); i++ )
-                {
-                    if ( aSeq[i].Name.equalsAscii( ZOOM_PARAM_VALUE ))
-                    {
-                        bAllConverted &= ( aSeq[i].Value >>= nValueTmp );
-                        ++nConvertedCount;
-                    }
-                    else if ( aSeq[i].Name.equalsAscii( ZOOM_PARAM_VALUESET ))
-                    {
-                        bAllConverted &= ( aSeq[i].Value >>= nValueSetTmp );
-                        ++nConvertedCount;
-                    }
-                    else if ( aSeq[i].Name.equalsAscii( ZOOM_PARAM_TYPE ))
-                    {
-                        bAllConverted &= ( aSeq[i].Value >>= nTypeTmp );
-                        ++nConvertedCount;
-                    }
-                }
-
-                if ( bAllConverted && nConvertedCount == ZOOM_PARAMS )
-                {
-                    SetValue( (sal_uInt16)nValueTmp );
-                    nValueSet = nValueSetTmp;
-                    eType = SvxZoomType( nTypeTmp );
-                    return true;
-                }
-            }
-
-            return false;
-        }
-
-        case MID_VALUE:
-        {
-            sal_Int32 nVal = 0;
-            if ( rVal >>= nVal )
-            {
-                SetValue( (sal_uInt16)nVal );
-                return true;
-            }
-            else
-                return false;
-        }
-
-        case MID_VALUESET:
-        case MID_TYPE:
-        {
-            sal_Int16 nVal = sal_Int16();
-            if ( rVal >>= nVal )
-            {
-                if ( nMemberId == MID_VALUESET )
-                    nValueSet = (sal_Int16) nVal;
-                else if ( nMemberId == MID_TYPE )
-                    eType = SvxZoomType( (sal_Int16) nVal );
-                return true;
-            }
-            else
-                return false;
-        }
-
-        default:
-            OSL_FAIL("svx::SvxZoomItem::PutValue(), Wrong MemberId!");
-            return false;
-    }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/stbctrls/zoomctrl.cxx b/svx/source/stbctrls/zoomctrl.cxx
index 1284075..eed821d 100644
--- a/svx/source/stbctrls/zoomctrl.cxx
+++ b/svx/source/stbctrls/zoomctrl.cxx
@@ -35,7 +35,7 @@
 #include <svx/dialogs.hrc>
 
 #include "svx/zoomctrl.hxx"
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include "stbctrls.h"
 #include <svx/dialmgr.hxx>
 
diff --git a/sw/inc/viewopt.hxx b/sw/inc/viewopt.hxx
index b2af44f..4187442 100644
--- a/sw/inc/viewopt.hxx
+++ b/sw/inc/viewopt.hxx
@@ -31,7 +31,8 @@
 #include <tools/string.hxx>
 #include <tools/color.hxx>
 
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
+#include <svx/svxids.hrc>
 #include "swdllapi.h"
 #include "authratr.hxx"
 
diff --git a/sw/source/core/view/pagepreviewlayout.cxx b/sw/source/core/view/pagepreviewlayout.cxx
index fff8fce..22f9fce 100644
--- a/sw/source/core/view/pagepreviewlayout.cxx
+++ b/sw/source/core/view/pagepreviewlayout.cxx
@@ -41,7 +41,7 @@
 // OD 19.02.2003 #107369# - method <SwAlignRect(..)>
 #include <frmtool.hxx>
 // OD 24.09.2003 #i19975#
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <printdata.hxx>
 
 #include <IDocumentDeviceAccess.hxx>
diff --git a/sw/source/ui/inc/pview.hxx b/sw/source/ui/inc/pview.hxx
index 329ba5e..0073a5e 100644
--- a/sw/source/ui/inc/pview.hxx
+++ b/sw/source/ui/inc/pview.hxx
@@ -33,7 +33,7 @@
 #include <sfx2/viewfrm.hxx>
 #include <sfx2/viewfac.hxx>
 #include <sfx2/viewsh.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include "swdllapi.h"
 #include "shellid.hxx"
 
diff --git a/sw/source/ui/inc/view.hxx b/sw/source/ui/inc/view.hxx
index 229e8f5..2d8acf6 100644
--- a/sw/source/ui/inc/view.hxx
+++ b/sw/source/ui/inc/view.hxx
@@ -36,7 +36,8 @@
 #include <sfx2/viewsh.hxx>
 #include <sfx2/objsh.hxx>
 #include <editeng/svxenum.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
+#include <svx/svxids.hrc>
 #include <editeng/editstat.hxx>
 #include "swdllapi.h"
 #include <swtypes.hxx>
diff --git a/sw/source/ui/shells/slotadd.cxx b/sw/source/ui/shells/slotadd.cxx
index 28280a0..3c5f15f 100644
--- a/sw/source/ui/shells/slotadd.cxx
+++ b/sw/source/ui/shells/slotadd.cxx
@@ -39,7 +39,7 @@
 #include <sfx2/objitem.hxx>
 #include <sfx2/objsh.hxx>
 #include <svx/rulritem.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <svx/viewlayoutitem.hxx>
 #include <svx/zoomslideritem.hxx>
 #include <svx/hlnkitem.hxx>
diff --git a/sw/source/ui/uno/SwXDocumentSettings.cxx b/sw/source/ui/uno/SwXDocumentSettings.cxx
index fa8a704..d988bf5 100644
--- a/sw/source/ui/uno/SwXDocumentSettings.cxx
+++ b/sw/source/ui/uno/SwXDocumentSettings.cxx
@@ -44,7 +44,7 @@
 #include <svl/zforlist.hxx>
 #include <unotxdoc.hxx>
 #include <cmdid.h>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 #include <unomod.hxx>
 #include <vcl/svapp.hxx>
 #include <comphelper/servicehelper.hxx>
diff --git a/sw/source/ui/utlui/zoomctrl.cxx b/sw/source/ui/utlui/zoomctrl.cxx
index 922eae69..5fd5b6f 100644
--- a/sw/source/ui/utlui/zoomctrl.cxx
+++ b/sw/source/ui/utlui/zoomctrl.cxx
@@ -32,7 +32,7 @@
 #include <vcl/status.hxx>
 #include <sfx2/app.hxx>
 #include <svl/stritem.hxx>
-#include <svx/zoomitem.hxx>
+#include <sfx2/zoomitem.hxx>
 
 #include "swtypes.hxx"
 #include "zoomctrl.hxx"
-- 
1.7.10.3

From 39555c3081e4b00acc9346191eb7d03e3a21f043 Mon Sep 17 00:00:00 2001
From: Tim Hardeck <thardeck@suse.de>
Date: Mon, 11 Jun 2012 14:39:07 +0200
Subject: [PATCH 2/2] added zoom submenu to View

Added zoom submenu to View with the same entries of the zoom status bar
right mouse button menu.
This feature was requested on the design-mailing list:
http://www.mail-archive.com/design@global.libreoffice.org/msg03561.html

Additionally the zoom menu entries were sorted in a more logical way.

Change-Id: I5f2df8aa33be9305841fd5505c95963bee8a0ed0
---
 configmgr/qa/unit/data.xcd                         |    6 +-
 .../org/openoffice/Office/UI/GenericCommands.xcu   |   26 ++-
 reportdesign/uiconfig/dbreport/menubar/menubar.xml |   12 +-
 sc/uiconfig/scalc/menubar/menubar.xml              |   15 +-
 sd/uiconfig/sdraw/menubar/menubar.xml              |   15 +-
 sd/uiconfig/simpress/menubar/menubar.xml           |   15 +-
 sfx2/inc/sfx2/sfxsids.hrc                          |   14 +-
 sfx2/sdi/appslots.sdi                              |   32 +++
 sfx2/sdi/sfx.sdi                                   |  222 ++++++++++++++++++++
 sfx2/source/appl/appserv.cxx                       |   46 ++++
 starmath/uiconfig/smath/menubar/menubar.xml        |   12 +-
 svx/source/stbctrls/stbctrls.src                   |   48 ++---
 sw/uiconfig/sglobal/menubar/menubar.xml            |   12 +-
 sw/uiconfig/sweb/menubar/menubar.xml               |   12 +-
 sw/uiconfig/swform/menubar/menubar.xml             |   12 +-
 sw/uiconfig/swreport/menubar/menubar.xml           |   12 +-
 sw/uiconfig/swriter/menubar/menubar.xml            |   15 +-
 sw/uiconfig/swxform/menubar/menubar.xml            |   12 +-
 18 files changed, 495 insertions(+), 43 deletions(-)

diff --git a/configmgr/qa/unit/data.xcd b/configmgr/qa/unit/data.xcd
index f4d5461..700339d 100755
--- a/configmgr/qa/unit/data.xcd
+++ b/configmgr/qa/unit/data.xcd
@@ -1787,7 +1787,7 @@
       </node>
       <node oor:name=".uno:Zoom100Percent" oor:op="replace">
         <prop oor:name="Label" oor:type="xs:string">
-          <value xml:lang="x-no-translate"></value><value xml:lang="en-US">Zoom 100%</value>
+          <value xml:lang="x-no-translate"></value><value xml:lang="en-US">100%</value>
         </prop>
         <prop oor:name="Properties" oor:type="xs:int">
           <value>1</value>
@@ -1803,7 +1803,7 @@
       </node>
       <node oor:name=".uno:ZoomPage" oor:op="replace">
         <prop oor:name="Label" oor:type="xs:string">
-          <value xml:lang="x-no-translate"></value><value xml:lang="en-US">Zoom Page</value>
+          <value xml:lang="x-no-translate"></value><value xml:lang="en-US">Entire Page</value>
         </prop>
         <prop oor:name="Properties" oor:type="xs:int">
           <value>1</value>
@@ -2660,7 +2660,7 @@
       </node>
       <node oor:name=".uno:ZoomPageWidth" oor:op="replace">
         <prop oor:name="Label" oor:type="xs:string">
-          <value xml:lang="x-no-translate"></value><value xml:lang="en-US">Zoom Page Width</value>
+          <value xml:lang="x-no-translate"></value><value xml:lang="en-US">Page Width</value>
         </prop>
         <prop oor:name="Properties" oor:type="xs:int">
           <value>1</value>
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu 
b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
index 58ad5be..ea498f3 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
@@ -1698,14 +1698,34 @@
                     <value xml:lang="en-US">~Options...</value>
                 </prop>
             </node>
+            <node oor:name=".uno:Zoom200Percent" oor:op="replace">
+                <prop oor:name="Label" oor:type="xs:string">
+                    <value xml:lang="en-US">200%</value>
+                </prop>
+            </node>
+            <node oor:name=".uno:Zoom150Percent" oor:op="replace">
+                <prop oor:name="Label" oor:type="xs:string">
+                    <value xml:lang="en-US">150%</value>
+                </prop>
+            </node>
             <node oor:name=".uno:Zoom100Percent" oor:op="replace">
                 <prop oor:name="Label" oor:type="xs:string">
-                    <value xml:lang="en-US">Zoom 100%</value>
+                    <value xml:lang="en-US">100%</value>
                 </prop>
                 <prop oor:name="Properties" oor:type="xs:int">
                     <value>1</value>
                 </prop>
             </node>
+            <node oor:name=".uno:Zoom75Percent" oor:op="replace">
+                <prop oor:name="Label" oor:type="xs:string">
+                    <value xml:lang="en-US">75%</value>
+                </prop>
+            </node>
+            <node oor:name=".uno:Zoom50Percent" oor:op="replace">
+                <prop oor:name="Label" oor:type="xs:string">
+                    <value xml:lang="en-US">50%</value>
+                </prop>
+            </node>
             <node oor:name=".uno:GrafGamma" oor:op="replace">
                 <prop oor:name="Label" oor:type="xs:string">
                     <value xml:lang="en-US">Gamma</value>
@@ -1716,7 +1736,7 @@
             </node>
             <node oor:name=".uno:ZoomPage" oor:op="replace">
                 <prop oor:name="Label" oor:type="xs:string">
-                    <value xml:lang="en-US">Zoom Page</value>
+                    <value xml:lang="en-US">Entire Page</value>
                 </prop>
                 <prop oor:name="Properties" oor:type="xs:int">
                     <value>1</value>
@@ -2612,7 +2632,7 @@
             </node>
             <node oor:name=".uno:ZoomPageWidth" oor:op="replace">
                 <prop oor:name="Label" oor:type="xs:string">
-                    <value xml:lang="en-US">Zoom Page Width</value>
+                    <value xml:lang="en-US">Page Width</value>
                 </prop>
                 <prop oor:name="Properties" oor:type="xs:int">
                     <value>1</value>
diff --git a/reportdesign/uiconfig/dbreport/menubar/menubar.xml 
b/reportdesign/uiconfig/dbreport/menubar/menubar.xml
index 1ac58e4..fd5b0d2 100644
--- a/reportdesign/uiconfig/dbreport/menubar/menubar.xml
+++ b/reportdesign/uiconfig/dbreport/menubar/menubar.xml
@@ -142,7 +142,17 @@
                     <menu:menuitem menu:id=".uno:HelplinesMove"/>
                 </menu:menupopup>
             </menu:menu>
-            <menu:menuitem menu:id=".uno:Zoom"/>
+            <menu:menu menu:id=".uno:Zoom">
+              <menu:menupopup>
+                <menu:menuitem menu:id=".uno:Zoom50Percent"/>
+                <menu:menuitem menu:id=".uno:Zoom75Percent"/>
+                <menu:menuitem menu:id=".uno:Zoom100Percent"/>
+                <menu:menuitem menu:id=".uno:Zoom150Percent"/>
+                <menu:menuitem menu:id=".uno:Zoom200Percent"/>
+                <menu:menuseparator/>
+                <menu:menuitem menu:id=".uno:Zoom"/>
+              </menu:menupopup>
+            </menu:menu>
         </menu:menupopup>
     </menu:menu>
     <menu:menu menu:id=".uno:InsertMenu" >
diff --git a/sc/uiconfig/scalc/menubar/menubar.xml b/sc/uiconfig/scalc/menubar/menubar.xml
index fbea1b9..faa845a 100644
--- a/sc/uiconfig/scalc/menubar/menubar.xml
+++ b/sc/uiconfig/scalc/menubar/menubar.xml
@@ -127,7 +127,20 @@
       <menu:menuitem menu:id=".uno:TaskPane"/>
       <menu:menuseparator/>
             <menu:menuitem menu:id=".uno:FullScreen"/>
-            <menu:menuitem menu:id=".uno:Zoom"/>
+            <menu:menu menu:id=".uno:Zoom">
+                <menu:menupopup>
+                    <menu:menuitem menu:id=".uno:ZoomPage"/>
+                    <menu:menuitem menu:id=".uno:ZoomPageWidth"/>
+                    <menu:menuitem menu:id=".uno:ZoomOptimal"/>
+                    <menu:menuitem menu:id=".uno:Zoom50Percent"/>
+                    <menu:menuitem menu:id=".uno:Zoom75Percent"/>
+                    <menu:menuitem menu:id=".uno:Zoom100Percent"/>
+                    <menu:menuitem menu:id=".uno:Zoom150Percent"/>
+                    <menu:menuitem menu:id=".uno:Zoom200Percent"/>
+                    <menu:menuseparator/>
+                    <menu:menuitem menu:id=".uno:Zoom"/>
+                </menu:menupopup>
+            </menu:menu>
         </menu:menupopup>
     </menu:menu>
     <menu:menu menu:id=".uno:InsertMenu">
diff --git a/sd/uiconfig/sdraw/menubar/menubar.xml b/sd/uiconfig/sdraw/menubar/menubar.xml
index 965d14c..dade19b 100755
--- a/sd/uiconfig/sdraw/menubar/menubar.xml
+++ b/sd/uiconfig/sdraw/menubar/menubar.xml
@@ -110,7 +110,20 @@
       <menu:menuseparator/>
       <menu:menuitem menu:id=".uno:Navigator"/>
       <menu:menuseparator/>
-      <menu:menuitem menu:id=".uno:Zoom"/>
+      <menu:menu menu:id=".uno:Zoom">
+        <menu:menupopup>
+          <menu:menuitem menu:id=".uno:ZoomPage"/>
+          <menu:menuitem menu:id=".uno:ZoomPageWidth"/>
+          <menu:menuitem menu:id=".uno:ZoomOptimal"/>
+          <menu:menuitem menu:id=".uno:Zoom50Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom75Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom100Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom150Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom200Percent"/>
+          <menu:menuseparator/>
+          <menu:menuitem menu:id=".uno:Zoom"/>
+        </menu:menupopup>
+      </menu:menu>
     </menu:menupopup>
   </menu:menu>
   <menu:menu menu:id=".uno:InsertMenu">
diff --git a/sd/uiconfig/simpress/menubar/menubar.xml b/sd/uiconfig/simpress/menubar/menubar.xml
index 7c75737..b4ca6bf 100755
--- a/sd/uiconfig/simpress/menubar/menubar.xml
+++ b/sd/uiconfig/simpress/menubar/menubar.xml
@@ -125,7 +125,20 @@
             <menu:menuitem menu:id=".uno:Navigator"/>
             <menu:menuseparator/>
             <menu:menuitem menu:id=".uno:HeaderAndFooter"/>
-            <menu:menuitem menu:id=".uno:Zoom"/>
+            <menu:menu menu:id=".uno:Zoom">
+              <menu:menupopup>
+                <menu:menuitem menu:id=".uno:ZoomPage"/>
+                <menu:menuitem menu:id=".uno:ZoomPageWidth"/>
+                <menu:menuitem menu:id=".uno:ZoomOptimal"/>
+                <menu:menuitem menu:id=".uno:Zoom50Percent"/>
+                <menu:menuitem menu:id=".uno:Zoom75Percent"/>
+                <menu:menuitem menu:id=".uno:Zoom100Percent"/>
+                <menu:menuitem menu:id=".uno:Zoom150Percent"/>
+                <menu:menuitem menu:id=".uno:Zoom200Percent"/>
+                <menu:menuseparator/>
+                <menu:menuitem menu:id=".uno:Zoom"/>
+              </menu:menupopup>
+            </menu:menu>
         </menu:menupopup>
     </menu:menu>
     <menu:menu menu:id=".uno:InsertMenu">
diff --git a/sfx2/inc/sfx2/sfxsids.hrc b/sfx2/inc/sfx2/sfxsids.hrc
index 1403583..d37ed0a 100644
--- a/sfx2/inc/sfx2/sfxsids.hrc
+++ b/sfx2/inc/sfx2/sfxsids.hrc
@@ -857,9 +857,7 @@
 #define SID_ZOOM_OUT                        (SID_SVX_START +  97)
 #define SID_ZOOM_IN                         (SID_SVX_START +  98)
 #define SID_SIZE_REAL                       (SID_SVX_START +  99)
-#define SID_ZOOM_100_PERCENT                (SID_SIZE_REAL)
 #define SID_SIZE_PAGE                       (SID_SVX_START + 100)
-#define SID_ZOOM_PAGE                       (SID_SIZE_PAGE)
 #define SID_SHOW_BROWSER                    (SID_SVX_START + 163)
 #define SID_GALLERY_BG_BRUSH                (SID_SVX_START + 279)
 #define SID_SEARCH_OPTIONS                  (SID_SVX_START + 281)
@@ -985,6 +983,18 @@
 
 //-----------------------------------------------------------------------
 
+#define SID_ZOOM_OPTIMAL                    (SID_SIZE_OPTIMAL)
+#define SID_ZOOM_ENTIRE_PAGE                (SID_SIZE_PAGE)
+#define SID_ZOOM_PAGE_WIDTH                 (SID_SVX_START + 1420)
+#define SID_ZOOM_50_PERCENT                 (SID_SVX_START + 1421)
+#define SID_ZOOM_75_PERCENT                 (SID_SVX_START + 1422)
+#define SID_ZOOM_100_PERCENT                (SID_SIZE_REAL)
+#define SID_ZOOM_150_PERCENT                (SID_SVX_START + 1423)
+#define SID_ZOOM_200_PERCENT                (SID_SVX_START + 1424)
+
+
+//-----------------------------------------------------------------------
+
 #define SID_ATTR_CHAR_FILLCOLOR             (SID_SFX_START + 1551)
 
 // SfxScriptOrganizerItem
diff --git a/sfx2/sdi/appslots.sdi b/sfx2/sdi/appslots.sdi
index d6d4a85..4fd62fa 100644
--- a/sfx2/sdi/appslots.sdi
+++ b/sfx2/sdi/appslots.sdi
@@ -187,6 +187,38 @@ interface Application
         ExecMethod = MiscExec_Impl ;
         StateMethod = MiscState_Impl ;
     ]
+    SID_ZOOM_ENTIRE_PAGE
+    [
+        ExecMethod = MiscExec_Impl ;
+    ]
+    SID_ZOOM_OPTIMAL
+    [
+        ExecMethod = MiscExec_Impl ;
+    ]
+    SID_ZOOM_PAGE_WIDTH
+    [
+        ExecMethod = MiscExec_Impl ;
+    ]
+    SID_ZOOM_50_PERCENT
+    [
+        ExecMethod = MiscExec_Impl ;
+    ]
+    SID_ZOOM_75_PERCENT
+    [
+        ExecMethod = MiscExec_Impl ;
+    ]
+    SID_ZOOM_100_PERCENT
+    [
+        ExecMethod = MiscExec_Impl ;
+    ]
+    SID_ZOOM_150_PERCENT
+    [
+        ExecMethod = MiscExec_Impl ;
+    ]
+    SID_ZOOM_200_PERCENT
+    [
+        ExecMethod = MiscExec_Impl ;
+    ]
     SID_HELP_TUTORIALS
     [
         ExecMethod = MiscExec_Impl ;
diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi
index 9193417..cb93595 100644
--- a/sfx2/sdi/sfx.sdi
+++ b/sfx2/sdi/sfx.sdi
@@ -1965,6 +1965,228 @@ SfxBoolItem FullScreen SID_WIN_FULLSCREEN
 ]
 
 //--------------------------------------------------------------------------
+SfxVoidItem ZoomPageWidth SID_ZOOM_PAGE_WIDTH
+
+[
+    /* flags: */
+    AutoUpdate = TRUE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    Readonly = FALSE,
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = FALSE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_VIEW;
+]
+
+
+//--------------------------------------------------------------------------
+SfxVoidItem ZoomOptimal SID_ZOOM_OPTIMAL
+
+[
+    /* flags: */
+    AutoUpdate = TRUE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    Readonly = FALSE,
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = FALSE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_VIEW;
+]
+
+
+//--------------------------------------------------------------------------
+SfxVoidItem ZoomPage SID_ZOOM_ENTIRE_PAGE
+
+[
+    /* flags: */
+    AutoUpdate = TRUE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    Readonly = FALSE,
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = FALSE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_VIEW;
+]
+
+
+//--------------------------------------------------------------------------
+SfxVoidItem Zoom200Percent SID_ZOOM_200_PERCENT
+
+[
+    /* flags: */
+    AutoUpdate = TRUE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    Readonly = FALSE,
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = FALSE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_VIEW;
+]
+
+
+//--------------------------------------------------------------------------
+SfxVoidItem Zoom150Percent SID_ZOOM_150_PERCENT
+
+[
+    /* flags: */
+    AutoUpdate = TRUE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    Readonly = FALSE,
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = FALSE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_VIEW;
+]
+
+
+//--------------------------------------------------------------------------
+SfxVoidItem Zoom100Percent SID_ZOOM_100_PERCENT
+
+[
+    /* flags: */
+    AutoUpdate = TRUE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    Readonly = FALSE,
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = FALSE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_VIEW;
+]
+
+
+//--------------------------------------------------------------------------
+SfxVoidItem Zoom75Percent SID_ZOOM_75_PERCENT
+
+[
+    /* flags: */
+    AutoUpdate = TRUE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    Readonly = FALSE,
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = FALSE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Zoom50Percent SID_ZOOM_50_PERCENT
+
+[
+    /* flags: */
+    AutoUpdate = TRUE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    Readonly = FALSE,
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = FALSE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
 SfxObjectItem GetFrameWindow SID_FILLFRAME
 (SfxStringItem WindowName SID_FILLFRAME)
 [
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index 11d5ec4..917ccf4 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -124,6 +124,7 @@
 #include <sfx2/dialogs.hrc>
 #include "sorgitm.hxx"
 #include "sfx2/sfxhelp.hxx"
+#include <sfx2/zoomitem.hxx>
 
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::beans;
@@ -601,6 +602,51 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
             bDone = true;
             break;
 
+        case SID_ZOOM_50_PERCENT:
+        case SID_ZOOM_75_PERCENT:
+        case SID_ZOOM_100_PERCENT:
+        case SID_ZOOM_150_PERCENT:
+        case SID_ZOOM_200_PERCENT:
+        case SID_ZOOM_OPTIMAL:
+        case SID_ZOOM_ENTIRE_PAGE:
+        case SID_ZOOM_PAGE_WIDTH:
+        {
+            // make sure aZoom is initialized with a proper value if SetType
+            // doesn't work
+            SvxZoomItem aZoom( SVX_ZOOM_PERCENT, 100 );
+
+            switch (rReq.GetSlot())
+            {
+                case SID_ZOOM_50_PERCENT:
+                    aZoom.SetValue(50);
+                    break;
+                case SID_ZOOM_75_PERCENT:
+                    aZoom.SetValue(75);
+                    break;
+                case SID_ZOOM_100_PERCENT:
+                    aZoom.SetValue(100);
+                    break;
+                case SID_ZOOM_150_PERCENT:
+                    aZoom.SetValue(150);
+                    break;
+                case SID_ZOOM_200_PERCENT:
+                    aZoom.SetValue(200);
+                    break;
+                case SID_ZOOM_OPTIMAL:
+                    aZoom.SetType( SVX_ZOOM_OPTIMAL );
+                    break;
+                case SID_ZOOM_ENTIRE_PAGE:
+                    aZoom.SetType( SVX_ZOOM_WHOLEPAGE );
+                    break;
+                case SID_ZOOM_PAGE_WIDTH:
+                    aZoom.SetType( SVX_ZOOM_PAGEWIDTH );
+                    break;
+            }
+
+            SfxViewFrame::Current()->GetDispatcher()->Execute(SID_ATTR_ZOOM, 
SFX_CALLMODE_ASYNCHRON, &aZoom, 0L);
+
+            break;
+        }
         case SID_AVAILABLE_TOOLBARS:
         {
             SfxStringItem const * pToolbarName = static_cast< SfxStringItem const *>(
diff --git a/starmath/uiconfig/smath/menubar/menubar.xml 
b/starmath/uiconfig/smath/menubar/menubar.xml
index 4f1d159..9716fc2 100755
--- a/starmath/uiconfig/smath/menubar/menubar.xml
+++ b/starmath/uiconfig/smath/menubar/menubar.xml
@@ -66,7 +66,17 @@
       <menu:menuitem menu:id=".uno:ZoomIn"/>
       <menu:menuitem menu:id=".uno:ZoomOut"/>
       <menu:menuitem menu:id=".uno:Adjust"/>
-      <menu:menuitem menu:id=".uno:Zoom"/>
+      <menu:menu menu:id=".uno:Zoom">
+        <menu:menupopup>
+          <menu:menuitem menu:id=".uno:Zoom50Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom75Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom100Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom150Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom200Percent"/>
+          <menu:menuseparator/>
+          <menu:menuitem menu:id=".uno:Zoom"/>
+        </menu:menupopup>
+      </menu:menu>
     </menu:menupopup>
   </menu:menu>
   <menu:menu menu:id=".uno:FormatMenu">
diff --git a/svx/source/stbctrls/stbctrls.src b/svx/source/stbctrls/stbctrls.src
index e0f198a..9d3fa59 100644
--- a/svx/source/stbctrls/stbctrls.src
+++ b/svx/source/stbctrls/stbctrls.src
@@ -135,27 +135,21 @@ Menu RID_SVXMNU_ZOOM
     {
         MenuItem
         {
-            Identifier = ZOOM_200 ;
-            HelpId = HID_MNU_ZOOM_200 ;
-            Text = "200%" ;
-        };
-        MenuItem
-        {
-            Identifier = ZOOM_150 ;
-            HelpId = HID_MNU_ZOOM_150 ;
-            Text = "150%" ;
+            Identifier = ZOOM_WHOLE_PAGE ;
+            HelpId = HID_MNU_ZOOM_WHOLE_PAGE ;
+            Text [ en-US ] = "Entire Page" ;
         };
         MenuItem
         {
-            Identifier = ZOOM_100 ;
-            HelpId = HID_MNU_ZOOM_100 ;
-            Text = "100%" ;
+            Identifier = ZOOM_PAGE_WIDTH ;
+            HelpId = HID_MNU_ZOOM_PAGE_WIDTH ;
+            Text [ en-US ] = "Page Width" ;
         };
         MenuItem
         {
-            Identifier = ZOOM_75 ;
-            HelpId = HID_MNU_ZOOM_75 ;
-            text = "75%" ;
+            Identifier = ZOOM_OPTIMAL ;
+            HelpId = HID_MNU_ZOOM_OPTIMAL ;
+            Text [ en-US ] = "Optimal" ;
         };
         MenuItem
         {
@@ -165,21 +159,27 @@ Menu RID_SVXMNU_ZOOM
         };
         MenuItem
         {
-            Identifier = ZOOM_OPTIMAL ;
-            HelpId = HID_MNU_ZOOM_OPTIMAL ;
-            Text [ en-US ] = "Optimal" ;
+            Identifier = ZOOM_75 ;
+            HelpId = HID_MNU_ZOOM_75 ;
+            text = "75%" ;
         };
         MenuItem
         {
-            Identifier = ZOOM_PAGE_WIDTH ;
-            HelpId = HID_MNU_ZOOM_PAGE_WIDTH ;
-            Text [ en-US ] = "Page Width" ;
+            Identifier = ZOOM_100 ;
+            HelpId = HID_MNU_ZOOM_100 ;
+            Text = "100%" ;
         };
         MenuItem
         {
-            Identifier = ZOOM_WHOLE_PAGE ;
-            HelpId = HID_MNU_ZOOM_WHOLE_PAGE ;
-            Text [ en-US ] = "Entire Page" ;
+            Identifier = ZOOM_150 ;
+            HelpId = HID_MNU_ZOOM_150 ;
+            Text = "150%" ;
+        };
+        MenuItem
+        {
+            Identifier = ZOOM_200 ;
+            HelpId = HID_MNU_ZOOM_200 ;
+            Text = "200%" ;
         };
     };
 };
diff --git a/sw/uiconfig/sglobal/menubar/menubar.xml b/sw/uiconfig/sglobal/menubar/menubar.xml
index 25e1f8f..693048d 100644
--- a/sw/uiconfig/sglobal/menubar/menubar.xml
+++ b/sw/uiconfig/sglobal/menubar/menubar.xml
@@ -124,7 +124,17 @@
       <menu:menuitem menu:id=".uno:TaskPane"/>
       <menu:menuseparator/>
       <menu:menuitem menu:id=".uno:FullScreen"/>
-      <menu:menuitem menu:id=".uno:Zoom"/>
+      <menu:menu menu:id=".uno:Zoom">
+        <menu:menupopup>
+          <menu:menuitem menu:id=".uno:Zoom50Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom75Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom100Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom150Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom200Percent"/>
+          <menu:menuseparator/>
+          <menu:menuitem menu:id=".uno:Zoom"/>
+        </menu:menupopup>
+      </menu:menu>
     </menu:menupopup>
   </menu:menu>
   <menu:menu menu:id=".uno:InsertMenu">
diff --git a/sw/uiconfig/sweb/menubar/menubar.xml b/sw/uiconfig/sweb/menubar/menubar.xml
index 902e890..648d396 100644
--- a/sw/uiconfig/sweb/menubar/menubar.xml
+++ b/sw/uiconfig/sweb/menubar/menubar.xml
@@ -97,7 +97,17 @@
       <menu:menuitem menu:id=".uno:TaskPane"/>
       <menu:menuseparator/>
       <menu:menuitem menu:id=".uno:FullScreen"/>
-      <menu:menuitem menu:id=".uno:Zoom"/>
+      <menu:menu menu:id=".uno:Zoom">
+        <menu:menupopup>
+          <menu:menuitem menu:id=".uno:Zoom50Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom75Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom100Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom150Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom200Percent"/>
+          <menu:menuseparator/>
+          <menu:menuitem menu:id=".uno:Zoom"/>
+        </menu:menupopup>
+      </menu:menu>
     </menu:menupopup>
   </menu:menu>
   <menu:menu menu:id=".uno:InsertMenu">
diff --git a/sw/uiconfig/swform/menubar/menubar.xml b/sw/uiconfig/swform/menubar/menubar.xml
index e69afcd..192894d 100644
--- a/sw/uiconfig/swform/menubar/menubar.xml
+++ b/sw/uiconfig/swform/menubar/menubar.xml
@@ -124,7 +124,17 @@
       <menu:menuitem menu:id=".uno:TaskPane"/>
       <menu:menuseparator/>
       <menu:menuitem menu:id=".uno:FullScreen"/>
-      <menu:menuitem menu:id=".uno:Zoom"/>
+      <menu:menu menu:id=".uno:Zoom">
+        <menu:menupopup>
+          <menu:menuitem menu:id=".uno:Zoom50Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom75Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom100Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom150Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom200Percent"/>
+          <menu:menuseparator/>
+          <menu:menuitem menu:id=".uno:Zoom"/>
+        </menu:menupopup>
+      </menu:menu>
     </menu:menupopup>
   </menu:menu>
   <menu:menu menu:id=".uno:InsertMenu">
diff --git a/sw/uiconfig/swreport/menubar/menubar.xml b/sw/uiconfig/swreport/menubar/menubar.xml
index e69afcd..192894d 100644
--- a/sw/uiconfig/swreport/menubar/menubar.xml
+++ b/sw/uiconfig/swreport/menubar/menubar.xml
@@ -124,7 +124,17 @@
       <menu:menuitem menu:id=".uno:TaskPane"/>
       <menu:menuseparator/>
       <menu:menuitem menu:id=".uno:FullScreen"/>
-      <menu:menuitem menu:id=".uno:Zoom"/>
+      <menu:menu menu:id=".uno:Zoom">
+        <menu:menupopup>
+          <menu:menuitem menu:id=".uno:Zoom50Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom75Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom100Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom150Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom200Percent"/>
+          <menu:menuseparator/>
+          <menu:menuitem menu:id=".uno:Zoom"/>
+        </menu:menupopup>
+      </menu:menu>
     </menu:menupopup>
   </menu:menu>
   <menu:menu menu:id=".uno:InsertMenu">
diff --git a/sw/uiconfig/swriter/menubar/menubar.xml b/sw/uiconfig/swriter/menubar/menubar.xml
index b0f7076..03b0ee9 100644
--- a/sw/uiconfig/swriter/menubar/menubar.xml
+++ b/sw/uiconfig/swriter/menubar/menubar.xml
@@ -127,7 +127,20 @@
       <menu:menuitem menu:id=".uno:TaskPane"/>
       <menu:menuseparator/>
       <menu:menuitem menu:id=".uno:FullScreen"/>
-      <menu:menuitem menu:id=".uno:Zoom"/>
+      <menu:menu menu:id=".uno:Zoom">
+        <menu:menupopup>
+          <menu:menuitem menu:id=".uno:ZoomPage"/>
+          <menu:menuitem menu:id=".uno:ZoomPageWidth"/>
+          <menu:menuitem menu:id=".uno:ZoomOptimal"/>
+          <menu:menuitem menu:id=".uno:Zoom50Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom75Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom100Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom150Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom200Percent"/>
+          <menu:menuseparator/>
+          <menu:menuitem menu:id=".uno:Zoom"/>
+        </menu:menupopup>
+      </menu:menu>
     </menu:menupopup>
   </menu:menu>
   <menu:menu menu:id=".uno:InsertMenu">
diff --git a/sw/uiconfig/swxform/menubar/menubar.xml b/sw/uiconfig/swxform/menubar/menubar.xml
index 077a3f9..afa86d7 100644
--- a/sw/uiconfig/swxform/menubar/menubar.xml
+++ b/sw/uiconfig/swxform/menubar/menubar.xml
@@ -125,7 +125,17 @@
       <menu:menuitem menu:id=".uno:TaskPane"/>
       <menu:menuseparator/>
       <menu:menuitem menu:id=".uno:FullScreen"/>
-      <menu:menuitem menu:id=".uno:Zoom"/>
+      <menu:menu menu:id=".uno:Zoom">
+        <menu:menupopup>
+          <menu:menuitem menu:id=".uno:Zoom50Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom75Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom100Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom150Percent"/>
+          <menu:menuitem menu:id=".uno:Zoom200Percent"/>
+          <menu:menuseparator/>
+          <menu:menuitem menu:id=".uno:Zoom"/>
+        </menu:menupopup>
+      </menu:menu>
     </menu:menupopup>
   </menu:menu>
   <menu:menu menu:id=".uno:InsertMenu">
-- 
1.7.10.3

Attachment: signature.asc
Description: OpenPGP digital signature


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.