]> git.lyx.org Git - features.git/commitdiff
Moving to have the Tabular-Layout-Form tabbed and in the GUI-indep directory.
authorJürgen Vigna <jug@sad.it>
Tue, 11 Jul 2000 15:08:54 +0000 (15:08 +0000)
committerJürgen Vigna <jug@sad.it>
Tue, 11 Jul 2000 15:08:54 +0000 (15:08 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@876 a592a061-630c-0410-9148-cb99ea01b6c8

21 files changed:
ChangeLog
src/BufferView.h
src/BufferView2.C
src/frontends/Dialogs.h
src/frontends/xforms/Dialogs.C
src/frontends/xforms/FormTabular.C [new file with mode: 0644]
src/frontends/xforms/FormTabular.h [new file with mode: 0644]
src/frontends/xforms/Makefile.am
src/frontends/xforms/form_citation.h
src/frontends/xforms/form_copyright.h
src/frontends/xforms/form_preferences.h
src/frontends/xforms/form_print.h
src/frontends/xforms/form_tabular.C [new file with mode: 0644]
src/frontends/xforms/form_tabular.h [new file with mode: 0644]
src/frontends/xforms/forms/form_tabular.fd [new file with mode: 0644]
src/frontends/xforms/forms/makefile
src/insets/insettabular.C
src/insets/insettabular.h
src/lyx_gui.C
src/lyxfunc.C
src/tabular.h

index 033daeb56dabd55b82dfa03e9107e8810c07c464..a363c47bd40bc6dc04d8a2212ee83f08eebbe4cb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2000-07-11  Juergen Vigna  <jug@sad.it>
 
+       * src/BufferView2.C (open_new_inset): changed to a bool returnvalue
+       as the insertInset could not be good!
+
        * src/screen.C (ToggleSelection): fixed toggle selection bug as
        the bool param should not be last.
 
index b5783957aa64ad6e5858f0bff1ff68bb3663f3f2..a55ce7f567dbc757e48349d2f17715c7771867e6 100644 (file)
@@ -173,7 +173,7 @@ public:
        bool insertInset(Inset * inset, string const & lout = string(),
                         bool no_table = false);
        /// open and lock an updatable inset
-       void open_new_inset(UpdatableInset * new_inset);
+       bool open_new_inset(UpdatableInset * new_inset);
        /// Inserts a lyx file at cursor position. Returns false if it fails.
        bool insertLyXFile(string const & file);
        ///
index 0e56648dcb479f6ce57ba960450e9c6709e3a05d..e305bd0b659e4449e3a8246597cf4329908ee25d 100644 (file)
@@ -272,11 +272,12 @@ bool BufferView::insertInset(Inset * inset, string const & lout,
 
 
 // Open and lock an updatable inset
-void BufferView::open_new_inset(UpdatableInset * new_inset)
+bool BufferView::open_new_inset(UpdatableInset * new_inset)
 {
        beforeChange();
        text->FinishUndo();
-       insertInset(new_inset);
+       if (!insertInset(new_inset))
+               return false;
        text->CursorLeft(this);
        update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
        new_inset->Edit(this, 0, 0, 0);
index 7a3f9319c9716d38f88892317ff50bd6494b632b..07bd1b480ca78acc8c4629991694898ef4693d39 100644 (file)
@@ -41,6 +41,7 @@ class InsetBibKey;
 class InsetCitation;
 class InsetBibtex;
 class InsetInfo;
+class InsetTabular;
 
 /** Container of all dialogs and signals a LyXView needs or uses to access them
     The list of dialog signals isn't comprehensive but should be a good guide
@@ -76,11 +77,13 @@ public:
        ///
        Signal0<void> showLogFile;
        ///
-       Signal0<void> showTable;
+       Signal1<void, InsetTabular *> showTabular;
        ///
-       Signal0<void> updateTable; // needed for InsetTabular-Update
+       Signal1<void, InsetTabular *> updateTabular;
        ///
-       Signal0<void> showTableNew;
+       Signal1<void, InsetTabular *> hideTabular;
+       ///
+       Signal0<void> showTabularCreate;
        ///
        Signal0<void> showCharacter;
        ///
index 13f756ef09ffc57a14df3df42b1576db4590c51b..c13f97bf9ffc15719276eb37a5f725b1330255a8 100644 (file)
@@ -2,10 +2,11 @@
 #include FORMS_H_LOCATION
 
 #include "Dialogs.h"
+#include "FormCitation.h"
 #include "FormCopyright.h"
-#include "FormPrint.h"
 #include "FormPreferences.h"
-#include "FormCitation.h"
+#include "FormPrint.h"
+#include "FormTabular.h"
 
 #ifdef __GNUG__
 #pragma implementation
 
 Dialogs::Dialogs(LyXView * lv)
 {
+       dialogs_.push_back(new FormCitation(lv, this));
        dialogs_.push_back(new FormCopyright(lv, this));
-       dialogs_.push_back(new FormPrint(lv, this));
        dialogs_.push_back(new FormPreferences(lv, this));
-       dialogs_.push_back(new FormCitation(lv, this));
+       dialogs_.push_back(new FormPrint(lv, this));
+       dialogs_.push_back(new FormTabular(lv, this));
 
        // reduce the number of connections needed in
        // dialogs by a simple connection here.
diff --git a/src/frontends/xforms/FormTabular.C b/src/frontends/xforms/FormTabular.C
new file mode 100644 (file)
index 0000000..272e4ef
--- /dev/null
@@ -0,0 +1,426 @@
+/* FormTabular.C
+ * FormTabular Interface Class Implementation
+ */
+
+#include <config.h>
+#include "lyx_gui_misc.h"
+#include "gettext.h"
+#include FORMS_H_LOCATION
+
+#include "FormTabular.h"
+#include "xform_macros.h"
+#include "input_validators.h"
+#include "LyXView.h"
+#include "lyxfunc.h"
+#include "Dialogs.h"
+#include "lyxrc.h"
+#include "debug.h"
+#include "insets/insettabular.h"
+#include "buffer.h"
+
+
+#ifdef SIGC_CXX_NAMESPACES
+using SigC::slot;
+#endif
+
+C_RETURNCB(FormTabular,  WMHideCB)
+C_GENERICCB(FormTabular, TabularCloseCB)
+C_GENERICCB(FormTabular, TabularInputCB)
+
+
+FormTabular::FormTabular(LyXView * lv, Dialogs * d)
+       : dialog_(0), tabular_options_(0), column_options_(0),
+         cell_options_(0), longtable_options_(0), create_tabular_(0),
+         lv_(lv), d_(d), u_(0), h_(0), inset_(0), actCell_(-1) 
+{
+    // let the dialog be shown
+    // This is a permanent connection so we won't bother
+    // storing a copy because we won't be disconnecting.
+    d->showTabular.connect(slot(this, &FormTabular::showInset));
+    d->updateTabular.connect(slot(this, &FormTabular::updateInset));
+    d->hideTabular.connect(slot(this, &FormTabular::hideInset));
+    d->showTabularCreate.connect(slot(this, &FormTabular::show_create));
+}
+
+
+FormTabular::~FormTabular()
+{
+    free();
+}
+
+
+void FormTabular::build()
+{
+    dialog_ = build_tabular();
+    tabular_options_ = build_tabular_options();
+    column_options_ = build_column_options();
+    cell_options_ = build_cell_options();
+    longtable_options_ = build_longtable_options();
+    create_tabular_ = build_create_tabular();
+
+    fl_set_input_return(column_options_->input_column_width,
+                       FL_RETURN_CHANGED);
+    fl_set_input_return(column_options_->input_special_alignment,
+                       FL_RETURN_CHANGED);
+    fl_set_input_return(cell_options_->input_mcolumn_width,
+                       FL_RETURN_CHANGED);
+    fl_set_input_return(cell_options_->input_special_multialign,
+                       FL_RETURN_CHANGED);
+
+    fl_addto_tabfolder(dialog_->tabFolder, _("Tabular"),
+                      tabular_options_->form_tabular_options);
+    fl_addto_tabfolder(dialog_->tabFolder, _("Column/Row"),
+                      column_options_->form_column_options);
+    fl_addto_tabfolder(dialog_->tabFolder, _("Cell"),
+                      cell_options_->form_cell_options);
+    fl_addto_tabfolder(dialog_->tabFolder, _("LongTable"),
+                      longtable_options_->form_longtable_options);
+    
+    fl_set_form_atclose(dialog_->form_tabular,
+                       C_FormTabularWMHideCB, 0);
+
+    fl_set_slider_bounds(create_tabular_->slider_rows, 1, 50);
+    fl_set_slider_bounds(create_tabular_->slider_columns, 1, 50);
+    fl_set_slider_value(create_tabular_->slider_rows, 5);
+    fl_set_slider_value(create_tabular_->slider_columns, 5);
+    fl_set_slider_precision(create_tabular_->slider_rows, 0);
+    fl_set_slider_precision(create_tabular_->slider_columns, 0);
+    fl_set_form_atclose(create_tabular_->form_create_tabular, 
+                        C_FormTabularWMHideCB, 0);
+}
+
+
+void FormTabular::show()
+{
+    if (!dialog_) {
+       build();
+    }
+    update();  // make sure its up-to-date
+
+    if (dialog_->form_tabular->visible) {
+       fl_raise_form(dialog_->form_tabular);
+    } else {
+       fl_show_form(dialog_->form_tabular,
+                    FL_PLACE_MOUSE | FL_FREE_SIZE,
+                    FL_FULLBORDER,
+                    _("Tabular Layout"));
+//     u_ = d_->updateBufferDependent.connect(slot(this,
+//                                                 &FormTabular::update));
+       h_ = d_->hideBufferDependent.connect(slot(this,
+                                                 &FormTabular::hide));
+    }
+}
+
+void FormTabular::showInset(InsetTabular * ti)
+{
+    inset_ = ti;
+    if (ti) {
+       show();
+    }
+}
+
+void FormTabular::hide()
+{
+    if (dialog_ && dialog_->form_tabular && dialog_->form_tabular->visible) {
+       fl_hide_form(dialog_->form_tabular);
+       u_.disconnect();
+       h_.disconnect();
+       inset_ = 0;
+    }
+}
+
+
+void FormTabular::hideInset(InsetTabular * ti)
+{
+    if (inset_ == ti) {
+       inset_ = 0;
+       hide();
+    }
+}
+
+
+void FormTabular::apply()
+{
+}
+
+
+void FormTabular::update()
+{
+    if (dialog_) {
+       local_update(true);
+    }
+}
+
+void FormTabular::updateInset(InsetTabular *)
+{
+    update();
+}
+
+void FormTabular::input()
+{
+    bool activate = true;
+    //
+    // whatever checks you need
+    //
+    if (activate) {
+    } else {
+    }
+}
+
+
+void FormTabular::free()
+{
+    // we don't need to delete u and h here because
+    // hide() does that after disconnecting.
+    if (dialog_) {
+       if (dialog_->form_tabular
+           && dialog_->form_tabular->visible) {
+           hide();
+       }
+       fl_free_form(dialog_->form_tabular);
+       delete dialog_;
+       dialog_ = 0;
+    }
+}
+
+
+int FormTabular::WMHideCB(FL_FORM * form, void *)
+{
+    // Ensure that the signals (u and h) are disconnected even if the
+    // window manager is used to close the dialog.
+    FormTabular * pre = static_cast<FormTabular*>(form->u_vdata);
+    pre->hide();
+    return FL_CANCEL;
+}
+
+
+void FormTabular::TabularCloseCB(FL_OBJECT * ob, long)
+{
+    FormTabular * pre = static_cast<FormTabular*>(ob->form->u_vdata);
+    pre->hide();
+}
+
+
+void FormTabular::TabularInputCB(FL_OBJECT * ob, long)
+{
+    FormTabular * pre = static_cast<FormTabular*>(ob->form->u_vdata);
+    pre->input();
+}
+
+
+bool FormTabular::local_update(bool flag)
+{
+    if (!inset_ || !inset_->tabular)
+        return false;
+
+    LyXTabular
+        * tabular = inset_->tabular;
+    int
+        align,
+        cell,
+        column,row;
+    char
+        buf[12];
+    string
+        pwidth, special;
+
+    actCell_ = cell = inset_->GetActCell();
+    column = tabular->column_of_cell(cell)+1;
+    fl_set_object_label(dialog_->text_warning,"");
+    confirmed_ = false;
+    fl_activate_object(column_options_->input_special_alignment);
+    fl_activate_object(cell_options_->input_special_multialign);
+    fl_activate_object(column_options_->input_column_width);
+    sprintf(buf,"%d",column);
+    fl_set_input(dialog_->input_tabular_column, buf);
+    fl_deactivate_object(dialog_->input_tabular_column);
+    row = tabular->row_of_cell(cell)+1;
+    sprintf(buf,"%d",row);
+    fl_set_input(dialog_->input_tabular_row, buf);
+    fl_deactivate_object(dialog_->input_tabular_row);
+    if (tabular->IsMultiColumn(cell))
+        fl_set_button(cell_options_->radio_multicolumn, 1);
+    else
+        fl_set_button(cell_options_->radio_multicolumn, 0);
+    if (tabular->GetRotateCell(cell))
+        fl_set_button(cell_options_->radio_rotate_cell, 1);
+    else
+        fl_set_button(cell_options_->radio_rotate_cell, 0);
+    if (tabular->TopLine(cell))
+        fl_set_button(column_options_->radio_border_top, 1);
+    else
+        fl_set_button(column_options_->radio_border_top, 0);
+    if (tabular->BottomLine(cell))
+        fl_set_button(column_options_->radio_border_bottom, 1);
+    else
+        fl_set_button(column_options_->radio_border_bottom, 0);
+    if (tabular->LeftLine(cell))
+        fl_set_button(column_options_->radio_border_left, 1);
+    else
+        fl_set_button(column_options_->radio_border_left, 0);
+    if (tabular->RightLine(cell))
+        fl_set_button(column_options_->radio_border_right, 1);
+    else
+        fl_set_button(column_options_->radio_border_right, 0);
+    align = tabular->GetAlignment(cell);
+    fl_set_button(column_options_->radio_align_left, 0);
+    fl_set_button(column_options_->radio_align_right, 0);
+    fl_set_button(column_options_->radio_align_center, 0);
+    special = tabular->GetAlignSpecial(cell,LyXTabular::SET_SPECIAL_COLUMN);
+    if (flag)
+        fl_set_input(column_options_->input_special_alignment,
+                    special.c_str());
+    if (lv_->buffer()->isReadonly()) 
+        fl_deactivate_object(column_options_->input_special_alignment);
+    special = tabular->GetAlignSpecial(cell,LyXTabular::SET_SPECIAL_MULTI);
+    if (flag)
+        fl_set_input(cell_options_->input_special_multialign, special.c_str());
+    if (lv_->buffer()->isReadonly()) 
+        fl_deactivate_object(cell_options_->input_special_multialign);
+    pwidth = tabular->GetPWidth(cell);
+    if (flag)
+        fl_set_input(column_options_->input_column_width,pwidth.c_str());
+    if (lv_->buffer()->isReadonly()) {
+        fl_deactivate_object(column_options_->input_column_width);
+    } else {
+        fl_activate_object(column_options_->input_column_width);
+    }
+    if (!pwidth.empty()) {
+        fl_activate_object(cell_options_->radio_linebreak_cell);
+        fl_set_object_lcol(cell_options_->radio_linebreak_cell, FL_BLACK);
+        fl_set_button(cell_options_->radio_linebreak_cell,
+                      tabular->GetLinebreaks(cell));
+    } else {
+        fl_deactivate_object(cell_options_->radio_linebreak_cell);
+        fl_set_object_lcol(cell_options_->radio_linebreak_cell, FL_INACTIVE);
+        fl_set_button(cell_options_->radio_linebreak_cell,0);
+    }
+    if ((!pwidth.empty() && !tabular->IsMultiColumn(cell)) ||
+        (align == LYX_ALIGN_LEFT))
+        fl_set_button(column_options_->radio_align_left, 1);
+    else if (align == LYX_ALIGN_RIGHT)
+        fl_set_button(column_options_->radio_align_right, 1);
+    else
+        fl_set_button(column_options_->radio_align_center, 1);
+    if (!pwidth.empty() && !tabular->IsMultiColumn(cell)) {
+        fl_deactivate_object(column_options_->radio_align_left);
+        fl_deactivate_object(column_options_->radio_align_right);
+        fl_deactivate_object(column_options_->radio_align_center);
+        fl_set_object_lcol(column_options_->radio_align_left, FL_INACTIVE);
+        fl_set_object_lcol(column_options_->radio_align_right, FL_INACTIVE);
+        fl_set_object_lcol(column_options_->radio_align_center, FL_INACTIVE);
+    } else {
+        fl_activate_object(column_options_->radio_align_left);
+        fl_activate_object(column_options_->radio_align_right);
+        fl_activate_object(column_options_->radio_align_center);
+        fl_set_object_lcol(column_options_->radio_align_left, FL_BLACK);
+        fl_set_object_lcol(column_options_->radio_align_right, FL_BLACK);
+        fl_set_object_lcol(column_options_->radio_align_center, FL_BLACK);
+    }
+    fl_set_button(tabular_options_->radio_longtable,
+                 tabular->IsLongTabular());
+    if (tabular->IsLongTabular()) {
+        fl_activate_object(longtable_options_->radio_lt_firsthead);
+        fl_activate_object(longtable_options_->radio_lt_head);
+        fl_activate_object(longtable_options_->radio_lt_foot);
+        fl_activate_object(longtable_options_->radio_lt_lastfoot);
+        fl_activate_object(longtable_options_->radio_lt_newpage);
+        fl_set_object_lcol(longtable_options_->radio_lt_firsthead, FL_BLACK);
+        fl_set_object_lcol(longtable_options_->radio_lt_head, FL_BLACK);
+        fl_set_object_lcol(longtable_options_->radio_lt_foot, FL_BLACK);
+        fl_set_object_lcol(longtable_options_->radio_lt_lastfoot, FL_BLACK);
+        fl_set_object_lcol(longtable_options_->radio_lt_newpage, FL_BLACK);
+        fl_set_button(longtable_options_->radio_lt_firsthead,
+                      tabular->GetRowOfLTFirstHead(cell));
+        fl_set_button(longtable_options_->radio_lt_head,
+                     tabular->GetRowOfLTHead(cell));
+        fl_set_button(longtable_options_->radio_lt_foot,
+                     tabular->GetRowOfLTFoot(cell));
+        fl_set_button(longtable_options_->radio_lt_lastfoot,
+                      tabular->GetRowOfLTLastFoot(cell));
+        fl_set_button(longtable_options_->radio_lt_newpage,
+                     tabular->GetLTNewPage(cell));
+    } else {
+        fl_deactivate_object(longtable_options_->radio_lt_firsthead);
+        fl_deactivate_object(longtable_options_->radio_lt_head);
+        fl_deactivate_object(longtable_options_->radio_lt_foot);
+        fl_deactivate_object(longtable_options_->radio_lt_lastfoot);
+        fl_deactivate_object(longtable_options_->radio_lt_newpage);
+        fl_set_button(longtable_options_->radio_lt_firsthead,0);
+        fl_set_button(longtable_options_->radio_lt_head,0);
+        fl_set_button(longtable_options_->radio_lt_foot,0);
+        fl_set_button(longtable_options_->radio_lt_lastfoot,0);
+        fl_set_button(longtable_options_->radio_lt_newpage,0);
+        fl_set_object_lcol(longtable_options_->radio_lt_firsthead,FL_INACTIVE);
+        fl_set_object_lcol(longtable_options_->radio_lt_head, FL_INACTIVE);
+        fl_set_object_lcol(longtable_options_->radio_lt_foot, FL_INACTIVE);
+        fl_set_object_lcol(longtable_options_->radio_lt_lastfoot, FL_INACTIVE);
+        fl_set_object_lcol(longtable_options_->radio_lt_newpage, FL_INACTIVE);
+    }
+    fl_set_button(tabular_options_->radio_rotate_tabular,
+                 tabular->GetRotateTabular());
+    return true;
+}
+
+// +-----------------------------------------------------------------------+
+// |          Functions/Dialogs for creating tabular insets                |
+// +-----------------------------------------------------------------------+
+
+void FormTabular::show_create()
+{
+    if (!dialog_) {
+       build();
+    }
+    if (create_tabular_->form_create_tabular->visible) {
+        fl_raise_form(create_tabular_->form_create_tabular);
+    } else {
+        fl_show_form(create_tabular_->form_create_tabular,
+                    FL_PLACE_MOUSE | FL_FREE_SIZE,
+                     FL_FULLBORDER, _("Insert Tabular"));
+    }
+}
+
+
+void FormTabular::hide_create()
+{
+    if (create_tabular_->form_create_tabular)
+        fl_hide_form(create_tabular_->form_create_tabular);
+}
+
+
+void FormTabular::apply_create()
+{
+    int
+        xsize,ysize;
+
+//    comm->setMinibuffer(_("Inserting tabular inset..."));
+    ysize = int(fl_get_slider_value(create_tabular_->slider_columns) + 0.5);
+    xsize = int(fl_get_slider_value(create_tabular_->slider_rows) + 0.5);
+    InsetTabular * in = new InsetTabular(lv_->buffer(),xsize,ysize);
+    if (!lv_->view()->open_new_inset(in)) {
+       delete in;
+    }
+//    comm->setMinibuffer(_("Tabular mode"));
+}
+
+
+void FormTabular::TabularOKCB(FL_OBJECT * ob, long)
+{
+    FormTabular * pre = (FormTabular*)ob->form->u_vdata;
+    pre->apply_create();
+    pre->hide_create();
+}
+
+
+void FormTabular::TabularApplyCB(FL_OBJECT * ob, long)
+{
+    FormTabular * pre = (FormTabular*)ob->form->u_vdata;
+    pre->apply_create();
+}
+
+
+void FormTabular::TabularCancelCB(FL_OBJECT * ob, long)
+{
+    FormTabular * pre = (FormTabular*)ob->form->u_vdata;
+    pre->hide_create();
+}
diff --git a/src/frontends/xforms/FormTabular.h b/src/frontends/xforms/FormTabular.h
new file mode 100644 (file)
index 0000000..63b9e9e
--- /dev/null
@@ -0,0 +1,127 @@
+// -*- C++ -*-
+/* This file is part of
+ * ======================================================
+ * 
+ *           LyX, The Document Processor
+ *      
+ *         Copyright 1995 Matthias Ettrich
+ *          Copyright 1995-2000 The LyX Team.
+ *
+ *         This file copyright 1999-2000
+ *         Allan Rae
+ *======================================================*/
+/* FormTabular.h
+ * FormTabular Interface Class
+ */
+
+#ifndef FORMTABULAR_H
+#define FORMTABULAR_H
+
+#include "DialogBase.h"
+#include "form_tabular.h"
+#ifdef SIGC_CXX_NAMESPACES
+using SigC::Connection;
+#endif
+
+class LyXView;
+class Dialogs;
+class InsetTabular;
+
+/** This class provides an XForms implementation of the FormTabular Dialog.
+    The tabular dialog allows users to set/save their tabular.
+ */
+class FormTabular : public DialogBase {
+public:
+    /**@name Constructors and Destructors */
+    //@{
+    /// #FormTabular x(LyXFunc ..., Dialogs ...);#
+    FormTabular(LyXView *, Dialogs *);
+    ///
+    ~FormTabular();
+    //@}
+
+    /**@name Real per-instance Callback Methods */
+    //@{
+    static  int WMHideCB(FL_FORM *, void *);
+    static void TabularCloseCB(FL_OBJECT *, long);
+    static void TabularOKCB(FL_OBJECT *, long);
+    static void TabularCancelCB(FL_OBJECT *, long);
+    static void TabularApplyCB(FL_OBJECT *, long);
+    static void TabularInputCB(FL_OBJECT *, long);
+    //@}
+
+private:
+    FormTabular() {}
+    FormTabular(FormTabular &) : DialogBase() {}
+    
+    /**@name Slot Methods */
+    //@{
+    /// Create the dialog if necessary, update it and display it.
+    void show();
+    void show_create();
+    void showInset(InsetTabular *);
+    /// Hide the dialog.
+    void hide();
+    void hide_create();
+    void hideInset(InsetTabular *);
+    /// Update the dialog.
+    void update();
+    void updateInset(InsetTabular *);
+    bool local_update(bool);
+    //@}
+    
+    /**@name Dialog internal methods */
+    //@{
+    /// Apply from dialog
+    void apply();
+    void apply_create();
+    /// Filter the inputs
+    void input();
+    /// Build the dialog
+    void build();
+    ///
+    FD_form_tabular * build_tabular();
+    ///
+    FD_form_tabular_options * build_tabular_options();
+    ///
+    FD_form_column_options * build_column_options();
+    ///
+    FD_form_cell_options * build_cell_options();
+    ///
+    FD_form_longtable_options * build_longtable_options();
+    ///
+    FD_form_create_tabular * build_create_tabular();
+    ///
+    /// Explicitly free the dialog.
+    void free();
+    //@}
+
+    /**@name Private Data */
+    //@{
+    /// Real GUI implementation.
+    FD_form_tabular * dialog_;
+    ///
+    FD_form_tabular_options * tabular_options_;
+    ///
+    FD_form_column_options * column_options_;
+    ///
+    FD_form_cell_options * cell_options_;
+    ///
+    FD_form_longtable_options * longtable_options_;
+    ///
+    FD_form_create_tabular * create_tabular_;
+    ///
+    /// Which LyXView do we belong to?
+    LyXView * lv_;
+    Dialogs * d_;
+    /// Update connection.
+    Connection u_;
+    /// Hide connection.
+    Connection h_;
+    //@}
+    InsetTabular * inset_;
+    int actCell_;
+    bool confirmed_;
+};
+
+#endif
index 2a39d60b3a4c60aa9889ef4c72c21e33864bb9b8..b8cf600e185e1a028c4b345667727779ddbbd4d3 100644 (file)
@@ -11,6 +11,10 @@ LYXDATADIRS = forms
 ETAGS_ARGS = --lang=c++
 libxforms_la_SOURCES = \
        Dialogs.C \
+       FormCitation.C \
+       FormCitation.h \
+       form_citation.C \
+       form_citation.h \
        FormCopyright.C \
        FormCopyright.h \
        form_copyright.C \
@@ -23,10 +27,10 @@ libxforms_la_SOURCES = \
        FormPrint.h \
        form_print.C \
        form_print.h \
-       FormCitation.C \
-       FormCitation.h \
-       form_citation.C \
-       form_citation.h \
+       FormTabular.C \
+       FormTabular.h \
+       form_tabular.C \
+       form_tabular.h \
        input_validators.h \
        input_validators.c \
        xform_macros.h
index b9483524f99bb33c3998cb3a2af6fb2899a528cb..7f38b5643fc6b58424c694285db473d047198f00 100644 (file)
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Thu Jul  6 17:01:34 2000.**/
+/** Header file generated with fdesign on Tue Jul 11 11:01:26 2000.**/
 
 #ifndef FD_form_citation_h_
 #define FD_form_citation_h_
index e16d3df7109688976d0924ad8a1313e91cef308c..d5ebfc6f9f020feda07a0db5792ca3a2836c6b5f 100644 (file)
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Thu Jul  6 17:01:34 2000.**/
+/** Header file generated with fdesign on Tue Jul 11 11:01:26 2000.**/
 
 #ifndef FD_form_copyright_h_
 #define FD_form_copyright_h_
index a8d539f73e5183fad5be46be73e8cb735ba1fc37..a655c6e7f300c1cfab6b601e984cdac485ac96df 100644 (file)
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Thu Jul  6 17:01:34 2000.**/
+/** Header file generated with fdesign on Tue Jul 11 11:01:26 2000.**/
 
 #ifndef FD_form_bind_h_
 #define FD_form_bind_h_
index e3b57fa9551f58323c1da4cc225900c0d7da5ac4..2ca66c5428a46e07f930802f492ad2501f26d16e 100644 (file)
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Thu Jul  6 17:01:34 2000.**/
+/** Header file generated with fdesign on Tue Jul 11 11:01:26 2000.**/
 
 #ifndef FD_form_print_h_
 #define FD_form_print_h_
diff --git a/src/frontends/xforms/form_tabular.C b/src/frontends/xforms/form_tabular.C
new file mode 100644 (file)
index 0000000..7d4e7bd
--- /dev/null
@@ -0,0 +1,335 @@
+// File modified by fdfix.sh for use by lyx (with xforms >= 0.86) and gettext
+#include <config.h>
+#include "lyx_gui_misc.h"
+#include "gettext.h"
+
+/* Form definition file generated with fdesign. */
+
+#include FORMS_H_LOCATION
+#include <stdlib.h>
+#include "FormTabular.h"
+
+FD_form_tabular * FormTabular::build_tabular()
+{
+  FL_OBJECT *obj;
+  FD_form_tabular *fdui = new FD_form_tabular;
+
+  fdui->form_tabular = fl_bgn_form(FL_NO_BOX, 510, 340);
+  fdui->form_tabular->u_vdata = this;
+  obj = fl_add_box(FL_FLAT_BOX, 0, 0, 510, 340, "");
+  fdui->tabFolder = obj = fl_add_tabfolder(FL_TOP_TABFOLDER, 10, 10, 485, 240, _("Tabbed folder"));
+    fl_set_object_resize(obj, FL_RESIZE_ALL);
+  fdui->button_close = obj = fl_add_button(FL_NORMAL_BUTTON, 395, 300, 100, 30, idex(_("Close|#C")));fl_set_button_shortcut(obj, scex(_("Close|#C")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularCloseCB, 0);
+  fdui->input_tabular_column = obj = fl_add_input(FL_NORMAL_INPUT, 15, 300, 60, 30, _("Column"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT);
+  fdui->input_tabular_row = obj = fl_add_input(FL_NORMAL_INPUT, 85, 300, 60, 30, _("Row"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT);
+  fdui->text_warning = obj = fl_add_text(FL_NORMAL_TEXT, 10, 250, 485, 30, "");
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  fl_end_form();
+
+  fdui->form_tabular->fdui = fdui;
+
+  return fdui;
+}
+/*---------------------------------------*/
+
+FD_form_tabular_options * FormTabular::build_tabular_options()
+{
+  FL_OBJECT *obj;
+  FD_form_tabular_options *fdui = new FD_form_tabular_options;
+
+  fdui->form_tabular_options = fl_bgn_form(FL_NO_BOX, 485, 220);
+  fdui->form_tabular_options->u_vdata = this;
+  obj = fl_add_box(FL_UP_BOX, 0, 0, 485, 220, "");
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 280, 20, 120, 75, "");
+    fl_set_object_color(obj, FL_COL1, FL_COL1);
+  fdui->button_append_column = obj = fl_add_button(FL_NORMAL_BUTTON, 10, 40, 120, 30, idex(_("Append Column|#A")));fl_set_button_shortcut(obj, scex(_("Append Column|#A")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->button_delete_column = obj = fl_add_button(FL_NORMAL_BUTTON, 140, 40, 120, 30, idex(_("Delete Column|#O")));fl_set_button_shortcut(obj, scex(_("Delete Column|#O")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->button_append_row = obj = fl_add_button(FL_NORMAL_BUTTON, 10, 70, 120, 30, idex(_("Append Row|#p")));fl_set_button_shortcut(obj, scex(_("Append Row|#p")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->button_delete_row = obj = fl_add_button(FL_NORMAL_BUTTON, 140, 70, 120, 30, idex(_("Delete Row|#w")));fl_set_button_shortcut(obj, scex(_("Delete Row|#w")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->button_set_borders = obj = fl_add_button(FL_NORMAL_BUTTON, 10, 10, 120, 30, idex(_("Set Borders|#S")));fl_set_button_shortcut(obj, scex(_("Set Borders|#S")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->button_unset_borders = obj = fl_add_button(FL_NORMAL_BUTTON, 140, 10, 120, 30, idex(_("Unset Borders|#U")));fl_set_button_shortcut(obj, scex(_("Unset Borders|#U")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_longtable = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 280, 30, 90, 25, _("Longtable"));
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_rotate_tabular = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 280, 55, 90, 25, idex(_("Rotate 90°|#9")));fl_set_button_shortcut(obj, scex(_("Rotate 90°|#9")), 1);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  obj = fl_add_text(FL_NORMAL_TEXT, 285, 10, 100, 20, _("Spec. Table"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  fl_end_form();
+
+  fdui->form_tabular_options->fdui = fdui;
+
+  return fdui;
+}
+/*---------------------------------------*/
+
+FD_form_column_options * FormTabular::build_column_options()
+{
+  FL_OBJECT *obj;
+  FD_form_column_options *fdui = new FD_form_column_options;
+
+  fdui->form_column_options = fl_bgn_form(FL_NO_BOX, 485, 220);
+  fdui->form_column_options->u_vdata = this;
+  obj = fl_add_box(FL_UP_BOX, 0, 0, 485, 220, "");
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 20, 20, 170, 105, "");
+    fl_set_object_color(obj, FL_COL1, FL_COL1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+  obj = fl_add_text(FL_NORMAL_TEXT, 25, 10, 70, 20, _("Borders"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  fdui->radio_border_top = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 85, 45, 25, 25, idex(_("Top|#t")));fl_set_button_shortcut(obj, scex(_("Top|#t")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_border_bottom = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 85, 75, 25, 25, idex(_("Bottom|#b")));fl_set_button_shortcut(obj, scex(_("Bottom|#b")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_BOTTOM_LEFT);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_border_left = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 65, 60, 25, 25, idex(_("Left|#l")));fl_set_button_shortcut(obj, scex(_("Left|#l")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_border_right = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 105, 60, 25, 25, idex(_("Right|#r")));fl_set_button_shortcut(obj, scex(_("Right|#r")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_RIGHT);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 200, 20, 130, 105, "");
+    fl_set_object_color(obj, FL_COL1, FL_COL1);
+  obj = fl_add_text(FL_NORMAL_TEXT, 205, 10, 115, 20, _("H. Alignment"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  fdui->radio_align_left = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 30, 110, 25, idex(_("Left|#e")));fl_set_button_shortcut(obj, scex(_("Left|#e")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_align_right = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 55, 115, 25, idex(_("Right|#i")));fl_set_button_shortcut(obj, scex(_("Right|#i")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_align_center = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 80, 115, 25, idex(_("Center|#c")));fl_set_button_shortcut(obj, scex(_("Center|#c")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->input_column_width = obj = fl_add_input(FL_NORMAL_INPUT, 375, 150, 95, 30, _("Width of column:"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 340, 20, 130, 105, "");
+    fl_set_object_color(obj, FL_COL1, FL_COL1);
+  fdui->radio_valign_top = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 345, 30, 110, 25, idex(_("Top|#p")));fl_set_button_shortcut(obj, scex(_("Top|#p")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_valign_center = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 345, 55, 115, 25, idex(_("Center|#n")));fl_set_button_shortcut(obj, scex(_("Center|#n")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_valign_bottom = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 345, 80, 115, 25, idex(_("Bottom|#o")));fl_set_button_shortcut(obj, scex(_("Bottom|#o")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  obj = fl_add_text(FL_NORMAL_TEXT, 345, 10, 115, 20, _("V. Alignment"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 20, 140, 220, 50, "");
+    fl_set_object_color(obj, FL_COL1, FL_COL1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+  fdui->input_special_alignment = obj = fl_add_input(FL_NORMAL_INPUT, 30, 150, 200, 30, "");
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  obj = fl_add_text(FL_NORMAL_TEXT, 25, 130, 170, 20, _("Special Column Alignment"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  fl_end_form();
+
+  fdui->form_column_options->fdui = fdui;
+
+  return fdui;
+}
+/*---------------------------------------*/
+
+FD_form_cell_options * FormTabular::build_cell_options()
+{
+  FL_OBJECT *obj;
+  FD_form_cell_options *fdui = new FD_form_cell_options;
+
+  fdui->form_cell_options = fl_bgn_form(FL_NO_BOX, 485, 220);
+  fdui->form_cell_options->u_vdata = this;
+  obj = fl_add_box(FL_UP_BOX, 0, 0, 485, 220, "");
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 10, 110, 180, 100, "");
+    fl_set_object_color(obj, FL_COL1, FL_COL1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+  obj = fl_add_text(FL_NORMAL_TEXT, 15, 100, 70, 20, _("Borders"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 195, 110, 130, 100, "");
+    fl_set_object_color(obj, FL_COL1, FL_COL1);
+  obj = fl_add_text(FL_NORMAL_TEXT, 200, 100, 115, 20, _("H. Alignment"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 340, 110, 130, 100, "");
+    fl_set_object_color(obj, FL_COL1, FL_COL1);
+  obj = fl_add_text(FL_NORMAL_TEXT, 345, 100, 115, 20, _("V. Alignment"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 10, 15, 150, 85, "");
+  obj = fl_add_text(FL_NORMAL_TEXT, 15, 5, 140, 20, _("Special Cell"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  fdui->radio_multicolumn = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 10, 25, 145, 25, idex(_("Multicolumn|#M")));fl_set_button_shortcut(obj, scex(_("Multicolumn|#M")), 1);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_linebreak_cell = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 10, 50, 145, 25, idex(_("Linebreaks|#N")));fl_set_button_shortcut(obj, scex(_("Linebreaks|#N")), 1);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_rotate_cell = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 10, 75, 145, 25, _("Rotate 90°"));
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 165, 15, 305, 85, "");
+    fl_set_object_color(obj, FL_COL1, FL_COL1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+  fdui->input_special_multialign = obj = fl_add_input(FL_NORMAL_INPUT, 175, 30, 280, 30, "");
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  obj = fl_add_text(FL_NORMAL_TEXT, 170, 5, 290, 20, _("Special Multicolumn Alignment"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  fdui->input_mcolumn_width = obj = fl_add_input(FL_NORMAL_INPUT, 360, 65, 95, 30, _("Width of multi-column:"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_border_top = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 75, 135, 25, 25, idex(_("Top|#t")));fl_set_button_shortcut(obj, scex(_("Top|#t")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_border_bottom = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 75, 165, 25, 25, idex(_("Bottom|#b")));fl_set_button_shortcut(obj, scex(_("Bottom|#b")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_BOTTOM_LEFT);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_border_left = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 55, 150, 25, 25, idex(_("Left|#l")));fl_set_button_shortcut(obj, scex(_("Left|#l")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_border_right = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 95, 150, 25, 25, idex(_("Right|#r")));fl_set_button_shortcut(obj, scex(_("Right|#r")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_RIGHT);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_align_left = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 195, 120, 110, 25, idex(_("Left|#e")));fl_set_button_shortcut(obj, scex(_("Left|#e")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_align_right = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 195, 145, 115, 25, idex(_("Right|#i")));fl_set_button_shortcut(obj, scex(_("Right|#i")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_align_center = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 195, 170, 115, 25, idex(_("Center|#c")));fl_set_button_shortcut(obj, scex(_("Center|#c")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_valign_top = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 340, 120, 110, 25, idex(_("Top|#p")));fl_set_button_shortcut(obj, scex(_("Top|#p")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_valign_center = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 340, 145, 115, 25, idex(_("Center|#n")));fl_set_button_shortcut(obj, scex(_("Center|#n")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_valign_bottom = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 340, 170, 115, 25, idex(_("Bottom|#o")));fl_set_button_shortcut(obj, scex(_("Bottom|#o")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fl_end_form();
+
+  fdui->form_cell_options->fdui = fdui;
+
+  return fdui;
+}
+/*---------------------------------------*/
+
+FD_form_longtable_options * FormTabular::build_longtable_options()
+{
+  FL_OBJECT *obj;
+  FD_form_longtable_options *fdui = new FD_form_longtable_options;
+
+  fdui->form_longtable_options = fl_bgn_form(FL_NO_BOX, 485, 220);
+  fdui->form_longtable_options->u_vdata = this;
+  obj = fl_add_box(FL_UP_BOX, 0, 0, 485, 220, "");
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 10, 20, 100, 75, "");
+  obj = fl_add_text(FL_NORMAL_TEXT, 15, 10, 85, 20, _("Header"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  fdui->radio_lt_firsthead = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 15, 30, 90, 25, _("First Head"));
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_lt_head = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 15, 60, 90, 25, _("Head"));
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 130, 20, 100, 75, "");
+  obj = fl_add_text(FL_NORMAL_TEXT, 135, 10, 85, 20, _("Footer"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  fdui->radio_lt_foot = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 135, 30, 90, 25, _("Foot"));
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fdui->radio_lt_lastfoot = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 135, 60, 90, 25, _("Last Foot"));
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  obj = fl_add_frame(FL_ENGRAVED_FRAME, 245, 20, 95, 75, "");
+  obj = fl_add_text(FL_NORMAL_TEXT, 250, 10, 85, 20, _("Special"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
+    fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+  fdui->radio_lt_newpage = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 250, 30, 90, 25, _("New Page"));
+    fl_set_object_callback(obj, TabularInputCB, 0);
+  fl_end_form();
+
+  fdui->form_longtable_options->fdui = fdui;
+
+  return fdui;
+}
+/*---------------------------------------*/
+
+FD_form_create_tabular * FormTabular::build_create_tabular()
+{
+  FL_OBJECT *obj;
+  FD_form_create_tabular *fdui = new FD_form_create_tabular;
+
+  fdui->form_create_tabular = fl_bgn_form(FL_NO_BOX, 310, 130);
+  fdui->form_create_tabular->u_vdata = this;
+  obj = fl_add_box(FL_UP_BOX, 0, 0, 310, 130, "");
+  fdui->button_ok = obj = fl_add_button(FL_RETURN_BUTTON, 10, 90, 90, 30, _("OK"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularOKCB, 0);
+  fdui->button_apply = obj = fl_add_button(FL_NORMAL_BUTTON, 110, 90, 90, 30, idex(_("Apply|#A")));fl_set_button_shortcut(obj, scex(_("Apply|#A")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularApplyCB, 0);
+  fdui->button_cancel = obj = fl_add_button(FL_NORMAL_BUTTON, 210, 90, 90, 30, idex(_("Cancel|^[")));fl_set_button_shortcut(obj, scex(_("Cancel|^[")), 1);
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_callback(obj, TabularCancelCB, 0);
+  fdui->slider_columns = obj = fl_add_valslider(FL_HOR_SLIDER, 80, 50, 220, 30, _("Columns"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT);
+    fl_set_object_resize(obj, FL_RESIZE_X);
+  fdui->slider_rows = obj = fl_add_valslider(FL_HOR_SLIDER, 80, 10, 220, 30, _("Rows"));
+    fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+    fl_set_object_lalign(obj, FL_ALIGN_LEFT);
+    fl_set_object_resize(obj, FL_RESIZE_X);
+  fl_end_form();
+
+  fdui->form_create_tabular->fdui = fdui;
+
+  return fdui;
+}
+/*---------------------------------------*/
+
diff --git a/src/frontends/xforms/form_tabular.h b/src/frontends/xforms/form_tabular.h
new file mode 100644 (file)
index 0000000..2560e8c
--- /dev/null
@@ -0,0 +1,116 @@
+/** Header file generated with fdesign on Tue Jul 11 16:33:31 2000.**/
+
+#ifndef FD_form_tabular_h_
+#define FD_form_tabular_h_
+
+/** Callbacks, globals and object handlers **/
+extern  "C" void TabularCloseCB(FL_OBJECT *, long);
+
+extern  "C" void TabularInputCB(FL_OBJECT *, long);
+
+extern  "C" void TabularInputCB(FL_OBJECT *, long);
+
+extern  "C" void TabularInputCB(FL_OBJECT *, long);
+
+extern  "C" void TabularInputCB(FL_OBJECT *, long);
+
+extern  "C" void TabularOKCB(FL_OBJECT *, long);
+extern  "C" void TabularApplyCB(FL_OBJECT *, long);
+extern  "C" void TabularCancelCB(FL_OBJECT *, long);
+
+
+/**** Forms and Objects ****/
+typedef struct {
+       FL_FORM *form_tabular;
+       void *vdata;
+       char *cdata;
+       long  ldata;
+       FL_OBJECT *tabFolder;
+       FL_OBJECT *button_close;
+       FL_OBJECT *input_tabular_column;
+       FL_OBJECT *input_tabular_row;
+       FL_OBJECT *text_warning;
+} FD_form_tabular;
+
+typedef struct {
+       FL_FORM *form_tabular_options;
+       void *vdata;
+       char *cdata;
+       long  ldata;
+       FL_OBJECT *button_append_column;
+       FL_OBJECT *button_delete_column;
+       FL_OBJECT *button_append_row;
+       FL_OBJECT *button_delete_row;
+       FL_OBJECT *button_set_borders;
+       FL_OBJECT *button_unset_borders;
+       FL_OBJECT *radio_longtable;
+       FL_OBJECT *radio_rotate_tabular;
+} FD_form_tabular_options;
+
+typedef struct {
+       FL_FORM *form_column_options;
+       void *vdata;
+       char *cdata;
+       long  ldata;
+       FL_OBJECT *radio_border_top;
+       FL_OBJECT *radio_border_bottom;
+       FL_OBJECT *radio_border_left;
+       FL_OBJECT *radio_border_right;
+       FL_OBJECT *radio_align_left;
+       FL_OBJECT *radio_align_right;
+       FL_OBJECT *radio_align_center;
+       FL_OBJECT *input_column_width;
+       FL_OBJECT *radio_valign_top;
+       FL_OBJECT *radio_valign_center;
+       FL_OBJECT *radio_valign_bottom;
+       FL_OBJECT *input_special_alignment;
+} FD_form_column_options;
+
+typedef struct {
+       FL_FORM *form_cell_options;
+       void *vdata;
+       char *cdata;
+       long  ldata;
+       FL_OBJECT *radio_multicolumn;
+       FL_OBJECT *radio_linebreak_cell;
+       FL_OBJECT *radio_rotate_cell;
+       FL_OBJECT *input_special_multialign;
+       FL_OBJECT *input_mcolumn_width;
+       FL_OBJECT *radio_border_top;
+       FL_OBJECT *radio_border_bottom;
+       FL_OBJECT *radio_border_left;
+       FL_OBJECT *radio_border_right;
+       FL_OBJECT *radio_align_left;
+       FL_OBJECT *radio_align_right;
+       FL_OBJECT *radio_align_center;
+       FL_OBJECT *radio_valign_top;
+       FL_OBJECT *radio_valign_center;
+       FL_OBJECT *radio_valign_bottom;
+} FD_form_cell_options;
+
+typedef struct {
+       FL_FORM *form_longtable_options;
+       void *vdata;
+       char *cdata;
+       long  ldata;
+       FL_OBJECT *radio_lt_firsthead;
+       FL_OBJECT *radio_lt_head;
+       FL_OBJECT *radio_lt_foot;
+       FL_OBJECT *radio_lt_lastfoot;
+       FL_OBJECT *radio_lt_newpage;
+} FD_form_longtable_options;
+
+typedef struct {
+       FL_FORM *form_create_tabular;
+       void *vdata;
+       char *cdata;
+       long  ldata;
+       FL_OBJECT *button_ok;
+       FL_OBJECT *button_apply;
+       FL_OBJECT *button_cancel;
+       FL_OBJECT *slider_columns;
+       FL_OBJECT *slider_rows;
+} FD_form_create_tabular;
+
+
+#endif /* FD_form_tabular_h_ */
diff --git a/src/frontends/xforms/forms/form_tabular.fd b/src/frontends/xforms/forms/form_tabular.fd
new file mode 100644 (file)
index 0000000..5c419f8
--- /dev/null
@@ -0,0 +1,1523 @@
+Magic: 13000
+
+Internal Form Definition File
+    (do not change)
+
+Number of forms: 6
+Unit of measure: FL_COORD_PIXEL
+SnapGrid: 5
+
+=============== FORM ===============
+Name: form_tabular
+Width: 510
+Height: 340
+Number of Objects: 6
+
+--------------------
+class: FL_BOX
+type: FLAT_BOX
+box: 0 0 510 340
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_TABFOLDER
+type: TOP_TABFOLDER
+box: 10 10 485 240
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_TOP_LEFT
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: Tabbed folder
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: tabFolder
+callback: 
+argument: 
+
+--------------------
+class: FL_BUTTON
+type: NORMAL_BUTTON
+box: 395 300 100 30
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Close|#C
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: button_close
+callback: TabularCloseCB
+argument: 0
+
+--------------------
+class: FL_INPUT
+type: NORMAL_INPUT
+box: 15 300 60 30
+boxtype: FL_DOWN_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_TOP_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Column
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: input_tabular_column
+callback: 
+argument: 
+
+--------------------
+class: FL_INPUT
+type: NORMAL_INPUT
+box: 85 300 60 30
+boxtype: FL_DOWN_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_TOP_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Row
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: input_tabular_row
+callback: 
+argument: 
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 10 250 485 30
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: text_warning
+callback: 
+argument: 
+
+=============== FORM ===============
+Name: form_tabular_options
+Width: 485
+Height: 220
+Number of Objects: 11
+
+--------------------
+class: FL_BOX
+type: UP_BOX
+box: 0 0 485 220
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 280 20 120 75
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_BUTTON
+type: NORMAL_BUTTON
+box: 10 40 120 30
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Append Column|#A
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: button_append_column
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_BUTTON
+type: NORMAL_BUTTON
+box: 140 40 120 30
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Delete Column|#O
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: button_delete_column
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_BUTTON
+type: NORMAL_BUTTON
+box: 10 70 120 30
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Append Row|#p
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: button_append_row
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_BUTTON
+type: NORMAL_BUTTON
+box: 140 70 120 30
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Delete Row|#w
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: button_delete_row
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_BUTTON
+type: NORMAL_BUTTON
+box: 10 10 120 30
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Set Borders|#S
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: button_set_borders
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_BUTTON
+type: NORMAL_BUTTON
+box: 140 10 120 30
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Unset Borders|#U
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: button_unset_borders
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 280 30 90 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: Longtable
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_longtable
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 280 55 90 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: Rotate 90°|#9
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_rotate_tabular
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 285 10 100 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Spec. Table
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+=============== FORM ===============
+Name: form_column_options
+Width: 485
+Height: 220
+Number of Objects: 21
+
+--------------------
+class: FL_BOX
+type: UP_BOX
+box: 0 0 485 220
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 20 20 170 105
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 25 10 70 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Borders
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 85 45 25 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_TOP_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Top|#t
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_border_top
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 85 75 25 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_BOTTOM_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Bottom|#b
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_border_bottom
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 65 60 25 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Left|#l
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_border_left
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 105 60 25 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_RIGHT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Right|#r
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_border_right
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 200 20 130 105
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 205 10 115 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: H. Alignment
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_CHECKBUTTON
+type: RADIO_BUTTON
+box: 205 30 110 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Left|#e
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_align_left
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: RADIO_BUTTON
+box: 205 55 115 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Right|#i
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_align_right
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: RADIO_BUTTON
+box: 205 80 115 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Center|#c
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_align_center
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_INPUT
+type: NORMAL_INPUT
+box: 375 150 95 30
+boxtype: FL_DOWN_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Width of column:
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: input_column_width
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 340 20 130 105
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_CHECKBUTTON
+type: RADIO_BUTTON
+box: 345 30 110 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Top|#p
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_valign_top
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: RADIO_BUTTON
+box: 345 55 115 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Center|#n
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_valign_center
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: RADIO_BUTTON
+box: 345 80 115 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Bottom|#o
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_valign_bottom
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 345 10 115 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: V. Alignment
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 20 140 220 50
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_INPUT
+type: NORMAL_INPUT
+box: 30 150 200 30
+boxtype: FL_DOWN_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: input_special_alignment
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 25 130 170 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Special Column Alignment
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+=============== FORM ===============
+Name: form_cell_options
+Width: 485
+Height: 220
+Number of Objects: 26
+
+--------------------
+class: FL_BOX
+type: UP_BOX
+box: 0 0 485 220
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 10 110 180 100
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 15 100 70 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Borders
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 195 110 130 100
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 200 100 115 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: H. Alignment
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 340 110 130 100
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 345 100 115 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: V. Alignment
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 10 15 150 85
+boxtype: FL_NO_BOX
+colors: FL_BLACK FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 15 5 140 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Special Cell
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 10 25 145 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: Multicolumn|#M
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_multicolumn
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 10 50 145 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: Linebreaks|#N
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_linebreak_cell
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 10 75 145 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: Rotate 90°
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_rotate_cell
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 165 15 305 85
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_INPUT
+type: NORMAL_INPUT
+box: 175 30 280 30
+boxtype: FL_DOWN_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: input_special_multialign
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 170 5 290 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Special Multicolumn Alignment
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_INPUT
+type: NORMAL_INPUT
+box: 360 65 95 30
+boxtype: FL_DOWN_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Width of multi-column:
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: input_mcolumn_width
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 75 135 25 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_TOP_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Top|#t
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_border_top
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 75 165 25 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_BOTTOM_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Bottom|#b
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_border_bottom
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 55 150 25 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Left|#l
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_border_left
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 95 150 25 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_RIGHT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Right|#r
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_border_right
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: RADIO_BUTTON
+box: 195 120 110 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Left|#e
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_align_left
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: RADIO_BUTTON
+box: 195 145 115 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Right|#i
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_align_right
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: RADIO_BUTTON
+box: 195 170 115 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Center|#c
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_align_center
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: RADIO_BUTTON
+box: 340 120 110 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Top|#p
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_valign_top
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: RADIO_BUTTON
+box: 340 145 115 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Center|#n
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_valign_center
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: RADIO_BUTTON
+box: 340 170 115 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Bottom|#o
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_valign_bottom
+callback: TabularInputCB
+argument: 0
+
+=============== FORM ===============
+Name: form_longtable_options
+Width: 485
+Height: 220
+Number of Objects: 12
+
+--------------------
+class: FL_BOX
+type: UP_BOX
+box: 0 0 485 220
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 10 20 100 75
+boxtype: FL_NO_BOX
+colors: FL_BLACK FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 15 10 85 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Header
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 15 30 90 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: First Head
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_lt_firsthead
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 15 60 90 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: Head
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_lt_head
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 130 20 100 75
+boxtype: FL_NO_BOX
+colors: FL_BLACK FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 135 10 85 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Footer
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 135 30 90 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: Foot
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_lt_foot
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 135 60 90 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: Last Foot
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_lt_lastfoot
+callback: TabularInputCB
+argument: 0
+
+--------------------
+class: FL_FRAME
+type: ENGRAVED_FRAME
+box: 245 20 95 75
+boxtype: FL_NO_BOX
+colors: FL_BLACK FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_TEXT
+type: NORMAL_TEXT
+box: 250 10 85 20
+boxtype: FL_FLAT_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Special
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 250 30 90 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: New Page
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: radio_lt_newpage
+callback: TabularInputCB
+argument: 0
+
+=============== FORM ===============
+Name: form_create_tabular
+Width: 310
+Height: 130
+Number of Objects: 6
+
+--------------------
+class: FL_BOX
+type: UP_BOX
+box: 0 0 310 130
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: 
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: 
+callback: 
+argument: 
+
+--------------------
+class: FL_BUTTON
+type: RETURN_BUTTON
+box: 10 90 90 30
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: OK
+shortcut: ^M
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: button_ok
+callback: TabularOKCB
+argument: 0
+
+--------------------
+class: FL_BUTTON
+type: NORMAL_BUTTON
+box: 110 90 90 30
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Apply|#A
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: button_apply
+callback: TabularApplyCB
+argument: 0
+
+--------------------
+class: FL_BUTTON
+type: NORMAL_BUTTON
+box: 210 90 90 30
+boxtype: FL_UP_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Cancel|^[
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: button_cancel
+callback: TabularCancelCB
+argument: 0
+
+--------------------
+class: FL_VALSLIDER
+type: HOR_SLIDER
+box: 80 50 220 30
+boxtype: FL_DOWN_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Columns
+shortcut: 
+resize: FL_RESIZE_X
+gravity: FL_NoGravity FL_NoGravity
+name: slider_columns
+callback: 
+argument: 
+
+--------------------
+class: FL_VALSLIDER
+type: HOR_SLIDER
+box: 80 10 220 30
+boxtype: FL_DOWN_BOX
+colors: FL_COL1 FL_COL1
+alignment: FL_ALIGN_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Rows
+shortcut: 
+resize: FL_RESIZE_X
+gravity: FL_NoGravity FL_NoGravity
+name: slider_rows
+callback: 
+argument: 
+
+==============================
+create_the_forms
index 4cc8010bdf260f97e65dacf4722759ebc88c0c0f..2d023dce22a086aecb5614d1ce52b3aea4e0e82a 100644 (file)
@@ -22,7 +22,8 @@ FDESIGN = fdesign
 SRCS := form_citation.fd \
        form_copyright.fd \
        form_preferences.fd \
-       form_print.fd
+       form_print.fd \
+       form_tabular.fd
 
 
 OBJS := $(SRCS:.fd=.c)
@@ -78,5 +79,5 @@ clean:
 distclean: clean
        rm -f *.orig *.rej *~
 
-install: updatesrc
+install: clean updatesrc
        cp *.C *.h ..
index 63325e21ecbc9b6f0c58e3e6bb4f97a29e9b1124..ca8e7a9c3683da47209556e2d71dceed2ed7f32d 100644 (file)
@@ -31,6 +31,7 @@
 #include "LyXView.h"
 #include "lyxfunc.h"
 #include "insets/insettext.h"
+#include "frontends/Dialogs.h"
 
 extern void MenuLayoutTabular(bool, InsetTabular *);
 extern bool UpdateLayoutTabular(bool, InsetTabular *);
@@ -46,6 +47,8 @@ using std::endl;
 
 #define cellstart(p) ((p % 2) == 0)
 
+//#define USE_NEW_LAYOUT 1
+
 InsetTabular::InsetTabular(Buffer * buf, int rows, int columns)
 {
     if (rows <= 0)
@@ -85,6 +88,10 @@ InsetTabular::InsetTabular(InsetTabular const & tab, Buffer * buf)
 InsetTabular::~InsetTabular()
 {
     delete tabular;
+#ifdef USE_NEW_LAYOUT
+    if (buffer->getUser())
+       buffer->getUser()->owner()->getDialogs()->hideTabular(this);
+#endif
 }
 
 
@@ -475,28 +482,6 @@ bool InsetTabular::InsertInset(BufferView * bv, Inset * inset)
 }
 
 
-void InsetTabular::InsetButtonRelease(BufferView * bv,
-                                     int x, int y, int button)
-{
-    if (button == 3) {
-       if (the_locking_inset) {
-           UpdatableInset * i;
-           if ((i=the_locking_inset->GetFirstLockingInsetOfType(TABULAR_CODE))) {
-               i->InsetButtonRelease(bv, x, y, button);
-               return;
-           }
-       }
-       MenuLayoutTabular(true, this);
-       return;
-    }
-    if (the_locking_inset) {
-        the_locking_inset->InsetButtonRelease(bv, x-inset_x, y-inset_y,button);
-        return;
-    }
-    no_selection = false;
-}
-
-
 void InsetTabular::InsetButtonPress(BufferView * bv, int x, int y, int button)
 {
     if (hasSelection()) {
@@ -524,13 +509,36 @@ void InsetTabular::InsetButtonPress(BufferView * bv, int x, int y, int button)
        ActivateCellInset(bv, x, y, button);
        the_locking_inset->InsetButtonPress(bv, x-inset_x, y-inset_y, button);
     }
-    
+}
+
+
+void InsetTabular::InsetButtonRelease(BufferView * bv,
+                                     int x, int y, int button)
+{
+    if (button == 3) {
+       if (the_locking_inset) {
+           UpdatableInset * i;
+           if ((i=the_locking_inset->GetFirstLockingInsetOfType(TABULAR_CODE))) {
+               i->InsetButtonRelease(bv, x, y, button);
+               return;
+           }
+       }
+#ifdef USE_NEW_LAYOUT
+        bv->owner()->getDialogs()->showTabular(this);
 #if 0
-    if (button == 3)
-        bview->getOwner()->getPopups().showFormTabular();
-    else if (ocell != actcell)
-        bview->getOwner()->getPopups().updateFormTabular();
+       else if (ocell != actcell)
+               bview->getOwner()->getPopups().updateTabular();
+#endif
+#else
+       MenuLayoutTabular(true, this);
 #endif
+       return;
+    }
+    if (the_locking_inset) {
+        the_locking_inset->InsetButtonRelease(bv, x-inset_x, y-inset_y,button);
+        return;
+    }
+    no_selection = false;
 }
 
 
index cab7644ae98a1f70921a0512bd523a4eb070480a..a4d25b52c7c5013fa82ea79a85e466c89f96b569 100644 (file)
@@ -58,6 +58,7 @@ class LyXLex;
 class Painter;
 class BufferView;
 class Buffer;
+class Dialogs;
 
 class InsetTabular : public UpdatableInset {
 public:
index 13a86144e6010de841cb000016868f139936b5d9..a77e816d8174f04393630e73d90477d1fb4f8867 100644 (file)
@@ -516,6 +516,7 @@ void LyXGUI::create_forms()
        fl_set_form_atclose(fd_form_preamble->form_preamble,
                            CancelCloseBoxCB, 0);
 
+#ifndef NEW_TABULAR
        // the table form
        fd_form_table = create_form_form_table();
        fl_set_form_atclose(fd_form_table->form_table, CancelCloseBoxCB, 0);
@@ -526,6 +527,7 @@ void LyXGUI::create_forms()
        fl_set_slider_precision(fd_form_table->slider_rows, 0);
        fl_set_slider_precision(fd_form_table->slider_columns, 0);
        lyxerr[Debug::INIT] << "Initializing form_table...done" << endl;
+#endif
 
        // the sendto form
        fd_form_sendto = create_form_form_sendto();
index 8a7eb37bc8218039bf4bd5303129e3ac874b5e19..a254da5d13446663c87872dd52d0250578e220bd 100644 (file)
@@ -869,7 +869,11 @@ string LyXFunc::Dispatch(int ac,
        }
                
        case LFUN_TABLE:
+#ifndef NEW_TABULAR
                Table();
+#else
+               owner->getDialogs()->showTabularCreate();
+#endif
                break;
                
        case LFUN_FIGURE:
index 0b19167c7cddade50e2234488fdc2dd24541ba2b..0371e53805ba464b7b48e82c61fc4d83bae3891c 100644 (file)
@@ -292,6 +292,10 @@ private: //////////////////////////////////////////////////////////////////
        ///
        bool bottom_line;
        ///
+       bool left_line;
+       ///
+       bool right_line;
+       ///
        bool linebreaks;
        ///
        int rotate;