/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include IMPL_LINK_NOARG_INLINE_START(SwTableWidthDlg, LoseFocusHdl) { sal_uInt16 nId = (sal_uInt16)m_pColNF->GetValue()-1; const SwTwips lWidth = rFnc.GetColWidth(nId); m_pWidthMF->SetMax(m_pWidthMF->Normalize(rFnc.GetMaxColWidth(nId)), FUNIT_TWIP); m_pWidthMF->SetValue(m_pWidthMF->Normalize(lWidth), FUNIT_TWIP); return 0; } IMPL_LINK_NOARG_INLINE_END(SwTableWidthDlg, LoseFocusHdl) SwTableWidthDlg::SwTableWidthDlg(Window *pParent, SwTableFUNC &rTableFnc ) : SvxStandardDialog( pParent, "ColumnWidthDialog", "modules/swriter/ui/columnwidth.ui" ) , rFnc(rTableFnc) { get(m_pColNF, "column"); get(m_pWidthMF, "width"); sal_Bool bIsWeb = rTableFnc.GetShell() ? static_cast< sal_Bool >(0 != PTR_CAST( SwWebDocShell, rTableFnc.GetShell()->GetView().GetDocShell()) ) : sal_False; FieldUnit eFieldUnit = SW_MOD()->GetUsrPref( bIsWeb )->GetMetric(); ::SetFieldUnit(*m_pWidthMF, eFieldUnit); m_pColNF->SetValue( rFnc.GetCurColNum() +1 ); m_pWidthMF->SetMin(m_pWidthMF->Normalize(MINLAY), FUNIT_TWIP); if(!m_pWidthMF->GetMin()) m_pWidthMF->SetMin(1); if(rFnc.GetColCount() == 0) m_pWidthMF->SetMin(m_pWidthMF->Normalize(rFnc.GetColWidth(0)), FUNIT_TWIP); m_pColNF->SetMax(rFnc.GetColCount() +1 ); m_pColNF->SetModifyHdl(LINK(this,SwTableWidthDlg, LoseFocusHdl)); LoseFocusHdl(); } void SwTableWidthDlg::Apply() { rFnc.InitTabCols(); rFnc.SetColWidth( static_cast< sal_uInt16 >(m_pColNF->GetValue() - 1), static_cast< sal_uInt16 >(m_pWidthMF->Denormalize(m_pWidthMF->GetValue(FUNIT_TWIP)))); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */