1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_svx.hxx" 26 27 #include <svx/dialmgr.hxx> 28 #include <svx/dialogs.hrc> 29 #include <svx/verttexttbxctrl.hxx> 30 #include <svl/languageoptions.hxx> 31 #include <sfx2/app.hxx> 32 #include <svl/eitem.hxx> 33 #include <vcl/toolbox.hxx> 34 #include <rtl/ustring.hxx> 35 36 SFX_IMPL_TOOLBOX_CONTROL(SvxCTLTextTbxCtrl, SfxBoolItem); 37 SFX_IMPL_TOOLBOX_CONTROL(SvxVertTextTbxCtrl, SfxBoolItem); 38 39 // -----------------------------27.04.01 15:50-------------------------------- 40 41 SvxCTLTextTbxCtrl::SvxCTLTextTbxCtrl(sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx ) : 42 SvxVertCTLTextTbxCtrl( nSlotId, nId, rTbx ) 43 { 44 SetVert(sal_False); 45 addStatusListener( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:CTLFontState" ))); 46 } 47 48 SvxVertTextTbxCtrl::SvxVertTextTbxCtrl( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx ) : 49 SvxVertCTLTextTbxCtrl( nSlotId, nId, rTbx ) 50 { 51 SetVert(sal_True); 52 addStatusListener( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:VerticalTextState" ))); 53 } 54 55 /* ---------------------------------------------------------------------------*/ 56 SvxVertCTLTextTbxCtrl::SvxVertCTLTextTbxCtrl( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx ) : 57 SfxToolBoxControl( nSlotId, nId, rTbx ), 58 bCheckVertical(sal_True) 59 { 60 } 61 62 /* -----------------------------27.04.01 15:53-------------------------------- 63 64 ---------------------------------------------------------------------------*/ 65 SvxVertCTLTextTbxCtrl::~SvxVertCTLTextTbxCtrl( ) 66 { 67 } 68 /* -----------------------------27.04.01 15:50-------------------------------- 69 70 ---------------------------------------------------------------------------*/ 71 void SvxVertCTLTextTbxCtrl::StateChanged( 72 sal_uInt16 nSID, 73 SfxItemState eState, 74 const SfxPoolItem* pState ) 75 { 76 SvtLanguageOptions aLangOptions; 77 sal_Bool bCalc = sal_False; 78 sal_Bool bVisible = GetToolBox().IsItemVisible(GetId()); 79 sal_Bool bEnabled = sal_False; 80 if ( nSID == SID_VERTICALTEXT_STATE ) 81 bEnabled = aLangOptions.IsVerticalTextEnabled(); 82 else if ( nSID == SID_CTLFONT_STATE ) 83 bEnabled = aLangOptions.IsCTLFontEnabled(); 84 else 85 { 86 SfxToolBoxControl::StateChanged(nSID, eState, pState); 87 return; 88 } 89 90 if(bEnabled) 91 { 92 if(!bVisible) 93 { 94 GetToolBox().ShowItem( GetId(), sal_True ); 95 bCalc = sal_True; 96 } 97 } 98 else if(bVisible) 99 { 100 GetToolBox().HideItem( GetId() ); 101 bCalc = sal_True; 102 } 103 if(bCalc) 104 { 105 ToolBox& rTbx = GetToolBox(); 106 Window* pParent = rTbx.GetParent(); 107 WindowType nWinType = pParent->GetType(); 108 if(WINDOW_FLOATINGWINDOW == nWinType) 109 { 110 Size aSize(rTbx.CalcWindowSizePixel()); 111 rTbx.SetPosSizePixel( Point(), aSize ); 112 pParent->SetOutputSizePixel( aSize ); 113 } 114 } 115 } 116 /* -----------------------------27.04.01 15:50-------------------------------- 117 118 ---------------------------------------------------------------------------*/ 119 120