Avoid #include's of unrelated system headers in Fl_Table*.H.
Possible side effect: programs that relied upon inclusion of unrelated system headers by FL/Fl_Table.H or FL/Fl_Table_Row.H may fail to compile. Removed include files (some only on certain platforms, list may be incomplete): #include <FL/Fl.H> // moved to implementation (.cxx) #include <FL/Fl_Box.H> // moved to implementation (.cxx) #include <FL/Fl_Scrollbar.H> // moved to implementation (.cxx) #include <sys/types.h> #include <string.h> // memcpy #include <malloc.h> // WINDOWS only: malloc/realloc #include <stdlib.h> // UNIX: malloc/realloc git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12390 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
638fba6020
commit
2828cbde2c
@ -20,19 +20,8 @@
|
||||
#ifndef _FL_TABLE_H
|
||||
#define _FL_TABLE_H
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <string.h> // memcpy
|
||||
#ifdef WIN32
|
||||
#include <malloc.h> // WINDOWS: malloc/realloc
|
||||
#else /*WIN32*/
|
||||
#include <stdlib.h> // UNIX: malloc/realloc
|
||||
#endif /*WIN32*/
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Group.H>
|
||||
#include <FL/Fl_Scroll.H>
|
||||
#include <FL/Fl_Box.H>
|
||||
#include <FL/Fl_Scrollbar.H>
|
||||
|
||||
/**
|
||||
A table of widgets or other content.
|
||||
@ -172,16 +161,13 @@ private:
|
||||
int *arr;
|
||||
unsigned int _size;
|
||||
void init() {
|
||||
arr = NULL;
|
||||
arr = 0;
|
||||
_size = 0;
|
||||
}
|
||||
void copy(int *newarr, unsigned int newsize) {
|
||||
size(newsize);
|
||||
memcpy(arr, newarr, newsize * sizeof(int));
|
||||
}
|
||||
void copy(int *newarr, unsigned int newsize);
|
||||
public:
|
||||
IntVector() { init(); } // CTOR
|
||||
~IntVector() { if ( arr ) free(arr); arr = NULL; } // DTOR
|
||||
~IntVector(); // DTOR
|
||||
IntVector(IntVector&o) { init(); copy(o.arr, o._size); } // COPY CTOR
|
||||
IntVector& operator=(IntVector&o) { // ASSIGN
|
||||
init();
|
||||
@ -191,12 +177,7 @@ private:
|
||||
int operator[](int x) const { return(arr[x]); }
|
||||
int& operator[](int x) { return(arr[x]); }
|
||||
unsigned int size() { return(_size); }
|
||||
void size(unsigned int count) {
|
||||
if ( count != _size ) {
|
||||
arr = (int*)realloc(arr, count * sizeof(int));
|
||||
_size = count;
|
||||
}
|
||||
}
|
||||
void size(unsigned int count);
|
||||
int pop_back() { int tmp = arr[_size-1]; _size--; return(tmp); }
|
||||
void push_back(int val) { unsigned int x = _size; size(_size+1); arr[x] = val; }
|
||||
int back() { return(arr[_size-1]); }
|
||||
|
@ -22,7 +22,7 @@
|
||||
// Please report all bugs and problems to "erco at seriss dot com".
|
||||
//
|
||||
|
||||
#include "Fl_Table.H"
|
||||
#include <FL/Fl_Table.H>
|
||||
|
||||
/**
|
||||
A table with row selection capabilities.
|
||||
@ -54,21 +54,15 @@ private:
|
||||
char *arr;
|
||||
int _size;
|
||||
void init() {
|
||||
arr = NULL;
|
||||
arr = 0;
|
||||
_size = 0;
|
||||
}
|
||||
void copy(char *newarr, int newsize) {
|
||||
size(newsize);
|
||||
memcpy(arr, newarr, newsize * sizeof(char));
|
||||
}
|
||||
void copy(char *newarr, int newsize);
|
||||
public:
|
||||
CharVector() { // CTOR
|
||||
init();
|
||||
}
|
||||
~CharVector() { // DTOR
|
||||
if ( arr ) free(arr);
|
||||
arr = NULL;
|
||||
}
|
||||
~CharVector(); // DTOR
|
||||
CharVector(CharVector&o) { // COPY CTOR
|
||||
init();
|
||||
copy(o.arr, o._size);
|
||||
@ -87,12 +81,7 @@ private:
|
||||
int size() {
|
||||
return(_size);
|
||||
}
|
||||
void size(int count) {
|
||||
if ( count != _size ) {
|
||||
arr = (char*)realloc(arr, count * sizeof(char));
|
||||
_size = count;
|
||||
}
|
||||
}
|
||||
void size(int count);
|
||||
char pop_back() {
|
||||
char tmp = arr[_size-1];
|
||||
_size--;
|
||||
@ -107,6 +96,7 @@ private:
|
||||
return(arr[_size-1]);
|
||||
}
|
||||
};
|
||||
|
||||
CharVector _rowselect; // selection flag for each row
|
||||
|
||||
// handle() state variables.
|
||||
|
@ -17,13 +17,42 @@
|
||||
// http://www.fltk.org/str.php
|
||||
//
|
||||
|
||||
#include <stdio.h> // fprintf
|
||||
#include <FL/fl_draw.H>
|
||||
#include <FL/Fl_Table.H>
|
||||
|
||||
#if defined(USE_UTF8) && ( defined(MICROSOFT) || defined(LINUX) )
|
||||
#include <FL/fl_utf8.H> // currently only Windows and Linux
|
||||
#endif
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/fl_draw.H>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <string.h> // memcpy
|
||||
#include <stdio.h> // fprintf
|
||||
|
||||
#ifdef WIN32
|
||||
#include <malloc.h> // WINDOWS: malloc/realloc
|
||||
#else /*WIN32*/
|
||||
#include <stdlib.h> // UNIX: malloc/realloc
|
||||
#endif /*WIN32*/
|
||||
|
||||
|
||||
// An STL-ish vector without templates (private to Fl_Table)
|
||||
|
||||
void Fl_Table::IntVector::copy(int *newarr, unsigned int newsize) {
|
||||
size(newsize);
|
||||
memcpy(arr, newarr, newsize * sizeof(int));
|
||||
}
|
||||
|
||||
Fl_Table::IntVector::~IntVector() { // DTOR
|
||||
if (arr)
|
||||
free(arr);
|
||||
arr = 0;
|
||||
}
|
||||
|
||||
void Fl_Table::IntVector::size(unsigned int count) {
|
||||
if (count != _size) {
|
||||
arr = (int*)realloc(arr, count * sizeof(int));
|
||||
_size = count;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** Sets the vertical scroll position so 'row' is at the top,
|
||||
and causes the screen to redraw.
|
||||
|
@ -24,10 +24,40 @@
|
||||
// o Row headings (only column headings supported currently)
|
||||
//
|
||||
|
||||
#include <stdio.h> // for debugging
|
||||
#include <FL/Fl_Table_Row.H>
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/fl_draw.H>
|
||||
#include <FL/Fl_Table_Row.H>
|
||||
|
||||
// for debugging...
|
||||
// #define DEBUG 1
|
||||
#ifdef DEBUG
|
||||
#include <FL/names.h>
|
||||
#include <stdio.h> // fprintf()
|
||||
#define PRINTEVENT \
|
||||
fprintf(stderr,"TableRow %s: ** Event: %s --\n", (label()?label():"none"), fl_eventnames[event]);
|
||||
#else
|
||||
#define PRINTEVENT
|
||||
#endif
|
||||
|
||||
// An STL-ish vector without templates (private to Fl_Table_Row)
|
||||
|
||||
void Fl_Table_Row::CharVector::copy(char *newarr, int newsize) {
|
||||
size(newsize);
|
||||
memcpy(arr, newarr, newsize * sizeof(char));
|
||||
}
|
||||
|
||||
Fl_Table_Row::CharVector::~CharVector() { // DTOR
|
||||
if (arr) free(arr);
|
||||
arr = 0;
|
||||
}
|
||||
|
||||
void Fl_Table_Row::CharVector::size(int count) {
|
||||
if (count != _size) {
|
||||
arr = (char*)realloc(arr, count * sizeof(char));
|
||||
_size = count;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Is row selected?
|
||||
int Fl_Table_Row::row_selected(int row) {
|
||||
@ -155,15 +185,6 @@ void Fl_Table_Row::rows(int val) {
|
||||
while ( val < (int)_rowselect.size() ) { _rowselect.pop_back(); } // shrink
|
||||
}
|
||||
|
||||
//#define DEBUG 1
|
||||
#ifdef DEBUG
|
||||
#include <FL/names.h>
|
||||
#define PRINTEVENT \
|
||||
fprintf(stderr,"TableRow %s: ** Event: %s --\n", (label()?label():"none"), fl_eventnames[event]);
|
||||
#else
|
||||
#define PRINTEVENT
|
||||
#endif
|
||||
|
||||
// Handle events
|
||||
int Fl_Table_Row::handle(int event) {
|
||||
PRINTEVENT;
|
||||
|
Loading…
Reference in New Issue
Block a user