summaryrefslogtreecommitdiff
path: root/fluid
diff options
context:
space:
mode:
Diffstat (limited to 'fluid')
-rw-r--r--fluid/Fluid_Image.cxx46
-rw-r--r--fluid/Fluid_Image.h1
-rw-r--r--fluid/about_panel.cxx351
-rw-r--r--fluid/about_panel.fl11
-rw-r--r--fluid/icons/fluid.animated.gifbin0 -> 2545 bytes
5 files changed, 166 insertions, 243 deletions
diff --git a/fluid/Fluid_Image.cxx b/fluid/Fluid_Image.cxx
index 0340bc7b6..bc4473346 100644
--- a/fluid/Fluid_Image.cxx
+++ b/fluid/Fluid_Image.cxx
@@ -30,6 +30,7 @@
#include <FL/fl_utf8.h> // fl_fopen()
#include <FL/Fl_File_Chooser.H>
#include <FL/Fl_SVG_Image.H>
+#include <FL/Fl_Anim_GIF_Image.H>
#include "../src/flstring.h"
#include <stdio.h>
@@ -51,6 +52,7 @@ static int image_header_written = 0;
static int jpeg_header_written = 0;
static int png_header_written = 0;
static int gif_header_written = 0;
+static int animated_gif_header_written = 0;
static int bmp_header_written = 0;
static int svg_header_written = 0;
@@ -134,8 +136,19 @@ void Fluid_Image::write_static(int compressed) {
if (!img) return;
const char *idata_name = unique_id(this, "idata", fl_filename_name(name()), 0);
function_name_ = unique_id(this, "image", fl_filename_name(name()), 0);
- // TODO: GIF, ICO, BMP
- if (compressed && strcmp(fl_filename_ext(name()), ".gif")==0) {
+
+ if (is_animated_gif_) {
+ // Write animated gif image data...
+ write_c("\n");
+ if (animated_gif_header_written != write_number) {
+ write_c("#include <FL/Fl_Anim_GIF_Image.H>\n");
+ animated_gif_header_written = write_number;
+ }
+ write_c("static const unsigned char %s[] =\n", idata_name);
+ size_t nData = write_static_binary("AnimGIF");
+ write_c(";\n");
+ write_initializer("Fl_Anim_GIF_Image", "\"%s\", %s, %d", fl_filename_name(name()), idata_name, nData);
+ } else if (compressed && fl_ascii_strcasecmp(fl_filename_ext(name()), ".gif")==0) {
// Write gif image data...
write_c("\n");
if (gif_header_written != write_number) {
@@ -146,7 +159,7 @@ void Fluid_Image::write_static(int compressed) {
size_t nData = write_static_binary("GIF");
write_c(";\n");
write_initializer("Fl_GIF_Image", "\"%s\", %s, %d", fl_filename_name(name()), idata_name, nData);
- } else if (compressed && strcmp(fl_filename_ext(name()), ".bmp")==0) {
+ } else if (compressed && fl_ascii_strcasecmp(fl_filename_ext(name()), ".bmp")==0) {
// Write bmp image data...
write_c("\n");
if (bmp_header_written != write_number) {
@@ -198,7 +211,7 @@ void Fluid_Image::write_static(int compressed) {
write_cdata(img->data()[0], ((img->w() + 7) / 8) * img->h());
write_c(";\n");
write_initializer( "Fl_Bitmap", "%s, %d, %d, %d", idata_name, ((img->w() + 7) / 8) * img->h(), img->w(), img->h());
- } else if (compressed && strcmp(fl_filename_ext(name()), ".jpg")==0) {
+ } else if (compressed && fl_ascii_strcasecmp(fl_filename_ext(name()), ".jpg")==0) {
// Write jpeg image data...
write_c("\n");
if (jpeg_header_written != write_number) {
@@ -209,7 +222,7 @@ void Fluid_Image::write_static(int compressed) {
size_t nData = write_static_binary("JPEG");
write_c(";\n");
write_initializer("Fl_JPEG_Image", "\"%s\", %s, %d", fl_filename_name(name()), idata_name, nData);
- } else if (compressed && strcmp(fl_filename_ext(name()), ".png")==0) {
+ } else if (compressed && fl_ascii_strcasecmp(fl_filename_ext(name()), ".png")==0) {
// Write png image data...
write_c("\n");
if (png_header_written != write_number) {
@@ -220,7 +233,7 @@ void Fluid_Image::write_static(int compressed) {
size_t nData = write_static_binary("PNG");
write_c(";\n");
write_initializer("Fl_PNG_Image", "\"%s\", %s, %d", fl_filename_name(name()), idata_name, nData);
- } else if (strcmp(fl_filename_ext(name()), ".svg")==0 || strcmp(fl_filename_ext(name()), ".svgz")==0) {
+ } else if (fl_ascii_strcasecmp(fl_filename_ext(name()), ".svg")==0 || fl_ascii_strcasecmp(fl_filename_ext(name()), ".svgz")==0) {
bool gzipped = (strcmp(fl_filename_ext(name()), ".svgz") == 0);
// Write svg image data...
if (compressed) {
@@ -242,7 +255,7 @@ void Fluid_Image::write_static(int compressed) {
}
} else {
// if FLUID runs from the command line, make sure that the image is not
- // only loade but also rasterized, so we can write the RGB image data
+ // only loaded but also rasterized, so we can write the RGB image data
Fl_RGB_Image* rgb_image = NULL;
Fl_SVG_Image* svg_image = NULL;
if (img->d()>0)
@@ -279,6 +292,8 @@ void Fluid_Image::write_initializer(const char *type_name, const char *format, .
va_list ap;
va_start(ap, format);
write_c("static Fl_Image *%s() {\n", function_name_);
+ if (is_animated_gif_)
+ write_c("%sFl_GIF_Image::animate = true;\n", indent(1));
write_c("%sstatic Fl_Image *image = NULL;\n", indent(1));
write_c("%sif (!image)\n", indent(1));
write_c("%simage = new %s(", indent(2), type_name);
@@ -292,7 +307,11 @@ void Fluid_Image::write_initializer(const char *type_name, const char *format, .
void Fluid_Image::write_code(int bind, const char *var, int inactive) {
/* Outputs code that attaches an image to an Fl_Widget or Fl_Menu_Item.
This code calls a function output before by Fluid_Image::write_initializer() */
- if (img) write_c("%s%s->%s%s( %s() );\n", indent(), var, bind ? "bind_" : "", inactive ? "deimage" : "image", function_name_);
+ if (img) {
+ write_c("%s%s->%s%s( %s() );\n", indent(), var, bind ? "bind_" : "", inactive ? "deimage" : "image", function_name_);
+ if (is_animated_gif_)
+ write_c("%s((Fl_Anim_GIF_Image*)(%s()))->canvas(%s, Fl_Anim_GIF_Image::DONT_RESIZE_CANVAS);\n", indent(), function_name_, var);
+ }
}
void Fluid_Image::write_inline(int inactive) {
@@ -355,11 +374,20 @@ Fluid_Image* Fluid_Image::find(const char *iname) {
return ret;
}
-Fluid_Image::Fluid_Image(const char *iname) {
+Fluid_Image::Fluid_Image(const char *iname)
+ : is_animated_gif_(false)
+{
name_ = fl_strdup(iname);
written = 0;
refcount = 0;
img = Fl_Shared_Image::get(iname);
+ if (img && iname) {
+ const char *ext = fl_filename_ext(iname);
+ if (fl_ascii_strcasecmp(ext, ".gif")==0) {
+ int fc = Fl_Anim_GIF_Image::frame_count(iname);
+ if (fc > 0) is_animated_gif_ = true;
+ }
+ }
function_name_ = NULL;
}
diff --git a/fluid/Fluid_Image.h b/fluid/Fluid_Image.h
index 4845160c9..deb9ecfa9 100644
--- a/fluid/Fluid_Image.h
+++ b/fluid/Fluid_Image.h
@@ -24,6 +24,7 @@
#include <FL/Fl_Shared_Image.H>
class Fluid_Image {
+ bool is_animated_gif_;
const char *name_;
int refcount;
Fl_Shared_Image *img;
diff --git a/fluid/about_panel.cxx b/fluid/about_panel.cxx
index 61fcdb640..b01616eda 100644
--- a/fluid/about_panel.cxx
+++ b/fluid/about_panel.cxx
@@ -21,236 +21,127 @@ void show_help(const char *name);
Fl_Double_Window *about_panel=(Fl_Double_Window *)0;
-#include <FL/Fl_Pixmap.H>
-static const char *idata_fluid[] = {
-"96 96 32 1",
-" \tc None",
-".\tc #000100",
-"+\tc #031F3F",
-"@\tc #00366C",
-"#\tc #2E302D",
-"$\tc #0058AC",
-"%\tc #0060BF",
-"&\tc #4E504D",
-"*\tc #14659F",
-"=\tc #006DDC",
-"-\tc #2C7087",
-";\tc #0080FF",
-">\tc #407B74",
-",\tc #0F85F9",
-"\'\tc #268CCD",
-")\tc #7C7E7B",
-"!\tc #2D92EC",
-"~\tc #4498A9",
-"{\tc #2F94FE",
-"]\tc #5BA18C",
-"^\tc #6BA674",
-"/\tc #7DAD62",
-"(\tc #93BD53",
-"_\tc #A4A6A2",
-":\tc #6CB6FF",
-"<\tc #ABCC3F",
-"[\tc #C4DA2A",
-"}\tc #CACCC9",
-"|\tc #DCE913",
-"1\tc #BBDEFF",
-"2\tc #FDFE00",
-"3\tc #FDFFFC",
-" \
- ",
-" \
- ",
-" \
- ",
-" ........... \
- ",
-" ...................... \
- ",
-" ........................ \
- ",
-" ........#&#&#&#&##...... \
- ",
-" ....)__}33333333333}_... \
- ",
-" ...&33333333333333333... \
- ",
-" ...#33311133333333333... \
- ",
-" ...&33!,{,;:333333333... \
- ",
-" ...&3:,{{{{,13333333}... \
- ",
-" ...&3!{{!{{,13333333}... \
- ",
-" ...&3:!{{!{;13333333}... \
- ",
-" ...&3{{{{{{;133333333... \
- ",
-" ...&31,{{{;,33333333}... \
- ",
-" ...&331{{{:133333333}... \
- ",
-" ...&3333333333333333_... \
- ",
-" ...&3333333333333333}... \
- ",
-" ...&3333333333333333_... \
- ",
-" ...&3333333333333333}... \
- ",
-" ...&3333333333333333_... \
- ",
-" ...&3333333333333333}... \
- ",
-" ...&3333333333333333_... \
- ",
-" ...&3333333331!,,;:3}... \
- ",
-" ...&333333333{{{{{;:_... \
- ",
-" ...&333333331,{!{!{{}... \
- ",
-" ...&333333331{{{{{{,_... \
- ",
-" ...)333333331{{!{{{{_... \
- ",
-" ...)333333333{{{!{;:_... \
- ",
-" ...)3333333331{;;;:3_... \
- ",
-" ...)3333333333331333_... \
- ",
-" ...)3333333333333333_... \
- ",
-" ...)3333333333333333_... \
- ",
-" ..._3333333333333333_... \
- ",
-" ..._3333333333333333_... \
- ",
-" ..._3333333333333333_... \
- ",
-" ..._3333333333333333}.... \
- ",
-" ...._33333333333333333#... \
- ",
-" ....&333333333333333333_.... \
- ",
-" ....&33333333333333333333).... \
- ",
-" ....333333333333333333333}&.... \
- ",
-" ...._33333333333333333333333.... \
- ",
-" ....&333333333331:11333333333_.... \
- ",
-" ....#33333333333:,,,;:333333333&.... \
- ",
-" ....}3333333333:,!{{{;1333333333&.... \
- ",
-" ....}33333333333{{{!{{,!3333333333.... \
- ",
-" ....)333333333333{{{{!{{{3333333333_.... \
- ",
-" ....#3333333333333!{{{{{,:33333333333&.... \
- ",
-" ...._33333333333331{{!{,;1333333333333#.... \
- ",
-" ...._333333333333333:;,;,13333333333333_.... \
- ",
-" ...._333333333333333333113333333333333333_.... \
- ",
-" ....&33333333333333333333333333331::1333333&.... \
- ",
-" ...._333333333333333333333333333{,{{;{133333#... \
- ",
-" ...._3333333333333333333333333331,{!{{,:33333}.... \
- ",
-" ....&3333333333133333333333333333:{{{{{{:333333).... \
- ",
-" ...#333333331{,,;:333333333333333:{!{!{{:3333333&.... \
- ",
-" ....}33333333,{{{{;:333333333333331,{!{{;:33333333#... \
- ",
-" ...._333333331,!{!{{,333333333333333{,{{;{1333333333.... \
- ",
-" ....&3333333331{{{{{{{3333333333333333::::33333333333)....\
- ",
-" ....+!:::::::::{{{{!{{;::::::::::::::::::::::::::!:::::+...\
-. ",
-" ...+=;;;;;;;;;;;;{{{{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=...\
-. ",
-" ....%;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;%..\
-.. ",
-" ....@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$.\
-... ",
-" ...+%;;;;;;!!!;;;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!=;;;+\
-.... ",
-" ....%;;;;;!([<|^~]^([%;;;;;;;;;;;;;;;;;,(<\'=;;;;;;;!^/<[|\'=;\
-;=+... ",
-" ....$;;;;;\'|2>]22<|22[%=;;;;;;;;;;;;;;;;^22[%=;;;;;;!][22|%=;;\
-;$.... ",
-" ....@;;;;;;[2[%^2|*[22(%=;;;;;;;;;;;;;;;,/22|$=;;;;;;;;<22<%=;;;\
-;$.... ",
-" ....+=;;;;;~22^$%]~$|22>%=;;;;;;;;;;;;;;;;\'||^%=;;;;;;;,[22^$=;;\
-;;;+.... ",
-" ....%;;;;;,[22-%===\'22|*==;;;;;;;;;;;;;;;;;;=%=;;;;;;;;\'22|*%=;\
-;;;;=+... ",
-" ....$;;;;;;!22|$%;,;^22<$=;;;;;;;;;;;;;;;;;;===;;;;;;;;;^22|$==;;;\
-;;;%.... ",
-" ....@;;;;;\'](22[^]=;;<22^$==!~]/~=;!]]~;;;;{\'~]==;;;;~<<]<22($=;;\
-;;;;;;@.... ",
-" ....@;;;;;;]<|22|[<%;!|22-%\'[2222*=;/22(%;~|222(=;;;!<2|^[222>$=;;;\
-;;;;;;+.... ",
-" ....=;;;;;;;,[22>$===~22|$==,[22[%=;[22]%=,!|22]%=;![2|*%]22|*==;;;;\
-;;;;;%+... ",
-" ....@;;;;;;;;!|22*$=;;/22($=;,[22/$=\'222*%=;!|22-%;;<22>%=]22[$%;;;;\
-;;;;;;;=.... ",
-" ....@;;;;;;;;;~22[*==;;[22>%=;\'22|-%,^22[$=;,~22[$%;]22<$%=(22/$=;;;;\
-;;;;;;;;@.... ",
-" ....+;;;;;;;;;;^22<$=;;!222*$=;]22[$==[22/$=;;(22/$=![22]$=;|22-%=;;;;;\
-;;;;;;;;+... ",
-" ....;;;;;;;;;;;<22^%=;;]22[$=;;(22/$=~222-%=;;[22>%=]22|$%;~22|$==;;;;;\
-;;;;;;;;;.... ",
-" ....%;;;;;;;;;;;|22-%=;;(22/$=;{|22-%=<22|$%;;\'22|*%;<22<$==(22<$=;=;;;\
-;;;;;;;;;;$.... ",
-" ....+;;;;;;;;;;;!222$==;,|22>%=;~22|$=]|22($=;;]22[$%,|22^%=!|22^$=;;;;;;\
-;;;;;;;;;;@.... ",
-" ....+=;;;;;;;;;;;~22[$%;;\'22|*-/;]22($*[<22^$^=;(22/$(-222>$=(222->~;;;;;\
-;;;;;;;;;;;=+.... ",
-" ...+;;;;;;;;;;;;;(22/$=;;]22|*<\'=(22/*[~[22>(]=;|22>//=|22/$^(|2|-[%=;;;;\
-;;;;;;;;;;;;=.... ",
-" ....$;;;;;;;;;;;;;<22>%=;;]222|>==(222|^=|22|<%=;|222<%=(222|<-222|-==;;;;;\
-;;;;;;;;;;;;$.... ",
-" ....@;;;;;;;;;;;;;!|2|$=;;;\'[2[>%=;\'|2[]%=/2|/$==;^2|(*%=!(2|($%<2[-%=;;;;\
-;;;;;;;;;;;;;;;@.... ",
-"....@;;;;;;;;;;;;;;\'22($%;;;;=%%==;;;=%%%==;=%%==;;;=%===;;==%%====%%=,;;;;;\
-;;;;;;;;;;;;;;;+... ",
-"...+=;;;;;;;;;;!\'=,]22-%=;;;;;;==;=;;;===;=;;===;;;;;===;;;;=;=,;;,=;=;;;;;;\
-;;;;;;;;;;;;;;;=....",
-"...+;;;;;;;;;;;[2^=<2<$==;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\
-;;;;;;;;;;;;;;;+...",
-"...+;;;;;;;;;;;22(\'2|*%=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\
-;;;;;;;;;;;;;;;;+...",
-"...+;;;;;;;;;;;^|<[[-%=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\
-;;;;;;;;;;;;;;;+...",
-"...+;;;;;;;;;;;;*~*%===;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\
-;;;;;;;;;;;;;;;@...",
-"...+;;;;;;;;;;;;;====;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\
-;;;;;;;;;;;;;;;+...",
-"....$=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\
-;;;;;;;;;;;;;=$....",
-" .....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\
-+++++++++++++..... ",
-" ............................................................................\
-................. ",
-" ...........................................................................\
-................. ",
-" ........................................................................\
-.............. "
-};
+#include <FL/Fl_Anim_GIF_Image.H>
+static const unsigned char idata_fluid[] =
+{71,73,70,56,57,97,96,0,96,0,132,31,0,0,1,0,3,31,63,46,48,45,0,54,108,78,80,
+77,64,123,116,124,126,123,125,173,98,107,166,116,171,204,63,220,233,19,253,254,
+0,196,218,42,147,189,83,20,101,159,44,112,135,0,88,172,0,96,191,0,109,220,91,
+161,140,68,152,169,38,140,205,0,128,255,15,133,249,45,146,236,47,148,254,108,
+182,255,164,166,162,187,222,255,202,204,201,253,255,252,0,0,0,33,255,11,78,69,
+84,83,67,65,80,69,50,46,48,3,1,0,0,0,33,249,4,5,10,0,31,0,44,0,0,0,0,96,0,96,0,
+0,5,254,224,39,142,100,105,158,104,170,174,108,235,190,112,44,207,116,109,223,
+120,110,2,124,239,3,186,160,238,71,36,14,34,61,161,18,86,244,13,32,78,139,5,201,
+91,90,87,63,143,118,171,201,112,184,25,11,180,122,45,239,120,219,180,135,147,
+241,174,219,223,164,121,46,234,169,211,108,111,87,163,149,211,205,118,119,96,28,
+93,95,28,3,100,127,101,129,130,90,95,107,26,93,22,136,138,128,104,120,28,143,
+90,124,121,97,80,149,139,151,142,109,164,111,134,153,99,160,87,140,155,145,153,
+142,142,113,137,170,66,172,130,108,90,112,126,180,65,182,119,93,163,26,136,64,
+188,181,162,183,112,111,25,169,197,189,199,119,121,143,108,204,205,57,190,120,
+25,124,91,28,187,213,54,215,120,119,221,222,52,224,141,125,179,228,229,207,231,
+105,227,234,49,230,231,239,240,47,242,141,244,245,45,247,130,249,250,88,236,218,
+161,35,246,47,222,179,78,110,196,165,43,184,239,24,194,100,106,252,49,60,193,
+232,33,41,77,3,39,50,17,101,17,226,22,137,26,73,84,36,69,50,225,199,133,33,254,
+81,140,44,233,49,99,74,22,172,186,148,212,230,14,229,203,18,172,44,98,116,121,
+51,133,47,66,26,118,158,36,216,147,98,64,129,32,95,242,83,72,180,40,206,163,
+237,124,56,61,3,245,156,128,164,19,125,16,16,40,104,131,212,169,31,180,114,109,
+100,224,171,83,31,99,149,37,236,64,192,236,77,31,27,198,178,204,48,180,105,72,
+177,92,59,62,242,138,213,155,15,1,105,231,182,217,210,182,111,51,31,29,2,11,78,
+83,216,38,60,196,105,61,8,166,91,211,49,57,31,6,34,171,37,185,147,175,229,195,
+61,0,107,222,108,146,177,219,199,61,226,142,134,228,202,234,105,191,169,87,107,
+246,108,23,52,15,213,178,35,211,86,135,55,183,230,198,181,85,193,245,189,250,
+234,103,58,195,183,93,36,126,174,195,235,74,189,37,179,100,78,246,249,159,208,
+216,88,10,165,238,1,56,45,200,91,38,115,23,100,60,120,168,219,106,196,143,103,
+106,126,73,244,92,139,215,171,41,107,184,134,143,0,24,34,233,143,116,161,191,
+255,11,251,5,40,224,128,4,6,24,128,117,198,0,254,16,128,4,82,52,232,224,131,16,
+70,40,225,132,16,74,128,224,16,61,68,64,225,134,28,118,8,33,21,199,217,215,195,
+0,30,150,104,226,132,99,132,56,67,15,1,104,248,32,6,48,62,120,193,137,52,98,
+192,160,20,7,214,215,16,15,46,54,136,65,3,12,36,160,0,2,20,76,128,0,144,61,122,
+120,65,3,9,84,112,227,139,8,28,144,0,3,10,56,41,133,4,57,182,183,98,15,16,60,88,
+129,2,11,20,48,193,2,11,8,73,38,3,17,60,217,33,2,103,166,9,33,6,19,48,64,166,2,
+110,74,145,162,150,27,241,64,226,131,114,162,201,166,2,14,200,185,64,3,117,118,
+120,193,1,115,66,160,166,131,9,144,153,64,161,98,92,104,15,139,139,82,64,38,2,
+16,68,48,1,5,16,128,25,38,164,28,126,57,36,168,82,92,32,40,166,139,102,137,39,
+76,25,202,40,232,3,105,74,32,65,5,115,58,32,43,141,18,144,42,5,173,11,0,10,42,
+150,58,62,197,67,151,47,38,170,225,140,108,150,169,40,174,183,74,152,172,2,138,
+46,58,133,164,42,254,68,225,96,5,19,52,112,38,2,19,220,216,232,2,168,74,128,65,
+145,7,80,192,32,156,155,58,152,65,5,69,54,43,5,5,9,36,48,193,183,13,44,27,225,
+48,42,10,11,192,158,14,206,235,169,2,65,106,136,129,167,176,86,32,40,153,182,
+90,128,232,160,26,82,224,233,160,79,98,208,232,144,7,23,96,111,132,170,202,224,
+131,180,22,152,74,166,197,178,74,96,105,175,209,122,188,0,154,12,10,58,65,154,
+23,12,76,230,202,231,202,233,235,152,189,218,202,177,20,17,100,105,144,158,18,
+186,188,128,3,246,46,92,47,131,38,31,160,40,175,63,187,233,51,172,82,124,91,64,
+154,52,51,144,233,134,22,246,101,109,132,35,51,96,179,20,130,62,205,32,175,10,
+192,122,65,178,82,19,157,245,212,52,39,144,169,4,218,46,96,244,205,14,226,187,
+234,125,20,38,171,246,141,24,144,249,243,178,81,71,43,232,219,82,180,253,54,6,
+42,47,75,176,174,16,234,204,42,15,27,126,139,64,157,125,223,40,184,162,35,47,0,
+235,141,93,67,109,172,5,35,67,235,238,134,254,146,250,144,100,132,135,75,78,38,
+224,25,148,254,45,180,46,130,237,128,134,223,222,205,182,163,203,194,237,224,
+157,62,177,184,97,222,100,70,219,177,167,94,115,158,168,4,19,120,58,180,20,125,
+71,112,129,167,143,139,203,252,197,29,202,109,20,15,11,110,120,118,235,181,62,
+112,128,5,52,215,27,168,227,16,32,192,224,228,13,60,160,55,200,109,91,94,0,5,38,
+2,59,142,238,28,78,126,35,205,128,54,57,187,219,129,82,208,117,3,221,90,0,252,
+1,7,144,128,167,140,118,36,48,133,13,101,237,59,141,15,136,213,184,143,65,78,
+111,10,40,128,172,210,55,36,1,206,233,81,12,122,24,6,41,152,0,243,205,233,1,159,
+235,16,238,234,48,162,14,185,204,115,13,50,216,201,130,247,165,147,193,12,81,10,
+120,27,131,254,212,128,215,137,75,91,10,168,87,4,26,197,128,203,209,104,18,82,
+185,218,134,120,165,67,7,229,42,86,13,58,34,18,143,232,174,92,133,236,74,76,12,
+89,4,88,246,67,11,232,140,82,20,194,128,147,46,64,51,31,62,232,86,79,122,148,
+226,141,158,104,196,207,49,72,2,51,234,216,25,171,104,129,170,253,32,0,27,146,
+147,248,26,37,59,54,218,241,142,86,36,2,28,41,68,166,6,208,202,87,182,195,163,
+32,39,164,42,234,109,8,1,10,152,82,15,17,55,200,70,74,168,144,10,226,144,3,40,
+96,195,16,58,242,146,247,210,99,135,66,22,72,76,98,18,146,0,128,158,39,71,121,
+34,9,224,238,141,1,72,165,42,87,201,202,86,186,242,149,176,140,165,44,103,201,
+202,31,144,176,9,184,204,165,46,119,201,203,94,246,82,36,190,12,166,48,135,73,
+76,34,76,175,152,200,76,102,49,75,16,2,0,33,249,4,5,10,0,31,0,44,30,0,4,0,38,0,
+57,0,0,5,254,224,39,142,31,96,158,104,170,2,100,235,174,112,236,206,174,103,
+223,56,158,210,60,205,113,185,91,111,152,201,136,56,25,100,50,232,25,246,126,71,
+227,143,233,57,57,121,72,13,105,169,51,93,105,154,204,141,243,225,222,172,95,
+151,70,227,209,126,128,65,116,186,85,92,127,168,115,44,156,218,204,147,236,111,
+100,83,113,94,126,128,69,101,98,132,44,115,124,124,114,126,45,123,57,145,88,102,
+56,149,60,110,153,156,157,158,159,160,161,162,149,142,120,145,165,76,164,168,
+148,167,171,152,173,174,54,170,177,125,126,180,178,176,177,179,76,28,107,26,100,
+163,34,97,69,69,192,162,74,196,197,163,201,201,155,160,204,196,206,159,208,117,
+163,195,204,198,160,200,209,66,161,189,35,147,184,78,183,169,227,228,229,78,189,
+191,231,226,62,208,225,186,154,208,108,231,150,212,240,174,238,247,236,181,36,
+219,201,217,60,253,35,22,80,224,187,96,111,0,130,226,199,176,161,67,90,219,128,
+61,196,49,144,204,68,27,3,139,93,244,144,49,137,175,143,32,67,138,244,149,225,
+130,201,147,38,3,51,132,0,0,33,249,4,5,10,0,31,0,44,34,0,7,0,34,0,54,0,0,5,202,
+224,39,138,94,105,158,168,57,174,236,154,190,104,43,143,112,237,205,179,13,227,
+178,254,242,45,95,10,200,18,198,136,52,163,10,73,82,150,152,77,39,116,74,141,42,
+167,206,39,52,123,171,122,191,224,176,120,76,46,155,207,232,244,151,195,230,156,
+57,154,140,60,227,94,107,52,245,185,190,62,229,232,229,113,127,114,85,129,130,
+134,83,1,126,130,23,134,25,136,138,127,140,135,80,137,141,134,124,76,144,127,
+112,43,28,90,80,154,114,158,30,109,163,93,125,123,58,72,92,75,64,172,39,106,177,
+76,175,63,69,175,112,119,152,46,172,133,162,61,92,161,190,182,89,141,26,65,92,
+197,199,196,134,198,195,78,189,115,186,31,172,193,205,100,112,209,68,144,120,
+102,208,116,180,90,193,25,26,224,93,222,114,229,34,231,25,233,31,25,23,240,241,
+240,119,244,245,246,247,244,33,0,33,249,4,5,10,0,31,0,44,36,0,13,0,26,0,48,0,0,
+5,196,224,39,138,156,102,114,99,170,174,100,230,186,26,43,143,220,107,163,243,
+26,104,182,157,235,188,158,235,167,218,9,135,196,84,77,24,75,166,130,55,167,
+106,153,209,224,164,88,44,103,123,205,150,162,217,207,177,155,164,246,178,208,
+51,54,237,211,30,51,225,177,103,78,247,252,190,175,79,189,46,219,115,57,123,
+124,44,129,132,123,125,133,136,42,0,139,136,137,41,139,0,141,30,93,100,31,144,
+141,102,46,28,1,131,133,98,71,14,157,132,153,47,26,156,41,152,111,149,57,164,
+154,104,76,97,164,171,101,39,78,84,86,97,31,108,25,128,146,83,71,26,146,118,79,
+111,194,42,187,46,198,196,71,202,52,114,190,191,54,193,205,74,38,86,194,216,217,
+218,219,136,102,171,194,178,43,146,173,188,42,227,170,199,214,234,214,25,23,238,
+239,238,112,41,33,0,33,249,4,5,10,0,31,0,44,38,0,5,0,21,0,56,0,0,5,232,224,39,
+142,80,52,158,104,202,101,25,151,190,98,166,105,172,11,167,44,171,125,156,125,
+139,171,26,173,245,27,245,56,195,93,17,185,11,250,96,131,97,203,89,20,205,106,
+181,170,199,99,67,102,127,219,174,231,11,3,132,129,231,159,57,204,217,186,223,
+111,145,185,7,175,199,81,109,207,76,249,91,105,182,82,79,48,109,121,71,85,64,68,
+135,39,52,127,112,76,26,130,136,132,133,57,58,47,121,34,92,149,57,28,1,153,118,
+122,155,57,3,159,118,82,155,164,31,160,161,162,25,169,171,65,155,26,175,171,167,
+53,158,170,171,154,58,79,186,160,138,192,193,194,39,190,118,55,73,160,0,0,120,
+162,121,111,2,56,173,117,27,203,70,173,45,117,204,173,206,110,218,205,198,39,
+215,191,39,177,156,197,110,73,96,231,235,117,71,189,190,167,124,240,162,74,186,
+229,149,46,246,215,249,176,251,185,160,247,56,85,177,37,67,81,188,17,231,220,17,
+99,199,176,225,186,61,16,35,74,220,19,2,0,59};
static Fl_Image *image_fluid() {
- static Fl_Image *image = new Fl_Pixmap(idata_fluid);
+ Fl_GIF_Image::animate = true;
+ static Fl_Image *image = NULL;
+ if (!image)
+ image = new Fl_Anim_GIF_Image("fluid.animated.gif", idata_fluid, 2545);
return image;
}
@@ -275,6 +166,8 @@ Fl_Double_Window* make_about_panel() {
about_panel->hotspot(about_panel);
{ Fl_Box* o = new Fl_Box(10, 10, 115, 120);
o->image( image_fluid() );
+ ((Fl_Anim_GIF_Image*)(image_fluid()))->canvas(o, Fl_Anim_GIF_Image::DONT_RESIZE_CANVAS);
+ ((Fl_Anim_GIF_Image*)(o->image()))->speed(0.5f);
} // Fl_Box* o
{ Fl_Box* o = new Fl_Box(135, 10, 205, 75, "FLTK User\nInterface Designer\nVersion x.x.x");
o->color((Fl_Color)12);
diff --git a/fluid/about_panel.fl b/fluid/about_panel.fl
index 2d465a81d..82c8ce627 100644
--- a/fluid/about_panel.fl
+++ b/fluid/about_panel.fl
@@ -36,11 +36,12 @@ if (!cbuf[0]) {
}} {}
Fl_Window about_panel {
label {About FLUID} open
- xywh {449 217 345 180} type Double color 50 selection_color 47 hide hotspot
- code0 {\#include "../src/flstring.h"} non_modal
+ xywh {449 217 345 180} type Double color 50 selection_color 47 hotspot
+ code0 {\#include "../src/flstring.h"} non_modal visible
} {
- Fl_Box {} {
- image {icons/fluid-96.xpm} xywh {10 10 115 120}
+ Fl_Box {} {selected
+ image {icons/fluid.animated.gif} compress_image 1 xywh {10 10 115 120}
+ code0 {((Fl_Anim_GIF_Image*)(o->image()))->speed(0.5f);}
}
Fl_Box {} {
label {FLTK User
@@ -59,7 +60,7 @@ Version x.x.x}
}
Fl_Button {} {
label {View License...}
- callback {show_help("license.html");} selected
+ callback {show_help("license.html");}
xywh {115 145 123 25} labelcolor 136
}
Fl_Return_Button {} {
diff --git a/fluid/icons/fluid.animated.gif b/fluid/icons/fluid.animated.gif
new file mode 100644
index 000000000..c21399160
--- /dev/null
+++ b/fluid/icons/fluid.animated.gif
Binary files differ