diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2005-04-09 14:17:13 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2005-04-09 14:17:13 +0000 |
| commit | 000eca281a5cb99e652cea69ef97832ee5240fa3 (patch) | |
| tree | 1695dceda56833821abfb1aab18c3f28765f1d4a /fluid | |
| parent | 25447eeb0415cee874721d41fd31e788c95e0418 (diff) | |
FLUID widget class support fixes.
fluid/Fl_Window_Type.cxx:
- Fl_Widget_Class::write_code1(): forgot name() in window
class constructor.
fluid/code.cxx:
- write_code(): skip nodes as needed when writing code so we
don't place method code in the constructor.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4252 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'fluid')
| -rw-r--r-- | fluid/Fl_Window_Type.cxx | 2 | ||||
| -rw-r--r-- | fluid/code.cxx | 14 |
2 files changed, 13 insertions, 3 deletions
diff --git a/fluid/Fl_Window_Type.cxx b/fluid/Fl_Window_Type.cxx index 5d05ecd5d..26ff04580 100644 --- a/fluid/Fl_Window_Type.cxx +++ b/fluid/Fl_Window_Type.cxx @@ -1342,7 +1342,7 @@ void Fl_Widget_Class_Type::write_code1() { write_h(" void _%s();\n", name()); write_h("public:\n"); write_h(" %s(int X, int Y, int W, int H, const char *L = 0);\n", name()); - write_h(" %s(int W, int H, const char *L = 0);\n"); + write_h(" %s(int W, int H, const char *L = 0);\n", name()); write_c("%s::%s(int X, int Y, int W, int H, const char *L)\n", name(), name()); write_c(" : %s(X, Y, W, H, L) {\n", c); diff --git a/fluid/code.cxx b/fluid/code.cxx index d04d390fd..bbac3cbeb 100644 --- a/fluid/code.cxx +++ b/fluid/code.cxx @@ -254,14 +254,24 @@ static Fl_Type* write_code(Fl_Type* p) { // Handle widget classes specially for (q = p->next; q && q->level > p->level;) { if (strcmp(q->type_name(), "Function")) q = write_code(q); - else q = q->next; + else { + int level = q->level; + do { + q = q->next; + } while (q && q->level > level); + } } p->write_code2(); for (q = p->next; q && q->level > p->level;) { if (!strcmp(q->type_name(), "Function")) q = write_code(q); - else q = q->next; + else { + int level = q->level; + do { + q = q->next; + } while (q && q->level > level); + } } write_h("};\n"); |
