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 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)
144 * tabular = inset_->tabular;
154 actCell_ = cell = inset_->GetActCell();
155 column = tabular->column_of_cell(cell)+1;
156 fl_set_object_label(dialog_->text_warning,"");
157 fl_activate_object(column_options_->input_special_alignment);
158 fl_activate_object(cell_options_->input_special_multialign);
159 fl_activate_object(column_options_->input_column_width);
160 sprintf(buf,"%d",column);
161 fl_set_input(dialog_->input_tabular_column, buf);
162 fl_deactivate_object(dialog_->input_tabular_column);
163 row = tabular->row_of_cell(cell)+1;
164 sprintf(buf,"%d",row);
165 fl_set_input(dialog_->input_tabular_row, buf);
166 fl_deactivate_object(dialog_->input_tabular_row);
167 if (tabular->IsMultiColumn(cell)) {
168 fl_set_button(cell_options_->radio_multicolumn, 1);
169 fl_set_button(cell_options_->radio_border_top,
170 tabular->TopLine(cell)?1:0);
171 fl_activate_object(cell_options_->radio_border_top);
172 fl_set_object_lcol(cell_options_->radio_border_top, FL_BLACK);
173 fl_set_button(cell_options_->radio_border_bottom,
174 tabular->BottomLine(cell)?1:0);
175 fl_activate_object(cell_options_->radio_border_bottom);
176 fl_set_object_lcol(cell_options_->radio_border_bottom, FL_BLACK);
177 fl_set_button(cell_options_->radio_border_left,
178 tabular->LeftLine(cell)?1:0);
179 fl_activate_object(cell_options_->radio_border_left);
180 fl_set_object_lcol(cell_options_->radio_border_left, FL_BLACK);
181 fl_set_button(cell_options_->radio_border_right,
182 tabular->RightLine(cell)?1:0);
183 fl_activate_object(cell_options_->radio_border_right);
184 fl_set_object_lcol(cell_options_->radio_border_right, FL_BLACK);
185 pwidth = tabular->GetMColumnPWidth(cell);
186 align = tabular->GetAlignment(cell);
187 if (!pwidth.empty() || (align == LYX_ALIGN_LEFT))
188 fl_set_button(cell_options_->radio_align_left, 1);
189 else if (align == LYX_ALIGN_RIGHT)
190 fl_set_button(cell_options_->radio_align_right, 1);
192 fl_set_button(cell_options_->radio_align_center, 1);
193 fl_activate_object(cell_options_->radio_align_left);
194 fl_set_object_lcol(cell_options_->radio_align_left, FL_BLACK);
195 fl_activate_object(cell_options_->radio_align_right);
196 fl_set_object_lcol(cell_options_->radio_align_right, FL_BLACK);
197 fl_activate_object(cell_options_->radio_align_center);
198 fl_set_object_lcol(cell_options_->radio_align_center, FL_BLACK);
199 align = tabular->GetVAlignment(cell);
200 fl_set_button(cell_options_->radio_valign_top, 0);
201 fl_set_button(cell_options_->radio_valign_bottom, 0);
202 fl_set_button(cell_options_->radio_valign_center, 0);
203 if (pwidth.empty() || (align == LyXTabular::LYX_VALIGN_CENTER))
204 fl_set_button(cell_options_->radio_valign_center, 1);
205 else if (align == LyXTabular::LYX_VALIGN_BOTTOM)
206 fl_set_button(cell_options_->radio_valign_bottom, 1);
208 fl_set_button(cell_options_->radio_valign_top, 1);
209 fl_activate_object(cell_options_->radio_valign_top);
210 fl_set_object_lcol(cell_options_->radio_valign_top, FL_BLACK);
211 fl_activate_object(cell_options_->radio_valign_bottom);
212 fl_set_object_lcol(cell_options_->radio_valign_bottom, FL_BLACK);
213 fl_activate_object(cell_options_->radio_valign_center);
214 fl_set_object_lcol(cell_options_->radio_valign_center, FL_BLACK);
215 special = tabular->GetAlignSpecial(cell,LyXTabular::SET_SPECIAL_MULTI);
216 fl_set_input(cell_options_->input_special_multialign, special.c_str());
217 fl_set_input(cell_options_->input_mcolumn_width,pwidth.c_str());
218 if (!lv_->buffer()->isReadonly()) {
219 fl_activate_object(cell_options_->input_special_multialign);
220 fl_set_object_lcol(cell_options_->input_special_multialign,
222 fl_activate_object(cell_options_->input_mcolumn_width);
223 fl_set_object_lcol(cell_options_->input_mcolumn_width, FL_BLACK);
225 if (!pwidth.empty()) {
226 fl_deactivate_object(cell_options_->radio_align_left);
227 fl_deactivate_object(cell_options_->radio_align_right);
228 fl_deactivate_object(cell_options_->radio_align_center);
229 fl_set_object_lcol(cell_options_->radio_align_left, FL_INACTIVE);
230 fl_set_object_lcol(cell_options_->radio_align_right, FL_INACTIVE);
231 fl_set_object_lcol(cell_options_->radio_align_center, FL_INACTIVE);
232 fl_activate_object(cell_options_->radio_valign_top);
233 fl_activate_object(cell_options_->radio_valign_bottom);
234 fl_activate_object(cell_options_->radio_valign_center);
235 fl_set_object_lcol(cell_options_->radio_valign_top, FL_BLACK);
236 fl_set_object_lcol(cell_options_->radio_valign_bottom, FL_BLACK);
237 fl_set_object_lcol(cell_options_->radio_valign_center, FL_BLACK);
239 fl_activate_object(cell_options_->radio_align_left);
240 fl_activate_object(cell_options_->radio_align_right);
241 fl_activate_object(cell_options_->radio_align_center);
242 fl_set_object_lcol(cell_options_->radio_align_left, FL_BLACK);
243 fl_set_object_lcol(cell_options_->radio_align_right, FL_BLACK);
244 fl_set_object_lcol(cell_options_->radio_align_center, FL_BLACK);
245 fl_deactivate_object(cell_options_->radio_valign_top);
246 fl_deactivate_object(cell_options_->radio_valign_bottom);
247 fl_deactivate_object(cell_options_->radio_valign_center);
248 fl_set_object_lcol(cell_options_->radio_valign_top, FL_INACTIVE);
249 fl_set_object_lcol(cell_options_->radio_valign_bottom,FL_INACTIVE);
250 fl_set_object_lcol(cell_options_->radio_valign_center,FL_INACTIVE);
253 fl_set_button(cell_options_->radio_multicolumn, 0);
254 fl_set_button(cell_options_->radio_border_top, 0);
255 fl_deactivate_object(cell_options_->radio_border_top);
256 fl_set_object_lcol(cell_options_->radio_border_top, FL_INACTIVE);
257 fl_set_button(cell_options_->radio_border_bottom, 0);
258 fl_deactivate_object(cell_options_->radio_border_bottom);
259 fl_set_object_lcol(cell_options_->radio_border_bottom, FL_INACTIVE);
260 fl_set_button(cell_options_->radio_border_left, 0);
261 fl_deactivate_object(cell_options_->radio_border_left);
262 fl_set_object_lcol(cell_options_->radio_border_left, FL_INACTIVE);
263 fl_set_button(cell_options_->radio_border_right, 0);
264 fl_deactivate_object(cell_options_->radio_border_right);
265 fl_set_object_lcol(cell_options_->radio_border_right, FL_INACTIVE);
266 fl_set_button(cell_options_->radio_align_left, 0);
267 fl_deactivate_object(cell_options_->radio_align_left);
268 fl_set_object_lcol(cell_options_->radio_align_left, FL_INACTIVE);
269 fl_set_button(cell_options_->radio_align_right, 0);
270 fl_deactivate_object(cell_options_->radio_align_right);
271 fl_set_object_lcol(cell_options_->radio_align_right, FL_INACTIVE);
272 fl_set_button(cell_options_->radio_align_center, 0);
273 fl_deactivate_object(cell_options_->radio_align_center);
274 fl_set_object_lcol(cell_options_->radio_align_center, FL_INACTIVE);
275 fl_set_button(cell_options_->radio_valign_top, 0);
276 fl_deactivate_object(cell_options_->radio_valign_top);
277 fl_set_object_lcol(cell_options_->radio_valign_top, FL_INACTIVE);
278 fl_set_button(cell_options_->radio_valign_bottom, 0);
279 fl_deactivate_object(cell_options_->radio_valign_bottom);
280 fl_set_object_lcol(cell_options_->radio_valign_bottom, FL_INACTIVE);
281 fl_set_button(cell_options_->radio_valign_center, 0);
282 fl_deactivate_object(cell_options_->radio_valign_center);
283 fl_set_object_lcol(cell_options_->radio_valign_center, FL_INACTIVE);
284 fl_set_input(cell_options_->input_special_multialign, "");
285 fl_deactivate_object(cell_options_->input_special_multialign);
286 fl_set_object_lcol(cell_options_->input_special_multialign, FL_INACTIVE);
287 fl_set_input(cell_options_->input_mcolumn_width,"");
288 fl_deactivate_object(cell_options_->input_mcolumn_width);
289 fl_set_object_lcol(cell_options_->input_mcolumn_width, FL_INACTIVE);
291 if (tabular->GetRotateCell(cell))
292 fl_set_button(cell_options_->radio_rotate_cell, 1);
294 fl_set_button(cell_options_->radio_rotate_cell, 0);
295 if (tabular->TopLine(cell, true))
296 fl_set_button(column_options_->radio_border_top, 1);
298 fl_set_button(column_options_->radio_border_top, 0);
299 if (tabular->BottomLine(cell, true))
300 fl_set_button(column_options_->radio_border_bottom, 1);
302 fl_set_button(column_options_->radio_border_bottom, 0);
303 if (tabular->LeftLine(cell, true))
304 fl_set_button(column_options_->radio_border_left, 1);
306 fl_set_button(column_options_->radio_border_left, 0);
307 if (tabular->RightLine(cell, true))
308 fl_set_button(column_options_->radio_border_right, 1);
310 fl_set_button(column_options_->radio_border_right, 0);
311 special = tabular->GetAlignSpecial(cell,LyXTabular::SET_SPECIAL_COLUMN);
312 fl_set_input(column_options_->input_special_alignment, special.c_str());
313 if (lv_->buffer()->isReadonly())
314 fl_deactivate_object(column_options_->input_special_alignment);
316 fl_activate_object(column_options_->input_special_alignment);
317 pwidth = tabular->GetColumnPWidth(cell);
318 fl_set_input(column_options_->input_column_width,pwidth.c_str());
319 if (lv_->buffer()->isReadonly()) {
320 fl_deactivate_object(column_options_->input_column_width);
322 fl_activate_object(column_options_->input_column_width);
324 if (!pwidth.empty()) {
325 fl_activate_object(cell_options_->radio_useminipage);
326 fl_set_object_lcol(cell_options_->radio_useminipage, FL_BLACK);
327 if (tabular->GetUsebox(cell) == 2)
328 fl_set_button(cell_options_->radio_useminipage, 1);
330 fl_set_button(cell_options_->radio_useminipage, 0);
332 fl_deactivate_object(cell_options_->radio_useminipage);
333 fl_set_object_lcol(cell_options_->radio_useminipage, FL_INACTIVE);
334 fl_set_button(cell_options_->radio_useminipage,0);
336 align = tabular->GetAlignment(cell, true);
337 fl_set_button(column_options_->radio_align_left, 0);
338 fl_set_button(column_options_->radio_align_right, 0);
339 fl_set_button(column_options_->radio_align_center, 0);
340 if (!pwidth.empty() || (align == LYX_ALIGN_LEFT))
341 fl_set_button(column_options_->radio_align_left, 1);
342 else if (align == LYX_ALIGN_RIGHT)
343 fl_set_button(column_options_->radio_align_right, 1);
345 fl_set_button(column_options_->radio_align_center, 1);
346 align = tabular->GetVAlignment(cell, true);
347 fl_set_button(column_options_->radio_valign_top, 0);
348 fl_set_button(column_options_->radio_valign_bottom, 0);
349 fl_set_button(column_options_->radio_valign_center, 0);
350 if (pwidth.empty() || (align == LyXTabular::LYX_VALIGN_CENTER))
351 fl_set_button(column_options_->radio_valign_center, 1);
352 else if (align == LyXTabular::LYX_VALIGN_BOTTOM)
353 fl_set_button(column_options_->radio_valign_bottom, 1);
355 fl_set_button(column_options_->radio_valign_top, 1);
356 if (!pwidth.empty()) {
357 fl_deactivate_object(column_options_->radio_align_left);
358 fl_deactivate_object(column_options_->radio_align_right);
359 fl_deactivate_object(column_options_->radio_align_center);
360 fl_set_object_lcol(column_options_->radio_align_left, FL_INACTIVE);
361 fl_set_object_lcol(column_options_->radio_align_right, FL_INACTIVE);
362 fl_set_object_lcol(column_options_->radio_align_center, FL_INACTIVE);
363 fl_activate_object(column_options_->radio_valign_top);
364 fl_activate_object(column_options_->radio_valign_bottom);
365 fl_activate_object(column_options_->radio_valign_center);
366 fl_set_object_lcol(column_options_->radio_valign_top, FL_BLACK);
367 fl_set_object_lcol(column_options_->radio_valign_bottom, FL_BLACK);
368 fl_set_object_lcol(column_options_->radio_valign_center, FL_BLACK);
370 fl_activate_object(column_options_->radio_align_left);
371 fl_activate_object(column_options_->radio_align_right);
372 fl_activate_object(column_options_->radio_align_center);
373 fl_set_object_lcol(column_options_->radio_align_left, FL_BLACK);
374 fl_set_object_lcol(column_options_->radio_align_right, FL_BLACK);
375 fl_set_object_lcol(column_options_->radio_align_center, FL_BLACK);
376 fl_deactivate_object(column_options_->radio_valign_top);
377 fl_deactivate_object(column_options_->radio_valign_bottom);
378 fl_deactivate_object(column_options_->radio_valign_center);
379 fl_set_object_lcol(column_options_->radio_valign_top, FL_INACTIVE);
380 fl_set_object_lcol(column_options_->radio_valign_bottom, FL_INACTIVE);
381 fl_set_object_lcol(column_options_->radio_valign_center, FL_INACTIVE);
383 fl_set_button(tabular_options_->radio_longtable,
384 tabular->IsLongTabular());
385 if (tabular->IsLongTabular()) {
386 fl_activate_object(longtable_options_->radio_lt_firsthead);
387 fl_activate_object(longtable_options_->radio_lt_head);
388 fl_activate_object(longtable_options_->radio_lt_foot);
389 fl_activate_object(longtable_options_->radio_lt_lastfoot);
390 fl_activate_object(longtable_options_->radio_lt_newpage);
391 fl_set_object_lcol(longtable_options_->radio_lt_firsthead, FL_BLACK);
392 fl_set_object_lcol(longtable_options_->radio_lt_head, FL_BLACK);
393 fl_set_object_lcol(longtable_options_->radio_lt_foot, FL_BLACK);
394 fl_set_object_lcol(longtable_options_->radio_lt_lastfoot, FL_BLACK);
395 fl_set_object_lcol(longtable_options_->radio_lt_newpage, FL_BLACK);
397 fl_set_button(longtable_options_->radio_lt_firsthead,
398 tabular->GetRowOfLTFirstHead(cell, dummy));
399 fl_set_button(longtable_options_->radio_lt_head,
400 tabular->GetRowOfLTHead(cell, dummy));
401 fl_set_button(longtable_options_->radio_lt_foot,
402 tabular->GetRowOfLTFoot(cell, dummy));
403 fl_set_button(longtable_options_->radio_lt_lastfoot,
404 tabular->GetRowOfLTLastFoot(cell, dummy));
405 fl_set_button(longtable_options_->radio_lt_newpage,
406 tabular->GetLTNewPage(cell));
408 fl_deactivate_object(longtable_options_->radio_lt_firsthead);
409 fl_deactivate_object(longtable_options_->radio_lt_head);
410 fl_deactivate_object(longtable_options_->radio_lt_foot);
411 fl_deactivate_object(longtable_options_->radio_lt_lastfoot);
412 fl_deactivate_object(longtable_options_->radio_lt_newpage);
413 fl_set_button(longtable_options_->radio_lt_firsthead,0);
414 fl_set_button(longtable_options_->radio_lt_head,0);
415 fl_set_button(longtable_options_->radio_lt_foot,0);
416 fl_set_button(longtable_options_->radio_lt_lastfoot,0);
417 fl_set_button(longtable_options_->radio_lt_newpage,0);
418 fl_set_object_lcol(longtable_options_->radio_lt_firsthead,FL_INACTIVE);
419 fl_set_object_lcol(longtable_options_->radio_lt_head, FL_INACTIVE);
420 fl_set_object_lcol(longtable_options_->radio_lt_foot, FL_INACTIVE);
421 fl_set_object_lcol(longtable_options_->radio_lt_lastfoot, FL_INACTIVE);
422 fl_set_object_lcol(longtable_options_->radio_lt_newpage, FL_INACTIVE);
424 fl_set_button(tabular_options_->radio_rotate_tabular,
425 tabular->GetRotateTabular());
428 bool FormTabular::input(FL_OBJECT * ob, long)
434 * tabular = inset_->tabular;
439 num = LyXTabular::LAST_ACTION;
444 cell = inset_->GetActCell();
445 if (actCell_ != cell) {
447 fl_set_object_label(dialog_->text_warning,
448 _("Warning: Wrong Cursor position, updated window"));
449 fl_show_object(dialog_->text_warning);
452 // No point in processing directives that you can't do anything with
453 // anyhow, so exit now if the buffer is read-only.
454 if (lv_->buffer()->isReadonly()) {
458 if (ob == column_options_->input_column_width) {
461 str = fl_get_input(ob);
462 if (!str.empty() && !isValidLength(str)) {
463 fl_set_object_label(dialog_->text_warning,
464 _("Warning: Invalid Length (valid example: 10mm)"));
465 fl_show_object(dialog_->text_warning);
468 inset_->TabularFeatures(lv_->view(), LyXTabular::SET_PWIDTH,str);
469 update(); // update for alignment
472 if (ob == cell_options_->input_mcolumn_width) {
475 str = fl_get_input(ob);
476 if (!str.empty() && !isValidLength(str)) {
477 fl_set_object_label(dialog_->text_warning,
478 _("Warning: Invalid Length (valid example: 10mm)"));
479 fl_show_object(dialog_->text_warning);
482 inset_->TabularFeatures(lv_->view(), LyXTabular::SET_MPWIDTH,str);
483 update(); // update for alignment
486 str = fl_get_input(column_options_->input_column_width);
487 if (!str.empty() && !isValidLength(str)) {
489 dialog_->text_warning,
490 _("Warning: Invalid Length (valid example: 10mm)"));
491 fl_show_object(dialog_->text_warning);
494 if (ob == tabular_options_->button_append_row)
495 num = LyXTabular::APPEND_ROW;
496 else if (ob == tabular_options_->button_append_column)
497 num = LyXTabular::APPEND_COLUMN;
498 else if (ob == tabular_options_->button_delete_row)
499 num = LyXTabular::DELETE_ROW;
500 else if (ob == tabular_options_->button_delete_column)
501 num = LyXTabular::DELETE_COLUMN;
502 else if (ob == tabular_options_->button_set_borders)
503 num = LyXTabular::SET_ALL_LINES;
504 else if (ob == tabular_options_->button_unset_borders)
505 num = LyXTabular::UNSET_ALL_LINES;
506 else if (ob == column_options_->radio_border_top)
507 num = LyXTabular::TOGGLE_LINE_TOP;
508 else if (ob == column_options_->radio_border_bottom)
509 num = LyXTabular::TOGGLE_LINE_BOTTOM;
510 else if (ob == column_options_->radio_border_left)
511 num = LyXTabular::TOGGLE_LINE_LEFT;
512 else if (ob == column_options_->radio_border_right)
513 num = LyXTabular::TOGGLE_LINE_RIGHT;
514 else if (ob == column_options_->radio_align_left)
515 num = LyXTabular::ALIGN_LEFT;
516 else if (ob == column_options_->radio_align_right)
517 num = LyXTabular::ALIGN_RIGHT;
518 else if (ob == column_options_->radio_align_center)
519 num = LyXTabular::ALIGN_CENTER;
520 else if (ob == column_options_->radio_valign_top)
521 num = LyXTabular::VALIGN_TOP;
522 else if (ob == column_options_->radio_valign_bottom)
523 num = LyXTabular::VALIGN_BOTTOM;
524 else if (ob == column_options_->radio_valign_center)
525 num = LyXTabular::VALIGN_CENTER;
526 else if (ob == cell_options_->radio_multicolumn)
527 num = LyXTabular::MULTICOLUMN;
528 else if (ob == tabular_options_->radio_longtable) {
529 s=fl_get_button(tabular_options_->radio_longtable);
531 num = LyXTabular::SET_LONGTABULAR;
532 fl_activate_object(longtable_options_->radio_lt_firsthead);
533 fl_activate_object(longtable_options_->radio_lt_head);
534 fl_activate_object(longtable_options_->radio_lt_foot);
535 fl_activate_object(longtable_options_->radio_lt_lastfoot);
536 fl_activate_object(longtable_options_->radio_lt_newpage);
538 fl_set_button(longtable_options_->radio_lt_firsthead,
539 tabular->GetRowOfLTFirstHead(cell, dummy));
540 fl_set_button(longtable_options_->radio_lt_head,
541 tabular->GetRowOfLTHead(cell, dummy));
542 fl_set_button(longtable_options_->radio_lt_foot,
543 tabular->GetRowOfLTFoot(cell, dummy));
544 fl_set_button(longtable_options_->radio_lt_lastfoot,
545 tabular->GetRowOfLTLastFoot(cell, dummy));
546 fl_set_button(longtable_options_->radio_lt_firsthead,
547 tabular->GetLTNewPage(cell));
549 num = LyXTabular::UNSET_LONGTABULAR;
550 fl_deactivate_object(longtable_options_->radio_lt_firsthead);
551 fl_deactivate_object(longtable_options_->radio_lt_head);
552 fl_deactivate_object(longtable_options_->radio_lt_foot);
553 fl_deactivate_object(longtable_options_->radio_lt_lastfoot);
554 fl_deactivate_object(longtable_options_->radio_lt_newpage);
555 fl_set_button(longtable_options_->radio_lt_firsthead,0);
556 fl_set_button(longtable_options_->radio_lt_head,0);
557 fl_set_button(longtable_options_->radio_lt_foot,0);
558 fl_set_button(longtable_options_->radio_lt_lastfoot,0);
559 fl_set_button(longtable_options_->radio_lt_newpage,0);
560 fl_set_object_lcol(longtable_options_->radio_lt_firsthead,
562 fl_set_object_lcol(longtable_options_->radio_lt_head, FL_INACTIVE);
563 fl_set_object_lcol(longtable_options_->radio_lt_foot, FL_INACTIVE);
564 fl_set_object_lcol(longtable_options_->radio_lt_lastfoot,
566 fl_set_object_lcol(longtable_options_->radio_lt_newpage,
569 } else if (ob == tabular_options_->radio_rotate_tabular) {
570 s=fl_get_button(tabular_options_->radio_rotate_tabular);
572 num = LyXTabular::SET_ROTATE_TABULAR;
574 num = LyXTabular::UNSET_ROTATE_TABULAR;
575 } else if (ob == cell_options_->radio_rotate_cell) {
576 s=fl_get_button(cell_options_->radio_rotate_cell);
578 num = LyXTabular::SET_ROTATE_CELL;
580 num = LyXTabular::UNSET_ROTATE_CELL;
581 } else if (ob == cell_options_->radio_useminipage) {
582 num = LyXTabular::SET_USEBOX;
584 } else if (ob == longtable_options_->radio_lt_firsthead) {
585 num = LyXTabular::SET_LTFIRSTHEAD;
586 } else if (ob == longtable_options_->radio_lt_head) {
587 num = LyXTabular::SET_LTHEAD;
588 } else if (ob == longtable_options_->radio_lt_foot) {
589 num = LyXTabular::SET_LTFOOT;
590 } else if (ob == longtable_options_->radio_lt_lastfoot) {
591 num = LyXTabular::SET_LTLASTFOOT;
592 } else if (ob == longtable_options_->radio_lt_newpage) {
593 num = LyXTabular::SET_LTNEWPAGE;
594 } else if (ob == column_options_->input_special_alignment) {
595 special = fl_get_input(column_options_->input_special_alignment);
596 num = LyXTabular::SET_SPECIAL_COLUMN;
597 } else if (ob == cell_options_->input_special_multialign) {
598 special = fl_get_input(cell_options_->input_special_multialign);
599 num = LyXTabular::SET_SPECIAL_MULTI;
600 } else if (ob == cell_options_->radio_border_top)
601 num = LyXTabular::M_TOGGLE_LINE_TOP;
602 else if (ob == cell_options_->radio_border_bottom)
603 num = LyXTabular::M_TOGGLE_LINE_BOTTOM;
604 else if (ob == cell_options_->radio_border_left)
605 num = LyXTabular::M_TOGGLE_LINE_LEFT;
606 else if (ob == cell_options_->radio_border_right)
607 num = LyXTabular::M_TOGGLE_LINE_RIGHT;
608 else if (ob == cell_options_->radio_align_left)
609 num = LyXTabular::M_ALIGN_LEFT;
610 else if (ob == cell_options_->radio_align_right)
611 num = LyXTabular::M_ALIGN_RIGHT;
612 else if (ob == cell_options_->radio_align_center)
613 num = LyXTabular::M_ALIGN_CENTER;
614 else if (ob == cell_options_->radio_valign_top)
615 num = LyXTabular::M_VALIGN_TOP;
616 else if (ob == cell_options_->radio_valign_bottom)
617 num = LyXTabular::M_VALIGN_BOTTOM;
618 else if (ob == cell_options_->radio_valign_center)
619 num = LyXTabular::M_VALIGN_CENTER;
623 inset_->TabularFeatures(lv_->view(), num, special);