/* This file is part of the KDE project Copyright (C) 2002-2004 Ariya Hidayat (C) 2003 Norbert Andres (C) 2001-2003 Philipp Mueller (C) 1999-2002 Laurent Montel (C) 2002 John Dailey (C) 2000 David Faure (C) 1998-1999 Torben Weis This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "manipulator.h" #include "selection.h" #include "kspread_dlg_resize2.h" using namespace KSpread; ResizeRow::ResizeRow( View* parent, const char* name ) : KDialogBase( parent, name, true, i18n("Resize Row"), Ok|Cancel|Default ) { m_pView = parent; TQWidget *page = new TQWidget( this ); setMainWidget( page ); TQVBoxLayout *vLay = new TQVBoxLayout( page, 0, spacingHint() ); TQHBoxLayout *hLay = new TQHBoxLayout( vLay ); TQRect selection( m_pView->selectionInfo()->selection() ); RowFormat* rl = m_pView->activeSheet()->rowFormat( selection.top() ); rowHeight = rl->dblHeight(); TQLabel * label1 = new TQLabel( page, "label1" ); label1->setText( i18n( "Height:" ) ); hLay->addWidget( label1 ); m_pHeight = new KoUnitDoubleSpinBox( page ); m_pHeight->setValue( rowHeight ); m_pHeight->setUnit( m_pView->doc()->unit() ); hLay->addWidget( m_pHeight ); TQWidget *hSpacer = new TQWidget( page ); hSpacer->setMinimumSize( spacingHint(), spacingHint() ); hLay->addWidget( hSpacer ); TQWidget *vSpacer = new TQWidget( page ); vSpacer->setMinimumSize( spacingHint(), spacingHint() ); vLay->addWidget( vSpacer ); m_pHeight->setFocus(); //store the visible value, for later check for changes rowHeight = m_pHeight->value(); } void ResizeRow::slotOk() { double height = m_pHeight->value(); //Don't generate a resize, when there isn't a change or the change is only a rounding issue if ( fabs( height - rowHeight ) > DBL_EPSILON ) { ResizeRowManipulator* manipulator = new ResizeRowManipulator(); manipulator->setSheet(m_pView->activeSheet()); manipulator->setSize(height); // TODO Stefan: manipulator->setOldSize(rowHeight); manipulator->add(*m_pView->selectionInfo()); manipulator->execute(); } accept(); } void ResizeRow::slotDefault() { Sheet* sheet = m_pView->activeSheet(); if (!sheet) return; double points = sheet->rowFormat(0)->dblHeight(); m_pHeight->setValue(KoUnit::toUserValue(points, m_pView->doc()->unit())); } ResizeColumn::ResizeColumn( View* parent, const char* name ) : KDialogBase( parent, name, true, i18n("Resize Column"), Ok|Cancel|Default ) { m_pView = parent; TQWidget *page = new TQWidget( this ); setMainWidget(page); TQVBoxLayout *vLay = new TQVBoxLayout( page, 0, spacingHint() ); TQHBoxLayout *hLay = new TQHBoxLayout( vLay ); TQRect selection( m_pView->selectionInfo()->selection() ); ColumnFormat* cl = m_pView->activeSheet()->columnFormat( selection.left() ); columnWidth = cl->dblWidth(); TQLabel * label1 = new TQLabel( page, "label1" ); label1->setText( i18n( "Width:" ) ); hLay->addWidget( label1 ); m_pWidth = new KoUnitDoubleSpinBox( page ); m_pWidth->setValue( columnWidth ); m_pWidth->setUnit( m_pView->doc()->unit() ); hLay->addWidget( m_pWidth ); TQWidget *hSpacer = new TQWidget( page ); hSpacer->setMinimumSize( spacingHint(), spacingHint() ); hLay->addWidget( hSpacer ); TQWidget *vSpacer = new TQWidget( page ); vSpacer->setMinimumSize( spacingHint(), spacingHint() ); vLay->addWidget( vSpacer ); m_pWidth->setFocus(); //store the visible value, for later check for changes columnWidth = m_pWidth->value(); } void ResizeColumn::slotOk() { double width = m_pWidth->value(); //Don't generate a resize, when there isn't a change or the change is only a rounding issue if ( fabs( width - columnWidth ) > DBL_EPSILON ) { ResizeColumnManipulator* manipulator = new ResizeColumnManipulator(); manipulator->setSheet(m_pView->activeSheet()); manipulator->setSize(width); // TODO Stefan: manipulator->setOldSize(columnWidth); manipulator->add(*m_pView->selectionInfo()); manipulator->execute(); } accept(); } void ResizeColumn::slotDefault() { Sheet* sheet = m_pView->activeSheet(); if (!sheet) return; double points = sheet->columnFormat(0)->dblWidth(); m_pWidth->setValue(KoUnit::toUserValue(points, m_pView->doc()->unit())); } #include "kspread_dlg_resize2.moc"