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 // MARKER(update_precomp.py): autogen include statement, do not remove 23 #include "precompiled_sw.hxx" 24 25 #ifdef SW_DLLIMPLEMENTATION 26 #undef SW_DLLIMPLEMENTATION 27 #endif 28 29 #include <sfx2/dispatch.hxx> 30 #include <svx/dlgutil.hxx> 31 #include <colwd.hxx> 32 #include <tablemgr.hxx> 33 #include <wrtsh.hxx> 34 #ifndef _WDOCSH_HXX 35 #include <wdocsh.hxx> 36 #endif 37 #ifndef _VIEW_HXX 38 #include <view.hxx> 39 #endif 40 #include <swmodule.hxx> 41 #ifndef _MODCFG_HXX 42 #include <modcfg.hxx> 43 #endif 44 #include <usrpref.hxx> 45 46 #ifndef _CMDID_H 47 #include <cmdid.h> 48 #endif 49 #ifndef _COLWD_HRC 50 #include <colwd.hrc> 51 #endif 52 #ifndef _TABLE_HRC 53 #include <table.hrc> 54 #endif 55 56 IMPL_LINK_INLINE_START( SwTableWidthDlg, LoseFocusHdl, Edit *, EMPTYARG ) 57 { 58 sal_uInt16 nId = (sal_uInt16)aColEdit.GetValue()-1; 59 const SwTwips lWidth = rFnc.GetColWidth(nId); 60 aWidthEdit.SetValue(aWidthEdit.Normalize(lWidth), FUNIT_TWIP); 61 aWidthEdit.SetMax(aWidthEdit.Normalize(rFnc.GetMaxColWidth(nId)), FUNIT_TWIP); 62 return 0; 63 } 64 IMPL_LINK_INLINE_END( SwTableWidthDlg, LoseFocusHdl, Edit *, EMPTYARG ) 65 66 67 SwTableWidthDlg::SwTableWidthDlg(Window *pParent, SwTableFUNC &rTableFnc ) : 68 69 SvxStandardDialog( pParent, SW_RES(DLG_COL_WIDTH) ), 70 aWidthFL(this, SW_RES(FL_WIDTH)), 71 72 aColFT(this, SW_RES(FT_COL)), 73 aColEdit(this, SW_RES(ED_COL)), 74 aWidthFT(this, SW_RES(FT_WIDTH)), 75 aWidthEdit(this, SW_RES(ED_WIDTH)), 76 aOKBtn(this, SW_RES(BT_OK)), 77 aCancelBtn(this, SW_RES(BT_CANCEL)), 78 aHelpBtn(this, SW_RES(BT_HELP)), 79 rFnc(rTableFnc) 80 { 81 FreeResource(); 82 83 sal_Bool bIsWeb = rTableFnc.GetShell() 84 ? static_cast< sal_Bool >(0 != PTR_CAST( SwWebDocShell, 85 rTableFnc.GetShell()->GetView().GetDocShell()) ) 86 : sal_False; 87 FieldUnit eFieldUnit = SW_MOD()->GetUsrPref( bIsWeb )->GetMetric(); 88 ::SetFieldUnit(aWidthEdit, eFieldUnit ); 89 90 aColEdit.SetValue( rFnc.GetCurColNum() +1 ); 91 aWidthEdit.SetMin(aWidthEdit.Normalize(MINLAY), FUNIT_TWIP); 92 if(!aWidthEdit.GetMin()) 93 aWidthEdit.SetMin(1); 94 95 if(rFnc.GetColCount() == 0) 96 aWidthEdit.SetMin(aWidthEdit.Normalize(rFnc.GetColWidth(0)), FUNIT_TWIP); 97 aColEdit.SetMax(rFnc.GetColCount() +1 ); 98 aColEdit.SetModifyHdl(LINK(this,SwTableWidthDlg, LoseFocusHdl)); 99 LoseFocusHdl(); 100 } 101 102 103 void SwTableWidthDlg::Apply() 104 { 105 rFnc.InitTabCols(); 106 rFnc.SetColWidth( 107 static_cast< sal_uInt16 >(aColEdit.GetValue() - 1), 108 static_cast< sal_uInt16 >(aWidthEdit.Denormalize(aWidthEdit.GetValue(FUNIT_TWIP)))); 109 } 110 111 /* vim: set noet sw=4 ts=4: */ 112