Removed macro FL_PORTING, as it has been more confusing than helpful.

The original intention of FL_PORTING was to mark all places in the
source code where changes are required to port FLTK to a new platform.
Thanks to the driver system, this approach has become somewhat
misleading, so I removed all references.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12969 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Matthias Melcher 2018-06-23 17:04:18 +00:00
parent a9fd08ff5a
commit b1598dc703
24 changed files with 5 additions and 493 deletions

View File

@ -115,7 +115,6 @@ if (OPTION_APPLE_SDL)
find_package (SDL2 REQUIRED)
if (SDL2_FOUND)
set (USE_SDL 1)
set (FL_PORTING 1)
list (APPEND FLTK_LDLIBS SDL2_LIBRARY)
endif (SDL2_FOUND)
endif (OPTION_APPLE_SDL)

View File

@ -100,8 +100,8 @@ if(APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.8")
endif(${CMAKE_SYSTEM_VERSION} VERSION_GREATER 16.9.0)
elseif(OPTION_APPLE_SDL)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SDL2_INCLUDE_DIRS} -U__APPLE__ -DFL_PORTING")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SDL2_INCLUDE_DIRS} -U__APPLE__ -DFL_PORTING")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SDL2_INCLUDE_DIRS} -U__APPLE__")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SDL2_INCLUDE_DIRS} -U__APPLE__")
else()
set(__APPLE_QUARTZ__ 1)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa")

View File

@ -26,10 +26,6 @@
#ifndef Fl_Gl_Window_Driver_H
#define Fl_Gl_Window_Driver_H
#if defined(FL_PORTING)
# pragma message "FL_PORTING: please, derive and implement the Fl_Gl_Window_Driver class for your platform"
#endif
#include <FL/Fl_Gl_Window.H>
class Fl_Gl_Choice;

View File

@ -136,9 +136,6 @@ public:
virtual void release_keyboard() { }
// read raw image from a window or an offscreen buffer
#if defined(FL_PORTING)
# pragma message "FL_PORTING: implement code to read RGB data from screen"
#endif
/* Member function read_win_rectangle() supports the public function
fl_read_image() which captures pixel data either from
the current window or from an offscreen buffer.

View File

@ -187,9 +187,6 @@ public:
// --- window printing/drawing helper
virtual void capture_titlebar_and_borders(Fl_RGB_Image*& top, Fl_RGB_Image*& left,
Fl_RGB_Image*& bottom, Fl_RGB_Image*& right);
#if defined(FL_PORTING)
# pragma message "FL_PORTING: implement scrolling of the screen contents"
#endif
virtual int scroll(int src_x, int src_y, int src_w, int src_h, int dest_x, int dest_y,
void (*draw_area)(void*, int,int,int,int), void* data) { return 0; }
static inline Fl_Window_Driver* driver(const Fl_Window *win) {return win->pWindowDriver;}

View File

@ -39,12 +39,6 @@ class Fl_Window;
# include "win32.H"
# elif defined(__APPLE__)
# include "mac.H"
# elif defined(USE_SDL)
# pragma message "FL_PORTING: write a header file based on this file, win32.H, or mac.H to define the FLTK core internals"
# include "porting.H"
# elif defined(FL_PORTING)
# pragma message "FL_PORTING: write a header file based on this file, win32.H, or mac.H to define the FLTK core internals"
# include "porting.H"
# elif defined(__ANDROID__)
# include "android.H"
# else // X11

View File

@ -134,24 +134,6 @@ typedef struct __GLXcontextRec *GLContext;
#include <sys/types.h>
#include <dirent.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;
typedef void *GLContext;
# 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 Fl_XXX_System_Driver::stat() for the platform"
struct stat { /* the FLTK source code uses part of the stat() API */
unsigned st_mode;
unsigned st_size;
};
#define S_IFDIR 0040000 /* directory */
#define S_IFREG 0100000 /* regular */
#else /* X11 */
typedef unsigned long Fl_Offscreen;

View File

@ -1,38 +0,0 @@
//
// "$Id$"
//
// Template header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 2016-2018 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
//
// Do not directly include this file, instead use <FL/platform.H>.
// These types and variables give access to internal, platform-specific data through the public API.
// They require to include platform.H (in contrast to types defined in platform_types.h)
#if !defined(FL_PLATFORM_H)
# error "Never use <FL/porting.H> directly; include <FL/platform.H> instead."
#endif // !FL_PLATFORM_H
typedef void *Window; // used by fl_find(), fl_xid() and class Fl_X
/* Reference to the current device context
For back-compatibility only. The preferred procedure to get this reference is
Fl_Surface_Device::surface()->driver()->gc().
*/
extern void *fl_gc;
//
// End of "$Id$".
//

View File

@ -32,8 +32,6 @@
# include <cairo-win32.h>
#elif defined(__APPLE_QUARTZ__) // PORTME: Cairo Support
# include <cairo-quartz.h>
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: is the Cairo library available on this platform?"
#else
# error Cairo is not supported on this platform.
#endif

View File

@ -176,15 +176,6 @@
#cmakedefine USE_SDL 1
/*
* FL_PORTING
*
* A little helper that points to locations in the core that still need
* to be ported to the core driver setup.
*/
#cmakedefine FL_PORTING 1
/*
* HAVE_OVERLAY:
*

View File

@ -176,16 +176,6 @@
#undef USE_SDL
/*
* FL_PORTING
*
* A little helper that points to locations in the core that still need
* to be ported to the core driver setup.
* *FIXME* Not yet implemented in configure !
*/
#undef FL_PORTING
/*
* HAVE_OVERLAY:
*

View File

@ -64,11 +64,6 @@
#endif // FL_CFG_GFX_GDI
#if defined(FL_PORTING) && !defined(FL_GL_CHOICE_PLATFORM_SPECIFIC_MEMBERS)
# pragma message "Define platform-specific members of the Fl_Gl_Choice class"
# define FL_GL_CHOICE_PLATFORM_SPECIFIC_MEMBERS
#endif
// Describes crap needed to create a GLContext.
class Fl_Gl_Choice {
friend class Fl_Gl_Window_Driver;

View File

@ -20,11 +20,6 @@
#include <FL/Fl_Printer.H>
#include <config.h>
#ifdef FL_PORTING
# pragma message "FL_PORTING: implement print support for your platform, or define FL_NO_PRINT_SUPPORT"
#define FL_NO_PRINT_SUPPORT 1
#endif
#if defined(FL_NO_PRINT_SUPPORT)
#include <FL/Fl_PostScript.H>

View File

@ -1,342 +0,0 @@
//
// "$Id$"
//
// core code stubs for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2015 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 FL_DOXYGEN
#include <FL/Fl.H>
#include <FL/fl_utf8.h>
#include <FL/Fl_Window.H>
#include <FL/fl_draw.H>
#include <FL/Enumerations.H>
#include <FL/Fl_Tooltip.H>
#include <FL/Fl_Paged_Device.H>
#include "flstring.h"
#include "Fl_Font.H"
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <time.h>
#include <signal.h>
extern unsigned int fl_codepage;
Fl_Fontdesc* fl_fonts = NULL;
void *fl_gc = NULL;
Window fl_window = NULL;
void fl_set_status(int x, int y, int w, int h)
{
# pragma message "FL_PORTING: implement fl_set_status"
}
void Fl::add_fd(int n, int events, void (*cb)(FL_SOCKET, void*), void *v) {
# pragma message "FL_PORTING: implement Fl::add_fd"
}
void Fl::add_fd(int fd, void (*cb)(FL_SOCKET, void*), void* v) {
# pragma message "FL_PORTING: implement Fl::add_fd"
}
void Fl::remove_fd(int n, int events) {
# pragma message "FL_PORTING: implement Fl::remove_fd"
}
void Fl::remove_fd(int n) {
# pragma message "FL_PORTING: implement Fl::remove_fd"
}
static void nothing() {}
void (*fl_lock_function)() = nothing;
void (*fl_unlock_function)() = nothing;
//void* Fl::thread_message() {
//# pragma message "FL_PORTING: implement Fl::thread_message"
//}
int fl_wait(double time_to_wait) {
# pragma message "FL_PORTING: implement fl_wait"
Fl::flush();
return 0;
}
int fl_ready() {
# pragma message "FL_PORTING: implement fl_ready"
return 0;
}
void fl_open_display() {
# pragma message "FL_PORTING: implement fl_open_display()"
}
void Fl::enable_im() {
# pragma message "FL_PORTING: implement Fl::enable_im"
}
void Fl::disable_im() {
# pragma message "FL_PORTING: implement Fl::disable_im"
}
int Fl::x()
{
# pragma message "FL_PORTING: implement Fl::x"
return 0;
}
int Fl::y()
{
# pragma message "FL_PORTING: implement Fl::y"
return 0;
}
int Fl::h()
{
# pragma message "FL_PORTING: implement Fl::h"
return 600;
}
int Fl::w()
{
# pragma message "FL_PORTING: implement Fl::w"
return 800;
}
char *fl_selection_buffer[2];
int fl_selection_length[2];
int fl_selection_buffer_length[2];
char fl_i_own_selection[2];
void fl_update_clipboard(void) {
# pragma message "FL_PORTING: implement fl_update_clipboard"
}
// call this when you create a selection:
void Fl::copy(const char *stuff, int len, int clipboard, const char *type) {
# pragma message "FL_PORTING: implement Fl::copy"
}
// Call this when a "paste" operation happens:
void Fl::paste(Fl_Widget &receiver, int clipboard, const char *type) {
# pragma message "FL_PORTING: implement Fl::paste"
}
int Fl::clipboard_contains(const char *type)
{
# pragma message "FL_PORTING: implement Fl::clipboard_contains"
return 0;
}
void fl_get_codepage()
{
# pragma message "FL_PORTING: implement fl_get_codepage"
}
int Fl_X::fake_X_wm(const Fl_Window* w,int &X,int &Y, int &bt,int &bx, int &by) {
# pragma message "FL_PORTING: don't ask. We do't know either..."
return 0;
}
void Fl_Window::resize(int X,int Y,int W,int H) {
# pragma message "FL_PORTING: implement Fl_Window::resize"
}
//void Fl_X::make_fullscreen(int X, int Y, int W, int H) {
//# pragma message "FL_PORTING: implement Fl_X::make_fullscreen"
//}
void Fl_Window::fullscreen_x() {
# pragma message "FL_PORTING: implement Fl_Window::fullscreen_x"
}
void Fl_Window::fullscreen_off_x(int X, int Y, int W, int H) {
# pragma message "FL_PORTING: implement Fl_Window::fullscreen_off_x"
}
void fl_fix_focus(); // in Fl.cxx
char fl_show_iconic;
int fl_disable_transient_for; // secret method of removing TRANSIENT_FOR
Fl_X* Fl_X::make(Fl_Window* w) {
# pragma message "FL_PORTING: implement Fl_X::make"
return 0;
}
void Fl::add_timeout(double time, Fl_Timeout_Handler cb, void* data)
{
# pragma message "FL_PORTING: implement Fl::add_timeout"
}
void Fl::repeat_timeout(double time, Fl_Timeout_Handler cb, void* data)
{
# pragma message "FL_PORTING: implement Fl::repeat_timeout"
}
int Fl::has_timeout(Fl_Timeout_Handler cb, void* data)
{
# pragma message "FL_PORTING: implement Fl::has_timeout"
return 0;
}
void Fl::remove_timeout(Fl_Timeout_Handler cb, void* data)
{
# pragma message "FL_PORTING: implement Fl::remove_timeout"
}
void Fl_Window::size_range_() {
size_range_set = 1;
}
#include <FL/filename.H> // need so FL_EXPORT fl_filename_name works
// returns pointer to the filename, or null if name ends with '/'
const char *fl_filename_name(const char *name) {
# pragma message "FL_PORTING: implement fl_filename_name"
return 0;
}
void Fl_Window::label(const char *name,const char *iname) {
# pragma message "FL_PORTING: implement Fl_Window::label"
}
void Fl_X::set_default_icons(const Fl_RGB_Image *icons[], int count) {
# pragma message "FL_PORTING: implement Fl_X::set_defult_icons"
}
void Fl_X::set_icons() {
# pragma message "FL_PORTING: implement Fl_X::set_icons"
}
int Fl_X::set_cursor(Fl_Cursor c) {
# pragma message "FL_PORTING: implement Fl_X::set_cursor"
return 1;
}
int Fl_X::set_cursor(const Fl_RGB_Image *image, int hotx, int hoty) {
# pragma message "FL_PORTING: implement Fl_X::set_cursor"
return 1;
}
void Fl_Window::show() {
# pragma message "FL_PORTING: implement Fl_Window::show"
}
Fl_Window *Fl_Window::current_;
void Fl_Window::make_current() {
# pragma message "FL_PORTING: implement Fl_Window::make_current"
}
void fl_free_fonts(void)
{
# pragma message "FL_PORTING: implement fl_free_fonts"
}
//Fl_Region XRectangleRegion(int x, int y, int w, int h) {
//}
FL_EXPORT Window fl_xid_(const Fl_Window *w) {
Fl_X *temp = Fl_X::i(w);
return temp ? temp->xid : 0;
}
int Fl_Window::decorated_w()
{
return w();
}
int Fl_Window::decorated_h()
{
return h();
}
void Fl_Paged_Device::print_window(Fl_Window *win, int x_offset, int y_offset)
{
# pragma message "FL_PORTING: implement Fl_Paged_Device::print_window"
}
//void Fl_Paged_Device::draw_decorated_window(Fl_Window *win, int x_offset, int y_offset, Fl_Surface_Device *toset)
//{
//}
Fl_Bitmask fl_create_bitmask(int w, int h, const uchar *data)
{
# pragma message "FL_PORTING: implement fl_create_bitmask"
return 0;
}
//Fl_Bitmask fl_create_alphamask(int w, int h, int d, int ld, const uchar *data)
//{
//# pragma message "FL_PORTING: implement fl_create_alphamask"
// return 0;
//}
void fl_delete_bitmask(Fl_Bitmask bm)
{
# pragma message "FL_PORTING: implement fl_delete_bitmask"
}
Fl_Offscreen fl_create_offscreen(int w, int h)
{
# pragma message "FL_PORTING: implement fl_create_offscreen"
return 0;
}
//void fl_copy_offscreen(int x,int y,int w,int h, Fl_Offscreen gWorld, int srcx,int srcy)
//{
//# pragma message "FL_PORTING: implement fl_copy_offscreen"
//}
void fl_delete_offscreen(Fl_Offscreen gWorld)
{
# pragma message "FL_PORTING: implement fl_delete_offscreen"
}
void fl_begin_offscreen(Fl_Offscreen gWorld)
{
# pragma message "FL_PORTING: implement fl_begin_offscreen"
}
void fl_end_offscreen()
{
# pragma message "FL_PORTING: implement fl_end_offscreen"
}
Fl_Font_Descriptor::~Fl_Font_Descriptor()
{
# pragma message "FL_PORTING: implement Fl_Font_Descriptor::~Fl_Font_Descriptor"
}
int Fl::dnd()
{
# pragma message "FL_PORTING: implement Fl::dnd"
return 0;
}
void Fl::get_mouse(int &x, int &y)
{
# pragma message "FL_PORTING: implement Fl::get_mouse"
x = 0; y = 0;
}
#endif // FL_DOXYGEN
//
// End of "$Id$".
//

View File

@ -25,8 +25,6 @@
# ifdef HAVE_GL
# define FL_CFG_GFX_OPENGL
# endif
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: please choose a core graphics library"
#elif defined(USE_X11) /* X11 */
# define FL_CFG_GFX_XLIB
# ifdef HAVE_GL
@ -44,8 +42,6 @@
# define FL_CFG_PRN_QUARTZ
#elif defined(_WIN32)
# define FL_CFG_PRN_WIN32
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: please choose a printer driver"
#elif defined(USE_X11) /* X11 */
# define FL_CFG_PRN_PS
#endif
@ -60,8 +56,6 @@
# define FL_CFG_WIN_COCOA
#elif defined(_WIN32)
# define FL_CFG_WIN_WIN32
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: please choose a window management library"
#elif defined(USE_X11) /* X11 */
# define FL_CFG_WIN_X11
#endif
@ -76,8 +70,6 @@
# define FL_CFG_SYS_POSIX
#elif defined(_WIN32)
# define FL_CFG_SYS_WIN32
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: please choose a system library"
#elif defined(USE_X11) /* X11 */
# define FL_CFG_SYS_POSIX
#endif

View File

@ -93,10 +93,6 @@ Fl_RGB_Image* Fl_OpenGL_Display_Device::capture_gl_rectangle(Fl_Gl_Window* glw,
#else
#if defined(FL_PORTING)
# pragma message "FL_PORTING: check whether the default Fl_OpenGL_Display_Device::capture_gl_rectangle() works for your platform"
#endif
#include <FL/Fl_Screen_Driver.H>
#include <FL/Fl_Window_Driver.H>
Fl_RGB_Image* Fl_OpenGL_Display_Device::capture_gl_rectangle(Fl_Gl_Window *glw, int x, int y, int w, int h)

View File

@ -81,7 +81,6 @@ class Fl_Pico_Graphics_Driver : public Fl_Graphics_Driver {
//#endif
// matrix *fl_matrix; /**< Points to the current coordinate transformation matrix */
//
// // === all code below in this class has been to the reorganisation FL_PORTING process
//public:
// Fl_Graphics_Driver();
// virtual ~Fl_Graphics_Driver() { if (p) free(p); }

View File

@ -37,12 +37,6 @@
* Microsoft(r) Windows(r) that allows for it.
*/
#if defined(_WIN32) || defined(__APPLE__) /* PORTME: Fl_System_Driver - platform main() */
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: implement 'main()' here if your platform provides another app entry point"
#else
#endif
#if defined(_WIN32) && !defined(FL_DLL) && !defined (__GNUC__)
# include <windows.h>

View File

@ -32,9 +32,6 @@
*/
#include "config_lib.h"
#if defined(FL_PORTING)
# pragma message "FL_PORTING: implement OpenGL text rendering here"
#endif // defined(FL_PORTING)
#if HAVE_GL || defined(FL_DOXYGEN)

View File

@ -20,10 +20,6 @@
/* not needed */
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: include the character encoding file below if needed"
#else
#ifndef CP936

View File

@ -34,12 +34,6 @@
// Audio headers...
#include <config.h>
#if defined(_WIN32) || defined(__APPLE__)
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: FLTK does not provide cross platform sound support"
#else
#endif
#ifndef _WIN32
# include <unistd.h>
# include <sys/time.h> // gettimeofday()

View File

@ -28,7 +28,7 @@
#include <stdlib.h>
#include <stdio.h>
#if !defined(_WIN32) && !defined(__APPLE__) && !defined(FL_PORTING) && !defined(__ANDROID__)
#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__ANDROID__)
#include "list_visuals.cxx"
#endif
@ -114,7 +114,7 @@ int main(int argc, char ** argv) {
" - : default visual\n"
" r : call Fl::visual(FL_RGB)\n"
" c : call Fl::own_colormap()\n",argv[0]);
#if !defined(_WIN32) && !defined(__APPLE__) && !defined(FL_PORTING) && !defined(__ANDROID__)
#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__ANDROID__)
printf(" # : use this visual with an empty colormap:\n");
list_visuals();
#endif
@ -127,7 +127,7 @@ int main(int argc, char ** argv) {
} else if (argv[i][0] == 'c') {
Fl::own_colormap();
} else if (argv[i][0] != '-') {
#if !defined(_WIN32) && !defined(__APPLE__) && !defined(FL_PORTING) && !defined(__ANDROID__)
#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__ANDROID__)
int visid = atoi(argv[i]);
fl_open_display();
XVisualInfo templt; int num;

View File

@ -33,10 +33,6 @@ int main(int, char**) {
return 1;
}
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: list_visuals"
#else
#include <config.h>

View File

@ -46,12 +46,6 @@
# include <unistd.h>
#endif // !_WIN32
#if defined(_WIN32) || defined(__APPLE__)
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: FLTK does not provide cross platform sound support"
#else
#endif
#ifdef HAVE_ALSA_ASOUNDLIB_H
# define ALSA_PCM_NEW_HW_PARAMS_API
# include <alsa/asoundlib.h>