summaryrefslogtreecommitdiff
path: root/fluid
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2010-03-06 14:38:38 +0000
committerMatthias Melcher <fltk@matthiasm.com>2010-03-06 14:38:38 +0000
commita2547a31a0c31b9f46fc94c5d5db5e37ec5fac99 (patch)
treed4fc8b80dff5d6f6d60865871af3b6b98657985e /fluid
parent7a9f415c65b70a9f06493bad569037950cce5044 (diff)
More FLUID IDE file generation.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7225 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'fluid')
-rw-r--r--fluid/ide_support.cxx33
-rw-r--r--fluid/ide_support_ui.cxx135
-rw-r--r--fluid/ide_support_ui.fl146
-rw-r--r--fluid/ide_support_ui.h13
4 files changed, 303 insertions, 24 deletions
diff --git a/fluid/ide_support.cxx b/fluid/ide_support.cxx
index 1cae20acc..c1181c53f 100644
--- a/fluid/ide_support.cxx
+++ b/fluid/ide_support.cxx
@@ -635,6 +635,7 @@ int create_new_database(const char *filename)
fluid_app.add_source(files_db, "fluid/file.cxx");
fluid_app.add_source(files_db, "fluid/fluid.cxx");
fluid_app.add_source(files_db, "fluid/function_panel.cxx");
+ fluid_app.add_source(files_db, "fluid/ide_maketools.cxx");
fluid_app.add_source(files_db, "fluid/ide_support.cxx");
fluid_app.add_source(files_db, "fluid/ide_support_ui.cxx");
fluid_app.add_source(files_db, "fluid/ide_visualc.cxx");
@@ -1135,6 +1136,31 @@ int create_new_database(const char *filename)
return 0;
}
+class Item_Manager {
+ Fl_Preferences::ID id;
+public:
+ Item_Manager(Fl_Preferences::ID idA) { id = idA; }
+ virtual ~Item_Manager() { }
+ virtual void select(Fl_Tree_Item *) { dbm_wizard->value(dbm_empty); }
+};
+
+class Test_Item_Manager : public Item_Manager {
+ Fl_Preferences::ID id;
+public:
+ Test_Item_Manager(Fl_Preferences::ID idA) : Item_Manager(idA) { }
+ virtual void select(Fl_Tree_Item *ti) {
+ dbm_wizard->value(dbm_test);
+ dbm_test_name->value(ti->label());
+ }
+};
+
+void tree_item_cb(Fl_Tree *t, void *) {
+ Fl_Tree_Item *ti = t->item_clicked();
+ Item_Manager *im = (Item_Manager*)ti->user_data();
+ if (im) {
+ im->select(ti);
+ }
+}
void ui_load_database(const char *filename)
{
@@ -1142,6 +1168,8 @@ void ui_load_database(const char *filename)
float v = 0.0f;
int i, j;
+ dbmanager_tree->callback((Fl_Callback*)tree_item_cb);
+
// FIXME: must be global, so we can close it
Fl_Preferences *db = new Fl_Preferences(filename, "fltk.org", 0);
@@ -1185,17 +1213,21 @@ void ui_load_database(const char *filename)
// load all tests
ti = dbmanager_tree->add("Applications");
+ ti->user_data(new Item_Manager(0L));
// load all tests
ti = dbmanager_tree->add("Libraries & Frameworks");
+ ti->user_data(new Item_Manager(0L));
// load all tests
ti = dbmanager_tree->add("Test Applications");
+ ti->user_data(new Item_Manager(0L));
Fl_Preferences testsDB(targetsDB, "tests");
for (i=0; i<testsDB.groups(); i++) {
Fl_Preferences testDB(testsDB, i);
testDB.get("name", buf, "DB-Error", 1024);
Fl_Tree_Item *tt = dbmanager_tree->add(ti, buf); tt->close();
+ tt->user_data(new Test_Item_Manager(testDB.id()));
if (testDB.groupExists("sources")) {
Fl_Tree_Item *ts = dbmanager_tree->add(tt, "Sources"); ts->close();
@@ -1205,7 +1237,6 @@ void ui_load_database(const char *filename)
srcDB.get("refUUID", buf, "DBERROR", 1024);
Fl_File_Prefs fileDB(filesDB, buf);
Fl_Tree_Item *tb = dbmanager_tree->add(ts, fileDB.fullName());
- tb->user_data(0L); // TODO: add the callback information here
}
}
diff --git a/fluid/ide_support_ui.cxx b/fluid/ide_support_ui.cxx
index b6507a6ce..0815548d1 100644
--- a/fluid/ide_support_ui.cxx
+++ b/fluid/ide_support_ui.cxx
@@ -49,6 +49,26 @@ if (filename) {
};
}
+Fl_Wizard *dbm_wizard=(Fl_Wizard *)0;
+
+Fl_Group *dbm_empty=(Fl_Group *)0;
+
+Fl_Group *dbm_app=(Fl_Group *)0;
+
+Fl_Input *dbm_app_name=(Fl_Input *)0;
+
+Fl_Group *dbm_lib=(Fl_Group *)0;
+
+Fl_Input *dbm_lib_name=(Fl_Input *)0;
+
+Fl_Group *dbm_test=(Fl_Group *)0;
+
+Fl_Input *dbm_test_name=(Fl_Input *)0;
+
+Fl_Group *dbm_sources=(Fl_Group *)0;
+
+Fl_Group *dbm_source=(Fl_Group *)0;
+
Fl_Double_Window* make_dbmanager_window() {
{ dbmanager_window = new Fl_Double_Window(427, 500);
{ dbmanager_tree = new Fl_Tree(8, 8, 200, 480);
@@ -60,27 +80,124 @@ Fl_Double_Window* make_dbmanager_window() {
dbmanager_tree->labelsize(14);
dbmanager_tree->labelcolor(FL_FOREGROUND_COLOR);
dbmanager_tree->align(Fl_Align(FL_ALIGN_CENTER));
- dbmanager_tree->when(FL_WHEN_RELEASE);
+ dbmanager_tree->when(FL_WHEN_CHANGED);
Fl_Group::current()->resizable(dbmanager_tree);
dbmanager_tree->showroot(0);
- dbmanager_tree->labelsize(12);
} // Fl_Tree* dbmanager_tree
{ Fl_Group* o = new Fl_Group(216, 8, 200, 444);
- o->box(FL_ENGRAVED_BOX);
- { Fl_Group* o = new Fl_Group(224, 271, 184, 172);
+ { Fl_Group* o = new Fl_Group(224, 364, 184, 79);
o->end();
Fl_Group::current()->resizable(o);
} // Fl_Group* o
- { Fl_Box* o = new Fl_Box(224, 108, 184, 160, "Show editor\nfor selected\nItem here");
- o->box(FL_THIN_DOWN_BOX);
- } // Fl_Box* o
- { Fl_Button* o = new Fl_Button(242, 60, 148, 28, "Open Database...");
+ { Fl_Button* o = new Fl_Button(240, 52, 152, 28, "Open Database...");
o->callback((Fl_Callback*)cb_Open);
} // Fl_Button* o
- { Fl_Button* o = new Fl_Button(242, 24, 148, 28, " (New Database... )");
+ { Fl_Button* o = new Fl_Button(240, 16, 152, 28, " (New Database... )");
o->callback((Fl_Callback*)cb_New);
o->deactivate();
} // Fl_Button* o
+ { dbm_wizard = new Fl_Wizard(216, 92, 200, 272);
+ dbm_wizard->box(FL_ENGRAVED_BOX);
+ { dbm_empty = new Fl_Group(216, 92, 200, 272);
+ dbm_empty->hide();
+ dbm_empty->end();
+ } // Fl_Group* dbm_empty
+ { dbm_app = new Fl_Group(216, 92, 200, 272);
+ dbm_app->hide();
+ { dbm_app_name = new Fl_Input(280, 108, 111, 24, "(Name:)");
+ dbm_app_name->deactivate();
+ } // Fl_Input* dbm_app_name
+ { Fl_Button* o = new Fl_Button(240, 140, 152, 28, " (New Source... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 176, 152, 28, " (Add Source... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 212, 152, 28, " (Add Library... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 248, 152, 28, " (Add Dependency... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 284, 152, 28, " (Add External Item... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 320, 152, 28, " (Remove Test...)");
+ o->deactivate();
+ } // Fl_Button* o
+ dbm_app->end();
+ } // Fl_Group* dbm_app
+ { dbm_lib = new Fl_Group(216, 92, 200, 272);
+ dbm_lib->hide();
+ { dbm_lib_name = new Fl_Input(280, 108, 111, 24, "(Name:)");
+ dbm_lib_name->deactivate();
+ } // Fl_Input* dbm_lib_name
+ { Fl_Button* o = new Fl_Button(240, 140, 152, 28, " (New Source... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 176, 152, 28, " (Add Source... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 212, 152, 28, " (Add Library... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 248, 152, 28, " (Add Dependency... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 284, 152, 28, " (Add External Item... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 320, 152, 28, " (Remove Test...)");
+ o->deactivate();
+ } // Fl_Button* o
+ dbm_lib->end();
+ } // Fl_Group* dbm_lib
+ { dbm_test = new Fl_Group(216, 92, 200, 272);
+ dbm_test->hide();
+ { dbm_test_name = new Fl_Input(280, 108, 111, 24, "(Name:)");
+ dbm_test_name->deactivate();
+ } // Fl_Input* dbm_test_name
+ { Fl_Button* o = new Fl_Button(240, 140, 152, 28, " (New Source... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 176, 152, 28, " (Add Source... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 212, 152, 28, " (Add Library... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 248, 152, 28, " (Add Dependency... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 284, 152, 28, " (Add External Item... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 320, 152, 28, " (Remove Test...)");
+ o->deactivate();
+ } // Fl_Button* o
+ dbm_test->end();
+ } // Fl_Group* dbm_test
+ { dbm_sources = new Fl_Group(216, 92, 200, 128);
+ dbm_sources->hide();
+ { Fl_Button* o = new Fl_Button(240, 104, 152, 28, " (New Source... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 140, 152, 28, " (Add Source... )");
+ o->deactivate();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(240, 176, 152, 28, " (Remove All Sources...)");
+ o->deactivate();
+ } // Fl_Button* o
+ dbm_sources->end();
+ } // Fl_Group* dbm_sources
+ { dbm_source = new Fl_Group(216, 92, 200, 52);
+ { Fl_Button* o = new Fl_Button(240, 104, 152, 28, " (Remove Source... )");
+ o->deactivate();
+ } // Fl_Button* o
+ dbm_source->end();
+ } // Fl_Group* dbm_source
+ dbm_wizard->end();
+ } // Fl_Wizard* dbm_wizard
o->end();
} // Fl_Group* o
{ Fl_Button* o = new Fl_Button(324, 460, 92, 28, "( Close )");
diff --git a/fluid/ide_support_ui.fl b/fluid/ide_support_ui.fl
index 539526ae8..72a128d3a 100644
--- a/fluid/ide_support_ui.fl
+++ b/fluid/ide_support_ui.fl
@@ -46,38 +46,158 @@ Function {make_dbmanager_window()} {open
xywh {459 167 427 500} type Double resizable visible
} {
Fl_Box dbmanager_tree {
- xywh {8 8 200 480} box DOWN_BOX color 55 resizable
+ xywh {8 8 200 480} box DOWN_BOX color 55 when 1 resizable
code0 {dbmanager_tree->showroot(0);}
- code1 {dbmanager_tree->labelsize(12);}
class Fl_Tree
}
Fl_Group {} {open
- xywh {216 8 200 444} box ENGRAVED_BOX
+ xywh {216 8 200 444}
} {
Fl_Group {} {open
- xywh {224 271 184 172} resizable
+ xywh {224 364 184 79} resizable
} {}
- Fl_Box {} {
- label {Show editor
-for selected
-Item here}
- xywh {224 108 184 160} box THIN_DOWN_BOX
- }
Fl_Button {} {
label {Open Database...}
callback {const char *filename = fl_file_chooser("Load Database", "*.db", 0, 0);
if (filename) {
ui_load_database(filename);
}}
- xywh {242 60 148 28}
+ xywh {240 52 152 28}
}
Fl_Button {} {
label { (New Database... )}
callback {const char *filename = fl_file_chooser("Load Database", "*.db", 0, 0);
if (filename) {
ui_load_database(filename);
-}} selected
- xywh {242 24 148 28} deactivate
+}}
+ xywh {240 16 152 28} deactivate
+ }
+ Fl_Wizard dbm_wizard {open selected
+ xywh {216 92 200 272} box ENGRAVED_BOX
+ } {
+ Fl_Group dbm_empty {open
+ xywh {216 92 200 272} hide
+ } {}
+ Fl_Group dbm_app {
+ xywh {216 92 200 272} hide
+ } {
+ Fl_Input dbm_app_name {
+ label {(Name:)}
+ xywh {280 108 111 24} deactivate
+ }
+ Fl_Button {} {
+ label { (New Source... )}
+ xywh {240 140 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add Source... )}
+ xywh {240 176 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add Library... )}
+ xywh {240 212 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add Dependency... )}
+ xywh {240 248 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add External Item... )}
+ xywh {240 284 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Remove Test...)}
+ xywh {240 320 152 28} deactivate
+ }
+ }
+ Fl_Group dbm_lib {
+ xywh {216 92 200 272} hide
+ } {
+ Fl_Input dbm_lib_name {
+ label {(Name:)}
+ xywh {280 108 111 24} deactivate
+ }
+ Fl_Button {} {
+ label { (New Source... )}
+ xywh {240 140 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add Source... )}
+ xywh {240 176 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add Library... )}
+ xywh {240 212 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add Dependency... )}
+ xywh {240 248 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add External Item... )}
+ xywh {240 284 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Remove Test...)}
+ xywh {240 320 152 28} deactivate
+ }
+ }
+ Fl_Group dbm_test {
+ xywh {216 92 200 272} hide
+ } {
+ Fl_Input dbm_test_name {
+ label {(Name:)}
+ xywh {280 108 111 24} deactivate
+ }
+ Fl_Button {} {
+ label { (New Source... )}
+ xywh {240 140 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add Source... )}
+ xywh {240 176 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add Library... )}
+ xywh {240 212 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add Dependency... )}
+ xywh {240 248 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add External Item... )}
+ xywh {240 284 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Remove Test...)}
+ xywh {240 320 152 28} deactivate
+ }
+ }
+ Fl_Group dbm_sources {
+ xywh {216 92 200 128} hide
+ } {
+ Fl_Button {} {
+ label { (New Source... )}
+ xywh {240 104 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Add Source... )}
+ xywh {240 140 152 28} deactivate
+ }
+ Fl_Button {} {
+ label { (Remove All Sources...)}
+ xywh {240 176 152 28} deactivate
+ }
+ }
+ Fl_Group dbm_source {
+ xywh {216 92 200 52}
+ } {
+ Fl_Button {} {
+ label { (Remove Source... )}
+ xywh {240 104 152 28} deactivate
+ }
+ }
}
}
Fl_Button {} {
diff --git a/fluid/ide_support_ui.h b/fluid/ide_support_ui.h
index c3cabc069..9232e62c4 100644
--- a/fluid/ide_support_ui.h
+++ b/fluid/ide_support_ui.h
@@ -35,8 +35,19 @@
extern Fl_Double_Window *dbmanager_window;
extern Fl_Tree *dbmanager_tree;
#include <FL/Fl_Group.H>
-#include <FL/Fl_Box.H>
#include <FL/Fl_Button.H>
+#include <FL/Fl_Wizard.H>
+extern Fl_Wizard *dbm_wizard;
+extern Fl_Group *dbm_empty;
+extern Fl_Group *dbm_app;
+#include <FL/Fl_Input.H>
+extern Fl_Input *dbm_app_name;
+extern Fl_Group *dbm_lib;
+extern Fl_Input *dbm_lib_name;
+extern Fl_Group *dbm_test;
+extern Fl_Input *dbm_test_name;
+extern Fl_Group *dbm_sources;
+extern Fl_Group *dbm_source;
Fl_Double_Window* make_dbmanager_window();
#endif