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/platform_types.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/platform_types.h')
| -rw-r--r-- | FL/platform_types.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/FL/platform_types.h b/FL/platform_types.h new file mode 100644 index 000000000..bd3d9e7f1 --- /dev/null +++ b/FL/platform_types.h @@ -0,0 +1,83 @@ +/* + * "$Id: platform_types.h 11467 2016-03-29 19:41:14Z manolo $" + * + * Copyright 2016 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 + * file is missing or damaged, see the license at: + * + * http://www.fltk.org/COPYING.php + * + * Please report all bugs and problems on the following page: + * + * http://www.fltk.org/str.php + */ + +#ifndef PLATFORM_TYPES_H +#define PLATFORM_TYPES_H + +/* Platform-dependent types are defined here + These types must be defined by any platform: + Fl_Offscreen, Fl_Bitmask, Fl_Region, FL_SOCKET, struct dirent, struct stat + */ + +#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> +#include <sys/types.h> +#include <dirent.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> +struct dirent {char d_name[1];}; + +#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 dirent and implement scandir() for the platform" +struct dirent {char d_name[1];}; +# 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> +#include <sys/types.h> +#include <dirent.h> + +#endif // __APPLE__ + +#endif /* PLATFORM_TYPES_H */ + +/* + * End of "$Id: platform_types.h 11467 2016-03-29 19:41:14Z manolo $". + */ |
