*======================================================
*/
-#include <stdlib.h>
+#include <config.h>
+
+#include <cstdlib>
#include "table.h"
#include "vspace.h"
#include "layout.h"
-
-// $Id: table.C,v 1.1 1999/09/27 18:44:38 larsbj Exp $
-
-#if !defined(lint) && !defined(WITH_WARNINGS)
-static char vcid[] = "$Id: table.C,v 1.1 1999/09/27 18:44:38 larsbj Exp $";
-#endif /* lint */
+#include "support/lstrings.h"
#ifdef __GNUG__
#pragma implementation
#endif
-extern void addNewlineAndDepth(LString &file, int const depth); // Jug 990923
+extern void addNewlineAndDepth(string &file, int const depth); // Jug 990923
#define WIDTH_OF_LINE 5
calculate_width_of_table();
- rowofcell = NULL;
- columnofcell = NULL;
+ rowofcell = 0;
+ columnofcell = 0;
set_row_column_number_info();
is_long_table = false;
rotate = 0;
return true;
}
-bool LyXTable::SetPWidth(int cell, LString width)
+bool LyXTable::SetPWidth(int cell, string width)
{
int fvcell = FirstVirtualCell(cell);
cellinfo_of_cell(fvcell)->p_width = width;
} else {
column_info[column_of_cell(fvcell)].p_width = width;
- SetAlignment(cell,LYX_ALIGN_LEFT);
+ if (!width.empty()) // do this only if there is a width
+ SetAlignment(cell,LYX_ALIGN_LEFT);
}
return true;
}
-bool LyXTable::SetAlignSpecial(int cell, LString special, int what)
+bool LyXTable::SetAlignSpecial(int cell, string special, int what)
{
if (what == SET_SPECIAL_MULTI)
cellinfo_of_cell(cell)->align_special = special;
return column_info[column_of_cell(cell)].alignment;
}
-LString LyXTable::GetPWidth(int cell)
+string LyXTable::GetPWidth(int cell)
{
int fvcell = FirstVirtualCell(cell);
return column_info[column_of_cell(fvcell)].p_width;
}
-LString LyXTable::GetAlignSpecial(int cell, int what)
+string LyXTable::GetAlignSpecial(int cell, int what)
{
if (what == SET_SPECIAL_MULTI)
return cellinfo_of_cell(cell)->align_special;
int columns_arg = 0;
int is_long_table_arg = false;
int rotate_arg = false;
- LString s;
+ string s;
int a = 0;
int b = 0;
int c = 0;
// cell <0 will tex the preamble
// returns the number of printed newlines
-int LyXTable::TexEndOfCell(LString& file, int cell)
+int LyXTable::TexEndOfCell(string& file, int cell)
{
int i;
int ret = 0;
for (i=0; i < NumberOfCellsInRow(fcell); i++){
if (BottomLine(fcell+i)){
file += "\\cline{";
- file += column_of_cell(fcell+i)+1;
+ file += tostr(column_of_cell(fcell+i)+1);
file += '-';
- file += right_column_of_cell(fcell+i)+1;
+ file += tostr(right_column_of_cell(fcell+i)+1);
file += "} ";
tmp = 1;
}
for (i=0; i < NumberOfCellsInRow(fcell); i++){
if (TopLine(fcell+i)){
file += "\\cline{";
- file += column_of_cell(fcell+i)+1;
+ file += tostr(column_of_cell(fcell+i)+1);
file += '-';
- file += right_column_of_cell(fcell+i)+1;
+ file += tostr(right_column_of_cell(fcell+i)+1);
file += "} ";
tmp = 1;
}
}
if (IsLastCell(cell)) {
int row = row_of_cell(cell);
- LString hline1,hline2;
+ string hline1,hline2;
bool print_hline = true;
bool pr_top_hline,flag1,flag2;
flag1 = IsLongTable() &&
for (i=0; i < NumberOfCellsInRow(fcell); i++){
if (BottomLine(fcell+i)){
file += "\\cline{";
- file += column_of_cell(fcell+i)+1;
+ file += tostr(column_of_cell(fcell+i)+1);
file += '-';
- file += right_column_of_cell(fcell+i)+1;
+ file += tostr(right_column_of_cell(fcell+i)+1);
file += "} ";
hline1 += "\\cline{";
- hline1 += column_of_cell(fcell+i)+1;
+ hline1 += tostr(column_of_cell(fcell+i)+1);
hline1 += '-';
- hline1 += right_column_of_cell(fcell+i)+1;
+ hline1 += tostr(right_column_of_cell(fcell+i)+1);
hline1 += "} ";
tmp = 1;
}
if (TopLine(fcell+i)){
if (print_hline) {
file += "\\cline{";
- file += column_of_cell(fcell+i)+1;
+ file += tostr(column_of_cell(fcell+i)+1);
file += '-';
- file += right_column_of_cell(fcell+i)+1;
+ file += tostr(right_column_of_cell(fcell+i)+1);
file += "} ";
}
hline2 += "\\cline{";
- hline2 += column_of_cell(fcell+i)+1;
+ hline2 += tostr(column_of_cell(fcell+i)+1);
hline2 += '-';
- hline2 += right_column_of_cell(fcell+i)+1;
+ hline2 += tostr(right_column_of_cell(fcell+i)+1);
hline2 += "} ";
tmp = 1;
}
}
if (nvcell < numberofcells && IsMultiColumn(nvcell)) {
file += "\\multicolumn{";
- file += cells_in_multicolumn(nvcell);
+ file += tostr(cells_in_multicolumn(nvcell));
file += "}{";
if (!cellinfo_of_cell(cell+1)->align_special.empty()) {
file += cellinfo_of_cell(cell+1)->align_special;
return ret;
}
-const char *LyXTable::getDocBookAlign(int cell, bool isColumn=false)
+const char *LyXTable::getDocBookAlign(int cell, bool isColumn)
{
int i;
if (isColumn)
// cell <0 will tex the preamble
// returns the number of printed newlines
-int LyXTable::DocBookEndOfCell(LString& file, int cell, int &depth)
+int LyXTable::DocBookEndOfCell(string& file, int cell, int &depth)
{
int i;
int ret = 0;
- int tmp; // tmp2;
- int fcell,nvcell;
+ //int tmp; // tmp2; // unused
+ int nvcell; // fcell; // unused
if (ShouldBeVeryLastCell(cell)) {
#if 0
// the very end at the very beginning
else
file += "<TGROUP ";
file += "COLS='";
- file += columns;
+ file += tostr(columns);
file += "' COLSEP='1' ROWSEP='1'>";
addNewlineAndDepth(file,++depth);
ret++;
file += "<COLSPEC ALIGN='";
file += getDocBookAlign(i, true);
file += "' COLNAME='col";
- file += i+1;
+ file += tostr(i+1);
file += "' COLNUM='";
- file += i+1;
+ file += tostr(i+1);
file += "' COLSEP='";
if (i == (columns-1)) {
file += '1';
file += "'";
if (IsMultiColumn(0)) {
file += " NAMEST='col1' NAMEEND='col";
- file += cells_in_multicolumn(0);
+ file += tostr(cells_in_multicolumn(0));
file += "'";
}
file += ">";
file += "' VALIGN='middle'";
if (IsMultiColumn(cell+1)) {
file += " NAMEST='col";
- file += column_of_cell(cell+1) + 1;
+ file += tostr(column_of_cell(cell+1) + 1);
file += "' NAMEEND='col";
- file += column_of_cell(cell+1) +
- cells_in_multicolumn(cell+1);
+ file += tostr(column_of_cell(cell+1) +
+ cells_in_multicolumn(cell+1));
file += "'";
}
file += ">";
ret += 4;
#if 0
int row = row_of_cell(cell);
- LString hline1,hline2;
+ string hline1,hline2;
bool print_hline = true;
bool pr_top_hline,flag1,flag2;
flag1 = IsLongTable() &&
file += "' VALIGN='middle'";
if (IsMultiColumn(cell+1)) {
file += " NAMEST='col";
- file += column_of_cell(cell+1) + 1;
+ file += tostr(column_of_cell(cell+1) + 1);
file += "' NAMEEND='col";
- file += column_of_cell(cell+1) +
- cells_in_multicolumn(cell+1);
+ file += tostr(column_of_cell(cell+1) +
+ cells_in_multicolumn(cell+1));
file += "'";
}
file += ">";