From 31fcd84ca990ded6b96f0e3a82adc3f38d0cdb2c Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Thu, 10 Mar 2016 22:26:40 +0000 Subject: Rewrite all window icon-related Fl_Window API with the window driver approach. It seems this allows not to #include in the public header files. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11342 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- FL/Fl_Window.H | 25 ++----------------------- FL/Fl_Window_Driver.H | 7 +++++++ 2 files changed, 9 insertions(+), 23 deletions(-) (limited to 'FL') diff --git a/FL/Fl_Window.H b/FL/Fl_Window.H index 8884d0b67..63aa67ec0 100644 --- a/FL/Fl_Window.H +++ b/FL/Fl_Window.H @@ -23,7 +23,8 @@ #define Fl_Window_H #ifdef WIN32 -#include +//#include +typedef struct HICON__* HICON; #endif #include "Fl_Group.H" @@ -75,22 +76,6 @@ class FL_EXPORT Fl_Window : public Fl_Group { Fl_X *i; // points at the system-specific stuff, but exists only after the window is mapped Fl_Window_Driver *pWindowDriver; // points at the system-specific stuff at window creatino time - struct icon_data { - const void *legacy_icon; - Fl_RGB_Image **icons; - int count; -#ifdef WIN32 - HICON big_icon; - HICON small_icon; -#elif defined(__APPLE__) // PORTME: Fl_Window_Driver - per-window icons, move to FL_X/Fl_Window_Driver - // not needed -#elif defined(FL_PORTING) -# pragma message "FL_PORTING: define storage for per-window icons here if needed" -#else // X11 - // not needed -#endif - }; - const char* iconlabel_; char* xclass_; struct icon_data *icon_; @@ -422,12 +407,6 @@ public: #ifdef WIN32 static void default_icons(HICON big_icon, HICON small_icon); void icons(HICON big_icon, HICON small_icon); -#elif defined(__APPLE__) // PORTME: Fl_Window_Driver - per-window icon - // not needed -#elif defined(FL_PORTING) -# pragma message "FL_PORTING: define functions to handle window icons here if needed" -#else // X11 - // not needed #endif /* for legacy compatibility */ diff --git a/FL/Fl_Window_Driver.H b/FL/Fl_Window_Driver.H index 98934a3d4..2ab4bf192 100644 --- a/FL/Fl_Window_Driver.H +++ b/FL/Fl_Window_Driver.H @@ -36,8 +36,11 @@ class Fl_Image; */ class FL_EXPORT Fl_Window_Driver { friend class Fl_Window; + friend class Fl_X; protected: Fl_Window *pWindow; + struct icon_data; + icon_data *icon_; struct shape_data_type; shape_data_type *shape_data_; ///< non-null means the window has a non-rectangular shape public: @@ -55,6 +58,10 @@ public: void shape_pixmap_(Fl_Image* pixmap); virtual void shape(const Fl_Image* img) {} virtual void shape_alpha_(Fl_Image* img, int offset) {} + virtual void icons(const Fl_RGB_Image *icons[], int count) {} + virtual const void *icon() const {return NULL;} + virtual void icon(const void * ic) {} + virtual void free_icons() {} }; -- cgit v1.2.3