summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-05-08 14:27:53 +0100
committerCaolán McNamara <caolanm@redhat.com>2014-05-08 14:48:22 +0100
commitd6f5d4ee2cd0654497f1af37421d788411db762c (patch)
treeda4f61905e264cd2094dce65f95385a4d1a83154
parenttranslate to English (diff)
downloadcore-d6f5d4ee2cd0654497f1af37421d788411db762c.tar.gz
core-d6f5d4ee2cd0654497f1af37421d788411db762c.zip
add a status bar icon to fit slide to window
Change-Id: I2c1d1fc7425b0aaad2a2445e0ac71ddc38410fdb
-rw-r--r--icon-themes/galaxy/svx/res/zoom_page_statusbar.pngbin0 -> 418 bytes
-rw-r--r--include/svx/dialogs.hrc6
-rw-r--r--include/svx/zoomctrl.hxx15
-rw-r--r--sd/source/ui/app/sddll.cxx1
-rw-r--r--sd/uiconfig/simpress/statusbar/statusbar.xml1
-rw-r--r--svx/source/stbctrls/modctrl.cxx7
-rw-r--r--svx/source/stbctrls/stbctrls.src13
-rw-r--r--svx/source/stbctrls/zoomctrl.cxx46
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
new file mode 100644
index 000000000000..5fb2d59cf754
--- /dev/null
+++ b/icon-themes/galaxy/svx/res/zoom_page_statusbar.png
Binary files differ
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: */