karbon

vdistributecmd.h
1/* This file is part of the KDE project
2 Copyright (C) 2005, The Karbon Developers
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18*/
19
20#ifndef __VDISTRIBUTECMD_H__
21#define __VDISTRIBUTECMD_H__
22
23#include "vcommand.h"
24
25class VTranslateCmd;
26
28
29class VDistributeCmd : public VCommand
30{
31public:
32 enum Distribute
33 {
34 DISTRIBUTE_HORIZONTAL_CENTER,
35 DISTRIBUTE_HORIZONTAL_GAP,
36 DISTRIBUTE_HORIZONTAL_LEFT,
37 DISTRIBUTE_HORIZONTAL_RIGHT,
38 DISTRIBUTE_VERTICAL_CENTER,
39 DISTRIBUTE_VERTICAL_GAP,
40 DISTRIBUTE_VERTICAL_BOTTOM,
41 DISTRIBUTE_VERTICAL_TOP
42 };
43 VDistributeCmd( VDocument *doc, Distribute distribute );
44 virtual ~VDistributeCmd();
45
46 virtual void execute();
47 virtual void unexecute();
48 virtual bool changesSelection() const { return true; }
49
50protected:
51 double getAvailableSpace( VObject *first, VObject *last, double extent );
52
53 Distribute m_distribute;
54 TQPtrList<VTranslateCmd> m_trafoCmds;
55};
56
57#endif
58
VCommand(VDocument *doc, const TQString &name, const TQString &icon="14_action")
Constructs a new command.
Definition vcommand.h:51
virtual bool changesSelection() const
Returns if the command changes the actual document selection.
virtual void unexecute()
Unexecutes the command.
virtual void execute()
Executes the command.
All non-visual, static doc info is in here.
Definition vdocument.h:53
The base class for all karbon objects.
Definition vobject.h:50