aboutsummaryrefslogtreecommitdiff
path: root/externals
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2002-12-02 19:36:35 +0000
committerThomas Grill <xovo@users.sourceforge.net>2002-12-02 19:36:35 +0000
commit1242ecdbfafd008263f0cca418c10dc1322ff21f (patch)
tree657a90e8d83af95f6fe876d2ec296603b08b26b7 /externals
parent9815096db22c73cacdbb65512d1b61d633db7fa8 (diff)
""
svn path=/trunk/; revision=268
Diffstat (limited to 'externals')
-rwxr-xr-xexternals/grill/flext/flext-PB/flext-PB.pbproj/project.pbxproj1718
-rwxr-xr-xexternals/grill/flext/flext-PB/flext-PB.pbproj/thomas.pbxuser1370
-rw-r--r--externals/grill/guitest/flgui.cpp646
-rw-r--r--externals/grill/guitest/flgui.h232
-rw-r--r--externals/grill/guitest/flguiobj.cpp801
-rw-r--r--externals/grill/guitest/flguiobj.h362
-rw-r--r--externals/grill/guitest/guitest.dsp112
-rw-r--r--externals/grill/guitest/main.cpp152
-rw-r--r--externals/grill/pool/pool.cpp25
-rwxr-xr-xexternals/grill/pool/pool.cwbin59193 -> 95908 bytes
-rwxr-xr-xexternals/grill/pool/pool.helpbin5345 -> 5347 bytes
-rw-r--r--externals/grill/py/scripts/sendrecv.py13
-rw-r--r--externals/grill/py/scripts/simple.py5
-rw-r--r--externals/grill/py/scripts/tcltk.py8
-rw-r--r--externals/grill/py/scripts/threads.py8
-rw-r--r--externals/grill/xsample/source/main.cpp7
16 files changed, 5432 insertions, 27 deletions
diff --git a/externals/grill/flext/flext-PB/flext-PB.pbproj/project.pbxproj b/externals/grill/flext/flext-PB/flext-PB.pbproj/project.pbxproj
new file mode 100755
index 00000000..8ce0d4c9
--- /dev/null
+++ b/externals/grill/flext/flext-PB/flext-PB.pbproj/project.pbxproj
@@ -0,0 +1,1718 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 38;
+ objects = {
+ 034768DDFF38A45A11DB9C8B = {
+ children = (
+ F55CEDC20383E6E401A80AC9,
+ F55CEE120383F55201A80AC9,
+ F55CEE2F0383F57A01A80AC9,
+ F55CEE4C0383F59B01A80AC9,
+ F5AAF632038683E801A80AC9,
+ F59A5FAD0386DF3201A80AC9,
+ );
+ isa = PBXGroup;
+ name = Products;
+ refType = 4;
+ };
+//030
+//031
+//032
+//033
+//034
+//080
+//081
+//082
+//083
+//084
+ 0867D690FE84028FC02AAC07 = {
+ buildStyles = (
+ F5128F2503864E5501A80AC9,
+ F5128F2603864E5501A80AC9,
+ );
+ isa = PBXProject;
+ mainGroup = 0867D691FE84028FC02AAC07;
+ productRefGroup = 034768DDFF38A45A11DB9C8B;
+ projectDirPath = "";
+ targets = (
+ F55CEE4E0383F97301A80AC9,
+ F55CEDC10383E6E401A80AC9,
+ F55CEDF60383F55201A80AC9,
+ F55CEE130383F57A01A80AC9,
+ F55CEE300383F59B01A80AC9,
+ F5AAF616038683E801A80AC9,
+ F59A5F910386DF3201A80AC9,
+ );
+ };
+ 0867D691FE84028FC02AAC07 = {
+ children = (
+ F55CEDB50383E50D01A80AC9,
+ 08FB77ACFE841707C02AAC07,
+ 089C1665FE841158C02AAC07,
+ 0867D69AFE84028FC02AAC07,
+ 034768DDFF38A45A11DB9C8B,
+ );
+ isa = PBXGroup;
+ name = "flext-PB";
+ refType = 4;
+ };
+ 0867D69AFE84028FC02AAC07 = {
+ children = (
+ 08FB77AAFE841565C02AAC07,
+ );
+ isa = PBXGroup;
+ name = "External Frameworks and Libraries";
+ refType = 4;
+ };
+ 089C1665FE841158C02AAC07 = {
+ children = (
+ 089C1666FE841158C02AAC07,
+ );
+ isa = PBXGroup;
+ name = Resources;
+ refType = 4;
+ };
+ 089C1666FE841158C02AAC07 = {
+ children = (
+ 089C1667FE841158C02AAC07,
+ );
+ isa = PBXVariantGroup;
+ name = InfoPlist.strings;
+ refType = 4;
+ };
+ 089C1667FE841158C02AAC07 = {
+ fileEncoding = 10;
+ isa = PBXFileReference;
+ name = English;
+ path = English.lproj/InfoPlist.strings;
+ refType = 4;
+ };
+ 08FB77AAFE841565C02AAC07 = {
+ isa = PBXFrameworkReference;
+ name = Carbon.framework;
+ path = /System/Library/Frameworks/Carbon.framework;
+ refType = 0;
+ };
+ 08FB77ACFE841707C02AAC07 = {
+ children = (
+ F55CED7B0383E50201A80AC9,
+ F55CED7C0383E50201A80AC9,
+ F55CED7D0383E50201A80AC9,
+ F55CED7E0383E50201A80AC9,
+ F55CED800383E50201A80AC9,
+ F55CED880383E50201A80AC9,
+ F55CED8A0383E50201A80AC9,
+ F55CED8D0383E50201A80AC9,
+ F55CED8F0383E50201A80AC9,
+ F55CED900383E50201A80AC9,
+ F55CED930383E50201A80AC9,
+ F55CED950383E50201A80AC9,
+ F55CED960383E50201A80AC9,
+ F55CED970383E50201A80AC9,
+ );
+ isa = PBXGroup;
+ name = Source;
+ refType = 4;
+ };
+//080
+//081
+//082
+//083
+//084
+//F50
+//F51
+//F52
+//F53
+//F54
+ F5128F2503864E5501A80AC9 = {
+ buildRules = (
+ );
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ };
+ isa = PBXBuildStyle;
+ name = Development;
+ };
+ F5128F2603864E5501A80AC9 = {
+ buildRules = (
+ );
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ };
+ isa = PBXBuildStyle;
+ name = Deployment;
+ };
+ F55CED7B0383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = "flatom-pr.cpp";
+ path = "../source/flatom-pr.cpp";
+ refType = 2;
+ };
+ F55CED7C0383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flatom.cpp;
+ path = ../source/flatom.cpp;
+ refType = 2;
+ };
+ F55CED7D0383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flattr.cpp;
+ path = ../source/flattr.cpp;
+ refType = 2;
+ };
+ F55CED7E0383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flbase.cpp;
+ path = ../source/flbase.cpp;
+ refType = 2;
+ };
+ F55CED7F0383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flbase.h;
+ path = /Volumes/Daten/Prog/max/flext/source/flbase.h;
+ refType = 0;
+ };
+ F55CED800383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flbuf.cpp;
+ path = ../source/flbuf.cpp;
+ refType = 2;
+ };
+ F55CED810383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flclass.h;
+ path = /Volumes/Daten/Prog/max/flext/source/flclass.h;
+ refType = 0;
+ };
+ F55CED860383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = fldefs.h;
+ path = /Volumes/Daten/Prog/max/flext/source/fldefs.h;
+ refType = 0;
+ };
+ F55CED870383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = fldoxygen.h;
+ path = /Volumes/Daten/Prog/max/flext/source/fldoxygen.h;
+ refType = 0;
+ };
+ F55CED880383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = fldsp.cpp;
+ path = ../source/fldsp.cpp;
+ refType = 2;
+ };
+ F55CED890383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = fldsp.h;
+ path = /Volumes/Daten/Prog/max/flext/source/fldsp.h;
+ refType = 0;
+ };
+ F55CED8A0383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flext.cpp;
+ path = ../source/flext.cpp;
+ refType = 2;
+ };
+ F55CED8B0383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flext.h;
+ path = /Volumes/Daten/Prog/max/flext/source/flext.h;
+ refType = 0;
+ };
+ F55CED8C0383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flinternal.h;
+ path = /Volumes/Daten/Prog/max/flext/source/flinternal.h;
+ refType = 0;
+ };
+ F55CED8D0383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = fllib.cpp;
+ path = ../source/fllib.cpp;
+ refType = 2;
+ };
+ F55CED8E0383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flmspbuffer.h;
+ path = /Volumes/Daten/Prog/max/flext/source/flmspbuffer.h;
+ refType = 0;
+ };
+ F55CED8F0383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flout.cpp;
+ path = ../source/flout.cpp;
+ refType = 2;
+ };
+ F55CED900383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flsndobj.cpp;
+ path = ../source/flsndobj.cpp;
+ refType = 2;
+ };
+ F55CED910383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flsndobj.h;
+ path = /Volumes/Daten/Prog/max/flext/source/flsndobj.h;
+ refType = 0;
+ };
+ F55CED920383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flstdc.h;
+ path = /Volumes/Daten/Prog/max/flext/source/flstdc.h;
+ refType = 0;
+ };
+ F55CED930383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flsupport.cpp;
+ path = ../source/flsupport.cpp;
+ refType = 2;
+ };
+ F55CED940383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flsupport.h;
+ path = /Volumes/Daten/Prog/max/flext/source/flsupport.h;
+ refType = 0;
+ };
+ F55CED950383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flthr.cpp;
+ path = ../source/flthr.cpp;
+ refType = 2;
+ };
+ F55CED960383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flutil.cpp;
+ path = ../source/flutil.cpp;
+ refType = 2;
+ };
+ F55CED970383E50201A80AC9 = {
+ isa = PBXFileReference;
+ name = flxlet.cpp;
+ path = ../source/flxlet.cpp;
+ refType = 2;
+ };
+ F55CEDB50383E50D01A80AC9 = {
+ children = (
+ F55CED7F0383E50201A80AC9,
+ F55CED810383E50201A80AC9,
+ F55CED860383E50201A80AC9,
+ F55CED870383E50201A80AC9,
+ F55CED890383E50201A80AC9,
+ F55CED8B0383E50201A80AC9,
+ F55CED8C0383E50201A80AC9,
+ F55CED8E0383E50201A80AC9,
+ F55CED910383E50201A80AC9,
+ F55CED920383E50201A80AC9,
+ F55CED940383E50201A80AC9,
+ );
+ isa = PBXGroup;
+ name = Headers;
+ refType = 4;
+ };
+ F55CEDBD0383E6E401A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ F55CEDD20383E79301A80AC9,
+ F55CEDD30383E79301A80AC9,
+ F55CEDD40383E79401A80AC9,
+ F55CEDD50383E79501A80AC9,
+ F55CEDD60383E79701A80AC9,
+ F55CEDD70383E79801A80AC9,
+ F55CEDD80383E79901A80AC9,
+ F55CEDD90383E79901A80AC9,
+ F55CEDDB0383E79B01A80AC9,
+ F55CEDDC0383E79B01A80AC9,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEDBE0383E6E401A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ F55CEDC40383E78701A80AC9,
+ F55CEDC50383E78701A80AC9,
+ F55CEDC60383E78801A80AC9,
+ F55CEDC70383E78901A80AC9,
+ F55CEDC80383E78A01A80AC9,
+ F55CEDC90383E78B01A80AC9,
+ F55CEDCA0383E78B01A80AC9,
+ F55CEDCB0383E78D01A80AC9,
+ F55CEDCC0383E78E01A80AC9,
+ F55CEDCE0383E78F01A80AC9,
+ F55CEDCF0383E79001A80AC9,
+ F55CEDD00383E79101A80AC9,
+ F55CEDD10383E79101A80AC9,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEDBF0383E6E401A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEDC00383E6E401A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEDC10383E6E401A80AC9 = {
+ buildPhases = (
+ F55CEDBD0383E6E401A80AC9,
+ F55CEDBE0383E6E401A80AC9,
+ F55CEDBF0383E6E401A80AC9,
+ F55CEDC00383E6E401A80AC9,
+ );
+ buildSettings = {
+ DEBUGGING_SYMBOLS = NO;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ HEADER_SEARCH_PATHS = /usr/local/pd/src;
+ INSTALL_PATH = /usr/local/pd/flext;
+ LIBRARY_STYLE = STATIC;
+ OPTIMIZATION_CFLAGS = "-O3";
+ OTHER_CFLAGS = "-D PD -D unix";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOL_FLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = flext.a;
+ REZ_EXECUTABLE = YES;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+ };
+ comments = "flext for PD running on OS X (darwin)\nsingle threaded performance version";
+ dependencies = (
+ );
+ isa = PBXLibraryTarget;
+ name = "PD@OSX single";
+ productInstallPath = /usr/local/pd/flext;
+ productName = "PD@OSX";
+ productReference = F55CEDC20383E6E401A80AC9;
+ shouldUseHeadermap = 0;
+ };
+ F55CEDC20383E6E401A80AC9 = {
+ isa = PBXLibraryReference;
+ path = flext.a;
+ refType = 3;
+ };
+ F55CEDC40383E78701A80AC9 = {
+ fileRef = F55CED7B0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDC50383E78701A80AC9 = {
+ fileRef = F55CED7C0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDC60383E78801A80AC9 = {
+ fileRef = F55CED7D0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDC70383E78901A80AC9 = {
+ fileRef = F55CED7E0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDC80383E78A01A80AC9 = {
+ fileRef = F55CED800383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDC90383E78B01A80AC9 = {
+ fileRef = F55CED880383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDCA0383E78B01A80AC9 = {
+ fileRef = F55CED8A0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDCB0383E78D01A80AC9 = {
+ fileRef = F55CED8D0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDCC0383E78E01A80AC9 = {
+ fileRef = F55CED8F0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDCE0383E78F01A80AC9 = {
+ fileRef = F55CED930383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDCF0383E79001A80AC9 = {
+ fileRef = F55CED950383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDD00383E79101A80AC9 = {
+ fileRef = F55CED960383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDD10383E79101A80AC9 = {
+ fileRef = F55CED970383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDD20383E79301A80AC9 = {
+ fileRef = F55CED7F0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDD30383E79301A80AC9 = {
+ fileRef = F55CED810383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDD40383E79401A80AC9 = {
+ fileRef = F55CED860383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDD50383E79501A80AC9 = {
+ fileRef = F55CED870383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDD60383E79701A80AC9 = {
+ fileRef = F55CED890383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDD70383E79801A80AC9 = {
+ fileRef = F55CED8B0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDD80383E79901A80AC9 = {
+ fileRef = F55CED8C0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDD90383E79901A80AC9 = {
+ fileRef = F55CED8E0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDDB0383E79B01A80AC9 = {
+ fileRef = F55CED920383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDDC0383E79B01A80AC9 = {
+ fileRef = F55CED940383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDF60383F55201A80AC9 = {
+ buildPhases = (
+ F55CEDF70383F55201A80AC9,
+ F55CEE020383F55201A80AC9,
+ F55CEE100383F55201A80AC9,
+ F55CEE110383F55201A80AC9,
+ );
+ buildSettings = {
+ DEBUGGING_SYMBOLS = NO;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ HEADER_SEARCH_PATHS = /usr/local/pd/src;
+ INSTALL_PATH = /usr/local/pd/flext;
+ LIBRARY_STYLE = STATIC;
+ OPTIMIZATION_CFLAGS = "-O3";
+ OTHER_CFLAGS = "-D PD -D unix -D FLEXT_THREADS";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOL_FLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = flext_t.a;
+ REZ_EXECUTABLE = YES;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+ };
+ comments = "flext for PD running on OS X (darwin)\nmulti-threaded performance version";
+ dependencies = (
+ );
+ isa = PBXLibraryTarget;
+ name = "PD@OSX threaded";
+ productInstallPath = /usr/local/pd/flext;
+ productName = "PD@OSX";
+ productReference = F55CEE120383F55201A80AC9;
+ shouldUseHeadermap = 0;
+ };
+ F55CEDF70383F55201A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ F55CEDF80383F55201A80AC9,
+ F55CEDF90383F55201A80AC9,
+ F55CEDFA0383F55201A80AC9,
+ F55CEDFB0383F55201A80AC9,
+ F55CEDFC0383F55201A80AC9,
+ F55CEDFD0383F55201A80AC9,
+ F55CEDFE0383F55201A80AC9,
+ F55CEDFF0383F55201A80AC9,
+ F55CEE000383F55201A80AC9,
+ F55CEE010383F55201A80AC9,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEDF80383F55201A80AC9 = {
+ fileRef = F55CED7F0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDF90383F55201A80AC9 = {
+ fileRef = F55CED810383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDFA0383F55201A80AC9 = {
+ fileRef = F55CED860383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDFB0383F55201A80AC9 = {
+ fileRef = F55CED870383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDFC0383F55201A80AC9 = {
+ fileRef = F55CED890383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDFD0383F55201A80AC9 = {
+ fileRef = F55CED8B0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDFE0383F55201A80AC9 = {
+ fileRef = F55CED8C0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEDFF0383F55201A80AC9 = {
+ fileRef = F55CED8E0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE000383F55201A80AC9 = {
+ fileRef = F55CED920383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE010383F55201A80AC9 = {
+ fileRef = F55CED940383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE020383F55201A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ F55CEE030383F55201A80AC9,
+ F55CEE040383F55201A80AC9,
+ F55CEE050383F55201A80AC9,
+ F55CEE060383F55201A80AC9,
+ F55CEE070383F55201A80AC9,
+ F55CEE080383F55201A80AC9,
+ F55CEE090383F55201A80AC9,
+ F55CEE0A0383F55201A80AC9,
+ F55CEE0B0383F55201A80AC9,
+ F55CEE0C0383F55201A80AC9,
+ F55CEE0D0383F55201A80AC9,
+ F55CEE0E0383F55201A80AC9,
+ F55CEE0F0383F55201A80AC9,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEE030383F55201A80AC9 = {
+ fileRef = F55CED7B0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE040383F55201A80AC9 = {
+ fileRef = F55CED7C0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE050383F55201A80AC9 = {
+ fileRef = F55CED7D0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE060383F55201A80AC9 = {
+ fileRef = F55CED7E0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE070383F55201A80AC9 = {
+ fileRef = F55CED800383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE080383F55201A80AC9 = {
+ fileRef = F55CED880383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE090383F55201A80AC9 = {
+ fileRef = F55CED8A0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE0A0383F55201A80AC9 = {
+ fileRef = F55CED8D0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE0B0383F55201A80AC9 = {
+ fileRef = F55CED8F0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE0C0383F55201A80AC9 = {
+ fileRef = F55CED930383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE0D0383F55201A80AC9 = {
+ fileRef = F55CED950383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE0E0383F55201A80AC9 = {
+ fileRef = F55CED960383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE0F0383F55201A80AC9 = {
+ fileRef = F55CED970383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE100383F55201A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEE110383F55201A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEE120383F55201A80AC9 = {
+ isa = PBXLibraryReference;
+ path = flext_t.a;
+ refType = 3;
+ };
+ F55CEE130383F57A01A80AC9 = {
+ buildPhases = (
+ F55CEE140383F57A01A80AC9,
+ F55CEE1F0383F57A01A80AC9,
+ F55CEE2D0383F57A01A80AC9,
+ F55CEE2E0383F57A01A80AC9,
+ );
+ buildSettings = {
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ HEADER_SEARCH_PATHS = /usr/local/pd/src;
+ INSTALL_PATH = /usr/local/pd/flext;
+ LIBRARY_STYLE = STATIC;
+ OPTIMIZATION_CFLAGS = "-O0";
+ OTHER_CFLAGS = "-D PD -D unix -D _DEBUG";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOL_FLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = flext_d.a;
+ REZ_EXECUTABLE = YES;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+ };
+ comments = "flext for PD running on OS X (darwin)\nsingle threaded debug version";
+ dependencies = (
+ );
+ isa = PBXLibraryTarget;
+ name = "PD@OSX debug single";
+ productInstallPath = /usr/local/pd/flext;
+ productName = "PD@OSX";
+ productReference = F55CEE2F0383F57A01A80AC9;
+ shouldUseHeadermap = 0;
+ };
+ F55CEE140383F57A01A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ F55CEE150383F57A01A80AC9,
+ F55CEE160383F57A01A80AC9,
+ F55CEE170383F57A01A80AC9,
+ F55CEE180383F57A01A80AC9,
+ F55CEE190383F57A01A80AC9,
+ F55CEE1A0383F57A01A80AC9,
+ F55CEE1B0383F57A01A80AC9,
+ F55CEE1C0383F57A01A80AC9,
+ F55CEE1D0383F57A01A80AC9,
+ F55CEE1E0383F57A01A80AC9,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEE150383F57A01A80AC9 = {
+ fileRef = F55CED7F0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE160383F57A01A80AC9 = {
+ fileRef = F55CED810383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE170383F57A01A80AC9 = {
+ fileRef = F55CED860383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE180383F57A01A80AC9 = {
+ fileRef = F55CED870383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE190383F57A01A80AC9 = {
+ fileRef = F55CED890383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE1A0383F57A01A80AC9 = {
+ fileRef = F55CED8B0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE1B0383F57A01A80AC9 = {
+ fileRef = F55CED8C0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE1C0383F57A01A80AC9 = {
+ fileRef = F55CED8E0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE1D0383F57A01A80AC9 = {
+ fileRef = F55CED920383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE1E0383F57A01A80AC9 = {
+ fileRef = F55CED940383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE1F0383F57A01A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ F55CEE200383F57A01A80AC9,
+ F55CEE210383F57A01A80AC9,
+ F55CEE220383F57A01A80AC9,
+ F55CEE230383F57A01A80AC9,
+ F55CEE240383F57A01A80AC9,
+ F55CEE250383F57A01A80AC9,
+ F55CEE260383F57A01A80AC9,
+ F55CEE270383F57A01A80AC9,
+ F55CEE280383F57A01A80AC9,
+ F55CEE290383F57A01A80AC9,
+ F55CEE2A0383F57A01A80AC9,
+ F55CEE2B0383F57A01A80AC9,
+ F55CEE2C0383F57A01A80AC9,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEE200383F57A01A80AC9 = {
+ fileRef = F55CED7B0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE210383F57A01A80AC9 = {
+ fileRef = F55CED7C0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE220383F57A01A80AC9 = {
+ fileRef = F55CED7D0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE230383F57A01A80AC9 = {
+ fileRef = F55CED7E0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE240383F57A01A80AC9 = {
+ fileRef = F55CED800383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE250383F57A01A80AC9 = {
+ fileRef = F55CED880383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE260383F57A01A80AC9 = {
+ fileRef = F55CED8A0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE270383F57A01A80AC9 = {
+ fileRef = F55CED8D0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE280383F57A01A80AC9 = {
+ fileRef = F55CED8F0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE290383F57A01A80AC9 = {
+ fileRef = F55CED930383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE2A0383F57A01A80AC9 = {
+ fileRef = F55CED950383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE2B0383F57A01A80AC9 = {
+ fileRef = F55CED960383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE2C0383F57A01A80AC9 = {
+ fileRef = F55CED970383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE2D0383F57A01A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEE2E0383F57A01A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEE2F0383F57A01A80AC9 = {
+ isa = PBXLibraryReference;
+ path = flext_d.a;
+ refType = 3;
+ };
+ F55CEE300383F59B01A80AC9 = {
+ buildPhases = (
+ F55CEE310383F59B01A80AC9,
+ F55CEE3C0383F59B01A80AC9,
+ F55CEE4A0383F59B01A80AC9,
+ F55CEE4B0383F59B01A80AC9,
+ );
+ buildSettings = {
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ HEADER_SEARCH_PATHS = /usr/local/pd/src;
+ INSTALL_PATH = /usr/local/pd/flext;
+ LIBRARY_STYLE = STATIC;
+ OPTIMIZATION_CFLAGS = "-O0";
+ OTHER_CFLAGS = "-D PD -D unix -D FLEXT_THREADS -D _DEBUG";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOL_FLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = flext_td.a;
+ REZ_EXECUTABLE = YES;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+ };
+ comments = "flext for PD running on OS X (darwin)\nmulti-threaded debug version";
+ dependencies = (
+ );
+ isa = PBXLibraryTarget;
+ name = "PD@OSX debug threaded";
+ productInstallPath = /usr/local/pd/flext;
+ productName = "PD@OSX";
+ productReference = F55CEE4C0383F59B01A80AC9;
+ shouldUseHeadermap = 0;
+ };
+ F55CEE310383F59B01A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ F55CEE320383F59B01A80AC9,
+ F55CEE330383F59B01A80AC9,
+ F55CEE340383F59B01A80AC9,
+ F55CEE350383F59B01A80AC9,
+ F55CEE360383F59B01A80AC9,
+ F55CEE370383F59B01A80AC9,
+ F55CEE380383F59B01A80AC9,
+ F55CEE390383F59B01A80AC9,
+ F55CEE3A0383F59B01A80AC9,
+ F55CEE3B0383F59B01A80AC9,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEE320383F59B01A80AC9 = {
+ fileRef = F55CED7F0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE330383F59B01A80AC9 = {
+ fileRef = F55CED810383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE340383F59B01A80AC9 = {
+ fileRef = F55CED860383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE350383F59B01A80AC9 = {
+ fileRef = F55CED870383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE360383F59B01A80AC9 = {
+ fileRef = F55CED890383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE370383F59B01A80AC9 = {
+ fileRef = F55CED8B0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE380383F59B01A80AC9 = {
+ fileRef = F55CED8C0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE390383F59B01A80AC9 = {
+ fileRef = F55CED8E0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE3A0383F59B01A80AC9 = {
+ fileRef = F55CED920383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE3B0383F59B01A80AC9 = {
+ fileRef = F55CED940383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE3C0383F59B01A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ F55CEE3D0383F59B01A80AC9,
+ F55CEE3E0383F59B01A80AC9,
+ F55CEE3F0383F59B01A80AC9,
+ F55CEE400383F59B01A80AC9,
+ F55CEE410383F59B01A80AC9,
+ F55CEE420383F59B01A80AC9,
+ F55CEE430383F59B01A80AC9,
+ F55CEE440383F59B01A80AC9,
+ F55CEE450383F59B01A80AC9,
+ F55CEE460383F59B01A80AC9,
+ F55CEE470383F59B01A80AC9,
+ F55CEE480383F59B01A80AC9,
+ F55CEE490383F59B01A80AC9,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEE3D0383F59B01A80AC9 = {
+ fileRef = F55CED7B0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE3E0383F59B01A80AC9 = {
+ fileRef = F55CED7C0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE3F0383F59B01A80AC9 = {
+ fileRef = F55CED7D0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE400383F59B01A80AC9 = {
+ fileRef = F55CED7E0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE410383F59B01A80AC9 = {
+ fileRef = F55CED800383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE420383F59B01A80AC9 = {
+ fileRef = F55CED880383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE430383F59B01A80AC9 = {
+ fileRef = F55CED8A0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE440383F59B01A80AC9 = {
+ fileRef = F55CED8D0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE450383F59B01A80AC9 = {
+ fileRef = F55CED8F0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE460383F59B01A80AC9 = {
+ fileRef = F55CED930383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE470383F59B01A80AC9 = {
+ fileRef = F55CED950383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE480383F59B01A80AC9 = {
+ fileRef = F55CED960383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE490383F59B01A80AC9 = {
+ fileRef = F55CED970383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F55CEE4A0383F59B01A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEE4B0383F59B01A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F55CEE4C0383F59B01A80AC9 = {
+ isa = PBXLibraryReference;
+ path = flext_td.a;
+ refType = 3;
+ };
+ F55CEE4E0383F97301A80AC9 = {
+ buildPhases = (
+ );
+ buildSettings = {
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = All;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+ };
+ dependencies = (
+ F55CEE530383F9A301A80AC9,
+ F55CEE540383F9A301A80AC9,
+ F55CEE550383F9A301A80AC9,
+ F55CEE560383F9A301A80AC9,
+ );
+ isa = PBXAggregateTarget;
+ name = "PD@OSX";
+ productName = "PD@OSX";
+ shouldUseHeadermap = 0;
+ };
+ F55CEE530383F9A301A80AC9 = {
+ isa = PBXTargetDependency;
+ target = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE540383F9A301A80AC9 = {
+ isa = PBXTargetDependency;
+ target = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE550383F9A301A80AC9 = {
+ isa = PBXTargetDependency;
+ target = F55CEE130383F57A01A80AC9;
+ };
+ F55CEE560383F9A301A80AC9 = {
+ isa = PBXTargetDependency;
+ target = F55CEE300383F59B01A80AC9;
+ };
+ F59A5F910386DF3201A80AC9 = {
+ buildPhases = (
+ F59A5F920386DF3201A80AC9,
+ F59A5F9D0386DF3201A80AC9,
+ F59A5FAB0386DF3201A80AC9,
+ F59A5FAC0386DF3201A80AC9,
+ );
+ buildSettings = {
+ DEBUGGING_SYMBOLS = NO;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ HEADER_SEARCH_PATHS = "\"$(SYSTEM_DEVELOPER_DIR)/Headers/FlatCarbon\" /Volumes/Daten/Prog/sdk-beta-osx/c74support/msp-includes /Volumes/Daten/Prog/sdk-beta-osx/c74support/max-includes";
+ LIBRARY_STYLE = STATIC;
+ OPTIMIZATION_CFLAGS = "-O3";
+ OTHER_CFLAGS = "-D MAXMSP -D unix -D FLEXT_THREADS -Wno-reorder -Wno-switch";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOL_FLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = flext_t.max.a;
+ REZ_EXECUTABLE = YES;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+ };
+ comments = "flext for PD running on OS X (darwin)\nsingle threaded performance version";
+ dependencies = (
+ );
+ isa = PBXLibraryTarget;
+ name = "Max@OSX threaded";
+ productName = "PD@OSX";
+ productReference = F59A5FAD0386DF3201A80AC9;
+ shouldUseHeadermap = 0;
+ };
+ F59A5F920386DF3201A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ F59A5F930386DF3201A80AC9,
+ F59A5F940386DF3201A80AC9,
+ F59A5F950386DF3201A80AC9,
+ F59A5F960386DF3201A80AC9,
+ F59A5F970386DF3201A80AC9,
+ F59A5F980386DF3201A80AC9,
+ F59A5F990386DF3201A80AC9,
+ F59A5F9A0386DF3201A80AC9,
+ F59A5F9B0386DF3201A80AC9,
+ F59A5F9C0386DF3201A80AC9,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F59A5F930386DF3201A80AC9 = {
+ fileRef = F55CED7F0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5F940386DF3201A80AC9 = {
+ fileRef = F55CED810383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5F950386DF3201A80AC9 = {
+ fileRef = F55CED860383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5F960386DF3201A80AC9 = {
+ fileRef = F55CED870383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5F970386DF3201A80AC9 = {
+ fileRef = F55CED890383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5F980386DF3201A80AC9 = {
+ fileRef = F55CED8B0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5F990386DF3201A80AC9 = {
+ fileRef = F55CED8C0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5F9A0386DF3201A80AC9 = {
+ fileRef = F55CED8E0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5F9B0386DF3201A80AC9 = {
+ fileRef = F55CED920383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5F9C0386DF3201A80AC9 = {
+ fileRef = F55CED940383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5F9D0386DF3201A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ F59A5F9E0386DF3201A80AC9,
+ F59A5F9F0386DF3201A80AC9,
+ F59A5FA00386DF3201A80AC9,
+ F59A5FA10386DF3201A80AC9,
+ F59A5FA20386DF3201A80AC9,
+ F59A5FA30386DF3201A80AC9,
+ F59A5FA40386DF3201A80AC9,
+ F59A5FA50386DF3201A80AC9,
+ F59A5FA60386DF3201A80AC9,
+ F59A5FA70386DF3201A80AC9,
+ F59A5FA80386DF3201A80AC9,
+ F59A5FA90386DF3201A80AC9,
+ F59A5FAA0386DF3201A80AC9,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F59A5F9E0386DF3201A80AC9 = {
+ fileRef = F55CED7B0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5F9F0386DF3201A80AC9 = {
+ fileRef = F55CED7C0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5FA00386DF3201A80AC9 = {
+ fileRef = F55CED7D0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5FA10386DF3201A80AC9 = {
+ fileRef = F55CED7E0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5FA20386DF3201A80AC9 = {
+ fileRef = F55CED800383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5FA30386DF3201A80AC9 = {
+ fileRef = F55CED880383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5FA40386DF3201A80AC9 = {
+ fileRef = F55CED8A0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5FA50386DF3201A80AC9 = {
+ fileRef = F55CED8D0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5FA60386DF3201A80AC9 = {
+ fileRef = F55CED8F0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5FA70386DF3201A80AC9 = {
+ fileRef = F55CED930383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5FA80386DF3201A80AC9 = {
+ fileRef = F55CED950383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5FA90386DF3201A80AC9 = {
+ fileRef = F55CED960383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5FAA0386DF3201A80AC9 = {
+ fileRef = F55CED970383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F59A5FAB0386DF3201A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F59A5FAC0386DF3201A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F59A5FAD0386DF3201A80AC9 = {
+ isa = PBXLibraryReference;
+ path = flext_t.max.a;
+ refType = 3;
+ };
+ F5AAF616038683E801A80AC9 = {
+ buildPhases = (
+ F5AAF617038683E801A80AC9,
+ F5AAF622038683E801A80AC9,
+ F5AAF630038683E801A80AC9,
+ F5AAF631038683E801A80AC9,
+ );
+ buildSettings = {
+ DEBUGGING_SYMBOLS = NO;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ HEADER_SEARCH_PATHS = "\"$(SYSTEM_DEVELOPER_DIR)/Headers/FlatCarbon\" /Volumes/Daten/Prog/sdk-beta-osx/c74support/msp-includes /Volumes/Daten/Prog/sdk-beta-osx/c74support/max-includes";
+ LIBRARY_STYLE = STATIC;
+ OPTIMIZATION_CFLAGS = "-O3";
+ OTHER_CFLAGS = "-D MAXMSP -D unix";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOL_FLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = flext.max.a;
+ REZ_EXECUTABLE = YES;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+ };
+ comments = "flext for PD running on OS X (darwin)\nsingle threaded performance version";
+ dependencies = (
+ );
+ isa = PBXLibraryTarget;
+ name = "Max@OSX single";
+ productName = "PD@OSX";
+ productReference = F5AAF632038683E801A80AC9;
+ shouldUseHeadermap = 0;
+ };
+ F5AAF617038683E801A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ F5AAF618038683E801A80AC9,
+ F5AAF619038683E801A80AC9,
+ F5AAF61A038683E801A80AC9,
+ F5AAF61B038683E801A80AC9,
+ F5AAF61C038683E801A80AC9,
+ F5AAF61D038683E801A80AC9,
+ F5AAF61E038683E801A80AC9,
+ F5AAF61F038683E801A80AC9,
+ F5AAF620038683E801A80AC9,
+ F5AAF621038683E801A80AC9,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F5AAF618038683E801A80AC9 = {
+ fileRef = F55CED7F0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF619038683E801A80AC9 = {
+ fileRef = F55CED810383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF61A038683E801A80AC9 = {
+ fileRef = F55CED860383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF61B038683E801A80AC9 = {
+ fileRef = F55CED870383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF61C038683E801A80AC9 = {
+ fileRef = F55CED890383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF61D038683E801A80AC9 = {
+ fileRef = F55CED8B0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF61E038683E801A80AC9 = {
+ fileRef = F55CED8C0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF61F038683E801A80AC9 = {
+ fileRef = F55CED8E0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF620038683E801A80AC9 = {
+ fileRef = F55CED920383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF621038683E801A80AC9 = {
+ fileRef = F55CED940383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF622038683E801A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ F5AAF623038683E801A80AC9,
+ F5AAF624038683E801A80AC9,
+ F5AAF625038683E801A80AC9,
+ F5AAF626038683E801A80AC9,
+ F5AAF627038683E801A80AC9,
+ F5AAF628038683E801A80AC9,
+ F5AAF629038683E801A80AC9,
+ F5AAF62A038683E801A80AC9,
+ F5AAF62B038683E801A80AC9,
+ F5AAF62C038683E801A80AC9,
+ F5AAF62D038683E801A80AC9,
+ F5AAF62E038683E801A80AC9,
+ F5AAF62F038683E801A80AC9,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F5AAF623038683E801A80AC9 = {
+ fileRef = F55CED7B0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF624038683E801A80AC9 = {
+ fileRef = F55CED7C0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF625038683E801A80AC9 = {
+ fileRef = F55CED7D0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF626038683E801A80AC9 = {
+ fileRef = F55CED7E0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF627038683E801A80AC9 = {
+ fileRef = F55CED800383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF628038683E801A80AC9 = {
+ fileRef = F55CED880383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF629038683E801A80AC9 = {
+ fileRef = F55CED8A0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF62A038683E801A80AC9 = {
+ fileRef = F55CED8D0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF62B038683E801A80AC9 = {
+ fileRef = F55CED8F0383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF62C038683E801A80AC9 = {
+ fileRef = F55CED930383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF62D038683E801A80AC9 = {
+ fileRef = F55CED950383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF62E038683E801A80AC9 = {
+ fileRef = F55CED960383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF62F038683E801A80AC9 = {
+ fileRef = F55CED970383E50201A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5AAF630038683E801A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F5AAF631038683E801A80AC9 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F5AAF632038683E801A80AC9 = {
+ isa = PBXLibraryReference;
+ path = flext.max.a;
+ refType = 3;
+ };
+ };
+ rootObject = 0867D690FE84028FC02AAC07;
+}
diff --git a/externals/grill/flext/flext-PB/flext-PB.pbproj/thomas.pbxuser b/externals/grill/flext/flext-PB/flext-PB.pbproj/thomas.pbxuser
new file mode 100755
index 00000000..975a358d
--- /dev/null
+++ b/externals/grill/flext/flext-PB/flext-PB.pbproj/thomas.pbxuser
@@ -0,0 +1,1370 @@
+// !$*UTF8*$!
+{
+ 0867D690FE84028FC02AAC07 = {
+ activeBuildStyle = F5128F2503864E5501A80AC9;
+ activeTarget = F59A5F910386DF3201A80AC9;
+ addToTargets = (
+ );
+ perUserDictionary = {
+ PBXPerProjectTemplateStateSaveDate = 59170540;
+ PBXWorkspaceContents = (
+ {
+ LeftSlideOut = {
+ Split0 = {
+ Split0 = {
+ NavContent0 = {
+ bookmark = F59A603E0386FAA401A80AC9;
+ history = (
+ F55CEDDD0383EF9001A80AC9,
+ F55CEE580383FC2801A80AC9,
+ F5AAF63303868F5F01A80AC9,
+ F5AAF63403868F5F01A80AC9,
+ F5AAF63503868F5F01A80AC9,
+ F5AAF63703868F5F01A80AC9,
+ F5AAF63803868F5F01A80AC9,
+ F5AAF63903868F5F01A80AC9,
+ F5AAF63A03868F5F01A80AC9,
+ F5AAF63B03868F5F01A80AC9,
+ F59A60240386FAA401A80AC9,
+ F59A60250386FAA401A80AC9,
+ F59A60260386FAA401A80AC9,
+ F59A60270386FAA401A80AC9,
+ F59A60280386FAA401A80AC9,
+ F59A60290386FAA401A80AC9,
+ F59A602A0386FAA401A80AC9,
+ );
+ prevStack = (
+ F55CEDE30383EF9001A80AC9,
+ F55CEDE40383EF9001A80AC9,
+ F55CEDEB0383EF9001A80AC9,
+ F55CEDF20383EF9001A80AC9,
+ F55CEDF30383EF9001A80AC9,
+ F55CEE5E0383FC2801A80AC9,
+ F55CEE5F0383FC2801A80AC9,
+ F55CEE600383FC2801A80AC9,
+ F55CEE610383FC2801A80AC9,
+ F55CEE620383FC2801A80AC9,
+ F55CEE630383FC2801A80AC9,
+ F55CEE640383FC2801A80AC9,
+ F55CEE650383FC2801A80AC9,
+ F55CEE660383FC2801A80AC9,
+ F55CEE670383FC2801A80AC9,
+ F55CEE680383FC2801A80AC9,
+ F55CEE690383FC2801A80AC9,
+ F55CEE6A0383FC2801A80AC9,
+ F55CEE6B0383FC2801A80AC9,
+ F55CEE6C0383FC2801A80AC9,
+ F55CEE6D0383FC2801A80AC9,
+ F55CEE6E0383FC2801A80AC9,
+ F55CEE6F0383FC2801A80AC9,
+ F55CEE700383FC2801A80AC9,
+ F55CEE710383FC2801A80AC9,
+ F55CEE720383FC2801A80AC9,
+ F55CEE730383FC2801A80AC9,
+ F55CEE740383FC2801A80AC9,
+ F55CEE750383FC2801A80AC9,
+ F55CEE760383FC2801A80AC9,
+ F55CEE770383FC2801A80AC9,
+ F55CEE780383FC2801A80AC9,
+ F55CEE790383FC2801A80AC9,
+ F55CEE7A0383FC2801A80AC9,
+ F55CEE7B0383FC2801A80AC9,
+ F55CEE7C0383FC2801A80AC9,
+ F55CEE7D0383FC2801A80AC9,
+ F55CEE7E0383FC2801A80AC9,
+ F55CEE7F0383FC2801A80AC9,
+ F55CEE800383FC2801A80AC9,
+ F55CEE810383FC2801A80AC9,
+ F55CEE820383FC2801A80AC9,
+ F55CEE830383FC2801A80AC9,
+ F55CEE840383FC2801A80AC9,
+ F55CEE850383FC2801A80AC9,
+ F55CEE860383FC2801A80AC9,
+ F55CEE870383FC2801A80AC9,
+ F55CEE880383FC2801A80AC9,
+ F55CEE890383FC2801A80AC9,
+ F55CEE8A0383FC2801A80AC9,
+ F55CEE8B0383FC2801A80AC9,
+ F55CEE8C0383FC2801A80AC9,
+ F55CEE8D0383FC2801A80AC9,
+ F55CEE8E0383FC2801A80AC9,
+ F55CEE8F0383FC2801A80AC9,
+ F55CEE900383FC2801A80AC9,
+ F55CEE910383FC2801A80AC9,
+ F5AAF63D03868F5F01A80AC9,
+ F5AAF63E03868F5F01A80AC9,
+ F5AAF63F03868F5F01A80AC9,
+ F5AAF64003868F5F01A80AC9,
+ F5AAF64103868F5F01A80AC9,
+ F5AAF64203868F5F01A80AC9,
+ F5AAF64303868F5F01A80AC9,
+ F5AAF64403868F5F01A80AC9,
+ F5AAF64503868F5F01A80AC9,
+ F5AAF64603868F5F01A80AC9,
+ F5AAF64703868F5F01A80AC9,
+ F5AAF64803868F5F01A80AC9,
+ F5AAF64903868F5F01A80AC9,
+ F5AAF64A03868F5F01A80AC9,
+ F5AAF64B03868F5F01A80AC9,
+ F5AAF64C03868F5F01A80AC9,
+ F5AAF64D03868F5F01A80AC9,
+ F5AAF64E03868F5F01A80AC9,
+ F59A602B0386FAA401A80AC9,
+ F59A602C0386FAA401A80AC9,
+ F59A602D0386FAA401A80AC9,
+ F59A602E0386FAA401A80AC9,
+ F59A602F0386FAA401A80AC9,
+ F59A60300386FAA401A80AC9,
+ F59A60310386FAA401A80AC9,
+ F59A60320386FAA401A80AC9,
+ F59A60330386FAA401A80AC9,
+ F59A60340386FAA401A80AC9,
+ F59A60350386FAA401A80AC9,
+ F59A60360386FAA401A80AC9,
+ F59A60370386FAA401A80AC9,
+ F59A60380386FAA401A80AC9,
+ F59A60390386FAA401A80AC9,
+ F59A603A0386FAA401A80AC9,
+ F59A603B0386FAA401A80AC9,
+ F59A603C0386FAA401A80AC9,
+ F59A603D0386FAA401A80AC9,
+ );
+ };
+ NavCount = 1;
+ NavGeometry0 = {
+ Frame = "{{0, 0}, {878, 388}}";
+ NavBarVisible = YES;
+ };
+ };
+ SplitCount = 1;
+ Tab0 = {
+ Debugger = {
+ Split0 = {
+ SplitCount = 2;
+ };
+ SplitCount = 1;
+ TabCount = 2;
+ };
+ LauncherConfigVersion = 7;
+ };
+ Tab1 = {
+ LauncherConfigVersion = 3;
+ Runner = {
+ };
+ };
+ TabCount = 4;
+ };
+ SplitCount = 1;
+ Tab1 = {
+ OptionsSetName = "Hierarchy, all classes";
+ };
+ TabCount = 5;
+ };
+ },
+ );
+ PBXWorkspaceGeometries = (
+ {
+ ContentSize = "{1109, 658}";
+ LeftSlideOut = {
+ ActiveTab = 3;
+ Collapsed = NO;
+ Frame = "{{0, 23}, {1109, 635}}";
+ Split0 = {
+ ActiveTab = 2;
+ Collapsed = NO;
+ Frame = "{{231, 0}, {878, 635}}";
+ Split0 = {
+ Frame = "{{0, 247}, {878, 388}}";
+ };
+ SplitCount = 1;
+ Tab0 = {
+ Debugger = {
+ Collapsed = NO;
+ Frame = "{{0, 0}, {572, 214}}";
+ Split0 = {
+ Frame = "{{0, 24}, {572, 190}}";
+ Split0 = {
+ Frame = "{{0, 0}, {279, 190}}";
+ };
+ Split1 = {
+ DebugVariablesTableConfiguration = (
+ Name,
+ 123,
+ Value,
+ 85,
+ Summary,
+ 62.123,
+ );
+ Frame = "{{288, 0}, {284, 190}}";
+ };
+ SplitCount = 2;
+ };
+ SplitCount = 1;
+ Tab0 = {
+ Frame = "{{0, 0}, {100, 50}}";
+ };
+ Tab1 = {
+ Frame = "{{0, 0}, {100, 50}}";
+ };
+ TabCount = 2;
+ TabsVisible = YES;
+ };
+ Frame = "{{0, 0}, {572, 214}}";
+ LauncherConfigVersion = 7;
+ };
+ Tab1 = {
+ Frame = "{{0, 0}, {572, 125}}";
+ LauncherConfigVersion = 3;
+ Runner = {
+ Frame = "{{0, 0}, {572, 125}}";
+ };
+ };
+ Tab2 = {
+ BuildMessageFrame = "{{0, 0}, {880, 120}}";
+ BuildTranscriptFrame = "{{0, 129}, {880, 96}}";
+ Frame = "{{0, 0}, {878, 223}}";
+ };
+ Tab3 = {
+ Frame = "{{0, 0}, {572, 265}}";
+ };
+ TabCount = 4;
+ TabsVisible = YES;
+ };
+ SplitCount = 1;
+ Tab0 = {
+ Frame = "{{0, 0}, {202, 635}}";
+ GroupTreeTableConfiguration = (
+ SCMStatusColumn,
+ 22,
+ TargetStatusColumn,
+ 18,
+ MainColumn,
+ 147,
+ );
+ };
+ Tab1 = {
+ ClassesFrame = "{{0, 0}, {247, 330}}";
+ ClassesTreeTableConfiguration = (
+ PBXBookColumnIdentifier,
+ 20,
+ PBXClassColumnIdentifier,
+ 204,
+ );
+ Frame = "{{0, 0}, {245, 549}}";
+ MembersFrame = "{{0, 339}, {247, 210}}";
+ MembersTreeTableConfiguration = (
+ PBXBookColumnIdentifier,
+ 20,
+ PBXMethodColumnIdentifier,
+ 203,
+ );
+ };
+ Tab2 = {
+ Frame = "{{0, 0}, {226, 549}}";
+ };
+ Tab3 = {
+ Frame = "{{0, 0}, {207, 635}}";
+ TargetTableConfiguration = (
+ ActiveObject,
+ 16,
+ ObjectNames,
+ 202.296,
+ );
+ };
+ Tab4 = {
+ BreakpointsTreeTableConfiguration = (
+ breakpointColumn,
+ 138,
+ enabledColumn,
+ 31,
+ );
+ Frame = "{{0, 0}, {191, 549}}";
+ };
+ TabCount = 5;
+ TabsVisible = YES;
+ };
+ StatusViewVisible = YES;
+ Template = F5F68CF101725D4C0D7A8F4C;
+ ToolbarVisible = YES;
+ WindowLocation = "{14, 21}";
+ },
+ );
+ PBXWorkspaceStateSaveDate = 59170540;
+ };
+ perUserProjectItems = {
+ F55CEDDD0383EF9001A80AC9 = F55CEDDD0383EF9001A80AC9;
+ F55CEDE30383EF9001A80AC9 = F55CEDE30383EF9001A80AC9;
+ F55CEDE40383EF9001A80AC9 = F55CEDE40383EF9001A80AC9;
+ F55CEDEB0383EF9001A80AC9 = F55CEDEB0383EF9001A80AC9;
+ F55CEDF20383EF9001A80AC9 = F55CEDF20383EF9001A80AC9;
+ F55CEDF30383EF9001A80AC9 = F55CEDF30383EF9001A80AC9;
+ F55CEE580383FC2801A80AC9 = F55CEE580383FC2801A80AC9;
+ F55CEE5E0383FC2801A80AC9 = F55CEE5E0383FC2801A80AC9;
+ F55CEE5F0383FC2801A80AC9 = F55CEE5F0383FC2801A80AC9;
+ F55CEE600383FC2801A80AC9 = F55CEE600383FC2801A80AC9;
+ F55CEE610383FC2801A80AC9 = F55CEE610383FC2801A80AC9;
+ F55CEE620383FC2801A80AC9 = F55CEE620383FC2801A80AC9;
+ F55CEE630383FC2801A80AC9 = F55CEE630383FC2801A80AC9;
+ F55CEE640383FC2801A80AC9 = F55CEE640383FC2801A80AC9;
+ F55CEE650383FC2801A80AC9 = F55CEE650383FC2801A80AC9;
+ F55CEE660383FC2801A80AC9 = F55CEE660383FC2801A80AC9;
+ F55CEE670383FC2801A80AC9 = F55CEE670383FC2801A80AC9;
+ F55CEE680383FC2801A80AC9 = F55CEE680383FC2801A80AC9;
+ F55CEE690383FC2801A80AC9 = F55CEE690383FC2801A80AC9;
+ F55CEE6A0383FC2801A80AC9 = F55CEE6A0383FC2801A80AC9;
+ F55CEE6B0383FC2801A80AC9 = F55CEE6B0383FC2801A80AC9;
+ F55CEE6C0383FC2801A80AC9 = F55CEE6C0383FC2801A80AC9;
+ F55CEE6D0383FC2801A80AC9 = F55CEE6D0383FC2801A80AC9;
+ F55CEE6E0383FC2801A80AC9 = F55CEE6E0383FC2801A80AC9;
+ F55CEE6F0383FC2801A80AC9 = F55CEE6F0383FC2801A80AC9;
+ F55CEE700383FC2801A80AC9 = F55CEE700383FC2801A80AC9;
+ F55CEE710383FC2801A80AC9 = F55CEE710383FC2801A80AC9;
+ F55CEE720383FC2801A80AC9 = F55CEE720383FC2801A80AC9;
+ F55CEE730383FC2801A80AC9 = F55CEE730383FC2801A80AC9;
+ F55CEE740383FC2801A80AC9 = F55CEE740383FC2801A80AC9;
+ F55CEE750383FC2801A80AC9 = F55CEE750383FC2801A80AC9;
+ F55CEE760383FC2801A80AC9 = F55CEE760383FC2801A80AC9;
+ F55CEE770383FC2801A80AC9 = F55CEE770383FC2801A80AC9;
+ F55CEE780383FC2801A80AC9 = F55CEE780383FC2801A80AC9;
+ F55CEE790383FC2801A80AC9 = F55CEE790383FC2801A80AC9;
+ F55CEE7A0383FC2801A80AC9 = F55CEE7A0383FC2801A80AC9;
+ F55CEE7B0383FC2801A80AC9 = F55CEE7B0383FC2801A80AC9;
+ F55CEE7C0383FC2801A80AC9 = F55CEE7C0383FC2801A80AC9;
+ F55CEE7D0383FC2801A80AC9 = F55CEE7D0383FC2801A80AC9;
+ F55CEE7E0383FC2801A80AC9 = F55CEE7E0383FC2801A80AC9;
+ F55CEE7F0383FC2801A80AC9 = F55CEE7F0383FC2801A80AC9;
+ F55CEE800383FC2801A80AC9 = F55CEE800383FC2801A80AC9;
+ F55CEE810383FC2801A80AC9 = F55CEE810383FC2801A80AC9;
+ F55CEE820383FC2801A80AC9 = F55CEE820383FC2801A80AC9;
+ F55CEE830383FC2801A80AC9 = F55CEE830383FC2801A80AC9;
+ F55CEE840383FC2801A80AC9 = F55CEE840383FC2801A80AC9;
+ F55CEE850383FC2801A80AC9 = F55CEE850383FC2801A80AC9;
+ F55CEE860383FC2801A80AC9 = F55CEE860383FC2801A80AC9;
+ F55CEE870383FC2801A80AC9 = F55CEE870383FC2801A80AC9;
+ F55CEE880383FC2801A80AC9 = F55CEE880383FC2801A80AC9;
+ F55CEE890383FC2801A80AC9 = F55CEE890383FC2801A80AC9;
+ F55CEE8A0383FC2801A80AC9 = F55CEE8A0383FC2801A80AC9;
+ F55CEE8B0383FC2801A80AC9 = F55CEE8B0383FC2801A80AC9;
+ F55CEE8C0383FC2801A80AC9 = F55CEE8C0383FC2801A80AC9;
+ F55CEE8D0383FC2801A80AC9 = F55CEE8D0383FC2801A80AC9;
+ F55CEE8E0383FC2801A80AC9 = F55CEE8E0383FC2801A80AC9;
+ F55CEE8F0383FC2801A80AC9 = F55CEE8F0383FC2801A80AC9;
+ F55CEE900383FC2801A80AC9 = F55CEE900383FC2801A80AC9;
+ F55CEE910383FC2801A80AC9 = F55CEE910383FC2801A80AC9;
+ F59A60240386FAA401A80AC9 = F59A60240386FAA401A80AC9;
+ F59A60250386FAA401A80AC9 = F59A60250386FAA401A80AC9;
+ F59A60260386FAA401A80AC9 = F59A60260386FAA401A80AC9;
+ F59A60270386FAA401A80AC9 = F59A60270386FAA401A80AC9;
+ F59A60280386FAA401A80AC9 = F59A60280386FAA401A80AC9;
+ F59A60290386FAA401A80AC9 = F59A60290386FAA401A80AC9;
+ F59A602A0386FAA401A80AC9 = F59A602A0386FAA401A80AC9;
+ F59A602B0386FAA401A80AC9 = F59A602B0386FAA401A80AC9;
+ F59A602C0386FAA401A80AC9 = F59A602C0386FAA401A80AC9;
+ F59A602D0386FAA401A80AC9 = F59A602D0386FAA401A80AC9;
+ F59A602E0386FAA401A80AC9 = F59A602E0386FAA401A80AC9;
+ F59A602F0386FAA401A80AC9 = F59A602F0386FAA401A80AC9;
+ F59A60300386FAA401A80AC9 = F59A60300386FAA401A80AC9;
+ F59A60310386FAA401A80AC9 = F59A60310386FAA401A80AC9;
+ F59A60320386FAA401A80AC9 = F59A60320386FAA401A80AC9;
+ F59A60330386FAA401A80AC9 = F59A60330386FAA401A80AC9;
+ F59A60340386FAA401A80AC9 = F59A60340386FAA401A80AC9;
+ F59A60350386FAA401A80AC9 = F59A60350386FAA401A80AC9;
+ F59A60360386FAA401A80AC9 = F59A60360386FAA401A80AC9;
+ F59A60370386FAA401A80AC9 = F59A60370386FAA401A80AC9;
+ F59A60380386FAA401A80AC9 = F59A60380386FAA401A80AC9;
+ F59A60390386FAA401A80AC9 = F59A60390386FAA401A80AC9;
+ F59A603A0386FAA401A80AC9 = F59A603A0386FAA401A80AC9;
+ F59A603B0386FAA401A80AC9 = F59A603B0386FAA401A80AC9;
+ F59A603C0386FAA401A80AC9 = F59A603C0386FAA401A80AC9;
+ F59A603D0386FAA401A80AC9 = F59A603D0386FAA401A80AC9;
+ F59A603E0386FAA401A80AC9 = F59A603E0386FAA401A80AC9;
+ F5AAF63303868F5F01A80AC9 = F5AAF63303868F5F01A80AC9;
+ F5AAF63403868F5F01A80AC9 = F5AAF63403868F5F01A80AC9;
+ F5AAF63503868F5F01A80AC9 = F5AAF63503868F5F01A80AC9;
+ F5AAF63703868F5F01A80AC9 = F5AAF63703868F5F01A80AC9;
+ F5AAF63803868F5F01A80AC9 = F5AAF63803868F5F01A80AC9;
+ F5AAF63903868F5F01A80AC9 = F5AAF63903868F5F01A80AC9;
+ F5AAF63A03868F5F01A80AC9 = F5AAF63A03868F5F01A80AC9;
+ F5AAF63B03868F5F01A80AC9 = F5AAF63B03868F5F01A80AC9;
+ F5AAF63D03868F5F01A80AC9 = F5AAF63D03868F5F01A80AC9;
+ F5AAF63E03868F5F01A80AC9 = F5AAF63E03868F5F01A80AC9;
+ F5AAF63F03868F5F01A80AC9 = F5AAF63F03868F5F01A80AC9;
+ F5AAF64003868F5F01A80AC9 = F5AAF64003868F5F01A80AC9;
+ F5AAF64103868F5F01A80AC9 = F5AAF64103868F5F01A80AC9;
+ F5AAF64203868F5F01A80AC9 = F5AAF64203868F5F01A80AC9;
+ F5AAF64303868F5F01A80AC9 = F5AAF64303868F5F01A80AC9;
+ F5AAF64403868F5F01A80AC9 = F5AAF64403868F5F01A80AC9;
+ F5AAF64503868F5F01A80AC9 = F5AAF64503868F5F01A80AC9;
+ F5AAF64603868F5F01A80AC9 = F5AAF64603868F5F01A80AC9;
+ F5AAF64703868F5F01A80AC9 = F5AAF64703868F5F01A80AC9;
+ F5AAF64803868F5F01A80AC9 = F5AAF64803868F5F01A80AC9;
+ F5AAF64903868F5F01A80AC9 = F5AAF64903868F5F01A80AC9;
+ F5AAF64A03868F5F01A80AC9 = F5AAF64A03868F5F01A80AC9;
+ F5AAF64B03868F5F01A80AC9 = F5AAF64B03868F5F01A80AC9;
+ F5AAF64C03868F5F01A80AC9 = F5AAF64C03868F5F01A80AC9;
+ F5AAF64D03868F5F01A80AC9 = F5AAF64D03868F5F01A80AC9;
+ F5AAF64E03868F5F01A80AC9 = F5AAF64E03868F5F01A80AC9;
+ };
+ projectwideBuildSettings = {
+ };
+ wantsIndex = 1;
+ wantsSCM = -1;
+ };
+ F55CEDC10383E6E401A80AC9 = {
+ activeExec = 0;
+ };
+ F55CEDDD0383EF9001A80AC9 = {
+ fRef = F55CED810383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flclass.h: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 755;
+ vrLoc = 0;
+ };
+ F55CEDE30383EF9001A80AC9 = {
+ fRef = F55CED810383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flclass.h: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 755;
+ vrLoc = 0;
+ };
+ F55CEDE40383EF9001A80AC9 = {
+ fRef = F55CED7F0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flbase.h: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 883;
+ vrLoc = 0;
+ };
+ F55CEDEB0383EF9001A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEDF20383EF9001A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEDF30383EF9001A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEDF60383F55201A80AC9 = {
+ activeExec = 0;
+ };
+ F55CEE130383F57A01A80AC9 = {
+ activeExec = 0;
+ };
+ F55CEE300383F59B01A80AC9 = {
+ activeExec = 0;
+ };
+ F55CEE4E0383F97301A80AC9 = {
+ activeExec = 0;
+ };
+ F55CEE580383FC2801A80AC9 = {
+ fRef = F55CED960383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flutil.cpp: 28";
+ rLen = 0;
+ rLoc = 518;
+ rType = 0;
+ vrLen = 463;
+ vrLoc = 341;
+ };
+ F55CEE5E0383FC2801A80AC9 = {
+ fRef = F55CED7B0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flatom-pr.cpp: 38";
+ rLen = 0;
+ rLoc = 769;
+ rType = 0;
+ vrLen = 594;
+ vrLoc = 0;
+ };
+ F55CEE5F0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE600383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE610383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE620383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE630383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE130383F57A01A80AC9;
+ };
+ F55CEE640383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE300383F59B01A80AC9;
+ };
+ F55CEE650383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE130383F57A01A80AC9;
+ };
+ F55CEE660383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE300383F59B01A80AC9;
+ };
+ F55CEE670383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE130383F57A01A80AC9;
+ };
+ F55CEE680383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE690383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE6A0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE6B0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE6C0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE6D0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE6E0383FC2801A80AC9 = {
+ fRef = F55CED960383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flutil.cpp: 28";
+ rLen = 0;
+ rLoc = 518;
+ rType = 0;
+ vrLen = 463;
+ vrLoc = 341;
+ };
+ F55CEE6F0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE700383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE710383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE130383F57A01A80AC9;
+ };
+ F55CEE720383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE300383F59B01A80AC9;
+ };
+ F55CEE730383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE740383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE750383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE4E0383F97301A80AC9;
+ };
+ F55CEE760383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE770383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE780383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE4E0383F97301A80AC9;
+ };
+ F55CEE790383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE7A0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE4E0383F97301A80AC9;
+ };
+ F55CEE7B0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE7C0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE7D0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE130383F57A01A80AC9;
+ };
+ F55CEE7E0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE7F0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE800383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE810383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE820383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE830383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE130383F57A01A80AC9;
+ };
+ F55CEE840383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE300383F59B01A80AC9;
+ };
+ F55CEE850383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE130383F57A01A80AC9;
+ };
+ F55CEE860383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE870383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE880383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE890383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE130383F57A01A80AC9;
+ };
+ F55CEE8A0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE300383F59B01A80AC9;
+ };
+ F55CEE8B0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE4E0383F97301A80AC9;
+ };
+ F55CEE8C0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F55CEE8D0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F55CEE8E0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE130383F57A01A80AC9;
+ };
+ F55CEE8F0383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE300383F59B01A80AC9;
+ };
+ F55CEE900383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE4E0383F97301A80AC9;
+ };
+ F55CEE910383FC2801A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ };
+ F59A5F910386DF3201A80AC9 = {
+ activeExec = 0;
+ };
+ F59A60240386FAA401A80AC9 = {
+ fRef = F55CED8A0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flext.cpp: cb_px_in6";
+ rLen = 0;
+ rLoc = 2568;
+ rType = 0;
+ vrLen = 594;
+ vrLoc = 65;
+ };
+ F59A60250386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE130383F57A01A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 246}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetSummarySettingsModule,
+ );
+ };
+ };
+ F59A60260386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE4E0383F97301A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 89}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ "com.apple.target-editor-pane.settings",
+ );
+ };
+ };
+ F59A60270386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 246}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetSummarySettingsModule,
+ );
+ };
+ };
+ F59A60280386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F5AAF616038683E801A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 89}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetGeneralSettingsModule,
+ );
+ };
+ };
+ F59A60290386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F59A5F910386DF3201A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 55}, {600, 334}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetGccCompilerSettingsModule,
+ );
+ };
+ };
+ F59A602A0386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE300383F59B01A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 246}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetSummarySettingsModule,
+ );
+ };
+ };
+ F59A602B0386FAA401A80AC9 = {
+ fRef = F55CED8A0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flext.cpp: cb_px_in6";
+ rLen = 0;
+ rLoc = 2568;
+ rType = 0;
+ vrLen = 594;
+ vrLoc = 65;
+ };
+ F59A602C0386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F5AAF616038683E801A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 55}, {600, 334}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetGccCompilerSettingsModule,
+ );
+ };
+ };
+ F59A602D0386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F59A5F910386DF3201A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 55}, {600, 334}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetGccCompilerSettingsModule,
+ );
+ };
+ };
+ F59A602E0386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F5AAF616038683E801A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 55}, {600, 334}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetGccCompilerSettingsModule,
+ );
+ };
+ };
+ F59A602F0386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F59A5F910386DF3201A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 55}, {600, 334}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetGccCompilerSettingsModule,
+ );
+ };
+ };
+ F59A60300386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 246}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetSummarySettingsModule,
+ );
+ };
+ };
+ F59A60310386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F5AAF616038683E801A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 87}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetInstallationSettingsModule,
+ );
+ };
+ };
+ F59A60320386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F59A5F910386DF3201A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 87}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetInstallationSettingsModule,
+ );
+ };
+ };
+ F59A60330386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F5AAF616038683E801A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 87}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetInstallationSettingsModule,
+ );
+ };
+ };
+ F59A60340386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE300383F59B01A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 246}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetSummarySettingsModule,
+ );
+ };
+ };
+ F59A60350386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE130383F57A01A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 246}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetSummarySettingsModule,
+ );
+ };
+ };
+ F59A60360386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F5AAF616038683E801A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 87}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetInstallationSettingsModule,
+ );
+ };
+ };
+ F59A60370386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 246}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetSummarySettingsModule,
+ );
+ };
+ };
+ F59A60380386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE4E0383F97301A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 89}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ "com.apple.target-editor-pane.settings",
+ );
+ };
+ };
+ F59A60390386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDC10383E6E401A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 246}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetSummarySettingsModule,
+ );
+ };
+ };
+ F59A603A0386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F59A5F910386DF3201A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 89}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetGeneralSettingsModule,
+ );
+ };
+ };
+ F59A603B0386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F5AAF616038683E801A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 89}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetGeneralSettingsModule,
+ );
+ };
+ };
+ F59A603C0386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE300383F59B01A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 246}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetSummarySettingsModule,
+ );
+ };
+ };
+ F59A603D0386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F59A5F910386DF3201A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 55}, {600, 334}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetGccCompilerSettingsModule,
+ );
+ };
+ };
+ F59A603E0386FAA401A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEE300383F59B01A80AC9;
+ uiCtxt = {
+ TOCViewDetailVisibleRect = "{{0, 0}, {600, 246}}";
+ TOCViewExpandedItems = (
+ "com.apple.target-editor-pane.settings",
+ "com.apple.target-editor-pane.settings.simple",
+ "com.apple.target-editor-pane.buildphases",
+ );
+ TOCViewMasterVisibleRect = "{{0, 0}, {239, 334}}";
+ TOCViewSelectedItems = (
+ PBXTargetSummarySettingsModule,
+ );
+ };
+ };
+ F5AAF616038683E801A80AC9 = {
+ activeExec = 0;
+ };
+ F5AAF63303868F5F01A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F5AAF63403868F5F01A80AC9 = {
+ fRef = F5AAF65003868F5F01A80AC9;
+ isa = PBXTextBookmark;
+ name = "ext_user.h: 44";
+ rLen = 0;
+ rLoc = 1970;
+ rType = 0;
+ vrLen = 1130;
+ vrLoc = 0;
+ };
+ F5AAF63503868F5F01A80AC9 = {
+ fRef = F55CED920383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flstdc.h: 86";
+ rLen = 35;
+ rLoc = 1625;
+ rType = 0;
+ vrLen = 559;
+ vrLoc = 1418;
+ };
+ F5AAF63703868F5F01A80AC9 = {
+ fRef = F5AAF65103868F5F01A80AC9;
+ isa = PBXTextBookmark;
+ name = "ext_proto.h: 48";
+ rLen = 0;
+ rLoc = 1525;
+ rType = 0;
+ vrLen = 773;
+ vrLoc = 0;
+ };
+ F5AAF63803868F5F01A80AC9 = {
+ fRef = F55CED940383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flsupport.h: GetAInt";
+ rLen = 100;
+ rLoc = 8684;
+ rType = 0;
+ vrLen = 1340;
+ vrLoc = 8025;
+ };
+ F5AAF63903868F5F01A80AC9 = {
+ fRef = F55CED7B0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flatom-pr.cpp: 88";
+ rLen = 0;
+ rLoc = 1612;
+ rType = 0;
+ vrLen = 460;
+ vrLoc = 1183;
+ };
+ F5AAF63A03868F5F01A80AC9 = {
+ fRef = F55CED7E0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flbase.cpp: 43";
+ rLen = 2;
+ rLoc = 1108;
+ rType = 0;
+ vrLen = 703;
+ vrLoc = 723;
+ };
+ F5AAF63B03868F5F01A80AC9 = {
+ fRef = F55CED7F0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flbase.h: 245";
+ rLen = 26;
+ rLoc = 6548;
+ rType = 0;
+ vrLen = 933;
+ vrLoc = 6166;
+ };
+ F5AAF63D03868F5F01A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F55CEDF60383F55201A80AC9;
+ };
+ F5AAF63E03868F5F01A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F5AAF616038683E801A80AC9;
+ };
+ F5AAF63F03868F5F01A80AC9 = {
+ fRef = F5AAF65303868F5F01A80AC9;
+ isa = PBXTextBookmark;
+ name = "ext_user.h: 44";
+ rLen = 0;
+ rLoc = 1970;
+ rType = 0;
+ vrLen = 1130;
+ vrLoc = 0;
+ };
+ F5AAF64003868F5F01A80AC9 = {
+ fRef = F55CED920383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flstdc.h: 86";
+ rLen = 35;
+ rLoc = 1625;
+ rType = 0;
+ vrLen = 559;
+ vrLoc = 1418;
+ };
+ F5AAF64103868F5F01A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F5AAF616038683E801A80AC9;
+ };
+ F5AAF64203868F5F01A80AC9 = {
+ fRef = F55CED7B0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flatom-pr.cpp: 32";
+ rLen = 0;
+ rLoc = 621;
+ rType = 0;
+ vrLen = 464;
+ vrLoc = 259;
+ };
+ F5AAF64303868F5F01A80AC9 = {
+ fRef = F55CED940383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flsupport.h: MakeSymbol";
+ rLen = 92;
+ rLoc = 4015;
+ rType = 0;
+ vrLen = 824;
+ vrLoc = 3771;
+ };
+ F5AAF64403868F5F01A80AC9 = {
+ fRef = F55CED7F0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flbase.h: 21";
+ rLen = 23;
+ rLoc = 444;
+ rType = 0;
+ vrLen = 535;
+ vrLoc = 0;
+ };
+ F5AAF64503868F5F01A80AC9 = {
+ fRef = F55CED940383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flsupport.h: MakeSymbol";
+ rLen = 92;
+ rLoc = 4015;
+ rType = 0;
+ vrLen = 824;
+ vrLoc = 3771;
+ };
+ F5AAF64603868F5F01A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F5AAF616038683E801A80AC9;
+ };
+ F5AAF64703868F5F01A80AC9 = {
+ fRef = F55CED940383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flsupport.h: 155";
+ rLen = 0;
+ rLoc = 3865;
+ rType = 0;
+ vrLen = 549;
+ vrLoc = 1935;
+ };
+ F5AAF64803868F5F01A80AC9 = {
+ isa = PBXTargetBookmark;
+ trg = F5AAF616038683E801A80AC9;
+ };
+ F5AAF64903868F5F01A80AC9 = {
+ fRef = F5AAF65203868F5F01A80AC9;
+ isa = PBXTextBookmark;
+ name = "ext_proto.h: 48";
+ rLen = 0;
+ rLoc = 1525;
+ rType = 0;
+ vrLen = 773;
+ vrLoc = 0;
+ };
+ F5AAF64A03868F5F01A80AC9 = {
+ fRef = F55CED7B0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flatom-pr.cpp: 21";
+ rLen = 0;
+ rLoc = 470;
+ rType = 0;
+ vrLen = 440;
+ vrLoc = 350;
+ };
+ F5AAF64B03868F5F01A80AC9 = {
+ fRef = F55CED940383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flsupport.h: GetAInt";
+ rLen = 100;
+ rLoc = 8684;
+ rType = 0;
+ vrLen = 1340;
+ vrLoc = 8025;
+ };
+ F5AAF64C03868F5F01A80AC9 = {
+ fRef = F55CED7B0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flatom-pr.cpp: 88";
+ rLen = 0;
+ rLoc = 1612;
+ rType = 0;
+ vrLen = 460;
+ vrLoc = 1183;
+ };
+ F5AAF64D03868F5F01A80AC9 = {
+ fRef = F55CED7E0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flbase.cpp: 43";
+ rLen = 2;
+ rLoc = 1108;
+ rType = 0;
+ vrLen = 703;
+ vrLoc = 723;
+ };
+ F5AAF64E03868F5F01A80AC9 = {
+ fRef = F55CED7F0383E50201A80AC9;
+ isa = PBXTextBookmark;
+ name = "flbase.h: 245";
+ rLen = 26;
+ rLoc = 6548;
+ rType = 0;
+ vrLen = 933;
+ vrLoc = 6166;
+ };
+ F5AAF65003868F5F01A80AC9 = {
+ isa = PBXFileReference;
+ name = ext_user.h;
+ path = "/Volumes/Daten/Prog/sdk-beta-osx/c74support/max-includes/ext_user.h";
+ refType = 0;
+ };
+ F5AAF65103868F5F01A80AC9 = {
+ isa = PBXFileReference;
+ name = ext_proto.h;
+ path = "/Volumes/Daten/Prog/sdk-beta-osx/c74support/max-includes/ext_proto.h";
+ refType = 0;
+ };
+ F5AAF65203868F5F01A80AC9 = {
+ isa = PBXFileReference;
+ name = ext_proto.h;
+ path = "/Volumes/Daten/Prog/sdk-beta-osx/c74support/max-includes/ext_proto.h";
+ refType = 0;
+ };
+ F5AAF65303868F5F01A80AC9 = {
+ isa = PBXFileReference;
+ name = ext_user.h;
+ path = "/Volumes/Daten/Prog/sdk-beta-osx/c74support/max-includes/ext_user.h";
+ refType = 0;
+ };
+}
diff --git a/externals/grill/guitest/flgui.cpp b/externals/grill/guitest/flgui.cpp
new file mode 100644
index 00000000..86d8e4ea
--- /dev/null
+++ b/externals/grill/guitest/flgui.cpp
@@ -0,0 +1,646 @@
+#include "flgui.h"
+#include "flguiobj.h"
+#include "flinternal.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+
+#ifdef PD
+t_class *flext_gui::px_class = NULL;
+t_class *flext_gui::pxkey_class = NULL;
+
+struct flext_gui::px_object // no virtual table!
+{
+ t_object obj; // MUST reside at memory offset 0
+ t_canvas *canv;
+
+ void init(t_canvas *c) { canv = c; }
+};
+
+struct flext_gui::pxkey_object // no virtual table!
+{
+ t_object obj; // MUST reside at memory offset 0
+ flext_gui *th;
+
+ void init(flext_gui *t) { th = t; }
+};
+#endif
+
+
+flext_gui::flext_gui(int xs,int ys):
+ objs(NULL),
+#ifdef PD
+ xsize(xs),ysize(ys),
+#endif
+#ifdef MAXMSP
+ curx(-1),cury(-1),curmod(-1),
+ created(false),
+#endif
+ bindsym(NULL)
+{
+ canvas = new Canvas(thisCanvas());
+ objs = new GuiGroup(canvas);
+
+#ifdef PD
+ AddCanvas();
+#else
+ t_box *b = (t_box *)gensym("#B")->s_thing;
+
+ int x = b->b_rect.left,y = b->b_rect.top;
+ t_pxbox *p = thisHdr();
+ box_new(&p->z_box, thisCanvas(), F_DRAWFIRSTIN | F_GROWBOTH | F_SAVVY,x,y,x+xs,y+ys);
+ p->z_box.b_firstin = (void *)p; /* it's not really an inlet */
+ box_ready(&p->z_box);
+#endif
+}
+
+flext_gui::~flext_gui()
+{
+#ifdef PD
+ RmvCanvas();
+#endif
+
+ delete objs;
+ delete canvas;
+}
+
+
+void flext_gui::setup(t_class *c)
+{
+#ifdef PD
+ SetWidget(c);
+
+ pxkey_class = class_new(gensym("flext_gui key proxy"),NULL,NULL,sizeof(pxkey_object),CLASS_PD|CLASS_NOINLET, A_NULL);
+ add_anything(pxkey_class,pxkey_method);
+ pxkey = (pxkey_object *)pd_new(pxkey_class);
+
+ pd_bind(&pxkey_class,gensym("#keyname"));
+// pd_bind(&pxkey_class,gensym("#key"));
+// pd_bind(&pxkey_class,gensym("#keyup"));
+
+ gcanv = NULL;
+
+#ifdef DIRECT_TK
+ px_class = class_new(gensym("flext_gui proxy"),NULL,NULL,sizeof(px_object),CLASS_PD|CLASS_NOINLET, A_NULL);
+ add_anything(px_class,px_method);
+
+ gcm_motion = MakeSymbol("_tk_motion");
+ gcm_mousekey = MakeSymbol("_tk_mousekey");
+ gcm_mousewheel = MakeSymbol("_tk_mousewheel");
+ gcm_key = MakeSymbol("_tk_key");
+ gcm_destroy = MakeSymbol("_tk_destroy");
+#endif
+
+ // this is wrong if a modifier key is pressed during creation of the first object.....
+ curmod = 0;
+#else
+ addmess((method)sg_update, "update", A_CANT, A_NULL);
+ addmess((method)sg_click, "click", A_CANT, A_NULL);
+ addmess((method)sg_psave, "psave", A_CANT, A_NULL);
+ addmess((method)sg_bfont, "bfont", A_CANT, A_NULL);
+ addmess((method)sg_key, "key", A_CANT, A_NULL);
+ addmess((method)sg_bidle, "bidle", A_CANT, A_NULL);
+#endif
+}
+
+#ifdef PD
+
+int flext_gui::evmask = evMotion|evMouseDown|evKeyDown|evKeyUp;
+int flext_gui::curmod = 0;
+flext_gui::pxkey_object *flext_gui::pxkey = NULL;
+flext_gui::guicanv *flext_gui::gcanv = NULL;
+
+#ifdef DIRECT_TK
+const t_symbol *flext_gui::gcm_motion = NULL;
+const t_symbol *flext_gui::gcm_mousekey = NULL;
+const t_symbol *flext_gui::gcm_mousewheel = NULL;
+const t_symbol *flext_gui::gcm_key = NULL;
+const t_symbol *flext_gui::gcm_destroy = NULL;
+
+void flext_gui::px_method(px_object *obj,const t_symbol *s,int argc,t_atom *argv)
+{
+ guicanv *ix = gcanv;
+ for(; ix && ix->canv != obj->canv; ix = ix->nxt);
+
+ if(ix) {
+ CBParams parms;
+
+ if(s == gcm_motion) {
+ parms.kind = evMotion;
+ parms.pMotion.x = GetAInt(argv[0]);
+ parms.pMotion.y = GetAInt(argv[1]);
+ parms.pMotion.mod = GetAInt(argv[2]);
+ }
+ else if(s == gcm_mousekey) {
+ parms.kind = GetAInt(argv[0])?evMouseDown:evMouseUp;
+ parms.pMouseKey.x = GetAInt(argv[1]);
+ parms.pMouseKey.y = GetAInt(argv[2]);
+ parms.pMouseKey.b = GetAInt(argv[3]);
+ parms.pMouseKey.mod = GetAInt(argv[4]);
+ }
+ else if(s == gcm_mousewheel) {
+ parms.kind = evMouseWheel;
+ parms.pMouseWheel.x = GetAInt(argv[0]);
+ parms.pMouseWheel.y = GetAInt(argv[1]);
+ parms.pMouseWheel.mod = GetAInt(argv[2]);
+ parms.pMouseWheel.delta = GetAInt(argv[3]);
+ }
+ else if(s == gcm_key) {
+ parms.kind = GetAInt(argv[0])?evKeyDown:evKeyUp;
+ parms.pKey.k = GetAInt(argv[1]);
+ parms.pKey.a = GetAInt(argv[2]);
+// parms.pKey.n = GetAInt(argv[3]);
+ parms.pKey.mod = GetAInt(argv[4]);
+ }
+ else if(s == gcm_destroy) {
+// post("TK destroy");
+ DelCanvas(ix->canv);
+ }
+
+ if(parms.kind != evNone) {
+ for(canvobj *co = ix->head; co; co = co->nxt)
+ co->guiobj->m_Method(parms);
+ }
+
+ }
+ else
+ error("flext_gui: canvas not found!");
+}
+
+#endif
+
+static const char *extkeys[] = {
+ "Escape","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12",
+ "Prior","Next","Home","End","Delete","Insert",""
+};
+
+void flext_gui::pxkey_method(pxkey_object *obj,const t_symbol *s,int argc,t_atom *argv)
+{
+/*
+ if(s == sym_float && argc == 1) {
+ lastkey = GetInt(argv[0]);
+ }
+ else
+*/
+ if(s == sym_list && argc == 2) {
+ CBParams p;
+
+ bool down = GetABool(argv[0]);
+ const char *str = GetString(argv[1]);
+ int code = str[0];
+ int asc = code;
+ int mod = mod_None;
+ if(code && str[1] != 0) {
+ code = asc = 0;
+ if(GetSymbol(argv[1]) == MakeSymbol("Shift_L") || GetSymbol(argv[1]) == MakeSymbol("Shift_R")) {
+ code = 2001;
+ mod = mod_Shift;
+ }
+ else if(GetSymbol(argv[1]) == MakeSymbol("Control_L") || GetSymbol(argv[1]) == MakeSymbol("Control_R")) {
+ code = 2002;
+ mod = mod_Ctrl;
+ }
+ else if(GetSymbol(argv[1]) == MakeSymbol("Alt_L") || GetSymbol(argv[1]) == MakeSymbol("Alt_R")) {
+ code = 2003;
+ mod = mod_Alt;
+ }
+ else {
+ for(int i = 0;; ++i) {
+ const char *ci = extkeys[i];
+ if(!*ci) break;
+ if(GetSymbol(argv[1]) == MakeSymbol(ci)) {
+ code = 1000+i;
+ break;
+ }
+ }
+ }
+#ifdef DEBUG
+ else
+ post("unknown modifier %s",str);
+#endif
+ }
+
+ if(down) curmod |= mod;
+ else curmod &= ~mod;
+
+// post("Key down=%i c=%c mod=%i",down?1:0,code,curmod);
+
+ if(code || mod) {
+ // button is pressed
+ p.kind = down?evKeyDown:evKeyUp;
+ p.ext = true;
+ p.pKey.k = code; //lastkey;
+ p.pKey.a = asc;
+ p.pKey.mod = curmod;
+
+ for(guicanv *ix = gcanv; ix; ix = ix->nxt)
+ for(canvobj *ci = ix->head; ci; ci = ci->nxt)
+ ci->guiobj->m_Method(p);
+ }
+ }
+ else
+ post("flext_gui key proxy - unknown method");
+}
+
+
+flext_gui::guicanv::guicanv(t_canvas *c):
+ canv(c),nxt(NULL),ref(0),
+ head(NULL),tail(NULL)
+{
+ char tmp[25];
+ sprintf(tmp,"FLCANV%x",c);
+ sym = MakeSymbol(tmp);
+
+#ifdef DIRECT_TK
+ // proxy for canvas messages
+ (px = (px_object *)pd_new(px_class))->init(c);
+#endif
+}
+
+flext_gui::guicanv::~guicanv()
+{
+#ifdef DIRECT_TK
+ if(px) pd_free(&px->obj.ob_pd);
+#endif
+}
+
+void flext_gui::guicanv::Push(flext_gui *o)
+{
+ canvobj *co = new canvobj(o);
+ if(tail) tail->nxt = co;
+ tail = co;
+ if(!head) head = tail;
+
+ ++ref;
+}
+
+void flext_gui::guicanv::Pop(flext_gui *o)
+{
+ canvobj *prv = NULL,*ix = head;
+ for(; ix && ix->guiobj != o; prv = ix,ix = ix->nxt);
+
+ if(ix) {
+ --ref;
+ if(prv) prv->nxt = ix->nxt;
+ else head = ix->nxt;
+ if(!ix->nxt) tail = prv;
+ }
+ else
+ error("flext_gui: object not found in canvas!");
+}
+
+
+void flext_gui::AddCanvas()
+{
+ t_canvas *c = thisCanvas();
+ guicanv *prv = NULL,*ix = gcanv;
+ for(; ix && ix->canv != c; prv = ix,ix = ix->nxt);
+
+ if(ix) {
+ ix->Push(this);
+ }
+ else {
+ guicanv *nc = new guicanv(c);
+ if(prv) prv->nxt = nc;
+ else gcanv = nc;
+
+ nc->Push(this);
+
+#ifdef DIRECT_TK
+ pd_bind(&nc->px->obj.ob_pd,(t_symbol *)nc->sym);
+
+/*
+ // initialize new canvas object
+ sys_vgui("bind .x%x.c <Motion> {pd %s %s %%x %%y %%s \\;}\n",c,GetString(nc->sym),GetString(gcm_motion));
+
+ sys_vgui("bind .x%x.c <ButtonPress> {pd %s %s 1 %%x %%y %%b %%s \\;}\n",c,GetString(nc->sym),GetString(gcm_mousekey));
+ sys_vgui("bind .x%x.c <ButtonRelease> {pd %s %s 0 %%x %%y %%b %%s \\;}\n",c,GetString(nc->sym),GetString(gcm_mousekey));
+ sys_vgui("bind .x%x.c <MouseWheel> {pd %s %s %%x %%y %%s %%D \\;}\n",c,GetString(nc->sym),GetString(gcm_mousewheel));
+ sys_vgui("bind .x%x.c <KeyPress> {pd %s %s 1 %%k %%A %%N %%s \\;}\n",c,GetString(nc->sym),GetString(gcm_key));
+ sys_vgui("bind .x%x.c <KeyRelease> {pd %s %s 0 %%k %%A %%N %%s \\;}\n",c,GetString(nc->sym),GetString(gcm_key));
+
+ // what happend to objects in subpatchers?
+ sys_vgui("bind .x%x.c <Destroy> {pd %s %s \\;}\n",c,GetString(nc->sym),GetString(gcm_destroy));
+
+ // sys_vgui("bind .x%x.c <Visibility> {pd %s %s %x %s \\;}\n",c,GetString(nc->sym),"_tk_visibility",this);
+*/
+#endif
+ }
+}
+
+void flext_gui::RmvCanvas()
+{
+ guicanv *ix = gcanv;
+ for(; ix && ix->canv != thisCanvas(); ix = ix->nxt);
+
+ if(ix) {
+ ix->Pop(this);
+ if(!ix->Refs()) DelCanvas(thisCanvas());
+ }
+ else {
+ error("flext_gui: Canvas not found!");
+ }
+}
+
+void flext_gui::DelCanvas(t_canvas *c)
+{
+ guicanv *prv = NULL,*ix = gcanv;
+ for(; ix && ix->canv != c; prv = ix,ix = ix->nxt);
+
+ if(ix) {
+#ifdef DIRECT_TK
+ pd_unbind(&ix->px->obj.ob_pd,(t_symbol *)ix->sym);
+#endif
+
+ if(prv) prv->nxt = ix->nxt;
+ else gcanv = ix->nxt;
+ }
+ else {
+ error("flext_gui: Canvas not found!");
+ }
+}
+
+static GuiObj *GetGuiObj(const t_atom &a)
+{
+ GuiObj *th = NULL;
+ sscanf(flext::GetString(a),"%x",&th);
+ return th;
+}
+
+void flext_gui::g_Displace(int dx, int dy)
+{
+// post("Displace");
+
+ XLo(XLo()+dx);
+ YLo(YLo()+dy);
+
+ Group().MoveRel(dx,dy);
+ FixLines();
+}
+
+void flext_gui::g_Delete()
+{
+ objs->Clear();
+ DelLines();
+}
+
+
+
+t_widgetbehavior flext_gui::widgetbehavior;
+
+void flext_gui::SetWidget(t_class *c)
+{
+ // widgetbehavior struct MUST be resident... (static is just ok here)
+
+ widgetbehavior.w_getrectfn = sg_getrect;
+ widgetbehavior.w_displacefn = sg_displace;
+ widgetbehavior.w_selectfn = sg_select;
+ widgetbehavior.w_activatefn = NULL; //sg_activate;
+ widgetbehavior.w_deletefn = sg_delete;
+ widgetbehavior.w_visfn = sg_vis;
+ widgetbehavior.w_clickfn = sg_click;
+ widgetbehavior.w_propertiesfn = sg_properties;
+ widgetbehavior.w_savefn = sg_save;
+ class_setwidget(c, &widgetbehavior);
+}
+
+void flext_gui::sg_getrect(t_gobj *c, t_glist *,int *xp1, int *yp1, int *xp2, int *yp2)
+{
+ flext_gui *th = thisObject(c);
+ /*th->g_GetRect(*xp1,*yp1,*xp2,*yp2);*/
+ *xp1 = th->XLo(),*yp1 = th->YLo(),*xp2 = th->XHi(),*yp2 = th->YHi();
+}
+
+void flext_gui::sg_displace(t_gobj *c, t_glist *, int dx, int dy)
+{
+ thisObject(c)->g_Displace(dx,dy);
+}
+
+void flext_gui::sg_select(t_gobj *c, t_glist *, int selected)
+{
+// post("Select");
+
+ flext_gui *th = thisObject(c);
+ th->g_Edit(th->selected = (selected != 0));
+}
+
+void flext_gui::sg_vis(t_gobj *c, t_glist *, int vis)
+{
+ post("Visible %i",vis);
+
+ if(vis) {
+ flext_gui *g = thisObject(c);
+ g->g_Create();
+ g->Group().MoveRel(g->XLo(),g->YLo());
+ g->FixLines();
+ }
+}
+
+int flext_gui::sg_click(t_gobj *c, t_glist *,int xpix, int ypix, int shift, int alt, int dbl, int doit)
+{
+ flext_gui *g = thisObject(c);
+ CBParams p;
+ int x = xpix-g->XLo();
+ int y = ypix-g->YLo();
+
+ // PD bug: shift isn't reported for idle mousing
+// int mod = (alt?mod_Alt:0)+(shift?mod_Shift:0)+(dbl?mod_Double:0);
+
+ if(doit) {
+ // button is pressed
+ p.kind = evMouseDown;
+ p.pMouseKey.x = x;
+ p.pMouseKey.y = y;
+ p.pMouseKey.b = 1;
+ p.pMouseKey.mod = curmod; //mod;
+ }
+ else {
+ // only mouse position change
+ p.kind = evMotion;
+ p.pMotion.x = x;
+ p.pMotion.y = y;
+ p.pMotion.mod = curmod; //mod;
+ }
+ g->m_Method(p);
+ return 1;
+}
+
+void flext_gui::sg_delete(t_gobj *c, t_glist *)
+{
+ thisObject(c)->g_Delete();
+}
+
+void flext_gui::sg_properties(t_gobj *c, t_glist *)
+{
+ thisObject(c)->g_Properties();
+}
+
+void flext_gui::sg_save(t_gobj *c, t_binbuf *b)
+{
+ thisObject(c)->g_Save(b);
+}
+
+/*
+bool flext_gui::sg_Key(flext_base *c,int argc,t_atom *argv)
+{
+ return true;
+}
+
+bool flext_gui::sg_KeyNum(flext_base *c,int &keynum)
+{
+ flext_gui *g = dynamic_cast<flext_gui *>(c);
+ post("KeyNum %i",keynum);
+ return true;
+}
+
+bool flext_gui::sg_KeyUp(flext_base *c,int &keynum)
+{
+ flext_gui *g = dynamic_cast<flext_gui *>(c);
+ post("KeyUp %i",keynum);
+ return true;
+}
+*/
+
+#else // MAXMSP
+
+int flext_gui::evmask = evMotion|evMouseDown|evKeyDown;
+
+static void dragfun()
+{
+}
+
+static void tmfun()
+{
+}
+
+void flext_gui::sg_click(t_object *x, Point pt, short m)
+{
+ flext_gui *g = thisObject(x);
+ CBParams p(evMouseDown);
+ p.pMouseKey.x = pt.h-g->XLo();
+ p.pMouseKey.y = pt.v-g->YLo();
+ p.pMouseKey.b = 0;
+ p.pMouseKey.mod = (m&256?mod_Meta:0)+(m&512?mod_Shift:0)+(m&1024?mod_Caps:0)+(m&2048?mod_Alt:0)+(m&4096?mod_Ctrl:0);
+ g->m_Method(p);
+}
+
+void flext_gui::sg_update(t_object *x)
+{
+ flext_gui *g = thisObject(x);
+ if(!g->created) { g->g_Create(); g->created = true; }
+
+ // draw elements
+ g->Update();
+}
+
+void flext_gui::sg_psave (t_object *x, t_binbuf *dest) { thisObject(x)->g_Save(dest); }
+
+void flext_gui::sg_bfont (t_object *x, short size, short font) {}
+
+void flext_gui::sg_key (t_object *x, short keyvalue)
+{
+ flext_gui *g = thisObject(x);
+
+ CBParams p(evKeyDown);
+ p.pKey.k = keyvalue;
+ p.pKey.a = 0;
+ p.pKey.mod = 0;
+ g->m_Method(p);
+}
+
+void flext_gui::sg_enter (t_object *x) {}
+
+void flext_gui::sg_clipregion (t_object *x, RgnHandle *rgn, short *result) {}
+
+void flext_gui::sg_bidle (t_object *x)
+{
+ flext_gui *g = thisObject(x);
+ Point pnt; GetMouse(&pnt);
+
+ CBParams p(evMotion);
+ p.pMotion.x = pnt.h-g->XLo();
+ p.pMotion.y = pnt.v-g->YLo();
+ p.pMotion.mod = 0;
+
+ if(p.pMotion.x != g->curx || p.pMotion.y != g->cury || p.pMotion.mod != g->curmod) {
+ g->m_Method(p);
+ g->curx = p.pMotion.x;
+ g->cury = p.pMotion.y;
+ g->curmod = p.pMotion.mod;
+ }
+}
+
+void flext_gui::g_Displace(int dx, int dy)
+{
+}
+
+void flext_gui::g_Delete()
+{
+ objs->Clear();
+}
+
+void flext_gui::Update()
+{
+ box_ready(&thisHdr()->z_box);
+
+ if(Group().Canv().Pre(XLo(),YLo()))
+ Group().Draw();
+ Group().Canv().Post();
+}
+
+#endif // PD / MAXMSP
+
+void flext_gui::m_Method(const CBParams &p)
+{
+/*
+ switch(p.kind) {
+ case evMotion: {
+ // if(!g->Selected() || mod)
+ post("Motion: x=%i y=%i m=%i",p.pMotion.x,p.pMotion.y,p.pMotion.mod);
+ break;
+ }
+ case evMouseDown: {
+ post("MouseDown: x=%i y=%i b=%i m=%i",p.pMouseKey.x,p.pMouseKey.y,p.pMouseKey.b,p.pMouseKey.mod);
+ break;
+ }
+ case evMouseUp: {
+ post("MouseUp: x=%i y=%i b=%i m=%i",p.pMouseKey.x,p.pMouseKey.y,p.pMouseKey.b,p.pMouseKey.mod);
+ break;
+ }
+ case evMouseWheel: {
+ post("Mousewheel: x=%i y=%i m=%i d=%i",p.pMouseWheel.x,p.pMouseWheel.y,p.pMouseWheel.mod,p.pMouseWheel.delta);
+ break;
+ }
+ case evKeyDown: {
+ post("KeyDown: k=%i a=%i m=%i",p.pKey.k,p.pKey.a,p.pKey.mod);
+ break;
+ }
+ case evKeyUp: {
+ post("KeyUp: k=%i a=%i m=%i",p.pKey.k,p.pKey.a,p.pKey.mod);
+ break;
+ }
+ }
+*/
+ if(!Selected() || p.kind != evMotion || p.kind != evMouseDown || p.kind != evMouseUp)
+ Group().Method(*this,p);
+ }
+
+bool flext_gui::BindEvent(GuiSingle &o,bool (*cb)(flext_gui &o,GuiSingle &obj,const CBParams &p),int evs)
+{
+ if((evs&EventMask()) == evs) {
+ o.AddEvent(evs,cb);
+ return true;
+ }
+ else
+ // not all requested events supported
+ return false;
+}
+
+void flext_gui::UnbindEvent(GuiSingle &o,bool (*cb)(flext_gui &o,GuiSingle &obj,const CBParams &p),int evs)
+{
+ o.RmvEvent(evs,cb);
+}
+
+
diff --git a/externals/grill/guitest/flgui.h b/externals/grill/guitest/flgui.h
new file mode 100644
index 00000000..d9b302db
--- /dev/null
+++ b/externals/grill/guitest/flgui.h
@@ -0,0 +1,232 @@
+#ifndef __FLEXT_GUI
+#define __FLEXT_GUI
+
+#define FLEXT_VIRT
+#include <flext.h>
+
+#ifdef PD
+#pragma warning( disable : 4091 )
+#include <g_canvas.h>
+#endif
+
+class Canvas;
+class GuiObj;
+class GuiGroup;
+class GuiSingle;
+
+class flext_gui:
+ virtual public flext_base
+{
+ FLEXT_HEADER_S(flext_gui,flext_base,setup)
+
+public:
+ flext_gui(int xs,int ys);
+ ~flext_gui();
+
+ enum CBEvs {
+ evNone = 0,
+ evMotion = 0x01,
+ evMouseDown = 0x02,
+ evMouseUp = 0x04,
+ evMouseWheel = 0x08,
+ evKeyDown = 0x10,
+ evKeyUp = 0x20
+ };
+
+ class CBParams {
+ public:
+ CBParams(CBEvs k = evNone): kind(k),ext(false) {}
+
+ CBEvs kind;
+ union {
+ struct { int x,y,mod; } pMotion;
+ struct { int x,y,b,mod; } pMouseKey;
+ struct { int x,y,mod,delta; } pMouseWheel;
+ struct { int k,a,mod; } pKey;
+ };
+ bool ext;
+ };
+
+ static int EventMask() { return evmask; }
+
+ bool BindEvent(GuiSingle &o,bool (*cb)(flext_gui &o,GuiSingle &obj,const CBParams &p),int evs);
+ void UnbindEvent(GuiSingle &o,bool (*cb)(flext_gui &o,GuiSingle &obj,const CBParams &p),int evs);
+
+protected:
+
+ virtual void g_Create() {}
+ virtual void g_Delete();
+// virtual void g_GetRect(int &xp1,int &yp1,int &xp2,int &yp2);
+ virtual void g_Edit(bool selected) {}
+ virtual void g_Displace(int dx, int dy);
+// virtual void g_Activate(bool state) {}
+// virtual int g_Click(int xpix, int ypix, int shift, int alt, int dbl, int doit) { return 0; }
+ virtual void g_Properties() {}
+ virtual void g_Save(t_binbuf *b) {}
+/*
+ virtual bool g_Motion(GuiObj &obj,int x,int y,int mod) { return false; }
+ virtual bool g_MouseKey(GuiObj &obj,bool down,int x,int y,int b,int mod) { return false; }
+ virtual bool g_MouseWheel(GuiObj &obj,int x,int y,int d,int mod) { return false; }
+ virtual bool g_Key(GuiObj &obj,bool down,int k,int a,int n,int mod) { return false; }
+ virtual bool g_Region(GuiObj &obj,bool on,int mod) { return false; }
+ virtual bool g_Focus(GuiObj &obj,bool on,int mod) { return false; }
+*/
+
+#ifdef PD
+ bool Selected() const { return selected; }
+
+ void FixLines() { canvas_fixlinesfor( thisCanvas(), thisHdr() ); }
+ void DelLines() { canvas_deletelinesfor( glist_getcanvas(thisCanvas()), (t_text *)thisHdr()); }
+
+ int XLo() const { return thisHdr()->te_xpix; }
+ int YLo() const { return thisHdr()->te_ypix; }
+ int XHi() const { return XLo()+XSize()-1; }
+ int YHi() const { return YLo()+YSize()-1; }
+ void XLo(int x) { thisHdr()->te_xpix = x; }
+ void YLo(int y) { thisHdr()->te_ypix = y; }
+
+ int XSize() const { return xsize; }
+ int YSize() const { return ysize; }
+#else // MAXMSP
+ bool Selected() const { return box_ownerlocked((t_box *)(&thisHdr()->z_box)) == 0; }
+
+ void FixLines() {}
+ void DelLines() {}
+
+ int XLo() const { return thisHdr()->z_box.b_rect.left; }
+ int YLo() const { return thisHdr()->z_box.b_rect.top; }
+ int XHi() const { return thisHdr()->z_box.b_rect.right; }
+ int YHi() const { return thisHdr()->z_box.b_rect.bottom; }
+ void XLo(int x) { thisHdr()->z_box.b_rect.left = x; }
+ void YLo(int y) { thisHdr()->z_box.b_rect.top = y; }
+
+ int XSize() const { return XHi()-XLo()+1; }
+ int YSize() const { return YHi()-YLo()+1; }
+#endif
+
+ const t_symbol *Id() const { return bindsym; }
+
+ GuiGroup &Group() { return *objs; }
+
+
+// static void Setup(t_class *c);
+
+
+ enum Modifier {
+ mod_None = 0,
+ mod_Ctrl = 0x0001,
+ mod_Shift = 0x0002,
+ mod_Alt = 0x0004,
+ mod_Meta = 0x0008,
+ mod_Mod1 = 0x0010,
+ mod_Mod2 = 0x0020,
+ mod_Mod3 = 0x0040,
+ mod_Caps = 0x0080,
+ mod_Double = 0x0100,
+// mod_Triple = 0x0200,
+ mod_Button1 = 0x1000,
+ mod_Button2 = 0x2000,
+ mod_Button3 = 0x4000,
+ mod_Button4 = 0x8000
+ };
+
+private:
+ bool visible;
+ Canvas *canvas;
+ GuiGroup *objs;
+
+ const t_symbol *bindsym;
+
+ static int evmask;
+
+ static void setup(t_class *);
+
+ virtual void m_Method(const CBParams &p);
+
+#ifdef PD
+ bool selected;
+ int xsize,ysize;
+
+ static void sg_getrect(t_gobj *c, t_glist *,int *xp1, int *yp1, int *xp2, int *yp2);
+ static void sg_displace(t_gobj *c, t_glist *, int dx, int dy);
+ static void sg_select(t_gobj *c, t_glist *, int selected);
+// static void sg_activate(t_gobj *c, t_glist *, int state) { thisObject(c)->g_Activate(state != 0); }
+ static void sg_delete(t_gobj *c, t_glist *);
+ static void sg_vis(t_gobj *c, t_glist *, int vis);
+ static int sg_click(t_gobj *c, t_glist *,int xpix, int ypix, int shift, int alt, int dbl, int doit);
+ static void sg_properties(t_gobj *c, t_glist *);
+ static void sg_save(t_gobj *c, t_binbuf *b);
+// static void sg_motion(void *c, float dx,float dy) { thisObject((t_gobj *)c)->g_Motion(dx,dy); }
+
+ static bool sg_Key(flext_base *c,int argc,t_atom *argv);
+ static bool sg_KeyNum(flext_base *c,int &keynum);
+ static bool sg_KeyUp(flext_base *c,int &keynum);
+
+ static t_widgetbehavior widgetbehavior;
+ static void SetWidget(t_class *c);
+
+ struct px_object;
+ struct pxkey_object;
+ static int curmod; //,lastkey;
+ static pxkey_object *pxkey;
+
+ class canvobj {
+ public:
+ canvobj(flext_gui *go): guiobj(go),nxt(NULL) {}
+
+ flext_gui *guiobj;
+ canvobj *nxt;
+ };
+
+ class guicanv {
+ public:
+ guicanv(t_canvas *c);
+ ~guicanv();
+
+ int Refs() const { return ref; }
+ void Push(flext_gui *o);
+ void Pop(flext_gui *o);
+
+#ifdef DIRECT_TK
+ px_object *px;
+#endif
+ const t_symbol *sym;
+ t_canvas *canv;
+ guicanv *nxt;
+ canvobj *head,*tail;
+ int ref;
+ };
+
+ static guicanv *gcanv;
+ static const t_symbol *gcm_motion,*gcm_mousekey,*gcm_mousewheel,*gcm_key,*gcm_destroy;
+ static void px_method(px_object *c,const t_symbol *s,int argc,t_atom *argv);
+ static void pxkey_method(pxkey_object *c,const t_symbol *s,int argc,t_atom *argv);
+
+ void AddCanvas();
+ void RmvCanvas();
+ static void DelCanvas(t_canvas *c);
+
+public:
+ static t_class *px_class,*pxkey_class;
+ static void sg_tk(t_canvas *c,const t_symbol *s,int argc,t_atom *argv);
+
+#else
+ int curx,cury,curmod;
+ bool created;
+ static t_clock clock;
+ static t_qelem qelem;
+
+ void Update();
+
+ static void sg_click(t_object *x, Point pt, short modifiers);
+ static void sg_update(t_object *x);
+ static void sg_psave (t_object *x, t_binbuf *dest);
+ static void sg_bfont (t_object *x, short size, short font);
+ static void sg_key (t_object *x,short keyvalue);
+ static void sg_enter (t_object *x);
+ static void sg_clipregion (t_object *x, RgnHandle *rgn, short *result);
+ static void sg_bidle(t_object *x);
+#endif
+};
+
+#endif
diff --git a/externals/grill/guitest/flguiobj.cpp b/externals/grill/guitest/flguiobj.cpp
new file mode 100644
index 00000000..b845ae5e
--- /dev/null
+++ b/externals/grill/guitest/flguiobj.cpp
@@ -0,0 +1,801 @@
+#include "flguiobj.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+
+#define USETAGS
+
+#define BUFSIZE 20000
+#define ZONE 1000
+
+
+#ifdef PD
+bool Canvas::store = true;
+bool Canvas::debug = false;
+#endif
+
+Canvas::Canvas(t_canvas *c):
+ canvas(c)
+#ifdef PD
+ ,buffer(new char[BUFSIZE]),bufix(0),waiting(0)
+#endif
+{}
+
+Canvas::~Canvas()
+{
+#ifdef PD
+ if(buffer) delete[] buffer;
+#endif
+}
+
+#ifdef PD
+void Canvas::Send(const char *t)
+{
+ if(debug) post("GUI - %s",t);
+ sys_gui((char *)t);
+}
+
+void Canvas::SendBuf()
+{
+ if(bufix) {
+ Send(buffer);
+ bufix = 0;
+ }
+}
+
+void Canvas::ToBuf(const char *t)
+{
+ int len = strlen(t);
+ if(!len) return;
+
+ bool end = t[len-1] == '\n';
+ if((store && waiting) || !end) {
+ int nxt = bufix+len;
+ if(nxt >= BUFSIZE || (end && nxt >= BUFSIZE-ZONE)) SendBuf();
+
+ memcpy(buffer+bufix,t,len);
+ buffer[bufix += len] = 0;
+ }
+ else {
+ SendBuf();
+ Send(t);
+ }
+}
+
+Canvas &Canvas::TkC()
+{
+ char tmp[20];
+ sprintf(tmp,".x%x.c ",canvas);
+ ToBuf(tmp);
+ return *this;
+}
+
+Canvas &Canvas::TkE()
+{
+ ToBuf("\n");
+ return *this;
+}
+
+Canvas &Canvas::Tk(char *fmt,...)
+{
+ // int result, i;
+ char buf[2048];
+ va_list ap;
+
+ va_start(ap, fmt);
+ vsprintf(buf, fmt, ap);
+ ToBuf(buf);
+ va_end(ap);
+ return *this;
+}
+#endif
+
+bool Canvas::Pre(int x,int y)
+{
+ xpos = x,ypos = y;
+#ifdef PD
+ ++waiting;
+ return true;
+#else
+ svgp = patcher_setport(canvas);
+ if(svgp != NULL) {
+ GetForeColor(&svcol);
+ GetPenState(&svpen);
+ ::PenMode(patCopy);
+ return true;
+ }
+ else return false;
+#endif
+}
+
+void Canvas::Post()
+{
+#ifdef PD
+ if(!--waiting) SendBuf();
+#else
+ if(svgp) {
+ RGBForeColor(&svcol);
+ SetPenState(&svpen);
+ SetPort(svgp);
+ }
+#endif
+}
+
+
+// --------------------------------------------------------------------------
+
+
+Rect &Rect::Add(const Pnt &p)
+{
+ if(p.x < lo.x) lo.x = p.x;
+ if(p.y < lo.y) lo.y = p.y;
+ if(p.x > hi.x) hi.x = p.x;
+ if(p.y > hi.y) hi.y = p.y;
+ return *this;
+}
+
+Rect &Rect::Add(const Rect &r)
+{
+ if(r.lo.x < lo.x) lo.x = r.lo.x;
+ if(r.lo.y < lo.y) lo.y = r.lo.y;
+ if(r.hi.x > hi.x) hi.x = r.hi.x;
+ if(r.hi.y > hi.y) hi.y = r.hi.y;
+ return *this;
+}
+
+bool Rect::In(const Pnt &p) const
+{
+ return p.x >= lo.x && p.x <= hi.x && p.y >= lo.y && p.y <= hi.y;
+}
+
+bool Rect::Inter(const Rect &r) const
+{
+ return true;
+}
+
+
+// --------------------------------------------------------------------------
+
+
+GuiObj::GuiObj(Canvas *c,GuiGroup *p):
+ canvas(c),idsym(NULL),
+ parent(p)
+// ,ori(0,0)
+{}
+
+GuiObj::~GuiObj()
+{
+// Delete();
+}
+
+
+// --------------------------------------------------------------------------
+
+GuiSingle::Event::Event(int evmask,bool (*m)(flext_gui &g,GuiSingle &obj,const flext_gui::CBParams &p)):
+ methfl(evmask),method(m),ext(false),nxt(NULL)
+{}
+
+GuiSingle::Event::~Event() { if(nxt) delete nxt; }
+
+
+GuiSingle::GuiSingle(Canvas *c,GuiGroup *p,const t_symbol *s):
+ GuiObj(c,p),sym(s),active(false),event(NULL)
+{
+ char tmp[20];
+#ifdef __MWERKS__
+ std::
+#endif
+ sprintf(tmp,"GUI%x",this);
+ idsym = MakeSymbol(tmp);
+}
+
+GuiSingle::~GuiSingle()
+{
+ Delete();
+ if(event) delete event;
+}
+
+void GuiSingle::Symbol(const t_symbol *s)
+{
+ sym = s;
+}
+
+GuiSingle *GuiSingle::Find(const t_symbol *s)
+{
+ return sym == s?this:NULL;
+}
+
+GuiObj &GuiSingle::MoveTo(int x,int y)
+{
+#ifdef PD
+ if(active) {
+ canvas->TkC().Tk("coords %s %i %i\n",GetString(Id()), x, y);
+ }
+#endif
+ rect.MoveTo(x,y);
+ return *this;
+}
+
+GuiObj &GuiSingle::MoveRel(int dx,int dy)
+{
+#ifdef PD
+ if(active) {
+ canvas->TkC().Tk("move %s %i %i\n",GetString(Id()), dx, dy);
+ }
+#endif
+ rect.Move(dx,dy);
+ return *this;
+}
+
+GuiObj &GuiSingle::Delete()
+{
+#ifdef PD
+ if(active) {
+ canvas->TkC().Tk("delete -tags %s\n",GetString(Id()));
+ active = false;
+ }
+#endif
+ return *this;
+}
+
+GuiObj &GuiSingle::FillColor(unsigned long col)
+{
+#ifdef PD
+ if(active) {
+ canvas->TkC().Tk("itemconfigure %s -fill #%06x\n",GetString(Id()),col);
+ }
+#endif
+ return *this;
+}
+
+GuiObj &GuiSingle::Outline(unsigned long col)
+{
+#ifdef PD
+ if(active) {
+ canvas->TkC().Tk("itemconfigure %s -outline #%06x\n",GetString(Id()),col);
+ }
+#endif
+ return *this;
+}
+
+GuiObj &GuiSingle::Focus()
+{
+#ifdef PD
+ if(active) {
+ canvas->TkC().Tk("focus %s\n",GetString(Id()));
+ }
+#endif
+ return *this;
+}
+
+bool GuiSingle::Method(flext_gui &g,const flext_gui::CBParams &p)
+{
+ bool ret = true;
+ for(Event *ei = event; ei && ret; ei = ei->nxt)
+ ret = ret && ((ei->method && (ei->methfl&p.kind))?ei->method(g,*this,p):true);
+ return ret;
+}
+
+void GuiSingle::AddEvent(int evmask,bool (*m)(flext_gui &g,GuiSingle &obj,const flext_gui::CBParams &p))
+{
+ Event *prv = NULL,*ix = event;
+ for(; ix && ix->method != m; prv = ix,ix = ix->nxt) {}
+
+ if(ix)
+ // previous handler found -> update event mask
+ ix->methfl |= evmask;
+ else {
+ // no previous handler was found -> make new one
+
+ Event *nev = new Event(evmask,m);
+ if(prv) prv->nxt = nev;
+ else event = nev;
+ }
+}
+
+void GuiSingle::RmvEvent(int evmask,bool (*m)(flext_gui &g,GuiSingle &obj,const flext_gui::CBParams &p))
+{
+ Event *prv = NULL,*ix = event;
+ for(; ix && ix->method != m; prv = ix,ix = ix->nxt) {}
+
+ if(ix) {
+ // handler found
+
+ if(!(ix->methfl &= ~evmask)) {
+ // mask has become zero -> remove handler
+
+ if(prv) prv->nxt = ix->nxt;
+ else event = ix->nxt;
+ ix->nxt = NULL;
+ delete ix;
+ }
+ }
+}
+
+
+
+// --------------------------------------------------------------------------
+
+
+GuiGroup::GuiGroup(Canvas *c,GuiGroup *p):
+ GuiObj(c,p),head(NULL),tail(NULL)
+{
+ char tmp[20];
+#ifdef __MWERKS__
+ std::
+#endif
+ sprintf(tmp,"GRP%x",this);
+ idsym = MakeSymbol(tmp);
+}
+
+GuiGroup::~GuiGroup() { Clear(); }
+
+void GuiGroup::Clear()
+{
+ for(Part *ix = head; ix; ) {
+ Part *n = ix->nxt;
+#ifdef PD
+ RemoveTag(ix->obj);
+#endif
+ if(ix->owner) delete ix->obj;
+ delete ix;
+ ix = n;
+ }
+ head = tail = NULL;
+}
+
+void GuiGroup::Add(GuiObj *o,bool owner)
+{
+ o->canvas = canvas;
+#ifdef PD
+ AddTag(o); // valid only for GuiSingle!
+#endif
+ Part *n = new Part(o,owner);
+ if(!head) head = n;
+ else tail->nxt = n;
+ tail = n;
+
+ rect.Add(o->rect);
+}
+
+GuiSingle *GuiGroup::Find(const t_symbol *s)
+{
+ GuiSingle *r = NULL;
+ for(Part *ix = head; ix && !r; ix = ix->nxt) {
+ r = ix->obj->Find(s);
+ }
+ return r;
+}
+
+GuiSingle *GuiGroup::Detach(const t_symbol *s)
+{
+ if(head) {
+ Part *p = NULL,*ix = head;
+ while(ix) {
+ if(ix->obj->Symbol() == s) {
+ // found
+ if(p) p->nxt = ix->nxt;
+ GuiSingle *ret = (GuiSingle *)(ix->obj);
+
+#ifdef PD
+ RemoveTag(ret);
+#endif
+ if(head == ix) head = ix->nxt;
+ if(tail == ix) tail = p;
+
+ delete ix;
+
+ return ret;
+ }
+ else p = ix,ix = ix->nxt;
+ }
+ }
+ return NULL;
+}
+
+GuiObj &GuiGroup::MoveRel(int dx,int dy)
+{
+#ifdef PD
+ canvas->TkC().Tk("move %s %i %i\n",GetString(Id()), dx, dy);
+#endif
+ for(Part *ix = head; ix; ix = ix->nxt) {
+ ix->obj->rect.Move(dx,dy);
+ }
+ return *this;
+}
+
+GuiObj &GuiGroup::Delete()
+{
+#ifdef PD
+ canvas->TkC().Tk("delete -tags %s\n",GetString(Id()));
+
+ for(Part *ix = head; ix; ix = ix->nxt) ix->obj->Inactive();
+#endif
+ return *this;
+}
+
+
+GuiObj &GuiGroup::Draw()
+{
+ for(Part *ix = head; ix; ix = ix->nxt) ix->obj->Draw();
+ return *this;
+}
+
+
+#ifdef PD
+
+void GuiGroup::AddTag(GuiObj *o)
+{
+ canvas->TkC().Tk("addtag %s withtag %s\n",GetString(Id()),GetString(o->Id()));
+}
+
+void GuiGroup::RemoveTag(GuiObj *o)
+{
+ canvas->TkC().Tk("dtag %s %s\n",GetString(o->Id()),GetString(Id()));
+}
+
+#endif
+
+GuiGroup *GuiGroup::Add_Group()
+{
+ GuiGroup *obj = new GuiGroup(canvas,this);
+ Add(obj);
+ return obj;
+}
+
+
+GuiSingle *GuiGroup::Add_Point(int x,int y,long fill)
+{
+ GuiPoint *obj = new GuiPoint(canvas,this);
+ obj->Set(x,y,fill);
+ Add(obj);
+ return obj;
+}
+
+GuiSingle *GuiGroup::Add_Cloud(int n,const Pnt *p,long fill)
+{
+ GuiCloud *obj = new GuiCloud(canvas,this);
+ obj->Set(n,p,fill);
+ Add(obj);
+ return obj;
+}
+
+GuiSingle *GuiGroup::Add_Box(int x,int y,int xsz,int ysz,int width,long fill,long outl)
+{
+ GuiBox *obj = new GuiBox(canvas,this);
+ obj->Set(x,y,xsz,ysz,width,fill,outl);
+ Add(obj);
+ return obj;
+}
+
+GuiSingle *GuiGroup::Add_Rect(int x,int y,int xsz,int ysz,int width,long outl)
+{
+ GuiRect *obj = new GuiRect(canvas,this);
+ obj->Set(x,y,xsz,ysz,width,outl);
+ Add(obj);
+ return obj;
+}
+
+GuiSingle *GuiGroup::Add_Line(int x1,int y1,int x2,int y2,int width,long fill)
+{
+ GuiLine *obj = new GuiLine(canvas,this);
+ obj->Set(x1,y1,x2,y2,width,fill);
+ Add(obj);
+ return obj;
+}
+
+GuiSingle *GuiGroup::Add_Poly(int n,const Pnt *p,int width,long fill)
+{
+ GuiPoly *obj = new GuiPoly(canvas,this);
+ obj->Set(n,p,width,fill);
+ Add(obj);
+ return obj;
+}
+
+GuiSingle *GuiGroup::Add_Text(int x,int y,const char *txt,long fill,GuiText::just_t just)
+{
+ GuiText *obj = new GuiText(canvas,this);
+ obj->Set(x,y,txt,fill,just);
+ Add(obj);
+ return obj;
+}
+
+GuiSingle *GuiGroup::Remove(GuiSingle *go)
+{
+ for(Part *prv = NULL,*ix = head; ix; prv = ix,ix = ix->nxt)
+ if(ix->obj == go) {
+ if(prv) prv->nxt = ix->nxt;
+ else head = ix->nxt;
+ if(!head) tail = NULL;
+
+ GuiObj *ret = ix->obj;
+ delete ix;
+
+ if(head) {
+ rect = head->obj->rect;
+ for(ix = head->nxt; ix; ix = ix->nxt) rect.Add(ix->obj->rect);
+ }
+
+ return (GuiSingle *)ret;
+ }
+
+ return NULL;
+}
+
+bool GuiGroup::Method(flext_gui &g,const flext_gui::CBParams &p)
+{
+ bool go = true;
+ for(Part *ix = head; go && ix; ix = ix->nxt) go = go && ix->obj->Method(g,p);
+ return go;
+}
+
+
+// --------------------------------------------------------------------------
+
+
+GuiObj &GuiPoint::Set(int x,int y,long fl)
+{
+ Delete();
+ fill = fl;
+ rect(x,y,x,y);
+
+#ifdef PD
+ canvas->TkC();
+ canvas->Tk("create line %i %i %i %i -tags %s",x,y,x+1,y,GetString(Id()));
+ if(fill >= 0) canvas->Tk(" -fill #%06x",fill);
+ canvas->TkE();
+
+ active = true;
+#endif
+ return *this;
+}
+
+GuiObj &GuiPoint::Draw()
+{
+#ifdef MAXMSP
+#endif
+ return *this;
+}
+
+
+GuiObj &GuiCloud::Set(int n,const Pnt *p,long fl)
+{
+ int i;
+ Delete();
+
+ fill = fl;
+ pnt = new Pnt[pnts = n];
+ rect(pnt[0] = p[0],p[0]);
+ for(i = 1; i < n; ++i) rect.Add(pnt[i] = p[i]);
+
+#ifdef PD
+ canvas->TkC().Tk("create line");
+ for(i = 0; i < n; ++i)
+ canvas->Tk(" %i %i",p[i].X(),p[i].Y());
+ canvas->Tk(" -tags %s",GetString(Id()));
+ if(fill >= 0) canvas->Tk(" -fill #%06x",fill);
+ canvas->TkE();
+
+ active = true;
+#endif
+ return *this;
+}
+
+GuiObj &GuiCloud::Draw()
+{
+#ifdef MAXMSP
+#endif
+ return *this;
+}
+
+GuiObj &GuiCloud::Delete()
+{
+ if(pnt) { delete[] pnt; pnt = NULL; }
+ return *this;
+}
+
+
+GuiObj &GuiBox::Set(int x,int y,int xsz,int ysz,int wd,long fl,long outl)
+{
+ Delete();
+ rect(x,y,x+xsz-1,y+ysz-1);
+ width = wd,fill = fl,outln = outl;
+
+#ifdef PD
+ canvas->TkC().Tk("create rectangle %i %i %i %i -tags %s",x,y,x+xsz,y+ysz,GetString(Id()));
+ if(wd >= 0) canvas->Tk(" -width %i",wd);
+ if(fl >= 0) canvas->Tk(" -fill #%06x",fl);
+ if(outl >= 0) canvas->Tk(" -outline #%06x",outl);
+ canvas->TkE();
+
+ active = true;
+#endif
+ return *this;
+}
+
+GuiObj &GuiBox::Draw()
+{
+#ifdef MAXMSP
+ ::Rect r;
+ ::RGBColor col;
+ int w = width;
+ if(!w) w = 1;
+
+ r.left = Canv().X()+rect.Lo().X();
+ r.top = Canv().Y()+rect.Lo().Y();
+ r.right = Canv().X()+rect.Hi().X();
+ r.bottom = Canv().Y()+rect.Hi().Y();
+
+ if(width >= 0) {
+ col.red = (outln>>8)&0xff00;
+ col.green = outln&0xff00;
+ col.blue = (outln&0xff)<<8;
+ ::RGBForeColor(&col);
+ ::PenSize(w,w);
+ ::FrameRect(&r);
+ }
+ col.red = (fill>>8)&0xff00;
+ col.green = fill&0xff00;
+ col.blue = (fill&0xff)<<8;
+ ::RGBForeColor(&col);
+ ::PaintRect(&r);
+#endif
+ return *this;
+}
+
+
+GuiObj &GuiRect::Set(int x,int y,int xsz,int ysz,int wd,long outl)
+{
+ Delete();
+ rect(x,y,x+xsz-1,y+ysz-1);
+ width = wd,outln = outl;
+
+#ifdef PD
+ canvas->TkC().Tk("create line %i %i %i %i %i %i %i %i %i %i -tags %s",x,y,x+xsz,y,x+xsz,y+ysz,x,y+ysz,x,y,GetString(Id()));
+ if(width >= 0) canvas->Tk(" -width %i",width);
+ if(outl >= 0) canvas->Tk(" -fill #%06x",outl);
+ canvas->TkE();
+
+ active = true;
+#endif
+ return *this;
+}
+
+GuiObj &GuiRect::Draw()
+{
+#ifdef MAXMSP
+#endif
+ return *this;
+}
+
+
+GuiObj &GuiLine::Set(int x1,int y1,int x2,int y2,int wd,long fl)
+{
+ Delete();
+ rect(p1(x1,y1),p2(x2,y2));
+ width = wd,fill = fl;
+
+#ifdef PD
+ canvas->TkC().Tk("create line %i %i %i %i -tags %s",x1,y1,x2,y2,GetString(Id()));
+ if(width >= 0) canvas->Tk(" -width %i",width);
+ if(fill >= 0) canvas->Tk(" -fill #%06x",fill);
+ canvas->TkE();
+
+ active = true;
+#endif
+ return *this;
+}
+
+GuiObj &GuiLine::Draw()
+{
+#ifdef MAXMSP
+ ::Point p;
+ ::RGBColor col;
+ int w = width;
+ if(!w) w = 1;
+
+ col.red = (fill>>8)&0xff00;
+ col.green = fill&0xff00;
+ col.blue = (fill&0xff)<<8;
+ ::RGBForeColor(&col);
+ ::PenSize(w,w);
+ p.h = Canv().X()+p1.X();
+ p.v = Canv().Y()+p1.Y();
+ ::MoveTo(p.h,p.v);
+ p.h = Canv().X()+p2.X();
+ p.v = Canv().Y()+p2.Y();
+ ::LineTo(p.h,p.v);
+#endif
+ return *this;
+}
+
+
+GuiObj &GuiPoly::Set(int n,const Pnt *p,int wd,long fl)
+{
+ int i;
+
+ Delete();
+
+ width = wd,fill = fl;
+ pnt = new Pnt[pnts = n];
+ rect(pnt[0] = p[0],p[0]);
+ for(i = 1; i < n; ++i) rect.Add(pnt[i] = p[i]);
+
+#ifdef PD
+ canvas->TkC().Tk("create line");
+ for(i = 0; i < n; ++i)
+ canvas->Tk(" %i %i",p[i].X(),p[i].Y());
+ canvas->Tk(" -tags %s",GetString(Id()));
+ if(width >= 0) canvas->Tk(" -width %i",width);
+ if(fill >= 0) canvas->Tk(" -fill #%06x",fill);
+ canvas->TkE();
+
+ active = true;
+#endif
+ return *this;
+}
+
+GuiObj &GuiPoly::Draw()
+{
+#ifdef MAXMSP
+ ::Point p;
+ ::RGBColor col;
+ int ox = Canv().X(),oy = Canv().Y();
+ int w = width;
+ if(!w) w = 1;
+
+ col.red = (fill>>8)&0xff00;
+ col.green = fill&0xff00;
+ col.blue = (fill&0xff)<<8;
+ ::RGBForeColor(&col);
+ ::PenSize(w,w);
+ p.h = ox+pnt[0].X();
+ p.v = oy+pnt[0].Y();
+ ::MoveTo(p.h,p.v);
+ for(int i = 1; i < pnts; ++i) {
+ p.h = ox+pnt[i].X();
+ p.v = oy+pnt[i].Y();
+ ::LineTo(p.h,p.v);
+ }
+#endif
+ return *this;
+}
+
+GuiObj &GuiPoly::Delete()
+{
+ if(pnt) { delete[] pnt; pnt = NULL; }
+ return *this;
+}
+
+
+GuiObj &GuiText::Set(int x,int y,const char *txt,long fl,just_t jt)
+{
+ Delete();
+ rect(x,y,x,y);
+ fill = fl,just = jt;
+
+#ifdef PD
+ canvas->TkC().Tk("create text %i %i -tags %s",x,y,GetString(Id()));
+ if(txt) canvas->Tk(" -text %s",txt);
+ if(fill >= 0) canvas->Tk(" -fill #%06x",fill);
+ if(just != none) {
+ static const char justtxt[][7] = {"left","right","center"};
+ canvas->Tk(" -justify %s",justtxt[(int)just]);
+ }
+ canvas->TkE();
+
+ active = true;
+#endif
+ return *this;
+}
+
+GuiObj &GuiText::Draw()
+{
+#ifdef MAXMSP
+#endif
+ return *this;
+}
+
diff --git a/externals/grill/guitest/flguiobj.h b/externals/grill/guitest/flguiobj.h
new file mode 100644
index 00000000..807b0f07
--- /dev/null
+++ b/externals/grill/guitest/flguiobj.h
@@ -0,0 +1,362 @@
+#ifndef __FLGUIOBJ_H
+#define __FLGUIOBJ_H
+
+#define FLEXT_VIRT
+#include <flext.h>
+#include "flgui.h"
+
+
+class Canvas
+{
+public:
+ Canvas(t_canvas *c);
+ ~Canvas();
+
+#ifdef PD
+ Canvas &Tk(char *fmt,...);
+ Canvas &TkC();
+ Canvas &TkE();
+
+ void ToBuf(const char *t);
+#endif
+
+ bool Pre(int x,int y);
+ void Post();
+
+ int X() const { return xpos; }
+ int Y() const { return ypos; }
+
+protected:
+
+ t_canvas *canvas;
+ int xpos,ypos;
+
+#ifdef PD
+ void Send(const char *t);
+ void SendBuf();
+
+ static bool debug,store;
+
+ char *buffer;
+ int bufix;
+ int waiting;
+#else
+ PenState svpen;
+ RGBColor svcol;
+ GrafPtr svgp;
+#endif
+};
+
+
+class Pnt
+{
+public:
+ Pnt() {}
+ Pnt(const Pnt &p): x(p.x),y(p.y) {}
+ Pnt(int px,int py): x(px),y(py) {}
+
+ Pnt &operator =(const Pnt &p) { x = p.x,y = p.y; return *this; }
+ Pnt &operator ()(int px,int py) { x = px,y = py; return *this; }
+
+ Pnt &Move(int dx,int dy) { x += dx,y += dy; return *this; }
+
+ int X() const { return x; }
+ int Y() const { return y; }
+
+//protected:
+ int x,y;
+};
+
+class Rect
+{
+public:
+ Rect() {}
+ Rect(const Rect &r): lo(r.lo),hi(r.hi) {}
+ Rect(int xlo,int ylo,int xhi,int yhi): lo(xlo,ylo),hi(xhi,yhi) {}
+
+ Rect &operator =(const Rect &r) { lo = r.lo; hi = r.hi; return *this; }
+ Rect &operator ()(const Pnt &l,const Pnt &h) { lo = l; hi = h; return *this; }
+ Rect &operator ()(int xlo,int ylo,int xhi,int yhi) { lo(xlo,ylo); hi(xhi,yhi); return *this; }
+
+ Rect &Move(int dx,int dy) { lo.Move(dx,dy); hi.Move(dx,dy); return *this; }
+ Rect &MoveTo(int x,int y) { hi(x+hi.X()-lo.X(),y+hi.Y()-lo.Y()); lo(x,y); return *this; }
+
+ Pnt &Lo() { return lo; }
+ Pnt &Hi() { return hi; }
+ int SizeX() const { return hi.X()-lo.X()+1; }
+ int SizeY() const { return hi.Y()-lo.Y()+1; }
+
+ Rect &Add(const Pnt &p);
+ Rect &Add(const Rect &r);
+ bool In(const Pnt &p) const;
+ bool Inter(const Rect &r) const;
+
+protected:
+ Pnt lo,hi;
+};
+
+class GuiObj:
+ public flext
+{
+ friend class GuiGroup;
+public:
+ GuiObj(Canvas *c = NULL,GuiGroup *p = NULL);
+ virtual ~GuiObj();
+
+ const t_symbol *Id() const { return idsym; }
+ virtual const t_symbol *Symbol() const { return NULL; }
+
+ virtual void Active() {}
+ virtual void Inactive() {}
+
+/*
+ void Origin(int x,int y) { ori(x,y); }
+ void Origin(const Pnt &p) { ori = p; }
+ const Pnt &Origin() const { return ori; }
+ void OriMove(int dx,int dy) { ori.Move(dx,dy); }
+ int OriX() const { return ori.X(); }
+ int OriY() const { return ori.Y(); }
+*/
+
+ virtual GuiSingle *Find(const t_symbol *s) { return NULL; }
+ inline GuiSingle *Find(const char *s) { return Find(MakeSymbol(s)); }
+
+ virtual GuiObj &MoveRel(int dx,int dy) = 0;
+ virtual GuiObj &Focus() { return *this; }
+
+ virtual GuiObj &Draw() = 0;
+
+ Canvas &Canv() { return *canvas; }
+
+protected:
+ virtual GuiObj &Delete() = 0;
+
+ GuiGroup *parent;
+ Canvas *canvas;
+ const t_symbol *idsym;
+
+ virtual bool Method(flext_gui &g,const flext_gui::CBParams &p) = 0;
+
+ Rect rect;
+};
+
+
+class GuiSingle:
+ public GuiObj
+{
+ friend class flext_gui;
+public:
+ GuiSingle(Canvas *c = NULL,GuiGroup *p = NULL,const t_symbol *s = NULL);
+ ~GuiSingle();
+
+ virtual const t_symbol *Symbol() const { return sym; }
+ virtual void Symbol(const t_symbol *s);
+ void Symbol(const char *s) { Symbol(MakeSymbol(s)); }
+
+ virtual void Active() { active = true; }
+ virtual void Inactive() { active = false; }
+
+ virtual bool In(const Pnt &p) const { return false; }
+
+ virtual GuiSingle *Find(const t_symbol *s);
+ virtual GuiObj &MoveTo(int x,int y);
+ virtual GuiObj &MoveRel(int dx,int dy);
+ virtual GuiObj &FillColor(unsigned long col);
+ virtual GuiObj &Outline(unsigned long col);
+
+ virtual GuiObj &Focus();
+
+ GuiGroup &Parent() { return *parent; }
+
+protected:
+ virtual GuiObj &Delete();
+
+ const t_symbol *sym;
+ bool active;
+
+ class Event {
+ public:
+ Event(int evmask,bool (*m)(flext_gui &g,GuiSingle &obj,const flext_gui::CBParams &p));
+ ~Event();
+
+ int methfl;
+ bool (*method)(flext_gui &g,GuiSingle &obj,const flext_gui::CBParams &p);
+ bool ext;
+ Event *nxt;
+ } *event;
+
+ void AddEvent(int evmask,bool (*m)(flext_gui &g,GuiSingle &obj,const flext_gui::CBParams &p));
+ void RmvEvent(int evmask,bool (*m)(flext_gui &g,GuiSingle &obj,const flext_gui::CBParams &p));
+
+ virtual bool Method(flext_gui &g,const flext_gui::CBParams &p);
+};
+
+
+class GuiPoint:
+ public GuiSingle
+{
+ friend class GuiGroup;
+
+ GuiPoint(Canvas *c = NULL,GuiGroup *p = NULL,const t_symbol *s = NULL): GuiSingle(c,p,s) {}
+ GuiObj &Set(int x,int y,long fill = -1);
+ virtual GuiObj &Draw();
+
+ long fill;
+public:
+};
+
+
+class GuiCloud:
+ public GuiSingle
+{
+ friend class GuiGroup;
+
+ GuiCloud(Canvas *c = NULL,GuiGroup *p = NULL,const t_symbol *s = NULL): GuiSingle(c,p,s),pnt(NULL) {}
+ GuiObj &Set(int n,const Pnt *p,long fill = -1);
+ virtual GuiObj &Draw();
+ virtual GuiObj &Delete();
+
+ long fill;
+ int pnts;
+ Pnt *pnt;
+public:
+};
+
+
+class GuiBox:
+ public GuiSingle
+{
+ friend class GuiGroup;
+
+ GuiBox(Canvas *c = NULL,GuiGroup *p = NULL,const t_symbol *s = NULL): GuiSingle(c,p,s) {}
+ GuiObj &Set(int x,int y,int xsz,int ysz,int width = -1,long fill = -1,long outl = -1);
+ virtual GuiObj &Draw();
+
+ virtual bool In(const Pnt &p) const { return rect.In(p); }
+
+ int width;
+ long fill,outln;
+public:
+};
+
+
+class GuiRect:
+ public GuiSingle
+{
+ friend class GuiGroup;
+
+ GuiRect(Canvas *c = NULL,GuiGroup *p = NULL,const t_symbol *s = NULL): GuiSingle(c,p,s) {}
+ GuiObj &Set(int x,int y,int xsz,int ysz,int width = -1,long outl = -1);
+ virtual GuiObj &Draw();
+
+ virtual bool In(const Pnt &p) const { return rect.In(p); }
+
+ int width;
+ long outln;
+public:
+};
+
+
+class GuiLine:
+ public GuiSingle
+{
+ friend class GuiGroup;
+
+ GuiLine(Canvas *c = NULL,GuiGroup *p = NULL,const t_symbol *s = NULL): GuiSingle(c,p,s) {}
+ GuiObj &Set(int x1,int y1,int x2,int y2,int width = -1,long fill = -1);
+ virtual GuiObj &Draw();
+
+ int width;
+ long fill;
+ Pnt p1,p2;
+public:
+};
+
+
+class GuiPoly:
+ public GuiSingle
+{
+ friend class GuiGroup;
+
+ GuiPoly(Canvas *c = NULL,GuiGroup *p = NULL,const t_symbol *s = NULL): GuiSingle(c,p,s),pnt(NULL) {}
+ GuiObj &Set(int n,const Pnt *p,int width = -1,long fill = -1);
+ virtual GuiObj &Draw();
+ virtual GuiObj &Delete();
+
+ int width;
+ long fill;
+ int pnts;
+ Pnt *pnt;
+public:
+};
+
+
+class GuiText:
+ public GuiSingle
+{
+ friend class GuiGroup;
+public:
+ enum just_t { none = -1,left = 0,right,center };
+protected:
+ GuiText(Canvas *c = NULL,GuiGroup *p = NULL,const t_symbol *s = NULL): GuiSingle(c,p,s) {}
+ GuiObj &Set(int x,int y,const char *txt = NULL,long fill = -1,just_t just = none);
+ virtual GuiObj &Draw();
+
+ just_t just;
+ long fill;
+};
+
+
+class GuiGroup:
+ public GuiObj
+{
+ friend class flext_gui;
+public:
+ GuiGroup(Canvas *c,GuiGroup *p = NULL);
+ ~GuiGroup();
+
+ virtual GuiSingle *Find(const t_symbol *s);
+ virtual GuiObj &MoveRel(int dx,int dy);
+
+ void Clear();
+ void Add(GuiObj *o,bool own = true);
+ GuiSingle *Detach(const t_symbol *s);
+
+ virtual GuiObj &Draw();
+
+ GuiGroup *Add_Group();
+ GuiSingle *Add_Point(int x,int y,long fill = -1);
+ inline GuiSingle *Add_Point(const Pnt &p,long fill = -1) { return Add_Point(p.X(),p.Y(),fill); }
+ GuiSingle *Add_Cloud(int n,const Pnt *p,long fill = -1);
+ GuiSingle *Add_Box(int x,int y,int xsz,int ysz,int width = -1,long fill = -1,long outl = -1);
+ GuiSingle *Add_Rect(int x,int y,int xsz,int ysz,int width = -1,long outl = -1);
+ GuiSingle *Add_Line(int x1,int y1,int x2,int y2,int width = -1,long fill = -1);
+ inline GuiSingle *Add_Line(const Pnt &p1,const Pnt &p2,int width = -1,long fill = -1) { return Add_Line(p1.X(),p1.Y(),p2.X(),p2.Y(),width,fill); }
+ GuiSingle *Add_Poly(int n,const Pnt *p,int width = -1,long fill = -1);
+ GuiSingle *Add_Text(int x,int y,const char *txt,long fill = -1,GuiText::just_t just = GuiText::none);
+ inline GuiSingle *Add_Text(const Pnt &p,const char *txt,long fill = -1,GuiText::just_t just = GuiText::none) { return Add_Text(p.X(),p.Y(),txt,fill,just); }
+
+ GuiSingle *Remove(GuiSingle *obj);
+
+protected:
+#ifdef PD
+ void AddTag(GuiObj *o);
+ void RemoveTag(GuiObj *o);
+#endif
+
+ virtual GuiObj &Delete();
+
+ class Part
+ {
+ public:
+ Part(GuiObj *o,bool own = true): obj(o),owner(own),nxt(NULL) {}
+
+ GuiObj *obj;
+ bool owner;
+ Part *nxt;
+ } *head,*tail;
+
+ virtual bool Method(flext_gui &g,const flext_gui::CBParams &p);
+};
+
+#endif
diff --git a/externals/grill/guitest/guitest.dsp b/externals/grill/guitest/guitest.dsp
new file mode 100644
index 00000000..e7dcf20e
--- /dev/null
+++ b/externals/grill/guitest/guitest.dsp
@@ -0,0 +1,112 @@
+# Microsoft Developer Studio Project File - Name="guitest" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** NICHT BEARBEITEN **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=guitest - Win32 Debug
+!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
+!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
+!MESSAGE
+!MESSAGE NMAKE /f "guitest.mak".
+!MESSAGE
+!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
+!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
+!MESSAGE
+!MESSAGE NMAKE /f "guitest.mak" CFG="guitest - Win32 Debug"
+!MESSAGE
+!MESSAGE Für die Konfiguration stehen zur Auswahl:
+!MESSAGE
+!MESSAGE "guitest - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "guitest - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName "max/guitest"
+# PROP Scc_LocalPath "."
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "guitest - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "msvc\r"
+# PROP Intermediate_Dir "msvc\r"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GUITEST_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /W3 /GR /O2 /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext\source" /I "F:\prog\packs\wxwindows-2.3.2\include" /I "F:\prog\packs\wxwindows-2.3.2\lib\mswdll" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /YX /FD /c
+# SUBTRACT CPP /Fr
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0xc07 /d "NDEBUG"
+# ADD RSC /l 0xc07 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /libpath:"c:\programme\audio\pd\bin" /libpath:"f:\prog\max\flext\pd-msvc" /libpath:"F:\prog\packs\wxwindows-2.2.9\lib"
+
+!ELSEIF "$(CFG)" == "guitest - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "msvc\d"
+# PROP Intermediate_Dir "msvc\d"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GUITEST_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GR /ZI /Od /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext\source" /I "F:\prog\packs\wxwindows-2.3.2\include" /I "F:\prog\packs\wxwindows-2.3.2\lib\mswdlld" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /FR /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0xc07 /d "_DEBUG"
+# ADD RSC /l 0xc07 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib pd.lib flext_d-pdwin.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"c:\programme\audio\pd\bin" /libpath:"f:\prog\max\flext\pd-msvc" /libpath:"F:\prog\packs\wxwindows-2.3.2\lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "guitest - Win32 Release"
+# Name "guitest - Win32 Debug"
+# Begin Source File
+
+SOURCE=.\flgui.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\flgui.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\flguiobj.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\flguiobj.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\main.cpp
+# End Source File
+# End Target
+# End Project
diff --git a/externals/grill/guitest/main.cpp b/externals/grill/guitest/main.cpp
new file mode 100644
index 00000000..775a206b
--- /dev/null
+++ b/externals/grill/guitest/main.cpp
@@ -0,0 +1,152 @@
+#include "flgui.h"
+#include "flguiobj.h"
+
+#include <stdlib.h>
+/*
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+*/
+
+#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 303)
+#error You need at least flext version 0.3.3
+#endif
+
+
+#define V void
+#define I int
+#define C char
+#define BL bool
+#define L long
+#define UL unsigned long
+
+class guitest:
+public flext_gui,virtual public flext_base
+{
+ FLEXT_HEADER(guitest,flext_gui)
+
+public:
+ guitest(I argc,t_atom *argv);
+ ~guitest();
+
+ virtual void m_bang()
+ {
+ post("%s - bang!",thisName());
+ }
+
+protected:
+
+ virtual void g_Create();
+ virtual void g_Edit(bool selected);
+
+ static bool g_Motion(flext_gui &g,GuiSingle &obj,const CBParams &p);
+ static bool g_MouseKey(flext_gui &g,GuiSingle &obj,const CBParams &p);
+ static bool g_Key(flext_gui &g,GuiSingle &obj,const CBParams &p);
+
+ virtual void g_Properties();
+ virtual void g_Save(t_binbuf *b);
+
+private:
+ FLEXT_CALLBACK(m_bang);
+};
+
+FLEXT_NEW_V("guitest",guitest)
+
+
+void guitest::g_Create()
+{
+ GuiSingle *frame = Group().Add_Box(0,0,XSize(),YSize(),-1,0xE0E0E0);
+ frame->Symbol("rect1");
+ GuiSingle *wave = Group().Add_Box(8,10,XSize()-16,YSize()-11,0,0x4040FF);
+ Group().Add_Text(1,1,"Hula",-1);
+
+ I n = XSize()-16;
+ Pnt *p = new Pnt[n];
+ for(int i = 0; i < n; ++i) {
+ p[i](8+i,10+rand()%(YSize()-11));
+ }
+ Group().Add_Poly(n,p,-1,0xC0C0C0);
+ delete[] p;
+
+ if(!BindEvent(*frame,g_Motion,evMotion)) post("Motion not supported");
+ if(!BindEvent(*wave,g_MouseKey,evMouseDown)) post("MouseDown not supported");
+ if(!BindEvent(*wave,g_MouseKey,evKeyDown)) post("KeyDown not supported");
+ if(!BindEvent(*wave,g_MouseKey,evKeyUp)) post("KeyUp not supported");
+}
+
+void guitest::g_Properties()
+{
+ post("properties");
+}
+
+void guitest::g_Save(t_binbuf *b)
+{
+ post("save");
+#ifdef PD
+ binbuf_addv(b, "ssiis;", gensym("#X"),gensym("obj"),
+ (t_int)XLo(), (t_int)YLo(),MakeSymbol(thisName())
+ // here the arguments
+ );
+#else
+#endif
+}
+
+void guitest::g_Edit(bool selected)
+{
+ post("select is=%d", selected);
+
+ GuiSingle *obj = Group().Find(MakeSymbol("rect1"));
+ if(obj)
+ obj->Outline(selected?0xFF0000:0x000000);
+ else
+ post("obj not found");
+}
+
+bool guitest::g_Motion(flext_gui &g,GuiSingle &obj,const CBParams &p)
+{
+ if(p.kind == evMotion) {
+ post("Motion %s x:%i y:%i mod:%i",GetString(obj.Id()),p.pMotion.x,p.pMotion.y,p.pMotion.mod);
+ }
+ else
+ post("Motion");
+ return true;
+}
+
+bool guitest::g_MouseKey(flext_gui &g,GuiSingle &obj,const CBParams &p)
+{
+ if(p.kind == evMouseDown) {
+ post("MouseDown %s x:%i y:%i b:%i mod:%i",GetString(obj.Id()),p.pMouseKey.x,p.pMouseKey.y,p.pMouseKey.b,p.pMouseKey.mod);
+ }
+ else if(p.kind == evKeyDown) {
+ post("KeyDown %s asc:%i key:%i mod:%i",GetString(obj.Id()),p.pKey.a,p.pKey.k,p.pKey.mod);
+ }
+ else if(p.kind == evKeyUp) {
+ post("KeyUp %s asc:%i key:%i mod:%i",GetString(obj.Id()),p.pKey.a,p.pKey.k,p.pKey.mod);
+ }
+ return true;
+}
+
+bool guitest::g_Key(flext_gui &g,GuiSingle &obj,const CBParams &p)
+{
+ post("Key");
+ return true;
+}
+
+
+
+
+
+guitest::guitest(I argc,t_atom *argv):
+ flext_gui(400,100)
+{
+ AddInAnything();
+ AddOutInt(2);
+
+ FLEXT_ADDBANG(0,m_bang);
+}
+
+guitest::~guitest()
+{
+}
+
+
diff --git a/externals/grill/pool/pool.cpp b/externals/grill/pool/pool.cpp
index b45f0e87..d7304f57 100644
--- a/externals/grill/pool/pool.cpp
+++ b/externals/grill/pool/pool.cpp
@@ -29,19 +29,19 @@ static I compare(const S *a,const S *b)
static I compare(const A &a,const A &b)
{
- if(a.a_type == b.a_type) {
- switch(a.a_type) {
+ if(flext::GetType(a) == flext::GetType(b)) {
+ switch(flext::GetType(a)) {
case A_FLOAT:
- return compare(a.a_w.w_float,b.a_w.w_float);
+ return compare(flext::GetFloat(a),flext::GetFloat(b));
#ifdef MAXMSP
case A_LONG:
- return compare((I)a.a_w.w_long,(I)b.a_w.w_long);
+ return compare(flext::GetInt(a),flext::GetInt(b));
#endif
case A_SYMBOL:
- return compare(a.a_w.w_symbol,b.a_w.w_symbol);
+ return compare(flext::GetSymbol(a),flext::GetSymbol(b));
#ifdef PD
case A_POINTER:
- return a.a_w.w_gpointer == b.a_w.w_gpointer?0:(a.a_w.w_gpointer < b.a_w.w_gpointer?-1:1);
+ return flext::GetPointer(a) == flext::GetPointer(b)?0:(flext::GetPointer(a) < flext::GetPointer(b)?-1:1);
#endif
default:
LOG("pool - atom comparison: type not handled");
@@ -49,7 +49,7 @@ static I compare(const A &a,const A &b)
}
}
else
- return a.a_type < b.a_type?-1:1;
+ return flext::GetType(a) < flext::GetType(b)?-1:1;
}
@@ -368,18 +368,15 @@ static C *ReadAtom(C *c,A *a)
switch(s) {
case 0: // integer
#ifdef MAXMSP
- a->a_type = A_LONG;
- a->a_w.w_long = atol(m);
+ flext::SetInt(*a,atoi(m));
break;
#endif
case 1: // float
- a->a_type = A_FLOAT;
- a->a_w.w_float = (F)atof(m);
+ flext::SetFloat(*a,(F)atof(m));
break;
default: { // anything else is a symbol
C t = *c; *c = 0;
- a->a_type = A_SYMBOL;
- a->a_w.w_symbol = (S *)flext::MakeSymbol(m);
+ flext::SetString(*a,m);
*c = t;
break;
}
@@ -422,7 +419,7 @@ static V WriteAtom(ostream &os,const A &a)
break;
#endif
case A_SYMBOL:
- os << flext::GetString(a.a_w.w_symbol);
+ os << flext::GetString(flext::GetSymbol(a));
break;
}
}
diff --git a/externals/grill/pool/pool.cw b/externals/grill/pool/pool.cw
index b977091c..123cb10f 100755
--- a/externals/grill/pool/pool.cw
+++ b/externals/grill/pool/pool.cw
Binary files differ
diff --git a/externals/grill/pool/pool.help b/externals/grill/pool/pool.help
index 24d189b7..c4ce9d74 100755
--- a/externals/grill/pool/pool.help
+++ b/externals/grill/pool/pool.help
Binary files differ
diff --git a/externals/grill/py/scripts/sendrecv.py b/externals/grill/py/scripts/sendrecv.py
index f31eae2d..5b0cc1df 100644
--- a/externals/grill/py/scripts/sendrecv.py
+++ b/externals/grill/py/scripts/sendrecv.py
@@ -18,7 +18,12 @@ There are several classes exposing py/pyext features:
"""
-import pyext
+try:
+ import pyext
+except:
+ print "ERROR: This script must be loaded by the PD/Max pyext external"
+
+
from time import sleep
#################################################################
@@ -142,7 +147,7 @@ class ex3(pyext._class):
# make flower
self._tocanvas("obj",ori.real,ori.imag,"bng",20,250,50,0,"empty","yeah","empty",0,-6,64,8,-24198,-1,-1)
- for i in range(num):
+ for i in xrange(num):
l[i] = ori+rad*exp(complex(0,i*2*pi/num))
self._tocanvas("obj",l[i].real,l[i].imag,"bng",15,250,50,0,"empty","yeah"+str(i),"empty",0,-6,64,8,0,-1,-1)
self._tocanvas("connect",2,0,3+i,0)
@@ -153,7 +158,7 @@ class ex3(pyext._class):
sleep(1./(i+1))
# move objects around
- for i in range(200):
+ for i in xrange(200):
ix = randint(0,num-1)
l[ix] = ori+rad*complex(2*random()-1,2*random()-1)
self._send("yeah"+str(ix),"pos",l[ix].real,l[ix].imag)
@@ -162,7 +167,7 @@ class ex3(pyext._class):
# now delete
# this is not well-done... from time to time an object remains
self._tocanvas("editmode",1)
- for i in range(num):
+ for i in xrange(num):
self._tocanvas("mouse",l[i].real,l[i].imag,0,0)
self._tocanvas("cut")
diff --git a/externals/grill/py/scripts/simple.py b/externals/grill/py/scripts/simple.py
index 60cebec7..da35a6b4 100644
--- a/externals/grill/py/scripts/simple.py
+++ b/externals/grill/py/scripts/simple.py
@@ -63,7 +63,10 @@ pyext Usage:
"""
-import pyext
+try:
+ import pyext
+except:
+ print "ERROR: This script must be loaded by the PD/Max pyext external"
#################################################################
diff --git a/externals/grill/py/scripts/tcltk.py b/externals/grill/py/scripts/tcltk.py
index 154a51b1..04828a25 100644
--- a/externals/grill/py/scripts/tcltk.py
+++ b/externals/grill/py/scripts/tcltk.py
@@ -7,7 +7,11 @@
"""This is an example script for showing a nonsense tcl/tk application."""
-import pyext
+try:
+ import pyext
+except:
+ print "ERROR: This script must be loaded by the PD/Max pyext external"
+
from Tkinter import *
import random
@@ -40,7 +44,7 @@ class Application(Frame):
r = self.mcanv.create_rectangle(50,50,200,200)
self.mcanv.addtag_withtag('group',r)
- for i in range(500):
+ for i in xrange(500):
x = random.uniform(50,200)
y = random.uniform(50,200)
l = self.mcanv.create_line(x,y,x+1,y)
diff --git a/externals/grill/py/scripts/threads.py b/externals/grill/py/scripts/threads.py
index f7740bd3..ec0488d7 100644
--- a/externals/grill/py/scripts/threads.py
+++ b/externals/grill/py/scripts/threads.py
@@ -16,7 +16,11 @@ For threading support pyext exposes several function and variables
"""
-import pyext
+try:
+ import pyext
+except:
+ print "ERROR: This script must be loaded by the PD/Max pyext external"
+
from time import sleep
#################################################################
@@ -33,7 +37,7 @@ class ex1(pyext._class):
# method for bang to any inlet
def bang_(self,n):
- for i in range(self.loops):
+ for i in xrange(self.loops):
# if _shouldexit is true, the thread ought to stop
if self._shouldexit: break
diff --git a/externals/grill/xsample/source/main.cpp b/externals/grill/xsample/source/main.cpp
index 27d66338..85fea90d 100644
--- a/externals/grill/xsample/source/main.cpp
+++ b/externals/grill/xsample/source/main.cpp
@@ -24,10 +24,9 @@ V lib_setup()
FLEXT_DSP_SETUP(xgroove);
#ifdef MAXMSP
- // That's not the right place..... (doesn't work)
- finder_addclass((char *)"MSP Sampling",(char *)"xgroove~");
- finder_addclass((char *)"MSP Sampling",(char *)"xplay~");
- finder_addclass((char *)"MSP Sampling",(char *)"xrecord~");
+ finder_addclass((C *)"MSP Sampling",(C *)"xgroove~");
+ finder_addclass((C *)"MSP Sampling",(C *)"xplay~");
+ finder_addclass((C *)"MSP Sampling",(C *)"xrecord~");
#endif
}