Updated the Fluid IDE support for the current source file structure. Changed the Fl_Tree rendering code around a bit to make the tree more like MSWindows on Windows and more like Apple on Apple machines. I hope you guys like it. I also moved the function to load Fl_Preferences into an Fl_Tree into the Fl_Tree class where it belongs.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7672 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Matthias Melcher 2010-07-10 09:44:45 +00:00
parent 8306c3d0b3
commit 32716d6b1e
20 changed files with 361 additions and 139 deletions

View File

@ -151,7 +151,7 @@ class FL_EXPORT Fl_Input_ : public Fl_Widget {
/** \internal Horizontal cursor position in pixels while movin up or down. */ /** \internal Horizontal cursor position in pixels while movin up or down. */
static double up_down_pos; static double up_down_pos;
/** \internal Flag to remeber last cursor move. */ /** \internal Flag to remember last cursor move. */
static int was_up_down; static int was_up_down;
/* Convert a given text segment into the text that will be rendered on screen. */ /* Convert a given text segment into the text that will be rendered on screen. */

View File

@ -156,7 +156,7 @@ public:
// char export( const char *filename, Type fileFormat ); // char export( const char *filename, Type fileFormat );
// char import( const char *filename ); // char import( const char *filename );
char copyTo(class Fl_Tree*); // char copyTo(class Fl_Tree*); // deprecated, use Fl_Tree::load(Fl_Preferences&)
/** /**
'Name' provides a simple method to create numerical or more complex 'Name' provides a simple method to create numerical or more complex
@ -227,7 +227,6 @@ private:
public: public:
Node( const char *path ); Node( const char *path );
~Node(); ~Node();
char copyTo(class Fl_Tree*, class Fl_Tree_Item*);
// node methods // node methods
int write( FILE *f ); int write( FILE *f );
const char *name(); const char *name();

View File

@ -688,6 +688,8 @@ public:
void selectmode(Fl_Tree_Select val) { void selectmode(Fl_Tree_Select val) {
_prefs.selectmode(val); _prefs.selectmode(val);
} }
void load(class Fl_Preferences&);
}; };
#endif /*FL_TREE_H*/ #endif /*FL_TREE_H*/

View File

@ -3,7 +3,7 @@
# #
# Top-level makefile for the Fast Light Tool Kit (FLTK). # Top-level makefile for the Fast Light Tool Kit (FLTK).
# #
# Copyright 1998-2009 by Bill Spitzak and others. # Copyright 1998-2010 by Bill Spitzak and others.
# #
# This library is free software; you can redistribute it and/or # This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public # modify it under the terms of the GNU Library General Public

43
fltk.db
View File

@ -932,6 +932,7 @@ xcBuildFileID:9DD7A2B6D63D30C07781F446
refUUID:81A99CD2-985D-4B34-A385-DA2DF36B25C7 refUUID:81A99CD2-985D-4B34-A385-DA2DF36B25C7
(filename):src/Fl_Paged_Device.cxx (filename):src/Fl_Paged_Device.cxx
xcBuildFileID:299CB8A2848CB844BCEC7829
[./targets/libs/FCA55664-7065-436F-B7F2-7F7A397ED739/headers] [./targets/libs/FCA55664-7065-436F-B7F2-7F7A397ED739/headers]
@ -1290,12 +1291,6 @@ refUUID:A3D03C3D-FB0C-4D14-8AF8-96086624A44E
(filename):FL/Fl_Overlay_Window.H (filename):FL/Fl_Overlay_Window.H
xcCopyHeaderID:012DC7566408D3CBF672BE50 xcCopyHeaderID:012DC7566408D3CBF672BE50
[./targets/libs/FCA55664-7065-436F-B7F2-7F7A397ED739/headers/E4711E48-2B85-4DAB-BB3B-9DDCBD7C9160]
refUUID:E2A26BE4-534B-4B50-AA6F-D28A7BF13F54
(filename):FL/Fl_PSfile_Device.H
xcCopyHeaderID:13B77D5A401B98BD18D3CCF8
[./targets/libs/FCA55664-7065-436F-B7F2-7F7A397ED739/headers/405F4A61-8DD8-423C-938C-FA24D4E451AD] [./targets/libs/FCA55664-7065-436F-B7F2-7F7A397ED739/headers/405F4A61-8DD8-423C-938C-FA24D4E451AD]
refUUID:A59BDACF-075D-4E17-8BE8-38E0E7A51003 refUUID:A59BDACF-075D-4E17-8BE8-38E0E7A51003
@ -1702,6 +1697,7 @@ xcCopyHeaderID:72843BB6450DBFB9A9F53490
refUUID:D7271ED9-045A-4F82-A493-3717A1B0D3AE refUUID:D7271ED9-045A-4F82-A493-3717A1B0D3AE
(filename):FL/Fl_Paged_Device.H (filename):FL/Fl_Paged_Device.H
xcCopyHeaderID:7582831EE62557F2D4668FA4
[./targets/libs/FCA55664-7065-436F-B7F2-7F7A397ED739/externals] [./targets/libs/FCA55664-7065-436F-B7F2-7F7A397ED739/externals]
@ -7629,12 +7625,6 @@ xcBuildConfigurationReleaseID:9E23AA974E99E89DC5E46D9F
[./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/sources] [./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/sources]
[./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/sources/2AA033DE-7570-445E-B0B8-B2695B27BC68]
refUUID:5684BCF0-9061-4396-A4F5-1E8E633F716B
(filename):test/tree.cxx
xcBuildFileID:8B1319F9AB1424C1480A3133
[./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/deps] [./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/deps]
@ -7644,6 +7634,12 @@ refUUID:FCA55664-7065-436F-B7F2-7F7A397ED739
xcProxyID:02A677752D704FC1308C2C01 xcProxyID:02A677752D704FC1308C2C01
xcDependencyID:89EEA83A9CD9747F05B1E6AA xcDependencyID:89EEA83A9CD9747F05B1E6AA
[./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/deps/14C691AE-415D-4273-98F0-43175A8B54E6]
refUUID:D70F995E-DA2E-46A4-9F93-90D4F6C7DE87
xcProxyID:14AFCE90907C6F3225151910
xcDependencyID:9519279882836E4B8EDEBE60
[./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/libs] [./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/libs]
@ -7659,6 +7655,12 @@ xcCopyFrameworkID:F1C6FA1ABFEFA9DD53A7B8E8
[./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/fl] [./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/fl]
[./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/fl/93140A57-AA6D-46BC-972D-8ADAED12A7A8]
refUUID:9ABC95B6-DEE6-4145-8EBA-A4D2CF1DC7CF
(filename):test/tree.fl
xcBuildFileID:16FC08C22B1B693EB00C15F5
[./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/externals] [./targets/tests/9CE11918-3DC2-4650-B91B-28BABE55E182/externals]
@ -8815,11 +8817,6 @@ xcFileID:D585CB55BDA143D343033352
pathAndName:FL/Fl_Overlay_Window.H pathAndName:FL/Fl_Overlay_Window.H
xcFileID:1FCDDD4E00F7CAA8193CAE04 xcFileID:1FCDDD4E00F7CAA8193CAE04
[./files/E2A26BE4-534B-4B50-AA6F-D28A7BF13F54]
pathAndName:FL/Fl_PSfile_Device.H
xcFileID:44C10E7FA85430F4E1D68B60
[./files/A59BDACF-075D-4E17-8BE8-38E0E7A51003] [./files/A59BDACF-075D-4E17-8BE8-38E0E7A51003]
pathAndName:FL/Fl_Pack.H pathAndName:FL/Fl_Pack.H
@ -10290,11 +10287,6 @@ xcFileID:0DFF833B9E81E11FA3E3A85A
pathAndName:test/tiled_image.cxx pathAndName:test/tiled_image.cxx
xcFileID:94D15578CD49CC75FE6617E4 xcFileID:94D15578CD49CC75FE6617E4
[./files/5684BCF0-9061-4396-A4F5-1E8E633F716B]
pathAndName:test/tree.cxx
xcFileID:ECCD42A2E7B2C6BF5B3DF410
[./files/7FB34E60-5136-423E-AD80-56CF9ABABE15] [./files/7FB34E60-5136-423E-AD80-56CF9ABABE15]
pathAndName:test/utf8.cxx pathAndName:test/utf8.cxx
@ -10313,10 +10305,17 @@ xcFileID:48A8DC166D69EDC6F24AE678
[./files/81A99CD2-985D-4B34-A385-DA2DF36B25C7] [./files/81A99CD2-985D-4B34-A385-DA2DF36B25C7]
pathAndName:src/Fl_Paged_Device.cxx pathAndName:src/Fl_Paged_Device.cxx
xcFileID:6C1C9A4F054C48CDD6A2DE44
[./files/D7271ED9-045A-4F82-A493-3717A1B0D3AE] [./files/D7271ED9-045A-4F82-A493-3717A1B0D3AE]
pathAndName:FL/Fl_Paged_Device.H pathAndName:FL/Fl_Paged_Device.H
xcFileID:4CABCBB89F9DD5CF57BB9779
[./files/9ABC95B6-DEE6-4145-8EBA-A4D2CF1DC7CF]
pathAndName:test/tree.fl
xcFileID:D10B1EA053B5C8F02A636D93
[./ide] [./ide]

View File

@ -571,7 +571,6 @@ int create_new_database(const char *filename)
fltk_lib.add_header(files_db, "FL/Fl_Object.H"); fltk_lib.add_header(files_db, "FL/Fl_Object.H");
fltk_lib.add_header(files_db, "FL/Fl_Output.H"); fltk_lib.add_header(files_db, "FL/Fl_Output.H");
fltk_lib.add_header(files_db, "FL/Fl_Overlay_Window.H"); fltk_lib.add_header(files_db, "FL/Fl_Overlay_Window.H");
fltk_lib.add_header(files_db, "FL/Fl_PSfile_Device.H");
fltk_lib.add_header(files_db, "FL/Fl_Pack.H"); fltk_lib.add_header(files_db, "FL/Fl_Pack.H");
fltk_lib.add_header(files_db, "FL/Fl_Paged_Device.H"); fltk_lib.add_header(files_db, "FL/Fl_Paged_Device.H");
fltk_lib.add_header(files_db, "FL/Fl_Pixmap.H"); fltk_lib.add_header(files_db, "FL/Fl_Pixmap.H");
@ -1324,8 +1323,9 @@ int create_new_database(const char *filename)
} }
{ Fl_Target_Prefs db(tests_db.add_with_key("name", "tree")); { Fl_Target_Prefs db(tests_db.add_with_key("name", "tree"));
db.add_source(files_db, "test/tree.cxx"); db.add_fl(files_db, "test/tree.fl");
db.add_lib(fltk_lib); db.add_lib(fltk_lib);
db.depends_on(fluid_app);
demo_db.depends_on(db); demo_db.depends_on(db);
} }

View File

@ -1586,6 +1586,9 @@ Package=<4>
Begin Project Dependency Begin Project Dependency
Project_Dep_Name fltk Project_Dep_Name fltk
End Project Dependency End Project Dependency
Begin Project Dependency
Project_Dep_Name Fluid
End Project Dependency
}}} }}}
############################################################################### ###############################################################################

View File

@ -92,6 +92,37 @@ LINK32=link.exe
# Begin Source File # Begin Source File
SOURCE=..\..\test\tree.cxx SOURCE=..\..\test\tree.cxx
# End Source File
# Begin Source File
SOURCE=..\..\test\tree.fl
!IF "$(CFG)" == "tree - Win32 Release"
# Begin Custom Build - Create .cxx and .h file with fluid
InputPath=..\..\test\tree.fl
"..\..\test\tree.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
cd ..\..\test/
..\fluid\fluid -c tree.fl
cd ..\ide\visualc
# End Custom Build
!ELSEIF "$(CFG)" == "tree - Win32 Debug"
# Begin Custom Build - Create .cxx and .h file with fluidd
InputPath=..\..\test\tree.fl
"..\..\test\tree.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
cd ..\..\test/
..\fluid\fluidd -c tree.fl
cd ..\ide\visualc
# End Custom Build
!ENDIF
# End Source File # End Source File
# End Target # End Target
# End Project # End Project

View File

@ -60,7 +60,6 @@
12E4293A141DD684369D6B8F /* fl_boxtype.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 9B54C6B8D801E899981FC5E6 /* fl_boxtype.cxx */; }; 12E4293A141DD684369D6B8F /* fl_boxtype.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 9B54C6B8D801E899981FC5E6 /* fl_boxtype.cxx */; };
12EDA8498FE1A47E32A9428E /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = 5575DA9A654EB53C515F917A /* png.c */; }; 12EDA8498FE1A47E32A9428E /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = 5575DA9A654EB53C515F917A /* png.c */; };
1328D9EE314856BAB7A54D5A /* Fl_BMP_Image.H in Headers */ = {isa = PBXBuildFile; fileRef = B20D11CF3F871C99011F632E /* Fl_BMP_Image.H */; settings = {ATTRIBUTES = (Public, ); }; }; 1328D9EE314856BAB7A54D5A /* Fl_BMP_Image.H in Headers */ = {isa = PBXBuildFile; fileRef = B20D11CF3F871C99011F632E /* Fl_BMP_Image.H */; settings = {ATTRIBUTES = (Public, ); }; };
13B77D5A401B98BD18D3CCF8 /* Fl_PSfile_Device.H in Headers */ = {isa = PBXBuildFile; fileRef = 44C10E7FA85430F4E1D68B60 /* Fl_PSfile_Device.H */; settings = {ATTRIBUTES = (Public, ); }; };
13DE96EAB36238A478381098 /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; }; 13DE96EAB36238A478381098 /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; };
1490AC534F76E26EF9280C6D /* Fl_add_idle.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 274CBEBF1D1BFD5C91605CBE /* Fl_add_idle.cxx */; }; 1490AC534F76E26EF9280C6D /* Fl_add_idle.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 274CBEBF1D1BFD5C91605CBE /* Fl_add_idle.cxx */; };
1565219A0166F42F299C2C9E /* Fl_Browser_load.cxx in Sources */ = {isa = PBXBuildFile; fileRef = E46A3C4F955A94AE095FF726 /* Fl_Browser_load.cxx */; }; 1565219A0166F42F299C2C9E /* Fl_Browser_load.cxx in Sources */ = {isa = PBXBuildFile; fileRef = E46A3C4F955A94AE095FF726 /* Fl_Browser_load.cxx */; };
@ -68,6 +67,7 @@
16C76FAEEC543074798FF0CB /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; }; 16C76FAEEC543074798FF0CB /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; };
16CA21C97F278A00B2558C3C /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = C4CF7DDC2EC8792157A3F43B /* pngread.c */; }; 16CA21C97F278A00B2558C3C /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = C4CF7DDC2EC8792157A3F43B /* pngread.c */; };
16F26F7D137CC7F7B57ECAC0 /* fltk_zlib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8880CD3FEF32388A24C1B94 /* fltk_zlib.framework */; }; 16F26F7D137CC7F7B57ECAC0 /* fltk_zlib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8880CD3FEF32388A24C1B94 /* fltk_zlib.framework */; };
16FC08C22B1B693EB00C15F5 /* tree.fl in Sources */ = {isa = PBXBuildFile; fileRef = D10B1EA053B5C8F02A636D93 /* tree.fl */; };
17875FB347705D46D333E6EC /* fractals.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 598DD70F89D7731D61BBD8EF /* fractals.cxx */; }; 17875FB347705D46D333E6EC /* fractals.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 598DD70F89D7731D61BBD8EF /* fractals.cxx */; };
180F08AFCDEE94081FDCD9AF /* Fl_Choice.H in Headers */ = {isa = PBXBuildFile; fileRef = C8AE10A8DDF53B8B27E3215A /* Fl_Choice.H */; settings = {ATTRIBUTES = (Public, ); }; }; 180F08AFCDEE94081FDCD9AF /* Fl_Choice.H in Headers */ = {isa = PBXBuildFile; fileRef = C8AE10A8DDF53B8B27E3215A /* Fl_Choice.H */; settings = {ATTRIBUTES = (Public, ); }; };
185933E619D6C024C4B53D3B /* Fl_Value_Input.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 34CB383C3A4360C14B58562E /* Fl_Value_Input.cxx */; }; 185933E619D6C024C4B53D3B /* Fl_Value_Input.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 34CB383C3A4360C14B58562E /* Fl_Value_Input.cxx */; };
@ -129,9 +129,9 @@
2800B0509A5D20FABE8F02DC /* fl_show_colormap.cxx in Sources */ = {isa = PBXBuildFile; fileRef = EB15CE98189A4C0A7A8A480F /* fl_show_colormap.cxx */; }; 2800B0509A5D20FABE8F02DC /* fl_show_colormap.cxx in Sources */ = {isa = PBXBuildFile; fileRef = EB15CE98189A4C0A7A8A480F /* fl_show_colormap.cxx */; };
2832E97111DB41A4B13A4EFE /* keyboard_ui.fl in Sources */ = {isa = PBXBuildFile; fileRef = 7B084447C58E292798B27283 /* keyboard_ui.fl */; }; 2832E97111DB41A4B13A4EFE /* keyboard_ui.fl in Sources */ = {isa = PBXBuildFile; fileRef = 7B084447C58E292798B27283 /* keyboard_ui.fl */; };
285B384349B0FC5FCE9C9FCE /* fl_open_uri.cxx in Sources */ = {isa = PBXBuildFile; fileRef = FAD24127A06F3F9F0EEB843A /* fl_open_uri.cxx */; }; 285B384349B0FC5FCE9C9FCE /* fl_open_uri.cxx in Sources */ = {isa = PBXBuildFile; fileRef = FAD24127A06F3F9F0EEB843A /* fl_open_uri.cxx */; };
28A5D2BB72720891608E7B82 /* Fl_Abstract_Printer.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 5E009E15C14AA1D60827722D /* Fl_Abstract_Printer.cxx */; };
291FA24A9E91A2036BC718A2 /* Fl_Overlay_Window.cxx in Sources */ = {isa = PBXBuildFile; fileRef = D1C792936D427CC48581BFAE /* Fl_Overlay_Window.cxx */; }; 291FA24A9E91A2036BC718A2 /* Fl_Overlay_Window.cxx in Sources */ = {isa = PBXBuildFile; fileRef = D1C792936D427CC48581BFAE /* Fl_Overlay_Window.cxx */; };
29303C4480E0BBEB9E29EE7B /* vsnprintf.c in Sources */ = {isa = PBXBuildFile; fileRef = EBC0D2C965EDD6503B0CF519 /* vsnprintf.c */; }; 29303C4480E0BBEB9E29EE7B /* vsnprintf.c in Sources */ = {isa = PBXBuildFile; fileRef = EBC0D2C965EDD6503B0CF519 /* vsnprintf.c */; };
299CB8A2848CB844BCEC7829 /* Fl_Paged_Device.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 6C1C9A4F054C48CDD6A2DE44 /* Fl_Paged_Device.cxx */; };
29A99477531233BE9391CE66 /* Fl_Slider.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 5AF5119D08DFC92EA1032671 /* Fl_Slider.cxx */; }; 29A99477531233BE9391CE66 /* Fl_Slider.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 5AF5119D08DFC92EA1032671 /* Fl_Slider.cxx */; };
29B01C1F3FF6C5B007DEEF45 /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; }; 29B01C1F3FF6C5B007DEEF45 /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; };
29ED282EF51CBBB0CDEE76D6 /* Fl_Color_Chooser.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 058BCBC36ADE724A418F1C43 /* Fl_Color_Chooser.cxx */; }; 29ED282EF51CBBB0CDEE76D6 /* Fl_Color_Chooser.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 058BCBC36ADE724A418F1C43 /* Fl_Color_Chooser.cxx */; };
@ -368,6 +368,7 @@
74D195DEE3A33FA0C8C7A5BE /* Fl_Help_View.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 790419B5A0AD64D66F9B19E1 /* Fl_Help_View.cxx */; }; 74D195DEE3A33FA0C8C7A5BE /* Fl_Help_View.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 790419B5A0AD64D66F9B19E1 /* Fl_Help_View.cxx */; };
74D5FD7ED2AF3F51D8B2EEEB /* Fl_Slider.H in Headers */ = {isa = PBXBuildFile; fileRef = F2E5612A81A6E8D53ED91CAE /* Fl_Slider.H */; settings = {ATTRIBUTES = (Public, ); }; }; 74D5FD7ED2AF3F51D8B2EEEB /* Fl_Slider.H in Headers */ = {isa = PBXBuildFile; fileRef = F2E5612A81A6E8D53ED91CAE /* Fl_Slider.H */; settings = {ATTRIBUTES = (Public, ); }; };
753A6417598E2D35C308632A /* valuators.fl in Sources */ = {isa = PBXBuildFile; fileRef = 590C56F672356072A5C86BC3 /* valuators.fl */; }; 753A6417598E2D35C308632A /* valuators.fl in Sources */ = {isa = PBXBuildFile; fileRef = 590C56F672356072A5C86BC3 /* valuators.fl */; };
7582831EE62557F2D4668FA4 /* Fl_Paged_Device.H in Headers */ = {isa = PBXBuildFile; fileRef = 4CABCBB89F9DD5CF57BB9779 /* Fl_Paged_Device.H */; settings = {ATTRIBUTES = (Public, ); }; };
761829645FD3BCA7EE9DE369 /* fltk_gl.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = EA8E6EC230301E597B9D9AED /* fltk_gl.framework */; }; 761829645FD3BCA7EE9DE369 /* fltk_gl.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = EA8E6EC230301E597B9D9AED /* fltk_gl.framework */; };
762325B25679668EB687A028 /* gl_overlay.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1F6E4CE3C0DF58D8F7B3A94A /* gl_overlay.cxx */; }; 762325B25679668EB687A028 /* gl_overlay.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 1F6E4CE3C0DF58D8F7B3A94A /* gl_overlay.cxx */; };
76BA5F2997A55DDFA04EFC98 /* ide_visualc.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 9C0598A21FEE02AA4F0E39C9 /* ide_visualc.cxx */; }; 76BA5F2997A55DDFA04EFC98 /* ide_visualc.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 9C0598A21FEE02AA4F0E39C9 /* ide_visualc.cxx */; };
@ -430,7 +431,6 @@
8A80E9D910324212101C3E76 /* fltk.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; }; 8A80E9D910324212101C3E76 /* fltk.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; };
8AB3C564389AED897174FFF2 /* Fl_Type.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 0B800D01D215C41573FFE4DA /* Fl_Type.cxx */; }; 8AB3C564389AED897174FFF2 /* Fl_Type.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 0B800D01D215C41573FFE4DA /* Fl_Type.cxx */; };
8AC8FF5C9534F6E0664A352B /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; }; 8AC8FF5C9534F6E0664A352B /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; };
8B1319F9AB1424C1480A3133 /* tree.cxx in Sources */ = {isa = PBXBuildFile; fileRef = ECCD42A2E7B2C6BF5B3DF410 /* tree.cxx */; };
8BA3F05B96804E0FD9491049 /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; }; 8BA3F05B96804E0FD9491049 /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; };
8CC2898FB12015F247784420 /* jdcoefct.c in Sources */ = {isa = PBXBuildFile; fileRef = A715D265EAD3C5DA5628485C /* jdcoefct.c */; }; 8CC2898FB12015F247784420 /* jdcoefct.c in Sources */ = {isa = PBXBuildFile; fileRef = A715D265EAD3C5DA5628485C /* jdcoefct.c */; };
8CCF18F146F2012A0C1DC330 /* Fl_Return_Button.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 9A3D4184FF1C89B7CEE9FBD6 /* Fl_Return_Button.cxx */; }; 8CCF18F146F2012A0C1DC330 /* Fl_Return_Button.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 9A3D4184FF1C89B7CEE9FBD6 /* Fl_Return_Button.cxx */; };
@ -568,7 +568,6 @@
BCFD2D2C8ED191EFB52166A4 /* fl_show_input.H in Headers */ = {isa = PBXBuildFile; fileRef = EFAE92A1C7CA90BC56E5A70A /* fl_show_input.H */; settings = {ATTRIBUTES = (Public, ); }; }; BCFD2D2C8ED191EFB52166A4 /* fl_show_input.H in Headers */ = {isa = PBXBuildFile; fileRef = EFAE92A1C7CA90BC56E5A70A /* fl_show_input.H */; settings = {ATTRIBUTES = (Public, ); }; };
BD48B8B0B3DE04E72A17F60D /* jdmarker.c in Sources */ = {isa = PBXBuildFile; fileRef = BB37899B104B362F32F0F417 /* jdmarker.c */; }; BD48B8B0B3DE04E72A17F60D /* jdmarker.c in Sources */ = {isa = PBXBuildFile; fileRef = BB37899B104B362F32F0F417 /* jdmarker.c */; };
BDB3A4C9B2AC519DC6A95D84 /* fl_dnd.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2DD93178E8AFA850DAC293FC /* fl_dnd.cxx */; }; BDB3A4C9B2AC519DC6A95D84 /* fl_dnd.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2DD93178E8AFA850DAC293FC /* fl_dnd.cxx */; };
BE079BCB8B1142B84067555A /* Fl_Abstract_Printer.H in Headers */ = {isa = PBXBuildFile; fileRef = F9AAAD5964050A3DC9E20879 /* Fl_Abstract_Printer.H */; settings = {ATTRIBUTES = (Public, ); }; };
BF212FE1FA8676E379DE4BC1 /* fltk_gl.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = EA8E6EC230301E597B9D9AED /* fltk_gl.framework */; }; BF212FE1FA8676E379DE4BC1 /* fltk_gl.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = EA8E6EC230301E597B9D9AED /* fltk_gl.framework */; };
BF3BDB0B4DA065027B4771CA /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; }; BF3BDB0B4DA065027B4771CA /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; };
BF7219C14C522420ED920D72 /* Fl_Simple_Counter.H in Headers */ = {isa = PBXBuildFile; fileRef = 9B57B581401BD8575BFAF2F1 /* Fl_Simple_Counter.H */; settings = {ATTRIBUTES = (Public, ); }; }; BF7219C14C522420ED920D72 /* Fl_Simple_Counter.H in Headers */ = {isa = PBXBuildFile; fileRef = 9B57B581401BD8575BFAF2F1 /* Fl_Simple_Counter.H */; settings = {ATTRIBUTES = (Public, ); }; };
@ -1785,6 +1784,13 @@
remoteGlobalIDString = A57FDE871C99A52BEEDEE68C; remoteGlobalIDString = A57FDE871C99A52BEEDEE68C;
remoteInfo = fltk; remoteInfo = fltk;
}; };
14AFCE90907C6F3225151910 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4BF1A7FFEACF5F31B4127482 /* Project object */;
proxyType = 1;
remoteGlobalIDString = AE6BC0AEB24EBBBDBA4071E0;
remoteInfo = Fluid;
};
16BBABAD50B4194D5D76302F /* PBXContainerItemProxy */ = { 16BBABAD50B4194D5D76302F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy; isa = PBXContainerItemProxy;
containerPortal = 4BF1A7FFEACF5F31B4127482 /* Project object */; containerPortal = 4BF1A7FFEACF5F31B4127482 /* Project object */;
@ -3947,7 +3953,6 @@
43D9A7CD936B1382F5EA23E1 /* about_panel.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = about_panel.cxx; path = ../../fluid/about_panel.cxx; sourceTree = SOURCE_ROOT; }; 43D9A7CD936B1382F5EA23E1 /* about_panel.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = about_panel.cxx; path = ../../fluid/about_panel.cxx; sourceTree = SOURCE_ROOT; };
44277061B27BFBE1FB22B79B /* menubar.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = menubar.cxx; path = ../../test/menubar.cxx; sourceTree = SOURCE_ROOT; }; 44277061B27BFBE1FB22B79B /* menubar.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = menubar.cxx; path = ../../test/menubar.cxx; sourceTree = SOURCE_ROOT; };
44B6E71105CCEECB4D5E2DC8 /* ide_support.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ide_support.h; path = ../../fluid/ide_support.h; sourceTree = SOURCE_ROOT; }; 44B6E71105CCEECB4D5E2DC8 /* ide_support.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ide_support.h; path = ../../fluid/ide_support.h; sourceTree = SOURCE_ROOT; };
44C10E7FA85430F4E1D68B60 /* Fl_PSfile_Device.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_PSfile_Device.H; path = ../../FL/Fl_PSfile_Device.H; sourceTree = SOURCE_ROOT; };
451D01896EFDD83277515630 /* glut.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = glut.H; path = ../../FL/glut.H; sourceTree = SOURCE_ROOT; }; 451D01896EFDD83277515630 /* glut.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = glut.H; path = ../../FL/glut.H; sourceTree = SOURCE_ROOT; };
4577F046D6D5D93D2553BFBC /* jdtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdtrans.c; path = ../../jpeg/jdtrans.c; sourceTree = SOURCE_ROOT; }; 4577F046D6D5D93D2553BFBC /* jdtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdtrans.c; path = ../../jpeg/jdtrans.c; sourceTree = SOURCE_ROOT; };
45B993D3FA0EED6037499D3A /* color_chooser.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = color_chooser.cxx; path = ../../test/color_chooser.cxx; sourceTree = SOURCE_ROOT; }; 45B993D3FA0EED6037499D3A /* color_chooser.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = color_chooser.cxx; path = ../../test/color_chooser.cxx; sourceTree = SOURCE_ROOT; };
@ -3965,6 +3970,7 @@
4C2979BC9629FABDCC0271BB /* jcmainct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcmainct.c; path = ../../jpeg/jcmainct.c; sourceTree = SOURCE_ROOT; }; 4C2979BC9629FABDCC0271BB /* jcmainct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcmainct.c; path = ../../jpeg/jcmainct.c; sourceTree = SOURCE_ROOT; };
4C2EEE3E17025A63A0AEEF5F /* hello.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = hello.cxx; path = ../../test/hello.cxx; sourceTree = SOURCE_ROOT; }; 4C2EEE3E17025A63A0AEEF5F /* hello.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = hello.cxx; path = ../../test/hello.cxx; sourceTree = SOURCE_ROOT; };
4C9AF6F2C1B78A67FFD177F9 /* gl2opengl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gl2opengl.h; path = ../../FL/gl2opengl.h; sourceTree = SOURCE_ROOT; }; 4C9AF6F2C1B78A67FFD177F9 /* gl2opengl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gl2opengl.h; path = ../../FL/gl2opengl.h; sourceTree = SOURCE_ROOT; };
4CABCBB89F9DD5CF57BB9779 /* Fl_Paged_Device.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Paged_Device.H; path = ../../FL/Fl_Paged_Device.H; sourceTree = SOURCE_ROOT; };
4CD4094D8712818EACF5C7C5 /* Fl_Progress.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Progress.H; path = ../../FL/Fl_Progress.H; sourceTree = SOURCE_ROOT; }; 4CD4094D8712818EACF5C7C5 /* Fl_Progress.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Progress.H; path = ../../FL/Fl_Progress.H; sourceTree = SOURCE_ROOT; };
4CD5A5D2975A2CCB77EBAD43 /* jutils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jutils.c; path = ../../jpeg/jutils.c; sourceTree = SOURCE_ROOT; }; 4CD5A5D2975A2CCB77EBAD43 /* jutils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jutils.c; path = ../../jpeg/jutils.c; sourceTree = SOURCE_ROOT; };
4D124BD72F4E63D99837CE0C /* fl_encoding_latin1.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fl_encoding_latin1.cxx; path = ../../src/fl_encoding_latin1.cxx; sourceTree = SOURCE_ROOT; }; 4D124BD72F4E63D99837CE0C /* fl_encoding_latin1.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fl_encoding_latin1.cxx; path = ../../src/fl_encoding_latin1.cxx; sourceTree = SOURCE_ROOT; };
@ -4005,7 +4011,6 @@
5CDA214AEABC15E3EF1BB172 /* Fl_Adjuster.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Adjuster.H; path = ../../FL/Fl_Adjuster.H; sourceTree = SOURCE_ROOT; }; 5CDA214AEABC15E3EF1BB172 /* Fl_Adjuster.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Adjuster.H; path = ../../FL/Fl_Adjuster.H; sourceTree = SOURCE_ROOT; };
5CE4CB9AEF9070A32A27696D /* fl_overlay_visual.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fl_overlay_visual.cxx; path = ../../src/fl_overlay_visual.cxx; sourceTree = SOURCE_ROOT; }; 5CE4CB9AEF9070A32A27696D /* fl_overlay_visual.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fl_overlay_visual.cxx; path = ../../src/fl_overlay_visual.cxx; sourceTree = SOURCE_ROOT; };
5D36F806A2C72F1894F0878E /* Fl_File_Icon.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_File_Icon.cxx; path = ../../src/Fl_File_Icon.cxx; sourceTree = SOURCE_ROOT; }; 5D36F806A2C72F1894F0878E /* Fl_File_Icon.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_File_Icon.cxx; path = ../../src/Fl_File_Icon.cxx; sourceTree = SOURCE_ROOT; };
5E009E15C14AA1D60827722D /* Fl_Abstract_Printer.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Abstract_Printer.cxx; path = ../../src/Fl_Abstract_Printer.cxx; sourceTree = SOURCE_ROOT; };
5E0EC227A972D2E4F34A2CEB /* Fl_Tree.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Tree.H; path = ../../FL/Fl_Tree.H; sourceTree = SOURCE_ROOT; }; 5E0EC227A972D2E4F34A2CEB /* Fl_Tree.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Tree.H; path = ../../FL/Fl_Tree.H; sourceTree = SOURCE_ROOT; };
5EF025FDE53B2276B6931CD5 /* clock.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = clock.cxx; path = ../../test/clock.cxx; sourceTree = SOURCE_ROOT; }; 5EF025FDE53B2276B6931CD5 /* clock.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = clock.cxx; path = ../../test/clock.cxx; sourceTree = SOURCE_ROOT; };
5F328DFEE7B768CF141C8E9E /* zutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zutil.c; path = ../../zlib/zutil.c; sourceTree = SOURCE_ROOT; }; 5F328DFEE7B768CF141C8E9E /* zutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zutil.c; path = ../../zlib/zutil.c; sourceTree = SOURCE_ROOT; };
@ -4033,6 +4038,7 @@
6B30F6EA5CA69E305D2B82EE /* is_right2left.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = is_right2left.c; path = ../../src/xutf8/is_right2left.c; sourceTree = SOURCE_ROOT; }; 6B30F6EA5CA69E305D2B82EE /* is_right2left.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = is_right2left.c; path = ../../src/xutf8/is_right2left.c; sourceTree = SOURCE_ROOT; };
6BCDA929CD8600DE9AC516DD /* compress.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = compress.c; path = ../../zlib/compress.c; sourceTree = SOURCE_ROOT; }; 6BCDA929CD8600DE9AC516DD /* compress.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = compress.c; path = ../../zlib/compress.c; sourceTree = SOURCE_ROOT; };
6BDBE905BDAC3374782D6E81 /* input.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = input.app; sourceTree = BUILT_PRODUCTS_DIR; }; 6BDBE905BDAC3374782D6E81 /* input.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = input.app; sourceTree = BUILT_PRODUCTS_DIR; };
6C1C9A4F054C48CDD6A2DE44 /* Fl_Paged_Device.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Paged_Device.cxx; path = ../../src/Fl_Paged_Device.cxx; sourceTree = SOURCE_ROOT; };
6C64353A3129BCCFAA667D86 /* boxtype.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = boxtype.cxx; path = ../../test/boxtype.cxx; sourceTree = SOURCE_ROOT; }; 6C64353A3129BCCFAA667D86 /* boxtype.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = boxtype.cxx; path = ../../test/boxtype.cxx; sourceTree = SOURCE_ROOT; };
6CCA5064754A8314839CB37A /* freeglut_stroke_roman.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = freeglut_stroke_roman.cxx; path = ../../src/freeglut_stroke_roman.cxx; sourceTree = SOURCE_ROOT; }; 6CCA5064754A8314839CB37A /* freeglut_stroke_roman.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = freeglut_stroke_roman.cxx; path = ../../src/freeglut_stroke_roman.cxx; sourceTree = SOURCE_ROOT; };
6D999C03407EAEE9C4D3477A /* browser.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = browser.cxx; path = ../../test/browser.cxx; sourceTree = SOURCE_ROOT; }; 6D999C03407EAEE9C4D3477A /* browser.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = browser.cxx; path = ../../test/browser.cxx; sourceTree = SOURCE_ROOT; };
@ -4257,6 +4263,7 @@
D02CF2893ECCE831CD5D3176 /* Fl_Multi_Label.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Multi_Label.cxx; path = ../../src/Fl_Multi_Label.cxx; sourceTree = SOURCE_ROOT; }; D02CF2893ECCE831CD5D3176 /* Fl_Multi_Label.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Multi_Label.cxx; path = ../../src/Fl_Multi_Label.cxx; sourceTree = SOURCE_ROOT; };
D06E371A971A3BC1B399AD78 /* button.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = button.cxx; path = ../../test/button.cxx; sourceTree = SOURCE_ROOT; }; D06E371A971A3BC1B399AD78 /* button.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = button.cxx; path = ../../test/button.cxx; sourceTree = SOURCE_ROOT; };
D0E376E93B4F22BE701D29E0 /* Fl_Roller.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Roller.cxx; path = ../../src/Fl_Roller.cxx; sourceTree = SOURCE_ROOT; }; D0E376E93B4F22BE701D29E0 /* Fl_Roller.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Roller.cxx; path = ../../src/Fl_Roller.cxx; sourceTree = SOURCE_ROOT; };
D10B1EA053B5C8F02A636D93 /* tree.fl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.fluid; name = tree.fl; path = ../../test/tree.fl; sourceTree = SOURCE_ROOT; };
D1C792936D427CC48581BFAE /* Fl_Overlay_Window.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Overlay_Window.cxx; path = ../../src/Fl_Overlay_Window.cxx; sourceTree = SOURCE_ROOT; }; D1C792936D427CC48581BFAE /* Fl_Overlay_Window.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Overlay_Window.cxx; path = ../../src/Fl_Overlay_Window.cxx; sourceTree = SOURCE_ROOT; };
D2DE1079C826533A91053A9C /* Fl_XBM_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_XBM_Image.H; path = ../../FL/Fl_XBM_Image.H; sourceTree = SOURCE_ROOT; }; D2DE1079C826533A91053A9C /* Fl_XBM_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_XBM_Image.H; path = ../../FL/Fl_XBM_Image.H; sourceTree = SOURCE_ROOT; };
D33C668435685F7CCB359EE2 /* pngrio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = ../../png/pngrio.c; sourceTree = SOURCE_ROOT; }; D33C668435685F7CCB359EE2 /* pngrio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = ../../png/pngrio.c; sourceTree = SOURCE_ROOT; };
@ -4336,7 +4343,6 @@
EC2BAEE540612218DC9EEC75 /* Fl_Scroll.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Scroll.H; path = ../../FL/Fl_Scroll.H; sourceTree = SOURCE_ROOT; }; EC2BAEE540612218DC9EEC75 /* Fl_Scroll.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Scroll.H; path = ../../FL/Fl_Scroll.H; sourceTree = SOURCE_ROOT; };
EC57889382FB898FD3EF2580 /* Fl_Gl_Window.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Gl_Window.cxx; path = ../../src/Fl_Gl_Window.cxx; sourceTree = SOURCE_ROOT; }; EC57889382FB898FD3EF2580 /* Fl_Gl_Window.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Gl_Window.cxx; path = ../../src/Fl_Gl_Window.cxx; sourceTree = SOURCE_ROOT; };
EC5862E1FC79542DC55D8462 /* colbrowser.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = colbrowser.cxx; path = ../../test/colbrowser.cxx; sourceTree = SOURCE_ROOT; }; EC5862E1FC79542DC55D8462 /* colbrowser.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = colbrowser.cxx; path = ../../test/colbrowser.cxx; sourceTree = SOURCE_ROOT; };
ECCD42A2E7B2C6BF5B3DF410 /* tree.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tree.cxx; path = ../../test/tree.cxx; sourceTree = SOURCE_ROOT; };
ECFF712363202EC351A51E53 /* Fl_PNM_Image.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_PNM_Image.cxx; path = ../../src/Fl_PNM_Image.cxx; sourceTree = SOURCE_ROOT; }; ECFF712363202EC351A51E53 /* Fl_PNM_Image.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_PNM_Image.cxx; path = ../../src/Fl_PNM_Image.cxx; sourceTree = SOURCE_ROOT; };
EDCB878D48197F6AE1C99614 /* jidctred.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = ../../jpeg/jidctred.c; sourceTree = SOURCE_ROOT; }; EDCB878D48197F6AE1C99614 /* jidctred.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = ../../jpeg/jidctred.c; sourceTree = SOURCE_ROOT; };
EDE6CE6B09D31AC0AAC9FF56 /* fullscreen.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fullscreen.cxx; path = ../../test/fullscreen.cxx; sourceTree = SOURCE_ROOT; }; EDE6CE6B09D31AC0AAC9FF56 /* fullscreen.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fullscreen.cxx; path = ../../test/fullscreen.cxx; sourceTree = SOURCE_ROOT; };
@ -4366,7 +4372,6 @@
F8BAA8B283D4CF4D904B6486 /* Fl_Valuator.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Valuator.H; path = ../../FL/Fl_Valuator.H; sourceTree = SOURCE_ROOT; }; F8BAA8B283D4CF4D904B6486 /* Fl_Valuator.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Valuator.H; path = ../../FL/Fl_Valuator.H; sourceTree = SOURCE_ROOT; };
F91DEF40DC3592BE52CAB001 /* Fl_Native_File_Chooser.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Native_File_Chooser.H; path = ../../FL/Fl_Native_File_Chooser.H; sourceTree = SOURCE_ROOT; }; F91DEF40DC3592BE52CAB001 /* Fl_Native_File_Chooser.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Native_File_Chooser.H; path = ../../FL/Fl_Native_File_Chooser.H; sourceTree = SOURCE_ROOT; };
F98FE04C081FB5B1161C546C /* Fl_Window.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Window.H; path = ../../FL/Fl_Window.H; sourceTree = SOURCE_ROOT; }; F98FE04C081FB5B1161C546C /* Fl_Window.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Window.H; path = ../../FL/Fl_Window.H; sourceTree = SOURCE_ROOT; };
F9AAAD5964050A3DC9E20879 /* Fl_Abstract_Printer.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Abstract_Printer.H; path = ../../FL/Fl_Abstract_Printer.H; sourceTree = SOURCE_ROOT; };
FA2F70BA8FF4E7F4B7B36971 /* fl_file_dir.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fl_file_dir.cxx; path = ../../src/fl_file_dir.cxx; sourceTree = SOURCE_ROOT; }; FA2F70BA8FF4E7F4B7B36971 /* fl_file_dir.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fl_file_dir.cxx; path = ../../src/fl_file_dir.cxx; sourceTree = SOURCE_ROOT; };
FAA6BA6E4DC1AF28F5FC8466 /* Fl_Tile.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Tile.H; path = ../../FL/Fl_Tile.H; sourceTree = SOURCE_ROOT; }; FAA6BA6E4DC1AF28F5FC8466 /* Fl_Tile.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Tile.H; path = ../../FL/Fl_Tile.H; sourceTree = SOURCE_ROOT; };
FAD24127A06F3F9F0EEB843A /* fl_open_uri.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fl_open_uri.cxx; path = ../../src/fl_open_uri.cxx; sourceTree = SOURCE_ROOT; }; FAD24127A06F3F9F0EEB843A /* fl_open_uri.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fl_open_uri.cxx; path = ../../src/fl_open_uri.cxx; sourceTree = SOURCE_ROOT; };
@ -5154,7 +5159,6 @@
children = ( children = (
B04F6E032ADAF0A16A860A2E /* Headers */, B04F6E032ADAF0A16A860A2E /* Headers */,
F4EFF27D730BED51EF0EAA8D /* Fl.cxx */, F4EFF27D730BED51EF0EAA8D /* Fl.cxx */,
5E009E15C14AA1D60827722D /* Fl_Abstract_Printer.cxx */,
19C5DB6F3DD5011DAE6F79AB /* Fl_Adjuster.cxx */, 19C5DB6F3DD5011DAE6F79AB /* Fl_Adjuster.cxx */,
3F000DD5F091F66BC42822E3 /* Fl_Bitmap.cxx */, 3F000DD5F091F66BC42822E3 /* Fl_Bitmap.cxx */,
C3F048573FAEABD2D27401D4 /* Fl_Box.cxx */, C3F048573FAEABD2D27401D4 /* Fl_Box.cxx */,
@ -5303,6 +5307,7 @@
FB7A9EFB3C7CDAE324E9544F /* case.c */, FB7A9EFB3C7CDAE324E9544F /* case.c */,
6B30F6EA5CA69E305D2B82EE /* is_right2left.c */, 6B30F6EA5CA69E305D2B82EE /* is_right2left.c */,
5AE1F936F1C186E18C1B9C28 /* is_spacing.c */, 5AE1F936F1C186E18C1B9C28 /* is_spacing.c */,
6C1C9A4F054C48CDD6A2DE44 /* Fl_Paged_Device.cxx */,
E05754DEC1813B6BA6DC1FC8 /* AudioToolbox.framework */, E05754DEC1813B6BA6DC1FC8 /* AudioToolbox.framework */,
); );
name = fltk; name = fltk;
@ -5420,7 +5425,7 @@
2DD062AF5E08E6EEAE97E188 /* tree */ = { 2DD062AF5E08E6EEAE97E188 /* tree */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
ECCD42A2E7B2C6BF5B3DF410 /* tree.cxx */, D10B1EA053B5C8F02A636D93 /* tree.fl */,
); );
name = tree; name = tree;
sourceTree = "<group>"; sourceTree = "<group>";
@ -5904,7 +5909,6 @@
children = ( children = (
84CE79448708855561FEE498 /* Enumerations.H */, 84CE79448708855561FEE498 /* Enumerations.H */,
C359E5D5187606DD69C7938B /* Fl.H */, C359E5D5187606DD69C7938B /* Fl.H */,
F9AAAD5964050A3DC9E20879 /* Fl_Abstract_Printer.H */,
5CDA214AEABC15E3EF1BB172 /* Fl_Adjuster.H */, 5CDA214AEABC15E3EF1BB172 /* Fl_Adjuster.H */,
FE90AA3BB40510FA45E0C27B /* Fl_Bitmap.H */, FE90AA3BB40510FA45E0C27B /* Fl_Bitmap.H */,
390863A4D5D1B4C7C9B58679 /* Fl_Box.H */, 390863A4D5D1B4C7C9B58679 /* Fl_Box.H */,
@ -5962,7 +5966,6 @@
EE2FB1F7B99BE408E1B4DFB7 /* Fl_Object.H */, EE2FB1F7B99BE408E1B4DFB7 /* Fl_Object.H */,
D585CB55BDA143D343033352 /* Fl_Output.H */, D585CB55BDA143D343033352 /* Fl_Output.H */,
1FCDDD4E00F7CAA8193CAE04 /* Fl_Overlay_Window.H */, 1FCDDD4E00F7CAA8193CAE04 /* Fl_Overlay_Window.H */,
44C10E7FA85430F4E1D68B60 /* Fl_PSfile_Device.H */,
52C3B1D0A473BDC01D497917 /* Fl_Pack.H */, 52C3B1D0A473BDC01D497917 /* Fl_Pack.H */,
B8455C1BD96FF6FB3C197C34 /* Fl_Pixmap.H */, B8455C1BD96FF6FB3C197C34 /* Fl_Pixmap.H */,
A8F89055CABBCFECCC4CC940 /* Fl_Plugin.H */, A8F89055CABBCFECCC4CC940 /* Fl_Plugin.H */,
@ -6030,6 +6033,7 @@
D5CE28437ABB8513BE08AC77 /* names.h */, D5CE28437ABB8513BE08AC77 /* names.h */,
62281FC096BA407C4F1E6824 /* win32.H */, 62281FC096BA407C4F1E6824 /* win32.H */,
83CED42A779FA76E98D37CA8 /* x.H */, 83CED42A779FA76E98D37CA8 /* x.H */,
4CABCBB89F9DD5CF57BB9779 /* Fl_Paged_Device.H */,
); );
name = Headers; name = Headers;
sourceTree = "<group>"; sourceTree = "<group>";
@ -6422,7 +6426,6 @@
files = ( files = (
05D71028D71BB089B3157E35 /* Enumerations.H in Headers */, 05D71028D71BB089B3157E35 /* Enumerations.H in Headers */,
0231212CBF1A26721E3F20FE /* Fl.H in Headers */, 0231212CBF1A26721E3F20FE /* Fl.H in Headers */,
BE079BCB8B1142B84067555A /* Fl_Abstract_Printer.H in Headers */,
1EE443C865A80CACB57E4815 /* Fl_Adjuster.H in Headers */, 1EE443C865A80CACB57E4815 /* Fl_Adjuster.H in Headers */,
424ADD12193823093AF1FBDF /* Fl_Bitmap.H in Headers */, 424ADD12193823093AF1FBDF /* Fl_Bitmap.H in Headers */,
E02DABD44EE5FDAC20F3F676 /* Fl_Box.H in Headers */, E02DABD44EE5FDAC20F3F676 /* Fl_Box.H in Headers */,
@ -6480,7 +6483,6 @@
A9E5239AB84083A21F3F490B /* Fl_Object.H in Headers */, A9E5239AB84083A21F3F490B /* Fl_Object.H in Headers */,
62CFB49620B17B8938A1063F /* Fl_Output.H in Headers */, 62CFB49620B17B8938A1063F /* Fl_Output.H in Headers */,
012DC7566408D3CBF672BE50 /* Fl_Overlay_Window.H in Headers */, 012DC7566408D3CBF672BE50 /* Fl_Overlay_Window.H in Headers */,
13B77D5A401B98BD18D3CCF8 /* Fl_PSfile_Device.H in Headers */,
3D282039331A6ECDFED5255E /* Fl_Pack.H in Headers */, 3D282039331A6ECDFED5255E /* Fl_Pack.H in Headers */,
B9134F6A1769B94761981AEA /* Fl_Pixmap.H in Headers */, B9134F6A1769B94761981AEA /* Fl_Pixmap.H in Headers */,
93CC0E443DAAB241C7EEE4B7 /* Fl_Plugin.H in Headers */, 93CC0E443DAAB241C7EEE4B7 /* Fl_Plugin.H in Headers */,
@ -6548,6 +6550,7 @@
D8C2D8F3053EEF229EEF66FB /* names.h in Headers */, D8C2D8F3053EEF229EEF66FB /* names.h in Headers */,
43EF9194502AFF8F5EE968EE /* win32.H in Headers */, 43EF9194502AFF8F5EE968EE /* win32.H in Headers */,
72843BB6450DBFB9A9F53490 /* x.H in Headers */, 72843BB6450DBFB9A9F53490 /* x.H in Headers */,
7582831EE62557F2D4668FA4 /* Fl_Paged_Device.H in Headers */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -8208,6 +8211,7 @@
); );
dependencies = ( dependencies = (
89EEA83A9CD9747F05B1E6AA /* PBXTargetDependency */, 89EEA83A9CD9747F05B1E6AA /* PBXTargetDependency */,
9519279882836E4B8EDEBE60 /* PBXTargetDependency */,
); );
name = tree; name = tree;
productName = tree; productName = tree;
@ -8991,7 +8995,7 @@
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
8B1319F9AB1424C1480A3133 /* tree.cxx in Sources */, 16FC08C22B1B693EB00C15F5 /* tree.fl in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -9094,7 +9098,6 @@
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
ED83B85BA678C8C9B5E91535 /* Fl.cxx in Sources */, ED83B85BA678C8C9B5E91535 /* Fl.cxx in Sources */,
28A5D2BB72720891608E7B82 /* Fl_Abstract_Printer.cxx in Sources */,
B371C5FF1106E69056784D6C /* Fl_Adjuster.cxx in Sources */, B371C5FF1106E69056784D6C /* Fl_Adjuster.cxx in Sources */,
274F92CF30A586E0F8E21530 /* Fl_Bitmap.cxx in Sources */, 274F92CF30A586E0F8E21530 /* Fl_Bitmap.cxx in Sources */,
40E66CBA06083998669F80CE /* Fl_Box.cxx in Sources */, 40E66CBA06083998669F80CE /* Fl_Box.cxx in Sources */,
@ -9243,6 +9246,7 @@
EF0B77D0D7EF375C1CBDC390 /* case.c in Sources */, EF0B77D0D7EF375C1CBDC390 /* case.c in Sources */,
CE14EC6653D4EF4779992758 /* is_right2left.c in Sources */, CE14EC6653D4EF4779992758 /* is_right2left.c in Sources */,
9DD7A2B6D63D30C07781F446 /* is_spacing.c in Sources */, 9DD7A2B6D63D30C07781F446 /* is_spacing.c in Sources */,
299CB8A2848CB844BCEC7829 /* Fl_Paged_Device.cxx in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -10253,6 +10257,11 @@
target = 5C2FE9F5E71E04EA903248FA /* input */; target = 5C2FE9F5E71E04EA903248FA /* input */;
targetProxy = 3B38ABA4483E58B2891D08CB /* PBXContainerItemProxy */; targetProxy = 3B38ABA4483E58B2891D08CB /* PBXContainerItemProxy */;
}; };
9519279882836E4B8EDEBE60 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = AE6BC0AEB24EBBBDBA4071E0 /* Fluid */;
targetProxy = 14AFCE90907C6F3225151910 /* PBXContainerItemProxy */;
};
951CA1D37E7F30B53E37B095 /* PBXTargetDependency */ = { 951CA1D37E7F30B53E37B095 /* PBXTargetDependency */ = {
isa = PBXTargetDependency; isa = PBXTargetDependency;
target = A57FDE871C99A52BEEDEE68C /* fltk */; target = A57FDE871C99A52BEEDEE68C /* fltk */;

View File

@ -1032,6 +1032,8 @@ Fl_File_Chooser::filter(const char *p) // I - Pattern(s)
showChoice->add(custom_filter_label); showChoice->add(custom_filter_label);
// TODO: add a menu item to switch hidden files on and off
showChoice->value(0); showChoice->value(0);
showChoiceCB(); showChoiceCB();
} }

View File

@ -722,12 +722,12 @@ static void undobuffersize(int n) {
<tt>when() & FL_WHEN_CHANGED</tt> and there is a change. <tt>when() & FL_WHEN_CHANGED</tt> and there is a change.
Set \p b and \p e equal to not delete anything. Set \p b and \p e equal to not delete anything.
Set insert to \c NULL to not insert anything. Set \p text to \c NULL to not insert anything.
\p ilen must be zero or strlen(insert), this \p ilen can be zero or <tt>strlen(text)</tt>, which
saves a tiny bit of time if you happen to already know the saves a tiny bit of time if you happen to already know the
length of the insertion, or can be used to insert a portion of a length of the insertion, or can be used to insert a portion of a
string or a string containing <tt>nul</tt>'s. string.
\p b and \p e are clamped to the \p b and \p e are clamped to the
<tt>0..size()</tt> range, so it is safe to pass any values. <tt>0..size()</tt> range, so it is safe to pass any values.

View File

@ -379,17 +379,6 @@ Fl_Preferences::~Fl_Preferences()
} }
/**
Copy the database hierarchy to an Fl_Tree browser from this node down.
*/
char Fl_Preferences::copyTo(Fl_Tree *tree)
{
if (!tree->root())
tree->add(name());
return node->copyTo(tree, tree->root());
}
/** /**
Returns the number of groups that are contained within a group. Returns the number of groups that are contained within a group.
@ -1762,28 +1751,6 @@ void Fl_Preferences::Node::deleteIndex() {
indexed_ = 0; indexed_ = 0;
} }
char Fl_Preferences::Node::copyTo(Fl_Tree *tree, Fl_Tree_Item *ti)
{
ti->label(name());
ti->user_data(this);
Node *nd = child_;
for ( ; nd; nd = nd->next_) {
Fl_Tree_Item *tic = tree->insert(ti, 0, 0);
nd->copyTo(tree, tic);
tic->close();
}
int i, n = nEntry_;
for (i=0; i<n; i++) {
char buf[80];
const char *name = entry_[i].name;
const char *value = entry_[i].value;
fl_snprintf(buf, 80, "%s: %s", name, value);
tree->add(ti, buf);
}
return 0;
}
/** /**
* \brief Create a plugin. * \brief Create a plugin.
* *

View File

@ -1909,7 +1909,7 @@ static void addPadding(char *string, int startIndent, int toIndent,
if (useTabs) { if (useTabs) {
while (indent < toIndent) { while (indent < toIndent) {
static char t = '\t'; //static char t = '\t';
len = Fl_Text_Buffer::character_width("\t", indent, tabDist); len = Fl_Text_Buffer::character_width("\t", indent, tabDist);
if (len > 1 && indent + len <= toIndent) { if (len > 1 && indent + len <= toIndent) {
*outPtr++ = '\t'; *outPtr++ = '\t';

View File

@ -7,6 +7,7 @@
#include <string.h> #include <string.h>
#include <FL/Fl_Tree.H> #include <FL/Fl_Tree.H>
#include <FL/Fl_Preferences.H>
#define SCROLL_W 15 #define SCROLL_W 15
@ -426,6 +427,56 @@ int Fl_Tree::select_only(Fl_Tree_Item *selitem, int docallback) {
return(changed); return(changed);
} }
/**
* Read a preferences database into the tree widget.
* A preferences database is a hierarchical collection of data which can be
* directly loaded into the tree view for inspection.
* \param[in] prefs the Fl_Preferences database
*/
void Fl_Tree::load(Fl_Preferences &prefs)
{
int i, j, n, pn = strlen(prefs.path());
char *p;
const char *path = prefs.path();
if (strcmp(path, ".")==0)
path += 1; // root path is empty
else
path += 2; // child path starts with "./"
n = prefs.groups();
for (i=0; i<n; i++) {
Fl_Preferences prefsChild(prefs, i);
add(prefsChild.path()+2); // children always start with "./"
load(prefsChild);
}
n = prefs.entries();
for (i=0; i<n; i++) {
// We must remove all fwd slashes in the key and value strings. Replace with backslash.
char *key = strdup(prefs.entry(i));
int kn = strlen(key);
for (j=0; j<kn; j++) {
if (key[j]=='/') key[j]='\\';
}
char *val; prefs.get(key, val, "");
int vn = strlen(val);
for (j=0; j<vn; j++) {
if (val[j]=='/') val[j]='\\';
}
if (vn<40) {
int sze = pn + strlen(key) + vn;
p = (char*)malloc(sze+5);
sprintf(p, "%s/%s = %s", path, key, val);
} else {
int sze = pn + strlen(key) + 40;
p = (char*)malloc(sze+5);
sprintf(p, "%s/%s = %.40s...", path, key, val);
}
add(p[0]=='/'?p+1:p);
free(p);
free(val);
free(key);
}
}
// //
// End of "$Id$". // End of "$Id$".
// //

View File

@ -481,6 +481,11 @@ void Fl_Tree_Item::draw(int X, int &Y, int W, Fl_Widget *tree,
int H = _labelsize; int H = _labelsize;
if(usericon() && H < usericon()->h()) H = usericon()->h(); if(usericon() && H < usericon()->h()) H = usericon()->h();
H += prefs.linespacing() + fl_descent(); H += prefs.linespacing() + fl_descent();
// adjust horizontally if we draw no connecting lines
if ( is_root() && prefs.connectorstyle() == FL_TREE_CONNECTOR_NONE ) {
X -= prefs.openicon()->w();
W += prefs.openicon()->w();
}
// Colors, fonts // Colors, fonts
Fl_Color fg = _selected ? prefs.bgcolor() : _labelfgcolor; Fl_Color fg = _selected ? prefs.bgcolor() : _labelfgcolor;
Fl_Color bg = _selected ? prefs.selectcolor() : _labelbgcolor; Fl_Color bg = _selected ? prefs.selectcolor() : _labelbgcolor;
@ -497,9 +502,9 @@ void Fl_Tree_Item::draw(int X, int &Y, int W, Fl_Widget *tree,
int textw=0, texth=0; int textw=0, texth=0;
fl_measure(_label, textw, texth, 0); fl_measure(_label, textw, texth, 0);
int textycenter = Y+(H/2); int textycenter = Y+(H/2);
int &icon_x = _collapse_xywh[0] = X-1;
int &icon_y = _collapse_xywh[1] = textycenter - (prefs.openicon()->h()/2);
int &icon_w = _collapse_xywh[2] = prefs.openicon()->w(); int &icon_w = _collapse_xywh[2] = prefs.openicon()->w();
int &icon_x = _collapse_xywh[0] = X + (icon_w + prefs.connectorwidth())/2 - 3;
int &icon_y = _collapse_xywh[1] = textycenter - (prefs.openicon()->h()/2);
_collapse_xywh[3] = prefs.openicon()->h(); _collapse_xywh[3] = prefs.openicon()->h();
// Horizontal connector values // Horizontal connector values
int hstartx = X+icon_w/2-1; int hstartx = X+icon_w/2-1;
@ -514,6 +519,10 @@ void Fl_Tree_Item::draw(int X, int &Y, int W, Fl_Widget *tree,
// Draw connectors // Draw connectors
if ( prefs.connectorstyle() != FL_TREE_CONNECTOR_NONE ) { if ( prefs.connectorstyle() != FL_TREE_CONNECTOR_NONE ) {
// Horiz connector between center of icon and text // Horiz connector between center of icon and text
// if this is root, the connector should not dangle in thin air on the left
if (is_root())
draw_horizontal_connector(hcenterx, hendx, textycenter, prefs);
else
draw_horizontal_connector(hstartx, hendx, textycenter, prefs); draw_horizontal_connector(hstartx, hendx, textycenter, prefs);
if ( has_children() && is_open() ) { if ( has_children() && is_open() ) {
// Small vertical line down to children // Small vertical line down to children
@ -538,9 +547,11 @@ void Fl_Tree_Item::draw(int X, int &Y, int W, Fl_Widget *tree,
} }
} }
// Background for this item // Background for this item
int &bx = _label_xywh[0] = X+(icon_w/2-1+prefs.connectorwidth()); int cw1 = icon_w+prefs.connectorwidth()/2, cw2 = prefs.connectorwidth();
int cwidth = cw1>cw2 ? cw1 : cw2;
int &bx = _label_xywh[0] = X+(icon_w/2-1+cwidth);
int &by = _label_xywh[1] = Y; int &by = _label_xywh[1] = Y;
int &bw = _label_xywh[2] = W-(icon_w/2-1+prefs.connectorwidth()); int &bw = _label_xywh[2] = W-(icon_w/2-1+cwidth);
int &bh = _label_xywh[3] = H; int &bh = _label_xywh[3] = H;
// Draw bg only if different from tree's bg // Draw bg only if different from tree's bg
if ( bg != tree->color() || is_selected() ) { if ( bg != tree->color() || is_selected() ) {
@ -554,7 +565,7 @@ void Fl_Tree_Item::draw(int X, int &Y, int W, Fl_Widget *tree,
} }
} }
// Draw user icon (if any) // Draw user icon (if any)
int useroff = (icon_w/2-1+prefs.connectorwidth()); int useroff = (icon_w/2-1+cwidth);
if ( usericon() ) { if ( usericon() ) {
// Item has user icon? Use it // Item has user icon? Use it
useroff += prefs.usericonmarginleft(); useroff += prefs.usericonmarginleft();

View File

@ -34,6 +34,22 @@
// These can be replaced via prefs.openicon()/closeicon() // These can be replaced via prefs.openicon()/closeicon()
// //
static const char *L_open_xpm[] = { static const char *L_open_xpm[] = {
#ifdef __APPLE__
"11 11 2 1",
". c None",
"@ c #000000",
"...@.......",
"...@@......",
"...@@@.....",
"...@@@@....",
"...@@@@@...",
"...@@@@@@..",
"...@@@@@...",
"...@@@@....",
"...@@@.....",
"...@@......",
"...@......."
#else
"11 11 3 1", "11 11 3 1",
". c #fefefe", ". c #fefefe",
"# c #444444", "# c #444444",
@ -48,10 +64,28 @@ static const char *L_open_xpm[] = {
"#....@....#", "#....@....#",
"#.........#", "#.........#",
"#.........#", "#.........#",
"###########"}; "###########"
#endif
};
static Fl_Pixmap L_openpixmap(L_open_xpm); static Fl_Pixmap L_openpixmap(L_open_xpm);
static const char *L_close_xpm[] = { static const char *L_close_xpm[] = {
#ifdef __APPLE__
"11 11 2 1",
". c None",
"@ c #000000",
"...........",
"...........",
"...........",
"...........",
"...........",
"@@@@@@@@@@@",
".@@@@@@@@@.",
"..@@@@@@@..",
"...@@@@@...",
"....@@@....",
".....@....."
#else
"11 11 3 1", "11 11 3 1",
". c #fefefe", ". c #fefefe",
"# c #444444", "# c #444444",
@ -66,7 +100,9 @@ static const char *L_close_xpm[] = {
"#.........#", "#.........#",
"#.........#", "#.........#",
"#.........#", "#.........#",
"###########"}; "###########"
#endif
};
static Fl_Pixmap L_closepixmap(L_close_xpm); static Fl_Pixmap L_closepixmap(L_close_xpm);
/// Sets the default icon to be used as the 'open' icon /// Sets the default icon to be used as the 'open' icon
@ -105,7 +141,11 @@ Fl_Tree_Prefs::Fl_Tree_Prefs() {
_selectcolor = FL_DARK_BLUE; _selectcolor = FL_DARK_BLUE;
_inactivecolor = FL_GRAY; _inactivecolor = FL_GRAY;
_connectorcolor = Fl_Color(43); _connectorcolor = Fl_Color(43);
#ifdef __APPLE__
_connectorstyle = FL_TREE_CONNECTOR_NONE;
#else
_connectorstyle = FL_TREE_CONNECTOR_DOTTED; _connectorstyle = FL_TREE_CONNECTOR_DOTTED;
#endif
_openimage = &L_openpixmap; _openimage = &L_openpixmap;
_closeimage = &L_closepixmap; _closeimage = &L_closepixmap;
_userimage = 0; _userimage = 0;

View File

@ -92,7 +92,7 @@ const char *default_menu[] = {
"@e:Block\\nAttack!:blocks\n", "@e:Block\\nAttack!:blocks\n",
"@e:Checkers:checkers\n", "@e:Checkers:checkers\n",
"@e:Sudoku:sudoku\n", "@e:Sudoku:sudoku\n",
"@e:Print\nsupport:device\n", "@e:Print\\nsupport:device\n",
"\n", "\n",
"@main:Other\\nTests:@o\n", "@main:Other\\nTests:@o\n",
"@o:Color Choosers:color_chooser\n", "@o:Color Choosers:color_chooser\n",

View File

@ -218,6 +218,23 @@ Fl_Choice *collapseicons_chooser=(Fl_Choice *)0;
static void cb_collapseicons_chooser(Fl_Choice*, void*) { static void cb_collapseicons_chooser(Fl_Choice*, void*) {
static const char *L_open_xpm[] = { static const char *L_open_xpm[] = {
#ifdef __APPLE__
"11 11 3 1",
". c #fefefe",
"# c #444444",
"@ c #000000",
"###########",
"#.........#",
"#.........#",
"#....@....#",
"#....@....#",
"#..@@@@@..#",
"#....@....#",
"#....@....#",
"#.........#",
"#.........#",
"###########"
#else
"11 11 2 1", "11 11 2 1",
". c None", ". c None",
"@ c #000000", "@ c #000000",
@ -231,10 +248,29 @@ static void cb_collapseicons_chooser(Fl_Choice*, void*) {
"...@@@@....", "...@@@@....",
"...@@@.....", "...@@@.....",
"...@@......", "...@@......",
"...@......."}; "...@......."
#endif
};
static Fl_Pixmap L_openpixmap(L_open_xpm); static Fl_Pixmap L_openpixmap(L_open_xpm);
static const char *L_close_xpm[] = { static const char *L_close_xpm[] = {
#ifdef __APPLE__
"11 11 3 1",
". c #fefefe",
"# c #444444",
"@ c #000000",
"###########",
"#.........#",
"#.........#",
"#.........#",
"#.........#",
"#..@@@@@..#",
"#.........#",
"#.........#",
"#.........#",
"#.........#",
"###########"
#else
"11 11 2 1", "11 11 2 1",
". c None", ". c None",
"@ c #000000", "@ c #000000",
@ -248,7 +284,9 @@ static const char *L_close_xpm[] = {
"..@@@@@@@..", "..@@@@@@@..",
"...@@@@@...", "...@@@@@...",
"....@@@....", "....@@@....",
".....@....."}; ".....@....."
#endif
};
static Fl_Pixmap L_closepixmap(L_close_xpm); static Fl_Pixmap L_closepixmap(L_close_xpm);
switch ( collapseicons_chooser->value() ) { switch ( collapseicons_chooser->value() ) {
@ -270,7 +308,7 @@ switch ( collapseicons_chooser->value() ) {
Fl_Menu_Item menu_collapseicons_chooser[] = { Fl_Menu_Item menu_collapseicons_chooser[] = {
{"Normal", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0}, {"Normal", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{"Arrow", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0}, {"Custom", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{"Off", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0}, {"Off", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{0,0,0,0,0,0,0,0,0} {0,0,0,0,0,0,0,0,0}
}; };
@ -519,6 +557,18 @@ static void cb_clearall_button(Fl_Button*, void*) {
tree->redraw(); tree->redraw();
} }
Fl_Button *loaddb_button=(Fl_Button *)0;
static void cb_loaddb_button(Fl_Button*, void*) {
const char *filename = fl_file_chooser("Select a Preferences style Databse", "Preferences(*.prefs)", 0L);
if (filename) {
tree->clear();
Fl_Preferences prefs(filename, 0L, 0L);
tree->load(prefs);
tree->redraw();
};
}
int main(int argc, char **argv) { int main(int argc, char **argv) {
{ window = new Fl_Double_Window(580, 695, "tree"); { window = new Fl_Double_Window(580, 695, "tree");
{ tree = new Fl_Tree(15, 15, 550, 390); { tree = new Fl_Tree(15, 15, 550, 390);
@ -538,7 +588,6 @@ int main(int argc, char **argv) {
margintop_slider->tooltip("Changes the top margin for the tree widget"); margintop_slider->tooltip("Changes the top margin for the tree widget");
margintop_slider->type(1); margintop_slider->type(1);
margintop_slider->labelsize(12); margintop_slider->labelsize(12);
margintop_slider->step(0.01);
margintop_slider->textsize(12); margintop_slider->textsize(12);
margintop_slider->callback((Fl_Callback*)cb_margintop_slider, (void*)(tree)); margintop_slider->callback((Fl_Callback*)cb_margintop_slider, (void*)(tree));
margintop_slider->align(Fl_Align(FL_ALIGN_LEFT)); margintop_slider->align(Fl_Align(FL_ALIGN_LEFT));
@ -551,7 +600,6 @@ int main(int argc, char **argv) {
marginleft_slider->tooltip("Changes the left margin for the tree widget"); marginleft_slider->tooltip("Changes the left margin for the tree widget");
marginleft_slider->type(1); marginleft_slider->type(1);
marginleft_slider->labelsize(12); marginleft_slider->labelsize(12);
marginleft_slider->step(0.01);
marginleft_slider->textsize(12); marginleft_slider->textsize(12);
marginleft_slider->callback((Fl_Callback*)cb_marginleft_slider, (void*)(tree)); marginleft_slider->callback((Fl_Callback*)cb_marginleft_slider, (void*)(tree));
marginleft_slider->align(Fl_Align(FL_ALIGN_LEFT)); marginleft_slider->align(Fl_Align(FL_ALIGN_LEFT));
@ -564,7 +612,6 @@ int main(int argc, char **argv) {
openchild_marginbottom_slider->tooltip("Changes the vertical space below an open child tree"); openchild_marginbottom_slider->tooltip("Changes the vertical space below an open child tree");
openchild_marginbottom_slider->type(1); openchild_marginbottom_slider->type(1);
openchild_marginbottom_slider->labelsize(12); openchild_marginbottom_slider->labelsize(12);
openchild_marginbottom_slider->step(0.01);
openchild_marginbottom_slider->textsize(12); openchild_marginbottom_slider->textsize(12);
openchild_marginbottom_slider->callback((Fl_Callback*)cb_openchild_marginbottom_slider, (void*)(tree)); openchild_marginbottom_slider->callback((Fl_Callback*)cb_openchild_marginbottom_slider, (void*)(tree));
openchild_marginbottom_slider->align(Fl_Align(FL_ALIGN_LEFT)); openchild_marginbottom_slider->align(Fl_Align(FL_ALIGN_LEFT));
@ -578,7 +625,6 @@ int main(int argc, char **argv) {
d"); d");
labelsize_slider->type(1); labelsize_slider->type(1);
labelsize_slider->labelsize(12); labelsize_slider->labelsize(12);
labelsize_slider->step(0.01);
labelsize_slider->textsize(12); labelsize_slider->textsize(12);
labelsize_slider->callback((Fl_Callback*)cb_labelsize_slider, (void*)(tree)); labelsize_slider->callback((Fl_Callback*)cb_labelsize_slider, (void*)(tree));
labelsize_slider->align(Fl_Align(FL_ALIGN_LEFT)); labelsize_slider->align(Fl_Align(FL_ALIGN_LEFT));
@ -591,29 +637,28 @@ d");
connectorwidth_slider->tooltip("Tests Fl_Tree::connectorwidth()"); connectorwidth_slider->tooltip("Tests Fl_Tree::connectorwidth()");
connectorwidth_slider->type(1); connectorwidth_slider->type(1);
connectorwidth_slider->labelsize(12); connectorwidth_slider->labelsize(12);
connectorwidth_slider->step(0.01);
connectorwidth_slider->textsize(12); connectorwidth_slider->textsize(12);
connectorwidth_slider->callback((Fl_Callback*)cb_connectorwidth_slider, (void*)(tree)); connectorwidth_slider->callback((Fl_Callback*)cb_connectorwidth_slider, (void*)(tree));
connectorwidth_slider->align(Fl_Align(FL_ALIGN_LEFT)); connectorwidth_slider->align(Fl_Align(FL_ALIGN_LEFT));
o->value(tree->connectorwidth()); o->value(tree->connectorwidth());
o->range(10.0, 100.0); o->range(1.0, 100.0);
o->step(1.0); o->step(1.0);
o->color(46); o->selection_color(FL_RED); o->color(46); o->selection_color(FL_RED);
} // Fl_Value_Slider* connectorwidth_slider } // Fl_Value_Slider* connectorwidth_slider
{ usericon_radio = new Fl_Check_Button(145, 520, 130, 16, "Enable user icons?"); { usericon_radio = new Fl_Check_Button(145, 525, 130, 16, "Enable user icons?");
usericon_radio->tooltip("Tests Fl_Tree_Item::usericon()"); usericon_radio->tooltip("Tests Fl_Tree_Item::usericon()");
usericon_radio->down_box(FL_DOWN_BOX); usericon_radio->down_box(FL_DOWN_BOX);
usericon_radio->labelsize(11); usericon_radio->labelsize(11);
usericon_radio->callback((Fl_Callback*)cb_usericon_radio, (void*)(tree)); usericon_radio->callback((Fl_Callback*)cb_usericon_radio, (void*)(tree));
} // Fl_Check_Button* usericon_radio } // Fl_Check_Button* usericon_radio
{ showroot_radio = new Fl_Check_Button(145, 539, 130, 16, "Show root?"); { showroot_radio = new Fl_Check_Button(145, 544, 130, 16, "Show root?");
showroot_radio->tooltip("Tests Fl_Tree_Item::usericon()"); showroot_radio->tooltip("Tests Fl_Tree_Item::usericon()");
showroot_radio->down_box(FL_DOWN_BOX); showroot_radio->down_box(FL_DOWN_BOX);
showroot_radio->labelsize(11); showroot_radio->labelsize(11);
showroot_radio->callback((Fl_Callback*)cb_showroot_radio, (void*)(tree)); showroot_radio->callback((Fl_Callback*)cb_showroot_radio, (void*)(tree));
int onoff = tree->showroot(); showroot_radio->value(onoff); int onoff = tree->showroot(); showroot_radio->value(onoff);
} // Fl_Check_Button* showroot_radio } // Fl_Check_Button* showroot_radio
{ collapseicons_chooser = new Fl_Choice(145, 564, 110, 16, "Collapse icons"); { collapseicons_chooser = new Fl_Choice(145, 572, 110, 16, "Collapse icons");
collapseicons_chooser->tooltip("Tests Fl_Tree::openicon() and Fl_Tree::closeicon()"); collapseicons_chooser->tooltip("Tests Fl_Tree::openicon() and Fl_Tree::closeicon()");
collapseicons_chooser->down_box(FL_BORDER_BOX); collapseicons_chooser->down_box(FL_BORDER_BOX);
collapseicons_chooser->labelsize(11); collapseicons_chooser->labelsize(11);
@ -621,16 +666,16 @@ d");
collapseicons_chooser->callback((Fl_Callback*)cb_collapseicons_chooser); collapseicons_chooser->callback((Fl_Callback*)cb_collapseicons_chooser);
collapseicons_chooser->menu(menu_collapseicons_chooser); collapseicons_chooser->menu(menu_collapseicons_chooser);
} // Fl_Choice* collapseicons_chooser } // Fl_Choice* collapseicons_chooser
{ connectorstyle_chooser = new Fl_Choice(145, 584, 110, 16, "Line style"); { connectorstyle_chooser = new Fl_Choice(145, 592, 110, 16, "Line style");
connectorstyle_chooser->tooltip("Tests connectorstyle() bit flags"); connectorstyle_chooser->tooltip("Tests connectorstyle() bit flags");
connectorstyle_chooser->down_box(FL_BORDER_BOX); connectorstyle_chooser->down_box(FL_BORDER_BOX);
connectorstyle_chooser->labelsize(11); connectorstyle_chooser->labelsize(11);
connectorstyle_chooser->textsize(11); connectorstyle_chooser->textsize(11);
connectorstyle_chooser->callback((Fl_Callback*)cb_connectorstyle_chooser); connectorstyle_chooser->callback((Fl_Callback*)cb_connectorstyle_chooser);
connectorstyle_chooser->menu(menu_connectorstyle_chooser); connectorstyle_chooser->menu(menu_connectorstyle_chooser);
connectorstyle_chooser->value(1); // tree's default is 'dotted' switch (tree->connectorstyle()) { case FL_TREE_CONNECTOR_NONE: connectorstyle_chooser->value(0); break; case FL_TREE_CONNECTOR_DOTTED: connectorstyle_chooser->value(1); break; case FL_TREE_CONNECTOR_SOLID: connectorstyle_chooser->value(2); break; }
} // Fl_Choice* connectorstyle_chooser } // Fl_Choice* connectorstyle_chooser
{ labelcolor_chooser = new Fl_Choice(145, 604, 110, 16, "Item Text Color"); { labelcolor_chooser = new Fl_Choice(145, 612, 110, 16, "Item Text Color");
labelcolor_chooser->tooltip("Changes the label color for the selected items\nIf no items selected, all are\ labelcolor_chooser->tooltip("Changes the label color for the selected items\nIf no items selected, all are\
changed"); changed");
labelcolor_chooser->down_box(FL_BORDER_BOX); labelcolor_chooser->down_box(FL_BORDER_BOX);
@ -639,7 +684,7 @@ d");
labelcolor_chooser->callback((Fl_Callback*)cb_labelcolor_chooser); labelcolor_chooser->callback((Fl_Callback*)cb_labelcolor_chooser);
labelcolor_chooser->menu(menu_labelcolor_chooser); labelcolor_chooser->menu(menu_labelcolor_chooser);
} // Fl_Choice* labelcolor_chooser } // Fl_Choice* labelcolor_chooser
{ selectmode_chooser = new Fl_Choice(145, 624, 110, 16, "Selection Mode"); { selectmode_chooser = new Fl_Choice(145, 632, 110, 16, "Selection Mode");
selectmode_chooser->tooltip("Sets how Fl_Tree handles mouse selection of tree items"); selectmode_chooser->tooltip("Sets how Fl_Tree handles mouse selection of tree items");
selectmode_chooser->down_box(FL_BORDER_BOX); selectmode_chooser->down_box(FL_BORDER_BOX);
selectmode_chooser->labelsize(11); selectmode_chooser->labelsize(11);
@ -649,7 +694,7 @@ d");
selectmode_chooser->value(1); selectmode_chooser->value(1);
cb_selectmode_chooser(selectmode_chooser, (void*)0); cb_selectmode_chooser(selectmode_chooser, (void*)0);
} // Fl_Choice* selectmode_chooser } // Fl_Choice* selectmode_chooser
{ whenmode_chooser = new Fl_Choice(145, 644, 110, 16, "When"); { whenmode_chooser = new Fl_Choice(145, 652, 110, 16, "When");
whenmode_chooser->tooltip("Sets when() the tree\'s callback is invoked"); whenmode_chooser->tooltip("Sets when() the tree\'s callback is invoked");
whenmode_chooser->down_box(FL_BORDER_BOX); whenmode_chooser->down_box(FL_BORDER_BOX);
whenmode_chooser->labelsize(11); whenmode_chooser->labelsize(11);
@ -688,37 +733,42 @@ d");
bbbchild02select_toggle->labelsize(11); bbbchild02select_toggle->labelsize(11);
bbbchild02select_toggle->callback((Fl_Callback*)cb_bbbchild02select_toggle); bbbchild02select_toggle->callback((Fl_Callback*)cb_bbbchild02select_toggle);
} // Fl_Light_Button* bbbchild02select_toggle } // Fl_Light_Button* bbbchild02select_toggle
{ deactivate_toggle = new Fl_Light_Button(280, 625, 90, 16, " Deactivate"); { deactivate_toggle = new Fl_Light_Button(280, 633, 90, 16, " Deactivate");
deactivate_toggle->tooltip("Toggle the deactivation state of the selected items.\nIf none are selected, a\ deactivate_toggle->tooltip("Toggle the deactivation state of the selected items.\nIf none are selected, a\
ll are set."); ll are set.");
deactivate_toggle->labelsize(11); deactivate_toggle->labelsize(11);
deactivate_toggle->callback((Fl_Callback*)cb_deactivate_toggle); deactivate_toggle->callback((Fl_Callback*)cb_deactivate_toggle);
} // Fl_Light_Button* deactivate_toggle } // Fl_Light_Button* deactivate_toggle
{ bold_toggle = new Fl_Light_Button(280, 644, 90, 16, " Bold Font"); { bold_toggle = new Fl_Light_Button(280, 652, 90, 16, " Bold Font");
bold_toggle->tooltip("Toggles bold font for selected items\nIf nothing selected, all are changed"); bold_toggle->tooltip("Toggles bold font for selected items\nIf nothing selected, all are changed");
bold_toggle->labelsize(11); bold_toggle->labelsize(11);
bold_toggle->callback((Fl_Callback*)cb_bold_toggle); bold_toggle->callback((Fl_Callback*)cb_bold_toggle);
} // Fl_Light_Button* bold_toggle } // Fl_Light_Button* bold_toggle
{ insertabove_button = new Fl_Button(380, 624, 90, 16, "Insert Above"); { insertabove_button = new Fl_Button(380, 632, 90, 16, "Insert Above");
insertabove_button->tooltip("Inserts three items above the selected items"); insertabove_button->tooltip("Inserts three items above the selected items");
insertabove_button->labelsize(11); insertabove_button->labelsize(11);
insertabove_button->callback((Fl_Callback*)cb_insertabove_button); insertabove_button->callback((Fl_Callback*)cb_insertabove_button);
} // Fl_Button* insertabove_button } // Fl_Button* insertabove_button
{ rebuildtree_button = new Fl_Button(380, 644, 90, 16, "Rebuild Tree"); { rebuildtree_button = new Fl_Button(380, 652, 90, 16, "Rebuild Tree");
rebuildtree_button->tooltip("Rebuilds the tree with defaults"); rebuildtree_button->tooltip("Rebuilds the tree with defaults");
rebuildtree_button->labelsize(11); rebuildtree_button->labelsize(11);
rebuildtree_button->callback((Fl_Callback*)cb_rebuildtree_button); rebuildtree_button->callback((Fl_Callback*)cb_rebuildtree_button);
} // Fl_Button* rebuildtree_button } // Fl_Button* rebuildtree_button
{ clearselected_button = new Fl_Button(475, 624, 90, 16, "Clear Selected"); { clearselected_button = new Fl_Button(475, 632, 90, 16, "Clear Selected");
clearselected_button->tooltip("Clears the selected items"); clearselected_button->tooltip("Clears the selected items");
clearselected_button->labelsize(11); clearselected_button->labelsize(11);
clearselected_button->callback((Fl_Callback*)cb_clearselected_button); clearselected_button->callback((Fl_Callback*)cb_clearselected_button);
} // Fl_Button* clearselected_button } // Fl_Button* clearselected_button
{ clearall_button = new Fl_Button(475, 644, 90, 16, "Clear All"); { clearall_button = new Fl_Button(475, 652, 90, 16, "Clear All");
clearall_button->tooltip("Clears all items\nTests Fl_Tree::clear()"); clearall_button->tooltip("Clears all items\nTests Fl_Tree::clear()");
clearall_button->labelsize(11); clearall_button->labelsize(11);
clearall_button->callback((Fl_Callback*)cb_clearall_button); clearall_button->callback((Fl_Callback*)cb_clearall_button);
} // Fl_Button* clearall_button } // Fl_Button* clearall_button
{ loaddb_button = new Fl_Button(380, 612, 90, 16, "Load Database...");
loaddb_button->tooltip("Load the contents of an Fl_Preferences databse into the tree view");
loaddb_button->labelsize(11);
loaddb_button->callback((Fl_Callback*)cb_loaddb_button);
} // Fl_Button* loaddb_button
window->end(); window->end();
} // Fl_Double_Window* window } // Fl_Double_Window* window
// Initialize Tree // Initialize Tree

View File

@ -20,7 +20,13 @@ decl {\#include <FL/Fl_Tree.H>} {public global
decl {\#include <FL/fl_ask.H>} {public global decl {\#include <FL/fl_ask.H>} {public global
} }
Function {Button_CB(Fl_Widget*w, void*data)} {open return_type void decl {\#include <FL/Fl_File_Chooser.H>} {selected public global
}
decl {\#include <FL/Fl_Preferences.H>} {public global
}
Function {Button_CB(Fl_Widget*w, void*data)} {return_type void
} { } {
code {fprintf(stderr, "'%s' button pushed\\n", w->label());} {} code {fprintf(stderr, "'%s' button pushed\\n", w->label());} {}
} }
@ -109,7 +115,7 @@ Function {} {open
} { } {
Fl_Window window { Fl_Window window {
label tree open label tree open
xywh {1105 30 580 695} type Double visible xywh {1105 44 580 695} type Double visible
} { } {
Fl_Group tree { Fl_Group tree {
user_data 1234 user_data 1234
@ -130,7 +136,7 @@ if ( item ) {
callback {int val = (int)margintop_slider->value(); callback {int val = (int)margintop_slider->value();
tree->margintop(val); tree->margintop(val);
tree->redraw();} tree->redraw();}
tooltip {Changes the top margin for the tree widget} xywh {190 414 240 16} type Horizontal labelsize 12 align 4 step 0.01 textsize 12 tooltip {Changes the top margin for the tree widget} xywh {190 414 240 16} type Horizontal labelsize 12 align 4 textsize 12
code0 {o->value(tree->margintop());} code0 {o->value(tree->margintop());}
code1 {o->range(0.0, 100.0);} code1 {o->range(0.0, 100.0);}
code2 {o->step(1.0);} code2 {o->step(1.0);}
@ -142,7 +148,7 @@ tree->redraw();}
callback {int val = (int)marginleft_slider->value(); callback {int val = (int)marginleft_slider->value();
tree->marginleft(val); tree->marginleft(val);
tree->redraw();} tree->redraw();}
tooltip {Changes the left margin for the tree widget} xywh {190 434 240 16} type Horizontal labelsize 12 align 4 step 0.01 textsize 12 tooltip {Changes the left margin for the tree widget} xywh {190 434 240 16} type Horizontal labelsize 12 align 4 textsize 12
code0 {o->value(tree->marginleft());} code0 {o->value(tree->marginleft());}
code1 {o->range(0.0, 100.0);} code1 {o->range(0.0, 100.0);}
code2 {o->step(1.0);} code2 {o->step(1.0);}
@ -154,7 +160,7 @@ tree->redraw();}
callback {int val = (int)openchild_marginbottom_slider->value(); callback {int val = (int)openchild_marginbottom_slider->value();
tree->openchild_marginbottom(val); tree->openchild_marginbottom(val);
tree->redraw();} tree->redraw();}
tooltip {Changes the vertical space below an open child tree} xywh {190 454 240 16} type Horizontal labelsize 12 align 4 step 0.01 textsize 12 tooltip {Changes the vertical space below an open child tree} xywh {190 454 240 16} type Horizontal labelsize 12 align 4 textsize 12
code0 {o->value(tree->openchild_marginbottom());} code0 {o->value(tree->openchild_marginbottom());}
code1 {o->range(0.0, 100.0);} code1 {o->range(0.0, 100.0);}
code2 {o->step(1.0);} code2 {o->step(1.0);}
@ -183,7 +189,7 @@ if ( ! count ) {
tree->redraw();} tree->redraw();}
tooltip {Changes the font size of the selected items tooltip {Changes the font size of the selected items
If none selected, all are changed} xywh {190 474 240 16} type Horizontal labelsize 12 align 4 step 0.01 textsize 12 If none selected, all are changed} xywh {190 474 240 16} type Horizontal labelsize 12 align 4 textsize 12
code0 {o->value(tree->labelsize());} code0 {o->value(tree->labelsize());}
code1 {o->range(5.0, 200.0);} code1 {o->range(5.0, 200.0);}
code2 {o->step(1.0);} code2 {o->step(1.0);}
@ -193,9 +199,9 @@ If none selected, all are changed} xywh {190 474 240 16} type Horizontal labelsi
label {Connector width} label {Connector width}
user_data tree user_data tree
callback {tree->connectorwidth((int)connectorwidth_slider->value());} callback {tree->connectorwidth((int)connectorwidth_slider->value());}
tooltip {Tests Fl_Tree::connectorwidth()} xywh {190 494 240 16} type Horizontal labelsize 12 align 4 step 0.01 textsize 12 tooltip {Tests Fl_Tree::connectorwidth()} xywh {190 494 240 16} type Horizontal labelsize 12 align 4 textsize 12
code0 {o->value(tree->connectorwidth());} code0 {o->value(tree->connectorwidth());}
code1 {o->range(10.0, 100.0);} code1 {o->range(1.0, 100.0);}
code2 {o->step(1.0);} code2 {o->step(1.0);}
code3 {o->color(46); o->selection_color(FL_RED);} code3 {o->color(46); o->selection_color(FL_RED);}
} }
@ -250,19 +256,36 @@ if ( usericon_radio->value() ) {
if ( ( i = tree->find_item("Bbb/bgb/222") ) != NULL ) i->usericon(0); if ( ( i = tree->find_item("Bbb/bgb/222") ) != NULL ) i->usericon(0);
if ( ( i = tree->find_item("Bbb/bgb/333") ) != NULL ) i->usericon(0); if ( ( i = tree->find_item("Bbb/bgb/333") ) != NULL ) i->usericon(0);
}} }}
tooltip {Tests Fl_Tree_Item::usericon()} xywh {145 520 130 16} down_box DOWN_BOX labelsize 11 tooltip {Tests Fl_Tree_Item::usericon()} xywh {145 525 130 16} down_box DOWN_BOX labelsize 11
} }
Fl_Check_Button showroot_radio { Fl_Check_Button showroot_radio {
label {Show root?} label {Show root?}
user_data tree user_data tree
callback {int onoff = showroot_radio->value(); callback {int onoff = showroot_radio->value();
tree->showroot(onoff);} tree->showroot(onoff);}
tooltip {Tests Fl_Tree_Item::usericon()} xywh {145 539 130 16} down_box DOWN_BOX labelsize 11 tooltip {Tests Fl_Tree_Item::usericon()} xywh {145 544 130 16} down_box DOWN_BOX labelsize 11
code0 {int onoff = tree->showroot(); showroot_radio->value(onoff);} code0 {int onoff = tree->showroot(); showroot_radio->value(onoff);}
} }
Fl_Choice collapseicons_chooser { Fl_Choice collapseicons_chooser {
label {Collapse icons} label {Collapse icons}
callback {static const char *L_open_xpm[] = { callback {static const char *L_open_xpm[] = {
\#ifdef __APPLE__
"11 11 3 1",
". c \#fefefe",
"\# c \#444444",
"@ c \#000000",
"\#\#\#\#\#\#\#\#\#\#\#",
"\#.........\#",
"\#.........\#",
"\#....@....\#",
"\#....@....\#",
"\#..@@@@@..\#",
"\#....@....\#",
"\#....@....\#",
"\#.........\#",
"\#.........\#",
"\#\#\#\#\#\#\#\#\#\#\#"
\#else
"11 11 2 1", "11 11 2 1",
". c None", ". c None",
"@ c \#000000", "@ c \#000000",
@ -276,10 +299,29 @@ tree->showroot(onoff);}
"...@@@@....", "...@@@@....",
"...@@@.....", "...@@@.....",
"...@@......", "...@@......",
"...@......."}; "...@......."
\#endif
};
static Fl_Pixmap L_openpixmap(L_open_xpm); static Fl_Pixmap L_openpixmap(L_open_xpm);
static const char *L_close_xpm[] = { static const char *L_close_xpm[] = {
\#ifdef __APPLE__
"11 11 3 1",
". c \#fefefe",
"\# c \#444444",
"@ c \#000000",
"\#\#\#\#\#\#\#\#\#\#\#",
"\#.........\#",
"\#.........\#",
"\#.........\#",
"\#.........\#",
"\#..@@@@@..\#",
"\#.........\#",
"\#.........\#",
"\#.........\#",
"\#.........\#",
"\#\#\#\#\#\#\#\#\#\#\#"
\#else
"11 11 2 1", "11 11 2 1",
". c None", ". c None",
"@ c \#000000", "@ c \#000000",
@ -293,7 +335,9 @@ static const char *L_close_xpm[] = {
"..@@@@@@@..", "..@@@@@@@..",
"...@@@@@...", "...@@@@@...",
"....@@@....", "....@@@....",
".....@....."}; ".....@....."
\#endif
};
static Fl_Pixmap L_closepixmap(L_close_xpm); static Fl_Pixmap L_closepixmap(L_close_xpm);
switch ( collapseicons_chooser->value() ) { switch ( collapseicons_chooser->value() ) {
@ -311,14 +355,14 @@ switch ( collapseicons_chooser->value() ) {
tree->showcollapse(0); tree->showcollapse(0);
break; break;
}} open }} open
tooltip {Tests Fl_Tree::openicon() and Fl_Tree::closeicon()} xywh {145 564 110 16} down_box BORDER_BOX labelsize 11 textsize 11 tooltip {Tests Fl_Tree::openicon() and Fl_Tree::closeicon()} xywh {145 572 110 16} down_box BORDER_BOX labelsize 11 textsize 11
} { } {
MenuItem {} { MenuItem {} {
label Normal label Normal
xywh {0 0 36 21} labelsize 11 xywh {0 0 36 21} labelsize 11
} }
MenuItem {} { MenuItem {} {
label Arrow label Custom
xywh {10 10 36 21} labelsize 11 xywh {10 10 36 21} labelsize 11
} }
MenuItem {} { MenuItem {} {
@ -334,8 +378,8 @@ switch ( connectorstyle_chooser->value() ) {
case 1: tree->connectorstyle(FL_TREE_CONNECTOR_DOTTED); break; case 1: tree->connectorstyle(FL_TREE_CONNECTOR_DOTTED); break;
case 2: tree->connectorstyle(FL_TREE_CONNECTOR_SOLID); break; case 2: tree->connectorstyle(FL_TREE_CONNECTOR_SOLID); break;
}} open }} open
tooltip {Tests connectorstyle() bit flags} xywh {145 584 110 16} down_box BORDER_BOX labelsize 11 textsize 11 tooltip {Tests connectorstyle() bit flags} xywh {145 592 110 16} down_box BORDER_BOX labelsize 11 textsize 11
code0 {connectorstyle_chooser->value(1); // tree's default is 'dotted'} code0 {switch (tree->connectorstyle()) { case FL_TREE_CONNECTOR_NONE: connectorstyle_chooser->value(0); break; case FL_TREE_CONNECTOR_DOTTED: connectorstyle_chooser->value(1); break; case FL_TREE_CONNECTOR_SOLID: connectorstyle_chooser->value(2); break; }}
} { } {
MenuItem {} { MenuItem {} {
label None label None
@ -380,7 +424,7 @@ if ( ! count ) {
tree->redraw();} open tree->redraw();} open
tooltip {Changes the label color for the selected items tooltip {Changes the label color for the selected items
If no items selected, all are changed} xywh {145 604 110 16} down_box BORDER_BOX labelsize 11 textsize 11 If no items selected, all are changed} xywh {145 612 110 16} down_box BORDER_BOX labelsize 11 textsize 11
} { } {
MenuItem {} { MenuItem {} {
label Black label Black
@ -408,7 +452,7 @@ switch ( selectmode_chooser->value() ) {
case 2: tree->selectmode(FL_TREE_SELECT_MULTI); break; // Multi case 2: tree->selectmode(FL_TREE_SELECT_MULTI); break; // Multi
default: tree->selectmode(FL_TREE_SELECT_SINGLE); break; // Single default: tree->selectmode(FL_TREE_SELECT_SINGLE); break; // Single
}} }}
tooltip {Sets how Fl_Tree handles mouse selection of tree items} xywh {145 624 110 16} down_box BORDER_BOX labelsize 11 textsize 11 tooltip {Sets how Fl_Tree handles mouse selection of tree items} xywh {145 632 110 16} down_box BORDER_BOX labelsize 11 textsize 11
code0 {selectmode_chooser->value(1);} code0 {selectmode_chooser->value(1);}
code1 {cb_selectmode_chooser(selectmode_chooser, (void*)0);} code1 {cb_selectmode_chooser(selectmode_chooser, (void*)0);}
} { } {
@ -434,7 +478,7 @@ switch ( whenmode_chooser->value() ) {
case 2: tree->when(FL_WHEN_NEVER); break; case 2: tree->when(FL_WHEN_NEVER); break;
default: tree->when(FL_WHEN_RELEASE); break; default: tree->when(FL_WHEN_RELEASE); break;
}} }}
tooltip {Sets when() the tree's callback is invoked} xywh {145 644 110 16} down_box BORDER_BOX labelsize 11 textsize 11 tooltip {Sets when() the tree's callback is invoked} xywh {145 652 110 16} down_box BORDER_BOX labelsize 11 textsize 11
code0 {whenmode_chooser->value(1);} code0 {whenmode_chooser->value(1);}
code1 {cb_whenmode_chooser(whenmode_chooser, (void*)0);} code1 {cb_whenmode_chooser(whenmode_chooser, (void*)0);}
} { } {
@ -527,7 +571,7 @@ if ( count == 0 ) {
tree->redraw();} tree->redraw();}
tooltip {Toggle the deactivation state of the selected items. tooltip {Toggle the deactivation state of the selected items.
If none are selected, all are set.} xywh {280 625 90 16} labelsize 11 If none are selected, all are set.} xywh {280 633 90 16} labelsize 11
} }
Fl_Light_Button bold_toggle { Fl_Light_Button bold_toggle {
label { Bold Font} label { Bold Font}
@ -551,7 +595,7 @@ if ( ! count ) {
tree->redraw();} tree->redraw();}
tooltip {Toggles bold font for selected items tooltip {Toggles bold font for selected items
If nothing selected, all are changed} xywh {280 644 90 16} labelsize 11 If nothing selected, all are changed} xywh {280 652 90 16} labelsize 11
} }
Fl_Button insertabove_button { Fl_Button insertabove_button {
label {Insert Above} label {Insert Above}
@ -566,12 +610,12 @@ while (item) {
} }
tree->redraw();} tree->redraw();}
tooltip {Inserts three items above the selected items} xywh {380 624 90 16} labelsize 11 tooltip {Inserts three items above the selected items} xywh {380 632 90 16} labelsize 11
} }
Fl_Button rebuildtree_button { Fl_Button rebuildtree_button {
label {Rebuild Tree} label {Rebuild Tree}
callback {RebuildTree();} callback {RebuildTree();}
tooltip {Rebuilds the tree with defaults} xywh {380 644 90 16} labelsize 11 tooltip {Rebuilds the tree with defaults} xywh {380 652 90 16} labelsize 11
} }
Fl_Button clearselected_button { Fl_Button clearselected_button {
label {Clear Selected} label {Clear Selected}
@ -586,14 +630,25 @@ while (item) {
} }
tree->redraw();} tree->redraw();}
tooltip {Clears the selected items} xywh {475 624 90 16} labelsize 11 tooltip {Clears the selected items} xywh {475 632 90 16} labelsize 11
} }
Fl_Button clearall_button { Fl_Button clearall_button {
label {Clear All} label {Clear All}
callback {tree->clear(); callback {tree->clear();
tree->redraw();} selected tree->redraw();}
tooltip {Clears all items tooltip {Clears all items
Tests Fl_Tree::clear()} xywh {475 644 90 16} labelsize 11 Tests Fl_Tree::clear()} xywh {475 652 90 16} labelsize 11
}
Fl_Button loaddb_button {
label {Load Database...}
callback {const char *filename = fl_file_chooser("Select a Preferences style Databse", "Preferences(*.prefs)", 0L);
if (filename) {
tree->clear();
Fl_Preferences prefs(filename, 0L, 0L);
tree->load(prefs);
tree->redraw();
}}
tooltip {Load the contents of an Fl_Preferences databse into the tree view} xywh {380 612 90 16} labelsize 11
} }
} }
code {// Initialize Tree code {// Initialize Tree

View File

@ -9,6 +9,8 @@
#include <FL/Fl_Group.H> #include <FL/Fl_Group.H>
#include <FL/Fl_Tree.H> #include <FL/Fl_Tree.H>
#include <FL/fl_ask.H> #include <FL/fl_ask.H>
#include <FL/Fl_File_Chooser.H>
#include <FL/Fl_Preferences.H>
void Button_CB(Fl_Widget*w, void*data); void Button_CB(Fl_Widget*w, void*data);
void RebuildTree(); void RebuildTree();
#include <FL/Fl_Double_Window.H> #include <FL/Fl_Double_Window.H>
@ -44,6 +46,7 @@ extern Fl_Button *insertabove_button;
extern Fl_Button *rebuildtree_button; extern Fl_Button *rebuildtree_button;
extern Fl_Button *clearselected_button; extern Fl_Button *clearselected_button;
extern Fl_Button *clearall_button; extern Fl_Button *clearall_button;
extern Fl_Button *loaddb_button;
extern Fl_Menu_Item menu_collapseicons_chooser[]; extern Fl_Menu_Item menu_collapseicons_chooser[];
extern Fl_Menu_Item menu_connectorstyle_chooser[]; extern Fl_Menu_Item menu_connectorstyle_chooser[];
extern Fl_Menu_Item menu_labelcolor_chooser[]; extern Fl_Menu_Item menu_labelcolor_chooser[];