diff options
Diffstat (limited to 'svx')
-rw-r--r-- | svx/UIConfig_svx.mk | 1 | ||||
-rw-r--r-- | svx/inc/helpid.hrc | 8 | ||||
-rw-r--r-- | svx/source/stbctrls/stbctrls.h | 10 | ||||
-rw-r--r-- | svx/source/stbctrls/stbctrls.src | 57 | ||||
-rw-r--r-- | svx/source/stbctrls/zoomctrl.cxx | 92 | ||||
-rw-r--r-- | svx/uiconfig/ui/zoommenu.ui | 73 |
6 files changed, 123 insertions, 118 deletions
diff --git a/svx/UIConfig_svx.mk b/svx/UIConfig_svx.mk index ae2f419b73b1..e073234f3540 100644 --- a/svx/UIConfig_svx.mk +++ b/svx/UIConfig_svx.mk @@ -81,6 +81,7 @@ $(eval $(call gb_UIConfig_add_uifiles,svx,\ svx/uiconfig/ui/textunderlinecontrol \ svx/uiconfig/ui/xmlsecstatmenu \ svx/uiconfig/ui/xformspage \ + svx/uiconfig/ui/zoommenu \ )) # vim: set noet sw=4 ts=4: diff --git a/svx/inc/helpid.hrc b/svx/inc/helpid.hrc index 6ebd60d993ce..1844d102e9bb 100644 --- a/svx/inc/helpid.hrc +++ b/svx/inc/helpid.hrc @@ -53,14 +53,6 @@ #define HID_MNU_FUNC_NONE "SVX_HID_MNU_FUNC_NONE" #define HID_MNU_FUNC_SUM "SVX_HID_MNU_FUNC_SUM" #define HID_MNU_FUNC_SELECTION_COUNT "SVX_HID_MNU_FUNC_SELECTION_COUNT" -#define HID_MNU_ZOOM_100 "SVX_HID_MNU_ZOOM_100" -#define HID_MNU_ZOOM_150 "SVX_HID_MNU_ZOOM_150" -#define HID_MNU_ZOOM_200 "SVX_HID_MNU_ZOOM_200" -#define HID_MNU_ZOOM_50 "SVX_HID_MNU_ZOOM_50" -#define HID_MNU_ZOOM_75 "SVX_HID_MNU_ZOOM_75" -#define HID_MNU_ZOOM_OPTIMAL "SVX_HID_MNU_ZOOM_OPTIMAL" -#define HID_MNU_ZOOM_PAGE_WIDTH "SVX_HID_MNU_ZOOM_PAGE_WIDTH" -#define HID_MNU_ZOOM_WHOLE_PAGE "SVX_HID_MNU_ZOOM_WHOLE_PAGE" #define HID_POPUP_COLOR "SVX_HID_POPUP_COLOR" #define HID_POPUP_COLOR_CTRL "SVX_HID_POPUP_COLOR_CTRL" #define HID_POPUP_FRAME "SVX_HID_POPUP_FRAME" diff --git a/svx/source/stbctrls/stbctrls.h b/svx/source/stbctrls/stbctrls.h index 316cab0eb458..77d4f7f0f2fd 100644 --- a/svx/source/stbctrls/stbctrls.h +++ b/svx/source/stbctrls/stbctrls.h @@ -19,16 +19,6 @@ #ifndef INCLUDED_SVX_SOURCE_STBCTRLS_STBCTRLS_H #define INCLUDED_SVX_SOURCE_STBCTRLS_STBCTRLS_H -#define ZOOM_200 1 -#define ZOOM_150 2 -#define ZOOM_100 3 -#define ZOOM_75 4 -#define ZOOM_50 5 - -#define ZOOM_OPTIMAL 6 -#define ZOOM_PAGE_WIDTH 7 -#define ZOOM_WHOLE_PAGE 8 - // IDs as in SUBTOTAL_FUNC of Calc #define PSZ_FUNC_AVG 1 diff --git a/svx/source/stbctrls/stbctrls.src b/svx/source/stbctrls/stbctrls.src index e8f9c072e1b4..e846cffc5e14 100644 --- a/svx/source/stbctrls/stbctrls.src +++ b/svx/source/stbctrls/stbctrls.src @@ -188,62 +188,7 @@ String RID_SIDEBAR_EMPTY_PANEL_TEXT Text [ en-US ] = "Properties for the task that you are performing are not available for the current selection" ; }; - // PopupMenu ------------------------------------------------------------- -Menu RID_SVXMNU_ZOOM -{ - ItemList = - { - MenuItem - { - Identifier = ZOOM_WHOLE_PAGE ; - HelpId = HID_MNU_ZOOM_WHOLE_PAGE ; - Text [ en-US ] = "Entire Page" ; - }; - MenuItem - { - Identifier = ZOOM_PAGE_WIDTH ; - HelpId = HID_MNU_ZOOM_PAGE_WIDTH ; - Text [ en-US ] = "Page Width" ; - }; - MenuItem - { - Identifier = ZOOM_OPTIMAL ; - HelpId = HID_MNU_ZOOM_OPTIMAL ; - Text [ en-US ] = "Optimal View" ; - }; - MenuItem - { - Identifier = ZOOM_50 ; - HelpId = HID_MNU_ZOOM_50 ; - Text [ en-US ] = "50%" ; - }; - MenuItem - { - Identifier = ZOOM_75 ; - HelpId = HID_MNU_ZOOM_75 ; - Text [ en-US ] = "75%" ; - }; - MenuItem - { - Identifier = ZOOM_100 ; - HelpId = HID_MNU_ZOOM_100 ; - Text [ en-US ] = "100%" ; - }; - MenuItem - { - Identifier = ZOOM_150 ; - HelpId = HID_MNU_ZOOM_150 ; - Text [ en-US ] = "150%" ; - }; - MenuItem - { - Identifier = ZOOM_200 ; - HelpId = HID_MNU_ZOOM_200 ; - Text [ en-US ] = "200%" ; - }; - }; -}; - // Choice of functions on the SvxPosSizeStatusBarControl for Calc +// Choice of functions on the SvxPosSizeStatusBarControl for Calc Menu RID_SVXMNU_PSZ_FUNC { ItemList = diff --git a/svx/source/stbctrls/zoomctrl.cxx b/svx/source/stbctrls/zoomctrl.cxx index 384a0f9ed13e..e93740e9deb9 100644 --- a/svx/source/stbctrls/zoomctrl.cxx +++ b/svx/source/stbctrls/zoomctrl.cxx @@ -18,6 +18,7 @@ */ #include <i18nutil/unicode.hxx> +#include <vcl/builder.hxx> #include <vcl/svapp.hxx> #include <vcl/status.hxx> #include <vcl/menu.hxx> @@ -36,61 +37,63 @@ SFX_IMPL_STATUSBAR_CONTROL(SvxZoomStatusBarControl,SvxZoomItem); -class ZoomPopup_Impl : public PopupMenu +class ZoomPopup_Impl { public: ZoomPopup_Impl( sal_uInt16 nZ, SvxZoomEnableFlags nValueSet ); - sal_uInt16 GetZoom() const { return nZoom; } - sal_uInt16 GetCurId() const { return nCurId; } + sal_uInt16 GetZoom(); + OString GetCurItemIdent() const { return m_xMenu->GetCurItemIdent(); } + + sal_uInt16 Execute(vcl::Window* pWindow, const Point& rPopupPos) + { + return m_xMenu->Execute(pWindow, rPopupPos); + } private: + VclBuilder m_aBuilder; + VclPtr<PopupMenu> m_xMenu; sal_uInt16 nZoom; - sal_uInt16 nCurId; - - virtual void Select() override; }; - ZoomPopup_Impl::ZoomPopup_Impl( sal_uInt16 nZ, SvxZoomEnableFlags nValueSet ) - : PopupMenu(ResId(RID_SVXMNU_ZOOM, DIALOG_MGR())) + : m_aBuilder(nullptr, VclBuilderContainer::getUIRootDir(), "svx/ui/zoommenu.ui", "") + , m_xMenu(m_aBuilder.get_menu("menu")) , nZoom(nZ) - , nCurId(0) { if ( !(SvxZoomEnableFlags::N50 & nValueSet) ) - EnableItem( ZOOM_50, false ); + m_xMenu->EnableItem("50", false); if ( !(SvxZoomEnableFlags::N100 & nValueSet) ) - EnableItem( ZOOM_100, false ); + m_xMenu->EnableItem("100", false); if ( !(SvxZoomEnableFlags::N150 & nValueSet) ) - EnableItem( ZOOM_150, false ); + m_xMenu->EnableItem("150", false); if ( !(SvxZoomEnableFlags::N200 & nValueSet) ) - EnableItem( ZOOM_200, false ); + m_xMenu->EnableItem("200", false); if ( !(SvxZoomEnableFlags::OPTIMAL & nValueSet) ) - EnableItem( ZOOM_OPTIMAL, false ); + m_xMenu->EnableItem("optimal", false); if ( !(SvxZoomEnableFlags::WHOLEPAGE & nValueSet) ) - EnableItem( ZOOM_WHOLE_PAGE, false ); + m_xMenu->EnableItem("page", false); if ( !(SvxZoomEnableFlags::PAGEWIDTH & nValueSet) ) - EnableItem( ZOOM_PAGE_WIDTH, false ); + m_xMenu->EnableItem("width", false); } - -void ZoomPopup_Impl::Select() +sal_uInt16 ZoomPopup_Impl::GetZoom() { - nCurId = GetCurItemId(); - - switch ( nCurId ) - { - case ZOOM_200: nZoom = 200; break; - case ZOOM_150: nZoom = 150; break; - case ZOOM_100: nZoom = 100; break; - case ZOOM_75: nZoom = 75; break; - case ZOOM_50: nZoom = 50; break; - - case ZOOM_OPTIMAL: - case ZOOM_PAGE_WIDTH: - case ZOOM_WHOLE_PAGE: nZoom = 0; break; - - } + OString sIdent = GetCurItemIdent(); + if (sIdent == "200") + nZoom = 200; + else if (sIdent == "150") + nZoom = 150; + else if (sIdent == "100") + nZoom = 100; + else if (sIdent == "75") + nZoom = 75; + else if (sIdent == "50") + nZoom = 50; + else if (sIdent == "optimal" || sIdent == "width" || sIdent == "page") + nZoom = 0; + + return nZoom; } SvxZoomStatusBarControl::SvxZoomStatusBarControl( sal_uInt16 _nSlotId, @@ -142,20 +145,21 @@ void SvxZoomStatusBarControl::Command( const CommandEvent& rCEvt ) { if ( CommandEventId::ContextMenu == rCEvt.GetCommand() && bool(nValueSet) ) { - ScopedVclPtrInstance<ZoomPopup_Impl> aPop( nZoom, nValueSet ); + ZoomPopup_Impl aPop(nZoom, nValueSet); StatusBar& rStatusbar = GetStatusBar(); - if ( aPop->Execute( &rStatusbar, rCEvt.GetMousePosPixel() ) && ( nZoom != aPop->GetZoom() || !nZoom ) ) + if (aPop.Execute(&rStatusbar, rCEvt.GetMousePosPixel()) && (nZoom != aPop.GetZoom() || !nZoom)) { - nZoom = aPop->GetZoom(); - SvxZoomItem aZoom( SvxZoomType::PERCENT, nZoom, GetId() ); - - switch( aPop->GetCurId() ) - { - case ZOOM_OPTIMAL: aZoom.SetType( SvxZoomType::OPTIMAL ); break; - case ZOOM_PAGE_WIDTH: aZoom.SetType( SvxZoomType::PAGEWIDTH ); break; - case ZOOM_WHOLE_PAGE: aZoom.SetType( SvxZoomType::WHOLEPAGE ); break; - } + nZoom = aPop.GetZoom(); + SvxZoomItem aZoom(SvxZoomType::PERCENT, nZoom, GetId()); + + OString sIdent = aPop.GetCurItemIdent(); + if (sIdent == "optimal") + aZoom.SetType(SvxZoomType::OPTIMAL); + else if (sIdent == "width") + aZoom.SetType(SvxZoomType::PAGEWIDTH); + else if (sIdent == "page") + aZoom.SetType(SvxZoomType::WHOLEPAGE); css::uno::Any a; INetURLObject aObj( m_aCommandURL ); diff --git a/svx/uiconfig/ui/zoommenu.ui b/svx/uiconfig/ui/zoommenu.ui new file mode 100644 index 000000000000..3cc2c6c95beb --- /dev/null +++ b/svx/uiconfig/ui/zoommenu.ui @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.20.0 --> +<interface> + <requires lib="gtk+" version="3.10"/> + <object class="GtkMenu" id="menu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="page"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Entire Page</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="width"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Page Width</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="optimal"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Optimal View</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="50"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">50%</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="75"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">75%</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="100"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">100%</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="150"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">150%</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="200"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">200%</property> + <property name="use_underline">True</property> + </object> + </child> + </object> +</interface> |