diff options
-rw-r--r-- | icon-themes/galaxy/svx/res/zoom_page_statusbar.png | bin | 0 -> 418 bytes | |||
-rw-r--r-- | include/svx/dialogs.hrc | 6 | ||||
-rw-r--r-- | include/svx/zoomctrl.hxx | 15 | ||||
-rw-r--r-- | sd/source/ui/app/sddll.cxx | 1 | ||||
-rw-r--r-- | sd/uiconfig/simpress/statusbar/statusbar.xml | 1 | ||||
-rw-r--r-- | svx/source/stbctrls/modctrl.cxx | 7 | ||||
-rw-r--r-- | svx/source/stbctrls/stbctrls.src | 13 | ||||
-rw-r--r-- | svx/source/stbctrls/zoomctrl.cxx | 46 |
8 files changed, 70 insertions, 19 deletions
diff --git a/icon-themes/galaxy/svx/res/zoom_page_statusbar.png b/icon-themes/galaxy/svx/res/zoom_page_statusbar.png Binary files differnew file mode 100644 index 000000000000..5fb2d59cf754 --- /dev/null +++ b/icon-themes/galaxy/svx/res/zoom_page_statusbar.png diff --git a/include/svx/dialogs.hrc b/include/svx/dialogs.hrc index fb417e63b8b3..09a122df6ff9 100644 --- a/include/svx/dialogs.hrc +++ b/include/svx/dialogs.hrc @@ -981,12 +981,14 @@ #define RID_SVXSTR_DOC_LOAD (SVX_OOO_BUILD_START + 6) // 1236 #define RID_SVXSTR_ERR_OLD_PASSWD (SVX_OOO_BUILD_START + 7) // 1237 #define RID_SVXSTR_ERR_REPEAT_PASSWD (SVX_OOO_BUILD_START + 8) // 1238 +#define RID_SVXBMP_ZOOM_PAGE (SVX_OOO_BUILD_START + 9) // 1239 +#define RID_SVXSTR_FIT_SLIDE (SVX_OOO_BUILD_START + 10) // 1240 // sidebar-related resources (defined in the appropriate .hrc's) -#define RID_SVX_SIDEBAR_BEGIN (RID_SVX_START + 1240) +#define RID_SVX_SIDEBAR_BEGIN (RID_SVX_START + 1241) // !!! IMPORTANT: consider and update RID_SVXSTR_NEXTFREE when introducing new RIDs for Strings !!! -#define RID_SVXSTR_NEXTFREE (RID_SVX_START + 1270) +#define RID_SVXSTR_NEXTFREE (RID_SVX_START + 1271) // if we have _a_lot_ time, we should group the resource ids by type, instead diff --git a/include/svx/zoomctrl.hxx b/include/svx/zoomctrl.hxx index 29d9472539fd..c6937ee3f69a 100644 --- a/include/svx/zoomctrl.hxx +++ b/include/svx/zoomctrl.hxx @@ -21,8 +21,7 @@ #include <sfx2/stbitem.hxx> #include <svx/svxdllapi.h> - -// class SvxZoomToolBoxControl ------------------------------------------- +#include <vcl/image.hxx> class SVX_DLLPUBLIC SvxZoomStatusBarControl : public SfxStatusBarControl { @@ -42,6 +41,18 @@ public: }; +class SVX_DLLPUBLIC SvxZoomPageStatusBarControl : public SfxStatusBarControl +{ +private: + Image maImage; +public: + virtual void Paint( const UserDrawEvent& rEvt ) SAL_OVERRIDE; + virtual bool MouseButtonDown( const MouseEvent & rEvt ) SAL_OVERRIDE; + + SFX_DECL_STATUSBAR_CONTROL(); + + SvxZoomPageStatusBarControl(sal_uInt16 nSlotId, sal_uInt16 nId, StatusBar& rStb); +}; #endif diff --git a/sd/source/ui/app/sddll.cxx b/sd/source/ui/app/sddll.cxx index 7b6b89c9ea6d..26db281cb5e8 100644 --- a/sd/source/ui/app/sddll.cxx +++ b/sd/source/ui/app/sddll.cxx @@ -239,6 +239,7 @@ void SdDLL::RegisterControllers() SvxCTLTextTbxCtrl::RegisterControl(SID_ATTR_PARA_RIGHT_TO_LEFT, pMod); // register StatusBarControls + SvxZoomPageStatusBarControl::RegisterControl( SID_ZOOM_ENTIRE_PAGE, pMod ); SvxZoomStatusBarControl::RegisterControl( SID_ATTR_ZOOM, pMod ); SvxPosSizeStatusBarControl::RegisterControl( SID_ATTR_SIZE, pMod ); SvxModifyControl::RegisterControl( SID_DOC_MODIFIED, pMod ); diff --git a/sd/uiconfig/simpress/statusbar/statusbar.xml b/sd/uiconfig/simpress/statusbar/statusbar.xml index 24224fe3cadb..78042ef3d523 100644 --- a/sd/uiconfig/simpress/statusbar/statusbar.xml +++ b/sd/uiconfig/simpress/statusbar/statusbar.xml @@ -24,6 +24,7 @@ <statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16"/> <statusbar:statusbaritem xlink:href=".uno:PageStatus" statusbar:align="left" statusbar:width="124"/> <statusbar:statusbaritem xlink:href=".uno:LayoutStatus" statusbar:align="left" statusbar:autosize="true" statusbar:width="54"/> + <statusbar:statusbaritem xlink:href=".uno:ZoomPage" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="9"/> <statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="130"/> <statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="36"/> </statusbar:statusbar> diff --git a/svx/source/stbctrls/modctrl.cxx b/svx/source/stbctrls/modctrl.cxx index 15bc693e0762..63d50fde27c7 100644 --- a/svx/source/stbctrls/modctrl.cxx +++ b/svx/source/stbctrls/modctrl.cxx @@ -136,10 +136,6 @@ void SvxModifyControl::_repaint() GetStatusBar().SetItemData( GetId(), 0 ); // force repaint } - - -namespace { - /** * Given a bounding rectangle and an image, determine the top-left position * of the image so that the image would look centered both horizontally and @@ -161,9 +157,6 @@ Point centerImage(const Rectangle& rBoundingRect, const Image& rImg) return aPt; } -} - - void SvxModifyControl::Paint( const UserDrawEvent& rUsrEvt ) { OutputDevice* pDev = rUsrEvt.GetDevice(); diff --git a/svx/source/stbctrls/stbctrls.src b/svx/source/stbctrls/stbctrls.src index cb868bd041f3..c4908e383e7b 100644 --- a/svx/source/stbctrls/stbctrls.src +++ b/svx/source/stbctrls/stbctrls.src @@ -116,6 +116,11 @@ String RID_SVXSTR_DOC_LOAD Text [ en-US ] = "Loading document..."; }; +String RID_SVXSTR_FIT_SLIDE +{ + Text [ en-US ] = "Fit slide to current window."; +}; + // PopupMenu ------------------------------------------------------------- Menu RID_SVXMNU_ZOOM { @@ -333,5 +338,13 @@ Image RID_SVXBMP_DOC_MODIFIED_FEEDBACK }; MaskColor = STD_MASKCOLOR; }; +Image RID_SVXBMP_ZOOM_PAGE +{ + ImageBitmap = Bitmap + { + File = "zoom_page_statusbar.png" ; + }; + MaskColor = STD_MASKCOLOR; +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/stbctrls/zoomctrl.cxx b/svx/source/stbctrls/zoomctrl.cxx index 1a10bc839d3f..cd711eba9a18 100644 --- a/svx/source/stbctrls/zoomctrl.cxx +++ b/svx/source/stbctrls/zoomctrl.cxx @@ -28,7 +28,8 @@ #include <svx/dialogs.hrc> -#include "svx/zoomctrl.hxx" +#include <svx/zoomctrl.hxx> +#include <svx/zoomslideritem.hxx> #include <sfx2/zoomitem.hxx> #include "stbctrls.h" #include <svx/dialmgr.hxx> @@ -97,7 +98,6 @@ void ZoomPopup_Impl::Select() } // class SvxZoomStatusBarControl ------------------------------------------ - SvxZoomStatusBarControl::SvxZoomStatusBarControl( sal_uInt16 _nSlotId, sal_uInt16 _nId, StatusBar& rStb ) : @@ -108,8 +108,6 @@ SvxZoomStatusBarControl::SvxZoomStatusBarControl( sal_uInt16 _nSlotId, { } - - void SvxZoomStatusBarControl::StateChanged( sal_uInt16, SfxItemState eState, const SfxPoolItem* pState ) { @@ -138,16 +136,12 @@ void SvxZoomStatusBarControl::StateChanged( sal_uInt16, SfxItemState eState, } } - - void SvxZoomStatusBarControl::Paint( const UserDrawEvent& ) { OUString aStr(unicode::formatPercent(nZoom, Application::GetSettings().GetUILanguageTag())); GetStatusBar().SetItemText( GetId(), aStr ); } - - void SvxZoomStatusBarControl::Command( const CommandEvent& rCEvt ) { if ( COMMAND_CONTEXTMENU & rCEvt.GetCommand() && 0 != nValueSet ) @@ -184,5 +178,41 @@ void SvxZoomStatusBarControl::Command( const CommandEvent& rCEvt ) SfxStatusBarControl::Command( rCEvt ); } +SFX_IMPL_STATUSBAR_CONTROL(SvxZoomPageStatusBarControl,SfxVoidItem); + +SvxZoomPageStatusBarControl::SvxZoomPageStatusBarControl(sal_uInt16 _nSlotId, + sal_uInt16 _nId, StatusBar& rStb) + : SfxStatusBarControl(_nSlotId, _nId, rStb) + , maImage(SVX_RES(RID_SVXBMP_ZOOM_PAGE)) +{ + GetStatusBar().SetQuickHelpText(GetId(), SVX_RESSTR(RID_SVXSTR_FIT_SLIDE)); +} + +extern Point centerImage(const Rectangle& rBoundingRect, const Image& rImg); + +void SvxZoomPageStatusBarControl::Paint(const UserDrawEvent& rUsrEvt) +{ + OutputDevice* pDev = rUsrEvt.GetDevice(); + Rectangle aRect = rUsrEvt.GetRect(); + Point aPt = centerImage(aRect, maImage); + pDev->DrawImage(aPt, maImage); +} + +bool SvxZoomPageStatusBarControl::MouseButtonDown(const MouseEvent&) +{ + SvxZoomItem aZoom( SVX_ZOOM_WHOLEPAGE, 0, GetId() ); + + ::com::sun::star::uno::Any a; + INetURLObject aObj( m_aCommandURL ); + + ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aArgs( 1 ); + aArgs[0].Name = aObj.GetURLPath(); + aZoom.QueryValue( a ); + aArgs[0].Value = a; + + execute( aArgs ); + + return true; +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |