Revamp variable tests so that we rarely need to provide "o" and
"w" variables. This eliminates most of the "variable is shadowed" warnings from GCC we get after creating .cxx files from FLUID. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5266 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
9ee02e0f01
commit
500d7616fd
7
CHANGES
7
CHANGES
@ -1,8 +1,11 @@
|
||||
CHANGES IN FLTK 1.1.8
|
||||
|
||||
- FLUID now only writes definitions of "o" and "w"
|
||||
variables as needed, reducing the number of "variable
|
||||
is shadowed" warnings from GCC.
|
||||
- Added access to Xft font pointer (STR #1328)
|
||||
- Fixed endianness in OS X mouse cursor graphics
|
||||
(STR #1348)
|
||||
- Fixed endianness in OS X mouse cursor graphics (STR
|
||||
#1348)
|
||||
- Fixed crash on mixed use of keyboard and mouse for
|
||||
Fl_Menu_Button (STR #1356)
|
||||
- Fixed Fl_Window::visible() and shown() for OS X
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
//
|
||||
// C function type code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2005 by Bill Spitzak and others.
|
||||
// Copyright 1998-2006 by Bill Spitzak and others.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Library General Public
|
||||
@ -334,7 +334,7 @@ void Fl_Function_Type::write_code1() {
|
||||
write_c("%s%s %s {\n", rtype, star, s);
|
||||
}
|
||||
}
|
||||
if (havewidgets) write_c(" %s* w;\n",subclassname(child));
|
||||
// if (havewidgets) write_c(" %s* w;\n",subclassname(child));
|
||||
indentation += 2;
|
||||
}
|
||||
|
||||
@ -1082,9 +1082,8 @@ Fl_Class_Type Fl_Class_type;
|
||||
|
||||
static Fl_Class_Type *current_class;
|
||||
extern Fl_Widget_Class_Type *current_widget_class;
|
||||
extern int varused_test;
|
||||
void write_public(int state) {
|
||||
if ((!current_class && !current_widget_class) || varused_test) return;
|
||||
if (!current_class && !current_widget_class) return;
|
||||
if (current_class && current_class->write_public_state == state) return;
|
||||
if (current_widget_class && current_widget_class->write_public_state == state) return;
|
||||
if (current_class) current_class->write_public_state = state;
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
// the Fl_Tabs widget, with special stuff to select tab items and
|
||||
// insure that only one is visible.
|
||||
//
|
||||
// Copyright 1998-2005 by Bill Spitzak and others.
|
||||
// Copyright 1998-2006 by Bill Spitzak and others.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Library General Public
|
||||
@ -124,9 +124,12 @@ void Fl_Group_Type::write_code1() {
|
||||
}
|
||||
|
||||
void Fl_Group_Type::write_code2() {
|
||||
const char *var = name() ? name() : "o";
|
||||
write_extra_code();
|
||||
write_c("%so->end();\n", indent());
|
||||
if (resizable()) write_c("%sFl_Group::current()->resizable(o);\n", indent());
|
||||
write_c("%s%s->end();\n", indent(), var);
|
||||
if (resizable()) {
|
||||
write_c("%sFl_Group::current()->resizable(%s);\n", indent(), var);
|
||||
}
|
||||
write_block_close();
|
||||
}
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
// This file also contains code to make Fl_Menu_Button, Fl_Menu_Bar,
|
||||
// etc widgets.
|
||||
//
|
||||
// Copyright 1998-2005 by Bill Spitzak and others.
|
||||
// Copyright 1998-2006 by Bill Spitzak and others.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Library General Public
|
||||
@ -373,7 +373,7 @@ void Fl_Menu_Item_Type::write_code1() {
|
||||
init = 1;
|
||||
write_c("%s{ Fl_Menu_Item* o = &%s[%d];\n", indent(), mname, i);
|
||||
}
|
||||
image->write_code();
|
||||
image->write_code("o");
|
||||
}
|
||||
for (int n=0; n < NUM_EXTRA_CODE; n++)
|
||||
if (extra_code(n) && !isdeclare(extra_code(n))) {
|
||||
@ -462,7 +462,7 @@ Fl_Type* Fl_Menu_Type::click_test(int, int) {
|
||||
|
||||
void Fl_Menu_Type::write_code2() {
|
||||
if (next && next->is_menu_item())
|
||||
write_c("%so->menu(%s);\n", indent(),
|
||||
write_c("%s%s->menu(%s);\n", indent(), name() ? name() : "o",
|
||||
unique_id(this, "menu", name(), label()));
|
||||
Fl_Widget_Type::write_code2();
|
||||
}
|
||||
|
||||
@ -11,7 +11,8 @@
|
||||
// instance of this object. It could also have a "copy()" function,
|
||||
// but it was easier to implement this by using the file read/write
|
||||
// that is needed to save the setup anyways.
|
||||
// Copyright 1998-2005 by Bill Spitzak and others.
|
||||
//
|
||||
// Copyright 1998-2006 by Bill Spitzak and others.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Library General Public
|
||||
|
||||
@ -1941,8 +1941,6 @@ const char *Fl_Type::callback_name() {
|
||||
return unique_id(this, "cb", name(), label());
|
||||
}
|
||||
|
||||
extern int varused_test, varused;
|
||||
|
||||
void Fl_Widget_Type::write_code1() {
|
||||
const char* t = subclassname(this);
|
||||
const char *c = array_name(this);
|
||||
@ -1960,17 +1958,23 @@ void Fl_Widget_Type::write_code1() {
|
||||
write_h(" static void %s(%s*, %s);\n", cn, t, ut);
|
||||
}
|
||||
// figure out if local variable will be used (prevent compiler warnings):
|
||||
if (is_parent())
|
||||
varused = 1;
|
||||
else {
|
||||
varused_test = 1; varused = 0;
|
||||
write_widget_code();
|
||||
varused_test = 0;
|
||||
int oused = !name();
|
||||
int wused = !name() && is_window();
|
||||
const char *ptr;
|
||||
|
||||
if (!oused) {
|
||||
for (int n=0; n < NUM_EXTRA_CODE; n++)
|
||||
if (extra_code(n) && !isdeclare(extra_code(n))) varused = 1;
|
||||
if (extra_code(n) && !isdeclare(extra_code(n)) &&
|
||||
(ptr = strstr(extra_code(n), "o->")) != NULL &&
|
||||
(ptr == extra_code(n) ||
|
||||
(!isalnum(ptr[-1] & 255) && ptr[-1] != '_'))) {
|
||||
oused = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
write_c(indent());
|
||||
if (varused) write_c("{ %s* o = ", t);
|
||||
if (oused) write_c("{ %s* o = ", t);
|
||||
if (name()) write_c("%s = ", name());
|
||||
if (is_window()) {
|
||||
// Handle special case where user is faking a Fl_Group type as a window,
|
||||
@ -2002,10 +2006,12 @@ void Fl_Widget_Type::write_code1() {
|
||||
}
|
||||
}
|
||||
write_c(");\n");
|
||||
indentation += 2;
|
||||
|
||||
if (is_window()) write_c("%sw = o;\n",indent());
|
||||
if (varused) write_widget_code();
|
||||
if (oused)
|
||||
indentation += 2;
|
||||
|
||||
if (wused) write_c("%s%s* w = o;\n",indent(), subclassname(this));
|
||||
write_widget_code();
|
||||
}
|
||||
|
||||
void Fl_Widget_Type::write_color(const char* field, Fl_Color color) {
|
||||
@ -2038,18 +2044,21 @@ void Fl_Widget_Type::write_color(const char* field, Fl_Color color) {
|
||||
case FL_DARK_CYAN: color_name = "FL_DARK_CYAN"; break;
|
||||
case FL_WHITE: color_name = "FL_WHITE"; break;
|
||||
}
|
||||
const char *var = is_class() ? "this" : name() ? name() : "o";
|
||||
if (color_name) {
|
||||
write_c("%so->%s(%s);\n", indent(), field, color_name);
|
||||
write_c("%s%s->%s(%s);\n", indent(), var, field, color_name);
|
||||
} else {
|
||||
write_c("%so->%s((Fl_Color)%d);\n", indent(), field, color);
|
||||
write_c("%s%s->%s((Fl_Color)%d);\n", indent(), var, field, color);
|
||||
}
|
||||
}
|
||||
|
||||
// this is split from write_code1() for Fl_Window_Type:
|
||||
void Fl_Widget_Type::write_widget_code() {
|
||||
Fl_Widget* tplate = ((Fl_Widget_Type*)factory)->o;
|
||||
const char *var = is_class() ? "this" : name() ? name() : "o";
|
||||
|
||||
if (tooltip() && *tooltip()) {
|
||||
write_c("%so->tooltip(",indent());
|
||||
write_c("%s%s->tooltip(",indent(), var);
|
||||
switch (i18n_type) {
|
||||
case 0 : /* None */
|
||||
write_cstring(tooltip());
|
||||
@ -2070,111 +2079,113 @@ void Fl_Widget_Type::write_widget_code() {
|
||||
}
|
||||
|
||||
if (is_spinner() && ((Fl_Spinner*)o)->type() != ((Fl_Spinner*)tplate)->type())
|
||||
write_c("%so->type(%d);\n", indent(), ((Fl_Spinner*)o)->type());
|
||||
write_c("%s%s->type(%d);\n", indent(), var, ((Fl_Spinner*)o)->type());
|
||||
else if (o->type() != tplate->type() && !is_window())
|
||||
write_c("%so->type(%d);\n", indent(), o->type());
|
||||
write_c("%s%s->type(%d);\n", indent(), var, o->type());
|
||||
if (o->box() != tplate->box() || subclass())
|
||||
write_c("%so->box(FL_%s);\n", indent(), boxname(o->box()));
|
||||
write_c("%s%s->box(FL_%s);\n", indent(), var, boxname(o->box()));
|
||||
if (is_button()) {
|
||||
Fl_Button* b = (Fl_Button*)o;
|
||||
if (b->down_box()) write_c("%so->down_box(FL_%s);\n", indent(),
|
||||
if (b->down_box()) write_c("%s%s->down_box(FL_%s);\n", indent(), var,
|
||||
boxname(b->down_box()));
|
||||
if (b->value()) write_c("%so->value(1);\n", indent());
|
||||
if (b->value()) write_c("%s%s->value(1);\n", indent(), var);
|
||||
if (b->shortcut())
|
||||
write_c("%so->shortcut(0x%x);\n", indent(), b->shortcut());
|
||||
write_c("%s%s->shortcut(0x%x);\n", indent(), var, b->shortcut());
|
||||
} else if (!strcmp(type_name(), "Fl_Input_Choice")) {
|
||||
Fl_Input_Choice* b = (Fl_Input_Choice*)o;
|
||||
if (b->down_box()) write_c("%so->down_box(FL_%s);\n", indent(),
|
||||
if (b->down_box()) write_c("%s%s->down_box(FL_%s);\n", indent(), var,
|
||||
boxname(b->down_box()));
|
||||
} else if (is_menu_button()) {
|
||||
Fl_Menu_* b = (Fl_Menu_*)o;
|
||||
if (b->down_box()) write_c("%so->down_box(FL_%s);\n", indent(),
|
||||
if (b->down_box()) write_c("%s%s->down_box(FL_%s);\n", indent(), var,
|
||||
boxname(b->down_box()));
|
||||
}
|
||||
if (o->color() != tplate->color() || subclass())
|
||||
write_color("color", o->color());
|
||||
if (o->selection_color() != tplate->selection_color() || subclass())
|
||||
write_color("selection_color", o->selection_color());
|
||||
if (image) image->write_code();
|
||||
if (inactive) inactive->write_code(1);
|
||||
if (image) image->write_code(var);
|
||||
if (inactive) inactive->write_code(var, 1);
|
||||
if (o->labeltype() != tplate->labeltype() || subclass())
|
||||
write_c("%so->labeltype(FL_%s);\n", indent(),
|
||||
write_c("%s%s->labeltype(FL_%s);\n", indent(), var,
|
||||
item_name(labeltypemenu, o->labeltype()));
|
||||
if (o->labelfont() != tplate->labelfont() || subclass())
|
||||
write_c("%so->labelfont(%d);\n", indent(), o->labelfont());
|
||||
write_c("%s%s->labelfont(%d);\n", indent(), var, o->labelfont());
|
||||
if (o->labelsize() != tplate->labelsize() || subclass())
|
||||
write_c("%so->labelsize(%d);\n", indent(), o->labelsize());
|
||||
write_c("%s%s->labelsize(%d);\n", indent(), var, o->labelsize());
|
||||
if (o->labelcolor() != tplate->labelcolor() || subclass())
|
||||
write_color("labelcolor", o->labelcolor());
|
||||
if (is_valuator()) {
|
||||
Fl_Valuator* v = (Fl_Valuator*)o;
|
||||
Fl_Valuator* f = (Fl_Valuator*)(tplate);
|
||||
if (v->minimum()!=f->minimum())
|
||||
write_c("%so->minimum(%g);\n", indent(), v->minimum());
|
||||
write_c("%s%s->minimum(%g);\n", indent(), var, v->minimum());
|
||||
if (v->maximum()!=f->maximum())
|
||||
write_c("%so->maximum(%g);\n", indent(), v->maximum());
|
||||
write_c("%s%s->maximum(%g);\n", indent(), var, v->maximum());
|
||||
if (v->step()!=f->step())
|
||||
write_c("%so->step(%g);\n", indent(), v->step());
|
||||
write_c("%s%s->step(%g);\n", indent(), var, v->step());
|
||||
if (v->value()) {
|
||||
if (is_valuator()==3) { // Fl_Scrollbar::value(double) is nott available
|
||||
write_c("%so->Fl_Slider::value(%g);\n", indent(), v->value());
|
||||
write_c("%s%s->Fl_Slider::value(%g);\n", indent(), var, v->value());
|
||||
} else {
|
||||
write_c("%so->value(%g);\n", indent(), v->value());
|
||||
write_c("%s%s->value(%g);\n", indent(), var, v->value());
|
||||
}
|
||||
}
|
||||
if (is_valuator()>=2) {
|
||||
double x = ((Fl_Slider*)v)->slider_size();
|
||||
double y = ((Fl_Slider*)f)->slider_size();
|
||||
if (x != y) write_c("%so->slider_size(%g);\n", indent(), x);
|
||||
if (x != y) write_c("%s%s->slider_size(%g);\n", indent(), var, x);
|
||||
}
|
||||
}
|
||||
if (is_spinner()) {
|
||||
Fl_Spinner* v = (Fl_Spinner*)o;
|
||||
Fl_Spinner* f = (Fl_Spinner*)(tplate);
|
||||
if (v->minimum()!=f->minimum())
|
||||
write_c("%so->minimum(%g);\n", indent(), v->minimum());
|
||||
write_c("%s%s->minimum(%g);\n", indent(), var, v->minimum());
|
||||
if (v->maximum()!=f->maximum())
|
||||
write_c("%so->maximum(%g);\n", indent(), v->maximum());
|
||||
write_c("%s%s->maximum(%g);\n", indent(), var, v->maximum());
|
||||
if (v->step()!=f->step())
|
||||
write_c("%so->step(%g);\n", indent(), v->step());
|
||||
write_c("%s%s->step(%g);\n", indent(), var, v->step());
|
||||
if (v->value())
|
||||
write_c("%so->value(%g);\n", indent(), v->value());
|
||||
write_c("%s%s->value(%g);\n", indent(), var, v->value());
|
||||
}
|
||||
|
||||
{Fl_Font ff; int fs; Fl_Color fc; if (textstuff(4,ff,fs,fc)) {
|
||||
Fl_Font f; int s; Fl_Color c; textstuff(0,f,s,c);
|
||||
if (f != ff) write_c("%so->textfont(%d);\n", indent(), f);
|
||||
if (s != fs) write_c("%so->textsize(%d);\n", indent(), s);
|
||||
if (c != fc) write_c("%so->textcolor(%d);\n",indent(), c);
|
||||
if (f != ff) write_c("%s%s->textfont(%d);\n", indent(), var, f);
|
||||
if (s != fs) write_c("%s%s->textsize(%d);\n", indent(), var, s);
|
||||
if (c != fc) write_c("%s%s->textcolor(%d);\n",indent(), var, c);
|
||||
}}
|
||||
const char* ud = user_data();
|
||||
if (class_name(1) && !parent->is_widget()) ud = "this";
|
||||
if (callback()) {
|
||||
write_c("%so->callback((Fl_Callback*)%s", indent(), callback_name());
|
||||
write_c("%s%s->callback((Fl_Callback*)%s", indent(), var, callback_name());
|
||||
if (ud)
|
||||
write_c(", (void*)(%s));\n", ud);
|
||||
else
|
||||
write_c(");\n");
|
||||
} else if (ud) {
|
||||
write_c("%so->user_data((void*)(%s));\n", indent(), ud);
|
||||
write_c("%s%s->user_data((void*)(%s));\n", indent(), var, ud);
|
||||
}
|
||||
if (o->align() != tplate->align() || subclass()) {
|
||||
int i = o->align();
|
||||
write_c("%so->align(%s", indent(),
|
||||
write_c("%s%s->align(%s", indent(), var,
|
||||
item_name(alignmenu, i & ~FL_ALIGN_INSIDE));
|
||||
if (i & FL_ALIGN_INSIDE) write_c("|FL_ALIGN_INSIDE");
|
||||
write_c(");\n");
|
||||
}
|
||||
if (o->when() != tplate->when() || subclass())
|
||||
write_c("%so->when(%s);\n", indent(),item_name(whensymbolmenu, o->when()));
|
||||
write_c("%s%s->when(%s);\n", indent(), var,
|
||||
item_name(whensymbolmenu, o->when()));
|
||||
if (!o->visible() && o->parent())
|
||||
write_c("%so->hide();\n", indent());
|
||||
write_c("%s%s->hide();\n", indent(), var);
|
||||
if (!o->active())
|
||||
write_c("%so->deactivate();\n", indent());
|
||||
write_c("%s%s->deactivate();\n", indent(), var);
|
||||
if (!is_group() && resizable())
|
||||
write_c("%sFl_Group::current()->resizable(o);\n",indent());
|
||||
write_c("%sFl_Group::current()->resizable(%s);\n", indent(), var);
|
||||
if (hotspot())
|
||||
write_c("%sw->hotspot(o);\n", indent());
|
||||
write_c("%s%s->hotspot(o);\n", indent(),
|
||||
is_class() ? "this" : name() ? name() : "w");
|
||||
}
|
||||
|
||||
void Fl_Widget_Type::write_extra_code() {
|
||||
@ -2184,8 +2195,23 @@ void Fl_Widget_Type::write_extra_code() {
|
||||
}
|
||||
|
||||
void Fl_Widget_Type::write_block_close() {
|
||||
indentation -= 2;
|
||||
if (is_parent() || varused) write_c("%s}\n", indent());
|
||||
int oused = !name();
|
||||
const char *ptr;
|
||||
|
||||
if (!oused) {
|
||||
for (int n=0; n < NUM_EXTRA_CODE; n++)
|
||||
if (extra_code(n) && !isdeclare(extra_code(n)) &&
|
||||
(ptr = strstr(extra_code(n), "o->")) != NULL &&
|
||||
(ptr == extra_code(n) ||
|
||||
(!isalnum(ptr[-1] & 255) && ptr[-1] != '_'))) {
|
||||
oused = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (oused) {
|
||||
indentation -= 2;
|
||||
write_c("%s}\n", indent());
|
||||
}
|
||||
}
|
||||
|
||||
void Fl_Widget_Type::write_code2() {
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
// for interacting with the overlay, which allows the user to
|
||||
// select, move, and resize the children widgets.
|
||||
//
|
||||
// Copyright 1998-2005 by Bill Spitzak and others.
|
||||
// Copyright 1998-2006 by Bill Spitzak and others.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Library General Public
|
||||
@ -1279,23 +1279,27 @@ void Fl_Window_Type::write_code1() {
|
||||
}
|
||||
|
||||
void Fl_Window_Type::write_code2() {
|
||||
const char *var = is_class() ? "this" : name() ? name() : "o";
|
||||
write_extra_code();
|
||||
if (modal) write_c("%so->set_modal();\n", indent());
|
||||
else if (non_modal) write_c("%so->set_non_modal();\n", indent());
|
||||
if (!((Fl_Window*)o)->border()) write_c("%so->clear_border();\n", indent());
|
||||
if (modal) write_c("%s%s->set_modal();\n", indent(), var);
|
||||
else if (non_modal) write_c("%s%s->set_non_modal();\n", indent(), var);
|
||||
if (!((Fl_Window*)o)->border()) {
|
||||
write_c("%s%s->clear_border();\n", indent(), var);
|
||||
}
|
||||
if (xclass) {
|
||||
write_c("%so->xclass(", indent());
|
||||
write_c("%s%s->xclass(", indent(), var);
|
||||
write_cstring(xclass);
|
||||
write_c(");\n");
|
||||
}
|
||||
if (sr_max_w || sr_max_h) {
|
||||
write_c("%so->size_range(%d, %d, %d, %d);\n", indent(), sr_min_w, sr_min_h, sr_max_w, sr_max_h);
|
||||
write_c("%s%s->size_range(%d, %d, %d, %d);\n", indent(), var,
|
||||
sr_min_w, sr_min_h, sr_max_w, sr_max_h);
|
||||
} else if (sr_min_w || sr_min_h) {
|
||||
write_c("%so->size_range(%d, %d);\n", indent(), sr_min_w, sr_min_h);
|
||||
write_c("%s%s->size_range(%d, %d);\n", indent(), var, sr_min_w, sr_min_h);
|
||||
}
|
||||
write_c("%so->end();\n", indent());
|
||||
write_c("%s%s->end();\n", indent(), var);
|
||||
if (((Fl_Window*)o)->resizable() == o)
|
||||
write_c("%so->resizable(o);\n", indent());
|
||||
write_c("%s%s->resizable(o);\n", indent(), var);
|
||||
write_block_close();
|
||||
}
|
||||
|
||||
@ -1435,7 +1439,7 @@ void Fl_Widget_Class_Type::write_code1() {
|
||||
write_c("}\n\n");
|
||||
|
||||
write_c("void %s::_%s() {\n", name(), name());
|
||||
write_c(" %s *w = this;\n", name());
|
||||
// write_c(" %s *w = this;\n", name());
|
||||
} else {
|
||||
write_h("public:\n");
|
||||
write_h(" %s(int X, int Y, int W, int H, const char *L = 0);\n", name());
|
||||
@ -1447,7 +1451,7 @@ void Fl_Widget_Class_Type::write_code1() {
|
||||
write_c(" : %s(X, Y, W, H, L) {\n", c);
|
||||
}
|
||||
|
||||
write_c(" %s *o = this;\n", name());
|
||||
// write_c(" %s *o = this;\n", name());
|
||||
|
||||
write_widget_code();
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
//
|
||||
// Pixmap label support for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2005 by Bill Spitzak and others.
|
||||
// Copyright 1998-2006 by Bill Spitzak and others.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Library General Public
|
||||
@ -118,9 +118,9 @@ void Fluid_Image::write_static() {
|
||||
}
|
||||
}
|
||||
|
||||
void Fluid_Image::write_code(int inactive) {
|
||||
void Fluid_Image::write_code(const char *var, int inactive) {
|
||||
if (!img) return;
|
||||
write_c("%so->%s(%s);\n", indent(), inactive ? "deimage" : "image",
|
||||
write_c("%s%s->%s(%s);\n", indent(), var, inactive ? "deimage" : "image",
|
||||
unique_id(this, "image", fl_filename_name(name()), 0));
|
||||
}
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@ public:
|
||||
void image(Fl_Widget *); // set the image of this widget
|
||||
void deimage(Fl_Widget *); // set the deimage of this widget
|
||||
void write_static();
|
||||
void write_code(int inactive = 0);
|
||||
void write_code(const char *var, int inactive = 0);
|
||||
const char *name() const {return name_;}
|
||||
};
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
//
|
||||
// Code output routines for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2005 by Bill Spitzak and others.
|
||||
// Copyright 1998-2006 by Bill Spitzak and others.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Library General Public
|
||||
@ -153,15 +153,8 @@ int write_declare(const char *format, ...) {
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
// silly thing to prevent declaring unused variables:
|
||||
// When this symbol is on, all attempts to write code don't write
|
||||
// anything, but set a variable if it looks like the varaible "o" is used:
|
||||
int varused_test;
|
||||
int varused;
|
||||
|
||||
// write an array of C characters (adds a null):
|
||||
void write_cstring(const char *w, int length) {
|
||||
if (varused_test) return;
|
||||
const char *e = w+length;
|
||||
int linelength = 1;
|
||||
putc('\"', code_file);
|
||||
@ -228,7 +221,6 @@ void write_cstring(const char *w) {write_cstring(w,strlen(w));}
|
||||
|
||||
// write an array of C binary data (does not add a null):
|
||||
void write_cdata(const char *s, int length) {
|
||||
if (varused_test) return;
|
||||
const unsigned char *w = (const unsigned char *)s;
|
||||
const unsigned char *e = w+length;
|
||||
int linelength = 1;
|
||||
@ -246,7 +238,6 @@ void write_cdata(const char *s, int length) {
|
||||
}
|
||||
|
||||
void write_c(const char* format,...) {
|
||||
if (varused_test) {varused = 1; return;}
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
vfprintf(code_file, format, args);
|
||||
@ -254,7 +245,6 @@ void write_c(const char* format,...) {
|
||||
}
|
||||
|
||||
void write_h(const char* format,...) {
|
||||
if (varused_test) return;
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
vfprintf(header_file, format, args);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user