2 /* This file is part of
3 * ======================================================
5 * LyX, The Document Processor
7 * Copyright 2000 The LyX Team.
9 * ======================================================
11 /* FormTabularCreate.C
12 * FormTabularCreate Interface Class Implementation
18 #pragma implementation
21 #include "FormTabularCreate.h"
22 #include "form_tabular_create.h"
24 #include "BufferView.h"
27 #include "insets/insettabular.h"
28 #include "support/lstrings.h"
32 FormTabularCreate::FormTabularCreate(LyXView * lv, Dialogs * d)
33 : FormBaseBD(lv, d, _("Insert Tabular"))
35 // let the dialog be shown
36 // This is a permanent connection so we won't bother
37 // storing a copy because we won't be disconnecting.
38 d->showTabularCreate.connect(slot(this, &FormTabularCreate::show));
42 FL_FORM * FormTabularCreate::form() const
50 void FormTabularCreate::connect()
53 FormBaseBD::connect();
57 void FormTabularCreate::build()
59 dialog_.reset(build_tabular_create());
61 // Workaround dumb xforms sizing bug
65 fl_set_slider_bounds(dialog_->slider_rows, 1, 50);
66 fl_set_slider_bounds(dialog_->slider_columns, 1, 50);
67 fl_set_slider_value(dialog_->slider_rows, 5);
68 fl_set_slider_value(dialog_->slider_columns, 5);
69 fl_set_slider_precision(dialog_->slider_rows, 0);
70 fl_set_slider_precision(dialog_->slider_columns, 0);
72 // Manage the ok, apply and cancel/close buttons
73 bc().setOK(dialog_->button_ok);
74 bc().setApply(dialog_->button_apply);
75 bc().setCancel(dialog_->button_cancel);
80 void FormTabularCreate::apply()
82 int ysize = int(fl_get_slider_value(dialog_->slider_columns) + 0.5);
83 int xsize = int(fl_get_slider_value(dialog_->slider_rows) + 0.5);
85 string tmp = tostr(xsize) + " " + tostr(ysize);
86 lv_->getLyXFunc()->Dispatch(LFUN_INSET_TABULAR, tmp);
90 void FormTabularCreate::update()
92 bc().readOnly(lv_->buffer()->isReadonly());