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"
30 FormTabularCreate::FormTabularCreate(LyXView * lv, Dialogs * d)
31 : FormBaseBD(lv, d, _("Insert Tabular"))
33 // let the dialog be shown
34 // This is a permanent connection so we won't bother
35 // storing a copy because we won't be disconnecting.
36 d->showTabularCreate.connect(slot(this, &FormTabularCreate::show));
40 FL_FORM * FormTabularCreate::form() const
48 void FormTabularCreate::connect()
51 FormBaseBD::connect();
55 void FormTabularCreate::build()
57 dialog_.reset(build_tabular_create());
59 // Workaround dumb xforms sizing bug
63 fl_set_slider_bounds(dialog_->slider_rows, 1, 50);
64 fl_set_slider_bounds(dialog_->slider_columns, 1, 50);
65 fl_set_slider_value(dialog_->slider_rows, 5);
66 fl_set_slider_value(dialog_->slider_columns, 5);
67 fl_set_slider_precision(dialog_->slider_rows, 0);
68 fl_set_slider_precision(dialog_->slider_columns, 0);
70 // Manage the ok, apply and cancel/close buttons
71 bc().setOK(dialog_->button_ok);
72 bc().setApply(dialog_->button_apply);
73 bc().setCancel(dialog_->button_cancel);
78 void FormTabularCreate::apply()
80 int ysize = int(fl_get_slider_value(dialog_->slider_columns) + 0.5);
81 int xsize = int(fl_get_slider_value(dialog_->slider_rows) + 0.5);
83 string tmp = tostr(xsize) + " " + tostr(ysize);
84 lv_->getLyXFunc()->Dispatch(LFUN_INSET_TABULAR, tmp);
88 void FormTabularCreate::update()
90 bc().readOnly(lv_->buffer()->isReadonly());