summaryrefslogtreecommitdiff
path: root/fluid/nodes/Widget_Node.cxx
diff options
context:
space:
mode:
authormaxim nikonov <maxim.nikonov@hqo.co>2026-02-06 02:33:41 +0500
committermaxim nikonov <maxim.nikonov@hqo.co>2026-02-06 02:33:41 +0500
commit43e0a37906afabb0b3b091b8d3eac9a910cae50c (patch)
treed2a037c2bf0dc395fddb08e32ebfcf2795503b7c /fluid/nodes/Widget_Node.cxx
parent4ce4967c33d56e4b56d85d11fe0e0be91e159f5d (diff)
wip
Diffstat (limited to 'fluid/nodes/Widget_Node.cxx')
-rw-r--r--fluid/nodes/Widget_Node.cxx617
1 files changed, 331 insertions, 286 deletions
diff --git a/fluid/nodes/Widget_Node.cxx b/fluid/nodes/Widget_Node.cxx
index 929a88bf9..6f5a6a0fb 100644
--- a/fluid/nodes/Widget_Node.cxx
+++ b/fluid/nodes/Widget_Node.cxx
@@ -38,6 +38,7 @@
#include <FL/Fl_Spinner.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Flex.H>
+#include <FL/filename.H>
#include "../src/flstring.h"
#include <stdio.h>
@@ -70,16 +71,16 @@ int Widget_Node::is_public() const {
return public_;
}
-std::string subclassname(Node* l) {
+const char* subclassname(Node* l) {
if (l->is_a(FLD_NODE_TYPE_Menu_Bar)) {
- Menu_Bar_Node* mb = static_cast<Menu_Bar_Node*>(l);
+ Menu_Bar_Node* mb = (Menu_Bar_Node*)l;
if (mb->is_sys_menu_bar())
return mb->sys_menubar_name();
}
if (l->is_widget()) {
Widget_Node* p = (Widget_Node*)l;
- std::string c = p->subclass();
- if (!c.empty())
+ const char* c = p->subclass();
+ if (c && c[0])
return c;
if (l->is_class())
return "Fl_Group";
@@ -118,7 +119,7 @@ Node* Widget_Node::make(Strategy strategy) {
}
if (!pp || !pp->is_true_widget() || !anchor->is_true_widget()) {
fl_message("Please select a group widget or window");
- return nullptr;
+ return 0;
}
Widget_Node* p = (Widget_Node*)pp;
@@ -170,7 +171,7 @@ Node* Widget_Node::make(Strategy strategy) {
// Construct the Fl_Widget:
t->o = widget(X,Y,W,H);
if (strategy.source() == Strategy::FROM_FILE)
- t->o->label(nullptr);
+ t->o->label(0);
else if (t->o->label())
t->label(t->o->label()); // allow editing
t->o->user_data((void*)t);
@@ -199,7 +200,7 @@ void Widget_Node::setimage(Image_Asset* i) {
o->image()->scale(iw, ih, 0, 1);
}
} else {
- o->image(nullptr);
+ o->image(0);
//scale_image_w_ = scale_image_h_ = 0;
}
redraw();
@@ -221,7 +222,7 @@ void Widget_Node::setinactive(Image_Asset* i) {
o->deimage()->scale(iw, ih, 0, 1);
}
} else {
- o->deimage(nullptr);
+ o->deimage(0);
//scale_deimage_w_ = scale_deimage_h_ = 0;
}
redraw();
@@ -232,6 +233,32 @@ void Widget_Node::setlabel(const char* n) {
redraw();
}
+Widget_Node::Widget_Node() {
+ int i;
+ for (i = 0; i < NUM_EXTRA_CODE; i++)
+ extra_code_[i] = 0;
+ subclass_ = 0;
+ tooltip_ = 0;
+ image_name_ = 0;
+ inactive_name_ = 0;
+ hotspot_ = 0;
+ menu_headline_ = 0;
+ override_visible_ = 0;
+ live_widget = 0;
+ o = 0;
+ public_ = 1;
+ bind_image_ = 0;
+ compress_image_ = 1;
+ scale_image_w_ = 0;
+ scale_image_h_ = 0;
+ image = 0;
+ bind_deimage_ = 0;
+ compress_deimage_ = 1;
+ scale_deimage_w_ = 0;
+ scale_deimage_h_ = 0;
+ inactive = 0;
+}
+
Widget_Node::~Widget_Node() {
if (o) {
Fl_Window* win = o->window();
@@ -243,34 +270,47 @@ Widget_Node::~Widget_Node() {
image->dec_ref();
if (inactive)
inactive->dec_ref();
+ int i;
+ for (i = 0; i < NUM_EXTRA_CODE; i++)
+ if (extra_code_[i]) free(extra_code_[i]);
+ if (subclass_) free(subclass_);
+ if (tooltip_) free(tooltip_);
+ if (image_name_) free(image_name_);
+ if (inactive_name_) free(inactive_name_);
}
-void Widget_Node::extra_code(int m, const std::string& n) {
- storestring(n, extra_code_[m]);
+void Widget_Node::extra_code(int m, const char *n) {
+ if (extra_code_[m]) free(extra_code_[m]);
+ extra_code_[m] = (n && n[0]) ? fl_strdup(n) : 0;
}
-void Widget_Node::subclass(const std::string& n) {
- if (storestring(n, subclass_) && visible)
+void Widget_Node::subclass(const char *n) {
+ if (subclass_) free(subclass_);
+ subclass_ = (n && n[0]) ? fl_strdup(n) : 0;
+ if (visible)
redraw_browser();
}
-void Widget_Node::tooltip(const std::string& text) {
- storestring(text, tooltip_);
- if (text.empty()) {
- o->tooltip(nullptr);
+void Widget_Node::tooltip(const char *text) {
+ if (tooltip_) free(tooltip_);
+ tooltip_ = (text && text[0]) ? fl_strdup(text) : 0;
+ if (!text || !text[0]) {
+ o->tooltip(0);
} else {
- o->copy_tooltip(text.c_str());
+ o->copy_tooltip(text);
}
}
-void Widget_Node::image_name(const std::string& name) {
- setimage(Image_Asset::find(name.c_str()));
- storestring(name, image_name_);
+void Widget_Node::image_name(const char *name) {
+ setimage(Image_Asset::find(name));
+ if (image_name_) free(image_name_);
+ image_name_ = (name && name[0]) ? fl_strdup(name) : 0;
}
-void Widget_Node::inactive_name(const std::string& name) {
- setinactive(Image_Asset::find(name.c_str()));
- storestring(name, inactive_name_);
+void Widget_Node::inactive_name(const char *name) {
+ setinactive(Image_Asset::find(name));
+ if (inactive_name_) free(inactive_name_);
+ inactive_name_ = (name && name[0]) ? fl_strdup(name) : 0;
}
void Widget_Node::redraw() {
@@ -282,7 +322,7 @@ void Widget_Node::redraw() {
} while (t && t->is_a(FLD_NODE_TYPE_Menu_Item));
// kludge to cause build_menu to be called again:
if (t)
- t->add_child(nullptr, nullptr);
+ t->add_child(0, 0);
} else {
while (t->parent && t->parent->is_widget())
t = t->parent;
@@ -293,7 +333,7 @@ void Widget_Node::redraw() {
// the recursive part sorts all children, returns pointer to next:
Node* sort(Node* parent) {
Node* f;
- Node* n = nullptr;
+ Node* n = 0;
for (f = parent ? parent->next : Fluid.proj.tree.first; ; f = n) {
if (!f || (parent && f->level <= parent->level))
break;
@@ -322,7 +362,7 @@ Node* sort(Node* parent) {
////////////////////////////////////////////////////////////////
// The control panels!
-Fl_Window* the_panel = nullptr;
+Fl_Window* the_panel = 0;
// All the callbacks use the argument to indicate whether to load or store.
// This avoids the need for pointers to all the widgets, and keeps the
@@ -331,8 +371,8 @@ Fl_Window* the_panel = nullptr;
// with any actual useful values for the argument. I also use this to
// initialized parts of the widget that are nyi by fluid.
-Node* current_node = nullptr;
-Widget_Node* current_widget = nullptr; // one of the selected ones
+Node* current_node = 0;
+Widget_Node* current_widget = 0; // one of the selected ones
void* const LOAD = (void *)"LOAD"; // "magic" pointer to indicate that we need to load values into the dialog
int numselected = 0; // number selected
int haderror = 0;
@@ -569,7 +609,7 @@ fld::widget::Formula_Input_Vars widget_vars[] = {
{ "cy", vars_cy_cb },
{ "cw", vars_cw_cb },
{ "ch", vars_ch_cb },
- { nullptr }
+ { 0 }
};
////////////////////////////////////////////////////////////////
@@ -608,86 +648,86 @@ int item_number(Fl_Menu_Item* m, const char* i) {
#define ZERO_ENTRY 1000
Fl_Menu_Item boxmenu[] = {
- {"NO_BOX",0,nullptr,(void *)ZERO_ENTRY},
- {"boxes",0,nullptr,nullptr,FL_SUBMENU},
- {"UP_BOX",0,nullptr,(void *)FL_UP_BOX},
- {"DOWN_BOX",0,nullptr,(void *)FL_DOWN_BOX},
- {"FLAT_BOX",0,nullptr,(void *)FL_FLAT_BOX},
- {"BORDER_BOX",0,nullptr,(void *)FL_BORDER_BOX},
- {"THIN_UP_BOX",0,nullptr,(void *)FL_THIN_UP_BOX},
- {"THIN_DOWN_BOX",0,nullptr,(void *)FL_THIN_DOWN_BOX},
- {"ENGRAVED_BOX",0,nullptr,(void *)FL_ENGRAVED_BOX},
- {"EMBOSSED_BOX",0,nullptr,(void *)FL_EMBOSSED_BOX},
- {"ROUND_UP_BOX",0,nullptr,(void *)FL_ROUND_UP_BOX},
- {"ROUND_DOWN_BOX",0,nullptr,(void *)FL_ROUND_DOWN_BOX},
- {"DIAMOND_UP_BOX",0,nullptr,(void *)FL_DIAMOND_UP_BOX},
- {"DIAMOND_DOWN_BOX",0,nullptr,(void *)FL_DIAMOND_DOWN_BOX},
- {"SHADOW_BOX",0,nullptr,(void *)FL_SHADOW_BOX},
- {"ROUNDED_BOX",0,nullptr,(void *)FL_ROUNDED_BOX},
- {"RSHADOW_BOX",0,nullptr,(void *)FL_RSHADOW_BOX},
- {"RFLAT_BOX",0,nullptr,(void *)FL_RFLAT_BOX},
- {"OVAL_BOX",0,nullptr,(void *)FL_OVAL_BOX},
- {"OSHADOW_BOX",0,nullptr,(void *)FL_OSHADOW_BOX},
- {"OFLAT_BOX",0,nullptr,(void *)FL_OFLAT_BOX},
- {"PLASTIC_UP_BOX",0,nullptr,(void *)FL_PLASTIC_UP_BOX},
- {"PLASTIC_DOWN_BOX",0,nullptr,(void *)FL_PLASTIC_DOWN_BOX},
- {"PLASTIC_THIN_UP_BOX",0,nullptr,(void *)FL_PLASTIC_THIN_UP_BOX},
- {"PLASTIC_THIN_DOWN_BOX",0,nullptr,(void *)FL_PLASTIC_THIN_DOWN_BOX},
- {"PLASTIC_ROUND_UP_BOX",0,nullptr,(void *)FL_PLASTIC_ROUND_UP_BOX},
- {"PLASTIC_ROUND_DOWN_BOX",0,nullptr,(void *)FL_PLASTIC_ROUND_DOWN_BOX},
- {"GTK_UP_BOX",0,nullptr,(void *)FL_GTK_UP_BOX},
- {"GTK_DOWN_BOX",0,nullptr,(void *)FL_GTK_DOWN_BOX},
- {"GTK_THIN_UP_BOX",0,nullptr,(void *)FL_GTK_THIN_UP_BOX},
- {"GTK_THIN_DOWN_BOX",0,nullptr,(void *)FL_GTK_THIN_DOWN_BOX},
- {"GTK_ROUND_UP_BOX",0,nullptr,(void *)FL_GTK_ROUND_UP_BOX},
- {"GTK_ROUND_DOWN_BOX",0,nullptr,(void *)FL_GTK_ROUND_DOWN_BOX},
- {"GLEAM_UP_BOX",0,nullptr,(void *)FL_GLEAM_UP_BOX},
- {"GLEAM_DOWN_BOX",0,nullptr,(void *)FL_GLEAM_DOWN_BOX},
- {"GLEAM_THIN_UP_BOX",0,nullptr,(void *)FL_GLEAM_THIN_UP_BOX},
- {"GLEAM_THIN_DOWN_BOX",0,nullptr,(void *)FL_GLEAM_THIN_DOWN_BOX},
- {"GLEAM_ROUND_UP_BOX",0,nullptr,(void *)FL_GLEAM_ROUND_UP_BOX},
- {"GLEAM_ROUND_DOWN_BOX",0,nullptr,(void *)FL_GLEAM_ROUND_DOWN_BOX},
- {"OXY_UP_BOX",0,nullptr,(void *)FL_OXY_UP_BOX},
- {"OXY_DOWN_BOX",0,nullptr,(void *)FL_OXY_DOWN_BOX},
- {"OXY_THIN_UP_BOX",0,nullptr,(void *)FL_OXY_THIN_UP_BOX},
- {"OXY_THIN_DOWN_BOX",0,nullptr,(void *)FL_OXY_THIN_DOWN_BOX},
- {"OXY_ROUND_UP_BOX",0,nullptr,(void *)FL_OXY_ROUND_UP_BOX},
- {"OXY_ROUND_DOWN_BOX",0,nullptr,(void *)FL_OXY_ROUND_DOWN_BOX},
- {"OXY_BUTTON_UP_BOX",0,nullptr,(void *)FL_OXY_BUTTON_UP_BOX},
- {"OXY_BUTTON_DOWN_BOX",0,nullptr,(void *)FL_OXY_BUTTON_DOWN_BOX},
- {nullptr},
- {"frames",0,nullptr,nullptr,FL_SUBMENU},
- {"UP_FRAME",0,nullptr,(void *)FL_UP_FRAME},
- {"DOWN_FRAME",0,nullptr,(void *)FL_DOWN_FRAME},
- {"THIN_UP_FRAME",0,nullptr,(void *)FL_THIN_UP_FRAME},
- {"THIN_DOWN_FRAME",0,nullptr,(void *)FL_THIN_DOWN_FRAME},
- {"ENGRAVED_FRAME",0,nullptr,(void *)FL_ENGRAVED_FRAME},
- {"EMBOSSED_FRAME",0,nullptr,(void *)FL_EMBOSSED_FRAME},
- {"BORDER_FRAME",0,nullptr,(void *)FL_BORDER_FRAME},
- {"SHADOW_FRAME",0,nullptr,(void *)FL_SHADOW_FRAME},
- {"ROUNDED_FRAME",0,nullptr,(void *)FL_ROUNDED_FRAME},
- {"OVAL_FRAME",0,nullptr,(void *)FL_OVAL_FRAME},
- {"PLASTIC_UP_FRAME",0,nullptr,(void *)FL_PLASTIC_UP_FRAME},
- {"PLASTIC_DOWN_FRAME",0,nullptr,(void *)FL_PLASTIC_DOWN_FRAME},
- {"GTK_UP_FRAME",0,nullptr,(void *)FL_GTK_UP_FRAME},
- {"GTK_DOWN_FRAME",0,nullptr,(void *)FL_GTK_DOWN_FRAME},
- {"GTK_THIN_UP_FRAME",0,nullptr,(void *)FL_GTK_THIN_UP_FRAME},
- {"GTK_THIN_DOWN_FRAME",0,nullptr,(void *)FL_GTK_THIN_DOWN_FRAME},
- {"GLEAM_UP_FRAME",0,nullptr,(void *)FL_GLEAM_UP_FRAME},
- {"GLEAM_DOWN_FRAME",0,nullptr,(void *)FL_GLEAM_DOWN_FRAME},
- {"OXY_UP_FRAME",0,nullptr,(void *)FL_OXY_UP_FRAME},
- {"OXY_DOWN_FRAME",0,nullptr,(void *)FL_OXY_DOWN_FRAME},
- {"OXY_THIN_UP_FRAME",0,nullptr,(void *)FL_OXY_THIN_UP_FRAME},
- {"OXY_THIN_DOWN_FRAME",0,nullptr,(void *)FL_OXY_THIN_DOWN_FRAME},
- {nullptr},
- {nullptr}};
+ {"NO_BOX",0,0,(void *)ZERO_ENTRY},
+ {"boxes",0,0,0,FL_SUBMENU},
+ {"UP_BOX",0,0,(void *)FL_UP_BOX},
+ {"DOWN_BOX",0,0,(void *)FL_DOWN_BOX},
+ {"FLAT_BOX",0,0,(void *)FL_FLAT_BOX},
+ {"BORDER_BOX",0,0,(void *)FL_BORDER_BOX},
+ {"THIN_UP_BOX",0,0,(void *)FL_THIN_UP_BOX},
+ {"THIN_DOWN_BOX",0,0,(void *)FL_THIN_DOWN_BOX},
+ {"ENGRAVED_BOX",0,0,(void *)FL_ENGRAVED_BOX},
+ {"EMBOSSED_BOX",0,0,(void *)FL_EMBOSSED_BOX},
+ {"ROUND_UP_BOX",0,0,(void *)FL_ROUND_UP_BOX},
+ {"ROUND_DOWN_BOX",0,0,(void *)FL_ROUND_DOWN_BOX},
+ {"DIAMOND_UP_BOX",0,0,(void *)FL_DIAMOND_UP_BOX},
+ {"DIAMOND_DOWN_BOX",0,0,(void *)FL_DIAMOND_DOWN_BOX},
+ {"SHADOW_BOX",0,0,(void *)FL_SHADOW_BOX},
+ {"ROUNDED_BOX",0,0,(void *)FL_ROUNDED_BOX},
+ {"RSHADOW_BOX",0,0,(void *)FL_RSHADOW_BOX},
+ {"RFLAT_BOX",0,0,(void *)FL_RFLAT_BOX},
+ {"OVAL_BOX",0,0,(void *)FL_OVAL_BOX},
+ {"OSHADOW_BOX",0,0,(void *)FL_OSHADOW_BOX},
+ {"OFLAT_BOX",0,0,(void *)FL_OFLAT_BOX},
+ {"PLASTIC_UP_BOX",0,0,(void *)FL_PLASTIC_UP_BOX},
+ {"PLASTIC_DOWN_BOX",0,0,(void *)FL_PLASTIC_DOWN_BOX},
+ {"PLASTIC_THIN_UP_BOX",0,0,(void *)FL_PLASTIC_THIN_UP_BOX},
+ {"PLASTIC_THIN_DOWN_BOX",0,0,(void *)FL_PLASTIC_THIN_DOWN_BOX},
+ {"PLASTIC_ROUND_UP_BOX",0,0,(void *)FL_PLASTIC_ROUND_UP_BOX},
+ {"PLASTIC_ROUND_DOWN_BOX",0,0,(void *)FL_PLASTIC_ROUND_DOWN_BOX},
+ {"GTK_UP_BOX",0,0,(void *)FL_GTK_UP_BOX},
+ {"GTK_DOWN_BOX",0,0,(void *)FL_GTK_DOWN_BOX},
+ {"GTK_THIN_UP_BOX",0,0,(void *)FL_GTK_THIN_UP_BOX},
+ {"GTK_THIN_DOWN_BOX",0,0,(void *)FL_GTK_THIN_DOWN_BOX},
+ {"GTK_ROUND_UP_BOX",0,0,(void *)FL_GTK_ROUND_UP_BOX},
+ {"GTK_ROUND_DOWN_BOX",0,0,(void *)FL_GTK_ROUND_DOWN_BOX},
+ {"GLEAM_UP_BOX",0,0,(void *)FL_GLEAM_UP_BOX},
+ {"GLEAM_DOWN_BOX",0,0,(void *)FL_GLEAM_DOWN_BOX},
+ {"GLEAM_THIN_UP_BOX",0,0,(void *)FL_GLEAM_THIN_UP_BOX},
+ {"GLEAM_THIN_DOWN_BOX",0,0,(void *)FL_GLEAM_THIN_DOWN_BOX},
+ {"GLEAM_ROUND_UP_BOX",0,0,(void *)FL_GLEAM_ROUND_UP_BOX},
+ {"GLEAM_ROUND_DOWN_BOX",0,0,(void *)FL_GLEAM_ROUND_DOWN_BOX},
+ {"OXY_UP_BOX",0,0,(void *)FL_OXY_UP_BOX},
+ {"OXY_DOWN_BOX",0,0,(void *)FL_OXY_DOWN_BOX},
+ {"OXY_THIN_UP_BOX",0,0,(void *)FL_OXY_THIN_UP_BOX},
+ {"OXY_THIN_DOWN_BOX",0,0,(void *)FL_OXY_THIN_DOWN_BOX},
+ {"OXY_ROUND_UP_BOX",0,0,(void *)FL_OXY_ROUND_UP_BOX},
+ {"OXY_ROUND_DOWN_BOX",0,0,(void *)FL_OXY_ROUND_DOWN_BOX},
+ {"OXY_BUTTON_UP_BOX",0,0,(void *)FL_OXY_BUTTON_UP_BOX},
+ {"OXY_BUTTON_DOWN_BOX",0,0,(void *)FL_OXY_BUTTON_DOWN_BOX},
+ {0},
+ {"frames",0,0,0,FL_SUBMENU},
+ {"UP_FRAME",0,0,(void *)FL_UP_FRAME},
+ {"DOWN_FRAME",0,0,(void *)FL_DOWN_FRAME},
+ {"THIN_UP_FRAME",0,0,(void *)FL_THIN_UP_FRAME},
+ {"THIN_DOWN_FRAME",0,0,(void *)FL_THIN_DOWN_FRAME},
+ {"ENGRAVED_FRAME",0,0,(void *)FL_ENGRAVED_FRAME},
+ {"EMBOSSED_FRAME",0,0,(void *)FL_EMBOSSED_FRAME},
+ {"BORDER_FRAME",0,0,(void *)FL_BORDER_FRAME},
+ {"SHADOW_FRAME",0,0,(void *)FL_SHADOW_FRAME},
+ {"ROUNDED_FRAME",0,0,(void *)FL_ROUNDED_FRAME},
+ {"OVAL_FRAME",0,0,(void *)FL_OVAL_FRAME},
+ {"PLASTIC_UP_FRAME",0,0,(void *)FL_PLASTIC_UP_FRAME},
+ {"PLASTIC_DOWN_FRAME",0,0,(void *)FL_PLASTIC_DOWN_FRAME},
+ {"GTK_UP_FRAME",0,0,(void *)FL_GTK_UP_FRAME},
+ {"GTK_DOWN_FRAME",0,0,(void *)FL_GTK_DOWN_FRAME},
+ {"GTK_THIN_UP_FRAME",0,0,(void *)FL_GTK_THIN_UP_FRAME},
+ {"GTK_THIN_DOWN_FRAME",0,0,(void *)FL_GTK_THIN_DOWN_FRAME},
+ {"GLEAM_UP_FRAME",0,0,(void *)FL_GLEAM_UP_FRAME},
+ {"GLEAM_DOWN_FRAME",0,0,(void *)FL_GLEAM_DOWN_FRAME},
+ {"OXY_UP_FRAME",0,0,(void *)FL_OXY_UP_FRAME},
+ {"OXY_DOWN_FRAME",0,0,(void *)FL_OXY_DOWN_FRAME},
+ {"OXY_THIN_UP_FRAME",0,0,(void *)FL_OXY_THIN_UP_FRAME},
+ {"OXY_THIN_DOWN_FRAME",0,0,(void *)FL_OXY_THIN_DOWN_FRAME},
+ {0},
+ {0}};
const char* boxname(int i) {
if (!i) i = ZERO_ENTRY;
for (int j = 0; j < int(sizeof(boxmenu)/sizeof(*boxmenu)); j++)
if (boxmenu[j].argument() == i)
return boxmenu[j].label();
- return nullptr;
+ return 0;
}
int boxnumber(const char* i) {
@@ -707,37 +747,37 @@ int boxnumber(const char* i) {
Fl_Menu_Item whenmenu[] = {
// set individual bits
- {"FL_WHEN_CHANGED",0,nullptr,(void*)FL_WHEN_CHANGED, FL_MENU_TOGGLE},
- {"FL_WHEN_NOT_CHANGED",0,nullptr,(void*)FL_WHEN_NOT_CHANGED, FL_MENU_TOGGLE},
- {"FL_WHEN_RELEASE",0,nullptr,(void*)FL_WHEN_RELEASE, FL_MENU_TOGGLE},
- {"FL_WHEN_ENTER_KEY",0,nullptr,(void*)FL_WHEN_ENTER_KEY, FL_MENU_TOGGLE},
- {"FL_WHEN_CLOSED",0,nullptr,(void*)FL_WHEN_CLOSED, FL_MENU_TOGGLE|FL_MENU_DIVIDER},
+ {"FL_WHEN_CHANGED",0,0,(void*)FL_WHEN_CHANGED, FL_MENU_TOGGLE},
+ {"FL_WHEN_NOT_CHANGED",0,0,(void*)FL_WHEN_NOT_CHANGED, FL_MENU_TOGGLE},
+ {"FL_WHEN_RELEASE",0,0,(void*)FL_WHEN_RELEASE, FL_MENU_TOGGLE},
+ {"FL_WHEN_ENTER_KEY",0,0,(void*)FL_WHEN_ENTER_KEY, FL_MENU_TOGGLE},
+ {"FL_WHEN_CLOSED",0,0,(void*)FL_WHEN_CLOSED, FL_MENU_TOGGLE|FL_MENU_DIVIDER},
// set bit combinations
- {"FL_WHEN_NEVER",0,nullptr,(void*)FL_WHEN_NEVER},
- {"FL_WHEN_RELEASE_ALWAYS",0,nullptr,(void*)FL_WHEN_RELEASE_ALWAYS},
- {"FL_WHEN_ENTER_KEY_ALWAYS",0,nullptr,(void*)FL_WHEN_ENTER_KEY_ALWAYS},
- {"FL_WHEN_ENTER_KEY_CHANGED",0,nullptr,(void*)FL_WHEN_ENTER_KEY_CHANGED},
- {nullptr}};
+ {"FL_WHEN_NEVER",0,0,(void*)FL_WHEN_NEVER},
+ {"FL_WHEN_RELEASE_ALWAYS",0,0,(void*)FL_WHEN_RELEASE_ALWAYS},
+ {"FL_WHEN_ENTER_KEY_ALWAYS",0,0,(void*)FL_WHEN_ENTER_KEY_ALWAYS},
+ {"FL_WHEN_ENTER_KEY_CHANGED",0,0,(void*)FL_WHEN_ENTER_KEY_CHANGED},
+ {0}};
static Fl_Menu_Item whensymbolmenu[] = {
- /* 0 */ {"FL_WHEN_NEVER",0,nullptr,(void*)FL_WHEN_NEVER},
- /* 1 */ {"FL_WHEN_CHANGED",0,nullptr,(void*)FL_WHEN_CHANGED},
- /* 2 */ {"FL_WHEN_NOT_CHANGED",0,nullptr,(void*)FL_WHEN_NOT_CHANGED},
- /* 3 */ {"FL_WHEN_CHANGED | FL_WHEN_NOT_CHANGED",0,nullptr,(void*)(FL_WHEN_CHANGED|FL_WHEN_NOT_CHANGED)},
- /* 4 */ {"FL_WHEN_RELEASE",0,nullptr,(void*)FL_WHEN_RELEASE},
- /* 5 */ {"FL_WHEN_CHANGED | FL_WHEN_RELEASE",0,nullptr,(void*)(FL_WHEN_CHANGED|FL_WHEN_RELEASE)},
- /* 6 */ {"FL_WHEN_RELEASE_ALWAYS",0,nullptr,(void*)FL_WHEN_RELEASE_ALWAYS},
- /* 7 */ {"FL_WHEN_CHANGED | FL_WHEN_RELEASE_ALWAYS",0,nullptr,(void*)(FL_WHEN_CHANGED|FL_WHEN_RELEASE_ALWAYS)},
- /* 8 */ {"FL_WHEN_ENTER_KEY",0,nullptr,(void*)FL_WHEN_ENTER_KEY},
- /* 9 */ {"FL_WHEN_CHANGED | FL_WHEN_ENTER_KEY",0,nullptr,(void*)(FL_WHEN_CHANGED|FL_WHEN_ENTER_KEY)},
- /* 10 */ {"FL_WHEN_ENTER_KEY_ALWAYS",0,nullptr,(void*)FL_WHEN_ENTER_KEY_ALWAYS},
- /* 11 */ {"FL_WHEN_ENTER_KEY_CHANGED",0,nullptr,(void*)FL_WHEN_ENTER_KEY_CHANGED},
- /* 12 */ {"FL_WHEN_RELEASE | FL_WHEN_ENTER_KEY",0,nullptr,(void*)(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY)},
- /* 13 */ {"FL_WHEN_RELEASE | FL_WHEN_CHANGED | FL_WHEN_ENTER_KEY",0,nullptr,(void*)(FL_WHEN_RELEASE|FL_WHEN_CHANGED|FL_WHEN_ENTER_KEY)},
- /* 14 */ {"FL_WHEN_RELEASE | FL_WHEN_ENTER_KEY_ALWAYS",0,nullptr,(void*)(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY_ALWAYS)},
- /* 15 */ {"FL_WHEN_RELEASE | FL_WHEN_ENTER_KEY_CHANGED",0,nullptr,(void*)(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY_CHANGED)},
- {nullptr}
+ /* 0 */ {"FL_WHEN_NEVER",0,0,(void*)FL_WHEN_NEVER},
+ /* 1 */ {"FL_WHEN_CHANGED",0,0,(void*)FL_WHEN_CHANGED},
+ /* 2 */ {"FL_WHEN_NOT_CHANGED",0,0,(void*)FL_WHEN_NOT_CHANGED},
+ /* 3 */ {"FL_WHEN_CHANGED | FL_WHEN_NOT_CHANGED",0,0,(void*)(FL_WHEN_CHANGED|FL_WHEN_NOT_CHANGED)},
+ /* 4 */ {"FL_WHEN_RELEASE",0,0,(void*)FL_WHEN_RELEASE},
+ /* 5 */ {"FL_WHEN_CHANGED | FL_WHEN_RELEASE",0,0,(void*)(FL_WHEN_CHANGED|FL_WHEN_RELEASE)},
+ /* 6 */ {"FL_WHEN_RELEASE_ALWAYS",0,0,(void*)FL_WHEN_RELEASE_ALWAYS},
+ /* 7 */ {"FL_WHEN_CHANGED | FL_WHEN_RELEASE_ALWAYS",0,0,(void*)(FL_WHEN_CHANGED|FL_WHEN_RELEASE_ALWAYS)},
+ /* 8 */ {"FL_WHEN_ENTER_KEY",0,0,(void*)FL_WHEN_ENTER_KEY},
+ /* 9 */ {"FL_WHEN_CHANGED | FL_WHEN_ENTER_KEY",0,0,(void*)(FL_WHEN_CHANGED|FL_WHEN_ENTER_KEY)},
+ /* 10 */ {"FL_WHEN_ENTER_KEY_ALWAYS",0,0,(void*)FL_WHEN_ENTER_KEY_ALWAYS},
+ /* 11 */ {"FL_WHEN_ENTER_KEY_CHANGED",0,0,(void*)FL_WHEN_ENTER_KEY_CHANGED},
+ /* 12 */ {"FL_WHEN_RELEASE | FL_WHEN_ENTER_KEY",0,0,(void*)(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY)},
+ /* 13 */ {"FL_WHEN_RELEASE | FL_WHEN_CHANGED | FL_WHEN_ENTER_KEY",0,0,(void*)(FL_WHEN_RELEASE|FL_WHEN_CHANGED|FL_WHEN_ENTER_KEY)},
+ /* 14 */ {"FL_WHEN_RELEASE | FL_WHEN_ENTER_KEY_ALWAYS",0,0,(void*)(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY_ALWAYS)},
+ /* 15 */ {"FL_WHEN_RELEASE | FL_WHEN_ENTER_KEY_CHANGED",0,0,(void*)(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY_CHANGED)},
+ {0}
};
// Return a text string representing the Fl_When value n
@@ -765,7 +805,7 @@ void set_whenmenu(int n) {
uchar Widget_Node::resizable() const {
if (is_a(FLD_NODE_TYPE_Window))
- return ((Fl_Window*)o)->resizable() != nullptr;
+ return ((Fl_Window*)o)->resizable() != 0;
Fl_Group* p = (Fl_Group*)o->parent();
if (p)
return p->resizable() == o;
@@ -787,10 +827,10 @@ void Widget_Node::resizable(uchar v) {
if (!resizable())
return;
if (is_a(FLD_NODE_TYPE_Window)) {
- ((Fl_Window*)o)->resizable(nullptr);
+ ((Fl_Window*)o)->resizable(0);
} else {
Fl_Group* p = (Fl_Group*)o->parent();
- if (p) p->resizable(nullptr);
+ if (p) p->resizable(0);
}
}
}
@@ -816,11 +856,11 @@ Fl_Menu_Item fontmenu[] = {
{"Terminal"},
{"Terminal Bold"},
{"Zapf Dingbats"},
- {nullptr}
+ {0}
};
Fl_Menu_Item fontmenu_w_default[] = {
- {"<default>", 0, nullptr, nullptr, FL_MENU_DIVIDER},
+ {"<default>", 0, 0, 0, FL_MENU_DIVIDER},
{"Helvetica"},
{"Helvetica bold"},
{"Helvetica italic"},
@@ -837,7 +877,7 @@ Fl_Menu_Item fontmenu_w_default[] = {
{"Terminal"},
{"Terminal Bold"},
{"Zapf Dingbats"},
- {nullptr}
+ {0}
};
@@ -845,12 +885,12 @@ Fl_Menu_Item fontmenu_w_default[] = {
extern const char* ui_find_image_name;
Fl_Menu_Item labeltypemenu[] = {
- {"NORMAL_LABEL",0,nullptr,(void*)nullptr},
- {"SHADOW_LABEL",0,nullptr,(void*)FL_SHADOW_LABEL},
- {"ENGRAVED_LABEL",0,nullptr,(void*)FL_ENGRAVED_LABEL},
- {"EMBOSSED_LABEL",0,nullptr,(void*)FL_EMBOSSED_LABEL},
- {"NO_LABEL",0,nullptr,(void*)(FL_NO_LABEL)},
- {nullptr}};
+ {"NORMAL_LABEL",0,0,(void*)0},
+ {"SHADOW_LABEL",0,0,(void*)FL_SHADOW_LABEL},
+ {"ENGRAVED_LABEL",0,0,(void*)FL_ENGRAVED_LABEL},
+ {"EMBOSSED_LABEL",0,0,(void*)FL_EMBOSSED_LABEL},
+ {"NO_LABEL",0,0,(void*)(FL_NO_LABEL)},
+ {0}};
void labeltype_cb(Fl_Choice* i, void* v) {
if (v == LOAD) {
@@ -884,21 +924,21 @@ void labeltype_cb(Fl_Choice* i, void* v) {
////////////////////////////////////////////////////////////////
Fl_Menu_Item colormenu[] = {
- { "Foreground Color", 0, nullptr, (void*)(fl_intptr_t)FL_FOREGROUND_COLOR, 0, 0, FL_HELVETICA, 11},
- { "Background Color", 0, nullptr, (void*)(fl_intptr_t)FL_BACKGROUND_COLOR, 0, 0, FL_HELVETICA, 11},
- { "Background Color 2", 0, nullptr, (void*)(fl_intptr_t)FL_BACKGROUND2_COLOR, 0, 0, FL_HELVETICA, 11},
- { "Selection Color", 0, nullptr, (void*)(fl_intptr_t)FL_SELECTION_COLOR, 0, 0, FL_HELVETICA, 11},
- { "Inactive Color", 0, nullptr, (void*)(fl_intptr_t)FL_INACTIVE_COLOR, FL_MENU_DIVIDER, 0, FL_HELVETICA, 11},
- { "Black", 0, nullptr, (void*)(fl_intptr_t)FL_BLACK, 0, 0, FL_HELVETICA, 11},
- { "White", 0, nullptr, (void*)(fl_intptr_t)FL_WHITE, FL_MENU_DIVIDER, 0, FL_HELVETICA, 11},
- { "Gray 0", 0, nullptr, (void*)(fl_intptr_t)FL_GRAY0, 0, 0, FL_HELVETICA, 11},
- { "Dark 3", 0, nullptr, (void*)(fl_intptr_t)FL_DARK3, 0, 0, FL_HELVETICA, 11},
- { "Dark 2", 0, nullptr, (void*)(fl_intptr_t)FL_DARK2, 0, 0, FL_HELVETICA, 11},
- { "Dark 1", 0, nullptr, (void*)(fl_intptr_t)FL_DARK1, 0, 0, FL_HELVETICA, 11},
- { "Light 1", 0, nullptr, (void*)(fl_intptr_t)FL_LIGHT1, 0, 0, FL_HELVETICA, 11},
- { "Light 2", 0, nullptr, (void*)(fl_intptr_t)FL_LIGHT2, 0, 0, FL_HELVETICA, 11},
- { "Light 3", 0, nullptr, (void*)(fl_intptr_t)FL_LIGHT3, 0, 0, FL_HELVETICA, 11},
- { nullptr }
+ { "Foreground Color", 0, 0, (void*)(fl_intptr_t)FL_FOREGROUND_COLOR, 0, 0, FL_HELVETICA, 11},
+ { "Background Color", 0, 0, (void*)(fl_intptr_t)FL_BACKGROUND_COLOR, 0, 0, FL_HELVETICA, 11},
+ { "Background Color 2", 0, 0, (void*)(fl_intptr_t)FL_BACKGROUND2_COLOR, 0, 0, FL_HELVETICA, 11},
+ { "Selection Color", 0, 0, (void*)(fl_intptr_t)FL_SELECTION_COLOR, 0, 0, FL_HELVETICA, 11},
+ { "Inactive Color", 0, 0, (void*)(fl_intptr_t)FL_INACTIVE_COLOR, FL_MENU_DIVIDER, 0, FL_HELVETICA, 11},
+ { "Black", 0, 0, (void*)(fl_intptr_t)FL_BLACK, 0, 0, FL_HELVETICA, 11},
+ { "White", 0, 0, (void*)(fl_intptr_t)FL_WHITE, FL_MENU_DIVIDER, 0, FL_HELVETICA, 11},
+ { "Gray 0", 0, 0, (void*)(fl_intptr_t)FL_GRAY0, 0, 0, FL_HELVETICA, 11},
+ { "Dark 3", 0, 0, (void*)(fl_intptr_t)FL_DARK3, 0, 0, FL_HELVETICA, 11},
+ { "Dark 2", 0, 0, (void*)(fl_intptr_t)FL_DARK2, 0, 0, FL_HELVETICA, 11},
+ { "Dark 1", 0, 0, (void*)(fl_intptr_t)FL_DARK1, 0, 0, FL_HELVETICA, 11},
+ { "Light 1", 0, 0, (void*)(fl_intptr_t)FL_LIGHT1, 0, 0, FL_HELVETICA, 11},
+ { "Light 2", 0, 0, (void*)(fl_intptr_t)FL_LIGHT2, 0, 0, FL_HELVETICA, 11},
+ { "Light 3", 0, 0, (void*)(fl_intptr_t)FL_LIGHT3, 0, 0, FL_HELVETICA, 11},
+ { 0 }
};
void color_common(Fl_Color c) {
@@ -956,24 +996,24 @@ static Fl_Button* relative(Fl_Widget* o, int i) {
}
static Fl_Menu_Item alignmenu[] = {
- {"FL_ALIGN_CENTER",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_CENTER)},
- {"FL_ALIGN_TOP",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_TOP)},
- {"FL_ALIGN_BOTTOM",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_BOTTOM)},
- {"FL_ALIGN_LEFT",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_LEFT)},
- {"FL_ALIGN_RIGHT",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_RIGHT)},
- {"FL_ALIGN_INSIDE",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_INSIDE)},
- {"FL_ALIGN_CLIP",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_CLIP)},
- {"FL_ALIGN_WRAP",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_WRAP)},
- {"FL_ALIGN_TEXT_OVER_IMAGE",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_TEXT_OVER_IMAGE)},
- {"FL_ALIGN_TOP_LEFT",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_TOP_LEFT)},
- {"FL_ALIGN_TOP_RIGHT",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_TOP_RIGHT)},
- {"FL_ALIGN_BOTTOM_LEFT",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_BOTTOM_LEFT)},
- {"FL_ALIGN_BOTTOM_RIGHT",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_BOTTOM_RIGHT)},
- {"FL_ALIGN_LEFT_TOP",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_LEFT_TOP)},
- {"FL_ALIGN_RIGHT_TOP",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_RIGHT_TOP)},
- {"FL_ALIGN_LEFT_BOTTOM",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_LEFT_BOTTOM)},
- {"FL_ALIGN_RIGHT_BOTTOM",0,nullptr,(void*)(fl_intptr_t)(FL_ALIGN_RIGHT_BOTTOM)},
- {nullptr}
+ {"FL_ALIGN_CENTER",0,0,(void*)(fl_intptr_t)(FL_ALIGN_CENTER)},
+ {"FL_ALIGN_TOP",0,0,(void*)(fl_intptr_t)(FL_ALIGN_TOP)},
+ {"FL_ALIGN_BOTTOM",0,0,(void*)(fl_intptr_t)(FL_ALIGN_BOTTOM)},
+ {"FL_ALIGN_LEFT",0,0,(void*)(fl_intptr_t)(FL_ALIGN_LEFT)},
+ {"FL_ALIGN_RIGHT",0,0,(void*)(fl_intptr_t)(FL_ALIGN_RIGHT)},
+ {"FL_ALIGN_INSIDE",0,0,(void*)(fl_intptr_t)(FL_ALIGN_INSIDE)},
+ {"FL_ALIGN_CLIP",0,0,(void*)(fl_intptr_t)(FL_ALIGN_CLIP)},
+ {"FL_ALIGN_WRAP",0,0,(void*)(fl_intptr_t)(FL_ALIGN_WRAP)},
+ {"FL_ALIGN_TEXT_OVER_IMAGE",0,0,(void*)(fl_intptr_t)(FL_ALIGN_TEXT_OVER_IMAGE)},
+ {"FL_ALIGN_TOP_LEFT",0,0,(void*)(fl_intptr_t)(FL_ALIGN_TOP_LEFT)},
+ {"FL_ALIGN_TOP_RIGHT",0,0,(void*)(fl_intptr_t)(FL_ALIGN_TOP_RIGHT)},
+ {"FL_ALIGN_BOTTOM_LEFT",0,0,(void*)(fl_intptr_t)(FL_ALIGN_BOTTOM_LEFT)},
+ {"FL_ALIGN_BOTTOM_RIGHT",0,0,(void*)(fl_intptr_t)(FL_ALIGN_BOTTOM_RIGHT)},
+ {"FL_ALIGN_LEFT_TOP",0,0,(void*)(fl_intptr_t)(FL_ALIGN_LEFT_TOP)},
+ {"FL_ALIGN_RIGHT_TOP",0,0,(void*)(fl_intptr_t)(FL_ALIGN_RIGHT_TOP)},
+ {"FL_ALIGN_LEFT_BOTTOM",0,0,(void*)(fl_intptr_t)(FL_ALIGN_LEFT_BOTTOM)},
+ {"FL_ALIGN_RIGHT_BOTTOM",0,0,(void*)(fl_intptr_t)(FL_ALIGN_RIGHT_BOTTOM)},
+ {0}
};
void align_cb(Fl_Button* i, void* v) {
@@ -1197,7 +1237,7 @@ void position_group_cb(Fl_Group* g, void* v) {
// subtypes:
-Fl_Menu_Item* Widget_Node::subtypes() { return nullptr; }
+Fl_Menu_Item* Widget_Node::subtypes() { return 0; }
////////////////////////////////////////////////////////////////
@@ -1241,9 +1281,9 @@ void leave_live_mode_cb(Fl_Widget*, void*);
void live_mode_cb(Fl_Button* o, void *) {
/// \todo live mode should end gracefully when the application quits
/// or when the user closes the live widget
- static Node* live_type = nullptr;
- static Fl_Widget* live_widget = nullptr;
- static Fl_Window* live_window = nullptr;
+ static Node* live_type = 0;
+ static Fl_Widget* live_widget = 0;
+ static Fl_Window* live_window = 0;
if (!current_widget) {
o->value(0);
@@ -1257,11 +1297,11 @@ void live_mode_cb(Fl_Button* o, void *) {
}
if (o->value()) {
if (numselected == 1) {
- Fl_Group::current(nullptr);
+ Fl_Group::current(0);
live_widget = current_widget->enter_live_mode(1);
if (live_widget) {
live_type = current_widget;
- Fl_Group::current(nullptr);
+ Fl_Group::current(0);
int w = live_widget->w();
int h = live_widget->h();
live_window = new Fl_Double_Window(w+20, h+55, "Fluid Live Resize");
@@ -1301,9 +1341,9 @@ void live_mode_cb(Fl_Button* o, void *) {
live_window->hide();
Fl::delete_widget(live_window);
}
- live_type = nullptr;
- live_widget = nullptr;
- live_window = nullptr;
+ live_type = 0;
+ live_widget = 0;
+ live_window = 0;
}
}
@@ -1313,7 +1353,7 @@ void load_panel() {
// find all the Fl_Widget subclasses currently selected:
numselected = 0;
- current_widget = nullptr;
+ current_widget = 0;
if (Fluid.proj.tree.current) {
if (Fluid.proj.tree.current->is_a(FLD_NODE_TYPE_Data)) {
current_node = Fluid.proj.tree.current;
@@ -1348,7 +1388,7 @@ void load_panel() {
tabs_wizard->value(func_tabs);
numselected = 1;
} else {
- current_node = nullptr;
+ current_node = 0;
if (Fluid.proj.tree.current->is_widget())
current_widget=(Widget_Node*)Fluid.proj.tree.current;
for (Node* o = Fluid.proj.tree.first; o; o = o->next) {
@@ -1429,10 +1469,10 @@ extern void update_codeview_position();
void selection_changed(Node* p) {
// store all changes to the current selected objects:
if (p && the_panel && the_panel->visible()) {
- set_cb(nullptr,nullptr);
+ set_cb(0,0);
// if there was an error, we try to leave the selected set unchanged:
if (haderror) {
- Node* q = nullptr;
+ Node* q = 0;
for (Node* o = Fluid.proj.tree.first; o; o = o->next) {
o->new_selected = o->selected;
if (!q && o->selected) q = o;
@@ -1444,7 +1484,7 @@ void selection_changed(Node* p) {
}
}
// update the selected flags to new set:
- Node* q = nullptr;
+ Node* q = 0;
for (Node* o = Fluid.proj.tree.first; o; o = o->next) {
o->selected = o->new_selected;
if (!q && o->selected) q = o;
@@ -1474,11 +1514,11 @@ int is_name(const char* c) {
// number or a field or function. Return name() if not an array entry.
const char* array_name(Widget_Node* o) {
const char* c = o->name();
- if (!c) return nullptr;
+ if (!c) return 0;
const char* d;
for (d = c; *d != '['; d++) {
if (!*d) return c;
- if (ispunct(*d) && *d!='_') return nullptr;
+ if (ispunct(*d) && *d!='_') return 0;
}
int num = atoi(d+1);
int sawthis = 0;
@@ -1492,7 +1532,7 @@ const char* array_name(Widget_Node* o) {
if (!e) continue;
if (strncmp(c,e,d-c)) continue;
int n1 = atoi(e+(d-c)+1);
- if (n1 > num || (n1==num && sawthis)) return nullptr;
+ if (n1 > num || (n1==num && sawthis)) return 0;
}
static char buffer[128];
// MRS: we want strncpy() here...
@@ -1512,14 +1552,17 @@ int isdeclare(const char* c) {
}
void Widget_Node::write_static(fld::io::Code_Writer& f) {
- std::string t = subclassname(this);
- if (subclass().empty() || (is_class() && (t.compare(0, 3, "Fl_")==0))) {
+ const char* t = subclassname(this);
+ const char* sc = subclass();
+ if (!sc || !sc[0] || (is_class() && strncmp(t, "Fl_", 3)==0)) {
f.write_h_once("#include <FL/Fl.H>");
- f.write_h_once("#include <FL/%s.H>", t.c_str());
+ f.write_h_once("#include <FL/%s.H>", t);
}
- for (int n=0; n < NUM_EXTRA_CODE; n++) {
- if (!extra_code(n).empty() && isdeclare(extra_code(n).c_str()))
- f.write_h_once("%s", extra_code(n).c_str());
+ int n;
+ for (n=0; n < NUM_EXTRA_CODE; n++) {
+ const char* ec = extra_code(n);
+ if (ec && ec[0] && isdeclare(ec))
+ f.write_h_once("%s", ec);
}
if (callback() && is_name(callback())) {
int write_extern_declaration = 1;
@@ -1528,11 +1571,11 @@ void Widget_Node::write_static(fld::io::Code_Writer& f) {
if (has_function("static void", buf))
write_extern_declaration = 0;
} else {
- if (has_toplevel_function(nullptr, buf))
+ if (has_toplevel_function(0, buf))
write_extern_declaration = 0;
}
if (write_extern_declaration)
- f.write_h_once("extern void %s(%s*, %s);", callback(), t.c_str(),
+ f.write_h_once("extern void %s(%s*, %s);", callback(), t,
user_data_type() ? user_data_type() : "void*");
}
const char* k = class_name(1);
@@ -1540,9 +1583,9 @@ void Widget_Node::write_static(fld::io::Code_Writer& f) {
if (c && !k && !is_class()) {
f.write_c("\n");
if (!public_) f.write_c("static ");
- else f.write_h("extern %s *%s;\n", t.c_str(), c);
- if (strchr(c, '[') == nullptr) f.write_c("%s *%s=(%s *)0;\n", t.c_str(), c, t.c_str());
- else f.write_c("%s *%s={(%s *)0};\n", t.c_str(), c, t.c_str());
+ else f.write_h("extern %s *%s;\n", t, c);
+ if (strchr(c, '[') == 0) f.write_c("%s *%s=(%s *)0;\n", t, c, t);
+ else f.write_c("%s *%s={(%s *)0};\n", t, c, t);
}
if (callback() && !is_name(callback()) && (callback()[0] != '[')) {
// see if 'o' or 'v' used, to prevent unused argument warnings:
@@ -1557,9 +1600,9 @@ void Widget_Node::write_static(fld::io::Code_Writer& f) {
}
const char* cn = callback_name(f);
if (k) {
- f.write_c("\nvoid %s::%s_i(%s*", k, cn, t.c_str());
+ f.write_c("\nvoid %s::%s_i(%s*", k, cn, t);
} else {
- f.write_c("\nstatic void %s(%s*", cn, t.c_str());
+ f.write_c("\nstatic void %s(%s*", cn, t);
}
if (use_o) f.write_c(" o");
const char* ut = user_data_type() ? user_data_type() : "void*";
@@ -1580,9 +1623,9 @@ void Widget_Node::write_static(fld::io::Code_Writer& f) {
f.tag(FLD_MERGEBACK_TAG_WIDGET_CALLBACK, FLD_MERGEBACK_TAG_GENERIC, get_uid());
f.write_c("}\n");
if (k) {
- f.write_c("void %s::%s(%s* o, %s v) {\n", k, cn, t.c_str(), ut);
+ f.write_c("void %s::%s(%s* o, %s v) {\n", k, cn, t, ut);
f.write_c("%s((%s*)(o", f.indent(1), k);
- Node* q = nullptr;
+ Node* q = 0;
for (Node* p = parent; p && p->is_widget(); q = p, p = p->parent)
f.write_c("->parent()");
if (!q || !q->is_a(FLD_NODE_TYPE_Widget_Class))
@@ -1601,20 +1644,20 @@ void Widget_Node::write_static(fld::io::Code_Writer& f) {
}
void Widget_Node::write_code1(fld::io::Code_Writer& f) {
- std::string t = subclassname(this);
+ const char* t = subclassname(this);
const char* c = array_name(this);
if (c) {
if (class_name(1)) {
f.write_public(public_);
- f.write_h("%s%s *%s;\n", f.indent(1), t.c_str(), c);
+ f.write_h("%s%s *%s;\n", f.indent(1), t, c);
}
}
if (class_name(1) && callback() && !is_name(callback())) {
const char* cn = callback_name(f);
const char* ut = user_data_type() ? user_data_type() : "void*";
f.write_public(0);
- f.write_h("%sinline void %s_i(%s*, %s);\n", f.indent(1), cn, t.c_str(), ut);
- f.write_h("%sstatic void %s(%s*, %s);\n", f.indent(1), cn, t.c_str(), ut);
+ f.write_h("%sinline void %s_i(%s*, %s);\n", f.indent(1), cn, t, ut);
+ f.write_h("%sstatic void %s(%s*, %s);\n", f.indent(1), cn, t, ut);
}
// figure out if local variable will be used (prevent compiler warnings):
int wused = !name() && is_a(FLD_NODE_TYPE_Window);
@@ -1633,15 +1676,16 @@ void Widget_Node::write_code1(fld::io::Code_Writer& f) {
}
if (!f.varused) {
- for (int n=0; n < NUM_EXTRA_CODE; n++)
- if (!extra_code(n).empty() && !isdeclare(extra_code(n).c_str()))
+ int n;
+ for (n=0; n < NUM_EXTRA_CODE; n++) {
+ const char* ec = extra_code(n);
+ if (ec && ec[0] && !isdeclare(ec))
{
int instring = 0;
int inname = 0;
int incomment = 0;
int incppcomment = 0;
- std::string code = extra_code(n);
- for (ptr = code.c_str(); *ptr; ptr ++) {
+ for (ptr = ec; *ptr; ptr ++) {
if (instring) {
if (*ptr == '\\') ptr++;
else if (*ptr == '\"') instring = 0;
@@ -1673,27 +1717,28 @@ void Widget_Node::write_code1(fld::io::Code_Writer& f) {
}
}
}
+ }
}
f.write_c("%s{ ", f.indent());
write_comment_inline_c(f);
- if (f.varused) f.write_c("%s* o = ", t.c_str());
+ if (f.varused) f.write_c("%s* o = ", t);
if (name()) f.write_c("%s = ", name());
if (is_a(FLD_NODE_TYPE_Window)) {
// Handle special case where user is faking a Fl_Group type as a window,
// there is no 2-argument constructor in that case:
- if (t.find("Window")==t.npos)
- f.write_c("new %s(0, 0, %d, %d", t.c_str(), o->w(), o->h());
+ if (strstr(t, "Window") == 0)
+ f.write_c("new %s(0, 0, %d, %d", t, o->w(), o->h());
else
- f.write_c("new %s(%d, %d", t.c_str(), o->w(), o->h());
+ f.write_c("new %s(%d, %d", t, o->w(), o->h());
} else if (is_a(FLD_NODE_TYPE_Menu_Bar)
&& ((Menu_Bar_Node*)this)->is_sys_menu_bar()
&& is_in_class()) {
f.write_c("(%s*)new %s(%d, %d, %d, %d",
- t.c_str(), ((Menu_Bar_Node*)this)->sys_menubar_proxy_name(),
+ t, ((Menu_Bar_Node*)this)->sys_menubar_proxy_name(),
o->x(), o->y(), o->w(), o->h());
} else {
- f.write_c("new %s(%d, %d, %d, %d", t.c_str(), o->x(), o->y(), o->w(), o->h());
+ f.write_c("new %s(%d, %d, %d, %d", t, o->x(), o->y(), o->w(), o->h());
}
if (label() && *label()) {
f.write_c(", ");
@@ -1727,7 +1772,7 @@ void Widget_Node::write_code1(fld::io::Code_Writer& f) {
}
void Widget_Node::write_color(fld::io::Code_Writer& f, const char* field, Fl_Color color) {
- const char* color_name = nullptr;
+ const char* color_name = 0;
switch (color) {
case FL_FOREGROUND_COLOR: color_name = "FL_FOREGROUND_COLOR"; break;
case FL_BACKGROUND2_COLOR: color_name = "FL_BACKGROUND2_COLOR"; break;
@@ -1769,15 +1814,15 @@ void Widget_Node::write_widget_code(fld::io::Code_Writer& f) {
Fl_Widget* tplate = ((Widget_Node*)factory)->o;
const char* var = is_class() ? "this" : name() ? name() : "o";
- if (!tooltip().empty()) {
+ if (tooltip() && tooltip()[0]) {
f.write_c("%s%s->tooltip(",f.indent(), var);
switch (Fluid.proj.i18n.type) {
case FLD_I18N_TYPE_NONE : /* None */
- f.write_cstring(tooltip().c_str());
+ f.write_cstring(tooltip());
break;
case FLD_I18N_TYPE_GNU : /* GNU gettext */
f.write_c("%s(", Fluid.proj.i18n.gnu_function.c_str());
- f.write_cstring(tooltip().c_str());
+ f.write_cstring(tooltip());
f.write_c(")");
break;
case FLD_I18N_TYPE_POSIX : /* POSIX catgets */
@@ -1785,7 +1830,7 @@ void Widget_Node::write_widget_code(fld::io::Code_Writer& f) {
Fluid.proj.i18n.posix_file.empty() ? "_catalog" : Fluid.proj.i18n.posix_file.c_str(),
Fluid.proj.i18n.posix_set.c_str(),
msgnum() + 1);
- f.write_cstring(tooltip().c_str());
+ f.write_cstring(tooltip());
f.write_c(")");
break;
}
@@ -1796,7 +1841,7 @@ void Widget_Node::write_widget_code(fld::io::Code_Writer& f) {
f.write_c("%s%s->type(%d);\n", f.indent(), var, ((Fl_Spinner*)o)->type());
else if (o->type() != tplate->type() && !is_a(FLD_NODE_TYPE_Window))
f.write_c("%s%s->type(%d);\n", f.indent(), var, o->type());
- if (o->box() != tplate->box() || !subclass().empty())
+ if (o->box() != tplate->box() || subclass() && subclass()[0])
f.write_c("%s%s->box(FL_%s);\n", f.indent(), var, boxname(o->box()));
// write shortcut command if needed
@@ -1838,9 +1883,9 @@ void Widget_Node::write_widget_code(fld::io::Code_Writer& f) {
if (b->down_box()) f.write_c("%s%s->down_box(FL_%s);\n", f.indent(), var,
boxname(b->down_box()));
}
- if (o->color() != tplate->color() || !subclass().empty())
+ if (o->color() != tplate->color() || subclass() && subclass()[0])
write_color(f, "color", o->color());
- if (o->selection_color() != tplate->selection_color() || !subclass().empty())
+ if (o->selection_color() != tplate->selection_color() || subclass() && subclass()[0])
write_color(f, "selection_color", o->selection_color());
if (image) {
image->write_code(f, bind_image_, var);
@@ -1870,14 +1915,14 @@ void Widget_Node::write_widget_code(fld::io::Code_Writer& f) {
f.write_c("%s->deimage()->data_h(), 0, 1);\n", var);
}
}
- if (o->labeltype() != tplate->labeltype() || !subclass().empty())
+ if (o->labeltype() != tplate->labeltype() || subclass() && subclass()[0])
f.write_c("%s%s->labeltype(FL_%s);\n", f.indent(), var,
item_name(labeltypemenu, o->labeltype()));
- if (o->labelfont() != tplate->labelfont() || !subclass().empty())
+ if (o->labelfont() != tplate->labelfont() || subclass() && subclass()[0])
f.write_c("%s%s->labelfont(%d);\n", f.indent(), var, o->labelfont());
- if (o->labelsize() != tplate->labelsize() || !subclass().empty())
+ if (o->labelsize() != tplate->labelsize() || subclass() && subclass()[0])
f.write_c("%s%s->labelsize(%d);\n", f.indent(), var, o->labelsize());
- if (o->labelcolor() != tplate->labelcolor() || !subclass().empty())
+ if (o->labelcolor() != tplate->labelcolor() || subclass() && subclass()[0])
write_color(f, "labelcolor", o->labelcolor());
if (o->horizontal_label_margin() != tplate->horizontal_label_margin())
f.write_c("%s%s->horizontal_label_margin(%d);\n", f.indent(), var, o->horizontal_label_margin());
@@ -1946,7 +1991,7 @@ void Widget_Node::write_widget_code(fld::io::Code_Writer& f) {
} else if (ud) {
f.write_c("%s%s->user_data((void*)(%s));\n", f.indent(), var, ud);
}
- if (o->align() != tplate->align() || !subclass().empty()) {
+ if (o->align() != tplate->align() || subclass() && subclass()[0]) {
int i = o->align();
f.write_c("%s%s->align(Fl_Align(%s", f.indent(), var,
item_name(alignmenu, i & ~FL_ALIGN_INSIDE));
@@ -1954,7 +1999,7 @@ void Widget_Node::write_widget_code(fld::io::Code_Writer& f) {
f.write_c("));\n");
}
Fl_When ww = o->when();
- if (ww != tplate->when() || !subclass().empty())
+ if (ww != tplate->when() || subclass() && subclass()[0])
f.write_c("%s%s->when(%s);\n", f.indent(), var, when_symbol_name(ww));
if (!o->visible() && o->parent())
f.write_c("%s%s->hide();\n", f.indent(), var);
@@ -1974,13 +2019,13 @@ void Widget_Node::write_widget_code(fld::io::Code_Writer& f) {
void Widget_Node::write_extra_code(fld::io::Code_Writer& f) {
for (int n=0; n < NUM_EXTRA_CODE; n++)
- if (!extra_code(n).empty() && !isdeclare(extra_code(n).c_str()))
- f.write_c("%s%s\n", f.indent(), extra_code(n).c_str());
+ if (extra_code(n) && extra_code(n)[0] && !isdeclare(extra_code(n)))
+ f.write_c("%s%s\n", f.indent(), extra_code(n));
}
void Widget_Node::write_block_close(fld::io::Code_Writer& f) {
f.indentation--;
- f.write_c("%s} // %s* %s\n", f.indent(), subclassname(this).c_str(),
+ f.write_c("%s} // %s* %s\n", f.indent(), subclassname(this),
name() ? name() : "o");
}
@@ -1999,11 +2044,11 @@ void Widget_Node::write_properties(fld::io::Project_Writer &f) {
case 1: break;
case 2: f.write_string("protected"); break;
}
- if (!tooltip().empty()) {
+ if (tooltip() && tooltip()[0]) {
f.write_string("tooltip");
f.write_word(tooltip());
}
- if (!image_name().empty()) {
+ if (image_name() && image_name()[0]) {
if (scale_image_w_ || scale_image_h_)
f.write_string("scale_image {%d %d}", scale_image_w_, scale_image_h_);
f.write_string("image");
@@ -2011,7 +2056,7 @@ void Widget_Node::write_properties(fld::io::Project_Writer &f) {
f.write_string("compress_image %d", compress_image_);
}
if (bind_image_) f.write_string("bind_image 1");
- if (!inactive_name().empty()) {
+ if (inactive_name() && inactive_name()[0]) {
if (scale_deimage_w_ || scale_deimage_h_)
f.write_string("scale_deimage {%d %d}", scale_deimage_w_, scale_deimage_h_);
f.write_string("deimage");
@@ -2113,12 +2158,12 @@ void Widget_Node::write_properties(fld::io::Project_Writer &f) {
if (resizable()) f.write_string("resizable");
if (hotspot()) f.write_string(is_a(FLD_NODE_TYPE_Menu_Item) ? "divider" : "hotspot");
if (menu_headline()) f.write_string("headline");
- for (int n=0; n < NUM_EXTRA_CODE; n++) if (!extra_code(n).empty()) {
+ for (int n=0; n < NUM_EXTRA_CODE; n++) if (extra_code(n) && extra_code(n)[0]) {
f.write_indent(level+1);
f.write_string("code%d",n);
- f.write_word(extra_code(n).c_str());
+ f.write_word(extra_code(n));
}
- if (!subclass().empty()) {
+ if (subclass() && subclass()[0]) {
f.write_indent(level+1);
f.write_string("class");
f.write_word(subclass());
@@ -2153,11 +2198,11 @@ void Widget_Node::read_property(fld::io::Project_Reader &f, const char* c) {
image_name(f.read_word());
// starting in 2023, `image` is always followed by `compress_image`
// the code below is for compatibility with older .fl files
- std::string ext = fl_filename_ext_str(image_name());
- if ( (ext != ".jpg")
- && (ext != ".png")
- && (ext != ".svg")
- && (ext != ".svgz"))
+ const char *ext = fl_filename_ext(image_name());
+ if ( (strcmp(ext, ".jpg") != 0)
+ && (strcmp(ext, ".png") != 0)
+ && (strcmp(ext, ".svg") != 0)
+ && (strcmp(ext, ".svgz") != 0))
compress_image_ = 0; // if it is neither of those, default to uncompressed
} else if (!strcmp(c,"bind_image")) {
bind_image_ = (int)atol(f.read_word());
@@ -2172,11 +2217,11 @@ void Widget_Node::read_property(fld::io::Project_Reader &f, const char* c) {
inactive_name(f.read_word());
// starting in 2023, `deimage` is always followed by `compress_deimage`
// the code below is for compatibility with older .fl files
- std::string ext = fl_filename_ext_str(inactive_name());
- if ( (ext != ".jpg")
- && (ext != ".png")
- && (ext != ".svg")
- && (ext != ".svgz"))
+ const char *ext = fl_filename_ext(inactive_name());
+ if ( (strcmp(ext, ".jpg") != 0)
+ && (strcmp(ext, ".png") != 0)
+ && (strcmp(ext, ".svg") != 0)
+ && (strcmp(ext, ".svgz") != 0))
compress_deimage_ = 0; // if it is neither of those, default to uncompressed
} else if (!strcmp(c,"bind_deimage")) {
bind_deimage_ = (int)atol(f.read_word());
@@ -2258,19 +2303,19 @@ void Widget_Node::read_property(fld::io::Project_Reader &f, const char* c) {
} else if (!strcmp(c,"when")) {
if (sscanf(f.read_word(),"%d",&x) == 1) o->when(x);
} else if (!strcmp(c,"minimum")) {
- if (is_a(FLD_NODE_TYPE_Valuator_)) ((Fl_Valuator*)o)->minimum(strtod(f.read_word(),nullptr));
- if (is_a(FLD_NODE_TYPE_Spinner)) ((Fl_Spinner*)o)->minimum(strtod(f.read_word(),nullptr));
+ if (is_a(FLD_NODE_TYPE_Valuator_)) ((Fl_Valuator*)o)->minimum(strtod(f.read_word(),0));
+ if (is_a(FLD_NODE_TYPE_Spinner)) ((Fl_Spinner*)o)->minimum(strtod(f.read_word(),0));
} else if (!strcmp(c,"maximum")) {
- if (is_a(FLD_NODE_TYPE_Valuator_)) ((Fl_Valuator*)o)->maximum(strtod(f.read_word(),nullptr));
- if (is_a(FLD_NODE_TYPE_Spinner)) ((Fl_Spinner*)o)->maximum(strtod(f.read_word(),nullptr));
+ if (is_a(FLD_NODE_TYPE_Valuator_)) ((Fl_Valuator*)o)->maximum(strtod(f.read_word(),0));
+ if (is_a(FLD_NODE_TYPE_Spinner)) ((Fl_Spinner*)o)->maximum(strtod(f.read_word(),0));
} else if (!strcmp(c,"step")) {
- if (is_a(FLD_NODE_TYPE_Valuator_)) ((Fl_Valuator*)o)->step(strtod(f.read_word(),nullptr));
- if (is_a(FLD_NODE_TYPE_Spinner)) ((Fl_Spinner*)o)->step(strtod(f.read_word(),nullptr));
+ if (is_a(FLD_NODE_TYPE_Valuator_)) ((Fl_Valuator*)o)->step(strtod(f.read_word(),0));
+ if (is_a(FLD_NODE_TYPE_Spinner)) ((Fl_Spinner*)o)->step(strtod(f.read_word(),0));
} else if (!strcmp(c,"value")) {
- if (is_a(FLD_NODE_TYPE_Valuator_)) ((Fl_Valuator*)o)->value(strtod(f.read_word(),nullptr));
- if (is_a(FLD_NODE_TYPE_Spinner)) ((Fl_Spinner*)o)->value(strtod(f.read_word(),nullptr));
+ if (is_a(FLD_NODE_TYPE_Valuator_)) ((Fl_Valuator*)o)->value(strtod(f.read_word(),0));
+ if (is_a(FLD_NODE_TYPE_Spinner)) ((Fl_Spinner*)o)->value(strtod(f.read_word(),0));
} else if ( (!strcmp(c,"slider_size") || !strcmp(c,"size")) && is_a(FLD_NODE_TYPE_Slider)) {
- ((Fl_Slider*)o)->slider_size(strtod(f.read_word(),nullptr));
+ ((Fl_Slider*)o)->slider_size(strtod(f.read_word(),0));
} else if (!strcmp(c,"textfont")) {
if (sscanf(f.read_word(),"%d",&x) == 1) {ft=(Fl_Font)x; textstuff(1,ft,s,cc);}
} else if (!strcmp(c,"textsize")) {
@@ -2290,7 +2335,7 @@ void Widget_Node::read_property(fld::io::Project_Reader &f, const char* c) {
} else if (!strcmp(c,"class")) {
subclass(f.read_word());
} else if (!strcmp(c,"shortcut")) {
- int shortcut = (int)strtol(f.read_word(),nullptr,0);
+ int shortcut = (int)strtol(f.read_word(),0,0);
if (is_button()) ((Fl_Button*)o)->shortcut(shortcut);
else if (is_a(FLD_NODE_TYPE_Input)) ((Fl_Input_*)o)->shortcut(shortcut);
else if (is_a(FLD_NODE_TYPE_Value_Input)) ((Fl_Value_Input*)o)->shortcut(shortcut);
@@ -2312,24 +2357,24 @@ void Widget_Node::read_property(fld::io::Project_Reader &f, const char* c) {
Fl_Menu_Item boxmenu1[] = {
// these extra ones are for looking up fdesign saved strings:
- {"NO_FRAME", 0,nullptr,(void *)FL_NO_BOX},
- {"ROUNDED3D_UPBOX", 0,nullptr,(void *)FL_ROUND_UP_BOX},
- {"ROUNDED3D_DOWNBOX", 0,nullptr,(void *)FL_ROUND_DOWN_BOX},
- {"OVAL3D_UPBOX", 0,nullptr,(void *)FL_ROUND_UP_BOX},
- {"OVAL3D_DOWNBOX", 0,nullptr,(void *)FL_ROUND_DOWN_BOX},
- {"0", 0,nullptr,(void *)ZERO_ENTRY},
- {"1", 0,nullptr,(void *)FL_UP_BOX},
- {"2", 0,nullptr,(void *)FL_DOWN_BOX},
- {"3", 0,nullptr,(void *)FL_FLAT_BOX},
- {"4", 0,nullptr,(void *)FL_BORDER_BOX},
- {"5", 0,nullptr,(void *)FL_SHADOW_BOX},
- {"6", 0,nullptr,(void *)FL_FRAME_BOX},
- {"7", 0,nullptr,(void *)FL_ROUNDED_BOX},
- {"8", 0,nullptr,(void *)FL_RFLAT_BOX},
- {"9", 0,nullptr,(void *)FL_RSHADOW_BOX},
- {"10", 0,nullptr,(void *)FL_UP_FRAME},
- {"11", 0,nullptr,(void *)FL_DOWN_FRAME},
- {nullptr}};
+ {"NO_FRAME", 0,0,(void *)FL_NO_BOX},
+ {"ROUNDED3D_UPBOX", 0,0,(void *)FL_ROUND_UP_BOX},
+ {"ROUNDED3D_DOWNBOX", 0,0,(void *)FL_ROUND_DOWN_BOX},
+ {"OVAL3D_UPBOX", 0,0,(void *)FL_ROUND_UP_BOX},
+ {"OVAL3D_DOWNBOX", 0,0,(void *)FL_ROUND_DOWN_BOX},
+ {"0", 0,0,(void *)ZERO_ENTRY},
+ {"1", 0,0,(void *)FL_UP_BOX},
+ {"2", 0,0,(void *)FL_DOWN_BOX},
+ {"3", 0,0,(void *)FL_FLAT_BOX},
+ {"4", 0,0,(void *)FL_BORDER_BOX},
+ {"5", 0,0,(void *)FL_SHADOW_BOX},
+ {"6", 0,0,(void *)FL_FRAME_BOX},
+ {"7", 0,0,(void *)FL_ROUNDED_BOX},
+ {"8", 0,0,(void *)FL_RFLAT_BOX},
+ {"9", 0,0,(void *)FL_RSHADOW_BOX},
+ {"10", 0,0,(void *)FL_UP_FRAME},
+ {"11", 0,0,(void *)FL_DOWN_FRAME},
+ {0}};
int lookup_symbol(const char *, int &, int numberok = 0);
@@ -2425,7 +2470,7 @@ int Widget_Node::read_fdesign(const char* propname, const char* value) {
}
void leave_live_mode_cb(Fl_Widget*, void*) {
- live_mode_cb(nullptr, nullptr);
+ live_mode_cb(0, 0);
}
Fl_Widget* Widget_Node::enter_live_mode(int) {
@@ -2472,10 +2517,10 @@ void Widget_Node::copy_properties() {
// copy all attributes common to all widget types
Fl_Widget* w = live_widget;
w->label(o->label());
- if (tooltip().empty())
- w->tooltip(nullptr);
+ if ((!tooltip() || !tooltip()[0]))
+ w->tooltip(0);
else
- w->copy_tooltip(tooltip().c_str());
+ w->copy_tooltip(tooltip());
w->type(o->type());
w->box(o->box());
w->color(o->color());