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") ),
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 FL_FORM * FormTabular::form() const
51 if (dialog_ ) return dialog_->form;
56 void FormTabular::disconnect()
59 FormInset::disconnect();
63 void FormTabular::showInset( InsetTabular * inset )
65 if (inset == 0) return;
67 // If connected to another inset, disconnect from it.
68 if (inset_ != inset) {
70 ih_ = inset->hideDialog.connect(slot(this, &FormTabular::hide));
78 void FormTabular::updateInset( InsetTabular * inset )
80 if (inset == 0 || inset_ == 0) return;
82 // If connected to another inset, disconnect from it.
83 if (inset_ != inset) {
85 ih_ = inset->hideDialog.connect(slot(this, &FormTabular::hide));
93 void FormTabular::build()
95 dialog_ = build_tabular();
96 tabular_options_ = build_tabular_options();
97 column_options_ = build_column_options();
98 cell_options_ = build_cell_options();
99 longtable_options_ = build_longtable_options();
101 // Workaround dumb xforms sizing bug
105 fl_set_input_return(column_options_->input_column_width,
107 fl_set_input_return(column_options_->input_special_alignment,
109 fl_set_input_return(cell_options_->input_mcolumn_width,
111 fl_set_input_return(cell_options_->input_special_multialign,
114 fl_addto_tabfolder(dialog_->tabFolder, _("Tabular"),
115 tabular_options_->form);
116 fl_addto_tabfolder(dialog_->tabFolder, _("Column/Row"),
117 column_options_->form);
118 fl_addto_tabfolder(dialog_->tabFolder, _("Cell"),
119 cell_options_->form);
120 fl_addto_tabfolder(dialog_->tabFolder, _("LongTable"),
121 longtable_options_->form);
125 void FormTabular::update()
127 if (!inset_ || !inset_->tabular)
131 * tabular = inset_->tabular;
141 actCell_ = cell = inset_->GetActCell();
142 column = tabular->column_of_cell(cell)+1;
143 fl_set_object_label(dialog_->text_warning,"");
144 fl_activate_object(column_options_->input_special_alignment);
145 fl_activate_object(cell_options_->input_special_multialign);
146 fl_activate_object(column_options_->input_column_width);
147 sprintf(buf,"%d",column);
148 fl_set_input(dialog_->input_tabular_column, buf);
149 fl_deactivate_object(dialog_->input_tabular_column);
150 row = tabular->row_of_cell(cell)+1;
151 sprintf(buf,"%d",row);
152 fl_set_input(dialog_->input_tabular_row, buf);
153 fl_deactivate_object(dialog_->input_tabular_row);
154 if (tabular->IsMultiColumn(cell)) {
155 fl_set_button(cell_options_->radio_multicolumn, 1);
156 fl_set_button(cell_options_->radio_border_top,
157 tabular->TopLine(cell)?1:0);
158 fl_activate_object(cell_options_->radio_border_top);
159 fl_set_object_lcol(cell_options_->radio_border_top, FL_BLACK);
160 fl_set_button(cell_options_->radio_border_bottom,
161 tabular->BottomLine(cell)?1:0);
162 fl_activate_object(cell_options_->radio_border_bottom);
163 fl_set_object_lcol(cell_options_->radio_border_bottom, FL_BLACK);
164 fl_set_button(cell_options_->radio_border_left,
165 tabular->LeftLine(cell)?1:0);
166 fl_activate_object(cell_options_->radio_border_left);
167 fl_set_object_lcol(cell_options_->radio_border_left, FL_BLACK);
168 fl_set_button(cell_options_->radio_border_right,
169 tabular->RightLine(cell)?1:0);
170 fl_activate_object(cell_options_->radio_border_right);
171 fl_set_object_lcol(cell_options_->radio_border_right, FL_BLACK);
172 pwidth = tabular->GetMColumnPWidth(cell);
173 align = tabular->GetAlignment(cell);
174 if (!pwidth.empty() || (align == LYX_ALIGN_LEFT))
175 fl_set_button(cell_options_->radio_align_left, 1);
176 else if (align == LYX_ALIGN_RIGHT)
177 fl_set_button(cell_options_->radio_align_right, 1);
179 fl_set_button(cell_options_->radio_align_center, 1);
180 fl_activate_object(cell_options_->radio_align_left);
181 fl_set_object_lcol(cell_options_->radio_align_left, FL_BLACK);
182 fl_activate_object(cell_options_->radio_align_right);
183 fl_set_object_lcol(cell_options_->radio_align_right, FL_BLACK);
184 fl_activate_object(cell_options_->radio_align_center);
185 fl_set_object_lcol(cell_options_->radio_align_center, FL_BLACK);
186 align = tabular->GetVAlignment(cell);
187 fl_set_button(cell_options_->radio_valign_top, 0);
188 fl_set_button(cell_options_->radio_valign_bottom, 0);
189 fl_set_button(cell_options_->radio_valign_center, 0);
190 if (pwidth.empty() || (align == LyXTabular::LYX_VALIGN_CENTER))
191 fl_set_button(cell_options_->radio_valign_center, 1);
192 else if (align == LyXTabular::LYX_VALIGN_BOTTOM)
193 fl_set_button(cell_options_->radio_valign_bottom, 1);
195 fl_set_button(cell_options_->radio_valign_top, 1);
196 fl_activate_object(cell_options_->radio_valign_top);
197 fl_set_object_lcol(cell_options_->radio_valign_top, FL_BLACK);
198 fl_activate_object(cell_options_->radio_valign_bottom);
199 fl_set_object_lcol(cell_options_->radio_valign_bottom, FL_BLACK);
200 fl_activate_object(cell_options_->radio_valign_center);
201 fl_set_object_lcol(cell_options_->radio_valign_center, FL_BLACK);
202 special = tabular->GetAlignSpecial(cell,LyXTabular::SET_SPECIAL_MULTI);
203 fl_set_input(cell_options_->input_special_multialign, special.c_str());
204 fl_set_input(cell_options_->input_mcolumn_width,pwidth.c_str());
205 if (!lv_->buffer()->isReadonly()) {
206 fl_activate_object(cell_options_->input_special_multialign);
207 fl_set_object_lcol(cell_options_->input_special_multialign,
209 fl_activate_object(cell_options_->input_mcolumn_width);
210 fl_set_object_lcol(cell_options_->input_mcolumn_width, FL_BLACK);
212 if (!pwidth.empty()) {
213 fl_deactivate_object(cell_options_->radio_align_left);
214 fl_deactivate_object(cell_options_->radio_align_right);
215 fl_deactivate_object(cell_options_->radio_align_center);
216 fl_set_object_lcol(cell_options_->radio_align_left, FL_INACTIVE);
217 fl_set_object_lcol(cell_options_->radio_align_right, FL_INACTIVE);
218 fl_set_object_lcol(cell_options_->radio_align_center, FL_INACTIVE);
219 fl_activate_object(cell_options_->radio_valign_top);
220 fl_activate_object(cell_options_->radio_valign_bottom);
221 fl_activate_object(cell_options_->radio_valign_center);
222 fl_set_object_lcol(cell_options_->radio_valign_top, FL_BLACK);
223 fl_set_object_lcol(cell_options_->radio_valign_bottom, FL_BLACK);
224 fl_set_object_lcol(cell_options_->radio_valign_center, FL_BLACK);
226 fl_activate_object(cell_options_->radio_align_left);
227 fl_activate_object(cell_options_->radio_align_right);
228 fl_activate_object(cell_options_->radio_align_center);
229 fl_set_object_lcol(cell_options_->radio_align_left, FL_BLACK);
230 fl_set_object_lcol(cell_options_->radio_align_right, FL_BLACK);
231 fl_set_object_lcol(cell_options_->radio_align_center, FL_BLACK);
232 fl_deactivate_object(cell_options_->radio_valign_top);
233 fl_deactivate_object(cell_options_->radio_valign_bottom);
234 fl_deactivate_object(cell_options_->radio_valign_center);
235 fl_set_object_lcol(cell_options_->radio_valign_top, FL_INACTIVE);
236 fl_set_object_lcol(cell_options_->radio_valign_bottom,FL_INACTIVE);
237 fl_set_object_lcol(cell_options_->radio_valign_center,FL_INACTIVE);
240 fl_set_button(cell_options_->radio_multicolumn, 0);
241 fl_set_button(cell_options_->radio_border_top, 0);
242 fl_deactivate_object(cell_options_->radio_border_top);
243 fl_set_object_lcol(cell_options_->radio_border_top, FL_INACTIVE);
244 fl_set_button(cell_options_->radio_border_bottom, 0);
245 fl_deactivate_object(cell_options_->radio_border_bottom);
246 fl_set_object_lcol(cell_options_->radio_border_bottom, FL_INACTIVE);
247 fl_set_button(cell_options_->radio_border_left, 0);
248 fl_deactivate_object(cell_options_->radio_border_left);
249 fl_set_object_lcol(cell_options_->radio_border_left, FL_INACTIVE);
250 fl_set_button(cell_options_->radio_border_right, 0);
251 fl_deactivate_object(cell_options_->radio_border_right);
252 fl_set_object_lcol(cell_options_->radio_border_right, FL_INACTIVE);
253 fl_set_button(cell_options_->radio_align_left, 0);
254 fl_deactivate_object(cell_options_->radio_align_left);
255 fl_set_object_lcol(cell_options_->radio_align_left, FL_INACTIVE);
256 fl_set_button(cell_options_->radio_align_right, 0);
257 fl_deactivate_object(cell_options_->radio_align_right);
258 fl_set_object_lcol(cell_options_->radio_align_right, FL_INACTIVE);
259 fl_set_button(cell_options_->radio_align_center, 0);
260 fl_deactivate_object(cell_options_->radio_align_center);
261 fl_set_object_lcol(cell_options_->radio_align_center, FL_INACTIVE);
262 fl_set_button(cell_options_->radio_valign_top, 0);
263 fl_deactivate_object(cell_options_->radio_valign_top);
264 fl_set_object_lcol(cell_options_->radio_valign_top, FL_INACTIVE);
265 fl_set_button(cell_options_->radio_valign_bottom, 0);
266 fl_deactivate_object(cell_options_->radio_valign_bottom);
267 fl_set_object_lcol(cell_options_->radio_valign_bottom, FL_INACTIVE);
268 fl_set_button(cell_options_->radio_valign_center, 0);
269 fl_deactivate_object(cell_options_->radio_valign_center);
270 fl_set_object_lcol(cell_options_->radio_valign_center, FL_INACTIVE);
271 fl_set_input(cell_options_->input_special_multialign, "");
272 fl_deactivate_object(cell_options_->input_special_multialign);
273 fl_set_object_lcol(cell_options_->input_special_multialign, FL_INACTIVE);
274 fl_set_input(cell_options_->input_mcolumn_width,"");
275 fl_deactivate_object(cell_options_->input_mcolumn_width);
276 fl_set_object_lcol(cell_options_->input_mcolumn_width, FL_INACTIVE);
278 if (tabular->GetRotateCell(cell))
279 fl_set_button(cell_options_->radio_rotate_cell, 1);
281 fl_set_button(cell_options_->radio_rotate_cell, 0);
282 if (tabular->TopLine(cell, true))
283 fl_set_button(column_options_->radio_border_top, 1);
285 fl_set_button(column_options_->radio_border_top, 0);
286 if (tabular->BottomLine(cell, true))
287 fl_set_button(column_options_->radio_border_bottom, 1);
289 fl_set_button(column_options_->radio_border_bottom, 0);
290 if (tabular->LeftLine(cell, true))
291 fl_set_button(column_options_->radio_border_left, 1);
293 fl_set_button(column_options_->radio_border_left, 0);
294 if (tabular->RightLine(cell, true))
295 fl_set_button(column_options_->radio_border_right, 1);
297 fl_set_button(column_options_->radio_border_right, 0);
298 special = tabular->GetAlignSpecial(cell,LyXTabular::SET_SPECIAL_COLUMN);
299 fl_set_input(column_options_->input_special_alignment, special.c_str());
300 if (lv_->buffer()->isReadonly())
301 fl_deactivate_object(column_options_->input_special_alignment);
303 fl_activate_object(column_options_->input_special_alignment);
304 pwidth = tabular->GetColumnPWidth(cell);
305 fl_set_input(column_options_->input_column_width,pwidth.c_str());
306 if (lv_->buffer()->isReadonly()) {
307 fl_deactivate_object(column_options_->input_column_width);
309 fl_activate_object(column_options_->input_column_width);
311 if (!pwidth.empty()) {
312 fl_activate_object(cell_options_->radio_useminipage);
313 fl_set_object_lcol(cell_options_->radio_useminipage, FL_BLACK);
314 if (tabular->GetUsebox(cell) == 2)
315 fl_set_button(cell_options_->radio_useminipage, 1);
317 fl_set_button(cell_options_->radio_useminipage, 0);
319 fl_deactivate_object(cell_options_->radio_useminipage);
320 fl_set_object_lcol(cell_options_->radio_useminipage, FL_INACTIVE);
321 fl_set_button(cell_options_->radio_useminipage,0);
323 align = tabular->GetAlignment(cell, true);
324 fl_set_button(column_options_->radio_align_left, 0);
325 fl_set_button(column_options_->radio_align_right, 0);
326 fl_set_button(column_options_->radio_align_center, 0);
327 if (!pwidth.empty() || (align == LYX_ALIGN_LEFT))
328 fl_set_button(column_options_->radio_align_left, 1);
329 else if (align == LYX_ALIGN_RIGHT)
330 fl_set_button(column_options_->radio_align_right, 1);
332 fl_set_button(column_options_->radio_align_center, 1);
333 align = tabular->GetVAlignment(cell, true);
334 fl_set_button(column_options_->radio_valign_top, 0);
335 fl_set_button(column_options_->radio_valign_bottom, 0);
336 fl_set_button(column_options_->radio_valign_center, 0);
337 if (pwidth.empty() || (align == LyXTabular::LYX_VALIGN_CENTER))
338 fl_set_button(column_options_->radio_valign_center, 1);
339 else if (align == LyXTabular::LYX_VALIGN_BOTTOM)
340 fl_set_button(column_options_->radio_valign_bottom, 1);
342 fl_set_button(column_options_->radio_valign_top, 1);
343 if (!pwidth.empty()) {
344 fl_deactivate_object(column_options_->radio_align_left);
345 fl_deactivate_object(column_options_->radio_align_right);
346 fl_deactivate_object(column_options_->radio_align_center);
347 fl_set_object_lcol(column_options_->radio_align_left, FL_INACTIVE);
348 fl_set_object_lcol(column_options_->radio_align_right, FL_INACTIVE);
349 fl_set_object_lcol(column_options_->radio_align_center, FL_INACTIVE);
350 fl_activate_object(column_options_->radio_valign_top);
351 fl_activate_object(column_options_->radio_valign_bottom);
352 fl_activate_object(column_options_->radio_valign_center);
353 fl_set_object_lcol(column_options_->radio_valign_top, FL_BLACK);
354 fl_set_object_lcol(column_options_->radio_valign_bottom, FL_BLACK);
355 fl_set_object_lcol(column_options_->radio_valign_center, FL_BLACK);
357 fl_activate_object(column_options_->radio_align_left);
358 fl_activate_object(column_options_->radio_align_right);
359 fl_activate_object(column_options_->radio_align_center);
360 fl_set_object_lcol(column_options_->radio_align_left, FL_BLACK);
361 fl_set_object_lcol(column_options_->radio_align_right, FL_BLACK);
362 fl_set_object_lcol(column_options_->radio_align_center, FL_BLACK);
363 fl_deactivate_object(column_options_->radio_valign_top);
364 fl_deactivate_object(column_options_->radio_valign_bottom);
365 fl_deactivate_object(column_options_->radio_valign_center);
366 fl_set_object_lcol(column_options_->radio_valign_top, FL_INACTIVE);
367 fl_set_object_lcol(column_options_->radio_valign_bottom, FL_INACTIVE);
368 fl_set_object_lcol(column_options_->radio_valign_center, FL_INACTIVE);
370 fl_set_button(tabular_options_->radio_longtable,
371 tabular->IsLongTabular());
372 if (tabular->IsLongTabular()) {
373 fl_activate_object(longtable_options_->radio_lt_firsthead);
374 fl_activate_object(longtable_options_->radio_lt_head);
375 fl_activate_object(longtable_options_->radio_lt_foot);
376 fl_activate_object(longtable_options_->radio_lt_lastfoot);
377 fl_activate_object(longtable_options_->radio_lt_newpage);
378 fl_set_object_lcol(longtable_options_->radio_lt_firsthead, FL_BLACK);
379 fl_set_object_lcol(longtable_options_->radio_lt_head, FL_BLACK);
380 fl_set_object_lcol(longtable_options_->radio_lt_foot, FL_BLACK);
381 fl_set_object_lcol(longtable_options_->radio_lt_lastfoot, FL_BLACK);
382 fl_set_object_lcol(longtable_options_->radio_lt_newpage, FL_BLACK);
384 fl_set_button(longtable_options_->radio_lt_firsthead,
385 tabular->GetRowOfLTFirstHead(cell, dummy));
386 fl_set_button(longtable_options_->radio_lt_head,
387 tabular->GetRowOfLTHead(cell, dummy));
388 fl_set_button(longtable_options_->radio_lt_foot,
389 tabular->GetRowOfLTFoot(cell, dummy));
390 fl_set_button(longtable_options_->radio_lt_lastfoot,
391 tabular->GetRowOfLTLastFoot(cell, dummy));
392 fl_set_button(longtable_options_->radio_lt_newpage,
393 tabular->GetLTNewPage(cell));
395 fl_deactivate_object(longtable_options_->radio_lt_firsthead);
396 fl_deactivate_object(longtable_options_->radio_lt_head);
397 fl_deactivate_object(longtable_options_->radio_lt_foot);
398 fl_deactivate_object(longtable_options_->radio_lt_lastfoot);
399 fl_deactivate_object(longtable_options_->radio_lt_newpage);
400 fl_set_button(longtable_options_->radio_lt_firsthead,0);
401 fl_set_button(longtable_options_->radio_lt_head,0);
402 fl_set_button(longtable_options_->radio_lt_foot,0);
403 fl_set_button(longtable_options_->radio_lt_lastfoot,0);
404 fl_set_button(longtable_options_->radio_lt_newpage,0);
405 fl_set_object_lcol(longtable_options_->radio_lt_firsthead,FL_INACTIVE);
406 fl_set_object_lcol(longtable_options_->radio_lt_head, FL_INACTIVE);
407 fl_set_object_lcol(longtable_options_->radio_lt_foot, FL_INACTIVE);
408 fl_set_object_lcol(longtable_options_->radio_lt_lastfoot, FL_INACTIVE);
409 fl_set_object_lcol(longtable_options_->radio_lt_newpage, FL_INACTIVE);
411 fl_set_button(tabular_options_->radio_rotate_tabular,
412 tabular->GetRotateTabular());
415 bool FormTabular::input(FL_OBJECT * ob, long)
421 * tabular = inset_->tabular;
426 num = LyXTabular::LAST_ACTION;
431 cell = inset_->GetActCell();
432 if (actCell_ != cell) {
434 fl_set_object_label(dialog_->text_warning,
435 _("Warning: Wrong Cursor position, updated window"));
436 fl_show_object(dialog_->text_warning);
439 // No point in processing directives that you can't do anything with
440 // anyhow, so exit now if the buffer is read-only.
441 if (lv_->buffer()->isReadonly()) {
445 if (ob == column_options_->input_column_width) {
448 str = fl_get_input(ob);
449 if (!str.empty() && !isValidLength(str)) {
450 fl_set_object_label(dialog_->text_warning,
451 _("Warning: Invalid Length (valid example: 10mm)"));
452 fl_show_object(dialog_->text_warning);
455 inset_->TabularFeatures(lv_->view(), LyXTabular::SET_PWIDTH,str);
456 update(); // update for alignment
459 if (ob == cell_options_->input_mcolumn_width) {
462 str = fl_get_input(ob);
463 if (!str.empty() && !isValidLength(str)) {
464 fl_set_object_label(dialog_->text_warning,
465 _("Warning: Invalid Length (valid example: 10mm)"));
466 fl_show_object(dialog_->text_warning);
469 inset_->TabularFeatures(lv_->view(), LyXTabular::SET_MPWIDTH,str);
470 update(); // update for alignment
473 str = fl_get_input(column_options_->input_column_width);
474 if (!str.empty() && !isValidLength(str)) {
476 dialog_->text_warning,
477 _("Warning: Invalid Length (valid example: 10mm)"));
478 fl_show_object(dialog_->text_warning);
481 if (ob == tabular_options_->button_append_row)
482 num = LyXTabular::APPEND_ROW;
483 else if (ob == tabular_options_->button_append_column)
484 num = LyXTabular::APPEND_COLUMN;
485 else if (ob == tabular_options_->button_delete_row)
486 num = LyXTabular::DELETE_ROW;
487 else if (ob == tabular_options_->button_delete_column)
488 num = LyXTabular::DELETE_COLUMN;
489 else if (ob == tabular_options_->button_set_borders)
490 num = LyXTabular::SET_ALL_LINES;
491 else if (ob == tabular_options_->button_unset_borders)
492 num = LyXTabular::UNSET_ALL_LINES;
493 else if (ob == column_options_->radio_border_top)
494 num = LyXTabular::TOGGLE_LINE_TOP;
495 else if (ob == column_options_->radio_border_bottom)
496 num = LyXTabular::TOGGLE_LINE_BOTTOM;
497 else if (ob == column_options_->radio_border_left)
498 num = LyXTabular::TOGGLE_LINE_LEFT;
499 else if (ob == column_options_->radio_border_right)
500 num = LyXTabular::TOGGLE_LINE_RIGHT;
501 else if (ob == column_options_->radio_align_left)
502 num = LyXTabular::ALIGN_LEFT;
503 else if (ob == column_options_->radio_align_right)
504 num = LyXTabular::ALIGN_RIGHT;
505 else if (ob == column_options_->radio_align_center)
506 num = LyXTabular::ALIGN_CENTER;
507 else if (ob == column_options_->radio_valign_top)
508 num = LyXTabular::VALIGN_TOP;
509 else if (ob == column_options_->radio_valign_bottom)
510 num = LyXTabular::VALIGN_BOTTOM;
511 else if (ob == column_options_->radio_valign_center)
512 num = LyXTabular::VALIGN_CENTER;
513 else if (ob == cell_options_->radio_multicolumn)
514 num = LyXTabular::MULTICOLUMN;
515 else if (ob == tabular_options_->radio_longtable) {
516 s=fl_get_button(tabular_options_->radio_longtable);
518 num = LyXTabular::SET_LONGTABULAR;
519 fl_activate_object(longtable_options_->radio_lt_firsthead);
520 fl_activate_object(longtable_options_->radio_lt_head);
521 fl_activate_object(longtable_options_->radio_lt_foot);
522 fl_activate_object(longtable_options_->radio_lt_lastfoot);
523 fl_activate_object(longtable_options_->radio_lt_newpage);
525 fl_set_button(longtable_options_->radio_lt_firsthead,
526 tabular->GetRowOfLTFirstHead(cell, dummy));
527 fl_set_button(longtable_options_->radio_lt_head,
528 tabular->GetRowOfLTHead(cell, dummy));
529 fl_set_button(longtable_options_->radio_lt_foot,
530 tabular->GetRowOfLTFoot(cell, dummy));
531 fl_set_button(longtable_options_->radio_lt_lastfoot,
532 tabular->GetRowOfLTLastFoot(cell, dummy));
533 fl_set_button(longtable_options_->radio_lt_firsthead,
534 tabular->GetLTNewPage(cell));
536 num = LyXTabular::UNSET_LONGTABULAR;
537 fl_deactivate_object(longtable_options_->radio_lt_firsthead);
538 fl_deactivate_object(longtable_options_->radio_lt_head);
539 fl_deactivate_object(longtable_options_->radio_lt_foot);
540 fl_deactivate_object(longtable_options_->radio_lt_lastfoot);
541 fl_deactivate_object(longtable_options_->radio_lt_newpage);
542 fl_set_button(longtable_options_->radio_lt_firsthead,0);
543 fl_set_button(longtable_options_->radio_lt_head,0);
544 fl_set_button(longtable_options_->radio_lt_foot,0);
545 fl_set_button(longtable_options_->radio_lt_lastfoot,0);
546 fl_set_button(longtable_options_->radio_lt_newpage,0);
547 fl_set_object_lcol(longtable_options_->radio_lt_firsthead,
549 fl_set_object_lcol(longtable_options_->radio_lt_head, FL_INACTIVE);
550 fl_set_object_lcol(longtable_options_->radio_lt_foot, FL_INACTIVE);
551 fl_set_object_lcol(longtable_options_->radio_lt_lastfoot,
553 fl_set_object_lcol(longtable_options_->radio_lt_newpage,
556 } else if (ob == tabular_options_->radio_rotate_tabular) {
557 s=fl_get_button(tabular_options_->radio_rotate_tabular);
559 num = LyXTabular::SET_ROTATE_TABULAR;
561 num = LyXTabular::UNSET_ROTATE_TABULAR;
562 } else if (ob == cell_options_->radio_rotate_cell) {
563 s=fl_get_button(cell_options_->radio_rotate_cell);
565 num = LyXTabular::SET_ROTATE_CELL;
567 num = LyXTabular::UNSET_ROTATE_CELL;
568 } else if (ob == cell_options_->radio_useminipage) {
569 num = LyXTabular::SET_USEBOX;
571 } else if (ob == longtable_options_->radio_lt_firsthead) {
572 num = LyXTabular::SET_LTFIRSTHEAD;
573 } else if (ob == longtable_options_->radio_lt_head) {
574 num = LyXTabular::SET_LTHEAD;
575 } else if (ob == longtable_options_->radio_lt_foot) {
576 num = LyXTabular::SET_LTFOOT;
577 } else if (ob == longtable_options_->radio_lt_lastfoot) {
578 num = LyXTabular::SET_LTLASTFOOT;
579 } else if (ob == longtable_options_->radio_lt_newpage) {
580 num = LyXTabular::SET_LTNEWPAGE;
581 } else if (ob == column_options_->input_special_alignment) {
582 special = fl_get_input(column_options_->input_special_alignment);
583 num = LyXTabular::SET_SPECIAL_COLUMN;
584 } else if (ob == cell_options_->input_special_multialign) {
585 special = fl_get_input(cell_options_->input_special_multialign);
586 num = LyXTabular::SET_SPECIAL_MULTI;
587 } else if (ob == cell_options_->radio_border_top)
588 num = LyXTabular::M_TOGGLE_LINE_TOP;
589 else if (ob == cell_options_->radio_border_bottom)
590 num = LyXTabular::M_TOGGLE_LINE_BOTTOM;
591 else if (ob == cell_options_->radio_border_left)
592 num = LyXTabular::M_TOGGLE_LINE_LEFT;
593 else if (ob == cell_options_->radio_border_right)
594 num = LyXTabular::M_TOGGLE_LINE_RIGHT;
595 else if (ob == cell_options_->radio_align_left)
596 num = LyXTabular::M_ALIGN_LEFT;
597 else if (ob == cell_options_->radio_align_right)
598 num = LyXTabular::M_ALIGN_RIGHT;
599 else if (ob == cell_options_->radio_align_center)
600 num = LyXTabular::M_ALIGN_CENTER;
601 else if (ob == cell_options_->radio_valign_top)
602 num = LyXTabular::M_VALIGN_TOP;
603 else if (ob == cell_options_->radio_valign_bottom)
604 num = LyXTabular::M_VALIGN_BOTTOM;
605 else if (ob == cell_options_->radio_valign_center)
606 num = LyXTabular::M_VALIGN_CENTER;
610 inset_->TabularFeatures(lv_->view(), num, special);