Change colbrowser to btter conform to FLTK coding standards. For OS X bundle format, move the RGB file into the bundel.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8166 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
4be4baed6b
commit
5f2aa6ca9c
@ -655,6 +655,7 @@
|
||||
C9EDD4ED1274BBCD00ADB21C /* forms.H in CopyFiles */ = {isa = PBXBuildFile; fileRef = E0132688B22159A85307F264 /* forms.H */; };
|
||||
C9EDD5531274C04500ADB21C /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05376DC900B2C885B847EA36 /* OpenGL.framework */; };
|
||||
C9EDD5B31274C51600ADB21C /* Fl_PostScript.H in CopyFiles */ = {isa = PBXBuildFile; fileRef = C9EDD5B11274C4FA00ADB21C /* Fl_PostScript.H */; };
|
||||
C9F9C0DE12CFCDAC0067ADCC /* rgb.txt in Resources */ = {isa = PBXBuildFile; fileRef = C9F9C0DD12CFCDAC0067ADCC /* rgb.txt */; };
|
||||
CA035B0265710EFABD6E632D /* Fl_Dial.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 3AFC31503AB99F6D00BAC647 /* Fl_Dial.cxx */; };
|
||||
CAA4C60E679571629681FAC8 /* fltk.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; };
|
||||
CAF6CE97B3EBEFFA65AAEEAD /* Fl_Widget.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 0B9D4355B2E878715DD43AD3 /* Fl_Widget.cxx */; };
|
||||
@ -4484,6 +4485,7 @@
|
||||
C9EDD4E61274BBB600ADB21C /* jpeglib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jpeglib.h; path = ../../jpeg/jpeglib.h; sourceTree = SOURCE_ROOT; };
|
||||
C9EDD5B11274C4FA00ADB21C /* Fl_PostScript.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_PostScript.H; path = ../../FL/Fl_PostScript.H; sourceTree = SOURCE_ROOT; };
|
||||
C9F1464F0E6A4DCD77AF72B8 /* Fl_Function_Type.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Function_Type.cxx; path = ../../fluid/Fl_Function_Type.cxx; sourceTree = SOURCE_ROOT; };
|
||||
C9F9C0DD12CFCDAC0067ADCC /* rgb.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = rgb.txt; path = ../../test/rgb.txt; sourceTree = SOURCE_ROOT; };
|
||||
CAEC632CEFC2CA7592EF9D74 /* image.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = image.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
CB23A4CE90D5A89FA2640A78 /* label.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = label.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
CC0C80DA4DD31B6B2DB91096 /* CodeEditor.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CodeEditor.cxx; path = ../../fluid/CodeEditor.cxx; sourceTree = SOURCE_ROOT; };
|
||||
@ -5647,6 +5649,7 @@
|
||||
2000E0C1AD91ACA63811D339 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C9F9C0DD12CFCDAC0067ADCC /* rgb.txt */,
|
||||
C9EDD143127338F600ADB21C /* README.OSX.txt */,
|
||||
5D444464FCF5714805936107 /* Applications */,
|
||||
188555DBC553F66588792C6B /* Frameworks */,
|
||||
@ -8525,6 +8528,7 @@
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
C9F9C0DE12CFCDAC0067ADCC /* rgb.txt in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -25,6 +25,7 @@
|
||||
// http://www.fltk.org/str.php
|
||||
//
|
||||
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Double_Window.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
@ -39,6 +40,7 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
// some constants
|
||||
|
||||
#define MAX_RGB 3000
|
||||
@ -46,6 +48,7 @@
|
||||
#define FL_FREE_COL4 ((Fl_Color)(FL_FREE_COLOR+3))
|
||||
#define FL_INDIANRED ((Fl_Color)(164))
|
||||
|
||||
|
||||
static Fl_Double_Window *cl;
|
||||
static Fl_Box *rescol;
|
||||
static Fl_Button *dbobj;
|
||||
@ -61,279 +64,284 @@ typedef struct { int r, g, b; } RGBdb;
|
||||
|
||||
static RGBdb rgbdb[MAX_RGB];
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
create_form_cl();
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
Fl::args(argc, argv);
|
||||
|
||||
create_form_cl();
|
||||
|
||||
#ifdef USING_XCODE
|
||||
strcpy(dbname, "../../../../../../../test/rgb.txt");
|
||||
// Xcode apps do not set the current directory
|
||||
strcpy(dbname, argv[0]);
|
||||
char *slash = strrchr(dbname, '/');
|
||||
if (slash)
|
||||
strcpy(slash, "/../Resources/rgb.txt");
|
||||
#else
|
||||
strcpy(dbname, "rgb.txt");
|
||||
#endif
|
||||
|
||||
if (load_browser(dbname))
|
||||
dbobj->label(dbname);
|
||||
else
|
||||
dbobj->label("None");
|
||||
dbobj->redraw();
|
||||
|
||||
cl->size_range(cl->w(),cl->h(),2*cl->w(),2*cl->h());
|
||||
|
||||
cl->label("RGB Browser");
|
||||
cl->free_position();
|
||||
cl->show(argc,argv);
|
||||
|
||||
return Fl::run();
|
||||
|
||||
if (load_browser(dbname))
|
||||
dbobj->label(dbname);
|
||||
else
|
||||
dbobj->label("None");
|
||||
dbobj->redraw();
|
||||
|
||||
cl->size_range(cl->w(),cl->h(),2*cl->w(),2*cl->h());
|
||||
|
||||
cl->label("RGB Browser");
|
||||
cl->free_position();
|
||||
cl->show(argc,argv);
|
||||
|
||||
return Fl::run();
|
||||
}
|
||||
|
||||
static void
|
||||
set_entry(int i)
|
||||
|
||||
static void set_entry(int i)
|
||||
{
|
||||
RGBdb *db = rgbdb + i;
|
||||
Fl::set_color(FL_FREE_COL4, db->r, db->g, db->b);
|
||||
rs->value(db->r);
|
||||
gs->value(db->g);
|
||||
bs->value(db->b);
|
||||
rescol->redraw();
|
||||
RGBdb *db = rgbdb + i;
|
||||
Fl::set_color(FL_FREE_COL4, db->r, db->g, db->b);
|
||||
rs->value(db->r);
|
||||
gs->value(db->g);
|
||||
bs->value(db->b);
|
||||
rescol->redraw();
|
||||
}
|
||||
|
||||
static void
|
||||
br_cb(Fl_Widget *ob, long)
|
||||
{
|
||||
int r = ((Fl_Browser *)ob)->value();
|
||||
|
||||
if (r <= 0)
|
||||
return;
|
||||
set_entry(r - 1);
|
||||
static void br_cb(Fl_Widget *ob, long)
|
||||
{
|
||||
int r = ((Fl_Browser *)ob)->value();
|
||||
|
||||
if (r <= 0)
|
||||
return;
|
||||
set_entry(r - 1);
|
||||
}
|
||||
|
||||
static int
|
||||
read_entry(FILE * fp, int *r, int *g, int *b, char *name)
|
||||
|
||||
static int read_entry(FILE * fp, int *r, int *g, int *b, char *name)
|
||||
{
|
||||
int n;
|
||||
char buf[512], *p;
|
||||
|
||||
if (!fgets(buf, sizeof(buf) - 1, fp))
|
||||
return 0;
|
||||
|
||||
if(buf[0] == '!') {
|
||||
if (fgets(buf,sizeof(buf)-1,fp)==0) {
|
||||
/* ignore */
|
||||
}
|
||||
int n;
|
||||
char buf[512], *p;
|
||||
|
||||
if (!fgets(buf, sizeof(buf) - 1, fp))
|
||||
return 0;
|
||||
|
||||
if(buf[0] == '!') {
|
||||
if (fgets(buf,sizeof(buf)-1,fp)==0) {
|
||||
/* ignore */
|
||||
}
|
||||
|
||||
if(sscanf(buf, " %d %d %d %n", r, g, b, &n) < 3)
|
||||
return 0;
|
||||
|
||||
p = buf + n;
|
||||
|
||||
/* squeeze out all spaces */
|
||||
while (*p)
|
||||
{
|
||||
if (*p != ' ' && *p != '\n')
|
||||
*name++ = *p;
|
||||
p++;
|
||||
}
|
||||
*name = 0;
|
||||
|
||||
return (feof(fp) || ferror(fp)) ? 0 : 1;
|
||||
}
|
||||
|
||||
if(sscanf(buf, " %d %d %d %n", r, g, b, &n) < 3)
|
||||
return 0;
|
||||
|
||||
p = buf + n;
|
||||
|
||||
/* squeeze out all spaces */
|
||||
while (*p)
|
||||
{
|
||||
if (*p != ' ' && *p != '\n')
|
||||
*name++ = *p;
|
||||
p++;
|
||||
}
|
||||
*name = 0;
|
||||
|
||||
return (feof(fp) || ferror(fp)) ? 0 : 1;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
load_browser(char *fname)
|
||||
static int load_browser(char *fname)
|
||||
{
|
||||
FILE *fp;
|
||||
RGBdb *db = rgbdb, *dbs = db + MAX_RGB;
|
||||
int r, g, b, lr = -1 , lg = -1, lb = -1;
|
||||
char name[256], buf[256];
|
||||
FILE *fp;
|
||||
RGBdb *db = rgbdb, *dbs = db + MAX_RGB;
|
||||
int r, g, b, lr = -1 , lg = -1, lb = -1;
|
||||
char name[256], buf[256];
|
||||
#ifdef __EMX__
|
||||
if (!(fp = fl_fopen(__XOS2RedirRoot(fname), "r")))
|
||||
if (!(fp = fl_fopen(__XOS2RedirRoot(fname), "r")))
|
||||
#else
|
||||
if (!(fp = fl_fopen(fname, "r")))
|
||||
#endif
|
||||
{
|
||||
fl_alert("%s\n%s\n%s","Load", fname, "Can't open");
|
||||
return 0;
|
||||
fl_alert("%s\n%s\n%s","Load", fname, "Can't open");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* read the items */
|
||||
|
||||
for (; db < dbs && read_entry(fp, &r, &g, &b, name);)
|
||||
|
||||
/* read the items */
|
||||
|
||||
for (; db < dbs && read_entry(fp, &r, &g, &b, name);)
|
||||
{
|
||||
db->r = r;
|
||||
db->g = g;
|
||||
db->b = b;
|
||||
|
||||
/* unique the entries on the fly */
|
||||
if (lr != r || lg != g || lb != b)
|
||||
{
|
||||
db->r = r;
|
||||
db->g = g;
|
||||
db->b = b;
|
||||
|
||||
/* unique the entries on the fly */
|
||||
if (lr != r || lg != g || lb != b)
|
||||
{
|
||||
db++;
|
||||
lr = r;
|
||||
lg = g;
|
||||
lb = b;
|
||||
sprintf(buf, "(%3d %3d %3d) %s", r, g, b, name);
|
||||
colbr->add(buf);
|
||||
}
|
||||
db++;
|
||||
lr = r;
|
||||
lg = g;
|
||||
lb = b;
|
||||
sprintf(buf, "(%3d %3d %3d) %s", r, g, b, name);
|
||||
colbr->add(buf);
|
||||
}
|
||||
fclose(fp);
|
||||
|
||||
if (db < dbs)
|
||||
db->r = 1000; /* sentinel */
|
||||
else
|
||||
{
|
||||
db--;
|
||||
db->r = 1000;
|
||||
}
|
||||
|
||||
colbr->topline(1);
|
||||
colbr->select(1,1);
|
||||
set_entry(0);
|
||||
|
||||
return 1;
|
||||
}
|
||||
fclose(fp);
|
||||
|
||||
if (db < dbs)
|
||||
db->r = 1000; /* sentinel */
|
||||
else
|
||||
{
|
||||
db--;
|
||||
db->r = 1000;
|
||||
}
|
||||
|
||||
colbr->topline(1);
|
||||
colbr->select(1,1);
|
||||
set_entry(0);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
search_entry(int r, int g, int b)
|
||||
|
||||
static int search_entry(int r, int g, int b)
|
||||
{
|
||||
register RGBdb *db = rgbdb;
|
||||
int i, j, diffr, diffg, diffb;
|
||||
unsigned int diff, mindiff;
|
||||
|
||||
mindiff = (unsigned int)~0;
|
||||
for (i = j = 0; db->r < 256; db++, i++)
|
||||
{
|
||||
diffr = r - db->r;
|
||||
diffg = g - db->g;
|
||||
diffb = b - db->b;
|
||||
|
||||
register RGBdb *db = rgbdb;
|
||||
int i, j, diffr, diffg, diffb;
|
||||
unsigned int diff, mindiff;
|
||||
|
||||
mindiff = (unsigned int)~0;
|
||||
for (i = j = 0; db->r < 256; db++, i++)
|
||||
{
|
||||
diffr = r - db->r;
|
||||
diffg = g - db->g;
|
||||
diffb = b - db->b;
|
||||
|
||||
#ifdef FL_LINEAR
|
||||
diff = unsigned(3.0 * (FL_abs(r - db->r)) +
|
||||
(5.9 * FL_abs(g - db->g)) +
|
||||
(1.1 * (FL_abs(b - db->b)));
|
||||
diff = unsigned(3.0 * (FL_abs(r - db->r)) +
|
||||
(5.9 * FL_abs(g - db->g)) +
|
||||
(1.1 * (FL_abs(b - db->b))));
|
||||
#else
|
||||
diff = unsigned(3.0 * (diffr *diffr) +
|
||||
5.9 * (diffg *diffg) +
|
||||
1.1 * (diffb *diffb));
|
||||
diff = unsigned(3.0 * (diffr *diffr) +
|
||||
5.9 * (diffg *diffg) +
|
||||
1.1 * (diffb *diffb));
|
||||
#endif
|
||||
|
||||
if (mindiff > diff)
|
||||
{
|
||||
mindiff = diff;
|
||||
j = i;
|
||||
}
|
||||
|
||||
if (mindiff > diff)
|
||||
{
|
||||
mindiff = diff;
|
||||
j = i;
|
||||
}
|
||||
|
||||
return j;
|
||||
}
|
||||
|
||||
return j;
|
||||
}
|
||||
|
||||
static void
|
||||
search_rgb(Fl_Widget *, long)
|
||||
|
||||
static void search_rgb(Fl_Widget *, long)
|
||||
{
|
||||
int r, g, b, i;
|
||||
int top = colbr->topline();
|
||||
|
||||
r = int(rs->value());
|
||||
g = int(gs->value());
|
||||
b = int(bs->value());
|
||||
|
||||
// fl_freeze_form(cl);
|
||||
Fl::set_color(FL_FREE_COL4, r, g, b);
|
||||
rescol->redraw();
|
||||
i = search_entry(r, g, b);
|
||||
/* change topline only if necessary */
|
||||
if(i < top || i > (top+15))
|
||||
colbr->topline(i-8);
|
||||
colbr->select(i+1, 1);
|
||||
// fl_unfreeze_form(cl);
|
||||
int r, g, b, i;
|
||||
int top = colbr->topline();
|
||||
|
||||
r = int(rs->value());
|
||||
g = int(gs->value());
|
||||
b = int(bs->value());
|
||||
|
||||
// fl_freeze_form(cl);
|
||||
Fl::set_color(FL_FREE_COL4, r, g, b);
|
||||
rescol->redraw();
|
||||
i = search_entry(r, g, b);
|
||||
/* change topline only if necessary */
|
||||
if(i < top || i > (top+15))
|
||||
colbr->topline(i-8);
|
||||
colbr->select(i+1, 1);
|
||||
// fl_unfreeze_form(cl);
|
||||
}
|
||||
|
||||
|
||||
/* change database */
|
||||
static void
|
||||
db_cb(Fl_Widget * ob, long)
|
||||
static void db_cb(Fl_Widget * ob, long)
|
||||
{
|
||||
const char *p = fl_input("Enter New Database Name", dbname);
|
||||
char buf[512];
|
||||
|
||||
if (!p || strcmp(p, dbname) == 0)
|
||||
return;
|
||||
|
||||
strcpy(buf, p);
|
||||
if (load_browser(buf))
|
||||
strcpy(dbname, buf);
|
||||
else
|
||||
ob->label(dbname);
|
||||
const char *p = fl_input("Enter New Database Name", dbname);
|
||||
char buf[512];
|
||||
|
||||
if (!p || strcmp(p, dbname) == 0)
|
||||
return;
|
||||
|
||||
strcpy(buf, p);
|
||||
if (load_browser(buf))
|
||||
strcpy(dbname, buf);
|
||||
else
|
||||
ob->label(dbname);
|
||||
}
|
||||
|
||||
static void
|
||||
done_cb(Fl_Widget *, long)
|
||||
|
||||
static void done_cb(Fl_Widget *, long)
|
||||
{
|
||||
exit(0);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
static void
|
||||
create_form_cl(void)
|
||||
|
||||
static void create_form_cl(void)
|
||||
{
|
||||
if (cl)
|
||||
return;
|
||||
|
||||
cl = new Fl_Double_Window(400,385);
|
||||
cl->box(FL_UP_BOX);
|
||||
cl->color(FL_INDIANRED, FL_GRAY);
|
||||
|
||||
Fl_Box *title = new Fl_Box(40, 10, 300, 30, "Color Browser");
|
||||
title->box(FL_NO_BOX);
|
||||
title->labelcolor(FL_RED);
|
||||
title->labelsize(32);
|
||||
title->labelfont(FL_HELVETICA_BOLD);
|
||||
title->labeltype(FL_SHADOW_LABEL);
|
||||
|
||||
dbobj = new Fl_Button(40, 50, 300, 25, "");
|
||||
dbobj->type(FL_NORMAL_BUTTON);
|
||||
dbobj->box(FL_BORDER_BOX);
|
||||
dbobj->color(FL_INDIANRED,FL_INDIANRED);
|
||||
dbobj->callback(db_cb, 0);
|
||||
|
||||
colbr = new Fl_Hold_Browser(10, 90, 280, 240, "");
|
||||
colbr->textfont(FL_COURIER);
|
||||
colbr->callback(br_cb, 0);
|
||||
colbr->box(FL_DOWN_BOX);
|
||||
|
||||
rescol = new Fl_Box(300, 90, 90, 35, "");
|
||||
rescol->color(FL_FREE_COL4, FL_FREE_COL4);
|
||||
rescol->box(FL_BORDER_BOX);
|
||||
|
||||
rs = new Fl_Value_Slider(300, 130, 30, 200, "");
|
||||
rs->type(FL_VERT_FILL_SLIDER);
|
||||
rs->color(FL_INDIANRED, FL_RED);
|
||||
rs->bounds(0, 255);
|
||||
rs->precision(0);
|
||||
rs->callback(search_rgb, 0);
|
||||
rs->when(FL_WHEN_RELEASE);
|
||||
|
||||
gs = new Fl_Value_Slider(330, 130, 30, 200, "");
|
||||
gs->type(FL_VERT_FILL_SLIDER);
|
||||
gs->color(FL_INDIANRED, FL_GREEN);
|
||||
gs->bounds(0, 255);
|
||||
gs->precision(0);
|
||||
gs->callback(search_rgb, 1);
|
||||
gs->when(FL_WHEN_RELEASE);
|
||||
|
||||
bs = new Fl_Value_Slider(360, 130, 30, 200, "");
|
||||
bs->type(FL_VERT_FILL_SLIDER);
|
||||
bs->color(FL_INDIANRED, FL_BLUE);
|
||||
bs->bounds(0, 255);
|
||||
bs->precision(0);
|
||||
bs->callback(search_rgb, 2);
|
||||
bs->when(FL_WHEN_RELEASE);
|
||||
|
||||
Fl_Button *done = new Fl_Button(160, 345, 80, 30, "Done");
|
||||
done->type(FL_NORMAL_BUTTON);
|
||||
done->callback(done_cb, 0);
|
||||
|
||||
cl->end();
|
||||
cl->resizable(cl);
|
||||
if (cl)
|
||||
return;
|
||||
|
||||
cl = new Fl_Double_Window(400,385);
|
||||
cl->box(FL_UP_BOX);
|
||||
cl->color(FL_INDIANRED, FL_GRAY);
|
||||
|
||||
Fl_Box *title = new Fl_Box(40, 10, 300, 30, "Color Browser");
|
||||
title->box(FL_NO_BOX);
|
||||
title->labelcolor(FL_RED);
|
||||
title->labelsize(32);
|
||||
title->labelfont(FL_HELVETICA_BOLD);
|
||||
title->labeltype(FL_SHADOW_LABEL);
|
||||
|
||||
dbobj = new Fl_Button(40, 50, 300, 25, "");
|
||||
dbobj->type(FL_NORMAL_BUTTON);
|
||||
dbobj->box(FL_BORDER_BOX);
|
||||
dbobj->color(FL_INDIANRED,FL_INDIANRED);
|
||||
dbobj->callback(db_cb, 0);
|
||||
|
||||
colbr = new Fl_Hold_Browser(10, 90, 280, 240, "");
|
||||
colbr->textfont(FL_COURIER);
|
||||
colbr->callback(br_cb, 0);
|
||||
colbr->box(FL_DOWN_BOX);
|
||||
|
||||
rescol = new Fl_Box(300, 90, 90, 35, "");
|
||||
rescol->color(FL_FREE_COL4, FL_FREE_COL4);
|
||||
rescol->box(FL_BORDER_BOX);
|
||||
|
||||
rs = new Fl_Value_Slider(300, 130, 30, 200, "");
|
||||
rs->type(FL_VERT_FILL_SLIDER);
|
||||
rs->color(FL_INDIANRED, FL_RED);
|
||||
rs->bounds(0, 255);
|
||||
rs->precision(0);
|
||||
rs->callback(search_rgb, 0);
|
||||
rs->when(FL_WHEN_RELEASE);
|
||||
|
||||
gs = new Fl_Value_Slider(330, 130, 30, 200, "");
|
||||
gs->type(FL_VERT_FILL_SLIDER);
|
||||
gs->color(FL_INDIANRED, FL_GREEN);
|
||||
gs->bounds(0, 255);
|
||||
gs->precision(0);
|
||||
gs->callback(search_rgb, 1);
|
||||
gs->when(FL_WHEN_RELEASE);
|
||||
|
||||
bs = new Fl_Value_Slider(360, 130, 30, 200, "");
|
||||
bs->type(FL_VERT_FILL_SLIDER);
|
||||
bs->color(FL_INDIANRED, FL_BLUE);
|
||||
bs->bounds(0, 255);
|
||||
bs->precision(0);
|
||||
bs->callback(search_rgb, 2);
|
||||
bs->when(FL_WHEN_RELEASE);
|
||||
|
||||
Fl_Button *done = new Fl_Button(160, 345, 80, 30, "Done");
|
||||
done->type(FL_NORMAL_BUTTON);
|
||||
done->callback(done_cb, 0);
|
||||
|
||||
cl->end();
|
||||
cl->resizable(cl);
|
||||
}
|
||||
|
||||
//
|
||||
|
Loading…
x
Reference in New Issue
Block a user