diff options
| author | Manolo Gouy <Manolo> | 2016-04-07 15:10:30 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2016-04-07 15:10:30 +0000 |
| commit | 23a60edb44d264887a398eef1b6346f8f24737e2 (patch) | |
| tree | ae6920a8b002dd26240f560d61df84888ba3b4a5 /FL/Fl_System_Driver.H | |
| parent | 406fcaf3053b2d8d9c8ea677c59667a7ec43a556 (diff) | |
Rewrite filename_list.cxx under the driver model.
One more platform-dependent type is necessary: struct dirent
Create a new header file, FL/platform_types.h, to define all
types whose definition is platform-dependent.
This file is for C because it is included by scandir_XXX.c
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11550 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'FL/Fl_System_Driver.H')
| -rw-r--r-- | FL/Fl_System_Driver.H | 50 |
1 files changed, 3 insertions, 47 deletions
diff --git a/FL/Fl_System_Driver.H b/FL/Fl_System_Driver.H index 9d5813e67..7984a6050 100644 --- a/FL/Fl_System_Driver.H +++ b/FL/Fl_System_Driver.H @@ -25,56 +25,10 @@ #define FL_SYSTEM_DRIVER_H #include <FL/Fl_Export.H> +#include <FL/platform_types.h> #include <stdio.h> #include <stdarg.h> -// platform-dependent types are declared here -#ifdef __APPLE__ -typedef struct CGContext* Fl_Offscreen; -typedef struct CGImage* Fl_Bitmask; -typedef struct flCocoaRegion* Fl_Region; -typedef int FL_SOCKET; -#include <sys/stat.h> - -#elif defined(WIN32) -typedef struct HBITMAP__ *HBITMAP; -typedef HBITMAP Fl_Offscreen; -typedef HBITMAP Fl_Bitmask; -typedef struct HRGN__ *Fl_Region; -# if defined(_WIN64) -typedef unsigned __int64 FL_SOCKET; -# else -typedef int FL_SOCKET; -# endif -#include <sys/stat.h> - -#elif defined(FL_PORTING) -# pragma message "FL_PORTING: define OS-dependent types" -typedef void* Fl_Offscreen; -typedef void* Fl_Bitmask; -typedef void *Fl_Region; -typedef int FL_SOCKET; -# pragma message "FL_PORTING: define struct stat and implement stat() for the platform" -struct stat { // the FLTK source code uses part of the stat() API - unsigned st_mode; - off_t st_size; -}; -#define S_IFMT 0170000 /* type of file */ -#define S_IFIFO 0010000 /* named pipe (fifo) */ -#define S_IFCHR 0020000 /* character special */ -#define S_IFDIR 0040000 /* directory */ -#define S_IFBLK 0060000 /* block special */ -#define S_IFREG 0100000 /* regular */ -#define S_IFLNK 0120000 /* symbolic link */ - -#else -typedef unsigned long Fl_Offscreen; -typedef unsigned long Fl_Bitmask; -typedef struct _XRegion *Fl_Region; -typedef int FL_SOCKET; -#include <sys/stat.h> - -#endif // __APPLE__ /** \brief A base class for platform-specific system operations. @@ -142,6 +96,8 @@ public: // implement functions telling whether a key is pressed virtual int event_key(int k) {return 0;} virtual int get_key(int k) {return 0;} + // implement scandir-like function + virtual int filename_list(const char *d, dirent ***list, int (*sort)(struct dirent **, struct dirent **) ) {return -1;} }; #endif // FL_SYSTEM_DRIVER_H |
