blob: a1201956ab55440f37781fe95d857adc574192d5 (
plain)
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
#ifndef __TILEDIALOG_H__
#define __TILEDIALOG_H__
/*
* A simple dialog for creating grid type arrangements of selected objects
*
* Authors:
* Bob Jamison ( based off trace dialog)
* John Cliff
* Other dudes from The Inkscape Organization
*
* Copyright (C) 2004 Bob Jamison
* Copyright (C) 2004 John Cliff
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#include <gtkmm/box.h>
#include <gtkmm/notebook.h>
#include <gtkmm/tooltips.h>
#include <gtkmm/button.h>
#include <gtkmm/spinbutton.h>
#include <gtkmm/checkbutton.h>
#include <gtkmm/radiobutton.h>
#include "ui/widget/panel.h"
namespace Inkscape {
namespace UI {
namespace Dialog {
/**
* A dialog that displays log messages
*/
class TileDialog : public UI::Widget::Panel {
public:
/**
* Constructor
*/
TileDialog() ;
/**
* Factory method
*/
static TileDialog& getInstance() { return *new TileDialog(); }
/**
* Destructor
*/
virtual ~TileDialog() {};
/**
* Do the actual work
*/
void Grid_Arrange();
/**
* Respond to selection change
*/
void updateSelection();
/**
* Callback from Apply
*/
virtual void _apply();
/**
* Callback from spinbuttons
*/
void on_row_spinbutton_changed();
void on_col_spinbutton_changed();
void on_xpad_spinbutton_changed();
void on_ypad_spinbutton_changed();
void on_RowSize_checkbutton_changed();
void on_ColSize_checkbutton_changed();
void on_rowSize_spinbutton_changed();
void on_colSize_spinbutton_changed();
void Spacing_button_changed();
void VertAlign_changed();
void HorizAlign_changed();
private:
TileDialog(TileDialog const &d); // no copy
void operator=(TileDialog const &d); // no assign
bool userHidden;
bool updating;
Gtk::Notebook notebook;
Gtk::Tooltips tips;
Gtk::VBox TileBox;
Gtk::Button *TileOkButton;
Gtk::Button *TileCancelButton;
// Number selected label
Gtk::Label SelectionContentsLabel;
Gtk::HBox AlignHBox;
Gtk::HBox SpinsHBox;
Gtk::HBox SizesHBox;
// Number per Row
Gtk::VBox NoOfColsBox;
Gtk::Label NoOfColsLabel;
Gtk::SpinButton NoOfColsSpinner;
bool AutoRowSize;
Gtk::CheckButton RowHeightButton;
Gtk::VBox XByYLabelVBox;
Gtk::Label padXByYLabel;
Gtk::Label XByYLabel;
// Number per Column
Gtk::VBox NoOfRowsBox;
Gtk::Label NoOfRowsLabel;
Gtk::SpinButton NoOfRowsSpinner;
bool AutoColSize;
Gtk::CheckButton ColumnWidthButton;
// Vertical align
Gtk::Label VertAlignLabel;
Gtk::HBox VertAlignHBox;
Gtk::VBox VertAlignVBox;
Gtk::RadioButtonGroup VertAlignGroup;
Gtk::RadioButton VertCentreRadioButton;
Gtk::RadioButton VertTopRadioButton;
Gtk::RadioButton VertBotRadioButton;
double VertAlign;
// Horizontal align
Gtk::Label HorizAlignLabel;
Gtk::VBox HorizAlignVBox;
Gtk::HBox HorizAlignHBox;
Gtk::RadioButtonGroup HorizAlignGroup;
Gtk::RadioButton HorizCentreRadioButton;
Gtk::RadioButton HorizLeftRadioButton;
Gtk::RadioButton HorizRightRadioButton;
double HorizAlign;
// padding in x
Gtk::VBox XPadBox;
Gtk::Label XPadLabel;
Gtk::SpinButton XPadSpinner;
// padding in y
Gtk::VBox YPadBox;
Gtk::Label YPadLabel;
Gtk::SpinButton YPadSpinner;
// BBox or manual spacing
Gtk::VBox SpacingVBox;
Gtk::RadioButtonGroup SpacingGroup;
Gtk::RadioButton SpaceByBBoxRadioButton;
Gtk::RadioButton SpaceManualRadioButton;
bool ManualSpacing;
// Row height
Gtk::VBox RowHeightVBox;
Gtk::HBox RowHeightBox;
Gtk::Label RowHeightLabel;
Gtk::SpinButton RowHeightSpinner;
// Column width
Gtk::VBox ColumnWidthVBox;
Gtk::HBox ColumnWidthBox;
Gtk::Label ColumnWidthLabel;
Gtk::SpinButton ColumnWidthSpinner;
};
} //namespace Dialog
} //namespace UI
} //namespace Inkscape
#endif /* __TILEDIALOG_H__ */
|