1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef _SVX_GRFPAGE_HXX 25*b1cdbd2cSJim Jagielski #define _SVX_GRFPAGE_HXX 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #ifndef _FIXED_HXX //autogen 28*b1cdbd2cSJim Jagielski #include <vcl/fixed.hxx> 29*b1cdbd2cSJim Jagielski #endif 30*b1cdbd2cSJim Jagielski #ifndef _BUTTON_HXX //autogen 31*b1cdbd2cSJim Jagielski #include <vcl/button.hxx> 32*b1cdbd2cSJim Jagielski #endif 33*b1cdbd2cSJim Jagielski #ifndef _FIELD_HXX //autogen 34*b1cdbd2cSJim Jagielski #include <vcl/field.hxx> 35*b1cdbd2cSJim Jagielski #endif 36*b1cdbd2cSJim Jagielski #include <vcl/graph.hxx> 37*b1cdbd2cSJim Jagielski #include <sfx2/tabdlg.hxx> 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski class SvxGrfCropPage : public SfxTabPage 41*b1cdbd2cSJim Jagielski { 42*b1cdbd2cSJim Jagielski using Window::CalcZoom; 43*b1cdbd2cSJim Jagielski using TabPage::ActivatePage; 44*b1cdbd2cSJim Jagielski using TabPage::DeactivatePage; 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielski class SvxCropExample : public Window 47*b1cdbd2cSJim Jagielski { 48*b1cdbd2cSJim Jagielski Size aFrameSize; 49*b1cdbd2cSJim Jagielski Point aTopLeft, aBottomRight; 50*b1cdbd2cSJim Jagielski Graphic aGrf; 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski public: 53*b1cdbd2cSJim Jagielski SvxCropExample( Window* pPar, const ResId& rResId ); 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski virtual void Paint( const Rectangle& rRect ); 56*b1cdbd2cSJim Jagielski SetTopLeft(const Point & rNew)57*b1cdbd2cSJim Jagielski void SetTopLeft( const Point& rNew ) { aTopLeft = rNew; } SetTop(long nVal)58*b1cdbd2cSJim Jagielski void SetTop( long nVal ) { aTopLeft.X() = nVal; } SetBottom(long nVal)59*b1cdbd2cSJim Jagielski void SetBottom( long nVal ) { aBottomRight.X() = nVal; } SetLeft(long nVal)60*b1cdbd2cSJim Jagielski void SetLeft( long nVal ) { aTopLeft.Y() = nVal; } SetRight(long nVal)61*b1cdbd2cSJim Jagielski void SetRight( long nVal) { aBottomRight.Y() = nVal; } SetBottomRight(const Point & rNew)62*b1cdbd2cSJim Jagielski void SetBottomRight(const Point& rNew ) { aBottomRight = rNew; } 63*b1cdbd2cSJim Jagielski void SetFrameSize( const Size& rSz ); SetGraphic(const Graphic & rGrf)64*b1cdbd2cSJim Jagielski void SetGraphic( const Graphic& rGrf ) { aGrf = rGrf; } GetGraphic() const65*b1cdbd2cSJim Jagielski const Graphic& GetGraphic() const { return aGrf; } 66*b1cdbd2cSJim Jagielski }; 67*b1cdbd2cSJim Jagielski 68*b1cdbd2cSJim Jagielski FixedLine aCropFL; 69*b1cdbd2cSJim Jagielski RadioButton aZoomConstRB; 70*b1cdbd2cSJim Jagielski RadioButton aSizeConstRB; 71*b1cdbd2cSJim Jagielski FixedText aLeftFT; 72*b1cdbd2cSJim Jagielski MetricField aLeftMF; 73*b1cdbd2cSJim Jagielski FixedText aRightFT; 74*b1cdbd2cSJim Jagielski MetricField aRightMF; 75*b1cdbd2cSJim Jagielski FixedText aTopFT; 76*b1cdbd2cSJim Jagielski MetricField aTopMF; 77*b1cdbd2cSJim Jagielski FixedText aBottomFT; 78*b1cdbd2cSJim Jagielski MetricField aBottomMF; 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielski FixedLine aZoomFL; 81*b1cdbd2cSJim Jagielski FixedText aWidthZoomFT; 82*b1cdbd2cSJim Jagielski MetricField aWidthZoomMF; 83*b1cdbd2cSJim Jagielski FixedText aHeightZoomFT; 84*b1cdbd2cSJim Jagielski MetricField aHeightZoomMF; 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski FixedLine aSizeFL; 87*b1cdbd2cSJim Jagielski FixedText aWidthFT; 88*b1cdbd2cSJim Jagielski MetricField aWidthMF; 89*b1cdbd2cSJim Jagielski FixedText aHeightFT; 90*b1cdbd2cSJim Jagielski MetricField aHeightMF; 91*b1cdbd2cSJim Jagielski FixedText aOrigSizeFT; 92*b1cdbd2cSJim Jagielski PushButton aOrigSizePB; 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski // Example 95*b1cdbd2cSJim Jagielski SvxCropExample aExampleWN; 96*b1cdbd2cSJim Jagielski 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski Timer aTimer; 99*b1cdbd2cSJim Jagielski String aGraphicName; 100*b1cdbd2cSJim Jagielski Size aOrigSize; 101*b1cdbd2cSJim Jagielski Size aPageSize; 102*b1cdbd2cSJim Jagielski const MetricField* pLastCropField; 103*b1cdbd2cSJim Jagielski long nOldWidth; 104*b1cdbd2cSJim Jagielski long nOldHeight; 105*b1cdbd2cSJim Jagielski sal_Bool bReset; 106*b1cdbd2cSJim Jagielski sal_Bool bInitialized; 107*b1cdbd2cSJim Jagielski sal_Bool bSetOrigSize; 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski SvxGrfCropPage( Window *pParent, const SfxItemSet &rSet ); 111*b1cdbd2cSJim Jagielski virtual ~SvxGrfCropPage(); 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski DECL_LINK( ZoomHdl, MetricField * ); 114*b1cdbd2cSJim Jagielski DECL_LINK( SizeHdl, MetricField * ); 115*b1cdbd2cSJim Jagielski DECL_LINK( CropHdl, const MetricField * ); 116*b1cdbd2cSJim Jagielski DECL_LINK( CropLoseFocusHdl, MetricField * ); 117*b1cdbd2cSJim Jagielski DECL_LINK( CropModifyHdl, MetricField * ); 118*b1cdbd2cSJim Jagielski DECL_LINK( OrigSizeHdl, PushButton * ); 119*b1cdbd2cSJim Jagielski DECL_LINK( Timeout, Timer * ); 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski void CalcZoom(); 122*b1cdbd2cSJim Jagielski void CalcMinMaxBorder(); 123*b1cdbd2cSJim Jagielski void GraphicHasChanged(sal_Bool bFound); 124*b1cdbd2cSJim Jagielski virtual void ActivatePage(const SfxItemSet& rSet); 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski Size GetGrfOrigSize( const Graphic& ) const; 127*b1cdbd2cSJim Jagielski public: 128*b1cdbd2cSJim Jagielski static SfxTabPage *Create( Window *pParent, const SfxItemSet &rSet ); 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski virtual sal_Bool FillItemSet( SfxItemSet &rSet ); 131*b1cdbd2cSJim Jagielski virtual void Reset( const SfxItemSet &rSet ); 132*b1cdbd2cSJim Jagielski virtual int DeactivatePage( SfxItemSet *pSet ); 133*b1cdbd2cSJim Jagielski }; 134*b1cdbd2cSJim Jagielski 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski #endif 137