summaryrefslogtreecommitdiff
path: root/FL/Fl_System_Driver.H
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2016-04-07 15:10:30 +0000
committerManolo Gouy <Manolo>2016-04-07 15:10:30 +0000
commit23a60edb44d264887a398eef1b6346f8f24737e2 (patch)
treeae6920a8b002dd26240f560d61df84888ba3b4a5 /FL/Fl_System_Driver.H
parent406fcaf3053b2d8d9c8ea677c59667a7ec43a556 (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.H50
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