summaryrefslogtreecommitdiff
path: root/cui/source/inc/grfpage.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/inc/grfpage.hxx')
-rw-r--r--cui/source/inc/grfpage.hxx143
1 files changed, 143 insertions, 0 deletions
diff --git a/cui/source/inc/grfpage.hxx b/cui/source/inc/grfpage.hxx
new file mode 100644
index 000000000000..58ce4e5a5e63
--- /dev/null
+++ b/cui/source/inc/grfpage.hxx
@@ -0,0 +1,143 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: grfpage.hxx,v $
+ * $Revision: 1.6 $
+ *
+ * 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_GRFPAGE_HXX
+#define _SVX_GRFPAGE_HXX
+
+#ifndef _FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#include <vcl/graph.hxx>
+#include <sfx2/tabdlg.hxx>
+
+
+class SvxGrfCropPage : public SfxTabPage
+{
+ using Window::CalcZoom;
+ using TabPage::ActivatePage;
+ using TabPage::DeactivatePage;
+
+ class SvxCropExample : public Window
+ {
+ Size aFrameSize;
+ Point aTopLeft, aBottomRight;
+ Graphic aGrf;
+
+ public:
+ SvxCropExample( Window* pPar, const ResId& rResId );
+
+ virtual void Paint( const Rectangle& rRect );
+
+ void SetTopLeft( const Point& rNew ) { aTopLeft = rNew; }
+ void SetTop( long nVal ) { aTopLeft.X() = nVal; }
+ void SetBottom( long nVal ) { aBottomRight.X() = nVal; }
+ void SetLeft( long nVal ) { aTopLeft.Y() = nVal; }
+ void SetRight( long nVal) { aBottomRight.Y() = nVal; }
+ void SetBottomRight(const Point& rNew ) { aBottomRight = rNew; }
+ void SetFrameSize( const Size& rSz );
+ void SetGraphic( const Graphic& rGrf ) { aGrf = rGrf; }
+ const Graphic& GetGraphic() const { return aGrf; }
+ };
+
+ FixedLine aCropFL;
+ RadioButton aZoomConstRB;
+ RadioButton aSizeConstRB;
+ FixedText aLeftFT;
+ MetricField aLeftMF;
+ FixedText aRightFT;
+ MetricField aRightMF;
+ FixedText aTopFT;
+ MetricField aTopMF;
+ FixedText aBottomFT;
+ MetricField aBottomMF;
+
+ FixedLine aZoomFL;
+ FixedText aWidthZoomFT;
+ MetricField aWidthZoomMF;
+ FixedText aHeightZoomFT;
+ MetricField aHeightZoomMF;
+
+ FixedLine aSizeFL;
+ FixedText aWidthFT;
+ MetricField aWidthMF;
+ FixedText aHeightFT;
+ MetricField aHeightMF;
+ FixedText aOrigSizeFT;
+ PushButton aOrigSizePB;
+
+ // Example
+ SvxCropExample aExampleWN;
+
+
+ Timer aTimer;
+ String aGraphicName;
+ Size aOrigSize;
+ Size aPageSize;
+ const MetricField* pLastCropField;
+ long nOldWidth;
+ long nOldHeight;
+ BOOL bReset;
+ BOOL bInitialized;
+ BOOL bSetOrigSize;
+
+
+ SvxGrfCropPage( Window *pParent, const SfxItemSet &rSet );
+ virtual ~SvxGrfCropPage();
+
+ DECL_LINK( ZoomHdl, MetricField * );
+ DECL_LINK( SizeHdl, MetricField * );
+ DECL_LINK( CropHdl, const MetricField * );
+ DECL_LINK( CropLoseFocusHdl, MetricField * );
+ DECL_LINK( CropModifyHdl, MetricField * );
+ DECL_LINK( OrigSizeHdl, PushButton * );
+ DECL_LINK( Timeout, Timer * );
+
+ void CalcZoom();
+ void CalcMinMaxBorder();
+ void GraphicHasChanged(BOOL bFound);
+ virtual void ActivatePage(const SfxItemSet& rSet);
+
+ Size GetGrfOrigSize( const Graphic& ) const;
+public:
+ static SfxTabPage *Create( Window *pParent, const SfxItemSet &rSet );
+
+ virtual BOOL FillItemSet( SfxItemSet &rSet );
+ virtual void Reset( const SfxItemSet &rSet );
+ virtual int DeactivatePage( SfxItemSet *pSet );
+};
+
+
+#endif