summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/browser.cxx10
-rw-r--r--test/color_chooser.cxx42
-rw-r--r--test/demo.cxx80
-rw-r--r--test/fullscreen.cxx4
4 files changed, 77 insertions, 59 deletions
diff --git a/test/browser.cxx b/test/browser.cxx
index 064260d5e..df5de0fa3 100644
--- a/test/browser.cxx
+++ b/test/browser.cxx
@@ -148,13 +148,17 @@ int main(int argc, char **argv) {
#elif defined(USING_XCODE)
if ( i == argc )
{
- fname = "../../../../test/browser.cxx";
- done = browser->load(fname);
+ char buf[2048];
+ strcpy(buf, argv[0]);
+ char *slash = strrchr(buf, '/');
+ if (slash)
+ strcpy(slash, "/../Resources/browser.cxx");
+ done = browser->load(buf);
}
#endif
if ( !done )
{
- printf("Can't load %s, %s\n", fname, strerror(errno));
+ fl_message("Can't load %s, %s\n", fname, strerror(errno));
exit(1);
}
}
diff --git a/test/color_chooser.cxx b/test/color_chooser.cxx
index 8b89f0245..e737dcfec 100644
--- a/test/color_chooser.cxx
+++ b/test/color_chooser.cxx
@@ -63,7 +63,7 @@ class Pens : public Fl_Box {
void draw();
public:
Pens(int X, int Y, int W, int H, const char* L)
- : Fl_Box(X,Y,W,H,L) {}
+ : Fl_Box(X,Y,W,H,L) {}
};
void Pens::draw() {
// use every color in the gray ramp:
@@ -112,11 +112,11 @@ int main(int argc, char ** argv) {
Pens p(80,200,3*8,120,"lines");
p.align(FL_ALIGN_TOP);
int i = 1;
- if (!Fl::args(argc,argv,i) || i != argc-1) {
+ if (!Fl::args(argc,argv,i) || i < argc-1) {
printf("usage: %s <switches> visual-number\n"
- " - : default visual\n"
- " r : call Fl::visual(FL_RGB)\n"
- " c : call Fl::own_colormap()\n",argv[0]);
+ " - : default visual\n"
+ " r : call Fl::visual(FL_RGB)\n"
+ " c : call Fl::own_colormap()\n",argv[0]);
#if !defined(WIN32) && !defined(__APPLE__)
printf(" # : use this visual with an empty colormap:\n");
list_visuals();
@@ -124,24 +124,26 @@ int main(int argc, char ** argv) {
puts(Fl::help);
exit(1);
}
- if (argv[i][0] == 'r') {
- if (!Fl::visual(FL_RGB)) printf("Fl::visual(FL_RGB) returned false.\n");
- } else if (argv[i][0] == 'c') {
- Fl::own_colormap();
- } else if (argv[i][0] != '-') {
+ if (i!=argc) {
+ if (argv[i][0] == 'r') {
+ if (!Fl::visual(FL_RGB)) printf("Fl::visual(FL_RGB) returned false.\n");
+ } else if (argv[i][0] == 'c') {
+ Fl::own_colormap();
+ } else if (argv[i][0] != '-') {
#if !defined(WIN32) && !defined(__APPLE__)
- int visid = atoi(argv[i]);
- fl_open_display();
- XVisualInfo templt; int num;
- templt.visualid = visid;
- fl_visual = XGetVisualInfo(fl_display, VisualIDMask, &templt, &num);
- if (!fl_visual) Fl::fatal("No visual with id %d",visid);
- fl_colormap = XCreateColormap(fl_display, RootWindow(fl_display,fl_screen),
- fl_visual->visual, AllocNone);
- fl_xpixel(FL_BLACK); // make sure black is allocated
+ int visid = atoi(argv[i]);
+ fl_open_display();
+ XVisualInfo templt; int num;
+ templt.visualid = visid;
+ fl_visual = XGetVisualInfo(fl_display, VisualIDMask, &templt, &num);
+ if (!fl_visual) Fl::fatal("No visual with id %d",visid);
+ fl_colormap = XCreateColormap(fl_display, RootWindow(fl_display,fl_screen),
+ fl_visual->visual, AllocNone);
+ fl_xpixel(FL_BLACK); // make sure black is allocated
#else
- Fl::fatal("Visual id's not supported on MSWindows or MacOS.");
+ Fl::fatal("Visual id's not supported on MSWindows or MacOS.");
#endif
+ }
}
window.show(argc,argv);
return Fl::run();
diff --git a/test/demo.cxx b/test/demo.cxx
index d380567f7..f0350c627 100644
--- a/test/demo.cxx
+++ b/test/demo.cxx
@@ -154,7 +154,7 @@ int b2n[][9] = {
{ 0, -1, 1, 2, 3, 4, 5, -1, 6},
{ 0, 1, 2, 3, -1, 4, 5, 6, 7},
{ 0, 1, 2, 3, 4, 5, 6, 7, 8}
- };
+};
int n2b[][9] = {
{ 4, -1, -1, -1, -1, -1, -1, -1, -1},
{ 3, 5, -1, -1, -1, -1, -1, -1, -1},
@@ -165,17 +165,17 @@ int n2b[][9] = {
{ 0, 2, 3, 4, 5, 6, 8, -1, -1},
{ 0, 1, 2, 3, 5, 6, 7, 8, -1},
{ 0, 1, 2, 3, 4, 5, 6, 7, 8}
- };
+};
int but2numb(int bnumb, int maxnumb)
/* Transforms a button number to an item number when there are
- maxnumb items in total. -1 if the button should not exist. */
- { return b2n[maxnumb][bnumb]; }
+ maxnumb items in total. -1 if the button should not exist. */
+{ return b2n[maxnumb][bnumb]; }
int numb2but(int inumb, int maxnumb)
/* Transforms an item number to a button number when there are
- maxnumb items in total. -1 if the item should not exist. */
- { return n2b[maxnumb][inumb]; }
+ maxnumb items in total. -1 if the item should not exist. */
+{ return n2b[maxnumb][inumb]; }
/* Pushing and Popping menus */
@@ -222,33 +222,33 @@ void dobut(Fl_Widget *, long arg)
if (menus[men].icommand[bn][0] == '@')
push_menu(menus[men].icommand[bn]);
else {
-
+
#ifdef WIN32
STARTUPINFO suInfo; // Process startup information
PROCESS_INFORMATION prInfo; // Process information
-
+
memset(&suInfo, 0, sizeof(suInfo));
suInfo.cb = sizeof(suInfo);
-
+
int icommand_length = strlen(menus[men].icommand[bn]);
-
+
char* copy_of_icommand = new char[icommand_length+1];
strcpy(copy_of_icommand,menus[men].icommand[bn]);
-
+
// On WIN32 the .exe suffix needs to be appended to the command
// whilst leaving any additional parameters unchanged - this
// is required to handle the correct conversion of cases such as :
// `../fluid/fluid valuators.fl' to '../fluid/fluid.exe valuators.fl'.
-
+
// skip leading spaces.
char* start_command = copy_of_icommand;
while(*start_command == ' ') ++start_command;
-
+
// find the space between the command and parameters if one exists.
char* start_parameters = strchr(start_command,' ');
-
+
char* command = new char[icommand_length+6]; // 6 for extra 'd.exe\0'
-
+
if (start_parameters==NULL) { // no parameters required.
# ifdef _DEBUG
sprintf(command, "%sd.exe", start_command);
@@ -261,38 +261,46 @@ void dobut(Fl_Widget *, long arg)
*start_parameters = 0;
// move start_paremeters to skip over the intermediate space.
++start_parameters;
-
+
# ifdef _DEBUG
sprintf(command, "%sd.exe %s", start_command, start_parameters);
# else
sprintf(command, "%s.exe %s", start_command, start_parameters);
# endif // _DEBUG
}
-
+
CreateProcess(NULL, command, NULL, NULL, FALSE,
NORMAL_PRIORITY_CLASS, NULL, NULL, &suInfo, &prInfo);
-
+
delete[] command;
delete[] copy_of_icommand;
-
+
#elif defined USING_XCODE
-
- int icommand_length = strlen(menus[men].icommand[bn]);
- char* command = new char[icommand_length+24]; // extraspace for 'open ../../(name).app &\0'
+ char *cmd = strdup(menus[men].icommand[bn]);
+ char *arg = strchr(cmd, ' ');
- sprintf(command, "open ../../../%s.app &", menus[men].icommand[bn]);
+ char command[2048];
+ if (arg) {
+ *arg = 0;
+ if (strcmp(cmd, "../fluid/fluid")==0)
+ sprintf(command, "open ../../../Fluid.app --args %s", arg+1);
+ else
+ sprintf(command, "open ../../../%s.app --args %s", cmd, arg+1);
+ } else {
+ sprintf(command, "open ../../../%s.app", cmd);
+ }
+ puts(command);
system(command);
- delete[] command;
-
+ free(cmd);
#else // NON WIN32 systems.
-
+
int icommand_length = strlen(menus[men].icommand[bn]);
char* command = new char[icommand_length+5]; // 5 for extra './' and ' &\0'
-
+
sprintf(command, "./%s &", menus[men].icommand[bn]);
system(command);
-
+
delete[] command;
#endif // WIN32
}
@@ -312,7 +320,7 @@ int load_the_menu(const char* fname)
if (fin == NULL)
{
#if defined ( __APPLE__ )
- // mac os bundle menu detection:
+ // mac os bundle menu detection:
char* pos = strrchr(fname,'/');
if (!pos) return 0;
*pos='\0';
@@ -322,7 +330,7 @@ int load_the_menu(const char* fname)
fin = fopen(fname,"r");
if (fin == NULL)
#endif
- return 0;
+ return 0;
}
for (;;) {
if (fgets(line,256,fin) == NULL) break;
@@ -345,10 +353,10 @@ int load_the_menu(const char* fname)
while (line[i] != ':' && line[i] != '\n')
{
if (line[i] == '\\') {
- i++;
- if (line[i] == 'n') iname[j++] = '\n';
- else iname[j++] = line[i];
- i++;
+ i++;
+ if (line[i] == 'n') iname[j++] = '\n';
+ else iname[j++] = line[i];
+ i++;
} else
iname[j++] = line[i++];
}
@@ -378,9 +386,9 @@ int main(int argc, char **argv) {
if (!Fl::args(argc,argv,i) || i < argc-1)
Fl::fatal("Usage: %s <switches> <menufile>\n%s",argv[0],Fl::help);
if (i < argc) fname = argv[i];
-
+
create_the_forms();
-
+
if (!load_the_menu(fname)) Fl::fatal("Can't open %s",fname);
if (buf!=fname)
strcpy(buf,fname);
diff --git a/test/fullscreen.cxx b/test/fullscreen.cxx
index 6e0c36e71..a1d837d9a 100644
--- a/test/fullscreen.cxx
+++ b/test/fullscreen.cxx
@@ -161,6 +161,10 @@ void fullscreen_cb(Fl_Widget *o, void *p) {
py = w->y();
pw = w->w();
ph = w->h();
+#ifndef WIN32//necessary because fullscreen removes border
+ border_button->value(0);
+ border_button->do_callback();
+#endif
w->fullscreen();
} else {
w->fullscreen_off(px,py,pw,ph);