1ff0525f2SOliver-Rainer Wittmann /************************************************************************ 2ff0525f2SOliver-Rainer Wittmann * 3ff0525f2SOliver-Rainer Wittmann * Licensed Materials - Property of IBM. 4ff0525f2SOliver-Rainer Wittmann * (C) Copyright IBM Corporation 2003, 2012. All Rights Reserved. 5ff0525f2SOliver-Rainer Wittmann * U.S. Government Users Restricted Rights: 6ff0525f2SOliver-Rainer Wittmann * Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 7ff0525f2SOliver-Rainer Wittmann * 8ff0525f2SOliver-Rainer Wittmann ************************************************************************/ 9ff0525f2SOliver-Rainer Wittmann 10ff0525f2SOliver-Rainer Wittmann #include "precompiled_sw.hxx" 11ff0525f2SOliver-Rainer Wittmann 12ff0525f2SOliver-Rainer Wittmann #include "PagePropertyPanel.hxx" 13ff0525f2SOliver-Rainer Wittmann #include "PagePropertyPanel.hrc" 14ff0525f2SOliver-Rainer Wittmann 15ff0525f2SOliver-Rainer Wittmann #include "PropertyPanel.hrc" 16ff0525f2SOliver-Rainer Wittmann 17ff0525f2SOliver-Rainer Wittmann #include <svx/sidebar/PopupContainer.hxx> 18ff0525f2SOliver-Rainer Wittmann #include "PageOrientationControl.hxx" 19ff0525f2SOliver-Rainer Wittmann #include "PageMarginControl.hxx" 20ff0525f2SOliver-Rainer Wittmann #include "PageSizeControl.hxx" 21ff0525f2SOliver-Rainer Wittmann #include "PageColumnControl.hxx" 22ff0525f2SOliver-Rainer Wittmann 23ff0525f2SOliver-Rainer Wittmann #include <swtypes.hxx> 24ff0525f2SOliver-Rainer Wittmann #include <cmdid.h> 25ff0525f2SOliver-Rainer Wittmann #include <errhdl.hxx> 26ff0525f2SOliver-Rainer Wittmann 27ff0525f2SOliver-Rainer Wittmann #include <svl/intitem.hxx> 28ff0525f2SOliver-Rainer Wittmann #include <editeng/sizeitem.hxx> 29ff0525f2SOliver-Rainer Wittmann #include <editeng/paperinf.hxx> 30ff0525f2SOliver-Rainer Wittmann #include <svx/svxids.hrc> 31ff0525f2SOliver-Rainer Wittmann #include <svx/dlgutil.hxx> 32ff0525f2SOliver-Rainer Wittmann #include <svx/rulritem.hxx> 33ff0525f2SOliver-Rainer Wittmann 34ff0525f2SOliver-Rainer Wittmann #include <sfx2/sidebar/ControlFactory.hxx> 35ff0525f2SOliver-Rainer Wittmann #include <sfx2/dispatch.hxx> 36ff0525f2SOliver-Rainer Wittmann #include <sfx2/bindings.hxx> 37ff0525f2SOliver-Rainer Wittmann #include <sfx2/viewsh.hxx> 38ff0525f2SOliver-Rainer Wittmann #include <sfx2/objsh.hxx> 39ff0525f2SOliver-Rainer Wittmann 40ff0525f2SOliver-Rainer Wittmann #include <boost/bind.hpp> 41ff0525f2SOliver-Rainer Wittmann 42ff0525f2SOliver-Rainer Wittmann #define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString))) 43ff0525f2SOliver-Rainer Wittmann 44ff0525f2SOliver-Rainer Wittmann #define SetFldVal(rField, lValue) (rField).SetValue((rField).Normalize(lValue), FUNIT_TWIP) 45ff0525f2SOliver-Rainer Wittmann 46ff0525f2SOliver-Rainer Wittmann 47ff0525f2SOliver-Rainer Wittmann namespace sw { namespace sidebar { 48ff0525f2SOliver-Rainer Wittmann 49ff0525f2SOliver-Rainer Wittmann PagePropertyPanel* PagePropertyPanel::Create ( 50ff0525f2SOliver-Rainer Wittmann Window* pParent, 51ff0525f2SOliver-Rainer Wittmann const cssu::Reference<css::frame::XFrame>& rxFrame, 52ff0525f2SOliver-Rainer Wittmann SfxBindings* pBindings) 53ff0525f2SOliver-Rainer Wittmann { 54ff0525f2SOliver-Rainer Wittmann if (pParent == NULL) 55ff0525f2SOliver-Rainer Wittmann throw ::com::sun::star::lang::IllegalArgumentException(A2S("no parent Window given to PagePropertyPanel::Create"), NULL, 0); 56ff0525f2SOliver-Rainer Wittmann if ( ! rxFrame.is()) 57ff0525f2SOliver-Rainer Wittmann throw ::com::sun::star::lang::IllegalArgumentException(A2S("no XFrame given to PagePropertyPanel::Create"), NULL, 1); 58ff0525f2SOliver-Rainer Wittmann if (pBindings == NULL) 59ff0525f2SOliver-Rainer Wittmann throw ::com::sun::star::lang::IllegalArgumentException(A2S("no SfxBindings given to PagePropertyPanel::Create"), NULL, 2); 60ff0525f2SOliver-Rainer Wittmann 61ff0525f2SOliver-Rainer Wittmann return new PagePropertyPanel( 62ff0525f2SOliver-Rainer Wittmann pParent, 63ff0525f2SOliver-Rainer Wittmann rxFrame, 64ff0525f2SOliver-Rainer Wittmann pBindings); 65ff0525f2SOliver-Rainer Wittmann } 66ff0525f2SOliver-Rainer Wittmann 67ff0525f2SOliver-Rainer Wittmann PagePropertyPanel::PagePropertyPanel( 68ff0525f2SOliver-Rainer Wittmann Window* pParent, 69ff0525f2SOliver-Rainer Wittmann const cssu::Reference<css::frame::XFrame>& rxFrame, 70ff0525f2SOliver-Rainer Wittmann SfxBindings* pBindings) 71ff0525f2SOliver-Rainer Wittmann : Control(pParent, SW_RES(RID_PROPERTYPANEL_SWPAGE)) 72ff0525f2SOliver-Rainer Wittmann , mxFrame(rxFrame) 73ff0525f2SOliver-Rainer Wittmann , maContext() 74ff0525f2SOliver-Rainer Wittmann , mpBindings(pBindings) 75ff0525f2SOliver-Rainer Wittmann // visible controls 76ff0525f2SOliver-Rainer Wittmann , maFtOrientation( this, SW_RES(FT_ORIENTATION) ) 77ff0525f2SOliver-Rainer Wittmann , mpToolBoxOrientationBackground( ::sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this) ) 78ff0525f2SOliver-Rainer Wittmann , mpToolBoxOrientation( ::sfx2::sidebar::ControlFactory::CreateToolBox( mpToolBoxOrientationBackground.get(), SW_RES(TB_ORIENTATION)) ) 79ff0525f2SOliver-Rainer Wittmann , maFtMargin( this, SW_RES(FT_MARGIN) ) 80ff0525f2SOliver-Rainer Wittmann , mpToolBoxMarginBackground( ::sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this) ) 81ff0525f2SOliver-Rainer Wittmann , mpToolBoxMargin( ::sfx2::sidebar::ControlFactory::CreateToolBox( mpToolBoxMarginBackground.get(), SW_RES(TB_MARGIN)) ) 82ff0525f2SOliver-Rainer Wittmann , maFtSize( this, SW_RES(FT_SIZE) ) 83ff0525f2SOliver-Rainer Wittmann , mpToolBoxSizeBackground( ::sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this) ) 84ff0525f2SOliver-Rainer Wittmann , mpToolBoxSize( ::sfx2::sidebar::ControlFactory::CreateToolBox( mpToolBoxSizeBackground.get(), SW_RES(TB_SIZE)) ) 85ff0525f2SOliver-Rainer Wittmann , maFtColumn( this, SW_RES(FT_COLUMN) ) 86ff0525f2SOliver-Rainer Wittmann , mpToolBoxColumnBackground( ::sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this) ) 87ff0525f2SOliver-Rainer Wittmann , mpToolBoxColumn( ::sfx2::sidebar::ControlFactory::CreateToolBox( mpToolBoxColumnBackground.get(), SW_RES(TB_COLUMN)) ) 88ff0525f2SOliver-Rainer Wittmann // image resources 89ff0525f2SOliver-Rainer Wittmann , maImgSize (NULL) 90ff0525f2SOliver-Rainer Wittmann , maImgSize_L (NULL) 91ff0525f2SOliver-Rainer Wittmann , mImgPortrait (SW_RES(IMG_PAGE_PORTRAIT)) 92ff0525f2SOliver-Rainer Wittmann , mImgLandscape (SW_RES(IMG_PAGE_LANDSCAPE)) 93ff0525f2SOliver-Rainer Wittmann , mImgNarrow (SW_RES(IMG_PAGE_NARROW)) 94ff0525f2SOliver-Rainer Wittmann , mImgNormal (SW_RES(IMG_PAGE_NORMAL)) 95ff0525f2SOliver-Rainer Wittmann , mImgWide (SW_RES(IMG_PAGE_WIDE)) 96ff0525f2SOliver-Rainer Wittmann , mImgMirrored (SW_RES(IMG_PAGE_MIRRORED)) 97ff0525f2SOliver-Rainer Wittmann , mImgMarginCustom (SW_RES(IMG_PAGE_MARGIN_CUSTOM)) 98ff0525f2SOliver-Rainer Wittmann , mImgNarrow_L (SW_RES(IMG_PAGE_NARROW_L)) 99ff0525f2SOliver-Rainer Wittmann , mImgNormal_L (SW_RES(IMG_PAGE_NORMAL_L)) 100ff0525f2SOliver-Rainer Wittmann , mImgWide_L (SW_RES(IMG_PAGE_WIDE_L)) 101ff0525f2SOliver-Rainer Wittmann , mImgMirrored_L (SW_RES(IMG_PAGE_MIRRORED_L)) 102ff0525f2SOliver-Rainer Wittmann , mImgMarginCustom_L (SW_RES(IMG_PAGE_MARGIN_CUSTOM_L)) 103ff0525f2SOliver-Rainer Wittmann , mImgA3 (SW_RES(IMG_PAGE_A3)) 104ff0525f2SOliver-Rainer Wittmann , mImgA4 (SW_RES(IMG_PAGE_A4)) 105ff0525f2SOliver-Rainer Wittmann , mImgA5 (SW_RES(IMG_PAGE_A5)) 106ff0525f2SOliver-Rainer Wittmann , mImgB4 (SW_RES(IMG_PAGE_B4)) 107ff0525f2SOliver-Rainer Wittmann , mImgB5 (SW_RES(IMG_PAGE_B5)) 108ff0525f2SOliver-Rainer Wittmann , mImgC5 (SW_RES(IMG_PAGE_C5)) 109ff0525f2SOliver-Rainer Wittmann , mImgLetter (SW_RES(IMG_PAGE_LETTER)) 110ff0525f2SOliver-Rainer Wittmann , mImgLegal (SW_RES(IMG_PAGE_LEGAL)) 111ff0525f2SOliver-Rainer Wittmann , mImgSizeNone (SW_RES(IMG_PAGE_SIZE_NONE)) 112ff0525f2SOliver-Rainer Wittmann , mImgA3_L (SW_RES(IMG_PAGE_A3_L)) 113ff0525f2SOliver-Rainer Wittmann , mImgA4_L (SW_RES(IMG_PAGE_A4_L)) 114ff0525f2SOliver-Rainer Wittmann , mImgA5_L (SW_RES(IMG_PAGE_A5_L)) 115ff0525f2SOliver-Rainer Wittmann , mImgB4_L (SW_RES(IMG_PAGE_B4_L)) 116ff0525f2SOliver-Rainer Wittmann , mImgB5_L (SW_RES(IMG_PAGE_B5_L)) 117ff0525f2SOliver-Rainer Wittmann , mImgC5_L (SW_RES(IMG_PAGE_C5_L)) 118ff0525f2SOliver-Rainer Wittmann , mImgLetter_L (SW_RES(IMG_PAGE_LETTER_L)) 119ff0525f2SOliver-Rainer Wittmann , mImgLegal_L (SW_RES(IMG_PAGE_LEGAL_L)) 120ff0525f2SOliver-Rainer Wittmann , mImgSizeNone_L (SW_RES(IMG_PAGE_SIZE_NONE_L)) 121ff0525f2SOliver-Rainer Wittmann , mImgColumn1 (SW_RES(IMG_PAGE_COLUMN_1)) 122ff0525f2SOliver-Rainer Wittmann , mImgColumn2 (SW_RES(IMG_PAGE_COLUMN_2)) 123ff0525f2SOliver-Rainer Wittmann , mImgColumn3 (SW_RES(IMG_PAGE_COLUMN_3)) 124ff0525f2SOliver-Rainer Wittmann , mImgLeft (SW_RES(IMG_PAGE_COLUMN_LEFT)) 125ff0525f2SOliver-Rainer Wittmann , mImgRight (SW_RES(IMG_PAGE_COLUMN_RIGHT)) 126ff0525f2SOliver-Rainer Wittmann , mImgColumnNone (SW_RES(IMG_PAGE_COLUMN_NONE)) 127ff0525f2SOliver-Rainer Wittmann , mImgColumn1_L (SW_RES(IMG_PAGE_COLUMN_1_L)) 128ff0525f2SOliver-Rainer Wittmann , mImgColumn2_L (SW_RES(IMG_PAGE_COLUMN_2_L)) 129ff0525f2SOliver-Rainer Wittmann , mImgColumn3_L (SW_RES(IMG_PAGE_COLUMN_3_L)) 130ff0525f2SOliver-Rainer Wittmann , mImgLeft_L (SW_RES(IMG_PAGE_COLUMN_LEFT_L)) 131ff0525f2SOliver-Rainer Wittmann , mImgRight_L (SW_RES(IMG_PAGE_COLUMN_RIGHT_L)) 132ff0525f2SOliver-Rainer Wittmann , mImgColumnNone_L (SW_RES(IMG_PAGE_COLUMN_NONE_L)) 133ff0525f2SOliver-Rainer Wittmann 134ff0525f2SOliver-Rainer Wittmann , mpPageItem( new SvxPageItem(SID_ATTR_PAGE) ) 135*8a2dd8f0SOliver-Rainer Wittmann , mpPageLRMarginItem( new SvxLongLRSpaceItem( 0, 0, SID_ATTR_PAGE_LRSPACE ) ) 136*8a2dd8f0SOliver-Rainer Wittmann , mpPageULMarginItem( new SvxLongULSpaceItem( 0, 0, SID_ATTR_PAGE_ULSPACE ) ) 137ff0525f2SOliver-Rainer Wittmann , mpPageSizeItem( new SvxSizeItem(SID_ATTR_PAGE_SIZE) ) 138ff0525f2SOliver-Rainer Wittmann , mePaper( PAPER_USER ) 139*8a2dd8f0SOliver-Rainer Wittmann , mpPageColumnTypeItem( new SfxInt16Item(SID_ATTR_PAGE_COLUMN) ) 140ff0525f2SOliver-Rainer Wittmann 141ff0525f2SOliver-Rainer Wittmann , meFUnit() 142ff0525f2SOliver-Rainer Wittmann , meUnit() 143ff0525f2SOliver-Rainer Wittmann 144*8a2dd8f0SOliver-Rainer Wittmann , m_aSwPagePgULControl(SID_ATTR_PAGE_ULSPACE, *pBindings, *this) 145*8a2dd8f0SOliver-Rainer Wittmann , m_aSwPagePgLRControl(SID_ATTR_PAGE_LRSPACE, *pBindings, *this) 146*8a2dd8f0SOliver-Rainer Wittmann , m_aSwPagePgSizeControl(SID_ATTR_PAGE_SIZE, *pBindings, *this) 147*8a2dd8f0SOliver-Rainer Wittmann , m_aSwPagePgControl(SID_ATTR_PAGE, *pBindings, *this) 148*8a2dd8f0SOliver-Rainer Wittmann , m_aSwPageColControl(SID_ATTR_PAGE_COLUMN, *pBindings, *this) 149*8a2dd8f0SOliver-Rainer Wittmann , m_aSwPagePgMetricControl(SID_ATTR_METRIC, *pBindings, *this) 150ff0525f2SOliver-Rainer Wittmann 151ff0525f2SOliver-Rainer Wittmann , mpOrientationPopup() 152ff0525f2SOliver-Rainer Wittmann , mpMarginPopup() 153ff0525f2SOliver-Rainer Wittmann , mpSizePopup() 154ff0525f2SOliver-Rainer Wittmann , mpColumnPopup() 1557dc3d34dSOliver-Rainer Wittmann 1567dc3d34dSOliver-Rainer Wittmann , mbInvalidateSIDAttrPageOnSIDAttrPageSizeNotify( false ) 157ff0525f2SOliver-Rainer Wittmann { 158ff0525f2SOliver-Rainer Wittmann Initialize(); 1597dc3d34dSOliver-Rainer Wittmann mbInvalidateSIDAttrPageOnSIDAttrPageSizeNotify = true; 160ff0525f2SOliver-Rainer Wittmann FreeResource(); 161ff0525f2SOliver-Rainer Wittmann } 162ff0525f2SOliver-Rainer Wittmann 163ff0525f2SOliver-Rainer Wittmann PagePropertyPanel::~PagePropertyPanel() 164ff0525f2SOliver-Rainer Wittmann { 165ff0525f2SOliver-Rainer Wittmann delete[] maImgSize; 166ff0525f2SOliver-Rainer Wittmann delete[] maImgSize_L; 167ff0525f2SOliver-Rainer Wittmann 168ff0525f2SOliver-Rainer Wittmann // destroy the toolbox windows. 169ff0525f2SOliver-Rainer Wittmann mpToolBoxOrientation.reset(); 170ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin.reset(); 171ff0525f2SOliver-Rainer Wittmann mpToolBoxSize.reset(); 172ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn.reset(); 173ff0525f2SOliver-Rainer Wittmann 174ff0525f2SOliver-Rainer Wittmann // destroy the background windows of the toolboxes. 175ff0525f2SOliver-Rainer Wittmann mpToolBoxOrientationBackground.reset(); 176ff0525f2SOliver-Rainer Wittmann mpToolBoxMarginBackground.reset(); 177ff0525f2SOliver-Rainer Wittmann mpToolBoxSizeBackground.reset(); 178ff0525f2SOliver-Rainer Wittmann mpToolBoxColumnBackground.reset(); 179ff0525f2SOliver-Rainer Wittmann } 180ff0525f2SOliver-Rainer Wittmann 181ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::Initialize() 182ff0525f2SOliver-Rainer Wittmann { 183ff0525f2SOliver-Rainer Wittmann // popup for page orientation 184ff0525f2SOliver-Rainer Wittmann Link aLink = LINK( this, PagePropertyPanel, ClickOrientationHdl ); 185ff0525f2SOliver-Rainer Wittmann mpToolBoxOrientation->SetDropdownClickHdl( aLink ); 186ff0525f2SOliver-Rainer Wittmann mpToolBoxOrientation->SetSelectHdl( aLink ); 187ff0525f2SOliver-Rainer Wittmann mpToolBoxOrientation->SetItemImage( TBI_ORIENTATION, mImgPortrait); 188ff0525f2SOliver-Rainer Wittmann mpToolBoxOrientation->SetItemBits( TBI_ORIENTATION, mpToolBoxOrientation->GetItemBits( TBI_ORIENTATION ) | TIB_DROPDOWNONLY ); 189ff0525f2SOliver-Rainer Wittmann mpToolBoxOrientation->SetQuickHelpText(TBI_ORIENTATION,String(SW_RES(STR_QHELP_TB_ORIENTATION))); 190ff0525f2SOliver-Rainer Wittmann mpToolBoxOrientation->SetOutputSizePixel( mpToolBoxOrientation->CalcWindowSizePixel() ); 191ff0525f2SOliver-Rainer Wittmann mpToolBoxOrientation->SetBackground( Wallpaper() ); 192ff0525f2SOliver-Rainer Wittmann mpToolBoxOrientation->SetPaintTransparent( sal_True ); 193ff0525f2SOliver-Rainer Wittmann 194ff0525f2SOliver-Rainer Wittmann // popup for page margins 195ff0525f2SOliver-Rainer Wittmann aLink = LINK( this, PagePropertyPanel, ClickMarginHdl ); 196ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetDropdownClickHdl( aLink ); 197ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetSelectHdl( aLink ); 198ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetItemImage(TBI_MARGIN, mImgNormal); 199ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetItemBits( TBI_MARGIN, mpToolBoxMargin->GetItemBits( TBI_MARGIN ) | TIB_DROPDOWNONLY ); 200ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetQuickHelpText(TBI_MARGIN,String(SW_RES(STR_QHELP_TB_MARGIN))); 201ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetOutputSizePixel( mpToolBoxMargin->CalcWindowSizePixel() ); 202ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetBackground(Wallpaper()); 203ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetPaintTransparent( sal_True ); 204ff0525f2SOliver-Rainer Wittmann 205ff0525f2SOliver-Rainer Wittmann // popup for page size 206ff0525f2SOliver-Rainer Wittmann aLink = LINK( this, PagePropertyPanel, ClickSizeHdl ); 207ff0525f2SOliver-Rainer Wittmann mpToolBoxSize->SetDropdownClickHdl( aLink ); 208ff0525f2SOliver-Rainer Wittmann mpToolBoxSize->SetSelectHdl( aLink ); 209ff0525f2SOliver-Rainer Wittmann mpToolBoxSize->SetItemImage(TBI_SIZE, mImgLetter); 210ff0525f2SOliver-Rainer Wittmann mpToolBoxSize->SetItemBits( TBI_SIZE, mpToolBoxSize->GetItemBits( TBI_SIZE ) | TIB_DROPDOWNONLY ); 211ff0525f2SOliver-Rainer Wittmann mpToolBoxSize->SetQuickHelpText(TBI_SIZE,String(SW_RES(STR_QHELP_TB_SIZE))); 212ff0525f2SOliver-Rainer Wittmann mpToolBoxSize->SetOutputSizePixel( mpToolBoxSize->CalcWindowSizePixel() ); 213ff0525f2SOliver-Rainer Wittmann mpToolBoxSize->SetBackground(Wallpaper()); 214ff0525f2SOliver-Rainer Wittmann mpToolBoxSize->SetPaintTransparent( sal_True ); 215ff0525f2SOliver-Rainer Wittmann maImgSize = new Image[8]; 216ff0525f2SOliver-Rainer Wittmann maImgSize[0] = mImgA3; 217ff0525f2SOliver-Rainer Wittmann maImgSize[1] = mImgA4; 218ff0525f2SOliver-Rainer Wittmann maImgSize[2] = mImgA5; 219ff0525f2SOliver-Rainer Wittmann maImgSize[3] = mImgB4; 220ff0525f2SOliver-Rainer Wittmann maImgSize[4] = mImgB5; 221ff0525f2SOliver-Rainer Wittmann maImgSize[5] = mImgC5; 222ff0525f2SOliver-Rainer Wittmann maImgSize[6] = mImgLetter; 223ff0525f2SOliver-Rainer Wittmann maImgSize[7] = mImgLegal; 224ff0525f2SOliver-Rainer Wittmann maImgSize_L = new Image[8]; 225ff0525f2SOliver-Rainer Wittmann maImgSize_L[0] = mImgA3_L; 226ff0525f2SOliver-Rainer Wittmann maImgSize_L[1] = mImgA4_L; 227ff0525f2SOliver-Rainer Wittmann maImgSize_L[2] = mImgA5_L; 228ff0525f2SOliver-Rainer Wittmann maImgSize_L[3] = mImgB4_L; 229ff0525f2SOliver-Rainer Wittmann maImgSize_L[4] = mImgB5_L; 230ff0525f2SOliver-Rainer Wittmann maImgSize_L[5] = mImgC5_L; 231ff0525f2SOliver-Rainer Wittmann maImgSize_L[6] = mImgLetter_L; 232ff0525f2SOliver-Rainer Wittmann maImgSize_L[7] = mImgLegal_L; 233ff0525f2SOliver-Rainer Wittmann 234ff0525f2SOliver-Rainer Wittmann // popup for page column property 235ff0525f2SOliver-Rainer Wittmann aLink = LINK( this, PagePropertyPanel, ClickColumnHdl ); 236ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetDropdownClickHdl( aLink ); 237ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetSelectHdl( aLink ); 238ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn1); 239ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemBits( TBI_COLUMN, mpToolBoxColumn->GetItemBits( TBI_COLUMN ) | TIB_DROPDOWNONLY ); 240ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetQuickHelpText(TBI_COLUMN,String(SW_RES(STR_QHELP_TB_COLUMN))); 241ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetOutputSizePixel( mpToolBoxColumn->CalcWindowSizePixel() ); 242ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetBackground(Wallpaper()); 243ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetPaintTransparent( sal_True ); 244ff0525f2SOliver-Rainer Wittmann 245ff0525f2SOliver-Rainer Wittmann meFUnit = GetModuleFieldUnit(); 246ff0525f2SOliver-Rainer Wittmann meUnit = m_aSwPagePgSizeControl.GetCoreMetric(); 247ff0525f2SOliver-Rainer Wittmann 248ff0525f2SOliver-Rainer Wittmann // 'pull' for page style's attribute values 249*8a2dd8f0SOliver-Rainer Wittmann mpBindings->Update( SID_ATTR_PAGE_LRSPACE ); 250*8a2dd8f0SOliver-Rainer Wittmann mpBindings->Update( SID_ATTR_PAGE_ULSPACE ); 251ff0525f2SOliver-Rainer Wittmann mpBindings->Update( SID_ATTR_PAGE ); 252ff0525f2SOliver-Rainer Wittmann mpBindings->Update( SID_ATTR_PAGE_SIZE ); 253ff0525f2SOliver-Rainer Wittmann } 254ff0525f2SOliver-Rainer Wittmann 255ff0525f2SOliver-Rainer Wittmann 256ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::DataChanged( const DataChangedEvent& rEvent ) 257ff0525f2SOliver-Rainer Wittmann { 258ff0525f2SOliver-Rainer Wittmann // currently nothing special to do 259ff0525f2SOliver-Rainer Wittmann 260ff0525f2SOliver-Rainer Wittmann // forward to base class 261ff0525f2SOliver-Rainer Wittmann Control::DataChanged( rEvent ); 262ff0525f2SOliver-Rainer Wittmann } 263ff0525f2SOliver-Rainer Wittmann 264ff0525f2SOliver-Rainer Wittmann 265ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::HandleContextChange( const ::sfx2::sidebar::EnumContext aContext) 266ff0525f2SOliver-Rainer Wittmann { 267ff0525f2SOliver-Rainer Wittmann if (maContext == aContext) 268ff0525f2SOliver-Rainer Wittmann { 269ff0525f2SOliver-Rainer Wittmann // nothing to do. 270ff0525f2SOliver-Rainer Wittmann return; 271ff0525f2SOliver-Rainer Wittmann } 272ff0525f2SOliver-Rainer Wittmann 273ff0525f2SOliver-Rainer Wittmann maContext = aContext; 274ff0525f2SOliver-Rainer Wittmann 275ff0525f2SOliver-Rainer Wittmann // TODO: reactions on certain context switches 276ff0525f2SOliver-Rainer Wittmann } 277ff0525f2SOliver-Rainer Wittmann 278ff0525f2SOliver-Rainer Wittmann 279ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ShowPageStyleFormatDialog( void ) 280ff0525f2SOliver-Rainer Wittmann { 281ff0525f2SOliver-Rainer Wittmann mpBindings->GetDispatcher()->Execute( FN_FORMAT_PAGE_DLG, SFX_CALLMODE_ASYNCHRON ); 282ff0525f2SOliver-Rainer Wittmann } 283ff0525f2SOliver-Rainer Wittmann 284ff0525f2SOliver-Rainer Wittmann 285ff0525f2SOliver-Rainer Wittmann 286ff0525f2SOliver-Rainer Wittmann 287ff0525f2SOliver-Rainer Wittmann ::svx::sidebar::PopupControl* PagePropertyPanel::CreatePageOrientationControl( ::svx::sidebar::PopupContainer* pParent ) 288ff0525f2SOliver-Rainer Wittmann { 289ff0525f2SOliver-Rainer Wittmann return new PageOrientationControl( pParent, *this , mpPageItem->IsLandscape() ); 290ff0525f2SOliver-Rainer Wittmann } 291ff0525f2SOliver-Rainer Wittmann 292ff0525f2SOliver-Rainer Wittmann 293ff0525f2SOliver-Rainer Wittmann IMPL_LINK( PagePropertyPanel, ClickOrientationHdl, ToolBox*, pToolBox ) 294ff0525f2SOliver-Rainer Wittmann { 295ff0525f2SOliver-Rainer Wittmann mpOrientationPopup.reset( 296ff0525f2SOliver-Rainer Wittmann new ::svx::sidebar::Popup( 297ff0525f2SOliver-Rainer Wittmann this, 298ff0525f2SOliver-Rainer Wittmann ::boost::bind(&PagePropertyPanel::CreatePageOrientationControl, this, _1), 299ff0525f2SOliver-Rainer Wittmann ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Page orientation")) ) ); 300ff0525f2SOliver-Rainer Wittmann mpOrientationPopup->Show( *pToolBox ); 301ff0525f2SOliver-Rainer Wittmann 302ff0525f2SOliver-Rainer Wittmann return 0L; 303ff0525f2SOliver-Rainer Wittmann } 304ff0525f2SOliver-Rainer Wittmann 305ff0525f2SOliver-Rainer Wittmann 306ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ExecuteOrientationChange( const sal_Bool bLandscape ) 307ff0525f2SOliver-Rainer Wittmann { 308ff0525f2SOliver-Rainer Wittmann { 309ff0525f2SOliver-Rainer Wittmann // set new page orientation 310ff0525f2SOliver-Rainer Wittmann mpPageItem->SetLandscape( bLandscape ); 311ff0525f2SOliver-Rainer Wittmann 312ff0525f2SOliver-Rainer Wittmann // swap the width and height of the page size 313ff0525f2SOliver-Rainer Wittmann mpPageSizeItem->SetSize( Size( mpPageSizeItem->GetSize().Height(), mpPageSizeItem->GetSize().Width() ) ); 314ff0525f2SOliver-Rainer Wittmann 315ff0525f2SOliver-Rainer Wittmann // apply changed attributes 316ff0525f2SOliver-Rainer Wittmann GetBindings()->GetDispatcher()->Execute( SID_ATTR_PAGE_SIZE, SFX_CALLMODE_RECORD, mpPageSizeItem.get(), mpPageItem.get(), 0L ); 317ff0525f2SOliver-Rainer Wittmann } 318ff0525f2SOliver-Rainer Wittmann 319ff0525f2SOliver-Rainer Wittmann // check, if margin values still fit to the changed page size. 320ff0525f2SOliver-Rainer Wittmann // if not, adjust margin values 321ff0525f2SOliver-Rainer Wittmann { 322ff0525f2SOliver-Rainer Wittmann const long nML = mpPageLRMarginItem->GetLeft(); 323ff0525f2SOliver-Rainer Wittmann const long nMR = mpPageLRMarginItem->GetRight(); 324ff0525f2SOliver-Rainer Wittmann const long nTmpPW = nML + nMR + MINBODY; 325ff0525f2SOliver-Rainer Wittmann 326ff0525f2SOliver-Rainer Wittmann const long nPW = mpPageSizeItem->GetSize().Width(); 327ff0525f2SOliver-Rainer Wittmann 328ff0525f2SOliver-Rainer Wittmann if ( nTmpPW > nPW ) 329ff0525f2SOliver-Rainer Wittmann { 330ff0525f2SOliver-Rainer Wittmann if ( nML <= nMR ) 331ff0525f2SOliver-Rainer Wittmann { 332ff0525f2SOliver-Rainer Wittmann ExecuteMarginLRChange( mpPageLRMarginItem->GetLeft(), nMR - (nTmpPW - nPW ) ); 333ff0525f2SOliver-Rainer Wittmann } 334ff0525f2SOliver-Rainer Wittmann else 335ff0525f2SOliver-Rainer Wittmann { 336ff0525f2SOliver-Rainer Wittmann ExecuteMarginLRChange( nML - (nTmpPW - nPW ), mpPageLRMarginItem->GetRight() ); 337ff0525f2SOliver-Rainer Wittmann } 338ff0525f2SOliver-Rainer Wittmann } 339ff0525f2SOliver-Rainer Wittmann 340ff0525f2SOliver-Rainer Wittmann const long nMT = mpPageULMarginItem->GetUpper(); 341ff0525f2SOliver-Rainer Wittmann const long nMB = mpPageULMarginItem->GetLower(); 342ff0525f2SOliver-Rainer Wittmann const long nTmpPH = nMT + nMB + MINBODY; 343ff0525f2SOliver-Rainer Wittmann 344ff0525f2SOliver-Rainer Wittmann const long nPH = mpPageSizeItem->GetSize().Height(); 345ff0525f2SOliver-Rainer Wittmann 346ff0525f2SOliver-Rainer Wittmann if ( nTmpPH > nPH ) 347ff0525f2SOliver-Rainer Wittmann { 348ff0525f2SOliver-Rainer Wittmann if ( nMT <= nMB ) 349ff0525f2SOliver-Rainer Wittmann { 350ff0525f2SOliver-Rainer Wittmann ExecuteMarginULChange( mpPageULMarginItem->GetUpper(), nMB - ( nTmpPH - nPH ) ); 351ff0525f2SOliver-Rainer Wittmann } 352ff0525f2SOliver-Rainer Wittmann else 353ff0525f2SOliver-Rainer Wittmann { 354ff0525f2SOliver-Rainer Wittmann ExecuteMarginULChange( nMT - ( nTmpPH - nPH ), mpPageULMarginItem->GetLower() ); 355ff0525f2SOliver-Rainer Wittmann } 356ff0525f2SOliver-Rainer Wittmann } 357ff0525f2SOliver-Rainer Wittmann } 358ff0525f2SOliver-Rainer Wittmann } 359ff0525f2SOliver-Rainer Wittmann 360ff0525f2SOliver-Rainer Wittmann 361ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ClosePageOrientationPopup() 362ff0525f2SOliver-Rainer Wittmann { 363ff0525f2SOliver-Rainer Wittmann mpOrientationPopup->Hide(); 364ff0525f2SOliver-Rainer Wittmann } 365ff0525f2SOliver-Rainer Wittmann 366ff0525f2SOliver-Rainer Wittmann 367ff0525f2SOliver-Rainer Wittmann 368ff0525f2SOliver-Rainer Wittmann 369ff0525f2SOliver-Rainer Wittmann ::svx::sidebar::PopupControl* PagePropertyPanel::CreatePageMarginControl( ::svx::sidebar::PopupContainer* pParent ) 370ff0525f2SOliver-Rainer Wittmann { 371ff0525f2SOliver-Rainer Wittmann return new PageMarginControl( 372ff0525f2SOliver-Rainer Wittmann pParent, 373ff0525f2SOliver-Rainer Wittmann *this, 374ff0525f2SOliver-Rainer Wittmann *mpPageLRMarginItem.get(), 375ff0525f2SOliver-Rainer Wittmann *mpPageULMarginItem.get(), 376ff0525f2SOliver-Rainer Wittmann mpPageItem->GetPageUsage() == SVX_PAGE_MIRROR, 377ff0525f2SOliver-Rainer Wittmann mpPageSizeItem->GetSize(), 378ff0525f2SOliver-Rainer Wittmann mpPageItem->IsLandscape(), 379ff0525f2SOliver-Rainer Wittmann meFUnit, 380ff0525f2SOliver-Rainer Wittmann meUnit ); 381ff0525f2SOliver-Rainer Wittmann } 382ff0525f2SOliver-Rainer Wittmann 383ff0525f2SOliver-Rainer Wittmann 384ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ExecuteMarginLRChange( 385ff0525f2SOliver-Rainer Wittmann const long nPageLeftMargin, 386ff0525f2SOliver-Rainer Wittmann const long nPageRightMargin ) 387ff0525f2SOliver-Rainer Wittmann { 388ff0525f2SOliver-Rainer Wittmann mpPageLRMarginItem->SetLeft( nPageLeftMargin ); 389ff0525f2SOliver-Rainer Wittmann mpPageLRMarginItem->SetRight( nPageRightMargin ); 390*8a2dd8f0SOliver-Rainer Wittmann GetBindings()->GetDispatcher()->Execute( SID_ATTR_PAGE_LRSPACE, SFX_CALLMODE_RECORD, mpPageLRMarginItem.get(), 0L ); 391ff0525f2SOliver-Rainer Wittmann } 392ff0525f2SOliver-Rainer Wittmann 393ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ExecuteMarginULChange( 394ff0525f2SOliver-Rainer Wittmann const long nPageTopMargin, 395ff0525f2SOliver-Rainer Wittmann const long nPageBottomMargin ) 396ff0525f2SOliver-Rainer Wittmann { 397ff0525f2SOliver-Rainer Wittmann mpPageULMarginItem->SetUpper( nPageTopMargin ); 398ff0525f2SOliver-Rainer Wittmann mpPageULMarginItem->SetLower( nPageBottomMargin ); 399*8a2dd8f0SOliver-Rainer Wittmann GetBindings()->GetDispatcher()->Execute( SID_ATTR_PAGE_ULSPACE, SFX_CALLMODE_RECORD, mpPageULMarginItem.get(), 0L ); 400ff0525f2SOliver-Rainer Wittmann } 401ff0525f2SOliver-Rainer Wittmann 402ff0525f2SOliver-Rainer Wittmann 403ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ExecutePageLayoutChange( const bool bMirrored ) 404ff0525f2SOliver-Rainer Wittmann { 405ff0525f2SOliver-Rainer Wittmann mpPageItem->SetPageUsage( bMirrored ? SVX_PAGE_MIRROR : SVX_PAGE_ALL ); 406ff0525f2SOliver-Rainer Wittmann GetBindings()->GetDispatcher()->Execute( SID_ATTR_PAGE, SFX_CALLMODE_RECORD, mpPageItem.get(), 0L ); 407ff0525f2SOliver-Rainer Wittmann } 408ff0525f2SOliver-Rainer Wittmann 409ff0525f2SOliver-Rainer Wittmann 410ff0525f2SOliver-Rainer Wittmann IMPL_LINK( PagePropertyPanel, ClickMarginHdl, ToolBox*, pToolBox ) 411ff0525f2SOliver-Rainer Wittmann { 412ff0525f2SOliver-Rainer Wittmann mpMarginPopup.reset( 413ff0525f2SOliver-Rainer Wittmann new ::svx::sidebar::Popup( 414ff0525f2SOliver-Rainer Wittmann this, 415ff0525f2SOliver-Rainer Wittmann ::boost::bind(&PagePropertyPanel::CreatePageMarginControl, this, _1), 416ff0525f2SOliver-Rainer Wittmann ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Page margins")) ) ); 417ff0525f2SOliver-Rainer Wittmann mpMarginPopup->Show( *pToolBox ); 418ff0525f2SOliver-Rainer Wittmann 419ff0525f2SOliver-Rainer Wittmann return 0L; 420ff0525f2SOliver-Rainer Wittmann } 421ff0525f2SOliver-Rainer Wittmann 422ff0525f2SOliver-Rainer Wittmann 423ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ClosePageMarginPopup() 424ff0525f2SOliver-Rainer Wittmann { 425ff0525f2SOliver-Rainer Wittmann mpMarginPopup->Hide(); 426ff0525f2SOliver-Rainer Wittmann } 427ff0525f2SOliver-Rainer Wittmann 428ff0525f2SOliver-Rainer Wittmann 429ff0525f2SOliver-Rainer Wittmann 430ff0525f2SOliver-Rainer Wittmann 431ff0525f2SOliver-Rainer Wittmann ::svx::sidebar::PopupControl* PagePropertyPanel::CreatePageSizeControl( ::svx::sidebar::PopupContainer* pParent ) 432ff0525f2SOliver-Rainer Wittmann { 433ff0525f2SOliver-Rainer Wittmann return new PageSizeControl( 434ff0525f2SOliver-Rainer Wittmann pParent, 435ff0525f2SOliver-Rainer Wittmann *this, 436ff0525f2SOliver-Rainer Wittmann mePaper, 437ff0525f2SOliver-Rainer Wittmann mpPageItem->IsLandscape(), 438ff0525f2SOliver-Rainer Wittmann meFUnit ); 439ff0525f2SOliver-Rainer Wittmann } 440ff0525f2SOliver-Rainer Wittmann 441ff0525f2SOliver-Rainer Wittmann 442ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ExecuteSizeChange( const Paper ePaper ) 443ff0525f2SOliver-Rainer Wittmann { 444ff0525f2SOliver-Rainer Wittmann Size aPageSize = SvxPaperInfo::GetPaperSize( ePaper, (MapUnit)(meUnit) ); 445ff0525f2SOliver-Rainer Wittmann if ( mpPageItem->IsLandscape() ) 446ff0525f2SOliver-Rainer Wittmann { 447ff0525f2SOliver-Rainer Wittmann Swap( aPageSize ); 448ff0525f2SOliver-Rainer Wittmann } 449ff0525f2SOliver-Rainer Wittmann mpPageSizeItem->SetSize( aPageSize ); 450ff0525f2SOliver-Rainer Wittmann 451ff0525f2SOliver-Rainer Wittmann mpBindings->GetDispatcher()->Execute(SID_ATTR_PAGE_SIZE, SFX_CALLMODE_RECORD, mpPageSizeItem.get(), 0L ); 452ff0525f2SOliver-Rainer Wittmann } 453ff0525f2SOliver-Rainer Wittmann 454ff0525f2SOliver-Rainer Wittmann 455ff0525f2SOliver-Rainer Wittmann IMPL_LINK( PagePropertyPanel, ClickSizeHdl, ToolBox*, pToolBox ) 456ff0525f2SOliver-Rainer Wittmann { 457ff0525f2SOliver-Rainer Wittmann mpSizePopup.reset( 458ff0525f2SOliver-Rainer Wittmann new ::svx::sidebar::Popup( 459ff0525f2SOliver-Rainer Wittmann this, 460ff0525f2SOliver-Rainer Wittmann ::boost::bind(&PagePropertyPanel::CreatePageSizeControl, this, _1), 461ff0525f2SOliver-Rainer Wittmann ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Page size")) ) ); 462ff0525f2SOliver-Rainer Wittmann mpSizePopup->Show( *pToolBox ); 463ff0525f2SOliver-Rainer Wittmann 464ff0525f2SOliver-Rainer Wittmann return 0L; 465ff0525f2SOliver-Rainer Wittmann } 466ff0525f2SOliver-Rainer Wittmann 467ff0525f2SOliver-Rainer Wittmann 468ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ClosePageSizePopup() 469ff0525f2SOliver-Rainer Wittmann { 470ff0525f2SOliver-Rainer Wittmann mpSizePopup->Hide(); 471ff0525f2SOliver-Rainer Wittmann } 472ff0525f2SOliver-Rainer Wittmann 473ff0525f2SOliver-Rainer Wittmann 474ff0525f2SOliver-Rainer Wittmann 475ff0525f2SOliver-Rainer Wittmann 476ff0525f2SOliver-Rainer Wittmann ::svx::sidebar::PopupControl* PagePropertyPanel::CreatePageColumnControl( ::svx::sidebar::PopupContainer* pParent ) 477ff0525f2SOliver-Rainer Wittmann { 478ff0525f2SOliver-Rainer Wittmann return new PageColumnControl( 479ff0525f2SOliver-Rainer Wittmann pParent, 480ff0525f2SOliver-Rainer Wittmann *this, 481ff0525f2SOliver-Rainer Wittmann mpPageColumnTypeItem->GetValue(), 482ff0525f2SOliver-Rainer Wittmann mpPageItem->IsLandscape() ); 483ff0525f2SOliver-Rainer Wittmann } 484ff0525f2SOliver-Rainer Wittmann 485ff0525f2SOliver-Rainer Wittmann 486ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ExecuteColumnChange( const sal_uInt16 nColumnType ) 487ff0525f2SOliver-Rainer Wittmann { 488ff0525f2SOliver-Rainer Wittmann mpPageColumnTypeItem->SetValue( nColumnType ); 489*8a2dd8f0SOliver-Rainer Wittmann mpBindings->GetDispatcher()->Execute(SID_ATTR_PAGE_COLUMN, SFX_CALLMODE_RECORD, mpPageColumnTypeItem.get(), 0L ); 490ff0525f2SOliver-Rainer Wittmann } 491ff0525f2SOliver-Rainer Wittmann 492ff0525f2SOliver-Rainer Wittmann 493ff0525f2SOliver-Rainer Wittmann IMPL_LINK( PagePropertyPanel, ClickColumnHdl, ToolBox*, pToolBox ) 494ff0525f2SOliver-Rainer Wittmann { 495ff0525f2SOliver-Rainer Wittmann mpColumnPopup.reset( 496ff0525f2SOliver-Rainer Wittmann new ::svx::sidebar::Popup( 497ff0525f2SOliver-Rainer Wittmann this, 498ff0525f2SOliver-Rainer Wittmann ::boost::bind(&PagePropertyPanel::CreatePageColumnControl, this, _1), 499ff0525f2SOliver-Rainer Wittmann ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Page columns")) ) ); 500ff0525f2SOliver-Rainer Wittmann mpColumnPopup->Show( *pToolBox ); 501ff0525f2SOliver-Rainer Wittmann 502ff0525f2SOliver-Rainer Wittmann return 0L; 503ff0525f2SOliver-Rainer Wittmann } 504ff0525f2SOliver-Rainer Wittmann 505ff0525f2SOliver-Rainer Wittmann 506ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ClosePageColumnPopup() 507ff0525f2SOliver-Rainer Wittmann { 508ff0525f2SOliver-Rainer Wittmann mpColumnPopup->Hide(); 509ff0525f2SOliver-Rainer Wittmann } 510ff0525f2SOliver-Rainer Wittmann 511ff0525f2SOliver-Rainer Wittmann 512ff0525f2SOliver-Rainer Wittmann 513ff0525f2SOliver-Rainer Wittmann 514ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::NotifyItemUpdate( 515ff0525f2SOliver-Rainer Wittmann const sal_uInt16 nSId, 516ff0525f2SOliver-Rainer Wittmann const SfxItemState eState, 517ff0525f2SOliver-Rainer Wittmann const SfxPoolItem* pState) 518ff0525f2SOliver-Rainer Wittmann { 519ff0525f2SOliver-Rainer Wittmann switch( nSId ) 520ff0525f2SOliver-Rainer Wittmann { 521*8a2dd8f0SOliver-Rainer Wittmann case SID_ATTR_PAGE_COLUMN: 522ff0525f2SOliver-Rainer Wittmann { 523ff0525f2SOliver-Rainer Wittmann if ( eState >= SFX_ITEM_AVAILABLE && 524ff0525f2SOliver-Rainer Wittmann pState && pState->ISA(SfxInt16Item) ) 525ff0525f2SOliver-Rainer Wittmann { 526ff0525f2SOliver-Rainer Wittmann mpPageColumnTypeItem.reset( static_cast<SfxInt16Item*>(pState->Clone()) ); 527ff0525f2SOliver-Rainer Wittmann ChangeColumnImage( mpPageColumnTypeItem->GetValue() ); 528ff0525f2SOliver-Rainer Wittmann } 529ff0525f2SOliver-Rainer Wittmann } 530ff0525f2SOliver-Rainer Wittmann break; 531*8a2dd8f0SOliver-Rainer Wittmann case SID_ATTR_PAGE_LRSPACE: 532ff0525f2SOliver-Rainer Wittmann if ( eState >= SFX_ITEM_AVAILABLE && 533ff0525f2SOliver-Rainer Wittmann pState && pState->ISA(SvxLongLRSpaceItem) ) 534ff0525f2SOliver-Rainer Wittmann { 535ff0525f2SOliver-Rainer Wittmann mpPageLRMarginItem.reset( static_cast<SvxLongLRSpaceItem*>(pState->Clone()) ); 536ff0525f2SOliver-Rainer Wittmann ChangeMarginImage(); 537ff0525f2SOliver-Rainer Wittmann } 538ff0525f2SOliver-Rainer Wittmann break; 539ff0525f2SOliver-Rainer Wittmann 540*8a2dd8f0SOliver-Rainer Wittmann case SID_ATTR_PAGE_ULSPACE: 541ff0525f2SOliver-Rainer Wittmann if ( eState >= SFX_ITEM_AVAILABLE && 542ff0525f2SOliver-Rainer Wittmann pState && pState->ISA(SvxLongULSpaceItem) ) 543ff0525f2SOliver-Rainer Wittmann { 544ff0525f2SOliver-Rainer Wittmann mpPageULMarginItem.reset( static_cast<SvxLongULSpaceItem*>(pState->Clone()) ); 545ff0525f2SOliver-Rainer Wittmann ChangeMarginImage(); 546ff0525f2SOliver-Rainer Wittmann } 547ff0525f2SOliver-Rainer Wittmann break; 548ff0525f2SOliver-Rainer Wittmann 549ff0525f2SOliver-Rainer Wittmann case SID_ATTR_PAGE: 550ff0525f2SOliver-Rainer Wittmann if ( eState >= SFX_ITEM_AVAILABLE && 551ff0525f2SOliver-Rainer Wittmann pState && pState->ISA(SvxPageItem) ) 552ff0525f2SOliver-Rainer Wittmann { 553ff0525f2SOliver-Rainer Wittmann mpPageItem.reset( static_cast<SvxPageItem*>(pState->Clone()) ); 554ff0525f2SOliver-Rainer Wittmann if ( mpPageItem->IsLandscape() ) 555ff0525f2SOliver-Rainer Wittmann { 556ff0525f2SOliver-Rainer Wittmann mpToolBoxOrientation->SetItemImage(TBI_ORIENTATION, mImgLandscape); 557ff0525f2SOliver-Rainer Wittmann } 558ff0525f2SOliver-Rainer Wittmann else 559ff0525f2SOliver-Rainer Wittmann { 560ff0525f2SOliver-Rainer Wittmann mpToolBoxOrientation->SetItemImage(TBI_ORIENTATION, mImgPortrait); 561ff0525f2SOliver-Rainer Wittmann } 562ff0525f2SOliver-Rainer Wittmann ChangeMarginImage(); 563ff0525f2SOliver-Rainer Wittmann ChangeSizeImage(); 564ff0525f2SOliver-Rainer Wittmann ChangeColumnImage( mpPageColumnTypeItem->GetValue() ); 565ff0525f2SOliver-Rainer Wittmann } 566ff0525f2SOliver-Rainer Wittmann break; 567ff0525f2SOliver-Rainer Wittmann 568ff0525f2SOliver-Rainer Wittmann case SID_ATTR_PAGE_SIZE: 5697dc3d34dSOliver-Rainer Wittmann if ( mbInvalidateSIDAttrPageOnSIDAttrPageSizeNotify ) 5707dc3d34dSOliver-Rainer Wittmann { 5717dc3d34dSOliver-Rainer Wittmann mpBindings->Invalidate( SID_ATTR_PAGE, sal_True, sal_False ); 5727dc3d34dSOliver-Rainer Wittmann } 573ff0525f2SOliver-Rainer Wittmann if ( eState >= SFX_ITEM_AVAILABLE && 574ff0525f2SOliver-Rainer Wittmann pState && pState->ISA(SvxSizeItem) ) 575ff0525f2SOliver-Rainer Wittmann { 576ff0525f2SOliver-Rainer Wittmann mpPageSizeItem.reset( static_cast<SvxSizeItem*>(pState->Clone()) ); 577ff0525f2SOliver-Rainer Wittmann ChangeSizeImage(); 578ff0525f2SOliver-Rainer Wittmann } 579ff0525f2SOliver-Rainer Wittmann break; 580ff0525f2SOliver-Rainer Wittmann case SID_ATTR_METRIC: 581ff0525f2SOliver-Rainer Wittmann MetricState( eState, pState ); 582ff0525f2SOliver-Rainer Wittmann break; 583ff0525f2SOliver-Rainer Wittmann } 584ff0525f2SOliver-Rainer Wittmann } 585ff0525f2SOliver-Rainer Wittmann 586ff0525f2SOliver-Rainer Wittmann 587ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::MetricState( SfxItemState eState, const SfxPoolItem* pState ) 588ff0525f2SOliver-Rainer Wittmann { 589ff0525f2SOliver-Rainer Wittmann meFUnit = FUNIT_NONE; 590ff0525f2SOliver-Rainer Wittmann if ( pState && eState >= SFX_ITEM_DEFAULT ) 591ff0525f2SOliver-Rainer Wittmann { 592ff0525f2SOliver-Rainer Wittmann meFUnit = (FieldUnit)( (const SfxUInt16Item*)pState )->GetValue(); 593ff0525f2SOliver-Rainer Wittmann } 594ff0525f2SOliver-Rainer Wittmann else 595ff0525f2SOliver-Rainer Wittmann { 596ff0525f2SOliver-Rainer Wittmann SfxViewFrame* pFrame = SfxViewFrame::Current(); 597ff0525f2SOliver-Rainer Wittmann SfxObjectShell* pSh = NULL; 598ff0525f2SOliver-Rainer Wittmann if ( pFrame ) 599ff0525f2SOliver-Rainer Wittmann pSh = pFrame->GetObjectShell(); 600ff0525f2SOliver-Rainer Wittmann if ( pSh ) 601ff0525f2SOliver-Rainer Wittmann { 602ff0525f2SOliver-Rainer Wittmann SfxModule* pModule = pSh->GetModule(); 603ff0525f2SOliver-Rainer Wittmann if ( pModule ) 604ff0525f2SOliver-Rainer Wittmann { 605ff0525f2SOliver-Rainer Wittmann const SfxPoolItem* pItem = pModule->GetItem( SID_ATTR_METRIC ); 606ff0525f2SOliver-Rainer Wittmann if ( pItem ) 607ff0525f2SOliver-Rainer Wittmann meFUnit = (FieldUnit)( (SfxUInt16Item*)pItem )->GetValue(); 608ff0525f2SOliver-Rainer Wittmann } 609ff0525f2SOliver-Rainer Wittmann else 610ff0525f2SOliver-Rainer Wittmann { 611ff0525f2SOliver-Rainer Wittmann DBG_ERRORFILE( "<PagePropertyPanel::MetricState(..)>: no module found" ); 612ff0525f2SOliver-Rainer Wittmann } 613ff0525f2SOliver-Rainer Wittmann } 614ff0525f2SOliver-Rainer Wittmann } 615ff0525f2SOliver-Rainer Wittmann } 616ff0525f2SOliver-Rainer Wittmann 617ff0525f2SOliver-Rainer Wittmann 618ff0525f2SOliver-Rainer Wittmann 619ff0525f2SOliver-Rainer Wittmann 620ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ChangeMarginImage() 621ff0525f2SOliver-Rainer Wittmann { 622ff0525f2SOliver-Rainer Wittmann if ( mpPageLRMarginItem.get() == 0 || 623ff0525f2SOliver-Rainer Wittmann mpPageULMarginItem.get() == 0 || 624ff0525f2SOliver-Rainer Wittmann mpPageItem.get() == 0 ) 625ff0525f2SOliver-Rainer Wittmann { 626ff0525f2SOliver-Rainer Wittmann return; 627ff0525f2SOliver-Rainer Wittmann } 628ff0525f2SOliver-Rainer Wittmann 629ff0525f2SOliver-Rainer Wittmann const long cTolerance = 5; 630ff0525f2SOliver-Rainer Wittmann 631ff0525f2SOliver-Rainer Wittmann if( abs(mpPageLRMarginItem->GetLeft() - SWPAGE_NARROW_VALUE) <= cTolerance && 632ff0525f2SOliver-Rainer Wittmann abs(mpPageLRMarginItem->GetRight() - SWPAGE_NARROW_VALUE) <= cTolerance && 633ff0525f2SOliver-Rainer Wittmann abs(mpPageULMarginItem->GetUpper() - SWPAGE_NARROW_VALUE) <= cTolerance && 634ff0525f2SOliver-Rainer Wittmann abs(mpPageULMarginItem->GetLower() - SWPAGE_NARROW_VALUE) <= cTolerance && 635ff0525f2SOliver-Rainer Wittmann mpPageItem->GetPageUsage() != SVX_PAGE_MIRROR ) 636ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetItemImage( TBI_MARGIN, mpPageItem->IsLandscape() ? mImgNarrow_L : mImgNarrow ); 637ff0525f2SOliver-Rainer Wittmann 638ff0525f2SOliver-Rainer Wittmann else if( abs(mpPageLRMarginItem->GetLeft() - SWPAGE_NORMAL_VALUE) <= cTolerance && 639ff0525f2SOliver-Rainer Wittmann abs(mpPageLRMarginItem->GetRight() - SWPAGE_NORMAL_VALUE) <= cTolerance && 640ff0525f2SOliver-Rainer Wittmann abs(mpPageULMarginItem->GetUpper() - SWPAGE_NORMAL_VALUE) <= cTolerance && 641ff0525f2SOliver-Rainer Wittmann abs(mpPageULMarginItem->GetLower() - SWPAGE_NORMAL_VALUE) <= cTolerance && 642ff0525f2SOliver-Rainer Wittmann mpPageItem->GetPageUsage() != SVX_PAGE_MIRROR ) 643ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetItemImage(TBI_MARGIN, mpPageItem->IsLandscape() ? mImgNormal_L : mImgNormal ); 644ff0525f2SOliver-Rainer Wittmann 645ff0525f2SOliver-Rainer Wittmann else if( abs(mpPageLRMarginItem->GetLeft() - SWPAGE_WIDE_VALUE2) <= cTolerance && 646ff0525f2SOliver-Rainer Wittmann abs(mpPageLRMarginItem->GetRight() - SWPAGE_WIDE_VALUE2) <= cTolerance && 647ff0525f2SOliver-Rainer Wittmann abs(mpPageULMarginItem->GetUpper() - SWPAGE_WIDE_VALUE1) <= cTolerance && 648ff0525f2SOliver-Rainer Wittmann abs(mpPageULMarginItem->GetLower() - SWPAGE_WIDE_VALUE1) <= cTolerance && 649ff0525f2SOliver-Rainer Wittmann mpPageItem->GetPageUsage() != SVX_PAGE_MIRROR ) 650ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetItemImage(TBI_MARGIN, mpPageItem->IsLandscape() ? mImgWide_L : mImgWide ); 651ff0525f2SOliver-Rainer Wittmann 652ff0525f2SOliver-Rainer Wittmann else if( abs(mpPageLRMarginItem->GetLeft() - SWPAGE_WIDE_VALUE3) <= cTolerance && 653ff0525f2SOliver-Rainer Wittmann abs(mpPageLRMarginItem->GetRight() - SWPAGE_WIDE_VALUE1) <= cTolerance && 654ff0525f2SOliver-Rainer Wittmann abs(mpPageULMarginItem->GetUpper() - SWPAGE_WIDE_VALUE1) <= cTolerance && 655ff0525f2SOliver-Rainer Wittmann abs(mpPageULMarginItem->GetLower() - SWPAGE_WIDE_VALUE1) <= cTolerance && 656ff0525f2SOliver-Rainer Wittmann mpPageItem->GetPageUsage() == SVX_PAGE_MIRROR ) 657ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetItemImage(TBI_MARGIN, mpPageItem->IsLandscape() ? mImgMirrored_L : mImgMirrored ); 658ff0525f2SOliver-Rainer Wittmann 659ff0525f2SOliver-Rainer Wittmann else 660ff0525f2SOliver-Rainer Wittmann mpToolBoxMargin->SetItemImage(TBI_MARGIN, mpPageItem->IsLandscape() ? mImgMarginCustom_L : mImgMarginCustom ); 661ff0525f2SOliver-Rainer Wittmann } 662ff0525f2SOliver-Rainer Wittmann 663ff0525f2SOliver-Rainer Wittmann 664ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ChangeSizeImage() 665ff0525f2SOliver-Rainer Wittmann { 666ff0525f2SOliver-Rainer Wittmann if ( mpPageSizeItem.get() == 0 || 667ff0525f2SOliver-Rainer Wittmann mpPageItem.get() == 0 ) 668ff0525f2SOliver-Rainer Wittmann { 669ff0525f2SOliver-Rainer Wittmann return; 670ff0525f2SOliver-Rainer Wittmann } 671ff0525f2SOliver-Rainer Wittmann 672ff0525f2SOliver-Rainer Wittmann Size aTmpPaperSize = mpPageSizeItem->GetSize(); 673ff0525f2SOliver-Rainer Wittmann if ( mpPageItem->IsLandscape() ) 674ff0525f2SOliver-Rainer Wittmann { 675ff0525f2SOliver-Rainer Wittmann Swap( aTmpPaperSize ); // Swap(..) defined in editeng/paperinf.hxx 676ff0525f2SOliver-Rainer Wittmann } 677ff0525f2SOliver-Rainer Wittmann 678ff0525f2SOliver-Rainer Wittmann mePaper = SvxPaperInfo::GetSvxPaper( aTmpPaperSize, static_cast<MapUnit>(meUnit), sal_True ); 679ff0525f2SOliver-Rainer Wittmann 680ff0525f2SOliver-Rainer Wittmann sal_uInt16 nImageIdx = 0; 681ff0525f2SOliver-Rainer Wittmann switch ( mePaper ) 682ff0525f2SOliver-Rainer Wittmann { 683ff0525f2SOliver-Rainer Wittmann case PAPER_A3: 684ff0525f2SOliver-Rainer Wittmann nImageIdx = 1; 685ff0525f2SOliver-Rainer Wittmann break; 686ff0525f2SOliver-Rainer Wittmann case PAPER_A4: 687ff0525f2SOliver-Rainer Wittmann nImageIdx = 2; 688ff0525f2SOliver-Rainer Wittmann break; 689ff0525f2SOliver-Rainer Wittmann case PAPER_A5: 690ff0525f2SOliver-Rainer Wittmann nImageIdx = 3; 691ff0525f2SOliver-Rainer Wittmann break; 692ff0525f2SOliver-Rainer Wittmann case PAPER_B4_ISO: 693ff0525f2SOliver-Rainer Wittmann nImageIdx = 4; 694ff0525f2SOliver-Rainer Wittmann break; 695ff0525f2SOliver-Rainer Wittmann case PAPER_B5_ISO: 696ff0525f2SOliver-Rainer Wittmann nImageIdx = 5; 697ff0525f2SOliver-Rainer Wittmann break; 698ff0525f2SOliver-Rainer Wittmann case PAPER_ENV_C5: 699ff0525f2SOliver-Rainer Wittmann nImageIdx = 6; 700ff0525f2SOliver-Rainer Wittmann break; 701ff0525f2SOliver-Rainer Wittmann case PAPER_LETTER: 702ff0525f2SOliver-Rainer Wittmann nImageIdx = 7; 703ff0525f2SOliver-Rainer Wittmann break; 704ff0525f2SOliver-Rainer Wittmann case PAPER_LEGAL: 705ff0525f2SOliver-Rainer Wittmann nImageIdx = 8; 706ff0525f2SOliver-Rainer Wittmann break; 707ff0525f2SOliver-Rainer Wittmann default: 708ff0525f2SOliver-Rainer Wittmann nImageIdx = 0; 709ff0525f2SOliver-Rainer Wittmann mePaper = PAPER_USER; 710ff0525f2SOliver-Rainer Wittmann break; 711ff0525f2SOliver-Rainer Wittmann } 712ff0525f2SOliver-Rainer Wittmann 713ff0525f2SOliver-Rainer Wittmann if ( nImageIdx == 0 ) 714ff0525f2SOliver-Rainer Wittmann { 715ff0525f2SOliver-Rainer Wittmann mpToolBoxSize->SetItemImage( TBI_SIZE, 716ff0525f2SOliver-Rainer Wittmann ( mpPageItem->IsLandscape() ? mImgSizeNone_L : mImgSizeNone ) ); 717ff0525f2SOliver-Rainer Wittmann } 718ff0525f2SOliver-Rainer Wittmann else 719ff0525f2SOliver-Rainer Wittmann { 720ff0525f2SOliver-Rainer Wittmann mpToolBoxSize->SetItemImage( TBI_SIZE, 721ff0525f2SOliver-Rainer Wittmann ( mpPageItem->IsLandscape() ? maImgSize_L[nImageIdx-1] : maImgSize[nImageIdx-1] ) ); 722ff0525f2SOliver-Rainer Wittmann } 723ff0525f2SOliver-Rainer Wittmann } 724ff0525f2SOliver-Rainer Wittmann 725ff0525f2SOliver-Rainer Wittmann 726ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ChangeColumnImage( const sal_uInt16 nColumnType ) 727ff0525f2SOliver-Rainer Wittmann { 728ff0525f2SOliver-Rainer Wittmann if ( mpPageItem.get() == 0 ) 729ff0525f2SOliver-Rainer Wittmann { 730ff0525f2SOliver-Rainer Wittmann return; 731ff0525f2SOliver-Rainer Wittmann } 732ff0525f2SOliver-Rainer Wittmann 733ff0525f2SOliver-Rainer Wittmann if ( !mpPageItem->IsLandscape() ) 734ff0525f2SOliver-Rainer Wittmann { 735ff0525f2SOliver-Rainer Wittmann switch( nColumnType ) 736ff0525f2SOliver-Rainer Wittmann { 737ff0525f2SOliver-Rainer Wittmann case 1: 738ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn1); 739ff0525f2SOliver-Rainer Wittmann break; 740ff0525f2SOliver-Rainer Wittmann case 2: 741ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn2); 742ff0525f2SOliver-Rainer Wittmann break; 743ff0525f2SOliver-Rainer Wittmann case 3: 744ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn3); 745ff0525f2SOliver-Rainer Wittmann break; 746ff0525f2SOliver-Rainer Wittmann case 4: 747ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgLeft); 748ff0525f2SOliver-Rainer Wittmann break; 749ff0525f2SOliver-Rainer Wittmann case 5: 750ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgRight); 751ff0525f2SOliver-Rainer Wittmann break; 752ff0525f2SOliver-Rainer Wittmann default: 753ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumnNone); 754ff0525f2SOliver-Rainer Wittmann } 755ff0525f2SOliver-Rainer Wittmann } 756ff0525f2SOliver-Rainer Wittmann else 757ff0525f2SOliver-Rainer Wittmann { 758ff0525f2SOliver-Rainer Wittmann switch( nColumnType ) 759ff0525f2SOliver-Rainer Wittmann { 760ff0525f2SOliver-Rainer Wittmann case 1: 761ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn1_L); 762ff0525f2SOliver-Rainer Wittmann break; 763ff0525f2SOliver-Rainer Wittmann case 2: 764ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn2_L); 765ff0525f2SOliver-Rainer Wittmann break; 766ff0525f2SOliver-Rainer Wittmann case 3: 767ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn3_L); 768ff0525f2SOliver-Rainer Wittmann break; 769ff0525f2SOliver-Rainer Wittmann case 4: 770ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgLeft_L); 771ff0525f2SOliver-Rainer Wittmann break; 772ff0525f2SOliver-Rainer Wittmann case 5: 773ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgRight_L); 774ff0525f2SOliver-Rainer Wittmann break; 775ff0525f2SOliver-Rainer Wittmann default: 776ff0525f2SOliver-Rainer Wittmann mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumnNone_L); 777ff0525f2SOliver-Rainer Wittmann } 778ff0525f2SOliver-Rainer Wittmann } 779ff0525f2SOliver-Rainer Wittmann } 780ff0525f2SOliver-Rainer Wittmann 781ff0525f2SOliver-Rainer Wittmann } } // end of namespace ::sw::sidebar 782