mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-29 05:01:49 +00:00
Added support for vertical aligment (using array-package) and also better
support for setting header/footer in longtables. The Inset-Tabular-Layout is now fully functionall! git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@889 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
92682d84a4
commit
9e7821d35b
@ -1,3 +1,12 @@
|
|||||||
|
2000-07-17 Juergen Vigna <jug@sad.it>
|
||||||
|
|
||||||
|
* src/tabular.C (Validate): check if array-package is needed.
|
||||||
|
(SetVAlignment): added support for vertical alignment.
|
||||||
|
(SetLTFoot): better support for longtable header/footers
|
||||||
|
(Latex): modified to support added features.
|
||||||
|
|
||||||
|
* src/LaTeXFeatures.[Ch]: added array-package.
|
||||||
|
|
||||||
2000-07-17 R. Lahaye <lahaye@postech.ac.kr>
|
2000-07-17 R. Lahaye <lahaye@postech.ac.kr>
|
||||||
|
|
||||||
* src/lyx_gui.C (LyXGUI): make sure that the height is large
|
* src/lyx_gui.C (LyXGUI): make sure that the height is large
|
||||||
|
@ -209,6 +209,7 @@
|
|||||||
%%% Packages
|
%%% Packages
|
||||||
\TestPackage{a4}
|
\TestPackage{a4}
|
||||||
\TestPackage{a4wide}
|
\TestPackage{a4wide}
|
||||||
|
\TestPackage{array}
|
||||||
\TestPackage{babel}
|
\TestPackage{babel}
|
||||||
\TestPackage{color} % this one should be there if graphics.sty is there.
|
\TestPackage{color} % this one should be there if graphics.sty is there.
|
||||||
\TestPackage{fancyhdr}
|
\TestPackage{fancyhdr}
|
||||||
|
@ -1056,6 +1056,21 @@ a4
|
|||||||
Other packages
|
Other packages
|
||||||
\layout Subsection
|
\layout Subsection
|
||||||
|
|
||||||
|
array
|
||||||
|
\layout Description
|
||||||
|
|
||||||
|
Found: @chk_array@
|
||||||
|
\layout Description
|
||||||
|
|
||||||
|
CTAN:
|
||||||
|
\family typewriter
|
||||||
|
macros/latex/required/tools/array.dtx
|
||||||
|
\layout Description
|
||||||
|
|
||||||
|
Notes: The package array is needed by LyX to be able to output vertical
|
||||||
|
alignment other then ''top'' for tabulars.
|
||||||
|
\layout Subsection
|
||||||
|
|
||||||
algorithm
|
algorithm
|
||||||
\layout Description
|
\layout Description
|
||||||
|
|
||||||
|
@ -33,6 +33,11 @@ src/frontends/xforms/FormPreferences.C
|
|||||||
src/frontends/xforms/form_preferences.C
|
src/frontends/xforms/form_preferences.C
|
||||||
src/frontends/xforms/FormPrint.C
|
src/frontends/xforms/FormPrint.C
|
||||||
src/frontends/xforms/form_print.C
|
src/frontends/xforms/form_print.C
|
||||||
|
src/frontends/xforms/forms/form_citation.C
|
||||||
|
src/frontends/xforms/forms/form_copyright.C
|
||||||
|
src/frontends/xforms/forms/form_preferences.C
|
||||||
|
src/frontends/xforms/forms/form_print.C
|
||||||
|
src/frontends/xforms/forms/form_tabular.C
|
||||||
src/frontends/xforms/FormTabular.C
|
src/frontends/xforms/FormTabular.C
|
||||||
src/frontends/xforms/form_tabular.C
|
src/frontends/xforms/form_tabular.C
|
||||||
src/gettext.h
|
src/gettext.h
|
||||||
|
@ -29,6 +29,7 @@ LaTeXFeatures::LaTeXFeatures(BufferParams const & p, int n)
|
|||||||
: layout(n, false), params(p)
|
: layout(n, false), params(p)
|
||||||
{
|
{
|
||||||
// packages
|
// packages
|
||||||
|
array = false;
|
||||||
color = false;
|
color = false;
|
||||||
graphics = false;
|
graphics = false;
|
||||||
setspace = false;
|
setspace = false;
|
||||||
@ -73,7 +74,9 @@ LaTeXFeatures::LaTeXFeatures(BufferParams const & p, int n)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LaTeXFeatures::require(string const & name) {
|
void LaTeXFeatures::require(string const & name) {
|
||||||
if (name == "color") {
|
if (name == "array") {
|
||||||
|
array = true;
|
||||||
|
} else if (name == "color") {
|
||||||
color = true;
|
color = true;
|
||||||
} else if (name == "graphics") {
|
} else if (name == "graphics") {
|
||||||
#ifdef USE_GRAPHICX
|
#ifdef USE_GRAPHICX
|
||||||
@ -126,6 +129,10 @@ string LaTeXFeatures::getPackages()
|
|||||||
LyXTextClass const & tclass =
|
LyXTextClass const & tclass =
|
||||||
textclasslist.TextClass(params.textclass);
|
textclasslist.TextClass(params.textclass);
|
||||||
|
|
||||||
|
// array-package
|
||||||
|
if (array)
|
||||||
|
packages += "\\usepackage{array}\n";
|
||||||
|
|
||||||
// color.sty
|
// color.sty
|
||||||
if (color) {
|
if (color) {
|
||||||
if (params.graphicsDriver == "default")
|
if (params.graphicsDriver == "default")
|
||||||
|
@ -55,6 +55,8 @@ struct LaTeXFeatures {
|
|||||||
//@Man: Packages
|
//@Man: Packages
|
||||||
//@{
|
//@{
|
||||||
///
|
///
|
||||||
|
bool array;
|
||||||
|
///
|
||||||
bool color; // color.sty
|
bool color; // color.sty
|
||||||
#ifdef USE_GRAPHICX
|
#ifdef USE_GRAPHICX
|
||||||
///
|
///
|
||||||
|
@ -220,7 +220,7 @@ void FormTabular::InputCB(FL_OBJECT * ob, long l)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool FormTabular::local_update(bool flag)
|
bool FormTabular::local_update(bool)
|
||||||
{
|
{
|
||||||
if (!inset_ || !inset_->tabular)
|
if (!inset_ || !inset_->tabular)
|
||||||
return false;
|
return false;
|
||||||
@ -249,48 +249,158 @@ bool FormTabular::local_update(bool flag)
|
|||||||
sprintf(buf,"%d",row);
|
sprintf(buf,"%d",row);
|
||||||
fl_set_input(dialog_->input_tabular_row, buf);
|
fl_set_input(dialog_->input_tabular_row, buf);
|
||||||
fl_deactivate_object(dialog_->input_tabular_row);
|
fl_deactivate_object(dialog_->input_tabular_row);
|
||||||
if (tabular->IsMultiColumn(cell))
|
if (tabular->IsMultiColumn(cell)) {
|
||||||
fl_set_button(cell_options_->radio_multicolumn, 1);
|
fl_set_button(cell_options_->radio_multicolumn, 1);
|
||||||
else
|
fl_set_button(cell_options_->radio_border_top,
|
||||||
|
tabular->TopLine(cell)?1:0);
|
||||||
|
fl_activate_object(cell_options_->radio_border_top);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_border_top, FL_BLACK);
|
||||||
|
fl_set_button(cell_options_->radio_border_bottom,
|
||||||
|
tabular->BottomLine(cell)?1:0);
|
||||||
|
fl_activate_object(cell_options_->radio_border_bottom);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_border_bottom, FL_BLACK);
|
||||||
|
fl_set_button(cell_options_->radio_border_left,
|
||||||
|
tabular->LeftLine(cell)?1:0);
|
||||||
|
fl_activate_object(cell_options_->radio_border_left);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_border_left, FL_BLACK);
|
||||||
|
fl_set_button(cell_options_->radio_border_right,
|
||||||
|
tabular->RightLine(cell)?1:0);
|
||||||
|
fl_activate_object(cell_options_->radio_border_right);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_border_right, FL_BLACK);
|
||||||
|
pwidth = tabular->GetMColumnPWidth(cell);
|
||||||
|
align = tabular->GetAlignment(cell);
|
||||||
|
if (!pwidth.empty() || (align == LYX_ALIGN_LEFT))
|
||||||
|
fl_set_button(cell_options_->radio_align_left, 1);
|
||||||
|
else if (align == LYX_ALIGN_RIGHT)
|
||||||
|
fl_set_button(cell_options_->radio_align_right, 1);
|
||||||
|
else
|
||||||
|
fl_set_button(cell_options_->radio_align_center, 1);
|
||||||
|
fl_activate_object(cell_options_->radio_align_left);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_align_left, FL_BLACK);
|
||||||
|
fl_activate_object(cell_options_->radio_align_right);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_align_right, FL_BLACK);
|
||||||
|
fl_activate_object(cell_options_->radio_align_center);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_align_center, FL_BLACK);
|
||||||
|
align = tabular->GetVAlignment(cell);
|
||||||
|
fl_set_button(cell_options_->radio_valign_top, 0);
|
||||||
|
fl_set_button(cell_options_->radio_valign_bottom, 0);
|
||||||
|
fl_set_button(cell_options_->radio_valign_center, 0);
|
||||||
|
if (pwidth.empty() || (align == LyXTabular::LYX_VALIGN_CENTER))
|
||||||
|
fl_set_button(cell_options_->radio_valign_center, 1);
|
||||||
|
else if (align == LyXTabular::LYX_VALIGN_BOTTOM)
|
||||||
|
fl_set_button(cell_options_->radio_valign_bottom, 1);
|
||||||
|
else
|
||||||
|
fl_set_button(cell_options_->radio_valign_top, 1);
|
||||||
|
fl_activate_object(cell_options_->radio_valign_top);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_valign_top, FL_BLACK);
|
||||||
|
fl_activate_object(cell_options_->radio_valign_bottom);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_valign_bottom, FL_BLACK);
|
||||||
|
fl_activate_object(cell_options_->radio_valign_center);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_valign_center, FL_BLACK);
|
||||||
|
special = tabular->GetAlignSpecial(cell,LyXTabular::SET_SPECIAL_MULTI);
|
||||||
|
fl_set_input(cell_options_->input_special_multialign, special.c_str());
|
||||||
|
fl_set_input(cell_options_->input_mcolumn_width,pwidth.c_str());
|
||||||
|
if (!lv_->buffer()->isReadonly()) {
|
||||||
|
fl_activate_object(cell_options_->input_special_multialign);
|
||||||
|
fl_set_object_lcol(cell_options_->input_special_multialign,
|
||||||
|
FL_BLACK);
|
||||||
|
fl_activate_object(cell_options_->input_mcolumn_width);
|
||||||
|
fl_set_object_lcol(cell_options_->input_mcolumn_width, FL_BLACK);
|
||||||
|
}
|
||||||
|
if (!pwidth.empty()) {
|
||||||
|
fl_deactivate_object(cell_options_->radio_align_left);
|
||||||
|
fl_deactivate_object(cell_options_->radio_align_right);
|
||||||
|
fl_deactivate_object(cell_options_->radio_align_center);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_align_left, FL_INACTIVE);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_align_right, FL_INACTIVE);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_align_center, FL_INACTIVE);
|
||||||
|
fl_activate_object(cell_options_->radio_valign_top);
|
||||||
|
fl_activate_object(cell_options_->radio_valign_bottom);
|
||||||
|
fl_activate_object(cell_options_->radio_valign_center);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_valign_top, FL_BLACK);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_valign_bottom, FL_BLACK);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_valign_center, FL_BLACK);
|
||||||
|
} else {
|
||||||
|
fl_activate_object(cell_options_->radio_align_left);
|
||||||
|
fl_activate_object(cell_options_->radio_align_right);
|
||||||
|
fl_activate_object(cell_options_->radio_align_center);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_align_left, FL_BLACK);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_align_right, FL_BLACK);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_align_center, FL_BLACK);
|
||||||
|
fl_deactivate_object(cell_options_->radio_valign_top);
|
||||||
|
fl_deactivate_object(cell_options_->radio_valign_bottom);
|
||||||
|
fl_deactivate_object(cell_options_->radio_valign_center);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_valign_top, FL_INACTIVE);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_valign_bottom,FL_INACTIVE);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_valign_center,FL_INACTIVE);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
fl_set_button(cell_options_->radio_multicolumn, 0);
|
fl_set_button(cell_options_->radio_multicolumn, 0);
|
||||||
|
fl_set_button(cell_options_->radio_border_top, 0);
|
||||||
|
fl_deactivate_object(cell_options_->radio_border_top);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_border_top, FL_INACTIVE);
|
||||||
|
fl_set_button(cell_options_->radio_border_bottom, 0);
|
||||||
|
fl_deactivate_object(cell_options_->radio_border_bottom);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_border_bottom, FL_INACTIVE);
|
||||||
|
fl_set_button(cell_options_->radio_border_left, 0);
|
||||||
|
fl_deactivate_object(cell_options_->radio_border_left);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_border_left, FL_INACTIVE);
|
||||||
|
fl_set_button(cell_options_->radio_border_right, 0);
|
||||||
|
fl_deactivate_object(cell_options_->radio_border_right);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_border_right, FL_INACTIVE);
|
||||||
|
fl_set_button(cell_options_->radio_align_left, 0);
|
||||||
|
fl_deactivate_object(cell_options_->radio_align_left);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_align_left, FL_INACTIVE);
|
||||||
|
fl_set_button(cell_options_->radio_align_right, 0);
|
||||||
|
fl_deactivate_object(cell_options_->radio_align_right);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_align_right, FL_INACTIVE);
|
||||||
|
fl_set_button(cell_options_->radio_align_center, 0);
|
||||||
|
fl_deactivate_object(cell_options_->radio_align_center);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_align_center, FL_INACTIVE);
|
||||||
|
fl_set_button(cell_options_->radio_valign_top, 0);
|
||||||
|
fl_deactivate_object(cell_options_->radio_valign_top);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_valign_top, FL_INACTIVE);
|
||||||
|
fl_set_button(cell_options_->radio_valign_bottom, 0);
|
||||||
|
fl_deactivate_object(cell_options_->radio_valign_bottom);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_valign_bottom, FL_INACTIVE);
|
||||||
|
fl_set_button(cell_options_->radio_valign_center, 0);
|
||||||
|
fl_deactivate_object(cell_options_->radio_valign_center);
|
||||||
|
fl_set_object_lcol(cell_options_->radio_valign_center, FL_INACTIVE);
|
||||||
|
fl_set_input(cell_options_->input_special_multialign, "");
|
||||||
|
fl_deactivate_object(cell_options_->input_special_multialign);
|
||||||
|
fl_set_object_lcol(cell_options_->input_special_multialign, FL_INACTIVE);
|
||||||
|
fl_set_input(cell_options_->input_mcolumn_width,"");
|
||||||
|
fl_deactivate_object(cell_options_->input_mcolumn_width);
|
||||||
|
fl_set_object_lcol(cell_options_->input_mcolumn_width, FL_INACTIVE);
|
||||||
|
}
|
||||||
if (tabular->GetRotateCell(cell))
|
if (tabular->GetRotateCell(cell))
|
||||||
fl_set_button(cell_options_->radio_rotate_cell, 1);
|
fl_set_button(cell_options_->radio_rotate_cell, 1);
|
||||||
else
|
else
|
||||||
fl_set_button(cell_options_->radio_rotate_cell, 0);
|
fl_set_button(cell_options_->radio_rotate_cell, 0);
|
||||||
if (tabular->TopLine(cell))
|
if (tabular->TopLine(cell, true))
|
||||||
fl_set_button(column_options_->radio_border_top, 1);
|
fl_set_button(column_options_->radio_border_top, 1);
|
||||||
else
|
else
|
||||||
fl_set_button(column_options_->radio_border_top, 0);
|
fl_set_button(column_options_->radio_border_top, 0);
|
||||||
if (tabular->BottomLine(cell))
|
if (tabular->BottomLine(cell, true))
|
||||||
fl_set_button(column_options_->radio_border_bottom, 1);
|
fl_set_button(column_options_->radio_border_bottom, 1);
|
||||||
else
|
else
|
||||||
fl_set_button(column_options_->radio_border_bottom, 0);
|
fl_set_button(column_options_->radio_border_bottom, 0);
|
||||||
if (tabular->LeftLine(cell))
|
if (tabular->LeftLine(cell, true))
|
||||||
fl_set_button(column_options_->radio_border_left, 1);
|
fl_set_button(column_options_->radio_border_left, 1);
|
||||||
else
|
else
|
||||||
fl_set_button(column_options_->radio_border_left, 0);
|
fl_set_button(column_options_->radio_border_left, 0);
|
||||||
if (tabular->RightLine(cell))
|
if (tabular->RightLine(cell, true))
|
||||||
fl_set_button(column_options_->radio_border_right, 1);
|
fl_set_button(column_options_->radio_border_right, 1);
|
||||||
else
|
else
|
||||||
fl_set_button(column_options_->radio_border_right, 0);
|
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);
|
special = tabular->GetAlignSpecial(cell,LyXTabular::SET_SPECIAL_COLUMN);
|
||||||
if (flag)
|
fl_set_input(column_options_->input_special_alignment, special.c_str());
|
||||||
fl_set_input(column_options_->input_special_alignment,
|
|
||||||
special.c_str());
|
|
||||||
if (lv_->buffer()->isReadonly())
|
if (lv_->buffer()->isReadonly())
|
||||||
fl_deactivate_object(column_options_->input_special_alignment);
|
fl_deactivate_object(column_options_->input_special_alignment);
|
||||||
special = tabular->GetAlignSpecial(cell,LyXTabular::SET_SPECIAL_MULTI);
|
else
|
||||||
if (flag)
|
fl_activate_object(column_options_->input_special_alignment);
|
||||||
fl_set_input(cell_options_->input_special_multialign, special.c_str());
|
pwidth = tabular->GetColumnPWidth(cell);
|
||||||
if (lv_->buffer()->isReadonly())
|
fl_set_input(column_options_->input_column_width,pwidth.c_str());
|
||||||
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()) {
|
if (lv_->buffer()->isReadonly()) {
|
||||||
fl_deactivate_object(column_options_->input_column_width);
|
fl_deactivate_object(column_options_->input_column_width);
|
||||||
} else {
|
} else {
|
||||||
@ -306,20 +416,39 @@ bool FormTabular::local_update(bool flag)
|
|||||||
fl_set_object_lcol(cell_options_->radio_linebreak_cell, FL_INACTIVE);
|
fl_set_object_lcol(cell_options_->radio_linebreak_cell, FL_INACTIVE);
|
||||||
fl_set_button(cell_options_->radio_linebreak_cell,0);
|
fl_set_button(cell_options_->radio_linebreak_cell,0);
|
||||||
}
|
}
|
||||||
if ((!pwidth.empty() && !tabular->IsMultiColumn(cell)) ||
|
align = tabular->GetAlignment(cell, true);
|
||||||
(align == LYX_ALIGN_LEFT))
|
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);
|
||||||
|
if (!pwidth.empty() || (align == LYX_ALIGN_LEFT))
|
||||||
fl_set_button(column_options_->radio_align_left, 1);
|
fl_set_button(column_options_->radio_align_left, 1);
|
||||||
else if (align == LYX_ALIGN_RIGHT)
|
else if (align == LYX_ALIGN_RIGHT)
|
||||||
fl_set_button(column_options_->radio_align_right, 1);
|
fl_set_button(column_options_->radio_align_right, 1);
|
||||||
else
|
else
|
||||||
fl_set_button(column_options_->radio_align_center, 1);
|
fl_set_button(column_options_->radio_align_center, 1);
|
||||||
if (!pwidth.empty() && !tabular->IsMultiColumn(cell)) {
|
align = tabular->GetVAlignment(cell, true);
|
||||||
|
fl_set_button(column_options_->radio_valign_top, 0);
|
||||||
|
fl_set_button(column_options_->radio_valign_bottom, 0);
|
||||||
|
fl_set_button(column_options_->radio_valign_center, 0);
|
||||||
|
if (pwidth.empty() || (align == LyXTabular::LYX_VALIGN_CENTER))
|
||||||
|
fl_set_button(column_options_->radio_valign_center, 1);
|
||||||
|
else if (align == LyXTabular::LYX_VALIGN_BOTTOM)
|
||||||
|
fl_set_button(column_options_->radio_valign_bottom, 1);
|
||||||
|
else
|
||||||
|
fl_set_button(column_options_->radio_valign_top, 1);
|
||||||
|
if (!pwidth.empty()) {
|
||||||
fl_deactivate_object(column_options_->radio_align_left);
|
fl_deactivate_object(column_options_->radio_align_left);
|
||||||
fl_deactivate_object(column_options_->radio_align_right);
|
fl_deactivate_object(column_options_->radio_align_right);
|
||||||
fl_deactivate_object(column_options_->radio_align_center);
|
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_left, FL_INACTIVE);
|
||||||
fl_set_object_lcol(column_options_->radio_align_right, FL_INACTIVE);
|
fl_set_object_lcol(column_options_->radio_align_right, FL_INACTIVE);
|
||||||
fl_set_object_lcol(column_options_->radio_align_center, FL_INACTIVE);
|
fl_set_object_lcol(column_options_->radio_align_center, FL_INACTIVE);
|
||||||
|
fl_activate_object(column_options_->radio_valign_top);
|
||||||
|
fl_activate_object(column_options_->radio_valign_bottom);
|
||||||
|
fl_activate_object(column_options_->radio_valign_center);
|
||||||
|
fl_set_object_lcol(column_options_->radio_valign_top, FL_BLACK);
|
||||||
|
fl_set_object_lcol(column_options_->radio_valign_bottom, FL_BLACK);
|
||||||
|
fl_set_object_lcol(column_options_->radio_valign_center, FL_BLACK);
|
||||||
} else {
|
} else {
|
||||||
fl_activate_object(column_options_->radio_align_left);
|
fl_activate_object(column_options_->radio_align_left);
|
||||||
fl_activate_object(column_options_->radio_align_right);
|
fl_activate_object(column_options_->radio_align_right);
|
||||||
@ -327,6 +456,12 @@ bool FormTabular::local_update(bool flag)
|
|||||||
fl_set_object_lcol(column_options_->radio_align_left, FL_BLACK);
|
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_right, FL_BLACK);
|
||||||
fl_set_object_lcol(column_options_->radio_align_center, FL_BLACK);
|
fl_set_object_lcol(column_options_->radio_align_center, FL_BLACK);
|
||||||
|
fl_deactivate_object(column_options_->radio_valign_top);
|
||||||
|
fl_deactivate_object(column_options_->radio_valign_bottom);
|
||||||
|
fl_deactivate_object(column_options_->radio_valign_center);
|
||||||
|
fl_set_object_lcol(column_options_->radio_valign_top, FL_INACTIVE);
|
||||||
|
fl_set_object_lcol(column_options_->radio_valign_bottom, FL_INACTIVE);
|
||||||
|
fl_set_object_lcol(column_options_->radio_valign_center, FL_INACTIVE);
|
||||||
}
|
}
|
||||||
fl_set_button(tabular_options_->radio_longtable,
|
fl_set_button(tabular_options_->radio_longtable,
|
||||||
tabular->IsLongTabular());
|
tabular->IsLongTabular());
|
||||||
@ -341,14 +476,15 @@ bool FormTabular::local_update(bool flag)
|
|||||||
fl_set_object_lcol(longtable_options_->radio_lt_foot, 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_lastfoot, FL_BLACK);
|
||||||
fl_set_object_lcol(longtable_options_->radio_lt_newpage, FL_BLACK);
|
fl_set_object_lcol(longtable_options_->radio_lt_newpage, FL_BLACK);
|
||||||
|
int dummy;
|
||||||
fl_set_button(longtable_options_->radio_lt_firsthead,
|
fl_set_button(longtable_options_->radio_lt_firsthead,
|
||||||
tabular->GetRowOfLTFirstHead(cell));
|
tabular->GetRowOfLTFirstHead(cell, dummy));
|
||||||
fl_set_button(longtable_options_->radio_lt_head,
|
fl_set_button(longtable_options_->radio_lt_head,
|
||||||
tabular->GetRowOfLTHead(cell));
|
tabular->GetRowOfLTHead(cell, dummy));
|
||||||
fl_set_button(longtable_options_->radio_lt_foot,
|
fl_set_button(longtable_options_->radio_lt_foot,
|
||||||
tabular->GetRowOfLTFoot(cell));
|
tabular->GetRowOfLTFoot(cell, dummy));
|
||||||
fl_set_button(longtable_options_->radio_lt_lastfoot,
|
fl_set_button(longtable_options_->radio_lt_lastfoot,
|
||||||
tabular->GetRowOfLTLastFoot(cell));
|
tabular->GetRowOfLTLastFoot(cell, dummy));
|
||||||
fl_set_button(longtable_options_->radio_lt_newpage,
|
fl_set_button(longtable_options_->radio_lt_newpage,
|
||||||
tabular->GetLTNewPage(cell));
|
tabular->GetLTNewPage(cell));
|
||||||
} else {
|
} else {
|
||||||
@ -416,6 +552,20 @@ void FormTabular::SetTabularOptions(FL_OBJECT * ob, long)
|
|||||||
local_update(false); // update for alignment
|
local_update(false); // update for alignment
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (ob == cell_options_->input_mcolumn_width) {
|
||||||
|
string
|
||||||
|
str;
|
||||||
|
str = fl_get_input(ob);
|
||||||
|
if (!str.empty() && !isValidLength(str)) {
|
||||||
|
fl_set_object_label(dialog_->text_warning,
|
||||||
|
_("Warning: Invalid Length (valid example: 10mm)"));
|
||||||
|
fl_show_object(dialog_->text_warning);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
inset_->TabularFeatures(lv_->view(), LyXTabular::SET_MPWIDTH,str);
|
||||||
|
local_update(false); // update for alignment
|
||||||
|
return;
|
||||||
|
}
|
||||||
str = fl_get_input(column_options_->input_column_width);
|
str = fl_get_input(column_options_->input_column_width);
|
||||||
if (!str.empty() && !isValidLength(str)) {
|
if (!str.empty() && !isValidLength(str)) {
|
||||||
fl_set_object_label(
|
fl_set_object_label(
|
||||||
@ -450,6 +600,12 @@ void FormTabular::SetTabularOptions(FL_OBJECT * ob, long)
|
|||||||
num = LyXTabular::ALIGN_RIGHT;
|
num = LyXTabular::ALIGN_RIGHT;
|
||||||
else if (ob == column_options_->radio_align_center)
|
else if (ob == column_options_->radio_align_center)
|
||||||
num = LyXTabular::ALIGN_CENTER;
|
num = LyXTabular::ALIGN_CENTER;
|
||||||
|
else if (ob == column_options_->radio_valign_top)
|
||||||
|
num = LyXTabular::VALIGN_TOP;
|
||||||
|
else if (ob == column_options_->radio_valign_bottom)
|
||||||
|
num = LyXTabular::VALIGN_BOTTOM;
|
||||||
|
else if (ob == column_options_->radio_valign_center)
|
||||||
|
num = LyXTabular::VALIGN_CENTER;
|
||||||
else if (ob == cell_options_->radio_multicolumn)
|
else if (ob == cell_options_->radio_multicolumn)
|
||||||
num = LyXTabular::MULTICOLUMN;
|
num = LyXTabular::MULTICOLUMN;
|
||||||
else if (ob == tabular_options_->radio_longtable) {
|
else if (ob == tabular_options_->radio_longtable) {
|
||||||
@ -461,14 +617,15 @@ void FormTabular::SetTabularOptions(FL_OBJECT * ob, long)
|
|||||||
fl_activate_object(longtable_options_->radio_lt_foot);
|
fl_activate_object(longtable_options_->radio_lt_foot);
|
||||||
fl_activate_object(longtable_options_->radio_lt_lastfoot);
|
fl_activate_object(longtable_options_->radio_lt_lastfoot);
|
||||||
fl_activate_object(longtable_options_->radio_lt_newpage);
|
fl_activate_object(longtable_options_->radio_lt_newpage);
|
||||||
|
int dummy;
|
||||||
fl_set_button(longtable_options_->radio_lt_firsthead,
|
fl_set_button(longtable_options_->radio_lt_firsthead,
|
||||||
tabular->GetRowOfLTFirstHead(cell));
|
tabular->GetRowOfLTFirstHead(cell, dummy));
|
||||||
fl_set_button(longtable_options_->radio_lt_head,
|
fl_set_button(longtable_options_->radio_lt_head,
|
||||||
tabular->GetRowOfLTHead(cell));
|
tabular->GetRowOfLTHead(cell, dummy));
|
||||||
fl_set_button(longtable_options_->radio_lt_foot,
|
fl_set_button(longtable_options_->radio_lt_foot,
|
||||||
tabular->GetRowOfLTFoot(cell));
|
tabular->GetRowOfLTFoot(cell, dummy));
|
||||||
fl_set_button(longtable_options_->radio_lt_lastfoot,
|
fl_set_button(longtable_options_->radio_lt_lastfoot,
|
||||||
tabular->GetRowOfLTLastFoot(cell));
|
tabular->GetRowOfLTLastFoot(cell, dummy));
|
||||||
fl_set_button(longtable_options_->radio_lt_firsthead,
|
fl_set_button(longtable_options_->radio_lt_firsthead,
|
||||||
tabular->GetLTNewPage(cell));
|
tabular->GetLTNewPage(cell));
|
||||||
} else {
|
} else {
|
||||||
@ -522,7 +679,27 @@ void FormTabular::SetTabularOptions(FL_OBJECT * ob, long)
|
|||||||
} else if (ob == cell_options_->input_special_multialign) {
|
} else if (ob == cell_options_->input_special_multialign) {
|
||||||
special = fl_get_input(cell_options_->input_special_multialign);
|
special = fl_get_input(cell_options_->input_special_multialign);
|
||||||
num = LyXTabular::SET_SPECIAL_MULTI;
|
num = LyXTabular::SET_SPECIAL_MULTI;
|
||||||
} else
|
} else if (ob == cell_options_->radio_border_top)
|
||||||
|
num = LyXTabular::M_TOGGLE_LINE_TOP;
|
||||||
|
else if (ob == cell_options_->radio_border_bottom)
|
||||||
|
num = LyXTabular::M_TOGGLE_LINE_BOTTOM;
|
||||||
|
else if (ob == cell_options_->radio_border_left)
|
||||||
|
num = LyXTabular::M_TOGGLE_LINE_LEFT;
|
||||||
|
else if (ob == cell_options_->radio_border_right)
|
||||||
|
num = LyXTabular::M_TOGGLE_LINE_RIGHT;
|
||||||
|
else if (ob == cell_options_->radio_align_left)
|
||||||
|
num = LyXTabular::M_ALIGN_LEFT;
|
||||||
|
else if (ob == cell_options_->radio_align_right)
|
||||||
|
num = LyXTabular::M_ALIGN_RIGHT;
|
||||||
|
else if (ob == cell_options_->radio_align_center)
|
||||||
|
num = LyXTabular::M_ALIGN_CENTER;
|
||||||
|
else if (ob == cell_options_->radio_valign_top)
|
||||||
|
num = LyXTabular::M_VALIGN_TOP;
|
||||||
|
else if (ob == cell_options_->radio_valign_bottom)
|
||||||
|
num = LyXTabular::M_VALIGN_BOTTOM;
|
||||||
|
else if (ob == cell_options_->radio_valign_center)
|
||||||
|
num = LyXTabular::M_VALIGN_CENTER;
|
||||||
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
inset_->TabularFeatures(lv_->view(), num, special);
|
inset_->TabularFeatures(lv_->view(), num, special);
|
||||||
|
@ -23,10 +23,10 @@ FD_form_tabular * FormTabular::build_tabular()
|
|||||||
fdui->button_close = obj = fl_add_button(FL_NORMAL_BUTTON, 415, 250, 90, 30, idex(_("Close|#C")));fl_set_button_shortcut(obj, scex(_("Close|#C")), 1);
|
fdui->button_close = obj = fl_add_button(FL_NORMAL_BUTTON, 415, 250, 90, 30, idex(_("Close|#C")));fl_set_button_shortcut(obj, scex(_("Close|#C")), 1);
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_callback(obj, C_FormTabularCloseCB, 0);
|
fl_set_object_callback(obj, C_FormTabularCloseCB, 0);
|
||||||
fdui->input_tabular_column = obj = fl_add_input(FL_NORMAL_INPUT, 5, 250, 60, 30, "");
|
fdui->input_tabular_column = obj = fl_add_input(FL_NORMAL_INPUT, 64, 250, 60, 30, "");
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT);
|
fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT);
|
||||||
fdui->input_tabular_row = obj = fl_add_input(FL_NORMAL_INPUT, 65, 250, 60, 30, "");
|
fdui->input_tabular_row = obj = fl_add_input(FL_NORMAL_INPUT, 5, 250, 60, 30, "");
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT);
|
fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT);
|
||||||
fdui->text_warning = obj = fl_add_text(FL_NORMAL_TEXT, 125, 250, 290, 30, "");
|
fdui->text_warning = obj = fl_add_text(FL_NORMAL_TEXT, 125, 250, 290, 30, "");
|
||||||
@ -125,10 +125,10 @@ FD_form_column_options * FormTabular::build_column_options()
|
|||||||
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);
|
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_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 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);
|
fdui->radio_align_right = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 80, 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_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 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);
|
fdui->radio_align_center = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 205, 55, 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_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
||||||
fdui->input_column_width = obj = fl_add_input(FL_NORMAL_INPUT, 375, 150, 95, 30, _("Width of column:"));
|
fdui->input_column_width = obj = fl_add_input(FL_NORMAL_INPUT, 375, 150, 95, 30, _("Width of column:"));
|
||||||
@ -136,15 +136,6 @@ FD_form_column_options * FormTabular::build_column_options()
|
|||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
||||||
obj = fl_add_frame(FL_ENGRAVED_FRAME, 340, 20, 130, 105, "");
|
obj = fl_add_frame(FL_ENGRAVED_FRAME, 340, 20, 130, 105, "");
|
||||||
fl_set_object_color(obj, FL_COL1, FL_COL1);
|
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, C_FormTabularInputCB, 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, C_FormTabularInputCB, 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, C_FormTabularInputCB, 0);
|
|
||||||
obj = fl_add_text(FL_NORMAL_TEXT, 345, 10, 115, 20, _("V. Alignment"));
|
obj = fl_add_text(FL_NORMAL_TEXT, 345, 10, 115, 20, _("V. Alignment"));
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
||||||
@ -159,6 +150,15 @@ FD_form_column_options * FormTabular::build_column_options()
|
|||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
||||||
fl_set_object_lstyle(obj, FL_BOLD_STYLE);
|
fl_set_object_lstyle(obj, FL_BOLD_STYLE);
|
||||||
|
fdui->radio_valign_top = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 345, 30, 125, 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, C_FormTabularInputCB, 0);
|
||||||
|
fdui->radio_valign_center = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 345, 55, 125, 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, C_FormTabularInputCB, 0);
|
||||||
|
fdui->radio_valign_bottom = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 345, 80, 120, 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, C_FormTabularInputCB, 0);
|
||||||
fl_end_form();
|
fl_end_form();
|
||||||
|
|
||||||
fdui->form_column_options->fdui = fdui;
|
fdui->form_column_options->fdui = fdui;
|
||||||
@ -175,6 +175,7 @@ FD_form_cell_options * FormTabular::build_cell_options()
|
|||||||
fdui->form_cell_options = fl_bgn_form(FL_NO_BOX, 505, 227);
|
fdui->form_cell_options = fl_bgn_form(FL_NO_BOX, 505, 227);
|
||||||
fdui->form_cell_options->u_vdata = this;
|
fdui->form_cell_options->u_vdata = this;
|
||||||
obj = fl_add_box(FL_UP_BOX, 0, 0, 505, 227, "");
|
obj = fl_add_box(FL_UP_BOX, 0, 0, 505, 227, "");
|
||||||
|
obj = fl_add_frame(FL_ENGRAVED_FRAME, 335, 110, 155, 100, "");
|
||||||
obj = fl_add_frame(FL_ENGRAVED_FRAME, 10, 110, 180, 100, "");
|
obj = fl_add_frame(FL_ENGRAVED_FRAME, 10, 110, 180, 100, "");
|
||||||
fl_set_object_color(obj, FL_COL1, FL_COL1);
|
fl_set_object_color(obj, FL_COL1, FL_COL1);
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
@ -188,8 +189,6 @@ FD_form_cell_options * FormTabular::build_cell_options()
|
|||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
||||||
fl_set_object_lstyle(obj, FL_BOLD_STYLE);
|
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"));
|
obj = fl_add_text(FL_NORMAL_TEXT, 345, 100, 115, 20, _("V. Alignment"));
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
||||||
@ -205,17 +204,17 @@ FD_form_cell_options * FormTabular::build_cell_options()
|
|||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
||||||
fdui->radio_rotate_cell = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 10, 75, 145, 25, _("Rotate 90°"));
|
fdui->radio_rotate_cell = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 10, 75, 145, 25, _("Rotate 90°"));
|
||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
||||||
obj = fl_add_frame(FL_ENGRAVED_FRAME, 165, 15, 305, 85, "");
|
obj = fl_add_frame(FL_ENGRAVED_FRAME, 165, 15, 325, 85, "");
|
||||||
fl_set_object_color(obj, FL_COL1, FL_COL1);
|
fl_set_object_color(obj, FL_COL1, FL_COL1);
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fdui->input_special_multialign = obj = fl_add_input(FL_NORMAL_INPUT, 175, 30, 280, 30, "");
|
fdui->input_special_multialign = obj = fl_add_input(FL_NORMAL_INPUT, 175, 30, 310, 30, "");
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
||||||
obj = fl_add_text(FL_NORMAL_TEXT, 170, 5, 290, 20, _("Special Multicolumn Alignment"));
|
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_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
||||||
fl_set_object_lstyle(obj, FL_BOLD_STYLE);
|
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:"));
|
fdui->input_mcolumn_width = obj = fl_add_input(FL_NORMAL_INPUT, 360, 65, 125, 30, _("Width of multi-column:"));
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 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);
|
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);
|
||||||
@ -237,19 +236,19 @@ FD_form_cell_options * FormTabular::build_cell_options()
|
|||||||
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);
|
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_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 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);
|
fdui->radio_align_right = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 195, 170, 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_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 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);
|
fdui->radio_align_center = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 195, 145, 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_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 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);
|
fdui->radio_valign_top = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 345, 120, 140, 25, idex(_("Top|#p")));fl_set_button_shortcut(obj, scex(_("Top|#p")), 1);
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 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);
|
fdui->radio_valign_center = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 345, 145, 140, 25, idex(_("Center|#n")));fl_set_button_shortcut(obj, scex(_("Center|#n")), 1);
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 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);
|
fdui->radio_valign_bottom = obj = fl_add_checkbutton(FL_PUSH_BUTTON, 345, 170, 140, 25, idex(_("Bottom|#o")));fl_set_button_shortcut(obj, scex(_("Bottom|#o")), 1);
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
||||||
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
fl_set_object_callback(obj, C_FormTabularInputCB, 0);
|
||||||
fl_end_form();
|
fl_end_form();
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/** Header file generated with fdesign on Fri Jul 14 15:53:33 2000.**/
|
/** Header file generated with fdesign on Mon Jul 17 13:48:45 2000.**/
|
||||||
|
|
||||||
#ifndef FD_form_tabular_h_
|
#ifndef FD_form_tabular_h_
|
||||||
#define FD_form_tabular_h_
|
#define FD_form_tabular_h_
|
||||||
@ -52,10 +52,10 @@ struct FD_form_column_options {
|
|||||||
FL_OBJECT *radio_align_right;
|
FL_OBJECT *radio_align_right;
|
||||||
FL_OBJECT *radio_align_center;
|
FL_OBJECT *radio_align_center;
|
||||||
FL_OBJECT *input_column_width;
|
FL_OBJECT *input_column_width;
|
||||||
|
FL_OBJECT *input_special_alignment;
|
||||||
FL_OBJECT *radio_valign_top;
|
FL_OBJECT *radio_valign_top;
|
||||||
FL_OBJECT *radio_valign_center;
|
FL_OBJECT *radio_valign_center;
|
||||||
FL_OBJECT *radio_valign_bottom;
|
FL_OBJECT *radio_valign_bottom;
|
||||||
FL_OBJECT *input_special_alignment;
|
|
||||||
};
|
};
|
||||||
struct FD_form_cell_options {
|
struct FD_form_cell_options {
|
||||||
|
|
||||||
|
@ -514,7 +514,7 @@ argument: 0
|
|||||||
--------------------
|
--------------------
|
||||||
class: FL_CHECKBUTTON
|
class: FL_CHECKBUTTON
|
||||||
type: RADIO_BUTTON
|
type: RADIO_BUTTON
|
||||||
box: 205 55 115 25
|
box: 205 80 115 25
|
||||||
boxtype: FL_NO_BOX
|
boxtype: FL_NO_BOX
|
||||||
colors: FL_COL1 FL_YELLOW
|
colors: FL_COL1 FL_YELLOW
|
||||||
alignment: FL_ALIGN_CENTER
|
alignment: FL_ALIGN_CENTER
|
||||||
@ -532,7 +532,7 @@ argument: 0
|
|||||||
--------------------
|
--------------------
|
||||||
class: FL_CHECKBUTTON
|
class: FL_CHECKBUTTON
|
||||||
type: RADIO_BUTTON
|
type: RADIO_BUTTON
|
||||||
box: 205 80 115 25
|
box: 205 55 115 25
|
||||||
boxtype: FL_NO_BOX
|
boxtype: FL_NO_BOX
|
||||||
colors: FL_COL1 FL_YELLOW
|
colors: FL_COL1 FL_YELLOW
|
||||||
alignment: FL_ALIGN_CENTER
|
alignment: FL_ALIGN_CENTER
|
||||||
@ -583,60 +583,6 @@ name:
|
|||||||
callback:
|
callback:
|
||||||
argument:
|
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: C_FormTabularInputCB
|
|
||||||
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: C_FormTabularInputCB
|
|
||||||
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: C_FormTabularInputCB
|
|
||||||
argument: 0
|
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
class: FL_TEXT
|
class: FL_TEXT
|
||||||
type: NORMAL_TEXT
|
type: NORMAL_TEXT
|
||||||
@ -709,6 +655,60 @@ name:
|
|||||||
callback:
|
callback:
|
||||||
argument:
|
argument:
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
class: FL_CHECKBUTTON
|
||||||
|
type: PUSH_BUTTON
|
||||||
|
box: 345 30 125 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: C_FormTabularInputCB
|
||||||
|
argument: 0
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
class: FL_CHECKBUTTON
|
||||||
|
type: PUSH_BUTTON
|
||||||
|
box: 345 55 125 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: C_FormTabularInputCB
|
||||||
|
argument: 0
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
class: FL_CHECKBUTTON
|
||||||
|
type: PUSH_BUTTON
|
||||||
|
box: 345 80 120 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: C_FormTabularInputCB
|
||||||
|
argument: 0
|
||||||
|
|
||||||
=============== FORM ===============
|
=============== FORM ===============
|
||||||
Name: form_cell_options
|
Name: form_cell_options
|
||||||
Width: 505
|
Width: 505
|
||||||
@ -733,6 +733,24 @@ name:
|
|||||||
callback:
|
callback:
|
||||||
argument:
|
argument:
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
class: FL_FRAME
|
||||||
|
type: ENGRAVED_FRAME
|
||||||
|
box: 335 110 155 100
|
||||||
|
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
|
class: FL_FRAME
|
||||||
type: ENGRAVED_FRAME
|
type: ENGRAVED_FRAME
|
||||||
@ -805,24 +823,6 @@ name:
|
|||||||
callback:
|
callback:
|
||||||
argument:
|
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
|
class: FL_TEXT
|
||||||
type: NORMAL_TEXT
|
type: NORMAL_TEXT
|
||||||
@ -934,7 +934,7 @@ argument: 0
|
|||||||
--------------------
|
--------------------
|
||||||
class: FL_FRAME
|
class: FL_FRAME
|
||||||
type: ENGRAVED_FRAME
|
type: ENGRAVED_FRAME
|
||||||
box: 165 15 305 85
|
box: 165 15 325 85
|
||||||
boxtype: FL_NO_BOX
|
boxtype: FL_NO_BOX
|
||||||
colors: FL_COL1 FL_COL1
|
colors: FL_COL1 FL_COL1
|
||||||
alignment: FL_ALIGN_CENTER
|
alignment: FL_ALIGN_CENTER
|
||||||
@ -952,7 +952,7 @@ argument:
|
|||||||
--------------------
|
--------------------
|
||||||
class: FL_INPUT
|
class: FL_INPUT
|
||||||
type: NORMAL_INPUT
|
type: NORMAL_INPUT
|
||||||
box: 175 30 280 30
|
box: 175 30 310 30
|
||||||
boxtype: FL_DOWN_BOX
|
boxtype: FL_DOWN_BOX
|
||||||
colors: FL_COL1 FL_MCOL
|
colors: FL_COL1 FL_MCOL
|
||||||
alignment: FL_ALIGN_LEFT
|
alignment: FL_ALIGN_LEFT
|
||||||
@ -988,7 +988,7 @@ argument:
|
|||||||
--------------------
|
--------------------
|
||||||
class: FL_INPUT
|
class: FL_INPUT
|
||||||
type: NORMAL_INPUT
|
type: NORMAL_INPUT
|
||||||
box: 360 65 95 30
|
box: 360 65 125 30
|
||||||
boxtype: FL_DOWN_BOX
|
boxtype: FL_DOWN_BOX
|
||||||
colors: FL_COL1 FL_MCOL
|
colors: FL_COL1 FL_MCOL
|
||||||
alignment: FL_ALIGN_LEFT
|
alignment: FL_ALIGN_LEFT
|
||||||
@ -1096,7 +1096,7 @@ argument: 0
|
|||||||
--------------------
|
--------------------
|
||||||
class: FL_CHECKBUTTON
|
class: FL_CHECKBUTTON
|
||||||
type: RADIO_BUTTON
|
type: RADIO_BUTTON
|
||||||
box: 195 145 115 25
|
box: 195 170 115 25
|
||||||
boxtype: FL_NO_BOX
|
boxtype: FL_NO_BOX
|
||||||
colors: FL_COL1 FL_YELLOW
|
colors: FL_COL1 FL_YELLOW
|
||||||
alignment: FL_ALIGN_CENTER
|
alignment: FL_ALIGN_CENTER
|
||||||
@ -1114,7 +1114,7 @@ argument: 0
|
|||||||
--------------------
|
--------------------
|
||||||
class: FL_CHECKBUTTON
|
class: FL_CHECKBUTTON
|
||||||
type: RADIO_BUTTON
|
type: RADIO_BUTTON
|
||||||
box: 195 170 115 25
|
box: 195 145 115 25
|
||||||
boxtype: FL_NO_BOX
|
boxtype: FL_NO_BOX
|
||||||
colors: FL_COL1 FL_YELLOW
|
colors: FL_COL1 FL_YELLOW
|
||||||
alignment: FL_ALIGN_CENTER
|
alignment: FL_ALIGN_CENTER
|
||||||
@ -1131,8 +1131,8 @@ argument: 0
|
|||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
class: FL_CHECKBUTTON
|
class: FL_CHECKBUTTON
|
||||||
type: RADIO_BUTTON
|
type: PUSH_BUTTON
|
||||||
box: 340 120 110 25
|
box: 345 120 140 25
|
||||||
boxtype: FL_NO_BOX
|
boxtype: FL_NO_BOX
|
||||||
colors: FL_COL1 FL_YELLOW
|
colors: FL_COL1 FL_YELLOW
|
||||||
alignment: FL_ALIGN_CENTER
|
alignment: FL_ALIGN_CENTER
|
||||||
@ -1149,8 +1149,8 @@ argument: 0
|
|||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
class: FL_CHECKBUTTON
|
class: FL_CHECKBUTTON
|
||||||
type: RADIO_BUTTON
|
type: PUSH_BUTTON
|
||||||
box: 340 145 115 25
|
box: 345 145 140 25
|
||||||
boxtype: FL_NO_BOX
|
boxtype: FL_NO_BOX
|
||||||
colors: FL_COL1 FL_YELLOW
|
colors: FL_COL1 FL_YELLOW
|
||||||
alignment: FL_ALIGN_CENTER
|
alignment: FL_ALIGN_CENTER
|
||||||
@ -1167,8 +1167,8 @@ argument: 0
|
|||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
class: FL_CHECKBUTTON
|
class: FL_CHECKBUTTON
|
||||||
type: RADIO_BUTTON
|
type: PUSH_BUTTON
|
||||||
box: 340 170 115 25
|
box: 345 170 140 25
|
||||||
boxtype: FL_NO_BOX
|
boxtype: FL_NO_BOX
|
||||||
colors: FL_COL1 FL_YELLOW
|
colors: FL_COL1 FL_YELLOW
|
||||||
alignment: FL_ALIGN_CENTER
|
alignment: FL_ALIGN_CENTER
|
||||||
|
@ -1038,15 +1038,30 @@ void InsetTabular::TabularFeatures(BufferView * bv, int feature, string val)
|
|||||||
what;
|
what;
|
||||||
|
|
||||||
switch (feature) {
|
switch (feature) {
|
||||||
|
case LyXTabular::M_ALIGN_LEFT:
|
||||||
case LyXTabular::ALIGN_LEFT:
|
case LyXTabular::ALIGN_LEFT:
|
||||||
setAlign=LYX_ALIGN_LEFT;
|
setAlign=LYX_ALIGN_LEFT;
|
||||||
break;
|
break;
|
||||||
|
case LyXTabular::M_ALIGN_RIGHT:
|
||||||
case LyXTabular::ALIGN_RIGHT:
|
case LyXTabular::ALIGN_RIGHT:
|
||||||
setAlign=LYX_ALIGN_RIGHT;
|
setAlign=LYX_ALIGN_RIGHT;
|
||||||
break;
|
break;
|
||||||
|
case LyXTabular::M_ALIGN_CENTER:
|
||||||
case LyXTabular::ALIGN_CENTER:
|
case LyXTabular::ALIGN_CENTER:
|
||||||
setAlign=LYX_ALIGN_CENTER;
|
setAlign=LYX_ALIGN_CENTER;
|
||||||
break;
|
break;
|
||||||
|
case LyXTabular::M_VALIGN_TOP:
|
||||||
|
case LyXTabular::VALIGN_TOP:
|
||||||
|
setAlign=LyXTabular::LYX_VALIGN_TOP;
|
||||||
|
break;
|
||||||
|
case LyXTabular::M_VALIGN_BOTTOM:
|
||||||
|
case LyXTabular::VALIGN_BOTTOM:
|
||||||
|
setAlign=LyXTabular::LYX_VALIGN_BOTTOM;
|
||||||
|
break;
|
||||||
|
case LyXTabular::M_VALIGN_CENTER:
|
||||||
|
case LyXTabular::VALIGN_CENTER:
|
||||||
|
setAlign=LyXTabular::LYX_VALIGN_CENTER;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1078,16 +1093,30 @@ void InsetTabular::TabularFeatures(BufferView * bv, int feature, string val)
|
|||||||
|
|
||||||
int row = tabular->row_of_cell(actcell);
|
int row = tabular->row_of_cell(actcell);
|
||||||
int column = tabular->column_of_cell(actcell);
|
int column = tabular->column_of_cell(actcell);
|
||||||
|
bool flag = true;
|
||||||
|
|
||||||
switch (feature) {
|
switch (feature) {
|
||||||
case LyXTabular::SET_PWIDTH:
|
case LyXTabular::SET_PWIDTH:
|
||||||
{
|
{
|
||||||
bool update = (tabular->GetPWidth(actcell) != val);
|
bool update = (tabular->GetColumnPWidth(actcell) != val);
|
||||||
tabular->SetPWidth(actcell,val);
|
tabular->SetColumnPWidth(actcell,val);
|
||||||
if (update) {
|
if (update) {
|
||||||
for (int i=0; i < tabular->rows(); ++i) {
|
for (int i=0; i < tabular->rows(); ++i) {
|
||||||
tabular->GetCellInset(tabular->GetCellNumber(i, column))->
|
tabular->GetCellInset(tabular->GetCellNumber(i, column))->
|
||||||
deleteLyXText(bv);
|
resizeLyXText(bv);
|
||||||
|
}
|
||||||
|
UpdateLocal(bv, INIT, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LyXTabular::SET_MPWIDTH:
|
||||||
|
{
|
||||||
|
bool update = (tabular->GetPWidth(actcell) != val);
|
||||||
|
tabular->SetMColumnPWidth(actcell,val);
|
||||||
|
if (update) {
|
||||||
|
for (int i=0; i < tabular->rows(); ++i) {
|
||||||
|
tabular->GetCellInset(tabular->GetCellNumber(i, column))->
|
||||||
|
resizeLyXText(bv);
|
||||||
}
|
}
|
||||||
UpdateLocal(bv, INIT, true);
|
UpdateLocal(bv, INIT, true);
|
||||||
}
|
}
|
||||||
@ -1123,43 +1152,75 @@ void InsetTabular::TabularFeatures(BufferView * bv, int feature, string val)
|
|||||||
actcell = tabular->GetCellNumber(row, column);
|
actcell = tabular->GetCellNumber(row, column);
|
||||||
UpdateLocal(bv, INIT, true);
|
UpdateLocal(bv, INIT, true);
|
||||||
break;
|
break;
|
||||||
|
case LyXTabular::M_TOGGLE_LINE_TOP:
|
||||||
|
flag = false;
|
||||||
case LyXTabular::TOGGLE_LINE_TOP:
|
case LyXTabular::TOGGLE_LINE_TOP:
|
||||||
lineSet = !tabular->TopLine(actcell);
|
lineSet = !tabular->TopLine(actcell, flag);
|
||||||
for(i=sel_row_start; i<=sel_row_end; ++i)
|
for(i=sel_row_start; i<=sel_row_end; ++i)
|
||||||
for(j=sel_col_start; j<=sel_col_end; ++j)
|
for(j=sel_col_start; j<=sel_col_end; ++j)
|
||||||
tabular->SetTopLine(tabular->GetCellNumber(i,j),lineSet);
|
tabular->SetTopLine(tabular->GetCellNumber(i,j),lineSet, flag);
|
||||||
UpdateLocal(bv, INIT, true);
|
UpdateLocal(bv, INIT, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case LyXTabular::M_TOGGLE_LINE_BOTTOM:
|
||||||
|
flag = false;
|
||||||
case LyXTabular::TOGGLE_LINE_BOTTOM:
|
case LyXTabular::TOGGLE_LINE_BOTTOM:
|
||||||
lineSet = !tabular->BottomLine(actcell);
|
lineSet = !tabular->BottomLine(actcell, flag);
|
||||||
for(i=sel_row_start; i<=sel_row_end; ++i)
|
for(i=sel_row_start; i<=sel_row_end; ++i)
|
||||||
for(j=sel_col_start; j<=sel_col_end; ++j)
|
for(j=sel_col_start; j<=sel_col_end; ++j)
|
||||||
tabular->SetBottomLine(tabular->GetCellNumber(i,j),lineSet);
|
tabular->SetBottomLine(tabular->GetCellNumber(i,j),lineSet,
|
||||||
|
flag);
|
||||||
UpdateLocal(bv, INIT, true);
|
UpdateLocal(bv, INIT, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case LyXTabular::M_TOGGLE_LINE_LEFT:
|
||||||
|
flag = false;
|
||||||
case LyXTabular::TOGGLE_LINE_LEFT:
|
case LyXTabular::TOGGLE_LINE_LEFT:
|
||||||
lineSet = !tabular->LeftLine(actcell);
|
lineSet = !tabular->LeftLine(actcell, flag);
|
||||||
for(i=sel_row_start; i<=sel_row_end; ++i)
|
for(i=sel_row_start; i<=sel_row_end; ++i)
|
||||||
for(j=sel_col_start; j<=sel_col_end; ++j)
|
for(j=sel_col_start; j<=sel_col_end; ++j)
|
||||||
tabular->SetLeftLine(tabular->GetCellNumber(i,j),lineSet);
|
tabular->SetLeftLine(tabular->GetCellNumber(i,j),lineSet,
|
||||||
|
flag);
|
||||||
UpdateLocal(bv, INIT, true);
|
UpdateLocal(bv, INIT, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case LyXTabular::M_TOGGLE_LINE_RIGHT:
|
||||||
|
flag = false;
|
||||||
case LyXTabular::TOGGLE_LINE_RIGHT:
|
case LyXTabular::TOGGLE_LINE_RIGHT:
|
||||||
lineSet = !tabular->RightLine(actcell);
|
lineSet = !tabular->RightLine(actcell, flag);
|
||||||
for(i=sel_row_start; i<=sel_row_end; ++i)
|
for(i=sel_row_start; i<=sel_row_end; ++i)
|
||||||
for(j=sel_col_start; j<=sel_col_end; ++j)
|
for(j=sel_col_start; j<=sel_col_end; ++j)
|
||||||
tabular->SetRightLine(tabular->GetCellNumber(i,j),lineSet);
|
tabular->SetRightLine(tabular->GetCellNumber(i,j),lineSet,
|
||||||
|
flag);
|
||||||
UpdateLocal(bv, INIT, true);
|
UpdateLocal(bv, INIT, true);
|
||||||
break;
|
break;
|
||||||
|
case LyXTabular::M_ALIGN_LEFT:
|
||||||
|
case LyXTabular::M_ALIGN_RIGHT:
|
||||||
|
case LyXTabular::M_ALIGN_CENTER:
|
||||||
|
flag = false;
|
||||||
case LyXTabular::ALIGN_LEFT:
|
case LyXTabular::ALIGN_LEFT:
|
||||||
case LyXTabular::ALIGN_RIGHT:
|
case LyXTabular::ALIGN_RIGHT:
|
||||||
case LyXTabular::ALIGN_CENTER:
|
case LyXTabular::ALIGN_CENTER:
|
||||||
for(i=sel_row_start; i<=sel_row_end; ++i)
|
for(i=sel_row_start; i<=sel_row_end; ++i)
|
||||||
for(j=sel_col_start; j<=sel_col_end; ++j)
|
for(j=sel_col_start; j<=sel_col_end; ++j)
|
||||||
tabular->SetAlignment(tabular->GetCellNumber(i,j),setAlign);
|
tabular->SetAlignment(tabular->GetCellNumber(i,j),setAlign,
|
||||||
|
flag);
|
||||||
|
if (hasSelection())
|
||||||
|
UpdateLocal(bv, INIT, true);
|
||||||
|
else
|
||||||
|
UpdateLocal(bv, CELL, true);
|
||||||
|
break;
|
||||||
|
case LyXTabular::M_VALIGN_TOP:
|
||||||
|
case LyXTabular::M_VALIGN_BOTTOM:
|
||||||
|
case LyXTabular::M_VALIGN_CENTER:
|
||||||
|
flag = false;
|
||||||
|
case LyXTabular::VALIGN_TOP:
|
||||||
|
case LyXTabular::VALIGN_BOTTOM:
|
||||||
|
case LyXTabular::VALIGN_CENTER:
|
||||||
|
for(i=sel_row_start; i<=sel_row_end; ++i)
|
||||||
|
for(j=sel_col_start; j<=sel_col_end; ++j)
|
||||||
|
tabular->SetVAlignment(tabular->GetCellNumber(i,j), setAlign,
|
||||||
|
flag);
|
||||||
if (hasSelection())
|
if (hasSelection())
|
||||||
UpdateLocal(bv, INIT, true);
|
UpdateLocal(bv, INIT, true);
|
||||||
else
|
else
|
||||||
|
269
src/tabular.C
269
src/tabular.C
@ -187,10 +187,10 @@ void LyXTabular::Init(int rows_arg, int columns_arg)
|
|||||||
set_row_column_number_info();
|
set_row_column_number_info();
|
||||||
is_long_tabular = false;
|
is_long_tabular = false;
|
||||||
rotate = 0;
|
rotate = 0;
|
||||||
endhead = -1;
|
endhead = 0;
|
||||||
endfirsthead = -1;
|
endfirsthead = 0;
|
||||||
endfoot = -1;
|
endfoot = 0;
|
||||||
endlastfoot = -1;
|
endlastfoot = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -380,36 +380,40 @@ int LyXTabular::NumberOfCellsInRow(int cell) const
|
|||||||
|
|
||||||
|
|
||||||
/* returns 1 if there is a topline, returns 0 if not */
|
/* returns 1 if there is a topline, returns 0 if not */
|
||||||
bool LyXTabular::TopLine(int cell) const
|
bool LyXTabular::TopLine(int cell, bool onlycolumn) const
|
||||||
{
|
{
|
||||||
int row = row_of_cell(cell);
|
int row = row_of_cell(cell);
|
||||||
|
|
||||||
if (IsMultiColumn(cell))
|
if (!onlycolumn && IsMultiColumn(cell))
|
||||||
return cellinfo_of_cell(cell)->top_line;
|
return cellinfo_of_cell(cell)->top_line;
|
||||||
return row_info[row].top_line;
|
return row_info[row].top_line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::BottomLine(int cell) const
|
bool LyXTabular::BottomLine(int cell, bool onlycolumn) const
|
||||||
{
|
{
|
||||||
//no bottom line underneath non-existent cells if you please
|
//no bottom line underneath non-existent cells if you please
|
||||||
if(cell >= numberofcells)
|
if(cell >= numberofcells)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (IsMultiColumn(cell))
|
if (!onlycolumn && IsMultiColumn(cell))
|
||||||
return cellinfo_of_cell(cell)->bottom_line;
|
return cellinfo_of_cell(cell)->bottom_line;
|
||||||
return row_info[row_of_cell(cell)].bottom_line;
|
return row_info[row_of_cell(cell)].bottom_line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::LeftLine(int cell) const
|
bool LyXTabular::LeftLine(int cell, bool onlycolumn) const
|
||||||
{
|
{
|
||||||
|
if (!onlycolumn && IsMultiColumn(cell))
|
||||||
|
return cellinfo_of_cell(cell)->left_line;
|
||||||
return column_info[column_of_cell(cell)].left_line;
|
return column_info[column_of_cell(cell)].left_line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::RightLine(int cell) const
|
bool LyXTabular::RightLine(int cell, bool onlycolumn) const
|
||||||
{
|
{
|
||||||
|
if (!onlycolumn && IsMultiColumn(cell))
|
||||||
|
return cellinfo_of_cell(cell)->right_line;
|
||||||
return column_info[right_column_of_cell(cell)].right_line;
|
return column_info[right_column_of_cell(cell)].right_line;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -604,38 +608,57 @@ bool LyXTabular::SetWidthOfCell(int cell, int new_width)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::SetAlignment(int cell, char align)
|
bool LyXTabular::SetAlignment(int cell, char align, bool onlycolumn)
|
||||||
{
|
{
|
||||||
if (!IsMultiColumn(cell))
|
if (!IsMultiColumn(cell) || onlycolumn)
|
||||||
column_info[column_of_cell(cell)].alignment = align;
|
column_info[column_of_cell(cell)].alignment = align;
|
||||||
cellinfo_of_cell(cell)->alignment = align;
|
if (!onlycolumn)
|
||||||
|
cellinfo_of_cell(cell)->alignment = align;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::SetPWidth(int cell, string const & width)
|
bool LyXTabular::SetVAlignment(int cell, char align, bool onlycolumn)
|
||||||
|
{
|
||||||
|
if (!IsMultiColumn(cell) || onlycolumn)
|
||||||
|
column_info[column_of_cell(cell)].valignment = align;
|
||||||
|
if (!onlycolumn)
|
||||||
|
cellinfo_of_cell(cell)->valignment = align;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool LyXTabular::SetColumnPWidth(int cell, string const & width)
|
||||||
{
|
{
|
||||||
bool flag = !width.empty();
|
bool flag = !width.empty();
|
||||||
|
|
||||||
if (IsMultiColumn(cell)) {
|
int j = column_of_cell(cell);
|
||||||
cellinfo_of_cell(cell)->p_width = width;
|
int c;
|
||||||
GetCellInset(cell)->SetAutoBreakRows(flag);
|
column_info[j].p_width = width;
|
||||||
} else {
|
if (flag) // do this only if there is a width
|
||||||
int j = column_of_cell(cell);
|
SetAlignment(cell, LYX_ALIGN_LEFT);
|
||||||
int c;
|
for(int i=0; i < rows_; ++i) {
|
||||||
column_info[j].p_width = width;
|
c = GetCellNumber(i, j);
|
||||||
if (flag) // do this only if there is a width
|
flag = !GetPWidth(c).empty(); // because of multicolumns!
|
||||||
SetAlignment(cell, LYX_ALIGN_LEFT);
|
GetCellInset(c)->SetAutoBreakRows(flag);
|
||||||
for(int i=0; i < rows_; ++i) {
|
|
||||||
c = GetCellNumber(i, j);
|
|
||||||
flag = !GetPWidth(c).empty(); // because of multicolumns!
|
|
||||||
GetCellInset(c)->SetAutoBreakRows(flag);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool LyXTabular::SetMColumnPWidth(int cell, string const & width)
|
||||||
|
{
|
||||||
|
bool flag = !width.empty();
|
||||||
|
|
||||||
|
cellinfo_of_cell(cell)->p_width = width;
|
||||||
|
if (IsMultiColumn(cell)) {
|
||||||
|
GetCellInset(cell)->SetAutoBreakRows(flag);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::SetAlignSpecial(int cell, string const & special, int what)
|
bool LyXTabular::SetAlignSpecial(int cell, string const & special, int what)
|
||||||
{
|
{
|
||||||
if (what == SET_SPECIAL_MULTI)
|
if (what == SET_SPECIAL_MULTI)
|
||||||
@ -656,11 +679,11 @@ bool LyXTabular::SetAllLines(int cell, bool line)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::SetTopLine(int cell, bool line)
|
bool LyXTabular::SetTopLine(int cell, bool line, bool onlycolumn)
|
||||||
{
|
{
|
||||||
int row = row_of_cell(cell);
|
int row = row_of_cell(cell);
|
||||||
|
|
||||||
if (!IsMultiColumn(cell))
|
if (onlycolumn || !IsMultiColumn(cell))
|
||||||
row_info[row].top_line = line;
|
row_info[row].top_line = line;
|
||||||
else
|
else
|
||||||
cellinfo_of_cell(cell)->top_line = line;
|
cellinfo_of_cell(cell)->top_line = line;
|
||||||
@ -668,9 +691,9 @@ bool LyXTabular::SetTopLine(int cell, bool line)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::SetBottomLine(int cell, bool line)
|
bool LyXTabular::SetBottomLine(int cell, bool line, bool onlycolumn)
|
||||||
{
|
{
|
||||||
if (!IsMultiColumn(cell))
|
if (onlycolumn || !IsMultiColumn(cell))
|
||||||
row_info[row_of_cell(cell)].bottom_line = line;
|
row_info[row_of_cell(cell)].bottom_line = line;
|
||||||
else
|
else
|
||||||
cellinfo_of_cell(cell)->bottom_line = line;
|
cellinfo_of_cell(cell)->bottom_line = line;
|
||||||
@ -678,29 +701,44 @@ bool LyXTabular::SetBottomLine(int cell, bool line)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::SetLeftLine(int cell, bool line)
|
bool LyXTabular::SetLeftLine(int cell, bool line, bool onlycolumn)
|
||||||
{
|
{
|
||||||
column_info[column_of_cell(cell)].left_line = line;
|
if (onlycolumn || !IsMultiColumn(cell))
|
||||||
|
column_info[column_of_cell(cell)].left_line = line;
|
||||||
|
else
|
||||||
|
cellinfo_of_cell(cell)->left_line = line;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::SetRightLine(int cell, bool line)
|
bool LyXTabular::SetRightLine(int cell, bool line, bool onlycolumn)
|
||||||
{
|
{
|
||||||
column_info[right_column_of_cell(cell)].right_line = line;
|
if (onlycolumn || !IsMultiColumn(cell))
|
||||||
|
column_info[right_column_of_cell(cell)].right_line = line;
|
||||||
|
else
|
||||||
|
cellinfo_of_cell(cell)->right_line = line;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
char LyXTabular::GetAlignment(int cell) const
|
char LyXTabular::GetAlignment(int cell, bool onlycolumn) const
|
||||||
{
|
{
|
||||||
if (IsMultiColumn(cell))
|
if (!onlycolumn && IsMultiColumn(cell))
|
||||||
return cellinfo_of_cell(cell)->alignment;
|
return cellinfo_of_cell(cell)->alignment;
|
||||||
else
|
else
|
||||||
return column_info[column_of_cell(cell)].alignment;
|
return column_info[column_of_cell(cell)].alignment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
char LyXTabular::GetVAlignment(int cell, bool onlycolumn) const
|
||||||
|
{
|
||||||
|
if (!onlycolumn && IsMultiColumn(cell))
|
||||||
|
return cellinfo_of_cell(cell)->valignment;
|
||||||
|
else
|
||||||
|
return column_info[column_of_cell(cell)].valignment;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
string LyXTabular::GetPWidth(int cell) const
|
string LyXTabular::GetPWidth(int cell) const
|
||||||
{
|
{
|
||||||
if (IsMultiColumn(cell))
|
if (IsMultiColumn(cell))
|
||||||
@ -709,6 +747,20 @@ string LyXTabular::GetPWidth(int cell) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string LyXTabular::GetColumnPWidth(int cell) const
|
||||||
|
{
|
||||||
|
return column_info[column_of_cell(cell)].p_width;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string LyXTabular::GetMColumnPWidth(int cell) const
|
||||||
|
{
|
||||||
|
if (IsMultiColumn(cell))
|
||||||
|
return cellinfo_of_cell(cell)->p_width;
|
||||||
|
return string();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
string LyXTabular::GetAlignSpecial(int cell, int what) const
|
string LyXTabular::GetAlignSpecial(int cell, int what) const
|
||||||
{
|
{
|
||||||
if (what == SET_SPECIAL_MULTI)
|
if (what == SET_SPECIAL_MULTI)
|
||||||
@ -871,6 +923,7 @@ void LyXTabular::Write(Buffer const * buf, ostream & os) const
|
|||||||
for (j = 0; j < columns_; ++j) {
|
for (j = 0; j < columns_; ++j) {
|
||||||
if (!i) {
|
if (!i) {
|
||||||
os << "<Column alignment=" << column_info[j].alignment <<
|
os << "<Column alignment=" << column_info[j].alignment <<
|
||||||
|
" valignment=" << column_info[j].valignment <<
|
||||||
" leftline=" << column_info[j].left_line <<
|
" leftline=" << column_info[j].left_line <<
|
||||||
" rightline=" << column_info[j].right_line <<
|
" rightline=" << column_info[j].right_line <<
|
||||||
" width=\"" << VSpace(column_info[j].p_width).asLyXCommand() <<
|
" width=\"" << VSpace(column_info[j].p_width).asLyXCommand() <<
|
||||||
@ -881,8 +934,11 @@ void LyXTabular::Write(Buffer const * buf, ostream & os) const
|
|||||||
}
|
}
|
||||||
os << "<Cell multicolumn=" << cell_info[i][j].multicolumn <<
|
os << "<Cell multicolumn=" << cell_info[i][j].multicolumn <<
|
||||||
" alignment=" << cell_info[i][j].alignment <<
|
" alignment=" << cell_info[i][j].alignment <<
|
||||||
|
" valignment=" << cell_info[i][j].valignment <<
|
||||||
" topline=" << cell_info[i][j].top_line <<
|
" topline=" << cell_info[i][j].top_line <<
|
||||||
" bottomline=" << cell_info[i][j].bottom_line <<
|
" bottomline=" << cell_info[i][j].bottom_line <<
|
||||||
|
" leftline=" << cell_info[i][j].left_line <<
|
||||||
|
" rightline=" << cell_info[i][j].right_line <<
|
||||||
" rotate=" << cell_info[i][j].rotate <<
|
" rotate=" << cell_info[i][j].rotate <<
|
||||||
" linebreaks=" << cell_info[i][j].linebreaks <<
|
" linebreaks=" << cell_info[i][j].linebreaks <<
|
||||||
" width=\"" << cell_info[i][j].p_width <<
|
" width=\"" << cell_info[i][j].p_width <<
|
||||||
@ -1034,6 +1090,7 @@ void LyXTabular::Read(Buffer const * buf, LyXLex & lex)
|
|||||||
}
|
}
|
||||||
if (!i) {
|
if (!i) {
|
||||||
(void)getTokenValue(line, "alignment", column_info[j].alignment);
|
(void)getTokenValue(line, "alignment", column_info[j].alignment);
|
||||||
|
(void)getTokenValue(line, "valignment", column_info[j].valignment);
|
||||||
(void)getTokenValue(line, "leftline", column_info[j].left_line);
|
(void)getTokenValue(line, "leftline", column_info[j].left_line);
|
||||||
(void)getTokenValue(line, "rightline", column_info[j].right_line);
|
(void)getTokenValue(line, "rightline", column_info[j].right_line);
|
||||||
(void)getTokenValue(line, "width", column_info[j].p_width);
|
(void)getTokenValue(line, "width", column_info[j].p_width);
|
||||||
@ -1047,8 +1104,11 @@ void LyXTabular::Read(Buffer const * buf, LyXLex & lex)
|
|||||||
}
|
}
|
||||||
(void)getTokenValue(line, "multicolumn", cell_info[i][j].multicolumn);
|
(void)getTokenValue(line, "multicolumn", cell_info[i][j].multicolumn);
|
||||||
(void)getTokenValue(line, "alignment", cell_info[i][j].alignment);
|
(void)getTokenValue(line, "alignment", cell_info[i][j].alignment);
|
||||||
|
(void)getTokenValue(line, "valignment", cell_info[i][j].valignment);
|
||||||
(void)getTokenValue(line, "topline", cell_info[i][j].top_line);
|
(void)getTokenValue(line, "topline", cell_info[i][j].top_line);
|
||||||
(void)getTokenValue(line, "bottomline", cell_info[i][j].bottom_line);
|
(void)getTokenValue(line, "bottomline", cell_info[i][j].bottom_line);
|
||||||
|
(void)getTokenValue(line, "leftline", cell_info[i][j].left_line);
|
||||||
|
(void)getTokenValue(line, "rightline", cell_info[i][j].right_line);
|
||||||
(void)getTokenValue(line, "rotate", cell_info[i][j].rotate);
|
(void)getTokenValue(line, "rotate", cell_info[i][j].rotate);
|
||||||
(void)getTokenValue(line, "linebreaks", cell_info[i][j].linebreaks);
|
(void)getTokenValue(line, "linebreaks", cell_info[i][j].linebreaks);
|
||||||
(void)getTokenValue(line, "width", cell_info[i][j].p_width);
|
(void)getTokenValue(line, "width", cell_info[i][j].p_width);
|
||||||
@ -1636,67 +1696,73 @@ bool LyXTabular::GetLinebreaks(int cell) const
|
|||||||
void LyXTabular::SetLTHead(int cell, bool first)
|
void LyXTabular::SetLTHead(int cell, bool first)
|
||||||
{
|
{
|
||||||
int row = row_of_cell(cell);
|
int row = row_of_cell(cell);
|
||||||
|
int val = (row+1) * (column_of_cell(cell)? 1:-1);
|
||||||
|
|
||||||
if (first) {
|
if (first) {
|
||||||
if (row == endfirsthead)
|
if (endfirsthead == val)
|
||||||
endfirsthead = -1;
|
endfirsthead = 0;
|
||||||
else
|
else
|
||||||
endfirsthead = row;
|
endfirsthead = val;
|
||||||
} else {
|
} else {
|
||||||
if (row == endhead)
|
if (endhead == val)
|
||||||
endhead = -1;
|
endhead = 0;
|
||||||
else
|
else
|
||||||
endhead = row;
|
endhead = val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::GetRowOfLTHead(int cell) const
|
bool LyXTabular::GetRowOfLTHead(int cell, int & row) const
|
||||||
{
|
{
|
||||||
if ((endhead+1) > rows_)
|
row = endhead;
|
||||||
|
if (abs(endhead) > rows_)
|
||||||
return false;
|
return false;
|
||||||
return (row_of_cell(cell) == endhead);
|
return (row_of_cell(cell) == (abs(endhead)-1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::GetRowOfLTFirstHead(int cell) const
|
bool LyXTabular::GetRowOfLTFirstHead(int cell, int & row) const
|
||||||
{
|
{
|
||||||
if ((endfirsthead+1) > rows_)
|
row = endfirsthead;
|
||||||
|
if (abs(endfirsthead) > rows_)
|
||||||
return false;
|
return false;
|
||||||
return (row_of_cell(cell) == endfirsthead);
|
return (row_of_cell(cell) == (abs(endfirsthead)-1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LyXTabular::SetLTFoot(int cell, bool last)
|
void LyXTabular::SetLTFoot(int cell, bool last)
|
||||||
{
|
{
|
||||||
int row = row_of_cell(cell);
|
int row = row_of_cell(cell);
|
||||||
|
int val = (row + 1) * (column_of_cell(cell)? 1:-1);
|
||||||
|
|
||||||
if (last) {
|
if (last) {
|
||||||
if (row == endlastfoot)
|
if (endlastfoot == val)
|
||||||
endlastfoot = -1;
|
endlastfoot = 0;
|
||||||
else
|
else
|
||||||
endlastfoot = row;
|
endlastfoot = val;
|
||||||
} else {
|
} else {
|
||||||
if (row == endfoot)
|
if (endfoot == val)
|
||||||
endfoot = -1;
|
endfoot = 0;
|
||||||
else
|
else
|
||||||
endfoot = row;
|
endfoot = val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LyXTabular::GetRowOfLTFoot(int cell) const
|
bool LyXTabular::GetRowOfLTFoot(int cell, int & row) const
|
||||||
{
|
{
|
||||||
|
row = endfoot;
|
||||||
if ((endfoot+1) > rows_)
|
if ((endfoot+1) > rows_)
|
||||||
return false;
|
return false;
|
||||||
return (row_of_cell(cell) == endfoot);
|
return (row_of_cell(cell) == (abs(endfoot)-1));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LyXTabular::GetRowOfLTLastFoot(int cell) const
|
bool LyXTabular::GetRowOfLTLastFoot(int cell, int & row) const
|
||||||
{
|
{
|
||||||
if ((endlastfoot+1) > rows_)
|
row = endlastfoot;
|
||||||
|
if (abs(endlastfoot) > rows_)
|
||||||
return false;
|
return false;
|
||||||
return (row_of_cell(cell) == endlastfoot);
|
return (row_of_cell(cell) == (abs(endlastfoot)-1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1845,7 +1911,18 @@ int LyXTabular::TeXCellPreamble(ostream & os, int cell) const
|
|||||||
if (LeftLine(cell))
|
if (LeftLine(cell))
|
||||||
os << '|';
|
os << '|';
|
||||||
if (!GetPWidth(cell).empty()) {
|
if (!GetPWidth(cell).empty()) {
|
||||||
os << "p{" << GetPWidth(cell) << '}';
|
switch(GetVAlignment(cell)) {
|
||||||
|
case LYX_VALIGN_TOP:
|
||||||
|
os << "p";
|
||||||
|
break;
|
||||||
|
case LYX_VALIGN_CENTER:
|
||||||
|
os << "m";
|
||||||
|
break;
|
||||||
|
case LYX_VALIGN_BOTTOM:
|
||||||
|
os << "b";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
os << "{" << GetPWidth(cell) << '}';
|
||||||
} else {
|
} else {
|
||||||
switch (GetAlignment(cell)) {
|
switch (GetAlignment(cell)) {
|
||||||
case LYX_ALIGN_LEFT:
|
case LYX_ALIGN_LEFT:
|
||||||
@ -1868,7 +1945,19 @@ int LyXTabular::TeXCellPreamble(ostream & os, int cell) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (GetLinebreaks(cell)) {
|
if (GetLinebreaks(cell)) {
|
||||||
os << "\\parbox[t]{" << GetPWidth(cell) << "}{\\smallskip{}";
|
os << "\\parbox[";
|
||||||
|
switch(GetVAlignment(cell)) {
|
||||||
|
case LYX_VALIGN_TOP:
|
||||||
|
os << "t";
|
||||||
|
break;
|
||||||
|
case LYX_VALIGN_CENTER:
|
||||||
|
os << "c";
|
||||||
|
break;
|
||||||
|
case LYX_VALIGN_BOTTOM:
|
||||||
|
os << "b";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
os << "]{" << GetPWidth(cell) << "}{\\smallskip{}";
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1916,7 +2005,18 @@ int LyXTabular::Latex(Buffer const * buf, ostream & os, bool fragile, bool fp) c
|
|||||||
if (!column_info[i].align_special.empty()) {
|
if (!column_info[i].align_special.empty()) {
|
||||||
os << column_info[i].align_special;
|
os << column_info[i].align_special;
|
||||||
} else if (!column_info[i].p_width.empty()) {
|
} else if (!column_info[i].p_width.empty()) {
|
||||||
os << "p{"
|
switch(column_info[i].valignment) {
|
||||||
|
case LYX_VALIGN_TOP:
|
||||||
|
os << "p";
|
||||||
|
break;
|
||||||
|
case LYX_VALIGN_CENTER:
|
||||||
|
os << "m";
|
||||||
|
break;
|
||||||
|
case LYX_VALIGN_BOTTOM:
|
||||||
|
os << "b";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
os << "{"
|
||||||
<< column_info[i].p_width
|
<< column_info[i].p_width
|
||||||
<< '}';
|
<< '}';
|
||||||
} else {
|
} else {
|
||||||
@ -1942,8 +2042,33 @@ int LyXTabular::Latex(Buffer const * buf, ostream & os, bool fragile, bool fp) c
|
|||||||
//+ the single row and columns (cells) +
|
//+ the single row and columns (cells) +
|
||||||
//+---------------------------------------------------------------------
|
//+---------------------------------------------------------------------
|
||||||
|
|
||||||
|
int bret;
|
||||||
for(i=0; i < rows_; ++i) {
|
for(i=0; i < rows_; ++i) {
|
||||||
ret += TeXTopHLine(os, i);
|
ret += TeXTopHLine(os, i);
|
||||||
|
bret = ret;
|
||||||
|
if (IsLongTabular()) {
|
||||||
|
if ((endhead < 0) && (i == (abs(endhead)-1))) {
|
||||||
|
os << "\\endhead\n";
|
||||||
|
++ret;
|
||||||
|
}
|
||||||
|
if ((endfirsthead < 0) && (i == (abs(endfirsthead)-1))) {
|
||||||
|
os << "\\endfirsthead\n";
|
||||||
|
++ret;
|
||||||
|
}
|
||||||
|
if ((endfoot < 0) && (i == (abs(endfoot)-1))) {
|
||||||
|
os << "\\endfoot\n";
|
||||||
|
++ret;
|
||||||
|
}
|
||||||
|
if ((endlastfoot < 0) && (i == (abs(endlastfoot)-1))) {
|
||||||
|
os << "\\endlastfoot\n";
|
||||||
|
++ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ret > bret) {
|
||||||
|
if (i > 0)
|
||||||
|
ret += TeXBottomHLine(os, i-1);
|
||||||
|
ret += TeXTopHLine(os, i);
|
||||||
|
}
|
||||||
for(j=0; j < columns_; ++j) {
|
for(j=0; j < columns_; ++j) {
|
||||||
if (IsPartOfMultiColumn(i,j))
|
if (IsPartOfMultiColumn(i,j))
|
||||||
continue;
|
continue;
|
||||||
@ -1958,23 +2083,26 @@ int LyXTabular::Latex(Buffer const * buf, ostream & os, bool fragile, bool fp) c
|
|||||||
}
|
}
|
||||||
os << "\\\\" << endl;
|
os << "\\\\" << endl;
|
||||||
ret += TeXBottomHLine(os, i);
|
ret += TeXBottomHLine(os, i);
|
||||||
|
bret = ret;
|
||||||
if (IsLongTabular()) {
|
if (IsLongTabular()) {
|
||||||
if (i == endhead) {
|
if ((endhead > 0) && (i == (endhead-1))) {
|
||||||
os << "\\endhead\n";
|
os << "\\endhead\n";
|
||||||
++ret;
|
++ret;
|
||||||
}
|
}
|
||||||
if (i == endfirsthead) {
|
if ((endfirsthead > 0) && (i == (endfirsthead-1))) {
|
||||||
os << "\\endfirsthead\n";
|
os << "\\endfirsthead\n";
|
||||||
++ret;
|
++ret;
|
||||||
}
|
}
|
||||||
if (i == endfoot) {
|
if ((endfoot > 0) && (i == (endfoot-1))) {
|
||||||
os << "\\endfoot\n";
|
os << "\\endfoot\n";
|
||||||
++ret;
|
++ret;
|
||||||
}
|
}
|
||||||
if (i == endlastfoot) {
|
if ((endlastfoot > 0) && (i == (endlastfoot-1))) {
|
||||||
os << "\\endlastfoot\n";
|
os << "\\endlastfoot\n";
|
||||||
++ret;
|
++ret;
|
||||||
}
|
}
|
||||||
|
if (ret > bret)
|
||||||
|
ret += TeXBottomHLine(os, i);
|
||||||
if (row_info[i].newpage) {
|
if (row_info[i].newpage) {
|
||||||
os << "\\newpage\n";
|
os << "\\newpage\n";
|
||||||
++ret;
|
++ret;
|
||||||
@ -2010,6 +2138,9 @@ void LyXTabular::Validate(LaTeXFeatures & features) const
|
|||||||
features.longtable = true;
|
features.longtable = true;
|
||||||
if (NeedRotating())
|
if (NeedRotating())
|
||||||
features.rotating = true;
|
features.rotating = true;
|
||||||
for(int cell = 0; cell < numberofcells; ++cell)
|
for(int cell = 0; cell < numberofcells; ++cell) {
|
||||||
|
if (GetVAlignment(cell) != LYX_VALIGN_TOP)
|
||||||
|
features.array = true;
|
||||||
GetCellInset(cell)->Validate(features);
|
GetCellInset(cell)->Validate(features);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ class Buffer;
|
|||||||
///
|
///
|
||||||
class LyXTabular {
|
class LyXTabular {
|
||||||
public:
|
public:
|
||||||
// Are the values of these enums important? (Lgb)
|
|
||||||
enum {
|
enum {
|
||||||
APPEND_ROW = 0,
|
APPEND_ROW = 0,
|
||||||
APPEND_COLUMN,
|
APPEND_COLUMN,
|
||||||
@ -40,9 +40,22 @@ public:
|
|||||||
TOGGLE_LINE_BOTTOM,
|
TOGGLE_LINE_BOTTOM,
|
||||||
TOGGLE_LINE_LEFT,
|
TOGGLE_LINE_LEFT,
|
||||||
TOGGLE_LINE_RIGHT,
|
TOGGLE_LINE_RIGHT,
|
||||||
ALIGN_LEFT, // what are these alignment enums used for?
|
ALIGN_LEFT,
|
||||||
ALIGN_RIGHT,
|
ALIGN_RIGHT,
|
||||||
ALIGN_CENTER,
|
ALIGN_CENTER,
|
||||||
|
VALIGN_TOP,
|
||||||
|
VALIGN_BOTTOM,
|
||||||
|
VALIGN_CENTER,
|
||||||
|
M_TOGGLE_LINE_TOP,
|
||||||
|
M_TOGGLE_LINE_BOTTOM,
|
||||||
|
M_TOGGLE_LINE_LEFT,
|
||||||
|
M_TOGGLE_LINE_RIGHT,
|
||||||
|
M_ALIGN_LEFT,
|
||||||
|
M_ALIGN_RIGHT,
|
||||||
|
M_ALIGN_CENTER,
|
||||||
|
M_VALIGN_TOP,
|
||||||
|
M_VALIGN_BOTTOM,
|
||||||
|
M_VALIGN_CENTER,
|
||||||
DELETE_TABULAR,
|
DELETE_TABULAR,
|
||||||
MULTICOLUMN,
|
MULTICOLUMN,
|
||||||
SET_ALL_LINES,
|
SET_ALL_LINES,
|
||||||
@ -50,6 +63,7 @@ public:
|
|||||||
SET_LONGTABULAR,
|
SET_LONGTABULAR,
|
||||||
UNSET_LONGTABULAR,
|
UNSET_LONGTABULAR,
|
||||||
SET_PWIDTH,
|
SET_PWIDTH,
|
||||||
|
SET_MPWIDTH,
|
||||||
SET_ROTATE_TABULAR,
|
SET_ROTATE_TABULAR,
|
||||||
UNSET_ROTATE_TABULAR,
|
UNSET_ROTATE_TABULAR,
|
||||||
SET_ROTATE_CELL,
|
SET_ROTATE_CELL,
|
||||||
@ -69,6 +83,17 @@ public:
|
|||||||
CELL_BEGIN_OF_MULTICOLUMN,
|
CELL_BEGIN_OF_MULTICOLUMN,
|
||||||
CELL_PART_OF_MULTICOLUMN
|
CELL_PART_OF_MULTICOLUMN
|
||||||
};
|
};
|
||||||
|
|
||||||
|
///
|
||||||
|
enum VAlignment {
|
||||||
|
///
|
||||||
|
LYX_VALIGN_TOP = 0,
|
||||||
|
///
|
||||||
|
LYX_VALIGN_BOTTOM = 1,
|
||||||
|
///
|
||||||
|
LYX_VALIGN_CENTER = 2
|
||||||
|
};
|
||||||
|
|
||||||
/* konstruktor */
|
/* konstruktor */
|
||||||
///
|
///
|
||||||
LyXTabular(InsetTabular *, int columns_arg, int rows_arg);
|
LyXTabular(InsetTabular *, int columns_arg, int rows_arg);
|
||||||
@ -86,13 +111,13 @@ public:
|
|||||||
LyXTabular * Clone(InsetTabular *);
|
LyXTabular * Clone(InsetTabular *);
|
||||||
|
|
||||||
/// Returns true if there is a topline, returns false if not
|
/// Returns true if there is a topline, returns false if not
|
||||||
bool TopLine(int cell) const;
|
bool TopLine(int cell, bool onlycolumn=false) const;
|
||||||
/// Returns true if there is a topline, returns false if not
|
/// Returns true if there is a topline, returns false if not
|
||||||
bool BottomLine(int cell) const;
|
bool BottomLine(int cell, bool onlycolumn=false) const;
|
||||||
/// Returns true if there is a topline, returns false if not
|
/// Returns true if there is a topline, returns false if not
|
||||||
bool LeftLine(int cell) const;
|
bool LeftLine(int cell, bool onlycolumn=false) const;
|
||||||
/// Returns true if there is a topline, returns false if not
|
/// Returns true if there is a topline, returns false if not
|
||||||
bool RightLine(int cell) const;
|
bool RightLine(int cell, bool onlycolumn=false) const;
|
||||||
|
|
||||||
///
|
///
|
||||||
bool TopAlreadyDrawed(int cell) const;
|
bool TopAlreadyDrawed(int cell) const;
|
||||||
@ -126,24 +151,34 @@ public:
|
|||||||
/// Returns true if a complete update is necessary, otherwise false
|
/// Returns true if a complete update is necessary, otherwise false
|
||||||
bool SetAllLines(int cell, bool line);
|
bool SetAllLines(int cell, bool line);
|
||||||
/// Returns true if a complete update is necessary, otherwise false
|
/// Returns true if a complete update is necessary, otherwise false
|
||||||
bool SetTopLine(int cell, bool line);
|
bool SetTopLine(int cell, bool line, bool onlycolumn=false);
|
||||||
/// Returns true if a complete update is necessary, otherwise false
|
/// Returns true if a complete update is necessary, otherwise false
|
||||||
bool SetBottomLine(int cell, bool line);
|
bool SetBottomLine(int cell, bool line, bool onlycolumn=false);
|
||||||
/// Returns true if a complete update is necessary, otherwise false
|
/// Returns true if a complete update is necessary, otherwise false
|
||||||
bool SetLeftLine(int cell, bool line);
|
bool SetLeftLine(int cell, bool line, bool onlycolumn=false);
|
||||||
/// Returns true if a complete update is necessary, otherwise false
|
/// Returns true if a complete update is necessary, otherwise false
|
||||||
bool SetRightLine(int cell, bool line);
|
bool SetRightLine(int cell, bool line, bool onlycolumn=false);
|
||||||
/// Returns true if a complete update is necessary, otherwise false
|
/// Returns true if a complete update is necessary, otherwise false
|
||||||
bool SetAlignment(int cell, char align);
|
bool SetAlignment(int cell, char align, bool onlycolumn = false);
|
||||||
|
/// Returns true if a complete update is necessary, otherwise false
|
||||||
|
bool SetVAlignment(int cell, char align, bool onlycolumn = false);
|
||||||
///
|
///
|
||||||
bool SetPWidth(int cell, string const & width);
|
bool SetColumnPWidth(int cell, string const & width);
|
||||||
|
///
|
||||||
|
bool SetMColumnPWidth(int cell, string const & width);
|
||||||
///
|
///
|
||||||
bool SetAlignSpecial(int cell, string const & special, int what);
|
bool SetAlignSpecial(int cell, string const & special, int what);
|
||||||
///
|
///
|
||||||
char GetAlignment(int cell) const; // add approp. signedness
|
char GetAlignment(int cell, bool onlycolumn = false) const;
|
||||||
|
///
|
||||||
|
char GetVAlignment(int cell, bool onlycolumn = false) const;
|
||||||
///
|
///
|
||||||
string GetPWidth(int cell) const;
|
string GetPWidth(int cell) const;
|
||||||
///
|
///
|
||||||
|
string GetColumnPWidth(int cell) const;
|
||||||
|
///
|
||||||
|
string GetMColumnPWidth(int cell) const;
|
||||||
|
///
|
||||||
string GetAlignSpecial(int cell, int what) const;
|
string GetAlignSpecial(int cell, int what) const;
|
||||||
///
|
///
|
||||||
int GetWidthOfCell(int cell) const;
|
int GetWidthOfCell(int cell) const;
|
||||||
@ -242,15 +277,15 @@ public:
|
|||||||
///
|
///
|
||||||
void SetLTHead(int cell, bool first);
|
void SetLTHead(int cell, bool first);
|
||||||
///
|
///
|
||||||
bool GetRowOfLTHead(int cell) const;
|
bool GetRowOfLTHead(int cell, int & row) const;
|
||||||
///
|
///
|
||||||
bool GetRowOfLTFirstHead(int cell) const;
|
bool GetRowOfLTFirstHead(int cell, int & row) const;
|
||||||
///
|
///
|
||||||
void SetLTFoot(int cell, bool last);
|
void SetLTFoot(int cell, bool last);
|
||||||
///
|
///
|
||||||
bool GetRowOfLTFoot(int cell) const;
|
bool GetRowOfLTFoot(int cell, int & row) const;
|
||||||
///
|
///
|
||||||
bool GetRowOfLTLastFoot(int cell) const;
|
bool GetRowOfLTLastFoot(int cell, int & row) const;
|
||||||
///
|
///
|
||||||
void SetLTNewPage(int cell, bool what);
|
void SetLTNewPage(int cell, bool what);
|
||||||
///
|
///
|
||||||
@ -284,9 +319,11 @@ private: //////////////////////////////////////////////////////////////////
|
|||||||
///
|
///
|
||||||
int width_of_cell;
|
int width_of_cell;
|
||||||
///
|
///
|
||||||
int multicolumn; // add approp. signedness
|
int multicolumn;
|
||||||
///
|
///
|
||||||
int alignment; // add approp. signedness
|
int alignment;
|
||||||
|
///
|
||||||
|
int valignment;
|
||||||
///
|
///
|
||||||
bool top_line;
|
bool top_line;
|
||||||
///
|
///
|
||||||
@ -336,7 +373,8 @@ private: //////////////////////////////////////////////////////////////////
|
|||||||
///
|
///
|
||||||
//columnstruct & operator=(columnstruct const &);
|
//columnstruct & operator=(columnstruct const &);
|
||||||
///
|
///
|
||||||
int alignment; // add approp. signedness
|
int alignment;
|
||||||
|
int valignment;
|
||||||
bool left_line;
|
bool left_line;
|
||||||
bool right_line;
|
bool right_line;
|
||||||
int width_of_column;
|
int width_of_column;
|
||||||
|
Loading…
Reference in New Issue
Block a user