summaryrefslogtreecommitdiff
path: root/FL/Fl_Table.H
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2023-10-22 19:30:37 +0200
committerAlbrecht Schlosser <albrechts.fltk@online.de>2023-10-22 19:35:17 +0200
commit1209e9dcd7e1e97bedc747d06ba4eea837562158 (patch)
tree7897d3c61368958f191bfe684b96d1d08467a2bb /FL/Fl_Table.H
parent05ac0247cbd902f910fa89f8d4f4fde9de904b0f (diff)
Make Fl_String and Fl_Int_Vector private (#789)
- add CMake option 'OPTION_USE_STD' - add configure option '--enable-use_std' - move FL/Fl_String.H to src/Fl_String.H - move FL/Fl_Int_Vector.H to src/Fl_Int_Vector.H - remove Fl_String from demo program examples/callbacks.cxx - remove Fl_Int_Vector from public header FL/Fl_Table.H - some methods of Fl_Table are no longer inline - add CMake option OPTION_USE_STD to allow std::string in some selected functions and methods Experimental, may be removed before release: - use either Fl_Int_Vector or std::vector in Fl_Table depending on CMake OPTION_USE_STD or configure --enable-use_std Move all fl_filename* functions that use Fl_String to fluid Main changes in fluid: - add fluid_filename.h and .cxx - include "fluid_filename.h" rather than <FL/filename.H> Update fl_input(), fl_password() and test/ask - add maxchar parameter to fl_input() and fl_password() - fl_input_str() and fl_password_str() are optional and return std::string if enabled (FLTK_USE_STD)
Diffstat (limited to 'FL/Fl_Table.H')
-rw-r--r--FL/Fl_Table.H46
1 files changed, 27 insertions, 19 deletions
diff --git a/FL/Fl_Table.H b/FL/Fl_Table.H
index 9f31fa020..1adc29255 100644
--- a/FL/Fl_Table.H
+++ b/FL/Fl_Table.H
@@ -3,6 +3,7 @@
//
// Copyright 2002 by Greg Ercolano.
// Copyright (c) 2004 O'ksi'D
+// Copyright 2023 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -20,7 +21,18 @@
#include <FL/Fl_Group.H>
#include <FL/Fl_Scroll.H>
-#include <FL/Fl_Int_Vector.H>
+
+// EXPERIMENTAL
+// We use either std::vector or the private class Fl_Int_Vector
+// depending on the build option OPTION_USE_STD or --enable-use_std.
+// This option allows to use std::string and std::vector in FLTK 1.4.x
+
+#if (FLTK_USE_STD)
+#include <vector>
+typedef std::vector<int> Fl_Int_Vector;
+#else
+class Fl_Int_Vector; // private class declared in src/Fl_Int_Vector.H
+#endif
/**
A table of widgets or other content.
@@ -155,8 +167,12 @@ private:
};
unsigned int flags_;
- Fl_Int_Vector _colwidths; // column widths in pixels
- Fl_Int_Vector _rowheights; // row heights in pixels
+ Fl_Int_Vector *_colwidths; // column widths in pixels
+ Fl_Int_Vector *_rowheights; // row heights in pixels
+
+ // number of columns and rows == size of corresponding vectors
+ int col_size(); // size of the column widths vector
+ int row_size(); // size of the row heights vector
Fl_Cursor _last_cursor; // last mouse cursor before changed to 'resize' cursor
@@ -433,7 +449,7 @@ public:
return(table->box());
}
- virtual void rows(int val); // set/get number of rows
+ virtual void rows(int val); // set number of rows
/**
Returns the number of rows in the table.
@@ -442,7 +458,7 @@ public:
return(_rows);
}
- virtual void cols(int val); // set/get number of columns
+ virtual void cols(int val); // set number of columns
/**
Get the number of columns in the table.
@@ -656,23 +672,15 @@ public:
return(_col_header_color);
}
- void row_height(int row, int height); // set/get row height
+ void row_height(int row, int height); // set row height in pixels
- /**
- Returns the current height of the specified row as a value in pixels.
- */
- inline int row_height(int row) {
- return((row<0 || row>=(int)_rowheights.size()) ? 0 : _rowheights[row]);
- }
+ // Returns the current height of the specified row as a value in pixels.
+ int row_height(int row);
- void col_width(int col, int width); // set/get a column's width
+ void col_width(int col, int width); // set a column's width in pixels
- /**
- Returns the current width of the specified column in pixels.
- */
- inline int col_width(int col) {
- return((col<0 || col>=(int)_colwidths.size()) ? 0 : _colwidths[col]);
- }
+ // Returns the current width of the specified column in pixels.
+ int col_width(int col);
/**
Convenience method to set the height of all rows to the