From caf1ad7d8df58c63c05040d785ad046f4da3a8a3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrgen=20Vigna?= Date: Wed, 19 Dec 2001 16:13:21 +0000 Subject: [PATCH] Fixed small problem in InsetText and start for a better tabular layout (longtable options and better putting the width fields with v.alignment) This is not finished yet! git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3252 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ChangeLog | 5 + src/frontends/xforms/ChangeLog | 5 + src/frontends/xforms/FormTabular.C | 257 +++++-- src/frontends/xforms/FormTabular.h | 2 + src/frontends/xforms/form_tabular.C | 226 +++--- src/frontends/xforms/form_tabular.h | 12 +- src/frontends/xforms/forms/form_tabular.fd | 832 +++++++++++++++------ src/insets/ChangeLog | 10 + src/insets/insettabular.C | 61 +- src/insets/insettext.C | 8 +- src/tabular.C | 9 +- src/tabular.h | 7 +- 12 files changed, 1019 insertions(+), 415 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index c066612082..0909aade3e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2001-12-19 Juergen Vigna + + * tabular.[Ch]: better support for longtabular options (not finished + yet!) + 2001-12-18 Jean-Marc Lasgouttes * text.C (paintLastRow): use the label font instead of the font of diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index 63ab60e8dd..f24486f1db 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,8 @@ +2001-12-19 Juergen Vigna + + * FormTabular.C (update): change a bit the tabular layout and added + better longtable options handling. + 2001-12-15 Lars Gullik Bjønnes * FormToc.C: using std::endl diff --git a/src/frontends/xforms/FormTabular.C b/src/frontends/xforms/FormTabular.C index e8a3c70d60..9f8a3f0593 100644 --- a/src/frontends/xforms/FormTabular.C +++ b/src/frontends/xforms/FormTabular.C @@ -118,13 +118,13 @@ void FormTabular::build() FL_RETURN_END); fl_addto_tabfolder(dialog_->tabFolder, _("Tabular"), - tabular_options_->form); + tabular_options_->form); fl_addto_tabfolder(dialog_->tabFolder, _("Column/Row"), - column_options_->form); + column_options_->form); fl_addto_tabfolder(dialog_->tabFolder, _("Cell"), - cell_options_->form); + cell_options_->form); fl_addto_tabfolder(dialog_->tabFolder, _("LongTable"), - longtable_options_->form); + longtable_options_->form); // We should set these input filters on width fields to make them accept // only unsigned numbers. @@ -173,8 +173,8 @@ void FormTabular::update() sprintf(buf, "%d", column); fl_set_input(dialog_->input_tabular_column, buf); fl_deactivate_object(dialog_->input_tabular_column); - int row = tabular->row_of_cell(cell) + 1; - sprintf(buf, "%d", row); + int row = tabular->row_of_cell(cell); + sprintf(buf, "%d", row + 1); fl_set_input(dialog_->input_tabular_row, buf); fl_deactivate_object(dialog_->input_tabular_row); if (tabular->IsMultiColumn(cell)) { @@ -351,33 +351,104 @@ void FormTabular::update() tabular->IsLongTabular()); bool const enable = tabular->IsLongTabular(); + setEnabled(longtable_options_->radio_lt_firsthead, enable); - setEnabled(longtable_options_->radio_lt_head, enable); - setEnabled(longtable_options_->radio_lt_foot, enable); - setEnabled(longtable_options_->radio_lt_lastfoot, enable); - setEnabled(longtable_options_->radio_lt_newpage, enable); + setEnabled(longtable_options_->check_1head_2border_above, enable); + setEnabled(longtable_options_->check_1head_2border_below, enable); + setEnabled(longtable_options_->check_1head_empty, enable); + setEnabled(longtable_options_->radio_lt_head, enable); + setEnabled(longtable_options_->check_head_2border_above, enable); + setEnabled(longtable_options_->check_head_2border_below, enable); + setEnabled(longtable_options_->radio_lt_foot, enable); + setEnabled(longtable_options_->check_foot_2border_above, enable); + setEnabled(longtable_options_->check_foot_2border_below, enable); + setEnabled(longtable_options_->radio_lt_lastfoot, enable); + setEnabled(longtable_options_->check_lastfoot_2border_above, enable); + setEnabled(longtable_options_->check_lastfoot_2border_below, enable); + setEnabled(longtable_options_->check_lastfoot_empty, enable); + setEnabled(longtable_options_->radio_lt_newpage, enable); if (enable) { - LyXTabular::ltType dummyltt; + LyXTabular::ltType ltt; fl_set_button(longtable_options_->radio_lt_firsthead, - tabular->GetRowOfLTFirstHead(row - 1, dummyltt)); + tabular->GetRowOfLTFirstHead(row, ltt)); + if (ltt.row && !ltt.empty) { + fl_set_button(longtable_options_->check_1head_2border_above, + ltt.topDL); + fl_set_button(longtable_options_->check_1head_2border_above, + ltt.topDL); + } else { + setEnabled(longtable_options_->check_1head_2border_above, 0); + setEnabled(longtable_options_->check_1head_2border_below, 0); + fl_set_button(longtable_options_->check_1head_2border_above,0); + fl_set_button(longtable_options_->check_1head_2border_above,0); + fl_set_button(longtable_options_->check_1head_empty,ltt.empty); + if (ltt.empty) + setEnabled(longtable_options_->radio_lt_firsthead, 0); + } fl_set_button(longtable_options_->radio_lt_head, - tabular->GetRowOfLTHead(row - 1, dummyltt)); + tabular->GetRowOfLTHead(row, ltt)); + if (ltt.row) { + fl_set_button(longtable_options_->check_head_2border_above, + ltt.topDL); + fl_set_button(longtable_options_->check_head_2border_above, + ltt.topDL); + } else { + setEnabled(longtable_options_->check_head_2border_above, 0); + setEnabled(longtable_options_->check_head_2border_below, 0); + fl_set_button(longtable_options_->check_head_2border_above,0); + fl_set_button(longtable_options_->check_head_2border_above,0); + } fl_set_button(longtable_options_->radio_lt_foot, - tabular->GetRowOfLTFoot(row - 1, dummyltt)); + tabular->GetRowOfLTFoot(row, ltt)); + if (ltt.row) { + fl_set_button(longtable_options_->check_foot_2border_above, + ltt.topDL); + fl_set_button(longtable_options_->check_foot_2border_above, + ltt.topDL); + } else { + setEnabled(longtable_options_->check_foot_2border_above, 0); + setEnabled(longtable_options_->check_foot_2border_below, 0); + fl_set_button(longtable_options_->check_foot_2border_above,0); + fl_set_button(longtable_options_->check_foot_2border_above,0); + } fl_set_button(longtable_options_->radio_lt_lastfoot, - tabular->GetRowOfLTLastFoot(row - 1, dummyltt)); + tabular->GetRowOfLTLastFoot(row, ltt)); + if (ltt.row && !ltt.empty) { + fl_set_button(longtable_options_->check_lastfoot_2border_above, + ltt.topDL); + fl_set_button(longtable_options_->check_lastfoot_2border_above, + ltt.topDL); + } else { + setEnabled(longtable_options_->check_lastfoot_2border_above,0); + setEnabled(longtable_options_->check_lastfoot_2border_below,0); + fl_set_button(longtable_options_->check_lastfoot_2border_above, 0); + fl_set_button(longtable_options_->check_lastfoot_2border_above, 0); + fl_set_button(longtable_options_->check_lastfoot_empty, ltt.empty); + if (ltt.empty) + setEnabled(longtable_options_->radio_lt_lastfoot, 0); + } fl_set_button(longtable_options_->radio_lt_newpage, - tabular->GetLTNewPage(cell)); + tabular->GetLTNewPage(row)); } else { fl_set_button(longtable_options_->radio_lt_firsthead, 0); + fl_set_button(longtable_options_->check_1head_2border_above, 0); + fl_set_button(longtable_options_->check_1head_2border_above, 0); + fl_set_button(longtable_options_->check_1head_empty, 0); fl_set_button(longtable_options_->radio_lt_head, 0); + fl_set_button(longtable_options_->check_head_2border_above, 0); + fl_set_button(longtable_options_->check_head_2border_above, 0); fl_set_button(longtable_options_->radio_lt_foot, 0); + fl_set_button(longtable_options_->check_foot_2border_above, 0); + fl_set_button(longtable_options_->check_foot_2border_above, 0); fl_set_button(longtable_options_->radio_lt_lastfoot, 0); + fl_set_button(longtable_options_->check_lastfoot_2border_above, 0); + fl_set_button(longtable_options_->check_lastfoot_2border_above, 0); + fl_set_button(longtable_options_->check_lastfoot_empty, 0); fl_set_button(longtable_options_->radio_lt_newpage, 0); } fl_set_button(tabular_options_->radio_rotate_tabular, - tabular->GetRotateTabular()); + tabular->GetRotateTabular()); } @@ -386,13 +457,11 @@ bool FormTabular::input(FL_OBJECT * ob, long) if (!inset_) return false; - LyXTabular * tabular = inset_->tabular.get(); int s; LyXTabular::Feature num = LyXTabular::LAST_ACTION; string special;; int cell = inset_->getActCell(); - int row = tabular->row_of_cell(cell); if (actCell_ != cell) { update(); @@ -407,7 +476,9 @@ bool FormTabular::input(FL_OBJECT * ob, long) update(); return false; } - if (ob == column_options_->input_column_width) { + if ((ob == column_options_->input_column_width) || + (ob == column_options_->choice_value_column_width)) + { string const str = getLengthFromWidgets(column_options_->input_column_width, column_options_->choice_value_column_width); @@ -415,7 +486,9 @@ bool FormTabular::input(FL_OBJECT * ob, long) update(); // update for alignment return true; } - if (ob == cell_options_->input_mcolumn_width) { + if ((ob == cell_options_->input_mcolumn_width) || + (ob == cell_options_->choice_value_mcolumn_width)) + { string const str = getLengthFromWidgets(cell_options_->input_mcolumn_width, cell_options_->choice_value_mcolumn_width); @@ -459,71 +532,41 @@ bool FormTabular::input(FL_OBJECT * ob, long) else if (ob == cell_options_->radio_multicolumn) num = LyXTabular::MULTICOLUMN; else if (ob == tabular_options_->radio_longtable) { - bool const enable = - fl_get_button(tabular_options_->radio_longtable); - - setEnabled(longtable_options_->radio_lt_firsthead, enable); - setEnabled(longtable_options_->radio_lt_head, enable); - setEnabled(longtable_options_->radio_lt_foot, enable); - setEnabled(longtable_options_->radio_lt_lastfoot, enable); - setEnabled(longtable_options_->radio_lt_newpage, enable); - - if (enable) { + if (fl_get_button(tabular_options_->radio_longtable)) num = LyXTabular::SET_LONGTABULAR; - LyXTabular::ltType dummyltt; - fl_set_button(longtable_options_->radio_lt_firsthead, - tabular->GetRowOfLTFirstHead(row, dummyltt)); - fl_set_button(longtable_options_->radio_lt_head, - tabular->GetRowOfLTHead(row, dummyltt)); - fl_set_button(longtable_options_->radio_lt_foot, - tabular->GetRowOfLTFoot(row, dummyltt)); - fl_set_button(longtable_options_->radio_lt_lastfoot, - tabular->GetRowOfLTLastFoot(row, dummyltt)); - fl_set_button(longtable_options_->radio_lt_firsthead, - tabular->GetLTNewPage(cell)); - } else { - num = LyXTabular::UNSET_LONGTABULAR; - 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); - } - } else if (ob == tabular_options_->radio_rotate_tabular) { - s = fl_get_button(tabular_options_->radio_rotate_tabular); - if (s) - num = LyXTabular::SET_ROTATE_TABULAR; - else - num = LyXTabular::UNSET_ROTATE_TABULAR; - } else if (ob == cell_options_->radio_rotate_cell) { - s = fl_get_button(cell_options_->radio_rotate_cell); - if (s) - num = LyXTabular::SET_ROTATE_CELL; - else - num = LyXTabular::UNSET_ROTATE_CELL; - } else if (ob == cell_options_->radio_useminipage) { - num = LyXTabular::SET_USEBOX; - special = "2"; - } else if (ob == longtable_options_->radio_lt_firsthead) { - if (fl_get_button(ob)) - num = LyXTabular::SET_LTFIRSTHEAD; - else - num = LyXTabular::UNSET_LTFIRSTHEAD; - } else if (ob == longtable_options_->radio_lt_head) { - if (fl_get_button(ob)) - num = LyXTabular::SET_LTHEAD; else - num = LyXTabular::UNSET_LTHEAD; - } else if (ob == longtable_options_->radio_lt_foot) { - if (fl_get_button(ob)) - num = LyXTabular::SET_LTFOOT; + num = LyXTabular::UNSET_LONGTABULAR; + } else if (ob == tabular_options_->radio_rotate_tabular) { + s = fl_get_button(tabular_options_->radio_rotate_tabular); + if (s) + num = LyXTabular::SET_ROTATE_TABULAR; else - num = LyXTabular::UNSET_LTFOOT; - } else if (ob == longtable_options_->radio_lt_lastfoot) { - if (fl_get_button(ob)) - num = LyXTabular::SET_LTLASTFOOT; + num = LyXTabular::UNSET_ROTATE_TABULAR; + } else if (ob == cell_options_->radio_rotate_cell) { + s = fl_get_button(cell_options_->radio_rotate_cell); + if (s) + num = LyXTabular::SET_ROTATE_CELL; else - num = LyXTabular::UNSET_LTLASTFOOT; + num = LyXTabular::UNSET_ROTATE_CELL; + } else if (ob == cell_options_->radio_useminipage) { + num = LyXTabular::SET_USEBOX; + special = "2"; + } else if ((ob == longtable_options_->radio_lt_firsthead) || + (ob == longtable_options_->check_1head_2border_above) || + (ob == longtable_options_->check_1head_2border_below) || + (ob == longtable_options_->check_1head_empty) || + (ob == longtable_options_->radio_lt_head) || + (ob == longtable_options_->check_head_2border_above) || + (ob == longtable_options_->check_head_2border_below) || + (ob == longtable_options_->radio_lt_foot) || + (ob == longtable_options_->check_foot_2border_above) || + (ob == longtable_options_->check_foot_2border_below) || + (ob == longtable_options_->radio_lt_lastfoot) || + (ob == longtable_options_->check_lastfoot_2border_above) || + (ob == longtable_options_->check_lastfoot_2border_below) || + (ob == longtable_options_->check_lastfoot_empty)) + { + num = static_cast(checkLongtableOptions(ob, special)); } else if (ob == longtable_options_->radio_lt_newpage) { num = LyXTabular::SET_LTNEWPAGE; } else if (ob == column_options_->input_special_alignment) { @@ -560,3 +603,53 @@ bool FormTabular::input(FL_OBJECT * ob, long) return true; } + +int FormTabular::checkLongtableOptions(FL_OBJECT * ob, string & special) +{ + bool flag = fl_get_button(ob); + if ((ob == longtable_options_->check_1head_2border_above) || + (ob == longtable_options_->check_head_2border_above) || + (ob == longtable_options_->check_foot_2border_above) || + (ob == longtable_options_->check_lastfoot_2border_above)) + { + special = "dl_above"; + } else if ((ob == longtable_options_->check_1head_2border_below) || + (ob == longtable_options_->check_head_2border_below) || + (ob == longtable_options_->check_foot_2border_below) || + (ob == longtable_options_->check_lastfoot_2border_below)) + { + special = "dl_below"; + } else if ((ob == longtable_options_->check_1head_empty) || + (ob == longtable_options_->check_lastfoot_empty)) + { + special = "empty"; + } else { + special = ""; + } + if ((ob == longtable_options_->radio_lt_firsthead) || + (ob == longtable_options_->check_1head_2border_above) || + (ob == longtable_options_->check_1head_2border_below) || + (ob == longtable_options_->check_1head_empty)) + { + return (flag ? LyXTabular::SET_LTFIRSTHEAD : + LyXTabular::UNSET_LTFIRSTHEAD); + } else if ((ob == longtable_options_->radio_lt_head) || + (ob == longtable_options_->check_head_2border_above) || + (ob == longtable_options_->check_head_2border_below)) + { + return (flag ? LyXTabular::SET_LTHEAD : LyXTabular::UNSET_LTHEAD); + } else if ((ob == longtable_options_->radio_lt_foot) || + (ob == longtable_options_->check_foot_2border_above) || + (ob == longtable_options_->check_foot_2border_below)) + { + return (flag ? LyXTabular::SET_LTFOOT : LyXTabular::UNSET_LTFOOT); + } else if ((ob == longtable_options_->radio_lt_lastfoot) || + (ob == longtable_options_->check_lastfoot_2border_above) || + (ob == longtable_options_->check_lastfoot_2border_below) || + (ob == longtable_options_->check_lastfoot_empty)) + { + return (flag ? LyXTabular::SET_LTLASTFOOT : + LyXTabular::UNSET_LTLASTFOOT); + } + return LyXTabular::LAST_ACTION; +} diff --git a/src/frontends/xforms/FormTabular.h b/src/frontends/xforms/FormTabular.h index f670800a13..509a4f6b5a 100644 --- a/src/frontends/xforms/FormTabular.h +++ b/src/frontends/xforms/FormTabular.h @@ -59,6 +59,8 @@ private: virtual bool input(FL_OBJECT *, long); /// Pointer to the actual instantiation of the xforms form virtual FL_FORM * form() const; + /// + virtual int checkLongtableOptions(FL_OBJECT *, string &); /// Fdesign generated methods FD_form_tabular * build_tabular(); diff --git a/src/frontends/xforms/form_tabular.C b/src/frontends/xforms/form_tabular.C index f65d0d2d3c..c88fd757f3 100644 --- a/src/frontends/xforms/form_tabular.C +++ b/src/frontends/xforms/form_tabular.C @@ -146,6 +146,27 @@ FD_form_column_options * FormTabular::build_column_options() fdui->form = fl_bgn_form(FL_NO_BOX, 505, 225); fdui->form->u_vdata = this; obj = fl_add_box(FL_FLAT_BOX, 0, 0, 505, 225, ""); + obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 325, 20, 170, 195, _("Fixed Width")); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 20, 20, 170, 105, _("Borders")); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 200, 20, 115, 105, _("H. Alignment")); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 20, 140, 295, 75, _("Special column")); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lalign(obj, FL_ALIGN_TOP); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + { + char const * const dummy = N_(" |#W"); + fdui->input_column_width = obj = fl_add_input(FL_NORMAL_INPUT, 335, 55, 75, 30, idex(_(dummy))); + fl_set_button_shortcut(obj, scex(_(dummy)), 1); + } + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT); + fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Top|#t"); fdui->radio_border_top = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 85, 45, 25, 25, idex(_(dummy))); @@ -180,78 +201,66 @@ FD_form_column_options * FormTabular::build_column_options() fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Left|#e"); - fdui->radio_align_left = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 30, 110, 25, idex(_(dummy))); + fdui->radio_align_left = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 35, 105, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Right|#i"); - fdui->radio_align_right = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 80, 115, 25, idex(_(dummy))); + fdui->radio_align_right = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 85, 105, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Center|#c"); - fdui->radio_align_center = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 55, 115, 25, idex(_(dummy))); + fdui->radio_align_center = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 60, 105, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Top|#p"); - fdui->radio_valign_top = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 345, 30, 125, 25, idex(_(dummy))); + fdui->radio_valign_top = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 330, 135, 155, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Center|#n"); - fdui->radio_valign_center = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 345, 55, 125, 25, idex(_(dummy))); + fdui->radio_valign_center = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 330, 160, 155, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Bottom|#o"); - fdui->radio_valign_bottom = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 345, 80, 120, 25, idex(_(dummy))); + fdui->radio_valign_bottom = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 330, 185, 155, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); - obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 20, 20, 170, 105, _("Borders")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_lstyle(obj, FL_BOLD_STYLE); - obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 200, 20, 130, 105, _("H. Alignment")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_lstyle(obj, FL_BOLD_STYLE); - obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 340, 20, 130, 105, _("V. Alignment")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_lstyle(obj, FL_BOLD_STYLE); { - char const * const dummy = N_("Width|#W"); - fdui->input_column_width = obj = fl_add_input(FL_NORMAL_INPUT, 275, 170, 95, 30, idex(_(dummy))); + char const * const dummy = N_("LaTeX Argument|#A"); + fdui->input_special_alignment = obj = fl_add_input(FL_NORMAL_INPUT, 30, 180, 275, 30, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_lalign(obj, FL_ALIGN_TOP); + fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { - char const * const dummy = N_("Alignment|#A"); - fdui->input_special_alignment = obj = fl_add_input(FL_NORMAL_INPUT, 40, 170, 215, 30, idex(_(dummy))); + char const * const dummy = N_(" |#L"); + fdui->choice_value_column_width = obj = fl_add_choice(FL_NORMAL_CHOICE, 415, 55, 75, 30, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } + fl_set_object_boxtype(obj, FL_FRAME_BOX); fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_lalign(obj, FL_ALIGN_TOP); + fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); - obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 20, 135, 450, 80, _("Special column")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_lalign(obj, FL_ALIGN_TOP); + obj = fl_add_text(FL_NORMAL_TEXT, 335, 110, 155, 25, _("V. Alignment")); + fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj, FL_BOLD_STYLE); - fdui->choice_value_column_width = obj = fl_add_choice(FL_NORMAL_CHOICE, 375, 170, 75, 30, ""); - fl_set_object_boxtype(obj, FL_FRAME_BOX); - fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); fl_end_form(); fdui->form->fdui = fdui; @@ -275,9 +284,24 @@ FD_form_cell_options * FormTabular::build_cell_options() fdui->form = fl_bgn_form(FL_NO_BOX, 505, 225); fdui->form->u_vdata = this; obj = fl_add_box(FL_FLAT_BOX, 0, 0, 505, 225, ""); + obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 10, 135, 140, 80, _("Special Cell")); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 160, 135, 175, 80, _("Special Multicolumn")); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 345, 20, 150, 195, _("Fixed Width")); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 190, 20, 145, 100, _("H. Alignment")); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 10, 20, 170, 100, _("Borders")); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); { char const * const dummy = N_("Top|#t"); - fdui->radio_border_top = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 85, 45, 25, 25, idex(_(dummy))); + fdui->radio_border_top = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 75, 45, 25, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); @@ -285,7 +309,7 @@ FD_form_cell_options * FormTabular::build_cell_options() fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Bottom|#b"); - fdui->radio_border_bottom = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 85, 75, 25, 25, idex(_(dummy))); + fdui->radio_border_bottom = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 75, 75, 25, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); @@ -293,7 +317,7 @@ FD_form_cell_options * FormTabular::build_cell_options() fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Left|#l"); - fdui->radio_border_left = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 65, 60, 25, 25, idex(_(dummy))); + fdui->radio_border_left = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 55, 60, 25, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); @@ -301,7 +325,7 @@ FD_form_cell_options * FormTabular::build_cell_options() fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Right|#r"); - fdui->radio_border_right = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 105, 60, 25, 25, idex(_(dummy))); + fdui->radio_border_right = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 95, 60, 25, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); @@ -309,94 +333,92 @@ FD_form_cell_options * FormTabular::build_cell_options() fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Left|#e"); - fdui->radio_align_left = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 30, 110, 25, idex(_(dummy))); + fdui->radio_align_left = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 35, 110, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Right|#i"); - fdui->radio_align_right = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 80, 115, 25, idex(_(dummy))); + fdui->radio_align_right = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 85, 115, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Center|#c"); - fdui->radio_align_center = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 55, 115, 25, idex(_(dummy))); + fdui->radio_align_center = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 60, 115, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Top|#p"); - fdui->radio_valign_top = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 345, 30, 125, 25, idex(_(dummy))); + fdui->radio_valign_top = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 350, 135, 125, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Center|#n"); - fdui->radio_valign_center = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 345, 55, 125, 25, idex(_(dummy))); + fdui->radio_valign_center = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 350, 160, 125, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Bottom|#o"); - fdui->radio_valign_bottom = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 345, 80, 120, 25, idex(_(dummy))); + fdui->radio_valign_bottom = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 350, 185, 125, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); - obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 20, 20, 170, 105, _("Borders")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_lstyle(obj, FL_BOLD_STYLE); - obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 200, 20, 130, 105, _("H. Alignment")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_lstyle(obj, FL_BOLD_STYLE); - obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 340, 20, 130, 105, _("V. Alignment")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_lstyle(obj, FL_BOLD_STYLE); { - char const * const dummy = N_("Width|#W"); - fdui->input_mcolumn_width = obj = fl_add_input(FL_NORMAL_INPUT, 280, 180, 95, 30, idex(_(dummy))); + char const * const dummy = N_(" |#W"); + fdui->input_mcolumn_width = obj = fl_add_input(FL_NORMAL_INPUT, 350, 50, 75, 30, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { - char const * const dummy = N_("Alignment|#A"); - fdui->input_special_multialign = obj = fl_add_input(FL_NORMAL_INPUT, 280, 145, 175, 30, idex(_(dummy))); + char const * const dummy = N_("LaTeX Argument|#A"); + fdui->input_special_multialign = obj = fl_add_input(FL_NORMAL_INPUT, 165, 180, 165, 30, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Multicolumn|#M"); - fdui->radio_multicolumn = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 30, 140, 130, 25, idex(_(dummy))); + fdui->radio_multicolumn = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 20, 140, 130, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Use Minipage|#s"); - fdui->radio_useminipage = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 30, 165, 130, 25, idex(_(dummy))); + fdui->radio_useminipage = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 20, 165, 130, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { char const * const dummy = N_("Rotate 90°|#9"); - fdui->radio_rotate_cell = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 30, 190, 130, 25, idex(_(dummy))); + fdui->radio_rotate_cell = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 20, 190, 130, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); - obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 20, 135, 150, 80, _("Special Cell")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_lstyle(obj, FL_BOLD_STYLE); - obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 180, 135, 290, 80, _("Special Multicolumn")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_lstyle(obj, FL_BOLD_STYLE); - fdui->choice_value_mcolumn_width = obj = fl_add_choice(FL_NORMAL_CHOICE, 380, 180, 75, 30, ""); + { + char const * const dummy = N_(" |#L"); + fdui->choice_value_mcolumn_width = obj = fl_add_choice(FL_NORMAL_CHOICE, 430, 50, 60, 30, idex(_(dummy))); + fl_set_button_shortcut(obj, scex(_(dummy)), 1); + } fl_set_object_boxtype(obj, FL_FRAME_BOX); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); + obj = fl_add_text(FL_NORMAL_TEXT, 350, 110, 135, 25, _("V. Alignment")); + fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); fl_end_form(); fdui->form->fdui = fdui; @@ -417,47 +439,71 @@ FD_form_longtable_options * FormTabular::build_longtable_options() FL_OBJECT *obj; FD_form_longtable_options *fdui = new FD_form_longtable_options; - fdui->form = fl_bgn_form(FL_NO_BOX, 505, 227); + fdui->form = fl_bgn_form(FL_NO_BOX, 505, 225); fdui->form->u_vdata = this; - obj = fl_add_box(FL_FLAT_BOX, 0, 0, 505, 227, ""); - { - char const * const dummy = N_("1st Head|#1"); - fdui->radio_lt_firsthead = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 30, 55, 90, 25, idex(_(dummy))); - fl_set_button_shortcut(obj, scex(_(dummy)), 1); - } + obj = fl_add_box(FL_FLAT_BOX, 0, 0, 505, 225, ""); + obj = fl_add_frame(FL_ENGRAVED_FRAME, 10, 15, 485, 30, ""); + obj = fl_add_frame(FL_ENGRAVED_FRAME, 10, 150, 485, 35, ""); + obj = fl_add_frame(FL_ENGRAVED_FRAME, 10, 115, 485, 35, ""); + obj = fl_add_frame(FL_ENGRAVED_FRAME, 10, 80, 485, 35, ""); + obj = fl_add_frame(FL_ENGRAVED_FRAME, 10, 45, 485, 35, ""); + fdui->radio_lt_firsthead = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 135, 85, 60, 25, _("On")); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); - { - char const * const dummy = N_("Head|#H"); - fdui->radio_lt_head = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 30, 30, 90, 25, idex(_(dummy))); - fl_set_button_shortcut(obj, scex(_(dummy)), 1); - } + fdui->radio_lt_head = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 135, 50, 60, 25, _("On")); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); - { - char const * const dummy = N_("Foot|#F"); - fdui->radio_lt_foot = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 195, 30, 90, 25, idex(_(dummy))); - fl_set_button_shortcut(obj, scex(_(dummy)), 1); - } + fdui->radio_lt_foot = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 135, 120, 60, 25, _("On")); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); - { - char const * const dummy = N_("Last Foot|#L"); - fdui->radio_lt_lastfoot = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 195, 55, 90, 25, idex(_(dummy))); - fl_set_button_shortcut(obj, scex(_(dummy)), 1); - } + fdui->radio_lt_lastfoot = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 135, 155, 60, 25, _("On")); fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); { - char const * const dummy = N_("New Page|#N"); - fdui->radio_lt_newpage = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 355, 25, 90, 25, idex(_(dummy))); + char const * const dummy = N_("Page break on the current row|#B"); + fdui->radio_lt_newpage = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 10, 190, 245, 25, idex(_(dummy))); fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); - obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 20, 20, 150, 75, _("Header")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fdui->check_head_2border_above = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 205, 50, 85, 25, _("Double")); + fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); + fdui->check_head_2border_below = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 300, 50, 75, 25, _("Double")); + fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); + obj = fl_add_text(FL_NORMAL_TEXT, 15, 50, 120, 25, _("Header")); + fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj, FL_BOLD_STYLE); - obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 185, 20, 150, 75, _("Footer")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); + obj = fl_add_text(FL_NORMAL_TEXT, 15, 85, 120, 25, _("First Header")); + fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj, FL_BOLD_STYLE); - obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 345, 20, 150, 75, _("Special")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); + obj = fl_add_text(FL_NORMAL_TEXT, 15, 120, 120, 25, _("Footer")); + fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + obj = fl_add_text(FL_NORMAL_TEXT, 15, 155, 120, 25, _("Last Footer")); + fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + fdui->check_1head_2border_above = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 205, 85, 85, 25, _("Double")); + fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); + fdui->check_foot_2border_above = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 205, 120, 85, 25, _("Double")); + fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); + fdui->check_lastfoot_2border_above = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 205, 155, 85, 25, _("Double")); + fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); + fdui->check_1head_2border_below = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 300, 85, 75, 25, _("Double")); + fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); + fdui->check_foot_2border_below = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 300, 120, 75, 25, _("Double")); + fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); + fdui->check_lastfoot_2border_below = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 300, 155, 75, 25, _("Double")); + fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); + fdui->check_1head_empty = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 390, 85, 75, 25, _("Is Empty")); + fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); + fdui->check_lastfoot_empty = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 390, 155, 75, 25, _("Is Empty")); + fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); + obj = fl_add_text(FL_NORMAL_TEXT, 205, 20, 85, 20, _("Border Above")); + fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + obj = fl_add_text(FL_NORMAL_TEXT, 300, 20, 85, 20, _("Border Below")); + fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + obj = fl_add_text(FL_NORMAL_TEXT, 390, 20, 85, 20, _("Contents")); + fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE); + fl_set_object_lstyle(obj, FL_BOLD_STYLE); + obj = fl_add_text(FL_NORMAL_TEXT, 135, 20, 60, 20, _("Status")); + fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj, FL_BOLD_STYLE); fl_end_form(); diff --git a/src/frontends/xforms/form_tabular.h b/src/frontends/xforms/form_tabular.h index 924114b9c9..ce68e24874 100644 --- a/src/frontends/xforms/form_tabular.h +++ b/src/frontends/xforms/form_tabular.h @@ -44,6 +44,7 @@ struct FD_form_column_options { ~FD_form_column_options(); FL_FORM *form; + FL_OBJECT *input_column_width; FL_OBJECT *radio_border_top; FL_OBJECT *radio_border_bottom; FL_OBJECT *radio_border_left; @@ -54,7 +55,6 @@ struct FD_form_column_options { FL_OBJECT *radio_valign_top; FL_OBJECT *radio_valign_center; FL_OBJECT *radio_valign_bottom; - FL_OBJECT *input_column_width; FL_OBJECT *input_special_alignment; FL_OBJECT *choice_value_column_width; }; @@ -88,6 +88,16 @@ struct FD_form_longtable_options { FL_OBJECT *radio_lt_foot; FL_OBJECT *radio_lt_lastfoot; FL_OBJECT *radio_lt_newpage; + FL_OBJECT *check_head_2border_above; + FL_OBJECT *check_head_2border_below; + FL_OBJECT *check_1head_2border_above; + FL_OBJECT *check_foot_2border_above; + FL_OBJECT *check_lastfoot_2border_above; + FL_OBJECT *check_1head_2border_below; + FL_OBJECT *check_foot_2border_below; + FL_OBJECT *check_lastfoot_2border_below; + FL_OBJECT *check_1head_empty; + FL_OBJECT *check_lastfoot_empty; }; #endif /* FD_form_tabular_h_ */ diff --git a/src/frontends/xforms/forms/form_tabular.fd b/src/frontends/xforms/forms/form_tabular.fd index d50c74b339..a11b6fd70c 100644 --- a/src/frontends/xforms/forms/form_tabular.fd +++ b/src/frontends/xforms/forms/form_tabular.fd @@ -311,7 +311,7 @@ argument: Name: form_column_options Width: 505 Height: 225 -Number of Objects: 18 +Number of Objects: 19 -------------------- class: FL_BOX @@ -331,6 +331,96 @@ name: callback: argument: +-------------------- +class: FL_LABELFRAME +type: ENGRAVED_FRAME +box: 325 20 170 195 +boxtype: FL_NO_BOX +colors: FL_BLACK FL_COL1 +alignment: FL_ALIGN_TOP_LEFT +style: FL_BOLD_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Fixed Width +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_LABELFRAME +type: ENGRAVED_FRAME +box: 20 20 170 105 +boxtype: FL_NO_BOX +colors: FL_BLACK FL_COL1 +alignment: FL_ALIGN_TOP_LEFT +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_LABELFRAME +type: ENGRAVED_FRAME +box: 200 20 115 105 +boxtype: FL_NO_BOX +colors: FL_BLACK FL_COL1 +alignment: FL_ALIGN_TOP_LEFT +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_LABELFRAME +type: ENGRAVED_FRAME +box: 20 140 295 75 +boxtype: FL_NO_BOX +colors: FL_BLACK FL_COL1 +alignment: FL_ALIGN_TOP +style: FL_BOLD_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Special column +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_INPUT +type: NORMAL_INPUT +box: 335 55 75 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: |#W +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: input_column_width +callback: C_FormBaseDeprecatedInputCB +argument: 0 + -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON @@ -406,7 +496,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: RADIO_BUTTON -box: 205 30 110 25 +box: 205 35 105 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -424,7 +514,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: RADIO_BUTTON -box: 205 80 115 25 +box: 205 85 105 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -442,7 +532,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: RADIO_BUTTON -box: 205 55 115 25 +box: 205 60 105 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -460,7 +550,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 345 30 125 25 +box: 330 135 155 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -478,7 +568,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 345 55 125 25 +box: 330 160 155 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -496,7 +586,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 345 80 120 25 +box: 330 185 155 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -512,16 +602,52 @@ callback: C_FormBaseDeprecatedInputCB argument: 0 -------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 20 20 170 105 -boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 +class: FL_INPUT +type: NORMAL_INPUT +box: 30 180 275 30 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_MCOL alignment: FL_ALIGN_TOP_LEFT -style: FL_BOLD_STYLE +style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Borders +label: LaTeX Argument|#A +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: input_special_alignment +callback: C_FormBaseDeprecatedInputCB +argument: 0 + +-------------------- +class: FL_CHOICE +type: NORMAL_CHOICE +box: 415 55 75 30 +boxtype: FL_FRAME_BOX +colors: FL_COL1 FL_BLACK +alignment: FL_ALIGN_TOP_LEFT +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: |#L +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: choice_value_column_width +callback: C_FormBaseDeprecatedInputCB +argument: 0 + +-------------------- +class: FL_TEXT +type: NORMAL_TEXT +box: 335 110 155 25 +boxtype: FL_FLAT_BOX +colors: FL_COL1 FL_MCOL +alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE +style: FL_BOLD_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: V. Alignment shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -529,17 +655,23 @@ name: callback: argument: +=============== FORM =============== +Name: form_cell_options +Width: 505 +Height: 225 +Number of Objects: 23 + -------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 200 20 130 105 -boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 -alignment: FL_ALIGN_TOP_LEFT -style: FL_BOLD_STYLE -size: FL_NORMAL_SIZE +class: FL_BOX +type: FLAT_BOX +box: 0 0 505 225 +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: H. Alignment +label: shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -550,14 +682,14 @@ argument: -------------------- class: FL_LABELFRAME type: ENGRAVED_FRAME -box: 340 20 130 105 +box: 10 135 140 80 boxtype: FL_NO_BOX colors: FL_BLACK FL_COL1 alignment: FL_ALIGN_TOP_LEFT style: FL_BOLD_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: V. Alignment +label: Special Cell shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -566,52 +698,52 @@ callback: argument: -------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 275 170 95 30 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE +class: FL_LABELFRAME +type: ENGRAVED_FRAME +box: 160 135 175 80 +boxtype: FL_NO_BOX +colors: FL_BLACK FL_COL1 +alignment: FL_ALIGN_TOP_LEFT +style: FL_BOLD_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Width|#W +label: Special Multicolumn shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: input_column_width -callback: C_FormBaseDeprecatedInputCB -argument: 0 +name: +callback: +argument: -------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 40 170 215 30 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE +class: FL_LABELFRAME +type: ENGRAVED_FRAME +box: 345 20 150 195 +boxtype: FL_NO_BOX +colors: FL_BLACK FL_COL1 +alignment: FL_ALIGN_TOP_LEFT +style: FL_BOLD_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Alignment|#A +label: Fixed Width shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: input_special_alignment -callback: C_FormBaseDeprecatedInputCB -argument: 0 +name: +callback: +argument: -------------------- class: FL_LABELFRAME type: ENGRAVED_FRAME -box: 20 135 450 80 +box: 190 20 145 100 boxtype: FL_NO_BOX colors: FL_BLACK FL_COL1 -alignment: FL_ALIGN_TOP +alignment: FL_ALIGN_TOP_LEFT style: FL_BOLD_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Special column +label: H. Alignment shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -620,40 +752,16 @@ callback: argument: -------------------- -class: FL_CHOICE -type: NORMAL_CHOICE -box: 375 170 75 30 -boxtype: FL_FRAME_BOX -colors: FL_COL1 FL_BLACK -alignment: FL_ALIGN_LEFT -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: choice_value_column_width -callback: C_FormBaseDeprecatedInputCB -argument: 0 - -=============== FORM =============== -Name: form_cell_options -Width: 505 -Height: 225 -Number of Objects: 22 - --------------------- -class: FL_BOX -type: FLAT_BOX -box: 0 0 505 225 -boxtype: FL_FLAT_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE +class: FL_LABELFRAME +type: ENGRAVED_FRAME +box: 10 20 170 100 +boxtype: FL_NO_BOX +colors: FL_BLACK FL_COL1 +alignment: FL_ALIGN_TOP_LEFT +style: FL_BOLD_STYLE +size: FL_NORMAL_SIZE lcol: FL_BLACK -label: +label: Borders shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -664,7 +772,7 @@ argument: -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 85 45 25 25 +box: 75 45 25 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_TOP_LEFT @@ -682,7 +790,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 85 75 25 25 +box: 75 75 25 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_BOTTOM_LEFT @@ -700,7 +808,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 65 60 25 25 +box: 55 60 25 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_LEFT @@ -718,7 +826,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 105 60 25 25 +box: 95 60 25 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_RIGHT @@ -736,7 +844,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: RADIO_BUTTON -box: 205 30 110 25 +box: 205 35 110 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -754,7 +862,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: RADIO_BUTTON -box: 205 80 115 25 +box: 205 85 115 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -772,7 +880,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: RADIO_BUTTON -box: 205 55 115 25 +box: 205 60 115 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -790,7 +898,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 345 30 125 25 +box: 350 135 125 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -808,7 +916,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 345 55 125 25 +box: 350 160 125 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -826,7 +934,7 @@ argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 345 80 120 25 +box: 350 185 125 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -842,34 +950,124 @@ callback: C_FormBaseDeprecatedInputCB argument: 0 -------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 20 20 170 105 -boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 +class: FL_INPUT +type: NORMAL_INPUT +box: 350 50 75 30 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_MCOL alignment: FL_ALIGN_TOP_LEFT -style: FL_BOLD_STYLE +style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Borders +label: |#W shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: +name: input_mcolumn_width +callback: C_FormBaseDeprecatedInputCB +argument: 0 -------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 200 20 130 105 -boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 +class: FL_INPUT +type: NORMAL_INPUT +box: 165 180 165 30 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_MCOL alignment: FL_ALIGN_TOP_LEFT -style: FL_BOLD_STYLE +style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: H. Alignment +label: LaTeX Argument|#A +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: input_special_multialign +callback: C_FormBaseDeprecatedInputCB +argument: 0 + +-------------------- +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 20 140 130 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: C_FormBaseDeprecatedInputCB +argument: 0 + +-------------------- +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 20 165 130 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: Use Minipage|#s +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: radio_useminipage +callback: C_FormBaseDeprecatedInputCB +argument: 0 + +-------------------- +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 20 190 130 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_cell +callback: C_FormBaseDeprecatedInputCB +argument: 0 + +-------------------- +class: FL_CHOICE +type: NORMAL_CHOICE +box: 430 50 60 30 +boxtype: FL_FRAME_BOX +colors: FL_COL1 FL_BLACK +alignment: FL_ALIGN_TOP_LEFT +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: |#L +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: choice_value_mcolumn_width +callback: C_FormBaseDeprecatedInputCB +argument: 0 + +-------------------- +class: FL_TEXT +type: NORMAL_TEXT +box: 350 110 135 25 +boxtype: FL_FLAT_BOX +colors: FL_COL1 FL_MCOL +alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE +style: FL_BOLD_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: V. Alignment shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -877,17 +1075,41 @@ name: callback: argument: +=============== FORM =============== +Name: form_longtable_options +Width: 505 +Height: 225 +Number of Objects: 29 + -------------------- -class: FL_LABELFRAME +class: FL_BOX +type: FLAT_BOX +box: 0 0 505 225 +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_FRAME type: ENGRAVED_FRAME -box: 340 20 130 105 +box: 10 15 485 30 boxtype: FL_NO_BOX colors: FL_BLACK FL_COL1 -alignment: FL_ALIGN_TOP_LEFT -style: FL_BOLD_STYLE -size: FL_NORMAL_SIZE +alignment: FL_ALIGN_CENTER +style: FL_NORMAL_STYLE +size: FL_DEFAULT_SIZE lcol: FL_BLACK -label: V. Alignment +label: shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -896,106 +1118,214 @@ callback: argument: -------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 280 180 95 30 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT +class: FL_FRAME +type: ENGRAVED_FRAME +box: 10 150 485 35 +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: Width|#W +label: shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: input_mcolumn_width +name: +callback: +argument: + +-------------------- +class: FL_FRAME +type: ENGRAVED_FRAME +box: 10 115 485 35 +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_FRAME +type: ENGRAVED_FRAME +box: 10 80 485 35 +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_FRAME +type: ENGRAVED_FRAME +box: 10 45 485 35 +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_CHECKBUTTON +type: PUSH_BUTTON +box: 135 85 60 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: On +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: radio_lt_firsthead callback: C_FormBaseDeprecatedInputCB argument: 0 -------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 280 145 175 30 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 135 50 60 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: Alignment|#A +label: On shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: input_special_multialign +name: radio_lt_head callback: C_FormBaseDeprecatedInputCB argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 30 140 130 25 +box: 135 120 60 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 +label: On shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: radio_multicolumn +name: radio_lt_foot callback: C_FormBaseDeprecatedInputCB argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 30 165 130 25 +box: 135 155 60 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: Use Minipage|#s +label: On shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: radio_useminipage +name: radio_lt_lastfoot callback: C_FormBaseDeprecatedInputCB argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 30 190 130 25 +box: 10 190 245 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 +label: Page break on the current row|#B shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: radio_rotate_cell +name: radio_lt_newpage callback: C_FormBaseDeprecatedInputCB argument: 0 -------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 20 135 150 80 +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 205 50 85 25 boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 -alignment: FL_ALIGN_TOP_LEFT +colors: FL_COL1 FL_YELLOW +alignment: FL_ALIGN_CENTER +style: FL_NORMAL_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: Double +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: check_head_2border_above +callback: C_FormBaseDeprecatedInputCB +argument: 0 + +-------------------- +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 300 50 75 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: Double +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: check_head_2border_below +callback: C_FormBaseDeprecatedInputCB +argument: 0 + +-------------------- +class: FL_TEXT +type: NORMAL_TEXT +box: 15 50 120 25 +boxtype: FL_FLAT_BOX +colors: FL_COL1 FL_MCOL +alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE style: FL_BOLD_STYLE -size: FL_NORMAL_SIZE +size: FL_DEFAULT_SIZE lcol: FL_BLACK -label: Special Cell +label: Header shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -1004,16 +1334,16 @@ callback: argument: -------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 180 135 290 80 -boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 -alignment: FL_ALIGN_TOP_LEFT +class: FL_TEXT +type: NORMAL_TEXT +box: 15 85 120 25 +boxtype: FL_FLAT_BOX +colors: FL_COL1 FL_MCOL +alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE style: FL_BOLD_STYLE -size: FL_NORMAL_SIZE +size: FL_DEFAULT_SIZE lcol: FL_BLACK -label: Special Multicolumn +label: First Header shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -1022,148 +1352,196 @@ callback: argument: -------------------- -class: FL_CHOICE -type: NORMAL_CHOICE -box: 380 180 75 30 -boxtype: FL_FRAME_BOX -colors: FL_COL1 FL_BLACK -alignment: FL_ALIGN_LEFT +class: FL_TEXT +type: NORMAL_TEXT +box: 15 120 120 25 +boxtype: FL_FLAT_BOX +colors: FL_COL1 FL_MCOL +alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE +style: FL_BOLD_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: Footer +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_TEXT +type: NORMAL_TEXT +box: 15 155 120 25 +boxtype: FL_FLAT_BOX +colors: FL_COL1 FL_MCOL +alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE +style: FL_BOLD_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: Last Footer +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 205 85 85 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: -shortcut: +label: Double +shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: choice_value_mcolumn_width +name: check_1head_2border_above callback: C_FormBaseDeprecatedInputCB argument: 0 -=============== FORM =============== -Name: form_longtable_options -Width: 505 -Height: 227 -Number of Objects: 9 - -------------------- -class: FL_BOX -type: FLAT_BOX -box: 0 0 505 227 -boxtype: FL_FLAT_BOX -colors: FL_COL1 FL_COL1 +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 205 120 85 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: +label: Double shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: +name: check_foot_2border_above +callback: C_FormBaseDeprecatedInputCB +argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 30 55 90 25 +box: 205 155 85 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: 1st Head|#1 +label: Double shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: radio_lt_firsthead +name: check_lastfoot_2border_above callback: C_FormBaseDeprecatedInputCB argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 30 30 90 25 +box: 300 85 75 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|#H +label: Double shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: radio_lt_head +name: check_1head_2border_below callback: C_FormBaseDeprecatedInputCB argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 195 30 90 25 +box: 300 120 75 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|#F +label: Double shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: radio_lt_foot +name: check_foot_2border_below callback: C_FormBaseDeprecatedInputCB argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 195 55 90 25 +box: 300 155 75 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|#L +label: Double shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: radio_lt_lastfoot +name: check_lastfoot_2border_below callback: C_FormBaseDeprecatedInputCB argument: 0 -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 355 25 90 25 +box: 390 85 75 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|#N +label: Is Empty shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: radio_lt_newpage +name: check_1head_empty callback: C_FormBaseDeprecatedInputCB argument: 0 -------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 20 20 150 75 +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 390 155 75 25 boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 -alignment: FL_ALIGN_TOP_LEFT +colors: FL_COL1 FL_YELLOW +alignment: FL_ALIGN_CENTER +style: FL_NORMAL_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: Is Empty +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: check_lastfoot_empty +callback: C_FormBaseDeprecatedInputCB +argument: 0 + +-------------------- +class: FL_TEXT +type: NORMAL_TEXT +box: 205 20 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 +size: FL_DEFAULT_SIZE lcol: FL_BLACK -label: Header +label: Border Above shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -1172,16 +1550,16 @@ callback: argument: -------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 185 20 150 75 -boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 -alignment: FL_ALIGN_TOP_LEFT +class: FL_TEXT +type: NORMAL_TEXT +box: 300 20 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 +size: FL_DEFAULT_SIZE lcol: FL_BLACK -label: Footer +label: Border Below shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -1190,16 +1568,34 @@ callback: argument: -------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 345 20 150 75 -boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 -alignment: FL_ALIGN_TOP_LEFT +class: FL_TEXT +type: NORMAL_TEXT +box: 390 20 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 +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: Contents +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_TEXT +type: NORMAL_TEXT +box: 135 20 60 20 +boxtype: FL_FLAT_BOX +colors: FL_COL1 FL_MCOL +alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE +style: FL_BOLD_STYLE +size: FL_DEFAULT_SIZE lcol: FL_BLACK -label: Special +label: Status shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index a867597191..e7778f1119 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,13 @@ +2001-12-19 Juergen Vigna + + * insettabular.C (tabularFeatures): fix the row setting of ltt as + this has to be always row + 1 as 0 means not selected! + (checkLongtableSpecial): added + (tabularFeatures): better longtable options support + + * insettext.C (resizeLyXText): reinit the text always also on a + empty insettext! + 2001-12-18 Juergen Vigna * insettext.C (updateInsetInInset): look if we have to autocollapse diff --git a/src/insets/insettabular.C b/src/insets/insettabular.C index ee4b8ef4bf..56ee3f2926 100644 --- a/src/insets/insettabular.C +++ b/src/insets/insettabular.C @@ -411,7 +411,7 @@ void InsetTabular::draw(BufferView * bv, LyXFont const & font, int baseline, void InsetTabular::drawCellLines(Painter & pain, int x, int baseline, - int row, int cell) const + int row, int cell) const { int x2 = x + tabular->GetWidthOfColumn(cell); bool on_off; @@ -1669,6 +1669,24 @@ bool InsetTabular::tabularFeatures(BufferView * bv, string const & what) return true; } +static void checkLongtableSpecial(LyXTabular::ltType & ltt, + string const & special, + int const row, bool const flag) +{ + if (special == "dl_above") { + ltt.topDL = flag; + } else if (special == "dl_below") { + ltt.bottomDL = flag; + } else if (special == "empty") { + ltt.empty = flag; + } else { + if (flag) + ltt.row = row; + else + ltt.row = 0; + } +} + void InsetTabular::tabularFeatures(BufferView * bv, LyXTabular::Feature feature, @@ -1720,11 +1738,11 @@ void InsetTabular::tabularFeatures(BufferView * bv, bv->text->cursor.par(), bv->text->cursor.par()->next()); - LyXTabular::ltType ltt; - int row = ltt.row = tabular->row_of_cell(actcell); + int row = tabular->row_of_cell(actcell); int column = tabular->column_of_cell(actcell); bool flag = true; - + LyXTabular::ltType ltt; + switch (feature) { case LyXTabular::SET_PWIDTH: { @@ -1734,9 +1752,10 @@ void InsetTabular::tabularFeatures(BufferView * bv, bool const update = (tmplen != vallen); tabular->SetColumnPWidth(actcell, vallen); if (update) { + int cell; for (int i = 0; i < tabular->rows(); ++i) { - tabular->GetCellInset(tabular->GetCellNumber(i, column))-> - resizeLyXText(bv); + cell = tabular->GetCellNumber(i,column); + tabular->GetCellInset(cell)->resizeLyXText(bv); } updateLocal(bv, INIT, true); } @@ -1972,29 +1991,37 @@ void InsetTabular::tabularFeatures(BufferView * bv, break; } case LyXTabular::UNSET_LTFIRSTHEAD: - ltt.row = 0; + flag = false; case LyXTabular::SET_LTFIRSTHEAD: + (void)tabular->GetRowOfLTFirstHead(row, ltt); + checkLongtableSpecial(ltt, value, row + 1, flag); tabular->SetLTHead(ltt, true); break; case LyXTabular::UNSET_LTHEAD: - ltt.row = 0; + flag = false; case LyXTabular::SET_LTHEAD: + (void)tabular->GetRowOfLTHead(row, ltt); + checkLongtableSpecial(ltt, value, row + 1, flag); tabular->SetLTHead(ltt, false); break; case LyXTabular::UNSET_LTFOOT: - ltt.row = 0; + flag = false; case LyXTabular::SET_LTFOOT: + (void)tabular->GetRowOfLTFoot(row, ltt); + checkLongtableSpecial(ltt, value, row + 1, flag); tabular->SetLTFoot(ltt, false); break; case LyXTabular::UNSET_LTLASTFOOT: - ltt.row = 0; + flag = false; case LyXTabular::SET_LTLASTFOOT: + (void)tabular->GetRowOfLTLastFoot(row, ltt); + checkLongtableSpecial(ltt, value, row + 1, flag); tabular->SetLTFoot(ltt, true); break; case LyXTabular::SET_LTNEWPAGE: { - bool what = !tabular->GetLTNewPage(actcell); - tabular->SetLTNewPage(actcell, what); + bool what = !tabular->GetLTNewPage(row); + tabular->SetLTNewPage(row, what); break; } // dummy stuff just to avoid warnings @@ -2339,31 +2366,31 @@ func_status::value_type InsetTabular::getStatus(string const & what) const status |= func_status::ToggleOff; break; case LyXTabular::SET_LTFIRSTHEAD: - if (tabular->GetRowOfLTHead(actcell, dummyltt)) + if (tabular->GetRowOfLTHead(sel_row_start, dummyltt)) status |= func_status::ToggleOn; else status |= func_status::ToggleOff; break; case LyXTabular::SET_LTHEAD: - if (tabular->GetRowOfLTHead(actcell, dummyltt)) + if (tabular->GetRowOfLTHead(sel_row_start, dummyltt)) status |= func_status::ToggleOn; else status |= func_status::ToggleOff; break; case LyXTabular::SET_LTFOOT: - if (tabular->GetRowOfLTFoot(actcell, dummyltt)) + if (tabular->GetRowOfLTFoot(sel_row_start, dummyltt)) status |= func_status::ToggleOn; else status |= func_status::ToggleOff; break; case LyXTabular::SET_LTLASTFOOT: - if (tabular->GetRowOfLTFoot(actcell, dummyltt)) + if (tabular->GetRowOfLTFoot(sel_row_start, dummyltt)) status |= func_status::ToggleOn; else status |= func_status::ToggleOff; break; case LyXTabular::SET_LTNEWPAGE: - if (tabular->GetLTNewPage(actcell)) + if (tabular->GetLTNewPage(sel_row_start)) status |= func_status::ToggleOn; else status |= func_status::ToggleOff; diff --git a/src/insets/insettext.C b/src/insets/insettext.C index 7ac5893769..fde0933b8c 100644 --- a/src/insets/insettext.C +++ b/src/insets/insettext.C @@ -2187,8 +2187,14 @@ void InsetText::resizeLyXText(BufferView * bv, bool force) const } do_resize = 0; // lyxerr << "InsetText::resizeLyXText\n"; - if (!par->next() && !par->size()) // no data, resize not neccessary! + if (!par->next() && !par->size()) { // no data, resize not neccessary! + // we have to do this as a fixed width may have changed! + LyXText * t = getLyXText(bv); + saveLyXTextState(t); + t->init(bv, true); + restoreLyXTextState(bv, t); return; + } // one endless line, resize normally not necessary if (!force && getMaxWidth(bv, this) < 0) return; diff --git a/src/tabular.C b/src/tabular.C index 380e8b9d08..4ae7a62122 100644 --- a/src/tabular.C +++ b/src/tabular.C @@ -98,6 +98,7 @@ LyXTabular::lttype::lttype() row = 0; topDL = false; bottomDL = false; + empty = false; } @@ -1915,15 +1916,15 @@ bool LyXTabular::GetRowOfLTLastFoot(int row, ltType & fd) const } -void LyXTabular::SetLTNewPage(int cell, bool what) +void LyXTabular::SetLTNewPage(int row, bool what) { - row_info[row_of_cell(cell)].newpage = what; + row_info[row].newpage = what; } -bool LyXTabular::GetLTNewPage(int cell) const +bool LyXTabular::GetLTNewPage(int row) const { - return row_info[row_of_cell(cell)].newpage; + return row_info[row].newpage; } diff --git a/src/tabular.h b/src/tabular.h index 0da578f2ec..f13a86ac4e 100644 --- a/src/tabular.h +++ b/src/tabular.h @@ -167,6 +167,9 @@ public: bool topDL; // double borders on bottom bool bottomDL; + // used for FirstHeader & LastFooter and if this is true + // row HAS to be 0! + bool empty; }; /// typedef struct lttype ltType; @@ -377,9 +380,9 @@ public: /// bool GetRowOfLTLastFoot(int row, ltType &) const; /// - void SetLTNewPage(int cell, bool what); + void SetLTNewPage(int row, bool what); /// - bool GetLTNewPage(int cell) const; + bool GetLTNewPage(int row) const; /// InsetText * GetCellInset(int cell) const; /// -- 2.39.2