2 /* This file is part of
3 * ======================================================
5 * LyX, The Document Processor
7 * Copyright 1995 Matthias Ettrich
8 * Copyright 1995-2000 The LyX Team.
10 *======================================================*/
12 * FormTabular Interface Class Implementation
17 #include "FormTabular.h"
18 #include "form_tabular.h"
21 #include "insets/insettabular.h"
25 FormTabular::FormTabular(LyXView * lv, Dialogs * d)
26 : FormInset(lv, d, _("Tabular Layout"), new OkCancelReadOnlyPolicy),
27 dialog_(0), tabular_options_(0), column_options_(0),
28 cell_options_(0), longtable_options_(0),
29 inset_(0), actCell_(-1)
31 // let the dialog be shown
32 // This is a permanent connection so we won't bother
33 // storing a copy because we won't be disconnecting.
34 d->showTabular.connect(slot(this, &FormTabular::showInset));
35 d->updateTabular.connect(slot(this, &FormTabular::updateInset));
39 FormTabular::~FormTabular()
42 delete tabular_options_;
43 delete column_options_;
45 delete longtable_options_;
49 void FormTabular::redraw()
51 if(form() && form()->visible)
52 fl_redraw_form(form());
56 FL_FORM * outer_form = fl_get_active_folder(dialog_->tabFolder);
57 if (outer_form && outer_form->visible)
58 fl_redraw_form(outer_form);
62 FL_FORM * FormTabular::form() const
64 if (dialog_) return dialog_->form;
69 void FormTabular::disconnect()
72 FormInset::disconnect();
76 void FormTabular::showInset(InsetTabular * inset)
78 if (inset == 0) return;
80 // If connected to another inset, disconnect from it.
81 if (inset_ != inset) {
83 ih_ = inset->hideDialog.connect(slot(this, &FormTabular::hide));
91 void FormTabular::updateInset(InsetTabular * inset)
93 if (inset == 0 || inset_ == 0) return;
95 // If connected to another inset, disconnect from it.
96 if (inset_ != inset) {
98 ih_ = inset->hideDialog.connect(slot(this, &FormTabular::hide));
106 void FormTabular::build()
108 dialog_ = build_tabular();
109 tabular_options_ = build_tabular_options();
110 column_options_ = build_column_options();
111 cell_options_ = build_cell_options();
112 longtable_options_ = build_longtable_options();
114 // Workaround dumb xforms sizing bug
118 fl_set_input_return(column_options_->input_column_width,
120 fl_set_input_return(column_options_->input_special_alignment,
122 fl_set_input_return(cell_options_->input_mcolumn_width,
124 fl_set_input_return(cell_options_->input_special_multialign,
127 fl_addto_tabfolder(dialog_->tabFolder, _("Tabular"),
128 tabular_options_->form);
129 fl_addto_tabfolder(dialog_->tabFolder, _("Column/Row"),
130 column_options_->form);
131 fl_addto_tabfolder(dialog_->tabFolder, _("Cell"),
132 cell_options_->form);
133 fl_addto_tabfolder(dialog_->tabFolder, _("LongTable"),
134 longtable_options_->form);
138 void FormTabular::update()
140 if (!inset_ || !inset_->tabular)
143 LyXTabular * tabular = inset_->tabular;
152 actCell_ = cell = inset_->GetActCell();
153 int column = tabular->column_of_cell(cell)+1;
154 fl_set_object_label(dialog_->text_warning,"");
155 fl_activate_object(column_options_->input_special_alignment);
156 fl_activate_object(cell_options_->input_special_multialign);
157 fl_activate_object(column_options_->input_column_width);
158 sprintf(buf,"%d",column);
159 fl_set_input(dialog_->input_tabular_column, buf);
160 fl_deactivate_object(dialog_->input_tabular_column);
161 int row = tabular->row_of_cell(cell)+1;
162 sprintf(buf,"%d",row);
163 fl_set_input(dialog_->input_tabular_row, buf);
164 fl_deactivate_object(dialog_->input_tabular_row);
165 if (tabular->IsMultiColumn(cell)) {
166 fl_set_button(cell_options_->radio_multicolumn, 1);
167 fl_set_button(cell_options_->radio_border_top,
168 tabular->TopLine(cell)?1:0);
169 fl_activate_object(cell_options_->radio_border_top);
170 fl_set_object_lcol(cell_options_->radio_border_top, FL_BLACK);
171 fl_set_button(cell_options_->radio_border_bottom,
172 tabular->BottomLine(cell)?1:0);
173 fl_activate_object(cell_options_->radio_border_bottom);
174 fl_set_object_lcol(cell_options_->radio_border_bottom, FL_BLACK);
175 fl_set_button(cell_options_->radio_border_left,
176 tabular->LeftLine(cell)?1:0);
177 fl_activate_object(cell_options_->radio_border_left);
178 fl_set_object_lcol(cell_options_->radio_border_left, FL_BLACK);
179 fl_set_button(cell_options_->radio_border_right,
180 tabular->RightLine(cell)?1:0);
181 fl_activate_object(cell_options_->radio_border_right);
182 fl_set_object_lcol(cell_options_->radio_border_right, FL_BLACK);
183 pwidth = tabular->GetMColumnPWidth(cell);
184 align = tabular->GetAlignment(cell);
185 if (!pwidth.empty() || (align == LYX_ALIGN_LEFT))
186 fl_set_button(cell_options_->radio_align_left, 1);
187 else if (align == LYX_ALIGN_RIGHT)
188 fl_set_button(cell_options_->radio_align_right, 1);
190 fl_set_button(cell_options_->radio_align_center, 1);
191 fl_activate_object(cell_options_->radio_align_left);
192 fl_set_object_lcol(cell_options_->radio_align_left, FL_BLACK);
193 fl_activate_object(cell_options_->radio_align_right);
194 fl_set_object_lcol(cell_options_->radio_align_right, FL_BLACK);
195 fl_activate_object(cell_options_->radio_align_center);
196 fl_set_object_lcol(cell_options_->radio_align_center, FL_BLACK);
197 align = tabular->GetVAlignment(cell);
198 fl_set_button(cell_options_->radio_valign_top, 0);
199 fl_set_button(cell_options_->radio_valign_bottom, 0);
200 fl_set_button(cell_options_->radio_valign_center, 0);
201 if (pwidth.empty() || (align == LyXTabular::LYX_VALIGN_CENTER))
202 fl_set_button(cell_options_->radio_valign_center, 1);
203 else if (align == LyXTabular::LYX_VALIGN_BOTTOM)
204 fl_set_button(cell_options_->radio_valign_bottom, 1);
206 fl_set_button(cell_options_->radio_valign_top, 1);
207 fl_activate_object(cell_options_->radio_valign_top);
208 fl_set_object_lcol(cell_options_->radio_valign_top, FL_BLACK);
209 fl_activate_object(cell_options_->radio_valign_bottom);
210 fl_set_object_lcol(cell_options_->radio_valign_bottom, FL_BLACK);
211 fl_activate_object(cell_options_->radio_valign_center);
212 fl_set_object_lcol(cell_options_->radio_valign_center, FL_BLACK);
213 special = tabular->GetAlignSpecial(cell,LyXTabular::SET_SPECIAL_MULTI);
214 fl_set_input(cell_options_->input_special_multialign, special.c_str());
215 fl_set_input(cell_options_->input_mcolumn_width,pwidth.c_str());
216 if (!lv_->buffer()->isReadonly()) {
217 fl_activate_object(cell_options_->input_special_multialign);
218 fl_set_object_lcol(cell_options_->input_special_multialign,
220 fl_activate_object(cell_options_->input_mcolumn_width);
221 fl_set_object_lcol(cell_options_->input_mcolumn_width, FL_BLACK);
223 if (!pwidth.empty()) {
224 fl_deactivate_object(cell_options_->radio_align_left);
225 fl_deactivate_object(cell_options_->radio_align_right);
226 fl_deactivate_object(cell_options_->radio_align_center);
227 fl_set_object_lcol(cell_options_->radio_align_left, FL_INACTIVE);
228 fl_set_object_lcol(cell_options_->radio_align_right, FL_INACTIVE);
229 fl_set_object_lcol(cell_options_->radio_align_center, FL_INACTIVE);
230 fl_activate_object(cell_options_->radio_valign_top);
231 fl_activate_object(cell_options_->radio_valign_bottom);
232 fl_activate_object(cell_options_->radio_valign_center);
233 fl_set_object_lcol(cell_options_->radio_valign_top, FL_BLACK);
234 fl_set_object_lcol(cell_options_->radio_valign_bottom, FL_BLACK);
235 fl_set_object_lcol(cell_options_->radio_valign_center, FL_BLACK);
237 fl_activate_object(cell_options_->radio_align_left);
238 fl_activate_object(cell_options_->radio_align_right);
239 fl_activate_object(cell_options_->radio_align_center);
240 fl_set_object_lcol(cell_options_->radio_align_left, FL_BLACK);
241 fl_set_object_lcol(cell_options_->radio_align_right, FL_BLACK);
242 fl_set_object_lcol(cell_options_->radio_align_center, FL_BLACK);
243 fl_deactivate_object(cell_options_->radio_valign_top);
244 fl_deactivate_object(cell_options_->radio_valign_bottom);
245 fl_deactivate_object(cell_options_->radio_valign_center);
246 fl_set_object_lcol(cell_options_->radio_valign_top, FL_INACTIVE);
247 fl_set_object_lcol(cell_options_->radio_valign_bottom,FL_INACTIVE);
248 fl_set_object_lcol(cell_options_->radio_valign_center,FL_INACTIVE);
251 fl_set_button(cell_options_->radio_multicolumn, 0);
252 fl_set_button(cell_options_->radio_border_top, 0);
253 fl_deactivate_object(cell_options_->radio_border_top);
254 fl_set_object_lcol(cell_options_->radio_border_top, FL_INACTIVE);
255 fl_set_button(cell_options_->radio_border_bottom, 0);
256 fl_deactivate_object(cell_options_->radio_border_bottom);
257 fl_set_object_lcol(cell_options_->radio_border_bottom, FL_INACTIVE);
258 fl_set_button(cell_options_->radio_border_left, 0);
259 fl_deactivate_object(cell_options_->radio_border_left);
260 fl_set_object_lcol(cell_options_->radio_border_left, FL_INACTIVE);
261 fl_set_button(cell_options_->radio_border_right, 0);
262 fl_deactivate_object(cell_options_->radio_border_right);
263 fl_set_object_lcol(cell_options_->radio_border_right, FL_INACTIVE);
264 fl_set_button(cell_options_->radio_align_left, 0);
265 fl_deactivate_object(cell_options_->radio_align_left);
266 fl_set_object_lcol(cell_options_->radio_align_left, FL_INACTIVE);
267 fl_set_button(cell_options_->radio_align_right, 0);
268 fl_deactivate_object(cell_options_->radio_align_right);
269 fl_set_object_lcol(cell_options_->radio_align_right, FL_INACTIVE);
270 fl_set_button(cell_options_->radio_align_center, 0);
271 fl_deactivate_object(cell_options_->radio_align_center);
272 fl_set_object_lcol(cell_options_->radio_align_center, FL_INACTIVE);
273 fl_set_button(cell_options_->radio_valign_top, 0);
274 fl_deactivate_object(cell_options_->radio_valign_top);
275 fl_set_object_lcol(cell_options_->radio_valign_top, FL_INACTIVE);
276 fl_set_button(cell_options_->radio_valign_bottom, 0);
277 fl_deactivate_object(cell_options_->radio_valign_bottom);
278 fl_set_object_lcol(cell_options_->radio_valign_bottom, FL_INACTIVE);
279 fl_set_button(cell_options_->radio_valign_center, 0);
280 fl_deactivate_object(cell_options_->radio_valign_center);
281 fl_set_object_lcol(cell_options_->radio_valign_center, FL_INACTIVE);
282 fl_set_input(cell_options_->input_special_multialign, "");
283 fl_deactivate_object(cell_options_->input_special_multialign);
284 fl_set_object_lcol(cell_options_->input_special_multialign, FL_INACTIVE);
285 fl_set_input(cell_options_->input_mcolumn_width,"");
286 fl_deactivate_object(cell_options_->input_mcolumn_width);
287 fl_set_object_lcol(cell_options_->input_mcolumn_width, FL_INACTIVE);
289 if (tabular->GetRotateCell(cell))
290 fl_set_button(cell_options_->radio_rotate_cell, 1);
292 fl_set_button(cell_options_->radio_rotate_cell, 0);
293 if (tabular->TopLine(cell, true))
294 fl_set_button(column_options_->radio_border_top, 1);
296 fl_set_button(column_options_->radio_border_top, 0);
297 if (tabular->BottomLine(cell, true))
298 fl_set_button(column_options_->radio_border_bottom, 1);
300 fl_set_button(column_options_->radio_border_bottom, 0);
301 if (tabular->LeftLine(cell, true))
302 fl_set_button(column_options_->radio_border_left, 1);
304 fl_set_button(column_options_->radio_border_left, 0);
305 if (tabular->RightLine(cell, true))
306 fl_set_button(column_options_->radio_border_right, 1);
308 fl_set_button(column_options_->radio_border_right, 0);
309 special = tabular->GetAlignSpecial(cell,LyXTabular::SET_SPECIAL_COLUMN);
310 fl_set_input(column_options_->input_special_alignment, special.c_str());
311 if (lv_->buffer()->isReadonly())
312 fl_deactivate_object(column_options_->input_special_alignment);
314 fl_activate_object(column_options_->input_special_alignment);
315 pwidth = tabular->GetColumnPWidth(cell);
316 fl_set_input(column_options_->input_column_width,pwidth.c_str());
317 if (lv_->buffer()->isReadonly()) {
318 fl_deactivate_object(column_options_->input_column_width);
320 fl_activate_object(column_options_->input_column_width);
322 if (!pwidth.empty()) {
323 fl_activate_object(cell_options_->radio_useminipage);
324 fl_set_object_lcol(cell_options_->radio_useminipage, FL_BLACK);
325 if (tabular->GetUsebox(cell) == 2)
326 fl_set_button(cell_options_->radio_useminipage, 1);
328 fl_set_button(cell_options_->radio_useminipage, 0);
330 fl_deactivate_object(cell_options_->radio_useminipage);
331 fl_set_object_lcol(cell_options_->radio_useminipage, FL_INACTIVE);
332 fl_set_button(cell_options_->radio_useminipage,0);
334 align = tabular->GetAlignment(cell, true);
335 fl_set_button(column_options_->radio_align_left, 0);
336 fl_set_button(column_options_->radio_align_right, 0);
337 fl_set_button(column_options_->radio_align_center, 0);
338 if (!pwidth.empty() || (align == LYX_ALIGN_LEFT))
339 fl_set_button(column_options_->radio_align_left, 1);
340 else if (align == LYX_ALIGN_RIGHT)
341 fl_set_button(column_options_->radio_align_right, 1);
343 fl_set_button(column_options_->radio_align_center, 1);
344 align = tabular->GetVAlignment(cell, true);
345 fl_set_button(column_options_->radio_valign_top, 0);
346 fl_set_button(column_options_->radio_valign_bottom, 0);
347 fl_set_button(column_options_->radio_valign_center, 0);
348 if (pwidth.empty() || (align == LyXTabular::LYX_VALIGN_CENTER))
349 fl_set_button(column_options_->radio_valign_center, 1);
350 else if (align == LyXTabular::LYX_VALIGN_BOTTOM)
351 fl_set_button(column_options_->radio_valign_bottom, 1);
353 fl_set_button(column_options_->radio_valign_top, 1);
354 if (!pwidth.empty()) {
355 fl_deactivate_object(column_options_->radio_align_left);
356 fl_deactivate_object(column_options_->radio_align_right);
357 fl_deactivate_object(column_options_->radio_align_center);
358 fl_set_object_lcol(column_options_->radio_align_left, FL_INACTIVE);
359 fl_set_object_lcol(column_options_->radio_align_right, FL_INACTIVE);
360 fl_set_object_lcol(column_options_->radio_align_center, FL_INACTIVE);
361 fl_activate_object(column_options_->radio_valign_top);
362 fl_activate_object(column_options_->radio_valign_bottom);
363 fl_activate_object(column_options_->radio_valign_center);
364 fl_set_object_lcol(column_options_->radio_valign_top, FL_BLACK);
365 fl_set_object_lcol(column_options_->radio_valign_bottom, FL_BLACK);
366 fl_set_object_lcol(column_options_->radio_valign_center, FL_BLACK);
368 fl_activate_object(column_options_->radio_align_left);
369 fl_activate_object(column_options_->radio_align_right);
370 fl_activate_object(column_options_->radio_align_center);
371 fl_set_object_lcol(column_options_->radio_align_left, FL_BLACK);
372 fl_set_object_lcol(column_options_->radio_align_right, FL_BLACK);
373 fl_set_object_lcol(column_options_->radio_align_center, FL_BLACK);
374 fl_deactivate_object(column_options_->radio_valign_top);
375 fl_deactivate_object(column_options_->radio_valign_bottom);
376 fl_deactivate_object(column_options_->radio_valign_center);
377 fl_set_object_lcol(column_options_->radio_valign_top, FL_INACTIVE);
378 fl_set_object_lcol(column_options_->radio_valign_bottom, FL_INACTIVE);
379 fl_set_object_lcol(column_options_->radio_valign_center, FL_INACTIVE);
381 fl_set_button(tabular_options_->radio_longtable,
382 tabular->IsLongTabular());
383 if (tabular->IsLongTabular()) {
384 fl_activate_object(longtable_options_->radio_lt_firsthead);
385 fl_activate_object(longtable_options_->radio_lt_head);
386 fl_activate_object(longtable_options_->radio_lt_foot);
387 fl_activate_object(longtable_options_->radio_lt_lastfoot);
388 fl_activate_object(longtable_options_->radio_lt_newpage);
389 fl_set_object_lcol(longtable_options_->radio_lt_firsthead, FL_BLACK);
390 fl_set_object_lcol(longtable_options_->radio_lt_head, FL_BLACK);
391 fl_set_object_lcol(longtable_options_->radio_lt_foot, FL_BLACK);
392 fl_set_object_lcol(longtable_options_->radio_lt_lastfoot, FL_BLACK);
393 fl_set_object_lcol(longtable_options_->radio_lt_newpage, FL_BLACK);
395 fl_set_button(longtable_options_->radio_lt_firsthead,
396 tabular->GetRowOfLTFirstHead(cell, dummy));
397 fl_set_button(longtable_options_->radio_lt_head,
398 tabular->GetRowOfLTHead(cell, dummy));
399 fl_set_button(longtable_options_->radio_lt_foot,
400 tabular->GetRowOfLTFoot(cell, dummy));
401 fl_set_button(longtable_options_->radio_lt_lastfoot,
402 tabular->GetRowOfLTLastFoot(cell, dummy));
403 fl_set_button(longtable_options_->radio_lt_newpage,
404 tabular->GetLTNewPage(cell));
406 fl_deactivate_object(longtable_options_->radio_lt_firsthead);
407 fl_deactivate_object(longtable_options_->radio_lt_head);
408 fl_deactivate_object(longtable_options_->radio_lt_foot);
409 fl_deactivate_object(longtable_options_->radio_lt_lastfoot);
410 fl_deactivate_object(longtable_options_->radio_lt_newpage);
411 fl_set_button(longtable_options_->radio_lt_firsthead,0);
412 fl_set_button(longtable_options_->radio_lt_head,0);
413 fl_set_button(longtable_options_->radio_lt_foot,0);
414 fl_set_button(longtable_options_->radio_lt_lastfoot,0);
415 fl_set_button(longtable_options_->radio_lt_newpage,0);
416 fl_set_object_lcol(longtable_options_->radio_lt_firsthead,FL_INACTIVE);
417 fl_set_object_lcol(longtable_options_->radio_lt_head, FL_INACTIVE);
418 fl_set_object_lcol(longtable_options_->radio_lt_foot, FL_INACTIVE);
419 fl_set_object_lcol(longtable_options_->radio_lt_lastfoot, FL_INACTIVE);
420 fl_set_object_lcol(longtable_options_->radio_lt_newpage, FL_INACTIVE);
422 fl_set_button(tabular_options_->radio_rotate_tabular,
423 tabular->GetRotateTabular());
426 bool FormTabular::input(FL_OBJECT * ob, long)
431 LyXTabular * tabular = inset_->tabular;
433 LyXTabular::Feature num = LyXTabular::LAST_ACTION;
436 int cell = inset_->GetActCell();
437 if (actCell_ != cell) {
439 fl_set_object_label(dialog_->text_warning,
440 _("Warning: Wrong Cursor position, updated window"));
441 fl_show_object(dialog_->text_warning);
444 // No point in processing directives that you can't do anything with
445 // anyhow, so exit now if the buffer is read-only.
446 if (lv_->buffer()->isReadonly()) {
450 if (ob == column_options_->input_column_width) {
451 string str = fl_get_input(ob);
452 if (!str.empty() && !isValidLength(str)) {
453 fl_set_object_label(dialog_->text_warning,
454 _("Warning: Invalid Length (valid example: 10mm)"));
455 fl_show_object(dialog_->text_warning);
458 inset_->TabularFeatures(lv_->view(), LyXTabular::SET_PWIDTH,str);
459 update(); // update for alignment
462 if (ob == cell_options_->input_mcolumn_width) {
463 string str = fl_get_input(ob);
464 if (!str.empty() && !isValidLength(str)) {
465 fl_set_object_label(dialog_->text_warning,
466 _("Warning: Invalid Length (valid example: 10mm)"));
467 fl_show_object(dialog_->text_warning);
470 inset_->TabularFeatures(lv_->view(), LyXTabular::SET_MPWIDTH,str);
471 update(); // update for alignment
474 string str = fl_get_input(column_options_->input_column_width);
475 if (!str.empty() && !isValidLength(str)) {
477 dialog_->text_warning,
478 _("Warning: Invalid Length (valid example: 10mm)"));
479 fl_show_object(dialog_->text_warning);
482 if (ob == tabular_options_->button_append_row)
483 num = LyXTabular::APPEND_ROW;
484 else if (ob == tabular_options_->button_append_column)
485 num = LyXTabular::APPEND_COLUMN;
486 else if (ob == tabular_options_->button_delete_row)
487 num = LyXTabular::DELETE_ROW;
488 else if (ob == tabular_options_->button_delete_column)
489 num = LyXTabular::DELETE_COLUMN;
490 else if (ob == tabular_options_->button_set_borders)
491 num = LyXTabular::SET_ALL_LINES;
492 else if (ob == tabular_options_->button_unset_borders)
493 num = LyXTabular::UNSET_ALL_LINES;
494 else if (ob == column_options_->radio_border_top)
495 num = LyXTabular::TOGGLE_LINE_TOP;
496 else if (ob == column_options_->radio_border_bottom)
497 num = LyXTabular::TOGGLE_LINE_BOTTOM;
498 else if (ob == column_options_->radio_border_left)
499 num = LyXTabular::TOGGLE_LINE_LEFT;
500 else if (ob == column_options_->radio_border_right)
501 num = LyXTabular::TOGGLE_LINE_RIGHT;
502 else if (ob == column_options_->radio_align_left)
503 num = LyXTabular::ALIGN_LEFT;
504 else if (ob == column_options_->radio_align_right)
505 num = LyXTabular::ALIGN_RIGHT;
506 else if (ob == column_options_->radio_align_center)
507 num = LyXTabular::ALIGN_CENTER;
508 else if (ob == column_options_->radio_valign_top)
509 num = LyXTabular::VALIGN_TOP;
510 else if (ob == column_options_->radio_valign_bottom)
511 num = LyXTabular::VALIGN_BOTTOM;
512 else if (ob == column_options_->radio_valign_center)
513 num = LyXTabular::VALIGN_CENTER;
514 else if (ob == cell_options_->radio_multicolumn)
515 num = LyXTabular::MULTICOLUMN;
516 else if (ob == tabular_options_->radio_longtable) {
517 s = fl_get_button(tabular_options_->radio_longtable);
519 num = LyXTabular::SET_LONGTABULAR;
520 fl_activate_object(longtable_options_->radio_lt_firsthead);
521 fl_activate_object(longtable_options_->radio_lt_head);
522 fl_activate_object(longtable_options_->radio_lt_foot);
523 fl_activate_object(longtable_options_->radio_lt_lastfoot);
524 fl_activate_object(longtable_options_->radio_lt_newpage);
526 fl_set_button(longtable_options_->radio_lt_firsthead,
527 tabular->GetRowOfLTFirstHead(cell, dummy));
528 fl_set_button(longtable_options_->radio_lt_head,
529 tabular->GetRowOfLTHead(cell, dummy));
530 fl_set_button(longtable_options_->radio_lt_foot,
531 tabular->GetRowOfLTFoot(cell, dummy));
532 fl_set_button(longtable_options_->radio_lt_lastfoot,
533 tabular->GetRowOfLTLastFoot(cell, dummy));
534 fl_set_button(longtable_options_->radio_lt_firsthead,
535 tabular->GetLTNewPage(cell));
537 num = LyXTabular::UNSET_LONGTABULAR;
538 fl_deactivate_object(longtable_options_->radio_lt_firsthead);
539 fl_deactivate_object(longtable_options_->radio_lt_head);
540 fl_deactivate_object(longtable_options_->radio_lt_foot);
541 fl_deactivate_object(longtable_options_->radio_lt_lastfoot);
542 fl_deactivate_object(longtable_options_->radio_lt_newpage);
543 fl_set_button(longtable_options_->radio_lt_firsthead,0);
544 fl_set_button(longtable_options_->radio_lt_head,0);
545 fl_set_button(longtable_options_->radio_lt_foot,0);
546 fl_set_button(longtable_options_->radio_lt_lastfoot,0);
547 fl_set_button(longtable_options_->radio_lt_newpage,0);
548 fl_set_object_lcol(longtable_options_->radio_lt_firsthead,
550 fl_set_object_lcol(longtable_options_->radio_lt_head, FL_INACTIVE);
551 fl_set_object_lcol(longtable_options_->radio_lt_foot, FL_INACTIVE);
552 fl_set_object_lcol(longtable_options_->radio_lt_lastfoot,
554 fl_set_object_lcol(longtable_options_->radio_lt_newpage,
557 } else if (ob == tabular_options_->radio_rotate_tabular) {
558 s = fl_get_button(tabular_options_->radio_rotate_tabular);
560 num = LyXTabular::SET_ROTATE_TABULAR;
562 num = LyXTabular::UNSET_ROTATE_TABULAR;
563 } else if (ob == cell_options_->radio_rotate_cell) {
564 s = fl_get_button(cell_options_->radio_rotate_cell);
566 num = LyXTabular::SET_ROTATE_CELL;
568 num = LyXTabular::UNSET_ROTATE_CELL;
569 } else if (ob == cell_options_->radio_useminipage) {
570 num = LyXTabular::SET_USEBOX;
572 } else if (ob == longtable_options_->radio_lt_firsthead) {
573 num = LyXTabular::SET_LTFIRSTHEAD;
574 } else if (ob == longtable_options_->radio_lt_head) {
575 num = LyXTabular::SET_LTHEAD;
576 } else if (ob == longtable_options_->radio_lt_foot) {
577 num = LyXTabular::SET_LTFOOT;
578 } else if (ob == longtable_options_->radio_lt_lastfoot) {
579 num = LyXTabular::SET_LTLASTFOOT;
580 } else if (ob == longtable_options_->radio_lt_newpage) {
581 num = LyXTabular::SET_LTNEWPAGE;
582 } else if (ob == column_options_->input_special_alignment) {
583 special = fl_get_input(column_options_->input_special_alignment);
584 num = LyXTabular::SET_SPECIAL_COLUMN;
585 } else if (ob == cell_options_->input_special_multialign) {
586 special = fl_get_input(cell_options_->input_special_multialign);
587 num = LyXTabular::SET_SPECIAL_MULTI;
588 } else if (ob == cell_options_->radio_border_top)
589 num = LyXTabular::M_TOGGLE_LINE_TOP;
590 else if (ob == cell_options_->radio_border_bottom)
591 num = LyXTabular::M_TOGGLE_LINE_BOTTOM;
592 else if (ob == cell_options_->radio_border_left)
593 num = LyXTabular::M_TOGGLE_LINE_LEFT;
594 else if (ob == cell_options_->radio_border_right)
595 num = LyXTabular::M_TOGGLE_LINE_RIGHT;
596 else if (ob == cell_options_->radio_align_left)
597 num = LyXTabular::M_ALIGN_LEFT;
598 else if (ob == cell_options_->radio_align_right)
599 num = LyXTabular::M_ALIGN_RIGHT;
600 else if (ob == cell_options_->radio_align_center)
601 num = LyXTabular::M_ALIGN_CENTER;
602 else if (ob == cell_options_->radio_valign_top)
603 num = LyXTabular::M_VALIGN_TOP;
604 else if (ob == cell_options_->radio_valign_bottom)
605 num = LyXTabular::M_VALIGN_BOTTOM;
606 else if (ob == cell_options_->radio_valign_center)
607 num = LyXTabular::M_VALIGN_CENTER;
611 inset_->TabularFeatures(lv_->view(), num, special);