1*ff0525f2SOliver-Rainer Wittmann /************************************************************** 2*ff0525f2SOliver-Rainer Wittmann * 3*ff0525f2SOliver-Rainer Wittmann * Licensed to the Apache Software Foundation (ASF) under one 4*ff0525f2SOliver-Rainer Wittmann * or more contributor license agreements. See the NOTICE file 5*ff0525f2SOliver-Rainer Wittmann * distributed with this work for additional information 6*ff0525f2SOliver-Rainer Wittmann * regarding copyright ownership. The ASF licenses this file 7*ff0525f2SOliver-Rainer Wittmann * to you under the Apache License, Version 2.0 (the 8*ff0525f2SOliver-Rainer Wittmann * "License"); you may not use this file except in compliance 9*ff0525f2SOliver-Rainer Wittmann * with the License. You may obtain a copy of the License at 10*ff0525f2SOliver-Rainer Wittmann * 11*ff0525f2SOliver-Rainer Wittmann * http://www.apache.org/licenses/LICENSE-2.0 12*ff0525f2SOliver-Rainer Wittmann * 13*ff0525f2SOliver-Rainer Wittmann * Unless required by applicable law or agreed to in writing, 14*ff0525f2SOliver-Rainer Wittmann * software distributed under the License is distributed on an 15*ff0525f2SOliver-Rainer Wittmann * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*ff0525f2SOliver-Rainer Wittmann * KIND, either express or implied. See the License for the 17*ff0525f2SOliver-Rainer Wittmann * specific language governing permissions and limitations 18*ff0525f2SOliver-Rainer Wittmann * under the License. 19*ff0525f2SOliver-Rainer Wittmann * 20*ff0525f2SOliver-Rainer Wittmann *************************************************************/ 21*ff0525f2SOliver-Rainer Wittmann 22*ff0525f2SOliver-Rainer Wittmann #include "precompiled_sw.hxx" 23*ff0525f2SOliver-Rainer Wittmann 24*ff0525f2SOliver-Rainer Wittmann #include "PageColumnControl.hxx" 25*ff0525f2SOliver-Rainer Wittmann #include "PagePropertyPanel.hxx" 26*ff0525f2SOliver-Rainer Wittmann #include "PagePropertyPanel.hrc" 27*ff0525f2SOliver-Rainer Wittmann 28*ff0525f2SOliver-Rainer Wittmann #include <cmdid.h> 29*ff0525f2SOliver-Rainer Wittmann #include <swtypes.hxx> 30*ff0525f2SOliver-Rainer Wittmann 31*ff0525f2SOliver-Rainer Wittmann #include <svx/sidebar/ValueSetWithTextControl.hxx> 32*ff0525f2SOliver-Rainer Wittmann 33*ff0525f2SOliver-Rainer Wittmann namespace sw { namespace sidebar { 34*ff0525f2SOliver-Rainer Wittmann 35*ff0525f2SOliver-Rainer Wittmann PageColumnControl::PageColumnControl( 36*ff0525f2SOliver-Rainer Wittmann Window* pParent, 37*ff0525f2SOliver-Rainer Wittmann PagePropertyPanel& rPanel, 38*ff0525f2SOliver-Rainer Wittmann const sal_uInt16 nColumnType, 39*ff0525f2SOliver-Rainer Wittmann const bool bLandscape ) 40*ff0525f2SOliver-Rainer Wittmann : ::svx::sidebar::PopupControl( pParent, SW_RES(RID_POPUP_SWPAGE_COLUMN) ) 41*ff0525f2SOliver-Rainer Wittmann , mpColumnValueSet( new ::svx::sidebar::ValueSetWithTextControl( ::svx::sidebar::ValueSetWithTextControl::IMAGE_TEXT, this, SW_RES(VS_COLUMN) ) ) 42*ff0525f2SOliver-Rainer Wittmann , maMoreButton( this, SW_RES(CB_COLUMN_MORE) ) 43*ff0525f2SOliver-Rainer Wittmann , mnColumnType( nColumnType ) 44*ff0525f2SOliver-Rainer Wittmann , mrPagePropPanel(rPanel) 45*ff0525f2SOliver-Rainer Wittmann { 46*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->SetStyle( mpColumnValueSet->GetStyle() | WB_3DLOOK | WB_NO_DIRECTSELECT ); 47*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->SetColor(GetSettings().GetStyleSettings().GetMenuColor()); 48*ff0525f2SOliver-Rainer Wittmann 49*ff0525f2SOliver-Rainer Wittmann if ( bLandscape ) 50*ff0525f2SOliver-Rainer Wittmann { 51*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->AddItem( SW_RES(IMG_ONE_L), 0, SW_RES(STR_ONE), 0 ); 52*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->AddItem( SW_RES(IMG_TWO_L), 0, SW_RES(STR_TWO), 0 ); 53*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->AddItem( SW_RES(IMG_THREE_L), 0, SW_RES(STR_THREE), 0 ); 54*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->AddItem( SW_RES(IMG_LEFT_L), 0, SW_RES(STR_LEFT), 0 ); 55*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->AddItem( SW_RES(IMG_RIGHT_L), 0, SW_RES(STR_RIGHT), 0 ); 56*ff0525f2SOliver-Rainer Wittmann } 57*ff0525f2SOliver-Rainer Wittmann else 58*ff0525f2SOliver-Rainer Wittmann { 59*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->AddItem( SW_RES(IMG_ONE), 0, SW_RES(STR_ONE), 0 ); 60*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->AddItem( SW_RES(IMG_TWO), 0, SW_RES(STR_TWO), 0 ); 61*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->AddItem( SW_RES(IMG_THREE), 0, SW_RES(STR_THREE), 0 ); 62*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->AddItem( SW_RES(IMG_LEFT), 0, SW_RES(STR_LEFT), 0 ); 63*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->AddItem( SW_RES(IMG_RIGHT), 0, SW_RES(STR_RIGHT), 0 ); 64*ff0525f2SOliver-Rainer Wittmann } 65*ff0525f2SOliver-Rainer Wittmann 66*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->SetNoSelection(); 67*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->SetSelectHdl( LINK(this, PageColumnControl,ImplColumnHdl ) ); 68*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->Show(); 69*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->SelectItem( mnColumnType ); 70*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->Format(); 71*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->StartSelection(); 72*ff0525f2SOliver-Rainer Wittmann 73*ff0525f2SOliver-Rainer Wittmann maMoreButton.SetClickHdl( LINK( this, PageColumnControl, MoreButtonClickHdl_Impl ) ); 74*ff0525f2SOliver-Rainer Wittmann maMoreButton.GrabFocus(); 75*ff0525f2SOliver-Rainer Wittmann 76*ff0525f2SOliver-Rainer Wittmann FreeResource(); 77*ff0525f2SOliver-Rainer Wittmann } 78*ff0525f2SOliver-Rainer Wittmann 79*ff0525f2SOliver-Rainer Wittmann 80*ff0525f2SOliver-Rainer Wittmann PageColumnControl::~PageColumnControl(void) 81*ff0525f2SOliver-Rainer Wittmann { 82*ff0525f2SOliver-Rainer Wittmann delete mpColumnValueSet; 83*ff0525f2SOliver-Rainer Wittmann } 84*ff0525f2SOliver-Rainer Wittmann 85*ff0525f2SOliver-Rainer Wittmann 86*ff0525f2SOliver-Rainer Wittmann IMPL_LINK(PageColumnControl, ImplColumnHdl, void *, pControl) 87*ff0525f2SOliver-Rainer Wittmann { 88*ff0525f2SOliver-Rainer Wittmann mpColumnValueSet->SetNoSelection(); 89*ff0525f2SOliver-Rainer Wittmann if ( pControl == mpColumnValueSet ) 90*ff0525f2SOliver-Rainer Wittmann { 91*ff0525f2SOliver-Rainer Wittmann const sal_uInt32 nColumnType = mpColumnValueSet->GetSelectItemId(); 92*ff0525f2SOliver-Rainer Wittmann if ( nColumnType != mnColumnType ) 93*ff0525f2SOliver-Rainer Wittmann { 94*ff0525f2SOliver-Rainer Wittmann mnColumnType = nColumnType; 95*ff0525f2SOliver-Rainer Wittmann mrPagePropPanel.ExecuteColumnChange( mnColumnType ); 96*ff0525f2SOliver-Rainer Wittmann } 97*ff0525f2SOliver-Rainer Wittmann } 98*ff0525f2SOliver-Rainer Wittmann 99*ff0525f2SOliver-Rainer Wittmann mrPagePropPanel.ClosePageColumnPopup(); 100*ff0525f2SOliver-Rainer Wittmann return 0; 101*ff0525f2SOliver-Rainer Wittmann } 102*ff0525f2SOliver-Rainer Wittmann 103*ff0525f2SOliver-Rainer Wittmann IMPL_LINK(PageColumnControl, MoreButtonClickHdl_Impl, void *, EMPTYARG) 104*ff0525f2SOliver-Rainer Wittmann { 105*ff0525f2SOliver-Rainer Wittmann mrPagePropPanel.GetBindings()->GetDispatcher()->Execute( FN_FORMAT_PAGE_COLUMN_DLG, SFX_CALLMODE_ASYNCHRON ); 106*ff0525f2SOliver-Rainer Wittmann 107*ff0525f2SOliver-Rainer Wittmann mrPagePropPanel.ClosePageColumnPopup(); 108*ff0525f2SOliver-Rainer Wittmann return 0; 109*ff0525f2SOliver-Rainer Wittmann } 110*ff0525f2SOliver-Rainer Wittmann 111*ff0525f2SOliver-Rainer Wittmann 112*ff0525f2SOliver-Rainer Wittmann } } // end of namespace sw::sidebar 113*ff0525f2SOliver-Rainer Wittmann 114