From 13e7d7639729cc0fb9b778ecd2e45d407d45d393 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Mon, 19 Nov 2001 20:59:59 +0000 Subject: [PATCH] WIN32 fixes for the new image stuff... git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1705 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- FL/Fl_GIF_Image.H | 5 +- FL/Fl_JPEG_Image.H | 5 +- FL/Fl_PNG_Image.H | 5 +- FL/win32.H | 6 +- documentation/Fl_File_Chooser.gif | Bin 10760 -> 150 bytes documentation/Fl_Help_Dialog.gif | Bin 12984 -> 112 bytes src/Fl_Bitmap.cxx | 99 ++++++++++++++++++++++++++++-- src/Fl_Image.cxx | 10 +-- src/Fl_Pixmap.cxx | 18 +++--- src/Fl_win32.cxx | 5 +- src/fl_draw.cxx | 6 +- visualc/fltk.lib.dsp | 24 ++++++-- visualc/fltkdll.dsp | 89 +++++++++++++++++++++++++++ 13 files changed, 232 insertions(+), 40 deletions(-) diff --git a/FL/Fl_GIF_Image.H b/FL/Fl_GIF_Image.H index 53d01262a..259d2ec1a 100644 --- a/FL/Fl_GIF_Image.H +++ b/FL/Fl_GIF_Image.H @@ -1,5 +1,5 @@ // -// "$Id: Fl_GIF_Image.H,v 1.1.2.1 2001/11/19 01:06:45 easysw Exp $" +// "$Id: Fl_GIF_Image.H,v 1.1.2.2 2001/11/19 20:59:58 easysw Exp $" // // GIF image header file for the Fast Light Tool Kit (FLTK). // @@ -32,11 +32,10 @@ class FL_EXPORT Fl_GIF_Image : public Fl_Pixmap { public: Fl_GIF_Image(const char* filename); - virtual ~Fl_GIF_Image(); }; #endif // -// End of "$Id: Fl_GIF_Image.H,v 1.1.2.1 2001/11/19 01:06:45 easysw Exp $". +// End of "$Id: Fl_GIF_Image.H,v 1.1.2.2 2001/11/19 20:59:58 easysw Exp $". // diff --git a/FL/Fl_JPEG_Image.H b/FL/Fl_JPEG_Image.H index ff53136f6..007f81635 100644 --- a/FL/Fl_JPEG_Image.H +++ b/FL/Fl_JPEG_Image.H @@ -1,5 +1,5 @@ // -// "$Id: Fl_JPEG_Image.H,v 1.1.2.1 2001/11/19 01:06:45 easysw Exp $" +// "$Id: Fl_JPEG_Image.H,v 1.1.2.2 2001/11/19 20:59:59 easysw Exp $" // // JPEG image header file for the Fast Light Tool Kit (FLTK). // @@ -32,11 +32,10 @@ class FL_EXPORT Fl_JPEG_Image : public Fl_RGB_Image { public: Fl_JPEG_Image(const char* filename); - virtual ~Fl_JPEG_Image(); }; #endif // -// End of "$Id: Fl_JPEG_Image.H,v 1.1.2.1 2001/11/19 01:06:45 easysw Exp $". +// End of "$Id: Fl_JPEG_Image.H,v 1.1.2.2 2001/11/19 20:59:59 easysw Exp $". // diff --git a/FL/Fl_PNG_Image.H b/FL/Fl_PNG_Image.H index f578c8549..0b220b5ca 100644 --- a/FL/Fl_PNG_Image.H +++ b/FL/Fl_PNG_Image.H @@ -1,5 +1,5 @@ // -// "$Id: Fl_PNG_Image.H,v 1.1.2.1 2001/11/19 01:06:45 easysw Exp $" +// "$Id: Fl_PNG_Image.H,v 1.1.2.2 2001/11/19 20:59:59 easysw Exp $" // // PNG image header file for the Fast Light Tool Kit (FLTK). // @@ -32,11 +32,10 @@ class FL_EXPORT Fl_PNG_Image : public Fl_RGB_Image { public: Fl_PNG_Image(const char* filename); - virtual ~Fl_PNG_Image(); }; #endif // -// End of "$Id: Fl_PNG_Image.H,v 1.1.2.1 2001/11/19 01:06:45 easysw Exp $". +// End of "$Id: Fl_PNG_Image.H,v 1.1.2.2 2001/11/19 20:59:59 easysw Exp $". // diff --git a/FL/win32.H b/FL/win32.H index 92e97452f..5927dccb1 100644 --- a/FL/win32.H +++ b/FL/win32.H @@ -1,5 +1,5 @@ // -// "$Id: win32.H,v 1.15.2.3.2.1 2001/11/18 20:52:27 easysw Exp $" +// "$Id: win32.H,v 1.15.2.3.2.2 2001/11/19 20:59:59 easysw Exp $" // // WIN32 header file for the Fast Light Tool Kit (FLTK). // @@ -126,6 +126,8 @@ typedef HBITMAP Fl_Bitmask; extern FL_EXPORT Fl_Bitmask fl_create_bitmask(int w, int h, const uchar *data); extern FL_EXPORT void fl_delete_bitmask(Fl_Bitmask bm); +extern FL_EXPORT int fl_parse_color(const char* p, uchar& r, uchar& g, uchar& b); + // -// End of "$Id: win32.H,v 1.15.2.3.2.1 2001/11/18 20:52:27 easysw Exp $". +// End of "$Id: win32.H,v 1.15.2.3.2.2 2001/11/19 20:59:59 easysw Exp $". // diff --git a/documentation/Fl_File_Chooser.gif b/documentation/Fl_File_Chooser.gif index 5a72f625a372a410ba97d428db2ab50537ba7222..3f8990f79e4b0707211dc3179e5c5bc65137e32b 100644 GIT binary patch delta 6 NcmeAOnZ`I_8UP6E0-68- delta 10700 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 diff --git a/documentation/Fl_Help_Dialog.gif b/documentation/Fl_Help_Dialog.gif index e0f3cbfa8b2bd12c5bbfecc4345df3165736bd26..580e6a11a80f89ce4bb7b9fb064cb74a46907d3b 100644 GIT binary patch delta 5 McmdmyS}>si00KhIM5+h-eNH0|EmNl$Dm3n3-0Snw_4XprN9pq@|{( zsHv)}tgWuEu(7hUm^_@X4p;yTx3~-fw86r|#Kp$P$jQpff2};gv5x?eleyJ9*VftC z+uGgS-`?Ti+0?7@9y#N^YZod_xAbt`}+O-cgo z+{tq$%x4-Ue{noxh-jlkN0TC5s~hT7f1MEM zAe>SIT;0?ig2*@TP?!3+*IeT}dgWA#=WE`mC(FF@b~|tE^KeG5EcF#yzx?#vOYi;l z-Gl%A_Ty`BKJpvt>aJWNwkay~!-Wg#)1q#<5^v~+xq73>Ejk|G{*oNyb_5;eWG!n1 z8eW`?13yh^3T6*%SOl#z!R%D9e_aBg69zSyK@39BgAxQG1x08<5^m6UC)`j9KiEMP zwvdAtd?5;D=)xG<(1bK(Aq;Woo*Y3)euxX0`eFkh5rIz^t(yT*Ai%Rta!XbRo6V_Jv${2i`he?8fkS#HijyVZNya^e{VI%GosFp zaC~Ff>Zr#%_A!rZl%pQq7)Uw}Qjmqj;~o!b$VC2ek&aZOA0-LMNp??ZQ=*eDVAZ^) z-6Bo@tKUoR=cWAZ;!`2$)?B2MyUF>BYW|{Q0gr>7F(UC_0b~`8rlTp;MUa6Y1ZE3) z8B7PRtC%Z1-Y}JEo?jYMe>~1irZAg{%p5ZFn9H0dHmRA-XA-lU()8vv8(2M<#Sc+; zOu*^#raA)Uii?gSni5~vLb>TL9RM@_u5oy_s!;D!d4-x$q_wn|o1NSjHaKv5AH3V%5`F%0AYzk;Uv}8)`YdmT8ZdcwmI& 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 diff --git a/src/Fl_Bitmap.cxx b/src/Fl_Bitmap.cxx index 18d474fb7..887d57603 100644 --- a/src/Fl_Bitmap.cxx +++ b/src/Fl_Bitmap.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.3 2001/11/19 01:06:45 easysw Exp $" +// "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.4 2001/11/19 20:59:59 easysw Exp $" // // Bitmap drawing routines for the Fast Light Tool Kit (FLTK). // @@ -32,7 +32,94 @@ #include #ifdef WIN32 // Windows bitmask functions... +// 'fl_create_bitmap()' - Create a 1-bit bitmap for drawing... +static Fl_Bitmask fl_create_bitmap(int w, int h, const uchar *data) { + // we need to pad the lines out to words & swap the bits + // in each byte. + int w1 = (w+7)/8; + int w2 = ((w+15)/16)*2; + uchar* newarray = new uchar[w2*h]; + const uchar* src = data; + uchar* dest = newarray; + Fl_Bitmask id; + static uchar reverse[16] = /* Bit reversal lookup table */ + { 0x00, 0x88, 0x44, 0xcc, 0x22, 0xaa, 0x66, 0xee, + 0x11, 0x99, 0x55, 0xdd, 0x33, 0xbb, 0x77, 0xff }; + + for (int y=0; y < h; y++) { + for (int n = 0; n < w1; n++, src++) + *dest++ = (reverse[*src & 0x0f] & 0xf0) | + (reverse[(*src >> 4) & 0x0f] & 0x0f); + dest += w2-w1; + } + + id = CreateBitmap(w, h, 1, 1, newarray); + + delete[] newarray; + + return id; +} + +// 'fl_create_bitmask()' - Create an N-bit bitmap for masking... Fl_Bitmask fl_create_bitmask(int w, int h, const uchar *data) { + // this won't work when the user changes display mode during run or + // has two screens with differnet depths + Fl_Bitmask id; + static uchar hiNibble[16] = + { 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, + 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0 }; + static uchar loNibble[16] = + { 0x00, 0x08, 0x04, 0x0c, 0x02, 0x0a, 0x06, 0x0e, + 0x01, 0x09, 0x05, 0x0d, 0x03, 0x0b, 0x07, 0x0f }; + int np = GetDeviceCaps(fl_gc, PLANES); //: was always one on sample machines + int bpp = GetDeviceCaps(fl_gc, BITSPIXEL);//: 1,4,8,16,24,32 and more odd stuff? + int Bpr = (bpp*w+7)/8; //: bytes per row + int pad = Bpr&1, w1 = (w+7)/8, shr = ((w-1)&7)+1; + if (bpp==4) shr = (shr+1)/2; + uchar *newarray = new uchar[(Bpr+pad)*h]; + uchar *dst = newarray; + const uchar *src = data; + + for (int i=0; i0; j--) { + uchar b = *src++; + if (bpp==1) { + *dst++ = ( hiNibble[b&15] ) | ( loNibble[(b>>4)&15] ); + } else if (bpp==4) { + for (int k=(j==1)?shr:4; k>0; k--) { + *dst++ = "\377\360\017\000"[b&3]; + b = b >> 2; + } + } else { + for (int k=(j==1)?shr:8; k>0; k--) { + if (b&1) { + *dst++=0; + if (bpp>8) *dst++=0; + if (bpp>16) *dst++=0; + if (bpp>24) *dst++=0; + } else { + *dst++=0xff; + if (bpp>8) *dst++=0xff; + if (bpp>16) *dst++=0xff; + if (bpp>24) *dst++=0xff; + } + + b = b >> 1; + } + } + } + + dst += pad; + } + + id = CreateBitmap(w, h, np, bpp, newarray); + delete[] newarray; + + return id; +} + +Fl_Bitmask fl_create_bitmask(int w, int h, const uchar *data, int for_mask) { // we need to pad the lines out to words & swap the bits // in each byte. int w1 = (w+7)/8; @@ -84,9 +171,9 @@ void Fl_Bitmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) { if (cy < 0) {H += cy; Y -= cy; cy = 0;} if ((cy+H) > h()) H = h()-cy; if (H <= 0) return; - if (!id) id = fl_create_bitmask(w(), h(), array); - #ifdef WIN32 + if (!id) id = fl_create_bitmap(w(), h(), array); + HDC tempdc = CreateCompatibleDC(fl_gc); SelectObject(tempdc, (HGDIOBJ)id); SelectObject(fl_gc, fl_brush()); @@ -94,6 +181,8 @@ void Fl_Bitmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) { BitBlt(fl_gc, X, Y, W, H, tempdc, cx, cy, 0xE20746L); DeleteDC(tempdc); #else + if (!id) id = fl_create_bitmask(w(), h(), array); + XSetStipple(fl_display, fl_gc, id); int ox = X-cx; if (ox < 0) ox += w(); int oy = Y-cy; if (oy < 0) oy += h(); @@ -106,7 +195,7 @@ void Fl_Bitmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) { Fl_Bitmap::~Fl_Bitmap() { if (id) fl_delete_bitmask(id); - if (alloc_array) delete[] array; + if (alloc_array) delete[] (uchar *)array; } void Fl_Bitmap::label(Fl_Widget* w) { @@ -184,5 +273,5 @@ Fl_Image *Fl_Bitmap::copy(int W, int H) { } // -// End of "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.3 2001/11/19 01:06:45 easysw Exp $". +// End of "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.4 2001/11/19 20:59:59 easysw Exp $". // diff --git a/src/Fl_Image.cxx b/src/Fl_Image.cxx index 3663e4224..3359f5057 100644 --- a/src/Fl_Image.cxx +++ b/src/Fl_Image.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Image.cxx,v 1.5.2.3.2.3 2001/11/19 01:06:45 easysw Exp $" +// "$Id: Fl_Image.cxx,v 1.5.2.3.2.4 2001/11/19 20:59:59 easysw Exp $" // // Image drawing code for the Fast Light Tool Kit (FLTK). // @@ -58,7 +58,7 @@ void Fl_Image::label(Fl_Menu_Item* m) { Fl_RGB_Image::~Fl_RGB_Image() { if (id) fl_delete_offscreen((Fl_Offscreen)id); - if (alloc_array) delete[] array; + if (alloc_array) delete[] (uchar *)array; } Fl_Image *Fl_RGB_Image::copy(int W, int H) { @@ -212,7 +212,7 @@ void Fl_RGB_Image::desaturate() { } // Free the old array as needed, and then set the new pointers/values... - if (alloc_array) delete[] array; + if (alloc_array) delete[] (uchar *)array; array = new_array; alloc_array = 1; @@ -232,7 +232,7 @@ void Fl_RGB_Image::draw(int XP, int YP, int WP, int HP, int cx, int cy) { if (cy+H > h()) H = h()-cy; if (H <= 0) return; if (!id) { - id = (ulong)fl_create_offscreen(w(), h()); + id = fl_create_offscreen(w(), h()); fl_begin_offscreen((Fl_Offscreen)id); fl_draw_image(array, 0, 0, w(), h(), d, ld); fl_end_offscreen(); @@ -394,5 +394,5 @@ void Fl_RGB_Image::label(Fl_Menu_Item* m) { // -// End of "$Id: Fl_Image.cxx,v 1.5.2.3.2.3 2001/11/19 01:06:45 easysw Exp $". +// End of "$Id: Fl_Image.cxx,v 1.5.2.3.2.4 2001/11/19 20:59:59 easysw Exp $". // diff --git a/src/Fl_Pixmap.cxx b/src/Fl_Pixmap.cxx index 67a584238..0b3717f45 100644 --- a/src/Fl_Pixmap.cxx +++ b/src/Fl_Pixmap.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.4 2001/11/19 01:06:45 easysw Exp $" +// "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.5 2001/11/19 20:59:59 easysw Exp $" // // Pixmap drawing code for the Fast Light Tool Kit (FLTK). // @@ -82,7 +82,7 @@ void Fl_Pixmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) { mask = fl_create_bitmask(w(), h(), bitmap); #if 0 // Don't think this is needed; try using fl_create_bitmask()... #ifdef WIN32 // Matt: mask done - // this won't work ehen the user changes display mode during run or + // this won't work when the user changes display mode during run or // has two screens with differnet depths static uchar hiNibble[16] = { 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, @@ -387,7 +387,7 @@ void Fl_Pixmap::color_average(Fl_Color c, float i) { } #ifdef WIN32 - if (fl_parse_color(p, r, g, b) { + if (fl_parse_color(p, r, g, b)) { #else XColor x; if (XParseColor(fl_display, fl_colormap, p, &x)) { @@ -405,7 +405,7 @@ void Fl_Pixmap::color_average(Fl_Color c, float i) { data[color + 1][1], r, g, b); else sprintf(line, "%c c #%02X%02X%02X", data[color + 1][0], r, g, b); - delete[] data[color + 1]; + delete[] (char *)data[color + 1]; ((char **)data)[color + 1] = new char[strlen(line) + 1]; strcpy((char *)data[color + 1], line); } @@ -415,8 +415,8 @@ void Fl_Pixmap::color_average(Fl_Color c, float i) { void Fl_Pixmap::delete_data() { if (alloc_data) { - for (int i = 0; data[i]; i ++) delete[] data[i]; - delete[] data; + for (int i = 0; data[i]; i ++) delete[] (char *)data[i]; + delete[] (char **)data; } } @@ -471,7 +471,7 @@ void Fl_Pixmap::desaturate() { } #ifdef WIN32 - if (fl_parse_color(p, r, g, b) { + if (fl_parse_color(p, r, g, b)) { #else XColor x; if (XParseColor(fl_display, fl_colormap, p, &x)) { @@ -486,7 +486,7 @@ void Fl_Pixmap::desaturate() { data[i + 1][1], g, g, g); else sprintf(line, "%c c #%02X%02X%02X", data[i + 1][0], g, g, g); - delete[] data[i + 1]; + delete[] (char *)data[i + 1]; ((char **)data)[i + 1] = new char[strlen(line) + 1]; strcpy((char *)data[i + 1], line); } @@ -495,5 +495,5 @@ void Fl_Pixmap::desaturate() { } // -// End of "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.4 2001/11/19 01:06:45 easysw Exp $". +// End of "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.5 2001/11/19 20:59:59 easysw Exp $". // diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index a2f59b7b4..800374362 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_win32.cxx,v 1.33.2.37.2.6 2001/10/29 21:59:15 easysw Exp $" +// "$Id: Fl_win32.cxx,v 1.33.2.37.2.7 2001/11/19 20:59:59 easysw Exp $" // // WIN32-specific code for the Fast Light Tool Kit (FLTK). // @@ -659,7 +659,6 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar #endif default: - DEFAULT: if (Fl::handle(0,0)) return 0; break; } @@ -1006,5 +1005,5 @@ void Fl_Window::make_current() { } // -// End of "$Id: Fl_win32.cxx,v 1.33.2.37.2.6 2001/10/29 21:59:15 easysw Exp $". +// End of "$Id: Fl_win32.cxx,v 1.33.2.37.2.7 2001/11/19 20:59:59 easysw Exp $". // diff --git a/src/fl_draw.cxx b/src/fl_draw.cxx index 2334941a5..107ea08ee 100644 --- a/src/fl_draw.cxx +++ b/src/fl_draw.cxx @@ -1,5 +1,5 @@ // -// "$Id: fl_draw.cxx,v 1.6.2.4.2.6 2001/11/03 05:11:34 easysw Exp $" +// "$Id: fl_draw.cxx,v 1.6.2.4.2.7 2001/11/19 20:59:59 easysw Exp $" // // Label drawing code for the Fast Light Tool Kit (FLTK). // @@ -30,6 +30,7 @@ // Expands all unprintable characters to ^X or \nnn notation // Aligns them against the inside of the box. +#define min(a,b) ((a)<(b)?(a):(b)) #include #include @@ -37,7 +38,6 @@ #include #define MAXBUF 1024 -#define min(a,b) ((a)<(b)?(a):(b)) char fl_draw_shortcut; // set by fl_labeltypes.cxx @@ -327,5 +327,5 @@ void fl_measure(const char* str, int& w, int& h, int draw_symbols) { } // -// End of "$Id: fl_draw.cxx,v 1.6.2.4.2.6 2001/11/03 05:11:34 easysw Exp $". +// End of "$Id: fl_draw.cxx,v 1.6.2.4.2.7 2001/11/19 20:59:59 easysw Exp $". // diff --git a/visualc/fltk.lib.dsp b/visualc/fltk.lib.dsp index 3f70995b8..82304f507 100644 --- a/visualc/fltk.lib.dsp +++ b/visualc/fltk.lib.dsp @@ -255,10 +255,6 @@ SOURCE=..\src\fl_engraved_label.cxx # End Source File # Begin Source File -SOURCE=..\src\fl_file_dir.cxx -# End Source File -# Begin Source File - SOURCE=..\src\Fl_File_Browser.cxx # End Source File # Begin Source File @@ -271,10 +267,18 @@ SOURCE=..\src\Fl_File_Chooser2.cxx # End Source File # Begin Source File +SOURCE=..\src\fl_file_dir.cxx +# End Source File +# Begin Source File + SOURCE=..\src\Fl_File_Icon.cxx # End Source File # Begin Source File +SOURCE=..\src\Fl_File_Icon2.cxx +# End Source File +# Begin Source File + SOURCE=..\src\fl_font.cxx # End Source File # Begin Source File @@ -287,6 +291,10 @@ SOURCE=..\src\Fl_get_system_colors.cxx # End Source File # Begin Source File +SOURCE=..\src\Fl_GIF_Image.cxx +# End Source File +# Begin Source File + SOURCE=..\src\Fl_grab.cxx # End Source File # Begin Source File @@ -315,6 +323,10 @@ SOURCE=..\src\Fl_Input_.cxx # End Source File # Begin Source File +SOURCE=..\src\Fl_JPEG_Image.cxx +# End Source File +# Begin Source File + SOURCE=..\src\fl_labeltype.cxx # End Source File # Begin Source File @@ -391,6 +403,10 @@ SOURCE=..\src\Fl_Pixmap.cxx # End Source File # Begin Source File +SOURCE=..\src\Fl_PNG_Image.cxx +# End Source File +# Begin Source File + SOURCE=..\src\Fl_Positioner.cxx # End Source File # Begin Source File diff --git a/visualc/fltkdll.dsp b/visualc/fltkdll.dsp index 986be7d4e..de3ebe384 100644 --- a/visualc/fltkdll.dsp +++ b/visualc/fltkdll.dsp @@ -192,9 +192,13 @@ DEP_CPP_FL_ADJ=\ "..\fl\fl_bitmap.h"\ "..\fl\fl_draw.h"\ "..\fl\fl_export.h"\ + "..\fl\fl_group.h"\ "..\fl\fl_image.h"\ "..\fl\fl_valuator.h"\ "..\fl\fl_widget.h"\ + "..\fl\fl_window.h"\ + "..\fl\win32.h"\ + "..\fl\x.h"\ "..\src\fastarrow.h"\ "..\src\mediumarrow.h"\ "..\src\slowarrow.h"\ @@ -595,7 +599,12 @@ DEP_CPP_FL_DR=\ "..\fl\enumerations.h"\ "..\fl\fl_draw.h"\ "..\fl\fl_export.h"\ + "..\fl\fl_group.h"\ "..\fl\fl_image.h"\ + "..\fl\fl_widget.h"\ + "..\fl\fl_window.h"\ + "..\fl\win32.h"\ + "..\fl\x.h"\ # End Source File # Begin Source File @@ -692,6 +701,8 @@ DEP_CPP_FL_FIL=\ "..\fl\fl_valuator.h"\ "..\fl\fl_widget.h"\ "..\fl\fl_window.h"\ + "..\fl\win32.h"\ + "..\fl\x.h"\ # End Source File # Begin Source File @@ -770,6 +781,20 @@ DEP_CPP_FL_FILE_I=\ # End Source File # Begin Source File +SOURCE=..\src\Fl_File_Icon2.cxx +DEP_CPP_FL_FILE_IC=\ + "..\fl\enumerations.h"\ + "..\fl\filename.h"\ + "..\fl\fl.h"\ + "..\fl\fl_draw.h"\ + "..\fl\fl_export.h"\ + "..\FL\Fl_File_Icon.H"\ + "..\fl\fl_widget.h"\ + ".\config.h"\ + +# End Source File +# Begin Source File + SOURCE=..\src\fl_font.cxx DEP_CPP_FL_FO=\ "..\fl\enumerations.h"\ @@ -818,6 +843,23 @@ DEP_CPP_FL_GET=\ # End Source File # Begin Source File +SOURCE=..\src\Fl_GIF_Image.cxx +DEP_CPP_FL_GI=\ + "..\fl\enumerations.h"\ + "..\fl\fl_export.h"\ + "..\fl\fl_gif_image.h"\ + "..\fl\fl_group.h"\ + "..\fl\fl_image.h"\ + "..\fl\fl_pixmap.h"\ + "..\fl\fl_widget.h"\ + "..\fl\fl_window.h"\ + "..\fl\win32.h"\ + "..\fl\x.h"\ + ".\config.h"\ + +# End Source File +# Begin Source File + SOURCE=..\src\Fl_Gl_Choice.cxx DEP_CPP_FL_GL=\ "..\fl\enumerations.h"\ @@ -934,6 +976,9 @@ DEP_CPP_FL_HEL=\ "..\fl\fl_slider.h"\ "..\fl\fl_valuator.h"\ "..\fl\fl_widget.h"\ + "..\fl\fl_window.h"\ + "..\fl\win32.h"\ + "..\fl\x.h"\ ".\config.h"\ # End Source File @@ -973,6 +1018,7 @@ SOURCE=..\src\Fl_Input_.cxx DEP_CPP_FL_INP=\ "..\fl\enumerations.h"\ "..\fl\fl.h"\ + "..\fl\fl_ask.h"\ "..\fl\fl_draw.h"\ "..\fl\fl_export.h"\ "..\fl\fl_input_.h"\ @@ -981,6 +1027,22 @@ DEP_CPP_FL_INP=\ # End Source File # Begin Source File +SOURCE=..\src\Fl_JPEG_Image.cxx +DEP_CPP_FL_JP=\ + "..\fl\enumerations.h"\ + "..\fl\fl_export.h"\ + "..\fl\fl_group.h"\ + "..\fl\fl_image.h"\ + "..\fl\fl_jpeg_image.h"\ + "..\fl\fl_widget.h"\ + "..\fl\fl_window.h"\ + "..\fl\win32.h"\ + "..\fl\x.h"\ + ".\config.h"\ + +# End Source File +# Begin Source File + SOURCE=..\src\fl_labeltype.cxx DEP_CPP_FL_LA=\ "..\fl\enumerations.h"\ @@ -991,6 +1053,9 @@ DEP_CPP_FL_LA=\ "..\fl\fl_image.h"\ "..\fl\fl_input_.h"\ "..\fl\fl_widget.h"\ + "..\fl\fl_window.h"\ + "..\fl\win32.h"\ + "..\fl\x.h"\ # End Source File # Begin Source File @@ -1247,6 +1312,22 @@ DEP_CPP_FL_PI=\ # End Source File # Begin Source File +SOURCE=..\src\Fl_PNG_Image.cxx +DEP_CPP_FL_PN=\ + "..\fl\enumerations.h"\ + "..\fl\fl_export.h"\ + "..\fl\fl_group.h"\ + "..\fl\fl_image.h"\ + "..\fl\fl_png_image.h"\ + "..\fl\fl_widget.h"\ + "..\fl\fl_window.h"\ + "..\fl\win32.h"\ + "..\fl\x.h"\ + ".\config.h"\ + +# End Source File +# Begin Source File + SOURCE=..\src\Fl_Positioner.cxx DEP_CPP_FL_PO=\ "..\fl\enumerations.h"\ @@ -1818,6 +1899,8 @@ DEP_CPP_FORMS=\ "..\fl\fl_widget.h"\ "..\fl\fl_window.h"\ "..\fl\forms.h"\ + "..\fl\win32.h"\ + "..\fl\x.h"\ # End Source File # Begin Source File @@ -1869,6 +1952,8 @@ DEP_CPP_FORMS_=\ "..\fl\fl_widget.h"\ "..\fl\fl_window.h"\ "..\fl\forms.h"\ + "..\fl\win32.h"\ + "..\fl\x.h"\ # End Source File # Begin Source File @@ -1930,6 +2015,8 @@ DEP_CPP_FORMS_FS=\ "..\fl\fl_widget.h"\ "..\fl\fl_window.h"\ "..\fl\forms.h"\ + "..\fl\win32.h"\ + "..\fl\x.h"\ # End Source File # Begin Source File @@ -1980,6 +2067,8 @@ DEP_CPP_FORMS_P=\ "..\fl\fl_widget.h"\ "..\fl\fl_window.h"\ "..\fl\forms.h"\ + "..\fl\win32.h"\ + "..\fl\x.h"\ # End Source File # Begin Source File