1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: tp_TitleRotation.cxx,v $
10 * $Revision: 1.11.72.2 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_chart2.hxx"
33 #include "tp_TitleRotation.hxx"
36 #include "TabPages.hrc"
37 #include "chartview/ChartSfxItemIds.hxx"
38 #include "HelpIds.hrc"
39 #include <svx/eeitem.hxx>
40 #include <svx/frmdiritem.hxx>
42 // header for class SfxInt32Item
43 #include <svtools/intitem.hxx>
45 //.............................................................................
48 //.............................................................................
50 SchAlignmentTabPage::SchAlignmentTabPage(Window
* pWindow
,
51 const SfxItemSet
& rInAttrs
, bool bWithRotation
) :
52 SfxTabPage(pWindow
, SchResId(TP_ALIGNMENT
), rInAttrs
),
53 aFlAlign ( this, SchResId( FL_ALIGN
) ),
54 aCtrlDial ( this, SchResId( CTR_DIAL
) ),
55 aFtRotate ( this, SchResId( FT_DEGREES
) ),
56 aNfRotate ( this, SchResId( NF_ORIENT
) ),
57 aCbStacked ( this, SchResId( BTN_TXTSTACKED
) ),
58 aOrientHlp ( aCtrlDial
, aNfRotate
, aCbStacked
),
59 aFtTextDirection( this, SchResId( FT_TEXTDIR
) ),
60 aLbTextDirection( this, SchResId( LB_TEXTDIR
), &aFtTextDirection
)
64 aCbStacked
.EnableTriState( FALSE
);
65 aOrientHlp
.AddDependentWindow( aFtRotate
, STATE_CHECK
);
70 Point
aMove( 0, aCtrlDial
.GetPosPixel().Y() - aFtTextDirection
.GetPosPixel().Y() );
71 aFtTextDirection
.SetPosPixel( aFtTextDirection
.GetPosPixel() + aMove
);
72 aLbTextDirection
.SetPosPixel( aLbTextDirection
.GetPosPixel() + aMove
);
74 aLbTextDirection
.SetHelpId( HID_SCH_TEXTDIRECTION_EQUATION
);
78 SchAlignmentTabPage::~SchAlignmentTabPage()
82 SfxTabPage
* SchAlignmentTabPage::Create(Window
* pParent
,
83 const SfxItemSet
& rInAttrs
)
85 return new SchAlignmentTabPage(pParent
, rInAttrs
);
88 SfxTabPage
* SchAlignmentTabPage::CreateWithoutRotation(Window
* pParent
,
89 const SfxItemSet
& rInAttrs
)
91 return new SchAlignmentTabPage(pParent
, rInAttrs
, false);
94 BOOL
SchAlignmentTabPage::FillItemSet(SfxItemSet
& rOutAttrs
)
96 //Seit 4/1998 koennen Texte frei gedreht werden: SCHATTR_TEXT_DEGREES
97 bool bStacked
= aOrientHlp
.GetStackedState() == STATE_CHECK
;
98 rOutAttrs
.Put( SfxBoolItem( SCHATTR_TEXT_STACKED
, bStacked
) );
100 sal_Int32 nDegrees
= bStacked
? 0 : aCtrlDial
.GetRotation();
101 rOutAttrs
.Put( SfxInt32Item( SCHATTR_TEXT_DEGREES
, nDegrees
) );
103 SvxFrameDirection
aDirection( aLbTextDirection
.GetSelectEntryValue() );
104 rOutAttrs
.Put( SfxInt32Item( EE_PARA_WRITINGDIR
, aDirection
) );
109 void SchAlignmentTabPage::Reset(const SfxItemSet
& rInAttrs
)
111 const SfxPoolItem
* pItem
= GetItem( rInAttrs
, SCHATTR_TEXT_DEGREES
);
113 sal_Int32 nDegrees
= pItem
? ((const SfxInt32Item
*)pItem
)->GetValue() : 0;
114 aCtrlDial
.SetRotation( nDegrees
);
116 pItem
= GetItem( rInAttrs
, SCHATTR_TEXT_STACKED
);
117 bool bStacked
= pItem
&& ((const SfxBoolItem
*)pItem
)->GetValue();
118 aOrientHlp
.SetStackedState( bStacked
? STATE_CHECK
: STATE_NOCHECK
);
121 if( rInAttrs
.GetItemState(EE_PARA_WRITINGDIR
, TRUE
, &pItem
) == SFX_ITEM_SET
)
122 aLbTextDirection
.SelectEntryValue( SvxFrameDirection(((const SvxFrameDirectionItem
*)pItem
)->GetValue()) );
125 //.............................................................................
127 //.............................................................................