1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
/* This file is part of the KDE project
Made by Tomislav Lukman (tomislav.lukman@ck.tel.hr)
Copyright (C) 2002, The Karbon Developers
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.
*/
/* vselecttoolbar.cc */
#include <tqlabel.h>
#include <klocale.h>
#include <kdebug.h>
#include "KoUnitWidgets.h"
#include "vselecttoolbar.h"
#include "karbon_view.h"
#include "karbon_part.h"
#include "vselection.h"
#include "vtransformcmd.h"
#include <KoRect.h>
VSelectToolBar::VSelectToolBar( KarbonView *view, const char* name ) : KToolBar( view, name ), m_view( view )
{
setCaption( i18n( "Object Properties" ) );
TQLabel *x_label = new TQLabel( i18n( "X:" ), this, "kde toolbar widget" );
insertWidget( 0, x_label->width(), x_label );
m_x = new KoUnitDoubleSpinBox( this, 0.0, 1000.0, 0.5 );
connect( m_x, TQT_SIGNAL( valueChanged( double ) ), this, TQT_SLOT( slotXChanged( double ) ) );
insertWidget( 1, m_x->width(), m_x );
TQLabel *y_label = new TQLabel( i18n( "Y:" ), this, "kde toolbar widget" );
insertWidget( 2, y_label->width(), y_label );
m_y = new KoUnitDoubleSpinBox( this, 0.0, 1000.0, 0.5 );
connect( m_y, TQT_SIGNAL( valueChanged( double ) ), this, TQT_SLOT( slotYChanged( double ) ) );
insertWidget( 3, m_y->width(), m_y );
insertSeparator( 4 );
TQLabel *w_label = new TQLabel( i18n( "selection width", "Width:" ), this, "kde toolbar widget" );
insertWidget( 5, w_label->width(), w_label );
m_width = new KoUnitDoubleSpinBox( this, 0.0, 1000.0, 0.5 );
connect( m_width, TQT_SIGNAL( valueChanged( double ) ), this, TQT_SLOT( slotWidthChanged( double ) ) );
insertWidget( 6, m_width->width(), m_width );
TQLabel *h_label = new TQLabel( i18n( "Height:" ), this, "kde toolbar widget" );
insertWidget( 7, h_label->width(), h_label );
m_height = new KoUnitDoubleSpinBox( this, 0.0, 1000.0, 0.5 );
connect( m_height, TQT_SIGNAL( valueChanged( double ) ), this, TQT_SLOT( slotHeightChanged( double ) ) );
insertWidget( 8, m_height->width(), m_height );
connect( m_view, TQT_SIGNAL( selectionChange() ), this, TQT_SLOT( slotSelectionChanged() ) );
}
VSelectToolBar::~VSelectToolBar()
{
}
void
VSelectToolBar::slotXChanged( double newval )
{
double dx = newval - m_view->part()->document().selection()->boundingBox().topLeft().x();
m_view->part()->addCommand( new VTranslateCmd( &m_view->part()->document(), dx, 0.0 ), true );
}
void
VSelectToolBar::slotYChanged( double newval )
{
double dy = newval - m_view->part()->document().selection()->boundingBox().topLeft().y();
m_view->part()->addCommand( new VTranslateCmd( &m_view->part()->document(), 0.0, dy ), true );
}
void
VSelectToolBar::slotWidthChanged( double newval )
{
if( newval != 0.0 )
{
double sx = newval / m_view->part()->document().selection()->boundingBox().width();
KoPoint sp = m_view->part()->document().selection()->boundingBox().topLeft();
m_view->part()->addCommand( new VScaleCmd( &m_view->part()->document(), sp, sx, 1.0 ), true );
}
}
void
VSelectToolBar::slotHeightChanged( double newval )
{
if( newval != 0.0 )
{
double sy = newval / m_view->part()->document().selection()->boundingBox().height();
KoPoint sp = m_view->part()->document().selection()->boundingBox().bottomLeft();
m_view->part()->addCommand( new VScaleCmd( &m_view->part()->document(), sp, 1.0, sy ), true );
}
}
void
VSelectToolBar::slotSelectionChanged()
{
m_x->blockSignals( true );
m_y->blockSignals( true );
m_width->blockSignals( true );
m_height->blockSignals( true );
KoRect rect = m_view->part()->document().selection()->boundingBox();
m_x->setValue( rect.topLeft().x() );
m_y->setValue( rect.topLeft().y() );
m_width->setValue( rect.width() );
m_height->setValue( rect.height() );
m_x->blockSignals( false );
m_y->blockSignals( false );
m_width->blockSignals( false );
m_height->blockSignals( false );
}
#include "vselecttoolbar.moc"
|