1
////////////////////////////////////////////////////////////////////////////////
3
// This file is part of Toolkit for Conceptual Modeling (TCM).
4
// (c) copyright 1997, Vrije Universiteit Amsterdam.
5
// Author: Frank Dehne (frank@cs.vu.nl).
7
// TCM is free software; you can redistribute it and/or modify
8
// it under the terms of the GNU General Public License as published by
9
// the Free Software Foundation; either version 2 of the License, or
10
// (at your option) any later version.
12
// TCM is distributed in the hope that it will be useful,
13
// but WITHOUT ANY WARRANTY; without even the implied warranty of
14
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
// GNU General Public License for more details.
17
// You should have received a copy of the GNU General Public License
18
// along with TCM; if not, write to the Free Software
19
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
21
////////////////////////////////////////////////////////////////////////////////
22
#include "tablestubs.h"
24
#include "fileselectiondialog.h"
25
#include "togglelistdialog.h"
26
#include "textalignmentdialog.h"
27
#include "linewidthsidedialog.h"
28
#include "linestylesidedialog.h"
29
#include "texteditdialog.h"
30
#include "scaledialog.h"
34
void TableStubs::AppendCB(Widget, XtPointer clientData, XtPointer) {
35
((Table *)clientData)->Append();
38
void TableStubs::AppendToggleCB(Widget, XtPointer clientData, XtPointer) {
39
Table *tab = (Table *)clientData;
40
FileSelectionDialog *d = tab->GetFileSelectionDialog();
44
tab->SetAppendToggle(True);
46
tab->SetAppendToggle(False);
49
void TableStubs::AddRowsOKCB(Widget, XtPointer clientData, XtPointer) {
50
Table *t = (Table *)clientData;
52
t->GetPromptToggleDialog()->GetTextString(&txt);
53
t->AddRows(txt.toint());
56
void TableStubs::AddColumnsOKCB(Widget, XtPointer clientData, XtPointer) {
57
Table *t = (Table *)clientData;
59
t->GetPromptToggleDialog()->GetTextString(&txt);
60
t->AddColumns(txt.toint());
63
void TableStubs::AddRowsToggleCB(Widget, XtPointer cd, XtPointer) {
64
Table *tab = (Table *)cd;
65
ToggleListDialog *d = tab->GetPromptToggleDialog();
66
int which = d->GetValue();
67
if (check(which >= 0))
68
tab->SetAddRowsToggle(which);
71
void TableStubs::AddColumnsToggleCB(Widget, XtPointer cd, XtPointer) {
72
Table *tab = (Table *)cd;
73
ToggleListDialog *d = tab->GetPromptToggleDialog();
74
int which = d->GetValue();
75
if (check(which >= 0))
76
tab->SetAddColumnsToggle(which);
79
void TableStubs::NumberOfRowsCB(Widget, XtPointer clientData, XtPointer) {
80
Table *t = (Table *)clientData;
81
t->SetDefaultNumberOfRows( t->GetScaleDialog()->GetScaleValue());
84
void TableStubs::NumberOfColumnsCB(Widget, XtPointer cd, XtPointer) {
85
Table *t = (Table *)cd;
86
t->SetDefaultNumberOfColumns(t->GetScaleDialog()->GetScaleValue());
89
void TableStubs::RowHeightCB(Widget, XtPointer clientData, XtPointer) {
90
Table *t = (Table *)clientData;
91
t->SetDefaultRowHeight(t->GetScaleDialog()->GetScaleValue());
94
void TableStubs::ColumnWidthCB(Widget, XtPointer clientData, XtPointer) {
95
Table *t = (Table *)clientData;
96
t->SetDefaultColumnWidth(t->GetScaleDialog()->GetScaleValue());
99
void TableStubs::MarginWidthCB(Widget, XtPointer clientData, XtPointer) {
100
Table *t = (Table *)clientData;
101
t->SetMarginWidth(t->GetScaleDialog()->GetScaleValue());
104
void TableStubs::MarginHeightCB(Widget, XtPointer clientData, XtPointer) {
105
Table *t = (Table *)clientData;
106
t->SetMarginHeight(t->GetScaleDialog()->GetScaleValue());
109
void TableStubs::AnnotateCellCB(Widget, XtPointer clientData, XtPointer) {
110
((Table *)clientData)->AnnotateCell();
113
void TableStubs::AnnotateCellOKCB(Widget, XtPointer clientData, XtPointer) {
114
Table *tb = (Table *)clientData;
118
tb->GetEltAnnotationDialog()->GetTextString(&t);
119
tb->SetCellAnnotation(&t);
122
void TableStubs::ShowRowColumnLabelsCB(Widget w, XtPointer cd, XtPointer) {
123
((Table *)cd)->ShowRowColumnLabels(XmToggleButtonGetState(w));
126
void TableStubs::PrintRowColumnLabelsCB(Widget w, XtPointer cd, XtPointer) {
127
((Table *)cd)->PrintRowColumnLabels(XmToggleButtonGetState(w));
130
void TableStubs::AddRowsCB(Widget, XtPointer cd, XtPointer) {
131
((Table *)cd)->AddRows();
134
void TableStubs::AddColumnsCB(Widget, XtPointer cd, XtPointer) {
135
((Table *)cd)->AddColumns();
138
void TableStubs::DeleteRowsCB(Widget, XtPointer cd, XtPointer) {
139
((Table *)cd)->DeleteRows();
142
void TableStubs::DeleteColumnsCB(Widget, XtPointer cd, XtPointer) {
143
((Table *)cd)->DeleteColumns();
146
void TableStubs::PurgeCB(Widget, XtPointer cd, XtPointer) {
147
((Table *)cd)->Purge();
150
void TableStubs::DeleteAllCB(Widget, XtPointer cd, XtPointer) {
151
((Table *)cd)->DeleteAll();
154
void TableStubs::CutTextsCB(Widget, XtPointer cd, XtPointer) {
155
((Table *)cd)->CutTexts();
158
void TableStubs::CopyTextsCB(Widget, XtPointer cd, XtPointer) {
159
((Table *)cd)->CopyTexts();
162
void TableStubs::PasteTextsCB(Widget, XtPointer cd, XtPointer) {
163
((Table *)cd)->PasteTexts();
166
void TableStubs::SelectAllCB(Widget, XtPointer cd, XtPointer) {
167
((Table *)cd)->SelectAll();
170
void TableStubs::SortRowsCB(Widget, XtPointer cd, XtPointer) {
171
((Table *)cd)->SortRows();
174
void TableStubs::SortColumnsCB(Widget, XtPointer cd, XtPointer) {
175
((Table *)cd)->SortColumns();
178
void TableStubs::SetNumberOfRowsCB(Widget, XtPointer cd, XtPointer) {
179
((Table *)cd)->SetDefaultNumberOfRows();
182
void TableStubs::SetNumberOfColumnsCB(Widget, XtPointer cd, XtPointer) {
183
((Table *)cd)->SetDefaultNumberOfColumns();
186
void TableStubs::SetDefaultRowHeightCB(Widget, XtPointer cd, XtPointer) {
187
((Table *)cd)->SetDefaultRowHeight();
190
void TableStubs::SetDefaultColumnWidthCB(Widget, XtPointer cd, XtPointer) {
191
((Table *)cd)->SetDefaultColumnWidth();
194
void TableStubs::SetMarginWidthCB(Widget, XtPointer cd, XtPointer) {
195
((Table *)cd)->UpdateMarginWidth();
198
void TableStubs::SetMarginHeightCB(Widget, XtPointer cd, XtPointer) {
199
((Table *)cd)->UpdateMarginHeight();
202
void TableStubs::DefaultRowAlignmentCB(Widget, XtPointer cd, XtPointer) {
203
((Table *)cd)->DefaultRowAlignment();
206
void TableStubs::DefaultColumnAlignmentCB(Widget, XtPointer cd, XtPointer) {
207
((Table *)cd)->DefaultColumnAlignment();
210
void TableStubs::UpdateRowAlignmentCB(Widget, XtPointer cd, XtPointer) {
211
((Table *)cd)->UpdateRowAlignment();
214
void TableStubs::UpdateColumnAlignmentCB(Widget, XtPointer cd, XtPointer) {
215
((Table *)cd)->UpdateColumnAlignment();
218
void TableStubs::DefaultColumnAlignmentOKCB(Widget, XtPointer cd, XtPointer) {
219
Table *t = (Table *)cd;
220
NToggleListDialog *d = t->GetColumnAlignmentDialog();
221
int n = d->GetValue(0);
223
d->GetItem(0, n, &text);
224
t->UpdateDefaultColumnAlignment(TextAlign::String2Type(&text));
227
void TableStubs::DefaultColumnAlignmentDefaultCB(
228
Widget, XtPointer cd, XtPointer) {
229
((Table *) cd)->ShowConfigColumnAlignment();
232
void TableStubs::UpdateColumnAlignmentOKCB(Widget, XtPointer cd, XtPointer) {
233
Table *t = (Table *)cd;
234
NToggleListDialog *d = t->GetColumnAlignmentDialog();
235
int n = d->GetValue(0);
237
d->GetItem(0, n, &text);
238
t->UpdateColumnAlignment(TextAlign::String2Type(&text));
241
void TableStubs::UpdateColumnAlignmentDefaultCB(
242
Widget, XtPointer cd, XtPointer) {
243
((Table *) cd)->ShowDefaultColumnAlignment();
246
void TableStubs::DefaultRowAlignmentOKCB(Widget, XtPointer cd, XtPointer) {
247
Table *t = (Table *)cd;
248
TextAlignmentDialog *d = t->GetRowAlignmentDialog();
249
int n = d->GetValue(0);
251
d->GetItem(0, n, &text);
252
t->UpdateDefaultRowAlignment(TextAlign::String2Type(&text));
255
void TableStubs::DefaultRowAlignmentDefaultCB(Widget, XtPointer cd, XtPointer) {
256
((Table *) cd)->ShowConfigRowAlignment();
259
void TableStubs::UpdateRowAlignmentOKCB(Widget, XtPointer cd, XtPointer) {
260
Table *t = (Table *)cd;
261
TextAlignmentDialog *d = t->GetRowAlignmentDialog();
262
int n = d->GetValue(0);
264
d->GetItem(0, n, &text);
265
t->UpdateRowAlignment(TextAlign::String2Type(&text));
268
void TableStubs::UpdateRowAlignmentDefaultCB(Widget, XtPointer cd, XtPointer) {
269
((Table *) cd)->ShowDefaultRowAlignment();
272
void TableStubs::UpdateTableLineStyleCB(Widget, XtPointer cd, XtPointer) {
273
((Table *)cd)->UpdateTableLineStyle();
276
void TableStubs::UpdateTableLineStyleOKCB(Widget, XtPointer cd, XtPointer) {
277
Table *t = (Table *)cd;
278
LineStyleSideDialog *d = t->GetTableLineStyleDialog();
279
int n = d->GetValue(0);
280
int m = d->GetValue(1);
282
d->GetItem(0, n, &text1);
283
d->GetItem(1, m, &text2);
284
t->UpdateLineStyle(Side::String2Type(&text2),
285
LineStyle::String2Type(&text1));
288
void TableStubs::UpdateTableLineStyleDefaultCB(
289
Widget, XtPointer cd, XtPointer) {
290
((Table *) cd)->ShowDefaultLineStyle();
293
void TableStubs::UpdateTableLineWidthCB(Widget, XtPointer cd, XtPointer) {
294
((Table *)cd)->UpdateTableLineWidth();
297
void TableStubs::UpdateTableLineWidthOKCB(Widget, XtPointer cd, XtPointer) {
298
Table *t = (Table *)cd;
299
LineWidthSideDialog *d = t->GetTableLineWidthDialog();
300
int n = d->GetValue(0);
301
int m = d->GetValue(1);
303
d->GetItem(1, m, &text1);
304
t->UpdateLineWidth(Side::String2Type(&text1), n+1);
307
void TableStubs::UpdateTableLineWidthDefaultCB(
308
Widget, XtPointer cd, XtPointer) {
309
((Table *)cd)->ShowDefaultLineWidth();
312
void TableStubs::UpdateCellTextUnderlineCB(Widget, XtPointer cd, XtPointer) {
313
((Table *)cd)->UpdateCellTextUnderline();