Author: matt
Date: 2011-08-10 09:45:13 -0700 (Wed, 10 Aug 2011)
New Revision: 8940
Log:
Fluid3:
- more verbose messages when writing build environments (if set)
- universal properties dialog for workspaces
- remove redundant menu items
Modified:
branches/branch-3.0/fltk.flw
branches/branch-3.0/fltk3/PackedGroup.h
branches/branch-3.0/fluid/Fl_Type.cxx
branches/branch-3.0/fluid/Fl_Type.h
branches/branch-3.0/fluid/Fl_Widget_Type.cxx
branches/branch-3.0/fluid/file.cxx
branches/branch-3.0/fluid/fluid.cxx
branches/branch-3.0/fluid/workspace_panel.cxx
branches/branch-3.0/fluid/workspace_panel.fl
branches/branch-3.0/fluid/workspace_panel.h
branches/branch-3.0/src/Fl_Pack.cxx
Modified: branches/branch-3.0/fltk.flw
===================================================================
--- branches/branch-3.0/fltk.flw 2011-08-09 22:16:47 UTC (rev 8939)
+++ branches/branch-3.0/fltk.flw 2011-08-10 16:45:13 UTC (rev 8940)
@@ -1,9 +1,7 @@
# data file for the Fltk User Interface Designer (fluid)
version 3.0000
header_name {.h}
-code_name {.cxx}
-wks_name FLTK
-wks_env 64
+code_name {.cxx}
workspace FLTK {open
uuid_Xcode4_Root {2204C862-3EAB-44CD-B0A8-6DF16FFDC8F4}
uuid_Xcode4_ProductsGroup {A3B55F76-F5F9-4F9E-8A45-2778583213A1}
@@ -12,6 +10,7 @@
uuid_Xcode4_ContainerItemProxy {7DB77C01-F47B-42CE-883F-5CD221F15472}
uuid_Xcode4_DebugBuildConfiguration {2B180F46-0364-417C-B270-125FAF04B452}
uuid_Xcode4_ReleaseBuildConfiguration {C5259E66-FBF8-43A2-B30F-8D59BBE3CF16}
+ build_env 64
} {
folder Applications {open
uuid_Xcode4_Group {137F861A-5702-45AC-821B-A2C51A17F780}
@@ -1488,7 +1487,7 @@
list_env 64
filename_and_path {src/Fl_Native_File_Chooser_MAC.mm}
}
- file_ref {Fl_Quartz_Printer.mm} {
+ file_ref {Fl_Quartz_Printer.mm} {selected
uuid_Xcode4_BuildFile {982B3E9E-7B79-4E84-A10F-7270A2EB17A5}
uuid_Xcode4_FileRef {10A048C4-1F53-4215-8F9A-E8829C9F77EA}
uuid_Xcode4_BuildFileInSources {B7920395-B4B5-480F-BB30-14BE46AA357D}
@@ -4330,7 +4329,7 @@
uuid_Xcode4_DebugBuildConfiguration
{6F972745-D600-4ADA-AB19-ED9C538E504C}
uuid_Xcode4_ReleaseBuildConfiguration
{73753145-1E68-48F9-8D70-2CEDA9800F23}
} {
- file_ref {curve.cxx} {selected
+ file_ref {curve.cxx} {
uuid_Xcode4_BuildFileInSources {836E1D98-69DD-40A3-A962-62117FED160D}
uuid_Xcode4_FileRef {FE2E2FF8-0822-4842-B4B2-B204AD098B77}
filename_and_path {test/curve.cxx}
Modified: branches/branch-3.0/fltk3/PackedGroup.h
===================================================================
--- branches/branch-3.0/fltk3/PackedGroup.h 2011-08-09 22:16:47 UTC (rev
8939)
+++ branches/branch-3.0/fltk3/PackedGroup.h 2011-08-10 16:45:13 UTC (rev
8940)
@@ -84,6 +84,8 @@
void spacing(int i) {spacing_ = i;}
/** Same as fltk3::Group::type() */
uchar horizontal() const {return type();}
+ /** Recalculate the size of this widget and reposition all children. */
+ void layout();
};
}
Modified: branches/branch-3.0/fluid/Fl_Type.cxx
===================================================================
--- branches/branch-3.0/fluid/Fl_Type.cxx 2011-08-09 22:16:47 UTC (rev
8939)
+++ branches/branch-3.0/fluid/Fl_Type.cxx 2011-08-10 16:45:13 UTC (rev
8940)
@@ -199,14 +199,10 @@
&lib_target_pixmap, &workspace_pixmap, &dependency_pixmap};
/* 57..59 */
extern int show_comments;
+extern Fl_Panel *the_file_panel;
////////////////////////////////////////////////////////////////
-unsigned int wks_env = FL_ENV_ALL;
-char *wks_name = 0L;
-
-////////////////////////////////////////////////////////////////
-
class Widget_Browser : public fltk3::Browser_ {
friend class Fl_Type;
@@ -1274,10 +1270,9 @@
}
void Fl_Workspace_Type::open() {
- const char *lName = fltk3::input("Enter a name for the workspace", name());
- if (lName) {
- name(lName);
- }
+ if (!the_file_panel) the_file_panel = make_file_panel();
+ the_file_panel->load(&Fl_Type::is_tool);
+ if (Fl_Panel::numselected) the_file_panel->show();
}
@@ -1307,10 +1302,9 @@
}
void Fl_Target_Dependency_Type::open() {
- const char *lName = fltk3::input("Enter a name for the target dependency",
name());
- if (lName) {
- name(lName);
- }
+ if (!the_file_panel) the_file_panel = make_file_panel();
+ the_file_panel->load(&Fl_Type::is_tool);
+ if (Fl_Panel::numselected) the_file_panel->show();
}
@@ -1384,10 +1378,9 @@
}
void Fl_App_Target_Type::open() {
- const char *lName = fltk3::input("Enter a name for the application", name());
- if (lName) {
- name(lName);
- }
+ if (!the_file_panel) the_file_panel = make_file_panel();
+ the_file_panel->load(&Fl_Type::is_tool);
+ if (Fl_Panel::numselected) the_file_panel->show();
}
// ------------ Library Target
-------------------------------------------------
@@ -1413,15 +1406,13 @@
}
void Fl_Lib_Target_Type::open() {
- const char *lName = fltk3::input("Enter a name for the library", name());
- if (lName) {
- name(lName);
- }
+ if (!the_file_panel) the_file_panel = make_file_panel();
+ the_file_panel->load(&Fl_Type::is_tool);
+ if (Fl_Panel::numselected) the_file_panel->show();
}
// ------------ Generic File
---------------------------------------------------
-extern Fl_Panel *the_file_panel;
Fl_File_Type Fl_File_type;
Fl_Type *Fl_File_Type::make() {
@@ -1617,7 +1608,7 @@
void Fl_File_Type::open() {
if (!the_file_panel) the_file_panel = make_file_panel();
- the_file_panel->load(&Fl_Type::is_file);
+ the_file_panel->load(&Fl_Type::is_tool);
if (Fl_Panel::numselected) the_file_panel->show();
}
@@ -1644,10 +1635,9 @@
}
void Fl_Folder_Type::open() {
- const char *lName = fltk3::input("Enter a name for the folder", name());
- if (lName) {
- name(lName);
- }
+ if (!the_file_panel) the_file_panel = make_file_panel();
+ the_file_panel->load(&Fl_Type::is_tool);
+ if (Fl_Panel::numselected) the_file_panel->show();
}
// ------------ Panel Base Class
-----------------------------------------------
Modified: branches/branch-3.0/fluid/Fl_Type.h
===================================================================
--- branches/branch-3.0/fluid/Fl_Type.h 2011-08-09 22:16:47 UTC (rev 8939)
+++ branches/branch-3.0/fluid/Fl_Type.h 2011-08-10 16:45:13 UTC (rev 8940)
@@ -34,6 +34,21 @@
// http://www.fltk.org/str.php
//
+/*
+
+ Fl_Type
+ +- Fl_Tool_Type
+ | +- Fl_Workspace_Type
+ | +- Fl_Target_Dependency_Type
+ | +- Fl_Target_Type
+ | | +- Fl_App_Target
+ | | +- Fl_Lib_Target
+ | +- Fl_File_Type
+ | +- Fl_Folder_Type (is_folder, is_category)
+ :
+
+ */
+
#ifndef FLUID_TYPE_H
#define FLUID_TYPE_H
@@ -47,9 +62,6 @@
void set_modflag(int mf);
-extern unsigned int wks_env;
-extern char *wks_name;
-
enum {
FL_ENV_NONE=0,
FL_ENV_ALL=0x007f,
@@ -1114,8 +1126,9 @@
static void *const LOAD;
static int numselected;
static Fl_Type *current;
- static Fl_Widget_Type *current_widget() { return (Fl_Widget_Type*)current; }
- static Fl_File_Type *current_file() { return (Fl_File_Type*)current; }
+ static Fl_Widget_Type *current_widget() { return
current->is_widget()?(Fl_Widget_Type*)current:0L; }
+ static Fl_File_Type *current_file() { return
current->is_file()?(Fl_File_Type*)current:0L; }
+ static Fl_Tool_Type *current_tool() { return
current->is_tool()?(Fl_File_Type*)current:0L; }
static void propagate_load(fltk3::Group* g, void* v=LOAD);
};
Modified: branches/branch-3.0/fluid/Fl_Widget_Type.cxx
===================================================================
--- branches/branch-3.0/fluid/Fl_Widget_Type.cxx 2011-08-09 22:16:47 UTC
(rev 8939)
+++ branches/branch-3.0/fluid/Fl_Widget_Type.cxx 2011-08-10 16:45:13 UTC
(rev 8940)
@@ -1891,13 +1891,15 @@
check_redraw_corresponding_parent(p);
redraw_overlays();
// load the panel with the new settings:
- if (p && the_panel && the_panel->visible()) {
+ if (p && p->is_widget() && the_panel && the_panel->visible()) {
the_panel->load(&Fl_Type::is_widget);
if (the_file_panel) the_file_panel->hide();
- }
- if (p && the_file_panel && the_file_panel->visible()) {
- the_file_panel->load(&Fl_Type::is_file);
+ } else if (p && p->is_tool() && the_file_panel && the_file_panel->visible())
{
+ the_file_panel->load(&Fl_Type::is_tool);
if (the_panel) the_panel->hide();
+ } else {
+ if (the_panel) the_panel->hide();
+ if (the_file_panel) the_file_panel->hide();
}
// update the source viewer to show the code for the selected object
update_sourceview_position();
Modified: branches/branch-3.0/fluid/file.cxx
===================================================================
--- branches/branch-3.0/fluid/file.cxx 2011-08-09 22:16:47 UTC (rev 8939)
+++ branches/branch-3.0/fluid/file.cxx 2011-08-10 16:45:13 UTC (rev 8940)
@@ -347,12 +347,6 @@
write_string("\nheader_name"); write_word(header_file_name);
write_string("\ncode_name"); write_word(code_file_name);
}
- if (wks_name) {
- write_string("\nwks_name "); write_word(wks_name);
- }
- if (wks_env!=FL_ENV_ALL) {
- write_string("\nwks_env %d", wks_env);
- }
for (Fl_Type *p = Fl_Type::first; p;) {
if (!selected_only || p->selected) {
p->write();
@@ -453,16 +447,6 @@
goto CONTINUE;
}
- if (!strcmp(c,"wks_name")) {
- wks_name = strdup(read_word());
- goto CONTINUE;
- }
-
- if (!strcmp(c,"wks_env")) {
- wks_env = atoi(read_word());
- goto CONTINUE;
- }
-
if (!strcmp(c, "snap") || !strcmp(c, "gridx") || !strcmp(c, "gridy")) {
// grid settings are now global
read_word();
Modified: branches/branch-3.0/fluid/fluid.cxx
===================================================================
--- branches/branch-3.0/fluid/fluid.cxx 2011-08-09 22:16:47 UTC (rev 8939)
+++ branches/branch-3.0/fluid/fluid.cxx 2011-08-10 16:45:13 UTC (rev 8940)
@@ -662,7 +662,9 @@
const char* i18n_set = "";
char i18n_program[FLTK3_PATH_MAX] = "";
-void write_cb(fltk3::Widget *, void *) {
+extern void write_makefiles_cb(fltk3::Widget *, void *);
+
+void write_code_cb(fltk3::Widget *, void *) {
if (!filename) {
save_cb(0,0);
if (!filename) return;
@@ -699,6 +701,14 @@
}
}
+void write_cb(fltk3::Widget *o, void *v) {
+ if (project_is_workspace()) {
+ write_makefiles_cb(o, v);
+ } else {
+ write_code_cb(0, v);
+ }
+}
+
void write_strings_cb(fltk3::Widget *, void *) {
static const char *exts[] = { ".txt", ".po", ".msg" };
if (!filename) {
@@ -946,37 +956,92 @@
extern int write_fltk_ide_visualc2010();
void write_makefiles_cb(fltk3::Widget*, void*) {
+ int ret;
+ if (!project_is_workspace()) {
+ fltk3::message("Write Build Environments:\n\n"
+ "This project is not a Workspace!");
+ return;
+ }
// make sure that our workspace file has a proper file name and path
if (!filename) {
- save_cb(0, 0);
- if (!filename)
+ if (completion_button->value()) {
+ ret = fltk3::choice("Write Build Environments:\n\n"
+ "This Workspace must be saved before\n"
+ "Build Environments can be created!",
+ "Cancel", "Save Project", 0L);
+ if (ret==0)
+ return;
+ save_cb(0, 0);
+ if (!filename)
+ return;
+ }
+ }
+
+ Fl_Workspace_Type *workspace = (Fl_Workspace_Type*)Fl_Type::first;
+ int env = workspace->build_env();
+ if (env==0) {
+ fltk3::message("Write Build Environments:\n\n"
+ "No Build Environments were selected!\n"
+ "Double-click the Workspace [FL] item to select\n"
+ "Build Environments.");
+ return;
+ }
+
+ if (completion_button->value()) {
+ ret = fltk3::choice("Write Build Environments:\n\n"
+ "You are about to create the following Build
Environments:\n"
+ "%s%s%s%s%s%s", "Cancel", "Continue", 0,
+ workspace->builds_in(FL_ENV_MAKE)?" -
Autoconf/Makefile\n":"",
+ workspace->builds_in(FL_ENV_CMAKE)?" - CMake\n":"",
+ workspace->builds_in(FL_ENV_VC6)?" - VisualC 6\n":"",
+ workspace->builds_in(FL_ENV_VC2008)?" - VisualC
2008\n":"",
+ workspace->builds_in(FL_ENV_VC2010)?" - VisualC
2010\n":"",
+ workspace->builds_in(FL_ENV_XC4)?" - Xcode 4\n":"");
+ if (ret==0)
return;
}
+
+ // TODO: progress indicator
// TODO: we need to collect error messages and output them
- if ((wks_env&FL_ENV_MAKE) && write_fltk_makefiles()) {
+ if (workspace->builds_in(FL_ENV_MAKE) && write_fltk_makefiles()) {
int v = fltk3::choice("Error writing Makefile build system", "Cancel",
"Continue", 0);
if (v==0) return;
}
- if ((wks_env&FL_ENV_CMAKE) && write_fltk_cmake()) {
+ if (workspace->builds_in(FL_ENV_CMAKE) && write_fltk_cmake()) {
int v = fltk3::choice("Error writing Makefile build system", "Cancel",
"Continue", 0);
if (v==0) return;
}
- if ((wks_env&FL_ENV_XC4) && write_fltk_ide_xcode4()) {
+ if (workspace->builds_in(FL_ENV_XC4) && write_fltk_ide_xcode4()) {
int v = fltk3::choice("Error writing Xcode 4 build system", "Cancel",
"Continue", 0);
if (v==0) return;
}
- if ((wks_env&FL_ENV_VC6) && write_fltk_ide_visualc6()) {
+ if (workspace->builds_in(FL_ENV_VC6) && write_fltk_ide_visualc6()) {
int v = fltk3::choice("Error writing VisualC 6 build system", "Cancel",
"Continue", 0);
if (v==0) return;
}
- if ((wks_env&FL_ENV_VC2008) && write_fltk_ide_visualc2008()) {
+ if (workspace->builds_in(FL_ENV_VC2008) && write_fltk_ide_visualc2008()) {
int v = fltk3::choice("Error writing VisualC 2008 build system", "Cancel",
"Continue", 0);
if (v==0) return;
}
- if ((wks_env&FL_ENV_VC2010) && write_fltk_ide_visualc2010()) {
+ if (workspace->builds_in(FL_ENV_VC2010) && write_fltk_ide_visualc2010()) {
int v = fltk3::choice("Error writing VisualC 2010 build system", "Cancel",
"Continue", 0);
if (v==0) return;
}
+ if (completion_button->value()) {
+ fltk3::message("Wrote all slected build environemtes.");
+ }
+ // FIXME: allow for compiel-only. See below.
+ /*
+ if (compile_only) {
+ if (!x) {fprintf(stderr,"%s : %s\n",cname,strerror(errno)); exit(1);}
+ } else {
+ if (!x) {
+ fltk3::message("Can't write %s: %s", cname, strerror(errno));
+ } else if (completion_button->value()) {
+ fltk3::message("Wrote %s", cname);
+ }
+ }
+ */
}
@@ -1058,11 +1123,6 @@
void convert_2_to_3_cb(fltk3::Widget *, void *);
void write_makefiles_cb(fltk3::Widget *, void *);
-extern fltk3::DoubleWindow* show_workspace_panel();
-void workspace_settings_cb(fltk3::Widget*, void*) {
- show_workspace_panel();
-}
-
fltk3::MenuItem Main_Menu[] = {
{"&File",0,0,0,fltk3::SUBMENU},
{"&New...", fltk3::COMMAND+'n', new_cb, 0},
@@ -1074,7 +1134,7 @@
{"Save &Template...", 0, save_template_cb},
{"&Revert...", 0, revert_cb, 0, fltk3::MENU_DIVIDER},
{"&Print...", fltk3::COMMAND+'p', print_menu_cb},
- {"Write &Code...", fltk3::COMMAND+fltk3::SHIFT+'c', write_cb, 0},
+ {"Write &Code...", fltk3::COMMAND+fltk3::SHIFT+'c', write_code_cb, 0},
{"&Write Strings...", fltk3::COMMAND+fltk3::SHIFT+'w', write_strings_cb, 0,
fltk3::MENU_DIVIDER},
{relative_history[0], fltk3::COMMAND+'0', open_history_cb,
absolute_history[0]},
{relative_history[1], fltk3::COMMAND+'1', open_history_cb,
absolute_history[1]},
@@ -1147,16 +1207,12 @@
{"&Shell",0,0,0,fltk3::SUBMENU},
{"Execute &Command...",fltk3::ALT+'x',(fltk3::Callback *)show_shell_window},
{"Execute &Again...",fltk3::ALT+'g',(fltk3::Callback
*)do_shell_command,0,fltk3::MENU_DIVIDER},
- {"Workspace",0,0,0,fltk3::SUBMENU},
- {"Write Makefile",fltk3::COMMAND+'m',write_makefiles_cb},
- {"Settings...",0,workspace_settings_cb},
- {0},
{"Build Application",fltk3::COMMAND+'b',(fltk3::Callback *)0L},
{"Run Application",fltk3::COMMAND+'r',(fltk3::Callback *)0L},
- {"Convert", 0, 0, 0, fltk3::SUBMENU},
- {"FLTK 1 to 3", 0, convert_1_to_3_cb},
- {"FLTK 2 to 3", 0, convert_2_to_3_cb},
- {0},
+ //{"Convert", 0, 0, 0, fltk3::SUBMENU},
+ // {"FLTK 1 to 3", 0, convert_1_to_3_cb},
+ // {"FLTK 2 to 3", 0, convert_2_to_3_cb},
+ // {0},
{0},
{"&Help",0,0,0,fltk3::SUBMENU},
{"&Rapid development with FLUID...",0,help_cb},
@@ -1727,8 +1783,9 @@
}
// Enable/disable the Save menu item...
- if (modflag) save_item->activate();
- else save_item->deactivate();
+ // TODO: this is disable while developing until we are certain that the
modflag is set wherever needed
+ // if (modflag) save_item->activate();
+ // else save_item->deactivate();
}
////////////////////////////////////////////////////////////////
Modified: branches/branch-3.0/fluid/workspace_panel.cxx
===================================================================
--- branches/branch-3.0/fluid/workspace_panel.cxx 2011-08-09 22:16:47 UTC
(rev 8939)
+++ branches/branch-3.0/fluid/workspace_panel.cxx 2011-08-10 16:45:13 UTC
(rev 8940)
@@ -80,7 +80,7 @@
this->labelcolor(fltk3::FOREGROUND_COLOR);
this->align(fltk3::Align(fltk3::ALIGN_TOP));
this->when(fltk3::WHEN_RELEASE);
-{ pEnvMenu = new fltk3::MenuButton(0, 0, 170, 25, "- unknown -");
+{ pEnvMenu = new fltk3::MenuButton(0, 0, 200, 26, "- unknown -");
pEnvMenu->labelsize(9);
pEnvMenu->align(fltk3::Align(192));
pEnvMenu->menu(menu_pEnvMenu);
@@ -168,64 +168,6 @@
unsigned int Fl_Environment_Choice::value() {
return pEnv;
}
-
-fltk3::DoubleWindow *workspace_panel=(fltk3::DoubleWindow *)0;
-
-fltk3::Input *wName=(fltk3::Input *)0;
-
-Fl_Environment_Choice *pEnv=(Fl_Environment_Choice *)0;
-
-static void cb_OK(fltk3::Button*, void*) {
- if (wks_name) free(wks_name);
-wks_name = strdup(wName->value());
-wks_env = pEnv->value();
-workspace_panel->hide();
-}
-
-fltk3::DoubleWindow* show_workspace_panel() {
- if (!workspace_panel) {
- { workspace_panel = new fltk3::DoubleWindow(274, 173, "Workspace
Properties");
- { wName = new fltk3::Input(85, 15, 170, 25, "Name:");
- wName->tooltip("name of the target - this will be used in the IDEs and
as a general reference\
-.");
- wName->labelsize(12);
- wName->textsize(12);
- } // fltk3::Input* wName
- { fltk3::Box* o = new fltk3::Box(10, 50, 288, 2, "Create Build
Enviroments for:");
- o->box(fltk3::THIN_DOWN_FRAME);
- o->labelsize(12);
- o->align(fltk3::Align(fltk3::ALIGN_BOTTOM_LEFT));
- } // fltk3::Box* o
- { pEnv = new Fl_Environment_Choice(85, 71, 170, 40);
- pEnv->box(fltk3::FLAT_BOX);
- pEnv->color(fltk3::BACKGROUND_COLOR);
- pEnv->selection_color(fltk3::SELECTION_COLOR);
- pEnv->labeltype(fltk3::NORMAL_LABEL);
- pEnv->labelfont(0);
- pEnv->labelsize(14);
- pEnv->labelcolor(fltk3::FOREGROUND_COLOR);
- pEnv->align(fltk3::Align(fltk3::ALIGN_CENTER));
- pEnv->when(fltk3::WHEN_RELEASE_ALWAYS);
- } // Fl_Environment_Choice* pEnv
- { fltk3::Button* o = new fltk3::Button(160, 130, 95, 25, "OK");
- o->labelsize(12);
- o->callback((fltk3::Callback*)cb_OK);
- } // fltk3::Button* o
- workspace_panel->set_modal();
- workspace_panel->end();
- } // fltk3::DoubleWindow* workspace_panel
- }
- if (wks_name)
- wName->value(wks_name);
- else
- wName->value("unnamed workspace");
- if (wks_env)
- pEnv->value(wks_env);
- else
- pEnv->value(FL_ENV_ALL);
- workspace_panel->show();
- return workspace_panel;
-}
extern Fl_Panel *the_file_panel;
void file_panel_set_cb(fltk3::Widget*, void *v) {
@@ -243,27 +185,84 @@
}
}
-static void cb_Close(fltk3::Button*, void* v) {
+fltk3::ScrollGroup *pScrollGroup=(fltk3::ScrollGroup *)0;
+
+static void cb_(fltk3::PackedGroup* o, void* v) {
if (v == Fl_Panel::LOAD) {
+ int i, n = o->children();
+ for (i=0; i<n; i++) {
+ o->child(i)->hide();
+ }
+ Fl_Panel::propagate_load(o, v);
+ o->layout();
+ // TODO: if the window grows taller than the screen height,
+ // we can use the pScrollGroup to keep the entire panell accesible.
+ o->window()->size(o->window()->w(), o->y()+o->h()+15+25+10);
+ pScrollGroup->resize(o->x(), o->y(), o->w(), o->h());
+ pCloseGroup->resize(o->x(), o->y()+o->h()+15, o->w(), pCloseGroup->h());
+ o->window()->init_sizes();
+
+ static char buf[1024];
+ if (Fl_Panel::numselected != 1)
+ sprintf(buf, "Workspace Properties (%d items)", Fl_Panel::numselected);
+ else
+ sprintf(buf, "%s Properties", Fl_Panel::current->name());
+ the_file_panel->label(buf);
+};
+}
+
+static void cb_1(fltk3::Group* o, void* v) {
+ if (v == Fl_Panel::LOAD) {
+ for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+ if (t->selected && !t->is_file()) {
+ o->show();
+ break;
+ }
+ }
+ if (o->visible())
+ Fl_Panel::propagate_load(o, v);
+};
+}
+
+static void cb_Name(fltk3::Input* o, void* v) {
+ if (v == Fl_Panel::LOAD) {
+ if (Fl_Panel::numselected != 1 || Fl_Panel::current==0) {
+ o->static_value("<Multiple Values>");
+ o->deactivate();
+ } else {
+ o->static_value(Fl_Panel::current->name());
+ o->activate();
+ }
} else {
- file_panel_set_cb(0, 0);
- the_file_panel->hide();
+ if (Fl_Panel::numselected == 1) {
+ Fl_Panel::current->name(o->value());
+ if (o->changed()) set_modflag(1);
+ }
};
}
+static void cb_2(fltk3::Group* o, void* v) {
+ if (v == Fl_Panel::LOAD) {
+ for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+ if (t->selected && t->is_file()) {
+ o->show();
+ break;
+ }
+ }
+ if (o->visible())
+ Fl_Panel::propagate_load(o, v);
+};
+}
+
static void cb_File(fltk3::Input* o, void* v) {
if (v == Fl_Panel::LOAD) {
- static char buf[1024];
- if (Fl_Panel::numselected != 1) {
+ if (Fl_Panel::numselected != 1 || Fl_Panel::current_file()==0L) {
o->static_value("<Multiple Values>");
o->deactivate();
- sprintf(buf, "File Properties (%d files)", Fl_Panel::numselected);
} else {
o->static_value(Fl_Panel::current_file()->filename());
o->activate();
- sprintf(buf, "%s Properties", Fl_Panel::current_file()->name());
}
- the_file_panel->label(buf);
} else {
if (Fl_Panel::numselected == 1) {
Fl_Panel::current_file()->filename(o->value());
@@ -272,6 +271,19 @@
};
}
+static void cb_3(fltk3::Group* o, void* v) {
+ if (v == Fl_Panel::LOAD) {
+ for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+ if (t->selected && t->is_file()) {
+ o->show();
+ break;
+ }
+ }
+ if (o->visible())
+ Fl_Panel::propagate_load(o, v);
+};
+}
+
static void cb_Unknown(fltk3::MenuButton* o, void* v) {
if (v == Fl_Panel::LOAD) {
} else {
@@ -328,6 +340,19 @@
{0,0,0,0,0,0,0,0,0}
};
+static void cb_4(fltk3::Group* o, void* v) {
+ if (v == Fl_Panel::LOAD) {
+ for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+ if (t->selected && t->is_file()) {
+ o->show();
+ break;
+ }
+ }
+ if (o->visible())
+ Fl_Panel::propagate_load(o, v);
+};
+}
+
static void cb_Relative(fltk3::MenuButton* o, void* v) {
if (v == Fl_Panel::LOAD) {
/*...*/
@@ -345,7 +370,7 @@
}
if (mod) set_modflag(1);
}
- // FIXME: we should show <multiple values> is required
+ // FIXME: we should show <multiple values> if required
unsigned int fl = Fl_Panel::current_file()->location();
for (const fltk3::MenuItem *mi = o->menu(); ; mi++) {
if (!mi->label()) break;
@@ -364,16 +389,29 @@
{0,0,0,0,0,0,0,0,0}
};
+static void cb_5(fltk3::Group* o, void* v) {
+ if (v == Fl_Panel::LOAD) {
+ for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+ if (t->selected && t->is_tool() && !t->is_folder() && !t->is_category()) {
+ o->show();
+ break;
+ }
+ }
+ if (o->visible())
+ Fl_Panel::propagate_load(o, v);
+};
+}
+
static void cb_Build(Fl_Environment_Choice* o, void* v) {
if (v == Fl_Panel::LOAD) {
- o->value(Fl_Panel::current_file()->build_env());
+ o->value(Fl_Panel::current_tool()->build_env());
} else {
int mod = 0;
unsigned int e = o->value();
for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
- if (t->selected && t->is_file()) {
- if (((Fl_File_Type*)t)->build_env() != e) {
- ((Fl_File_Type*)t)->build_env(e);
+ if (t->selected && t->is_tool()) {
+ if (((Fl_Tool_Type*)t)->build_env() != e) {
+ ((Fl_Tool_Type*)t)->build_env(e);
mod = 1;
}
}
@@ -382,16 +420,29 @@
};
}
+static void cb_6(fltk3::Group* o, void* v) {
+ if (v == Fl_Panel::LOAD) {
+ for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+ if (t->selected && (t->is_file() || t->is_folder() || t->is_category())) {
+ o->show();
+ break;
+ }
+ }
+ if (o->visible())
+ Fl_Panel::propagate_load(o, v);
+};
+}
+
static void cb_List(Fl_Environment_Choice* o, void* v) {
if (v == Fl_Panel::LOAD) {
- o->value(Fl_Panel::current_file()->list_env());
+ o->value(Fl_Panel::current_tool()->list_env());
} else {
int mod = 0;
unsigned int e = o->value();
for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
- if (t->selected && t->is_file()) {
- if (((Fl_File_Type*)t)->list_env() != e) {
- ((Fl_File_Type*)t)->list_env(e);
+ if (t->selected && t->is_tool()) {
+ if (((Fl_Tool_Type*)t)->list_env() != e) {
+ ((Fl_Tool_Type*)t)->list_env(e);
mod = 1;
}
}
@@ -400,6 +451,16 @@
};
}
+fltk3::Group *pCloseGroup=(fltk3::Group *)0;
+
+static void cb_Close(fltk3::Button*, void* v) {
+ if (v == Fl_Panel::LOAD) {
+ } else {
+ file_panel_set_cb(0, 0);
+ the_file_panel->hide();
+ };
+}
+
Fl_Panel* make_file_panel() {
Fl_Panel* w;
{ Fl_Panel* o = new Fl_Panel(0, 0, 420, 454, "File Properties");
@@ -414,45 +475,47 @@
o->align(fltk3::Align(fltk3::ALIGN_CLIP|fltk3::ALIGN_INSIDE));
o->when(fltk3::WHEN_RELEASE);
o->hotspot(o);
- { fltk3::Group* o = new fltk3::Group(10, 420, 400, 25);
- o->labelsize(11);
- o->callback((fltk3::Callback*)Fl_Panel::propagate_load);
- { fltk3::Box* o = new fltk3::Box(10, 420, 290, 25);
- o->labelsize(11);
- fltk3::Group::current()->resizable(o);
- } // fltk3::Box* o
- { fltk3::Button* o = new fltk3::Button(300, 420, 110, 25, "Close");
- o->callback((fltk3::Callback*)cb_Close);
- } // fltk3::Button* o
- o->end();
- } // fltk3::Group* o
- { fltk3::ScrollGroup* o = new fltk3::ScrollGroup(10, 10, 400, 400);
- o->box(fltk3::FLAT_BOX);
- o->color(fltk3::LIGHT1);
- o->callback((fltk3::Callback*)Fl_Panel::propagate_load);
+ { pScrollGroup = new fltk3::ScrollGroup(10, 10, 400, 400);
+ pScrollGroup->box(fltk3::FLAT_BOX);
+ pScrollGroup->color(fltk3::LIGHT1);
+ pScrollGroup->callback((fltk3::Callback*)Fl_Panel::propagate_load);
{ fltk3::PackedGroup* o = new fltk3::PackedGroup(10, 10, 400, 400);
- o->callback((fltk3::Callback*)Fl_Panel::propagate_load);
+ o->callback((fltk3::Callback*)cb_);
{ fltk3::Group* o = new fltk3::Group(10, 10, 400, 30);
o->labelsize(12);
- o->callback((fltk3::Callback*)Fl_Panel::propagate_load);
+ o->callback((fltk3::Callback*)cb_1);
o->align(fltk3::Align(fltk3::ALIGN_LEFT));
- { fltk3::Input* o = new fltk3::Input(110, 15, 290, 20, "File Name ");
+ { fltk3::Input* o = new fltk3::Input(110, 15, 290, 20, "Name ");
o->tooltip("name and path of the file");
o->labelsize(12);
o->textsize(12);
- o->callback((fltk3::Callback*)cb_File);
+ o->callback((fltk3::Callback*)cb_Name);
o->when(fltk3::WHEN_CHANGED);
fltk3::Group::current()->resizable(o);
} // fltk3::Input* o
o->end();
} // fltk3::Group* o
{ fltk3::Group* o = new fltk3::Group(10, 40, 400, 30);
- o->callback((fltk3::Callback*)Fl_Panel::propagate_load);
- { fltk3::Group* o = new fltk3::Group(110, 45, 200, 20, "File Type ");
+ o->labelsize(12);
+ o->callback((fltk3::Callback*)cb_2);
+ o->align(fltk3::Align(fltk3::ALIGN_LEFT));
+ { fltk3::Input* o = new fltk3::Input(110, 45, 290, 20, "File Name ");
+ o->tooltip("name and path of the file");
o->labelsize(12);
+ o->textsize(12);
+ o->callback((fltk3::Callback*)cb_File);
+ o->when(fltk3::WHEN_CHANGED);
+ fltk3::Group::current()->resizable(o);
+ } // fltk3::Input* o
+ o->end();
+ } // fltk3::Group* o
+ { fltk3::Group* o = new fltk3::Group(10, 70, 400, 30);
+ o->callback((fltk3::Callback*)cb_3);
+ { fltk3::Group* o = new fltk3::Group(110, 75, 200, 20, "File Type ");
+ o->labelsize(12);
o->callback((fltk3::Callback*)Fl_Panel::propagate_load);
o->align(fltk3::Align(fltk3::ALIGN_LEFT));
- { fltk3::MenuButton* o = new fltk3::MenuButton(110, 45, 200, 20,
"Unknown");
+ { fltk3::MenuButton* o = new fltk3::MenuButton(110, 75, 200, 20,
"Unknown");
o->labelsize(12);
o->callback((fltk3::Callback*)cb_Unknown);
o->menu(menu_Unknown);
@@ -461,15 +524,15 @@
} // fltk3::Group* o
o->end();
} // fltk3::Group* o
- { fltk3::Group* o = new fltk3::Group(10, 70, 400, 30);
+ { fltk3::Group* o = new fltk3::Group(10, 100, 400, 30);
o->labelsize(12);
- o->callback((fltk3::Callback*)Fl_Panel::propagate_load);
+ o->callback((fltk3::Callback*)cb_4);
o->align(fltk3::Align(fltk3::ALIGN_LEFT));
- { fltk3::Group* o = new fltk3::Group(110, 75, 200, 20, "Location ");
+ { fltk3::Group* o = new fltk3::Group(110, 105, 200, 20, "Location ");
o->labelsize(12);
o->callback((fltk3::Callback*)Fl_Panel::propagate_load);
o->align(fltk3::Align(fltk3::ALIGN_LEFT));
- { fltk3::MenuButton* o = new fltk3::MenuButton(110, 75, 200, 20,
"Relative to Workspace");
+ { fltk3::MenuButton* o = new fltk3::MenuButton(110, 105, 200, 20,
"Relative to Workspace");
o->labelsize(12);
o->callback((fltk3::Callback*)cb_Relative);
o->menu(menu_Relative);
@@ -478,9 +541,9 @@
} // fltk3::Group* o
o->end();
} // fltk3::Group* o
- { fltk3::Group* o = new fltk3::Group(10, 105, 400, 30);
- o->callback((fltk3::Callback*)Fl_Panel::propagate_load);
- { Fl_Environment_Choice* o = new Fl_Environment_Choice(110, 107,
200, 26, "Build in:");
+ { fltk3::Group* o = new fltk3::Group(10, 135, 400, 30);
+ o->callback((fltk3::Callback*)cb_5);
+ { Fl_Environment_Choice* o = new Fl_Environment_Choice(110, 137,
200, 26, "Build in ");
o->box(fltk3::FLAT_BOX);
o->color(fltk3::BACKGROUND_COLOR);
o->selection_color(fltk3::SELECTION_COLOR);
@@ -494,9 +557,9 @@
} // Fl_Environment_Choice* o
o->end();
} // fltk3::Group* o
- { fltk3::Group* o = new fltk3::Group(10, 140, 400, 30);
- o->callback((fltk3::Callback*)Fl_Panel::propagate_load);
- { Fl_Environment_Choice* o = new Fl_Environment_Choice(110, 142,
200, 25, "List in:");
+ { fltk3::Group* o = new fltk3::Group(10, 170, 400, 30);
+ o->callback((fltk3::Callback*)cb_6);
+ { Fl_Environment_Choice* o = new Fl_Environment_Choice(110, 172,
200, 25, "List in ");
o->box(fltk3::FLAT_BOX);
o->color(fltk3::BACKGROUND_COLOR);
o->selection_color(fltk3::SELECTION_COLOR);
@@ -513,10 +576,21 @@
o->end();
fltk3::Group::current()->resizable(o);
} // fltk3::PackedGroup* o
- o->end();
- fltk3::Group::current()->resizable(o);
- } // fltk3::ScrollGroup* o
- o->size_range(300, 200);
+ pScrollGroup->end();
+ fltk3::Group::current()->resizable(pScrollGroup);
+ } // fltk3::ScrollGroup* pScrollGroup
+ { pCloseGroup = new fltk3::Group(10, 420, 400, 25);
+ pCloseGroup->labelsize(11);
+ pCloseGroup->callback((fltk3::Callback*)Fl_Panel::propagate_load);
+ { fltk3::Box* o = new fltk3::Box(10, 420, 290, 25);
+ o->labelsize(11);
+ fltk3::Group::current()->resizable(o);
+ } // fltk3::Box* o
+ { fltk3::Button* o = new fltk3::Button(300, 420, 110, 25, "Close");
+ o->callback((fltk3::Callback*)cb_Close);
+ } // fltk3::Button* o
+ pCloseGroup->end();
+ } // fltk3::Group* pCloseGroup
o->set_non_modal();
o->end();
} // Fl_Panel* o
Modified: branches/branch-3.0/fluid/workspace_panel.fl
===================================================================
--- branches/branch-3.0/fluid/workspace_panel.fl 2011-08-09 22:16:47 UTC
(rev 8939)
+++ branches/branch-3.0/fluid/workspace_panel.fl 2011-08-10 16:45:13 UTC
(rev 8940)
@@ -1,9 +1,7 @@
# data file for the Fltk User Interface Designer (fluid)
version 3.0000
header_name {.h}
-code_name {.cxx}
-wks_name FLTK
-wks_env 1
+code_name {.cxx}
comment {//
// "$Id$"
//
@@ -52,15 +50,15 @@
decl {extern fltk3::Pixmap menu_all_pixmap;} {public global
}
-widget_class Fl_Environment_Choice {open
- xywh {820 144 170 25} type Double
+widget_class Fl_Environment_Choice {
+ xywh {820 144 200 26} type Double
class {fltk3::Group} visible position_relative
} {
decl {unsigned int pEnv;} {protected local
}
{fltk3::MenuButton} pEnvMenu {
label {- unknown -} open
- xywh {0 0 170 25} labelsize 9 align 192
+ xywh {0 0 200 26} labelsize 9 align 192
} {
MenuItem pMenuAll {
label {All Environments}
@@ -178,7 +176,7 @@
mi++;
}
}} {}
- Function {update_all()} {open protected return_type void
+ Function {update_all()} {protected return_type void
} {
code {// now update all menus
unsigned int e = pEnv;
@@ -224,7 +222,7 @@
}} {}
}
Function {value(unsigned int v)} {
- comment {Set the environment flags} open return_type void
+ comment {Set the environment flags} return_type void
} {
code {pEnv = v;
update_all();} {}
@@ -236,47 +234,6 @@
}
}
-Function {show_workspace_panel()} {open
-} {
- codeblock {if (!workspace_panel)} {open
- } {
- {fltk3::Window} workspace_panel {
- label {Workspace Properties} open
- xywh {832 211 274 173} type Double modal visible
- } {
- {fltk3::Input} wName {
- label {Name:}
- tooltip {name of the target - this will be used in the IDEs and as a
general reference.} xywh {85 15 170 25} labelsize 12 textsize 12
- }
- {fltk3::Box} {} {
- label {Create Build Enviroments for:}
- xywh {10 50 288 2} box THIN_DOWN_FRAME labelsize 12 align 6
- }
- {fltk3::MenuButton} pEnv {open
- xywh {85 71 170 40} box FLAT_BOX
- class Fl_Environment_Choice
- } {}
- {fltk3::Button} {} {
- label OK
- callback {if (wks_name) free(wks_name);
-wks_name = strdup(wName->value());
-wks_env = pEnv->value();
-workspace_panel->hide();}
- xywh {160 130 95 25} labelsize 12
- }
- }
- }
- code {if (wks_name)
- wName->value(wks_name);
-else
- wName->value("unnamed workspace");
-if (wks_env)
- pEnv->value(wks_env);
-else
- pEnv->value(FL_ENV_ALL);
-workspace_panel->show();} {}
-}
-
decl {extern Fl_Panel *the_file_panel;} {private global
}
@@ -299,71 +256,119 @@
Function {make_file_panel()} {open
} {
{fltk3::Window} {} {
- label {File Properties} open selected
- xywh {858 255 420 454} type Double labelsize 11 align 80 resizable hotspot
- code0 {o->size_range(300, 200);}
+ label {File Properties} open
+ xywh {618 264 420 454} type Double labelsize 11 align 80 resizable hotspot
class Fl_Panel non_modal visible
} {
- {fltk3::Group} {} {
+ {fltk3::ScrollGroup} pScrollGroup {
callback {Fl_Panel::propagate_load} open
- xywh {10 420 400 25} labelsize 11
- } {
- {fltk3::Box} {} {
- xywh {10 420 290 25} labelsize 11 resizable
- }
- {fltk3::Button} {} {
- label Close
- callback {if (v == Fl_Panel::LOAD) {
- } else {
- file_panel_set_cb(0, 0);
- the_file_panel->hide();
- }}
- xywh {300 420 110 25}
- }
- }
- {fltk3::ScrollGroup} {} {
- callback {Fl_Panel::propagate_load} open
xywh {10 10 400 400} box FLAT_BOX color 50 resizable
} {
{fltk3::PackedGroup} {} {
- callback {Fl_Panel::propagate_load} open
+ callback {if (v == Fl_Panel::LOAD) {
+ int i, n = o->children();
+ for (i=0; i<n; i++) {
+ o->child(i)->hide();
+ }
+ Fl_Panel::propagate_load(o, v);
+ o->layout();
+ // TODO: if the window grows taller than the screen height,
+ // we can use the pScrollGroup to keep the entire panell accesible.
+ o->window()->size(o->window()->w(), o->y()+o->h()+15+25+10);
+ pScrollGroup->resize(o->x(), o->y(), o->w(), o->h());
+ pCloseGroup->resize(o->x(), o->y()+o->h()+15, o->w(), pCloseGroup->h());
+ o->window()->init_sizes();
+
+ static char buf[1024];
+ if (Fl_Panel::numselected != 1)
+ sprintf(buf, "Workspace Properties (%d items)", Fl_Panel::numselected);
+ else
+ sprintf(buf, "%s Properties", Fl_Panel::current_file()->name());
+ the_file_panel->label(buf);
+}} open
xywh {10 10 400 400} resizable
} {
{fltk3::Group} {} {
- callback {Fl_Panel::propagate_load} open
+ callback {if (v == Fl_Panel::LOAD) {
+ for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+ if (t->selected && !t->is_file()) {
+ o->show();
+ break;
+ }
+ }
+ if (o->visible())
+ Fl_Panel::propagate_load(o, v);
+}} open
xywh {10 10 400 30} labelsize 12 align 4
} {
{fltk3::Input} {} {
+ label {Name }
+ callback {if (v == Fl_Panel::LOAD) {
+ if (Fl_Panel::numselected != 1 || Fl_Panel::current==0) {
+ o->static_value("<Multiple Values>");
+ o->deactivate();
+ } else {
+ o->static_value(Fl_Panel::current->name());
+ o->activate();
+ }
+ } else {
+ if (Fl_Panel::numselected == 1) {
+ Fl_Panel::current->name(o->value());
+ if (o->changed()) set_modflag(1);
+ }
+ }} selected
+ tooltip {name and path of the file} xywh {110 15 290 20} labelsize
12 when 1 textsize 12 resizable
+ }
+ }
+ {fltk3::Group} {} {
+ callback {if (v == Fl_Panel::LOAD) {
+ for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+ if (t->selected && t->is_file()) {
+ o->show();
+ break;
+ }
+ }
+ if (o->visible())
+ Fl_Panel::propagate_load(o, v);
+}} open
+ xywh {10 40 400 30} labelsize 12 align 4
+ } {
+ {fltk3::Input} {} {
label {File Name }
callback {if (v == Fl_Panel::LOAD) {
- static char buf[1024];
- if (Fl_Panel::numselected != 1) {
+ if (Fl_Panel::numselected != 1 || Fl_Panel::current_file()==0L) {
o->static_value("<Multiple Values>");
o->deactivate();
- sprintf(buf, "File Properties (%d files)", Fl_Panel::numselected);
} else {
o->static_value(Fl_Panel::current_file()->filename());
o->activate();
- sprintf(buf, "%s Properties", Fl_Panel::current_file()->name());
}
- the_file_panel->label(buf);
} else {
if (Fl_Panel::numselected == 1) {
Fl_Panel::current_file()->filename(o->value());
if (o->changed()) set_modflag(1);
}
}}
- tooltip {name and path of the file} xywh {110 15 290 20} labelsize
12 when 1 textsize 12 resizable
+ tooltip {name and path of the file} xywh {110 45 290 20} labelsize
12 when 1 textsize 12 resizable
}
}
{fltk3::Group} {} {
- callback {Fl_Panel::propagate_load} open
- xywh {10 40 400 30}
+ callback {if (v == Fl_Panel::LOAD) {
+ for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+ if (t->selected && t->is_file()) {
+ o->show();
+ break;
+ }
+ }
+ if (o->visible())
+ Fl_Panel::propagate_load(o, v);
+}} open
+ xywh {10 70 400 30}
} {
{fltk3::Group} {} {
label {File Type }
callback {Fl_Panel::propagate_load} open
- xywh {110 45 200 20} labelsize 12 align 4
+ xywh {110 75 200 20} labelsize 12 align 4
} {
{fltk3::MenuButton} {} {
label Unknown
@@ -404,7 +409,7 @@
}
}
o->copy_label(buf);} open
- xywh {110 45 200 20} labelsize 12
+ xywh {110 75 200 20} labelsize 12
} {
MenuItem {} {
label Default
@@ -470,13 +475,22 @@
}
}
{fltk3::Group} {} {
- callback {Fl_Panel::propagate_load} open
- xywh {10 70 400 30} labelsize 12 align 4
+ callback {if (v == Fl_Panel::LOAD) {
+ for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+ if (t->selected && t->is_file()) {
+ o->show();
+ break;
+ }
+ }
+ if (o->visible())
+ Fl_Panel::propagate_load(o, v);
+}} open
+ xywh {10 100 400 30} labelsize 12 align 4
} {
{fltk3::Group} {} {
label {Location }
callback {Fl_Panel::propagate_load} open
- xywh {110 75 200 20} labelsize 12 align 4
+ xywh {110 105 200 20} labelsize 12 align 4
} {
{fltk3::MenuButton} {} {
label {Relative to Workspace}
@@ -496,7 +510,7 @@
}
if (mod) set_modflag(1);
}
- // FIXME: we should show <multiple values> is required
+ // FIXME: we should show <multiple values> if required
unsigned int fl = Fl_Panel::current_file()->location();
for (const fltk3::MenuItem *mi = o->menu(); ; mi++) {
if (!mi->label()) break;
@@ -505,7 +519,7 @@
break;
}
}} open
- xywh {110 75 200 20} labelsize 12
+ xywh {110 105 200 20} labelsize 12
} {
MenuItem {} {
label {Relative to Workspace}
@@ -531,57 +545,92 @@
}
}
{fltk3::Group} {} {
- callback {Fl_Panel::propagate_load} open
- xywh {10 105 400 30}
+ callback {if (v == Fl_Panel::LOAD) {
+ for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+ if (t->selected && t->is_tool() && !t->is_folder() && !t->is_category()) {
+ o->show();
+ break;
+ }
+ }
+ if (o->visible())
+ Fl_Panel::propagate_load(o, v);
+}} open
+ xywh {10 135 400 30}
} {
{fltk3::MenuButton} {} {
- label {Build in:}
+ label {Build in }
callback {if (v == Fl_Panel::LOAD) {
- o->value(Fl_Panel::current_file()->build_env());
+ o->value(Fl_Panel::current_tool()->build_env());
} else {
int mod = 0;
unsigned int e = o->value();
for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
- if (t->selected && t->is_file()) {
- if (((Fl_File_Type*)t)->build_env() != e) {
- ((Fl_File_Type*)t)->build_env(e);
+ if (t->selected && t->is_tool()) {
+ if (((Fl_Tool_Type*)t)->build_env() != e) {
+ ((Fl_Tool_Type*)t)->build_env(e);
mod = 1;
}
}
}
if (mod) set_modflag(1);
}} open
- xywh {110 107 200 26} box FLAT_BOX labelsize 12 align 4
+ xywh {110 137 200 26} box FLAT_BOX labelsize 12 align 4
class Fl_Environment_Choice
} {}
}
{fltk3::Group} {} {
- callback {Fl_Panel::propagate_load} open
- xywh {10 140 400 30}
+ callback {if (v == Fl_Panel::LOAD) {
+ for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+ if (t->selected && (t->is_file() || t->is_folder() || t->is_category())) {
+ o->show();
+ break;
+ }
+ }
+ if (o->visible())
+ Fl_Panel::propagate_load(o, v);
+}} open
+ xywh {10 170 400 30}
} {
{fltk3::MenuButton} {} {
- label {List in:}
+ label {List in }
callback {if (v == Fl_Panel::LOAD) {
- o->value(Fl_Panel::current_file()->list_env());
+ o->value(Fl_Panel::current_tool()->list_env());
} else {
int mod = 0;
unsigned int e = o->value();
for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
- if (t->selected && t->is_file()) {
- if (((Fl_File_Type*)t)->list_env() != e) {
- ((Fl_File_Type*)t)->list_env(e);
+ if (t->selected && t->is_tool()) {
+ if (((Fl_Tool_Type*)t)->list_env() != e) {
+ ((Fl_Tool_Type*)t)->list_env(e);
mod = 1;
}
}
}
if (mod) set_modflag(1);
}} open
- xywh {110 142 200 25} box FLAT_BOX labelsize 12 align 4
+ xywh {110 172 200 25} box FLAT_BOX labelsize 12 align 4
class Fl_Environment_Choice
} {}
}
}
}
+ {fltk3::Group} pCloseGroup {
+ callback {Fl_Panel::propagate_load} open
+ xywh {10 420 400 25} labelsize 11
+ } {
+ {fltk3::Box} {} {
+ xywh {10 420 290 25} labelsize 11 resizable
+ }
+ {fltk3::Button} {} {
+ label Close
+ callback {if (v == Fl_Panel::LOAD) {
+ } else {
+ file_panel_set_cb(0, 0);
+ the_file_panel->hide();
+ }}
+ xywh {300 420 110 25}
+ }
+ }
}
}
Modified: branches/branch-3.0/fluid/workspace_panel.h
===================================================================
--- branches/branch-3.0/fluid/workspace_panel.h 2011-08-09 22:16:47 UTC (rev
8939)
+++ branches/branch-3.0/fluid/workspace_panel.h 2011-08-10 16:45:13 UTC (rev
8940)
@@ -57,17 +57,14 @@
void value(unsigned int v);
unsigned int value();
};
-#include <fltk3/DoubleWindow.h>
-extern fltk3::DoubleWindow *workspace_panel;
-#include <fltk3/Input.h>
-extern fltk3::Input *wName;
-#include <fltk3/Box.h>
-extern Fl_Environment_Choice *pEnv;
-#include <fltk3/Button.h>
-fltk3::DoubleWindow* show_workspace_panel();
void file_panel_set_cb(fltk3::Widget*, void *v);
#include <fltk3/ScrollGroup.h>
+extern fltk3::ScrollGroup *pScrollGroup;
#include <fltk3/PackedGroup.h>
+#include <fltk3/Input.h>
+extern fltk3::Group *pCloseGroup;
+#include <fltk3/Box.h>
+#include <fltk3/Button.h>
Fl_Panel* make_file_panel();
extern fltk3::MenuItem menu_Unknown[];
extern fltk3::MenuItem menu_Relative[];
Modified: branches/branch-3.0/src/Fl_Pack.cxx
===================================================================
--- branches/branch-3.0/src/Fl_Pack.cxx 2011-08-09 22:16:47 UTC (rev 8939)
+++ branches/branch-3.0/src/Fl_Pack.cxx 2011-08-10 16:45:13 UTC (rev 8940)
@@ -51,6 +51,34 @@
// type(VERTICAL); // already set like this
}
+// calculate the height and width of this widget.
+// FIXME: do not move any children. "draw()" does that for now.
+void fltk3::PackedGroup::layout() {
+ //int tx = x()+fltk3::box_dx(box());
+ //int ty = y()+fltk3::box_dy(box());
+ int tw = w()-fltk3::box_dw(box());
+ int th = h()-fltk3::box_dh(box());
+ int rw, rh;
+ if (horizontal()) {
+ rw = -spacing_;
+ rh = th;
+ for (int i = children(); i--;)
+ if (child(i)->visible()) {
+ if (child(i) != this->resizable()) rw += child(i)->w();
+ rw += spacing_;
+ }
+ } else {
+ rw = tw;
+ rh = -spacing_;
+ for (int i = children(); i--;)
+ if (child(i)->visible()) {
+ if (child(i) != this->resizable()) rh += child(i)->h();
+ rh += spacing_;
+ }
+ }
+ size(rw+fltk3::box_dw(box()), rh+fltk3::box_dh(box()));
+}
+
void fltk3::PackedGroup::draw() {
FLTK3_OBJECT_VCALLS_WRAPPER(draw(), Draw)
int tx = x()+fltk3::box_dx(box());
_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit