├── ofxaddons_thumbnail.png ├── InstaFigurator ├── src │ ├── ofApp.cpp │ ├── ClickToResignView.h │ ├── KSImageView.h │ ├── ClickToResignView.m │ ├── main.cpp │ ├── DragItem.h │ ├── MainViewController.h │ ├── ofApp.h │ ├── KSImageView.mm │ ├── DragItem.cpp │ └── MainViewController.mm ├── bin │ └── data │ │ ├── frabk.ttf │ │ ├── AppToMonitorIcon-Default.png │ │ └── app_settings.xml ├── Makefile ├── Project.xcconfig ├── openFrameworks-Info.plist ├── config.make ├── Resources │ └── MainView.xib └── InstaFigurator.xcodeproj │ └── project.pbxproj ├── ReadMeImages ├── Screen Shot 2015-03-10 at 1.54.15 PM.png ├── Screen Shot 2015-03-10 at 4.52.06 PM.png ├── Screen Shot 2015-03-10 at 4.52.31 PM.png ├── Screen Shot 2015-03-10 at 4.53.05 PM.png └── Screen Shot 2015-03-14 at 7.52.25 PM.png ├── .gitignore ├── src ├── ofxMacUtilsWorkpaceNotificationsListener.h ├── ofxMacUtilsEncryption.h ├── ofxMacUtilsWorkspaceResponder.h ├── ofxMacUtilsSimpleSettings.h ├── ofxMacUtilsEncryption.cpp ├── ofxMacUtilsWorkspaceResponder.mm ├── ofxMacUtils.h ├── ofxMacUtilsSimpleSettings.cpp └── ofxMacUtils.mm ├── PowerNotifications ├── Makefile ├── src │ ├── main.cpp │ ├── ofApp.h │ └── ofApp.cpp ├── Project.xcconfig ├── openFrameworks-Info.plist ├── config.make └── PowerNotificationsExample.xcodeproj │ └── project.pbxproj └── README.md /ofxaddons_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NickHardeman/ofxMacUtils/HEAD/ofxaddons_thumbnail.png -------------------------------------------------------------------------------- /InstaFigurator/src/ofApp.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NickHardeman/ofxMacUtils/HEAD/InstaFigurator/src/ofApp.cpp -------------------------------------------------------------------------------- /InstaFigurator/bin/data/frabk.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NickHardeman/ofxMacUtils/HEAD/InstaFigurator/bin/data/frabk.ttf -------------------------------------------------------------------------------- /InstaFigurator/bin/data/AppToMonitorIcon-Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NickHardeman/ofxMacUtils/HEAD/InstaFigurator/bin/data/AppToMonitorIcon-Default.png -------------------------------------------------------------------------------- /ReadMeImages/Screen Shot 2015-03-10 at 1.54.15 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NickHardeman/ofxMacUtils/HEAD/ReadMeImages/Screen Shot 2015-03-10 at 1.54.15 PM.png -------------------------------------------------------------------------------- /ReadMeImages/Screen Shot 2015-03-10 at 4.52.06 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NickHardeman/ofxMacUtils/HEAD/ReadMeImages/Screen Shot 2015-03-10 at 4.52.06 PM.png -------------------------------------------------------------------------------- /ReadMeImages/Screen Shot 2015-03-10 at 4.52.31 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NickHardeman/ofxMacUtils/HEAD/ReadMeImages/Screen Shot 2015-03-10 at 4.52.31 PM.png -------------------------------------------------------------------------------- /ReadMeImages/Screen Shot 2015-03-10 at 4.53.05 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NickHardeman/ofxMacUtils/HEAD/ReadMeImages/Screen Shot 2015-03-10 at 4.53.05 PM.png -------------------------------------------------------------------------------- /ReadMeImages/Screen Shot 2015-03-14 at 7.52.25 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NickHardeman/ofxMacUtils/HEAD/ReadMeImages/Screen Shot 2015-03-14 at 7.52.25 PM.png -------------------------------------------------------------------------------- /InstaFigurator/src/ClickToResignView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ClickToResignView.h 3 | // WatchDog 4 | // 5 | // Created by Nick Hardeman on 8/29/14. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ClickToResignView : NSView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | */obj 2 | */bin/* 3 | *.layout 4 | *.mode1v3 5 | *.pbxuser 6 | *.app 7 | *.xcworkspacedata 8 | *.xcuserstate 9 | *.xcscheme 10 | */*.xcodeproj/xcuserdata 11 | */*.xcodeproj/project.xcworkspace 12 | */build/* 13 | .DS_Store 14 | 15 | # User-specific files 16 | *.suo 17 | *.user 18 | *.sln.docstates -------------------------------------------------------------------------------- /InstaFigurator/src/KSImageView.h: -------------------------------------------------------------------------------- 1 | // 2 | // KSImageView.h 3 | // ScenesSetup_Nick 4 | // 5 | // Created by Nick Hardeman on 8/26/14. 6 | // 7 | // 8 | 9 | #include "ofMain.h" 10 | 11 | // http://www.vigorouscoding.com/2013/01/getting-the-filename-of-an-image-dropped-on-a-nsimageview/ 12 | @interface KSImageView : NSImageView 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /src/ofxMacUtilsWorkpaceNotificationsListener.h: -------------------------------------------------------------------------------- 1 | // 2 | // ofxMacUtilsWorkpaceNotificationsListener.h 3 | // emptyExample 4 | // 5 | // Created by Nick Hardeman on 3/10/15. 6 | // 7 | // 8 | 9 | #pragma mark 10 | class ofxMacUtilsWorkpaceNotificationsListener { 11 | public: 12 | virtual void ofxMacUtilsWorkpaceNotificationReceived( int aType ) {} 13 | }; 14 | -------------------------------------------------------------------------------- /InstaFigurator/src/ClickToResignView.m: -------------------------------------------------------------------------------- 1 | // 2 | // ClickToResignView.m 3 | // WatchDog 4 | // 5 | // Created by Nick Hardeman on 8/29/14. 6 | // 7 | // 8 | 9 | #import "ClickToResignView.h" 10 | 11 | @implementation ClickToResignView 12 | 13 | 14 | - (void)mouseDown:(NSEvent *)event{ 15 | NSLog(@"We have a mouse down event"); 16 | [self.window makeFirstResponder:nil]; 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /InstaFigurator/Makefile: -------------------------------------------------------------------------------- 1 | # Attempt to load a config.make file. 2 | # If none is found, project defaults in config.project.make will be used. 3 | ifneq ($(wildcard config.make),) 4 | include config.make 5 | endif 6 | 7 | # make sure the the OF_ROOT location is defined 8 | ifndef OF_ROOT 9 | OF_ROOT=../../.. 10 | endif 11 | 12 | # call the project makefile! 13 | include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk 14 | -------------------------------------------------------------------------------- /PowerNotifications/Makefile: -------------------------------------------------------------------------------- 1 | # Attempt to load a config.make file. 2 | # If none is found, project defaults in config.project.make will be used. 3 | ifneq ($(wildcard config.make),) 4 | include config.make 5 | endif 6 | 7 | # make sure the the OF_ROOT location is defined 8 | ifndef OF_ROOT 9 | OF_ROOT=../../.. 10 | endif 11 | 12 | # call the project makefile! 13 | include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk 14 | -------------------------------------------------------------------------------- /src/ofxMacUtilsEncryption.h: -------------------------------------------------------------------------------- 1 | // 2 | // ofxMacUtilsEncryption.h 3 | // Configurator 4 | // 5 | // Created by Nick Hardeman on 3/14/15. 6 | // 7 | 8 | #pragma once 9 | #include "ofMain.h" 10 | 11 | class ofxMacUtilsEncryption { 12 | public: 13 | ofxMacUtilsEncryption(); 14 | 15 | void setPassphrase( string aPass ); 16 | void setSalt( string aSalt ); 17 | string getEncrypted( string aInput, bool bEncrypt ); 18 | 19 | string salt, passphrase; 20 | }; 21 | -------------------------------------------------------------------------------- /PowerNotifications/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "ofMain.h" 2 | #include "ofApp.h" 3 | #include "ofAppGLFWWindow.h" 4 | 5 | //======================================================================== 6 | int main( ){ 7 | 8 | ofAppGLFWWindow window; 9 | ofSetupOpenGL( &window, 1300, 600, OF_WINDOW ); // <-------- setup the GL context 10 | 11 | // this kicks off the running of my app 12 | // can be OF_WINDOW or OF_FULLSCREEN 13 | // pass in width and height too: 14 | ofRunApp( new ofApp() ); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /InstaFigurator/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "ofMain.h" 2 | #include "ofApp.h" 3 | #include "ofAppGLFWWindow.h" 4 | 5 | //======================================================================== 6 | int main( ){ 7 | 8 | ofAppGLFWWindow* win = new ofAppGLFWWindow(); 9 | // ofSetupOpenGL(1200, 760, OF_WINDOW); // <-------- setup the GL context 10 | 11 | // this kicks off the running of my app 12 | // can be OF_WINDOW or OF_FULLSCREEN 13 | // pass in width and height too: 14 | ofSetupOpenGL(win, 1300, 800, OF_WINDOW); 15 | ofRunApp( new ofApp() ); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/ofxMacUtilsWorkspaceResponder.h: -------------------------------------------------------------------------------- 1 | // 2 | // ofxMacUtilsWorkspaceResponder.h 3 | // emptyExample 4 | // 5 | // Created by Nick Hardeman on 3/10/15. 6 | // 7 | // 8 | 9 | #include 10 | #ifdef NOT_IN_OF 11 | #import 12 | #else 13 | #include "ofMain.h" 14 | #endif 15 | 16 | 17 | @interface ofxMacUtilsWorkspaceResponder : NSObject { 18 | BOOL bHasListeners; 19 | } 20 | 21 | - (id)init; 22 | - (void)dealloc; 23 | 24 | - (void)computerWillSleepNotification:(NSNotification *)notification; 25 | - (void)computerWillPowerOffotification:(NSNotification *)notification; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /InstaFigurator/Project.xcconfig: -------------------------------------------------------------------------------- 1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. 2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED 3 | OF_PATH = ../../.. 4 | 5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE 6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" 7 | 8 | //ICONS - NEW IN 0072 9 | ICON_NAME_DEBUG = icon-debug.icns 10 | ICON_NAME_RELEASE = icon.icns 11 | ICON_FILE_PATH = $(OF_PATH)/libs/openFrameworksCompiled/project/osx/ 12 | 13 | //IF YOU WANT AN APP TO HAVE A CUSTOM ICON - PUT THEM IN YOUR DATA FOLDER AND CHANGE ICON_FILE_PATH to: 14 | //ICON_FILE_PATH = bin/data/ 15 | 16 | OTHER_LDFLAGS = $(OF_CORE_LIBS) 17 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) 18 | 19 | GCC_PREPROCESSOR_DEFINITIONS=OFX_MAC_UTILS_USE_OBJ_C=1 20 | -------------------------------------------------------------------------------- /InstaFigurator/openFrameworks-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | cc.openFrameworks.ofapp 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | CFBundleIconFile 20 | ${ICON} 21 | 22 | 23 | -------------------------------------------------------------------------------- /PowerNotifications/Project.xcconfig: -------------------------------------------------------------------------------- 1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. 2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED 3 | OF_PATH = ../../.. 4 | 5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE 6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" 7 | 8 | //ICONS - NEW IN 0072 9 | ICON_NAME_DEBUG = icon-debug.icns 10 | ICON_NAME_RELEASE = icon.icns 11 | ICON_FILE_PATH = $(OF_PATH)/libs/openFrameworksCompiled/project/osx/ 12 | 13 | //IF YOU WANT AN APP TO HAVE A CUSTOM ICON - PUT THEM IN YOUR DATA FOLDER AND CHANGE ICON_FILE_PATH to: 14 | //ICON_FILE_PATH = bin/data/ 15 | 16 | OTHER_LDFLAGS = $(OF_CORE_LIBS) 17 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) 18 | 19 | GCC_PREPROCESSOR_DEFINITIONS=OFX_MAC_UTILS_USE_OBJ_C=1 20 | -------------------------------------------------------------------------------- /PowerNotifications/openFrameworks-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | cc.openFrameworks.ofapp 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | CFBundleIconFile 20 | ${ICON} 21 | 22 | 23 | -------------------------------------------------------------------------------- /PowerNotifications/src/ofApp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ofMain.h" 4 | #include "ofxMacUtils.h" 5 | 6 | class ofApp : public ofBaseApp, public ofxMacUtilsWorkpaceNotificationsListener { 7 | public: 8 | void setup(); 9 | void update(); 10 | void draw(); 11 | void exit(); 12 | 13 | void ofxMacUtilsWorkpaceNotificationReceived( int aEvent ); 14 | 15 | void keyPressed(int key); 16 | void keyReleased(int key); 17 | void mouseMoved(int x, int y); 18 | void mouseDragged(int x, int y, int button); 19 | void mousePressed(int x, int y, int button); 20 | void mouseReleased(int x, int y, int button); 21 | void windowResized(int w, int h); 22 | void dragEvent(ofDragInfo dragInfo); 23 | void gotMessage(ofMessage msg); 24 | 25 | vector< string > messages; 26 | }; 27 | -------------------------------------------------------------------------------- /InstaFigurator/src/DragItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // DragItem.h 3 | // ScenesSetup_Nick 4 | // 5 | // Created by Nick Hardeman on 8/25/14. 6 | // 7 | 8 | #pragma once 9 | #include "ofMain.h" 10 | 11 | class DragItem { 12 | public: 13 | DragItem(); 14 | DragItem( string aName, string aDisplayName ); 15 | 16 | void setup( string aName, string aDisplayName ); 17 | void setFile( string aPathToFile ); 18 | bool isValidFile( string aPathToFile ); 19 | void draw(); 20 | 21 | // returns true when the item can be accepted // 22 | bool dragEvent( ofDragInfo dragInfo ); 23 | void acceptAllFileTypes(); 24 | void acceptImages(); 25 | void acceptTypesText(); 26 | void acceptApps(); 27 | bool loadIcon( string aPath ); 28 | bool isFileImage(); 29 | bool isFileApp(); 30 | 31 | string getFormattedAcceptedFileTypesString(); 32 | 33 | string name; 34 | string displayName; 35 | ofRectangle rect; 36 | ofColor bgColor, outlineColor; 37 | float padding; 38 | 39 | ofFile file; 40 | 41 | protected: 42 | vector acceptedExts; 43 | ofImage icon; 44 | }; 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /InstaFigurator/bin/data/app_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/ofxMacUtilsSimpleSettings.h: -------------------------------------------------------------------------------- 1 | // 2 | // ofxMacUtilsSimpleSettings.h 3 | // WatchDog 4 | // 5 | // Created by Nick Hardeman on 3/13/15. 6 | // 7 | 8 | #pragma once 9 | #include "ofxXmlSettings.h" 10 | #include 11 | 12 | class ofxMacUtilsSimpleSettings { 13 | public: 14 | static ofxXmlSettings appSettings; 15 | 16 | static void addAppSetting(string aXmlName, int aVal); 17 | static void addAppSetting(string aXmlName, string aVal); 18 | static void addAppSetting(string aXmlName, float aVal); 19 | static void addAppSetting( ofParameter& aParam ); 20 | static void addAppSetting( ofParameter& aParam ); 21 | static void addAppSetting( ofParameter& aParam ); 22 | static void addAppSetting( ofParameter& aParam ); 23 | static void addAppSettings( ofParameterGroup& aGroup ); 24 | 25 | static string getAppSettingS(string aXmlName); 26 | static float getAppSettingF(string aXmlName); 27 | static int getAppSettingI(string aXmlName); 28 | static int getAppSetting( ofParameter& aParam ); 29 | static string getAppSetting( ofParameter& aParam ); 30 | static float getAppSetting( ofParameter& aParam ); 31 | static bool getAppSetting( ofParameter& aParam ); 32 | static void getAppSettings( ofParameterGroup& aGroup ); 33 | 34 | static void saveAppSettings( string aXmlName = "app_settings.xml" ); 35 | static bool loadAppSettings( string aXmlName = "app_settings.xml" ); 36 | static void loadWindowPosition(); 37 | static void loadWindowShape(); 38 | 39 | private: 40 | static bool bSettingsLoadedOk; 41 | }; 42 | -------------------------------------------------------------------------------- /InstaFigurator/src/MainViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // EmailViewController.h 3 | // ScenesSetup_Nick 4 | // 5 | // Created by Nick Hardeman on 8/26/14. 6 | // 7 | // 8 | 9 | #include "ofMain.h" 10 | #include "KSImageView.h" 11 | #include 12 | 13 | @interface MainViewController : NSViewController { 14 | 15 | IBOutlet NSImageView* desktopImageWell; 16 | IBOutlet NSImageView* loginImageWell; 17 | IBOutlet KSImageView* appImageWell; 18 | 19 | IBOutlet NSTextField* appname_lb; 20 | IBOutlet NSTextField* appstatus_tf; 21 | 22 | // IBOutlet NSTableView* networkTableView; 23 | IBOutlet NSTextView* consoleTextView; 24 | 25 | map< string, NSButton* > buttonMap; 26 | ofParameterGroup buttonParamsGroup; 27 | 28 | map< string, NSTextField* > textfieldMap; 29 | map< int, string > textfieldTagToNameMap; 30 | ofParameterGroup textfieldParamsGroup; 31 | 32 | } 33 | 34 | - (void)update; 35 | 36 | - (void)receiveNotification:(NSNotification *)notification; 37 | 38 | - (bool)setupCheckBoxesForParams:(ofParameterGroup&)aParamsGroup; 39 | - (IBAction)buttonPressed:(id)sender; 40 | - (void)setCheckBox:(ofParameter)aParam; 41 | - (void)setCheckBoxEnabled:(ofParameter)aParam enabled:(bool)bEnabled; 42 | 43 | - (bool)setupTextfieldsForParams:(ofParameterGroup&)aParamsGroup; 44 | - (void)updateAllTextfieldParams; 45 | - (IBAction)textfieldChange:(id)sender; 46 | - (bool)setTextfieldText:(ofParameter)aParam; 47 | - (string)getTextfieldText:(ofParameter)aParam; 48 | 49 | - (void)setDeskTopBgImagePath:(string)aPath; 50 | - (void)setLoginImagePath:(string)aPath; 51 | - (void)setAppImagePath:(string)aPath; 52 | 53 | - (void)setAppName:(string)aAppName; 54 | 55 | - (IBAction)applyAllSettings:(id)sender; 56 | 57 | - (IBAction)deskTopBgImageSelected:(id)sender; 58 | - (IBAction)loginImageSelected:(id)sender; 59 | 60 | -(void)addToConsoleLog:(string)aLogMessage bScroll:(bool)aBScroll; 61 | -(void)trimConsoleString:(int)aNumLines; 62 | 63 | @end 64 | -------------------------------------------------------------------------------- /src/ofxMacUtilsEncryption.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // ofxMacUtilsEncryption.cpp 3 | // Configurator 4 | // 5 | // Created by Nick Hardeman on 3/14/15. 6 | // 7 | 8 | #include "ofxMacUtilsEncryption.h" 9 | 10 | #include "Poco/Crypto/CipherKey.h" 11 | #include "Poco/Crypto/Cipher.h" 12 | #include "Poco/Crypto/CipherFactory.h" 13 | 14 | //-------------------------------------------------------------- 15 | ofxMacUtilsEncryption::ofxMacUtilsEncryption() { 16 | setSalt( "thisIsTheDefaultSalt_callSetSaltToChangeIt" ); 17 | setPassphrase( "openframeworks_cc" ); 18 | } 19 | 20 | //-------------------------------------------------------------- 21 | void ofxMacUtilsEncryption::setPassphrase( string aPass ) { 22 | passphrase = aPass; 23 | } 24 | 25 | //-------------------------------------------------------------- 26 | void ofxMacUtilsEncryption::setSalt( string aSalt ) { 27 | salt = aSalt; 28 | } 29 | 30 | //-------------------------------------------------------------- 31 | string ofxMacUtilsEncryption::getEncrypted( string aInput, bool bEncrypt ) { 32 | 33 | if( aInput == "" ) { 34 | cout << "getEncrypted :: password is empty " << endl; 35 | return ""; 36 | } 37 | 38 | string password = aInput; 39 | Poco::Crypto::CipherKey key( "des3", passphrase, salt ); 40 | 41 | Poco::Crypto::CipherFactory& factory = Poco::Crypto::CipherFactory::defaultFactory(); 42 | 43 | string encrypted = ""; 44 | string decrypted = ""; 45 | 46 | try { 47 | Poco::Crypto::Cipher* pCipher = factory.createCipher( key ); 48 | encrypted = pCipher->encryptString(aInput, Poco::Crypto::Cipher::ENC_BASE64); 49 | 50 | if( !bEncrypt ) { 51 | decrypted = pCipher->decryptString( aInput, Poco::Crypto::Cipher::ENC_BASE64); 52 | } 53 | } catch( Poco::Exception& e ) { 54 | cout << "Error : " << e.displayText() << endl; 55 | return ""; 56 | } 57 | 58 | if( bEncrypt ) return encrypted; 59 | return decrypted; 60 | } 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /src/ofxMacUtilsWorkspaceResponder.mm: -------------------------------------------------------------------------------- 1 | // 2 | // ofxMacUtilsWorkspaceResponder.m 3 | // emptyExample 4 | // 5 | // Created by Nick Hardeman on 3/10/15. 6 | // 7 | // 8 | 9 | #import "ofxMacUtilsWorkspaceResponder.h" 10 | #include "ofxMacUtils.h" 11 | 12 | @implementation ofxMacUtilsWorkspaceResponder 13 | 14 | - (id) init { 15 | self = [super init]; //calls init because UIResponder has no custom init methods 16 | if (self){ 17 | NSNotificationCenter *nc = [[NSWorkspace sharedWorkspace] notificationCenter]; 18 | 19 | //register for shutdown notications 20 | [nc addObserver:self 21 | selector:@selector(computerWillPowerOffotification:) 22 | name:NSWorkspaceWillPowerOffNotification object:nil]; 23 | 24 | 25 | [nc addObserver:self 26 | selector:@selector(computerWillSleepNotification:) 27 | name:NSWorkspaceWillSleepNotification object:nil]; 28 | 29 | NSLog(@"ofxMacUtilsWorkspaceResponder :: init "); 30 | bHasListeners = true; 31 | } 32 | 33 | return self; 34 | } 35 | 36 | - (void)dealloc { 37 | if( bHasListeners ) { 38 | NSNotificationCenter *nc = [[NSWorkspace sharedWorkspace] notificationCenter]; 39 | [nc removeObserver:self]; 40 | NSLog(@"ofxMacUtilsWorkspaceResponder :: dealloc "); 41 | bHasListeners = false; 42 | } 43 | [super dealloc]; 44 | } 45 | 46 | - (void)computerWillSleepNotification:(NSNotification *)notification { 47 | NSLog(@"computerWillSleepNotification name: %@ print out: %@", [notification name], notification ); 48 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 49 | ofxMacUtils::receivedNotificationFromResponder( ofxMacUtils::NS_WS_EVENT_SLEEP ); 50 | #endif 51 | } 52 | 53 | - (void) computerWillPowerOffotification:(NSNotification *)notification { 54 | NSLog(@"receiveLogOutShutDownNote name: %@ print out: %@", [notification name], notification ); 55 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 56 | ofxMacUtils::receivedNotificationFromResponder( ofxMacUtils::NS_WS_EVENT_POWER_DOWN ); 57 | #endif 58 | } 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ofxMacUtils 2 | 3 | This class includes functions to make it easier to work with OSX applications. 4 | It was designed to configure OSX for long term installations. 5 | Tested with OF v.0.08 and OSX 10.8 - 10.10. 6 | 7 | This addon is evolving and new functionality is currently being added. 8 | 9 | ### CAUTION 10 | Some of this functionality can be difficult to undo, for example accidentally turning off screen sharing on a remote computer you don't have access to. 11 | 12 | ### Instafigurator 13 | Added a GUI to easily configure a mac for a long term installtion. 14 | ![Instafigurator](https://github.com/NickHardeman/ofxMacUtils/blob/master/ReadMeImages/Screen%20Shot%202015-03-14%20at%207.52.25%20PM.png) 15 | 16 | ### Example Functionality: 17 | * Set Wifi to on, off. 18 | * Set GateKeeper 19 | * Disable Notification Center 20 | * Disable / Enable Software Updates 21 | * Disable Bluetooth and its notifications 22 | * Disable Screen Saver 23 | * Disable Power Saver 24 | * Set the Desktop Image 25 | * Take screen captures on all monitors 26 | * Many more functions... 27 | 28 | If you want to use some of the functionality, you need to activate some objective-c functionality. Add the following line to the project.xcconfig. 29 | ![project.xcconfig](https://github.com/NickHardeman/ofxMacUtils/blob/master/ReadMeImages/Screen%20Shot%202015-03-10%20at%204.52.06%20PM.png) 30 | 31 | Any files that will be using ofxMacUtils with OFX_MAC_UTILS_USE_OBJ_C active need to be set to compile as Objective-C++ Source. You can do that by selecting the file and changing the type drop down to Objective-C++ Source. Don't forget to change main.cpp also! If you are still having trouble, try Project > Clean and then build again. See image below. 32 | ![Change source on main.cpp](https://github.com/NickHardeman/ofxMacUtils/blob/master/ReadMeImages/Screen%20Shot%202015-03-10%20at%204.52.31%20PM.png) 33 | 34 | You can also set all the files in your project to compile as Objective-C++ Source in the Build Settings of the project. Using this method, you don't have to change each file individually, but all of your files need to be compatible with Objective-C++ (.h, .cpp, .mm, .m, etc.). See Image below. 35 | ![Change source on project](https://github.com/NickHardeman/ofxMacUtils/blob/master/ReadMeImages/Screen%20Shot%202015-03-10%20at%204.53.05%20PM.png) 36 | 37 | Receiving this message? Look at the included PowerNotifications example on how to avoid it. 38 | ![Log Out Message](https://github.com/NickHardeman/ofxMacUtils/blob/master/ReadMeImages/Screen%20Shot%202015-03-10%20at%201.54.15%20PM.png) 39 | 40 | -------------------------------------------------------------------------------- /PowerNotifications/src/ofApp.cpp: -------------------------------------------------------------------------------- 1 | #include "ofApp.h" 2 | #include "ofAppGLFWWindow.h" 3 | 4 | //-------------------------------------------------------------- 5 | void ofApp::setup() { 6 | ofSetLogLevel( OF_LOG_VERBOSE ); 7 | ofxMacUtils::addWorkspaceNotificationsListener( this ); 8 | } 9 | 10 | //-------------------------------------------------------------- 11 | void ofApp::update(){ 12 | 13 | } 14 | 15 | //-------------------------------------------------------------- 16 | void ofApp::draw() { 17 | ofSetColor( 60, 60, 60 ); 18 | for( int i = 0; i < messages.size(); i++ ) { 19 | ofDrawBitmapString( messages[i], 30, 46 + (float)i * 30 ); 20 | } 21 | } 22 | 23 | //-------------------------------------------------------------- 24 | void ofApp::exit() { 25 | cout << "ofApp :: exit " << endl; 26 | messages.push_back( "Exit "+ofToString( ofGetElapsedTimef(), 0)); 27 | ofxMacUtils::removeAllNotificationsListeners(); 28 | } 29 | 30 | //-------------------------------------------------------------- 31 | void ofApp::ofxMacUtilsWorkpaceNotificationReceived( int aEvent ) { 32 | cout << "ofApp :: received a notification " << ofGetFrameNum() << endl; 33 | if( aEvent == ofxMacUtils::NS_WS_EVENT_POWER_DOWN ) { 34 | messages.push_back( "power down notification: " + ofToString( ofGetElapsedTimef(), 0) ); 35 | ofExit(); 36 | } 37 | } 38 | 39 | //-------------------------------------------------------------- 40 | void ofApp::keyPressed(int key){ 41 | if( key == 'e' ) { 42 | ofExit(); 43 | } 44 | } 45 | 46 | //-------------------------------------------------------------- 47 | void ofApp::keyReleased(int key){ 48 | 49 | } 50 | 51 | //-------------------------------------------------------------- 52 | void ofApp::mouseMoved(int x, int y){ 53 | 54 | } 55 | 56 | //-------------------------------------------------------------- 57 | void ofApp::mouseDragged(int x, int y, int button){ 58 | 59 | } 60 | 61 | //-------------------------------------------------------------- 62 | void ofApp::mousePressed(int x, int y, int button){ 63 | 64 | } 65 | 66 | //-------------------------------------------------------------- 67 | void ofApp::mouseReleased(int x, int y, int button){ 68 | 69 | } 70 | 71 | //-------------------------------------------------------------- 72 | void ofApp::windowResized(int w, int h){ 73 | 74 | } 75 | 76 | //-------------------------------------------------------------- 77 | void ofApp::gotMessage(ofMessage msg){ 78 | 79 | } 80 | 81 | //-------------------------------------------------------------- 82 | void ofApp::dragEvent(ofDragInfo dragInfo){ 83 | 84 | } -------------------------------------------------------------------------------- /InstaFigurator/src/ofApp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ofMain.h" 4 | #include "ofxMacUtils.h" 5 | #include "ofxMacUtilsEncryption.h" 6 | #include "ofxMacUtilsSimpleSettings.h" 7 | #include "MainViewController.h" 8 | 9 | class ofApp : public ofBaseApp, public ofThread { 10 | public: 11 | 12 | void setup(); 13 | void update(); 14 | void draw(); 15 | void exit(); 16 | 17 | void applySettings(); 18 | void saveIconImageForApp( string aAppPath, string aIconPath, int aSize=0 ); 19 | 20 | void desktopImageSelected( NSImage* aImage ); 21 | void loginImageSelected( NSImage* aImage ); 22 | void appSelected( string aAbsPath ); 23 | 24 | void createDesktopImageFromWithString( string aString ); 25 | 26 | void keyPressed(int key); 27 | void keyReleased(int key); 28 | void mouseMoved(int x, int y); 29 | void mouseDragged(int x, int y, int button); 30 | void mousePressed(int x, int y, int button); 31 | void mouseReleased(int x, int y, int button); 32 | void windowResized(int w, int h); 33 | void dragEvent(ofDragInfo dragInfo); 34 | void gotMessage(ofMessage msg); 35 | 36 | 37 | MainViewController* mainViewController; 38 | 39 | ofParameter appToMonitor; 40 | ofFile appToMonitorFile; 41 | ofParameter bAddAsLoginItem; 42 | ofParameter rootPassword; 43 | 44 | ofParameter appIconImagePath; 45 | ofParameter desktopImagePath; 46 | ofParameter loginImagePath; 47 | 48 | ofParameter bDisableScreenSaver; 49 | ofParameter bDisableSoftwareUpdates; 50 | ofParameter bDisableGateKeeper; 51 | ofParameter bDisableSleepSettings; 52 | ofParameter bDisableSendDiagnostics; 53 | 54 | ofParameter bSetDesktopImage; 55 | ofParameter bSetLoginImage; 56 | ofParameter bScreenSharing; 57 | ofParameter bDisableFirewall; 58 | ofParameter bDisableWIFI; 59 | 60 | ofParameter bDisableNotificationCenter; 61 | ofParameter bDisableCrashReporterDialog; 62 | ofParameter bDisableBluetooth; 63 | ofParameter bDisableBluetoothAssistant; 64 | ofParameter bRestartOnPowerFailure; 65 | 66 | ofParameter mostRecentCrashReportPath; 67 | ofParameter mostRecentCrashReportDateFormatted; 68 | ofParameter ipAddress; 69 | 70 | ofParameter computerName; 71 | ofParameter bSetComputerName; 72 | ofParameter computerLocalHostname; 73 | ofParameter currentUserName; 74 | 75 | ofParameter bGenerateDesktopImage; 76 | 77 | ofParameterGroup paramsGroup; 78 | 79 | stringstream ourCoutIn; 80 | static ostream ourCoutOut; 81 | 82 | ofxMacUtilsEncryption encryption; 83 | 84 | }; 85 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /InstaFigurator/src/KSImageView.mm: -------------------------------------------------------------------------------- 1 | // 2 | // KSImageView.m 3 | // ScenesSetup_Nick 4 | // 5 | // Created by Nick Hardeman on 8/26/14. 6 | // 7 | // 8 | 9 | #import "KSImageView.h" 10 | 11 | @interface KSImageView () 12 | 13 | @end 14 | 15 | @implementation KSImageView 16 | 17 | - (NSDragOperation)draggingEntered:(id )sender 18 | { 19 | if ((NSDragOperationGeneric & [sender draggingSourceOperationMask]) == NSDragOperationGeneric) 20 | { 21 | //this means that the sender is offering the type of operation we want 22 | //return that we want the NSDragOperationGeneric operation that they 23 | //are offering 24 | return NSDragOperationGeneric; 25 | } 26 | else 27 | { 28 | //since they aren't offering the type of operation we want, we have 29 | //to tell them we aren't interested 30 | return NSDragOperationNone; 31 | } 32 | } 33 | 34 | - (NSDragOperation)draggingUpdated:(id )sender 35 | { 36 | if ((NSDragOperationGeneric & [sender draggingSourceOperationMask]) == NSDragOperationGeneric) 37 | { 38 | //this means that the sender is offering the type of operation we want 39 | //return that we want the NSDragOperationGeneric operation that they 40 | //are offering 41 | return NSDragOperationGeneric; 42 | } 43 | else 44 | { 45 | //since they aren't offering the type of operation we want, we have 46 | //to tell them we aren't interested 47 | return NSDragOperationNone; 48 | } 49 | } 50 | 51 | 52 | - (BOOL)prepareForDragOperation:(id )sender { 53 | return YES; 54 | } 55 | 56 | - (BOOL)performDragOperation:(id )sender { 57 | BOOL acceptsDrag = [super performDragOperation:sender]; 58 | 59 | if (acceptsDrag) { 60 | NSPasteboard *pboard = [sender draggingPasteboard]; 61 | NSString *plist = [pboard stringForType:NSFilenamesPboardType]; 62 | 63 | if (plist) { 64 | 65 | NSArray *files = [NSPropertyListSerialization propertyListFromData:[plist dataUsingEncoding:NSUTF8StringEncoding] 66 | mutabilityOption:NSPropertyListImmutable 67 | format:nil 68 | errorDescription:nil]; 69 | 70 | if ([files count] == 1) { 71 | // NSDictionary *userInfo = @{@"imageFileName" : [[files objectAtIndex: 0] lastPathComponent]}; 72 | NSDictionary *userInfo = @{@"imageFileName" : [files objectAtIndex: 0]}; 73 | 74 | NSLog(@"dropped file: %@ ", (NSString*)[userInfo objectForKey:@"imageFileName"] ); 75 | 76 | [[NSNotificationCenter defaultCenter] postNotificationName:@"KSImageDroppedNotification" 77 | object:nil 78 | userInfo:userInfo]; 79 | } 80 | } 81 | } 82 | 83 | return acceptsDrag; 84 | } 85 | 86 | - (void) delete:(id)sender { 87 | 88 | } 89 | 90 | - (void) cut:(id)sender { 91 | 92 | } 93 | 94 | @end 95 | -------------------------------------------------------------------------------- /src/ofxMacUtils.h: -------------------------------------------------------------------------------- 1 | // 2 | // MacUtils.h 3 | // ScenesSetup_Nick 4 | // 5 | // Created by Nick Hardeman on 8/26/14. 6 | // 7 | 8 | #pragma once 9 | #include "ofMain.h" 10 | 11 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 12 | #include "ofxMacUtilsWorkspaceResponder.h" 13 | #endif 14 | #include "ofxMacUtilsWorkpaceNotificationsListener.h" 15 | 16 | 17 | class ofxMacUtils { 18 | public: 19 | 20 | struct NetworkDeviceInfo { 21 | NetworkDeviceInfo( string aName, string aAddress, string aSubnet) { 22 | name = aName; address = aAddress; 23 | subnet = aSubnet; 24 | } 25 | string name; 26 | string address; 27 | string subnet; 28 | }; 29 | 30 | enum NS_WorkspaceNotificationTypes { 31 | NS_WS_EVENT_POWER_DOWN = 0, 32 | NS_WS_EVENT_SLEEP, 33 | NS_WS_EVENT_WAKE, 34 | NS_WS_EVENT_TOTAL 35 | }; 36 | 37 | static string executeSystemCommand(string cmd); 38 | static string executeSystemCommand(string cmd, string aSystemPassword ); 39 | 40 | static bool isNetworkAvailable(); 41 | static vector< NetworkDeviceInfo > getNetworkDeviceInfos(); 42 | static string getIpAddress(); 43 | static string getSubnet(); 44 | 45 | static string getCurrentWifiPort(); 46 | static void setWifiPower( bool bOn ); 47 | static bool getWifiPower(); 48 | 49 | static void setComputerName( string aSystemPassword, string aName ); 50 | static void setComputerLocalHostName( string aSystemPassword, string aName ); 51 | static void setComputerHostName( string aSystemPassword, string aName ); 52 | 53 | static string getComputerName(); 54 | static string getComputerLocalHostName(); 55 | static string getComputerHostName(); 56 | 57 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 58 | static string getCurrentUsername(); 59 | #endif 60 | 61 | static void setBluetooth( string aSystemPassword, bool bEnable ); 62 | static void setBluetoothSeupAssistant( string aSystemPassword, bool bEnable ); 63 | 64 | static void setSendDiagInfo( string aSystemPassword, bool bEnable ); 65 | 66 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 67 | static NSRunningApplication* getRunningProcess( string aProcessName ); 68 | #endif 69 | static bool isProcessRunning( string aAbsPath ); 70 | static void openProcess( string aAbsPath ); 71 | static string getProcessId( string aProcessName ); 72 | static bool isApplicationRunning( string aAppName ); 73 | static void runApplication( string aAppName ); 74 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 75 | static string getProcessStatus( string aProcessName ); 76 | #endif 77 | 78 | 79 | // pass in zero to disable screen saver // 80 | static void setScreenSaverStartTime( float aTimeInSeconds ); 81 | 82 | static bool isApplicationALoginItem( string aAppName ); 83 | static void addApplicationToLoginItems( string aPathToApp, bool bHide ); 84 | 85 | static void setDesktopImage( string aAbsPath ); 86 | static void setLoginImage( string aAbsPath ); 87 | 88 | static void setSoftwareUpdates( string aRootPassword, bool bOn ); 89 | static void setSleep( string aRootPassword, bool bOn ); 90 | 91 | static void setGateKeeper( string aRootPassword, bool bOn ); 92 | static void setCrashReporterDialog( bool bEnable ); 93 | static void restartOnPowerFailure( string aRootPassword, bool aYes ); 94 | 95 | static void setNotificationCenter( bool bEnable ); 96 | 97 | static void setScreenSharing( string aRootPassword, bool bEnable ); 98 | static void setFireWall( string aRootPassword, bool bEnable ); 99 | 100 | static int getNumMonitors(); 101 | static int screenCapture( vector aScreenCaptureSavePaths ); 102 | 103 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 104 | static bool saveNsImage( NSImage* aImage, string aSavePath, bool bMakeAbsolute=true, float aWidth=0, float aHeight=0, bool bProportional=true ); 105 | static CGImageRef resizeNSImageToCGRef( NSImage* aImage, float aWidth=0, float aHeight=0, bool bProportional=true ); 106 | #endif 107 | 108 | static bool bPrintToConsole; 109 | static void enablePrintToConsole(); 110 | static void disablePrintToConsole(); 111 | static bool isPrintToConsoleEnabled(); 112 | 113 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 114 | static list< ofxMacUtilsWorkpaceNotificationsListener* > wsListeners; 115 | // notifications // 116 | static void addWorkspaceNotificationsListener( ofxMacUtilsWorkpaceNotificationsListener* aListener ); 117 | static void removeAllNotificationsListeners(); 118 | static void receivedNotificationFromResponder( int aEvent ); 119 | #endif 120 | 121 | 122 | protected: 123 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 124 | static ofxMacUtilsWorkspaceResponder* nsWSResponder; 125 | #endif 126 | }; 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | -------------------------------------------------------------------------------- /InstaFigurator/src/DragItem.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // DragItem.cpp 3 | // ScenesSetup_Nick 4 | // 5 | // Created by Nick Hardeman on 8/25/14. 6 | // 7 | 8 | #include "DragItem.h" 9 | 10 | //-------------------------------------------------------------- 11 | DragItem::DragItem() { 12 | setup( ofGetTimestampString(), "Default" ); 13 | } 14 | 15 | //-------------------------------------------------------------- 16 | DragItem::DragItem( string aName, string aDisplayName ) { 17 | setup( aName, aDisplayName ); 18 | } 19 | 20 | //-------------------------------------------------------------- 21 | void DragItem::setup( string aName, string aDisplayName ) { 22 | bgColor.set(30, 30, 30); 23 | outlineColor.set(200, 200, 200); 24 | padding = 4; 25 | 26 | acceptAllFileTypes(); 27 | name = aName; 28 | displayName = aDisplayName; 29 | } 30 | 31 | //-------------------------------------------------------------- 32 | void DragItem::setFile( string aPathToFile ) { 33 | if( isValidFile( aPathToFile ) ) { 34 | file = aPathToFile; 35 | } else { 36 | file.close(); 37 | } 38 | } 39 | 40 | //-------------------------------------------------------------- 41 | bool DragItem::isValidFile( string aPathToFile ) { 42 | ofFile tfile = aPathToFile; 43 | bool bGoodToGo = false; 44 | string fileExtension = tfile.getExtension(); 45 | fileExtension = ofToLower( fileExtension ); 46 | for( int i = 0; i < acceptedExts.size(); i++ ) { 47 | if( fileExtension == acceptedExts[i] ) { 48 | bGoodToGo = true; 49 | break; 50 | } 51 | } 52 | return bGoodToGo; 53 | } 54 | 55 | //-------------------------------------------------------------- 56 | void DragItem::draw() { 57 | 58 | ofSetColor( bgColor ); 59 | ofRect( rect ); 60 | 61 | if( icon.isAllocated() ) { 62 | ofSetColor( 255, 255, 255 ); 63 | ofRectangle paddedRect( rect.x + padding, rect.y + padding, rect.width - padding*2, rect.height - padding * 2 ); 64 | icon.draw( paddedRect ); 65 | } 66 | 67 | ofSetColor( outlineColor ); 68 | ofNoFill(); 69 | ofRect( rect ); 70 | ofFill(); 71 | 72 | // ofDrawBitmapStringHighlight(string text, const ofPoint& position, const ofColor& background, const ofColor& foreground) 73 | ofDrawBitmapStringHighlight( displayName, rect.x + 4, rect.y + 22 + rect.height, bgColor, outlineColor ); 74 | } 75 | 76 | //-------------------------------------------------------------- 77 | bool DragItem::dragEvent( ofDragInfo dragInfo ) { 78 | if( !dragInfo.files.size() ) return false; 79 | 80 | if( !rect.inside( dragInfo.position ) ) return false; 81 | 82 | bool bHasCorrectExtension = false; 83 | if( !acceptedExts.size() ) bHasCorrectExtension = true; 84 | 85 | bHasCorrectExtension = isValidFile( dragInfo.files[0] ); 86 | 87 | if( bHasCorrectExtension ) { 88 | file = dragInfo.files[0]; 89 | } else { 90 | ofSystemAlertDialog( "Only accepts file types: "+getFormattedAcceptedFileTypesString()+"."); 91 | } 92 | return bHasCorrectExtension; 93 | } 94 | 95 | //-------------------------------------------------------------- 96 | void DragItem::acceptAllFileTypes() { 97 | acceptedExts.clear(); 98 | } 99 | 100 | //-------------------------------------------------------------- 101 | void DragItem::acceptImages() { 102 | acceptedExts.push_back("png"); 103 | acceptedExts.push_back("jpeg"); 104 | acceptedExts.push_back("jpg"); 105 | acceptedExts.push_back("gif"); 106 | } 107 | 108 | //-------------------------------------------------------------- 109 | void DragItem::acceptTypesText() { 110 | acceptedExts.push_back("txt"); 111 | acceptedExts.push_back("log"); 112 | } 113 | 114 | //-------------------------------------------------------------- 115 | void DragItem::acceptApps() { 116 | acceptedExts.push_back( "app" ); 117 | } 118 | 119 | //-------------------------------------------------------------- 120 | bool DragItem::loadIcon( string aPath ) { 121 | return icon.loadImage( aPath ); 122 | } 123 | 124 | //-------------------------------------------------------------- 125 | bool DragItem::isFileImage() { 126 | if( !file.exists() ) return false; 127 | string text = file.getExtension(); 128 | text = ofToLower( text ); 129 | if( text == "jpg" ) return true; 130 | if( text == "jpeg" ) return true; 131 | if( text == "png" ) return true; 132 | if( text == "gif" ) return true; 133 | return false; 134 | } 135 | 136 | //-------------------------------------------------------------- 137 | bool DragItem::isFileApp() { 138 | if( !file.exists() ) return false; 139 | string text = file.getExtension(); 140 | text = ofToLower( text ); 141 | if( text == "app" ) return true; 142 | return false; 143 | } 144 | 145 | //-------------------------------------------------------------- 146 | string DragItem::getFormattedAcceptedFileTypesString() { 147 | string tstr = ""; 148 | if( !acceptedExts.size() ) return "All"; 149 | 150 | for( int i = 0; i < acceptedExts.size(); i++ ) { 151 | tstr += acceptedExts[i]; 152 | if( i != acceptedExts.size()-1 ) tstr += ", "; 153 | } 154 | return tstr; 155 | } 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | -------------------------------------------------------------------------------- /InstaFigurator/config.make: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # CONFIGURE PROJECT MAKEFILE (optional) 3 | # This file is where we make project specific configurations. 4 | ################################################################################ 5 | 6 | ################################################################################ 7 | # OF ROOT 8 | # The location of your root openFrameworks installation 9 | # (default) OF_ROOT = ../../.. 10 | ################################################################################ 11 | # OF_ROOT = ../../.. 12 | 13 | ################################################################################ 14 | # PROJECT ROOT 15 | # The location of the project - a starting place for searching for files 16 | # (default) PROJECT_ROOT = . (this directory) 17 | # 18 | ################################################################################ 19 | # PROJECT_ROOT = . 20 | 21 | ################################################################################ 22 | # PROJECT SPECIFIC CHECKS 23 | # This is a project defined section to create internal makefile flags to 24 | # conditionally enable or disable the addition of various features within 25 | # this makefile. For instance, if you want to make changes based on whether 26 | # GTK is installed, one might test that here and create a variable to check. 27 | ################################################################################ 28 | # None 29 | 30 | ################################################################################ 31 | # PROJECT EXTERNAL SOURCE PATHS 32 | # These are fully qualified paths that are not within the PROJECT_ROOT folder. 33 | # Like source folders in the PROJECT_ROOT, these paths are subject to 34 | # exlclusion via the PROJECT_EXLCUSIONS list. 35 | # 36 | # (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank) 37 | # 38 | # Note: Leave a leading space when adding list items with the += operator 39 | ################################################################################ 40 | # PROJECT_EXTERNAL_SOURCE_PATHS = 41 | 42 | ################################################################################ 43 | # PROJECT EXCLUSIONS 44 | # These makefiles assume that all folders in your current project directory 45 | # and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations 46 | # to look for source code. The any folders or files that match any of the 47 | # items in the PROJECT_EXCLUSIONS list below will be ignored. 48 | # 49 | # Each item in the PROJECT_EXCLUSIONS list will be treated as a complete 50 | # string unless teh user adds a wildcard (%) operator to match subdirectories. 51 | # GNU make only allows one wildcard for matching. The second wildcard (%) is 52 | # treated literally. 53 | # 54 | # (default) PROJECT_EXCLUSIONS = (blank) 55 | # 56 | # Will automatically exclude the following: 57 | # 58 | # $(PROJECT_ROOT)/bin% 59 | # $(PROJECT_ROOT)/obj% 60 | # $(PROJECT_ROOT)/%.xcodeproj 61 | # 62 | # Note: Leave a leading space when adding list items with the += operator 63 | ################################################################################ 64 | # PROJECT_EXCLUSIONS = 65 | 66 | ################################################################################ 67 | # PROJECT LINKER FLAGS 68 | # These flags will be sent to the linker when compiling the executable. 69 | # 70 | # (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs 71 | # 72 | # Note: Leave a leading space when adding list items with the += operator 73 | ################################################################################ 74 | 75 | # Currently, shared libraries that are needed are copied to the 76 | # $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to 77 | # add a runtime path to search for those shared libraries, since they aren't 78 | # incorporated directly into the final executable application binary. 79 | # TODO: should this be a default setting? 80 | # PROJECT_LDFLAGS=-Wl,-rpath=./libs 81 | 82 | ################################################################################ 83 | # PROJECT DEFINES 84 | # Create a space-delimited list of DEFINES. The list will be converted into 85 | # CFLAGS with the "-D" flag later in the makefile. 86 | # 87 | # (default) PROJECT_DEFINES = (blank) 88 | # 89 | # Note: Leave a leading space when adding list items with the += operator 90 | ################################################################################ 91 | # PROJECT_DEFINES = 92 | 93 | ################################################################################ 94 | # PROJECT CFLAGS 95 | # This is a list of fully qualified CFLAGS required when compiling for this 96 | # project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS 97 | # defined in your platform specific core configuration files. These flags are 98 | # presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below. 99 | # 100 | # (default) PROJECT_CFLAGS = (blank) 101 | # 102 | # Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in 103 | # your platform specific configuration file will be applied by default and 104 | # further flags here may not be needed. 105 | # 106 | # Note: Leave a leading space when adding list items with the += operator 107 | ################################################################################ 108 | # PROJECT_CFLAGS = 109 | 110 | ################################################################################ 111 | # PROJECT OPTIMIZATION CFLAGS 112 | # These are lists of CFLAGS that are target-specific. While any flags could 113 | # be conditionally added, they are usually limited to optimization flags. 114 | # These flags are added BEFORE the PROJECT_CFLAGS. 115 | # 116 | # PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets. 117 | # 118 | # (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank) 119 | # 120 | # PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets. 121 | # 122 | # (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank) 123 | # 124 | # Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the 125 | # PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration 126 | # file will be applied by default and further optimization flags here may not 127 | # be needed. 128 | # 129 | # Note: Leave a leading space when adding list items with the += operator 130 | ################################################################################ 131 | # PROJECT_OPTIMIZATION_CFLAGS_RELEASE = 132 | # PROJECT_OPTIMIZATION_CFLAGS_DEBUG = 133 | 134 | ################################################################################ 135 | # PROJECT COMPILERS 136 | # Custom compilers can be set for CC and CXX 137 | # (default) PROJECT_CXX = (blank) 138 | # (default) PROJECT_CC = (blank) 139 | # Note: Leave a leading space when adding list items with the += operator 140 | ################################################################################ 141 | # PROJECT_CXX = 142 | # PROJECT_CC = 143 | -------------------------------------------------------------------------------- /PowerNotifications/config.make: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # CONFIGURE PROJECT MAKEFILE (optional) 3 | # This file is where we make project specific configurations. 4 | ################################################################################ 5 | 6 | ################################################################################ 7 | # OF ROOT 8 | # The location of your root openFrameworks installation 9 | # (default) OF_ROOT = ../../.. 10 | ################################################################################ 11 | # OF_ROOT = ../../.. 12 | 13 | ################################################################################ 14 | # PROJECT ROOT 15 | # The location of the project - a starting place for searching for files 16 | # (default) PROJECT_ROOT = . (this directory) 17 | # 18 | ################################################################################ 19 | # PROJECT_ROOT = . 20 | 21 | ################################################################################ 22 | # PROJECT SPECIFIC CHECKS 23 | # This is a project defined section to create internal makefile flags to 24 | # conditionally enable or disable the addition of various features within 25 | # this makefile. For instance, if you want to make changes based on whether 26 | # GTK is installed, one might test that here and create a variable to check. 27 | ################################################################################ 28 | # None 29 | 30 | ################################################################################ 31 | # PROJECT EXTERNAL SOURCE PATHS 32 | # These are fully qualified paths that are not within the PROJECT_ROOT folder. 33 | # Like source folders in the PROJECT_ROOT, these paths are subject to 34 | # exlclusion via the PROJECT_EXLCUSIONS list. 35 | # 36 | # (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank) 37 | # 38 | # Note: Leave a leading space when adding list items with the += operator 39 | ################################################################################ 40 | # PROJECT_EXTERNAL_SOURCE_PATHS = 41 | 42 | ################################################################################ 43 | # PROJECT EXCLUSIONS 44 | # These makefiles assume that all folders in your current project directory 45 | # and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations 46 | # to look for source code. The any folders or files that match any of the 47 | # items in the PROJECT_EXCLUSIONS list below will be ignored. 48 | # 49 | # Each item in the PROJECT_EXCLUSIONS list will be treated as a complete 50 | # string unless teh user adds a wildcard (%) operator to match subdirectories. 51 | # GNU make only allows one wildcard for matching. The second wildcard (%) is 52 | # treated literally. 53 | # 54 | # (default) PROJECT_EXCLUSIONS = (blank) 55 | # 56 | # Will automatically exclude the following: 57 | # 58 | # $(PROJECT_ROOT)/bin% 59 | # $(PROJECT_ROOT)/obj% 60 | # $(PROJECT_ROOT)/%.xcodeproj 61 | # 62 | # Note: Leave a leading space when adding list items with the += operator 63 | ################################################################################ 64 | # PROJECT_EXCLUSIONS = 65 | 66 | ################################################################################ 67 | # PROJECT LINKER FLAGS 68 | # These flags will be sent to the linker when compiling the executable. 69 | # 70 | # (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs 71 | # 72 | # Note: Leave a leading space when adding list items with the += operator 73 | ################################################################################ 74 | 75 | # Currently, shared libraries that are needed are copied to the 76 | # $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to 77 | # add a runtime path to search for those shared libraries, since they aren't 78 | # incorporated directly into the final executable application binary. 79 | # TODO: should this be a default setting? 80 | # PROJECT_LDFLAGS=-Wl,-rpath=./libs 81 | 82 | ################################################################################ 83 | # PROJECT DEFINES 84 | # Create a space-delimited list of DEFINES. The list will be converted into 85 | # CFLAGS with the "-D" flag later in the makefile. 86 | # 87 | # (default) PROJECT_DEFINES = (blank) 88 | # 89 | # Note: Leave a leading space when adding list items with the += operator 90 | ################################################################################ 91 | # PROJECT_DEFINES = 92 | 93 | ################################################################################ 94 | # PROJECT CFLAGS 95 | # This is a list of fully qualified CFLAGS required when compiling for this 96 | # project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS 97 | # defined in your platform specific core configuration files. These flags are 98 | # presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below. 99 | # 100 | # (default) PROJECT_CFLAGS = (blank) 101 | # 102 | # Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in 103 | # your platform specific configuration file will be applied by default and 104 | # further flags here may not be needed. 105 | # 106 | # Note: Leave a leading space when adding list items with the += operator 107 | ################################################################################ 108 | # PROJECT_CFLAGS = 109 | 110 | ################################################################################ 111 | # PROJECT OPTIMIZATION CFLAGS 112 | # These are lists of CFLAGS that are target-specific. While any flags could 113 | # be conditionally added, they are usually limited to optimization flags. 114 | # These flags are added BEFORE the PROJECT_CFLAGS. 115 | # 116 | # PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets. 117 | # 118 | # (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank) 119 | # 120 | # PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets. 121 | # 122 | # (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank) 123 | # 124 | # Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the 125 | # PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration 126 | # file will be applied by default and further optimization flags here may not 127 | # be needed. 128 | # 129 | # Note: Leave a leading space when adding list items with the += operator 130 | ################################################################################ 131 | # PROJECT_OPTIMIZATION_CFLAGS_RELEASE = 132 | # PROJECT_OPTIMIZATION_CFLAGS_DEBUG = 133 | 134 | ################################################################################ 135 | # PROJECT COMPILERS 136 | # Custom compilers can be set for CC and CXX 137 | # (default) PROJECT_CXX = (blank) 138 | # (default) PROJECT_CC = (blank) 139 | # Note: Leave a leading space when adding list items with the += operator 140 | ################################################################################ 141 | # PROJECT_CXX = 142 | # PROJECT_CC = 143 | -------------------------------------------------------------------------------- /src/ofxMacUtilsSimpleSettings.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // ofxMacUtilsSimpleSettings.cpp 3 | // WatchDog 4 | // 5 | // Created by Nick Hardeman on 3/13/15. 6 | // 7 | 8 | #include "ofxMacUtilsSimpleSettings.h" 9 | 10 | bool ofxMacUtilsSimpleSettings::bSettingsLoadedOk = false; 11 | ofxXmlSettings ofxMacUtilsSimpleSettings::appSettings; 12 | map settings; 13 | 14 | //-------------------------------------------------------------- 15 | void ofxMacUtilsSimpleSettings::addAppSetting(string aXmlName, int aVal) { 16 | settings[aXmlName] = ofToString(aVal,0); 17 | } 18 | 19 | //-------------------------------------------------------------- 20 | void ofxMacUtilsSimpleSettings::addAppSetting(string aXmlName, string aVal) { 21 | settings[aXmlName] = aVal; 22 | } 23 | 24 | //-------------------------------------------------------------- 25 | void ofxMacUtilsSimpleSettings::addAppSetting(string aXmlName, float aVal) { 26 | settings[aXmlName] = ofToString(aVal, 20); 27 | } 28 | 29 | //-------------------------------------------------------------- 30 | void ofxMacUtilsSimpleSettings::addAppSetting( ofParameter& aParam ) { 31 | addAppSetting( aParam.getName(), (int)aParam.get() ); 32 | } 33 | 34 | //-------------------------------------------------------------- 35 | void ofxMacUtilsSimpleSettings::addAppSetting( ofParameter& aParam ) { 36 | addAppSetting( aParam.getName(), (string)aParam.get() ); 37 | } 38 | 39 | //-------------------------------------------------------------- 40 | void ofxMacUtilsSimpleSettings::addAppSetting( ofParameter& aParam ) { 41 | addAppSetting( aParam.getName(), (float)aParam.get() ); 42 | } 43 | 44 | //-------------------------------------------------------------- 45 | void ofxMacUtilsSimpleSettings::addAppSetting( ofParameter& aParam ) { 46 | addAppSetting( aParam.getName(), (int)aParam.get() ); 47 | } 48 | 49 | //-------------------------------------------------------------- 50 | void ofxMacUtilsSimpleSettings::addAppSettings( ofParameterGroup &aGroup ) { 51 | for( int i = 0; i < aGroup.size(); i++ ) { 52 | if( aGroup.get(i).type() == typeid(ofParameter).name() ) { 53 | addAppSetting( aGroup.getName(i), aGroup.getInt(i) ); 54 | } else if( aGroup.get(i).type() == typeid(ofParameter).name() ) { 55 | addAppSetting( aGroup.getName(i), aGroup.getBool(i) ); 56 | } else if( aGroup.get(i).type() == typeid(ofParameter).name() ) { 57 | addAppSetting( aGroup.getName(i), aGroup.getString(i) ); 58 | } else { 59 | addAppSetting( aGroup.getName(i), aGroup.getFloat(i) ); 60 | } 61 | } 62 | } 63 | 64 | //-------------------------------------------------------------- 65 | string ofxMacUtilsSimpleSettings::getAppSettingS(string aXmlName) { 66 | if(settings.find(aXmlName) == settings.end()) return ""; 67 | return settings[aXmlName]; 68 | } 69 | 70 | //-------------------------------------------------------------- 71 | float ofxMacUtilsSimpleSettings::getAppSettingF(string aXmlName) { 72 | if(settings.find(aXmlName) == settings.end()) return 0.f; 73 | return ofToFloat(settings[aXmlName]); 74 | } 75 | 76 | //-------------------------------------------------------------- 77 | int ofxMacUtilsSimpleSettings::getAppSettingI(string aXmlName) { 78 | if(settings.find(aXmlName) == settings.end()) return 0; 79 | return ofToInt(settings[aXmlName]); 80 | } 81 | 82 | //-------------------------------------------------------------- 83 | int ofxMacUtilsSimpleSettings::getAppSetting( ofParameter& aParam ) { 84 | return getAppSettingI( aParam.getName() ); 85 | } 86 | 87 | //-------------------------------------------------------------- 88 | string ofxMacUtilsSimpleSettings::getAppSetting( ofParameter& aParam ) { 89 | return getAppSettingS( aParam.getName() ); 90 | } 91 | 92 | //-------------------------------------------------------------- 93 | float ofxMacUtilsSimpleSettings::getAppSetting( ofParameter& aParam ) { 94 | return getAppSettingF( aParam.getName() ); 95 | } 96 | 97 | //-------------------------------------------------------------- 98 | bool ofxMacUtilsSimpleSettings::getAppSetting( ofParameter& aParam ) { 99 | return (bool)getAppSettingI( aParam.getName() ); 100 | } 101 | 102 | //-------------------------------------------------------------- 103 | void ofxMacUtilsSimpleSettings::getAppSettings( ofParameterGroup& aGroup ) { 104 | for( int i = 0; i < aGroup.size(); i++ ) { 105 | if( aGroup.get(i).type() == typeid(ofParameter).name() ) { 106 | aGroup.getInt(i) = getAppSettingI( aGroup.getName(i) ); 107 | } else if( aGroup.get(i).type() == typeid(ofParameter).name() ) { 108 | aGroup.getBool(i) = getAppSettingI( aGroup.getName(i) ); 109 | } else if( aGroup.get(i).type() == typeid(ofParameter).name() ) { 110 | aGroup.getString(i) = getAppSettingS( aGroup.getName(i) ); 111 | } else { 112 | aGroup.getFloat(i) = getAppSettingF( aGroup.getName(i) ); 113 | } 114 | } 115 | } 116 | 117 | //-------------------------------------------------------------- 118 | void ofxMacUtilsSimpleSettings::saveAppSettings( string aXmlName ) { 119 | appSettings.clear(); 120 | int stagNum = appSettings.addTag("window"); 121 | 122 | if( ofGetWindowMode() != OF_FULLSCREEN ) { 123 | appSettings.setAttribute("window", "x", ofGetWindowPositionX(), stagNum); 124 | appSettings.setAttribute("window", "y", ofGetWindowPositionY(), stagNum); 125 | 126 | appSettings.setAttribute("window", "width", ofGetWidth(), stagNum); 127 | appSettings.setAttribute("window", "height", ofGetHeight(), stagNum); 128 | } 129 | 130 | map::iterator it; 131 | for(it = settings.begin(); it != settings.end(); ++it ) { 132 | int tnum = appSettings.addTag("setting"); 133 | appSettings.setAttribute("setting", "name", it->first, tnum ); 134 | appSettings.setAttribute("setting", "value", it->second, tnum ); 135 | appSettings.popTag(); 136 | } 137 | 138 | appSettings.saveFile( aXmlName ); 139 | } 140 | 141 | //-------------------------------------------------------------- 142 | bool ofxMacUtilsSimpleSettings::loadAppSettings( string aXmlName ) { 143 | settings.clear(); 144 | bSettingsLoadedOk = appSettings.loadFile(aXmlName); 145 | if(bSettingsLoadedOk) { 146 | int ttags = appSettings.getNumTags("setting"); 147 | for(int i = 0; i < ttags; i++ ) { 148 | string name = appSettings.getAttribute("setting", "name", "", i); 149 | string value = appSettings.getAttribute("setting", "value", "", i); 150 | //cout << "Utils :: loadAppSettings : name = " << name << " value = " << value << endl; 151 | settings[name] = value; 152 | } 153 | } else { 154 | ofLogWarning("yq::Utils :: loadAppSettings : unable to load "+aXmlName); 155 | } 156 | return bSettingsLoadedOk; 157 | } 158 | 159 | //-------------------------------------------------------------- 160 | void ofxMacUtilsSimpleSettings::loadWindowPosition() { 161 | if(!bSettingsLoadedOk) { 162 | loadAppSettings(); 163 | } 164 | if(bSettingsLoadedOk) { 165 | int winx = appSettings.getAttribute("window", "x", 0, 0); 166 | int winy = appSettings.getAttribute("window", "y", 0, 0); 167 | ofSetWindowPosition( winx, winy ); 168 | } 169 | } 170 | 171 | //-------------------------------------------------------------- 172 | void ofxMacUtilsSimpleSettings::loadWindowShape() { 173 | if(!bSettingsLoadedOk) { 174 | loadAppSettings(); 175 | } 176 | if(bSettingsLoadedOk) { 177 | int winx = appSettings.getAttribute("window", "width", 1024, 0); 178 | int winy = appSettings.getAttribute("window", "height", 768, 0); 179 | ofSetWindowShape( winx, winy ); 180 | } 181 | } 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | -------------------------------------------------------------------------------- /InstaFigurator/src/MainViewController.mm: -------------------------------------------------------------------------------- 1 | // 2 | // MainViewController.m 3 | // ScenesSetup_Nick 4 | // 5 | // Created by Nick Hardeman on 8/26/14. 6 | // 7 | // 8 | 9 | #import "MainViewController.h" 10 | #include "ofApp.h" 11 | 12 | @implementation MainViewController 13 | 14 | - (void)awakeFromNib { 15 | 16 | [super awakeFromNib]; 17 | [[NSNotificationCenter defaultCenter] addObserver:self 18 | selector:@selector(receiveNotification:) 19 | name:@"KSImageDroppedNotification" 20 | object:nil]; 21 | 22 | 23 | } 24 | 25 | - (void)dealloc { 26 | [[NSNotificationCenter defaultCenter] removeObserver:self]; 27 | [super dealloc]; 28 | } 29 | 30 | - (void)update { 31 | // [networkTableView reloadData]; 32 | } 33 | 34 | #pragma mark - Notifications 35 | - (void)receiveNotification:(NSNotification *)notification { 36 | // [notification name] should always be @"TestNotification" 37 | // unless you use this method for observation of other notifications 38 | // as well. 39 | 40 | if ([[notification name] isEqualToString:@"KSImageDroppedNotification"]) { 41 | NSLog (@"Successfully received the test notification!"); 42 | NSDictionary *userInfo = (NSDictionary *)[notification userInfo];//@{@"imageFileName" : [files objectAtIndex: 0]}; 43 | NSString* absFilePath = (NSString*)[userInfo objectForKey:@"imageFileName"]; 44 | NSLog(@"dropped file: %@ ", absFilePath ); 45 | NSURL* url = [NSURL fileURLWithPath:absFilePath ]; 46 | NSString* path = [url path]; 47 | NSString* extension = [path pathExtension]; 48 | string extStr = [extension UTF8String]; 49 | 50 | NSLog(@"extension: %@", extension ); 51 | 52 | if( extStr == "app" ) { 53 | ofApp* appPtr = (ofApp*)ofGetAppPtr(); 54 | appPtr->appSelected( [absFilePath UTF8String] ); 55 | } 56 | 57 | } 58 | } 59 | 60 | - (bool)setupCheckBoxesForParams:(ofParameterGroup&)aParamsGroup { 61 | for( NSObject* subview in [self.view subviews] ) { 62 | if( [subview isKindOfClass:[NSButton class]] ) { 63 | NSButton* button = (NSButton*)subview; 64 | NSLog(@"Found button with title: %@", [button title] ); 65 | for( int j = 0; j < aParamsGroup.size(); j++ ) { 66 | if( [[button title] UTF8String] == aParamsGroup.getName(j) ) { 67 | if( buttonMap.count(aParamsGroup.getName(j)) == 0 ) { 68 | buttonMap[ aParamsGroup.getName(j) ] = button; 69 | 70 | bool bShouldCheck = false; 71 | if( aParamsGroup.get(j).type() == typeid(ofParameter).name() ) { 72 | bShouldCheck = aParamsGroup.getInt(j) > 0; 73 | } else if( aParamsGroup.get(j).type() == typeid(ofParameter).name() ) { 74 | bShouldCheck = aParamsGroup.get(j); 75 | } 76 | 77 | if(bShouldCheck) { 78 | [button setState:NSOnState]; 79 | } else { 80 | [button setState:NSOffState]; 81 | } 82 | 83 | [button setTarget:self]; 84 | [button setAction:@selector(buttonPressed:)]; 85 | // only add to the watching params if we found the button // 86 | buttonParamsGroup.add( aParamsGroup.get(j) ); 87 | } 88 | break; 89 | } 90 | } 91 | } 92 | } 93 | return (buttonParamsGroup.size() == aParamsGroup.size()); 94 | } 95 | 96 | - (IBAction)buttonPressed:(id)sender { 97 | [[[ self view] window ] makeFirstResponder: nil]; 98 | [self updateAllTextfieldParams]; 99 | 100 | NSLog(@"Button has been pressed"); 101 | NSButton* button = (NSButton*)sender; 102 | string title = [[button title] UTF8String]; 103 | for( int i = 0; i < buttonParamsGroup.size(); i++ ) { 104 | if( buttonParamsGroup.getName(i) == title ) { 105 | buttonParamsGroup.get(i) = [button state]; 106 | NSLog(@"Found the button with name: %@, setting to: %d", [button title], [button state] ); 107 | break; 108 | } 109 | } 110 | } 111 | 112 | - (void)setCheckBox:(ofParameter)aParam { 113 | 114 | string pName = aParam.getName(); 115 | if( buttonMap.count(pName) > 0 ) { 116 | NSButton* button = buttonMap[ pName ]; 117 | bool pValue = aParam.get(); 118 | // [textfield setStringValue:[NSString stringWithUTF8String:pValue.c_str()]]; 119 | if(pValue) { 120 | [button setState:NSOnState]; 121 | } else { 122 | [button setState:NSOffState]; 123 | } 124 | } 125 | } 126 | 127 | - (void)setCheckBoxEnabled:(ofParameter)aParam enabled:(bool)bEnabled { 128 | string pName = aParam.getName(); 129 | if( buttonMap.count(pName) > 0 ) { 130 | NSButton* button = buttonMap[ pName ]; 131 | if( bEnabled ) { 132 | [button setEnabled:YES]; 133 | } else { 134 | [button setEnabled:NO]; 135 | } 136 | } 137 | } 138 | 139 | - (IBAction)selectAppDestButtonPressed:(id)sender { 140 | ofApp* appPtr = (ofApp*)ofGetAppPtr(); 141 | // appPtr->selectCopyDestinationButtonPressed(); 142 | } 143 | 144 | - (bool)setupTextfieldsForParams:(ofParameterGroup&)aParamsGroup { 145 | int tagNum = 1000; 146 | for( NSObject* subview in [self.view subviews] ) { 147 | if( [subview isKindOfClass:[NSTextField class]] ) { 148 | NSTextField* textfield = (NSTextField*)subview; 149 | NSLog(@"Found textfield with title: %@", [textfield stringValue] ); 150 | for( int j = 0; j < aParamsGroup.size(); j++ ) { 151 | if( [[textfield stringValue] UTF8String] == aParamsGroup.getName(j) ) { 152 | if( textfieldMap.count(aParamsGroup.getName(j)) == 0 ) { 153 | textfieldMap[ aParamsGroup.getName(j) ] = textfield; 154 | 155 | string text = ""; 156 | if( aParamsGroup.get(j).type() == typeid(ofParameter).name() ) { 157 | text = aParamsGroup.get(j); 158 | } 159 | 160 | textfield.tag = tagNum; 161 | 162 | textfieldTagToNameMap[ tagNum ] = aParamsGroup.getName(j); 163 | 164 | [textfield setStringValue:[NSString stringWithUTF8String:text.c_str()]]; 165 | 166 | [textfield setTarget:self]; 167 | [textfield setAction:@selector(textfieldChange:)]; 168 | 169 | textfieldParamsGroup.add( aParamsGroup.get(j) ); 170 | 171 | tagNum++; 172 | } 173 | 174 | break; 175 | } 176 | } 177 | } 178 | } 179 | 180 | return (textfieldParamsGroup.size() == aParamsGroup.size()); 181 | } 182 | 183 | - (void)updateAllTextfieldParams { 184 | for( int i = 0; i < textfieldParamsGroup.size(); i++ ) { 185 | string svalue = textfieldParamsGroup.get(i); 186 | [textfieldMap[ textfieldParamsGroup.getName(i) ] setStringValue:[NSString stringWithUTF8String:svalue.c_str()]]; 187 | } 188 | } 189 | 190 | - (IBAction)textfieldChange:(id)sender { 191 | NSLog(@"textfield has been pressed"); 192 | NSTextField* textfield = (NSTextField*)sender; 193 | if( textfieldTagToNameMap.count(textfield.tag) == 0 ) return; 194 | string pName = textfieldTagToNameMap[ textfield.tag ]; 195 | for( int i = 0; i < textfieldParamsGroup.size(); i++ ) { 196 | if( textfieldParamsGroup.getName(i) == pName ) { 197 | textfieldParamsGroup.get(i) = [[textfield stringValue] UTF8String]; 198 | NSLog(@"Found the textfield with name: %@, setting to: %@", [NSString stringWithUTF8String:pName.c_str()], [textfield stringValue] ); 199 | break; 200 | } 201 | } 202 | } 203 | 204 | - (bool)setTextfieldText:(ofParameter)aParam { 205 | string pName = aParam.getName(); 206 | if( textfieldMap.count(pName) > 0 ) { 207 | NSTextField* textfield = textfieldMap[ pName ]; 208 | string pValue = aParam.get(); 209 | [textfield setStringValue:[NSString stringWithUTF8String:pValue.c_str()]]; 210 | return true; 211 | } 212 | return false; 213 | } 214 | 215 | - (string)getTextfieldText:(ofParameter)aParam { 216 | string pName = aParam.getName(); 217 | if( textfieldMap.count(pName) > 0 ) { 218 | NSTextField* textfield = textfieldMap[ pName ]; 219 | return [[textfield stringValue] UTF8String]; 220 | } 221 | return ""; 222 | } 223 | 224 | 225 | 226 | #pragma mark - Setters 227 | - (void)setAppName:(string)aAppName { 228 | [appname_lb setStringValue:[NSString stringWithUTF8String:aAppName.c_str()] ]; 229 | } 230 | 231 | 232 | 233 | #pragma mark - Getters 234 | 235 | - (void)setDeskTopBgImagePath:(string)aPath { 236 | NSString* spath = [NSString stringWithUTF8String:aPath.c_str()]; 237 | NSImage* timage = [[NSImage alloc] initWithContentsOfFile:spath]; 238 | [desktopImageWell setImage:timage]; 239 | } 240 | - (void)setLoginImagePath:(string)aPath { 241 | NSString* spath = [NSString stringWithUTF8String:aPath.c_str()]; 242 | NSImage* timage = [[NSImage alloc] initWithContentsOfFile:spath]; 243 | [loginImageWell setImage:timage]; 244 | } 245 | 246 | - (void)setAppImagePath:(string)aPath { 247 | NSString* spath = [NSString stringWithUTF8String:aPath.c_str()]; 248 | NSImage* timage = [[NSImage alloc] initWithContentsOfFile:spath]; 249 | [appImageWell setImage:timage]; 250 | } 251 | 252 | - (IBAction)applyAllSettings:(id)sender { 253 | ofApp* appPtr = (ofApp*)ofGetAppPtr(); 254 | appPtr->applySettings(); 255 | } 256 | 257 | - (IBAction)deskTopBgImageSelected:(id)sender { 258 | // NSLog(@"Dragged an image into the sender "); 259 | NSImageView* imageWell = (NSImageView*)sender; 260 | ofApp* appPtr = (ofApp*)ofGetAppPtr(); 261 | appPtr->desktopImageSelected( [imageWell image] ); 262 | } 263 | 264 | - (IBAction)loginImageSelected:(id)sender { 265 | NSImageView* imageWell = (NSImageView*)sender; 266 | ofApp* appPtr = (ofApp*)ofGetAppPtr(); 267 | appPtr->loginImageSelected( [imageWell image] ); 268 | } 269 | 270 | -(void)addToConsoleLog:(string)aLogMessage bScroll:(bool)aBScroll { 271 | NSString *tMess = [NSString stringWithCString:aLogMessage.c_str() encoding:[NSString defaultCStringEncoding]]; 272 | NSMutableAttributedString* attr = [[NSMutableAttributedString alloc] initWithString:tMess]; 273 | 274 | [attr beginEditing]; 275 | [attr addAttribute:NSForegroundColorAttributeName 276 | value:[NSColor lightGrayColor] 277 | range:NSMakeRange(0, attr.string.length)]; 278 | [attr endEditing]; 279 | 280 | [[consoleTextView textStorage] appendAttributedString:attr]; 281 | // [[consoleTextView textStorage] setAttributedString:attr]; 282 | if(aBScroll) { 283 | [consoleTextView scrollRangeToVisible:NSMakeRange([[consoleTextView string] length], 0)]; 284 | } 285 | } 286 | 287 | -(void)trimConsoleString:(int)aNumLines { 288 | 289 | NSString* consoleStr = [consoleTextView string]; 290 | NSMutableArray *data = [[consoleStr componentsSeparatedByCharactersInSet: [NSCharacterSet newlineCharacterSet]] mutableCopy]; 291 | 292 | // NSArray *brokenByLines=[consoleStr componentsSeparatedByString:@"\n"]; 293 | NSString* outStr = @""; 294 | NSAttributedString* attr = [[NSAttributedString alloc] initWithString:outStr]; 295 | [[consoleTextView textStorage] setAttributedString:attr]; 296 | 297 | int startIndex = [data count] - aNumLines; 298 | if( startIndex < 0 ) startIndex = 0; 299 | for (int i = startIndex; i < [data count]; i++) { 300 | // if( i >= aNumLines ) break; 301 | int index = [data count]-1-i; 302 | // NSAttributedString* attr = [[NSAttributedString alloc] initWithString:outStr]; 303 | NSString* newStr = [data objectAtIndex:i]; 304 | newStr = [newStr stringByAppendingString:@"\n"]; 305 | 306 | if( [newStr length] > 4 ) { 307 | NSMutableAttributedString* tattr = [[NSMutableAttributedString alloc] initWithString:newStr]; 308 | [tattr beginEditing]; 309 | [tattr addAttribute:NSForegroundColorAttributeName 310 | value:[NSColor lightGrayColor] 311 | range:NSMakeRange(0, tattr.string.length)]; 312 | [tattr endEditing]; 313 | [[consoleTextView textStorage] appendAttributedString:tattr]; 314 | } 315 | // newStr = [newStr stringByAppendingString:@"\n"]; 316 | // outStr = [outStr stringByAppendingString:newStr]; 317 | // outStr = [outStr stringByAppendingString:@"\n"]; 318 | } 319 | 320 | // NSAttributedString* attr = [[NSAttributedString alloc] initWithString:outStr]; 321 | // [[consoleTextView textStorage] setAttributedString:attr]; 322 | [consoleTextView scrollRangeToVisible:NSMakeRange([[consoleTextView string] length], 0)]; 323 | } 324 | 325 | 326 | @end 327 | -------------------------------------------------------------------------------- /src/ofxMacUtils.mm: -------------------------------------------------------------------------------- 1 | // 2 | // MacUtils.cpp 3 | // ScenesSetup_Nick 4 | // 5 | // Created by Nick Hardeman on 8/26/14. 6 | // 7 | 8 | #include "ofxMacUtils.h" 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | bool ofxMacUtils::bPrintToConsole = false; 15 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 16 | list< ofxMacUtilsWorkpaceNotificationsListener* > ofxMacUtils::wsListeners; 17 | ofxMacUtilsWorkspaceResponder* ofxMacUtils::nsWSResponder = nil; 18 | #endif 19 | 20 | //---------------------------------------- 21 | string ofxMacUtils::executeSystemCommand(string cmd) { 22 | FILE* pipe = popen(cmd.c_str(), "r"); 23 | if (!pipe) return "ERROR"; 24 | char buffer[2048]; 25 | string result = ""; 26 | while(!feof(pipe)) { 27 | if(fgets(buffer, 2048, pipe) != NULL) 28 | result += buffer; 29 | } 30 | pclose(pipe); 31 | if( isPrintToConsoleEnabled() ) { 32 | cout << result << endl; 33 | } 34 | return result; 35 | } 36 | 37 | //---------------------------------------- 38 | string ofxMacUtils::executeSystemCommand(string cmd, string aSystemPassword ) { 39 | if( aSystemPassword != "" ) { 40 | string command = "echo "+aSystemPassword+" | sudo -S "+cmd; 41 | return executeSystemCommand( command ); 42 | } 43 | 44 | string result = "ERROR :: executeSystemCommand : password is empty"; 45 | if( isPrintToConsoleEnabled() ) { 46 | cout << result << endl; 47 | } 48 | return result; 49 | } 50 | 51 | //---------------------------------------------------------- 52 | vector< ofxMacUtils::NetworkDeviceInfo > ofxMacUtils::getNetworkDeviceInfos() { 53 | vector< ofxMacUtils::NetworkDeviceInfo > infos; 54 | #ifdef TARGET_OSX 55 | struct ifaddrs* interfaces = NULL; 56 | struct ifaddrs* temp_addr = NULL; 57 | 58 | // retrieve the current interfaces - returns 0 on success 59 | int success = getifaddrs(&interfaces); 60 | if (success == 0) { 61 | // Loop through linked list of interfaces 62 | temp_addr = interfaces; 63 | while (temp_addr != NULL) { 64 | // internetwork only 65 | if (temp_addr->ifa_addr->sa_family == AF_INET) { 66 | string name = temp_addr->ifa_name; 67 | string address = inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr); 68 | string subnet = inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_netmask)->sin_addr); 69 | 70 | unsigned int flags = temp_addr->ifa_flags; 71 | infos.push_back( ofxMacUtils::NetworkDeviceInfo( name, address, subnet ) ); 72 | 73 | // cout << "name :: address " << name << " : " << address << endl; 74 | } 75 | temp_addr = temp_addr->ifa_next; 76 | } 77 | } 78 | 79 | // Free memory 80 | freeifaddrs(interfaces); 81 | #endif 82 | return infos; 83 | } 84 | 85 | //---------------------------------------------------------- 86 | string ofxMacUtils::getIpAddress() { 87 | string tipAddres = "1.1.1.1"; 88 | vector< ofxMacUtils::NetworkDeviceInfo > infos = getNetworkDeviceInfos(); 89 | for( int i = 0; i < infos.size(); i++ ) { 90 | if( infos[i].name.find( "en" ) != string::npos ) { 91 | tipAddres = infos[i].address; 92 | break; 93 | } 94 | } 95 | return tipAddres; 96 | } 97 | 98 | //---------------------------------------------------------- 99 | string ofxMacUtils::getSubnet() { 100 | string subnet = "255.255.255.0"; 101 | vector< ofxMacUtils::NetworkDeviceInfo > infos = getNetworkDeviceInfos(); 102 | for( int i = 0; i < infos.size(); i++ ) { 103 | if( infos[i].name.find( "en" ) != string::npos ) { 104 | subnet = infos[i].subnet; 105 | break; 106 | } 107 | } 108 | return subnet; 109 | } 110 | 111 | // http://stackoverflow.com/questions/13279220/how-do-i-get-the-currently-connected-network-interface-name-using-cocoa-or-found 112 | //---------------------------------------------------------- 113 | bool ofxMacUtils::isNetworkAvailable() { 114 | bool bRet = false; 115 | vector< ofxMacUtils::NetworkDeviceInfo > infos = getNetworkDeviceInfos(); 116 | for( int i = 0; i < infos.size(); i++ ) { 117 | if( infos[i].name.find( "en" ) != string::npos ) { 118 | bRet = true; 119 | break; 120 | } 121 | } 122 | 123 | return bRet; 124 | } 125 | 126 | // http://www.dgkapps.com/blog/osx-tips/osx-tips-turn-off-wifi-from-the-command-line/ 127 | //---------------------------------------------------------- 128 | string ofxMacUtils::getCurrentWifiPort() { 129 | // CURRENT_DEVICE=$(networksetup -listallhardwareports | awk '$3=="Wi-Fi" {getline; print $2}') 130 | string command = "networksetup -listallhardwareports | awk '$3==\"Wi-Fi\" {getline; print $2}'"; 131 | string res = executeSystemCommand( command ); 132 | ofStringReplace( res, "\r", ""); 133 | ofStringReplace( res, "\n", ""); 134 | return res; 135 | } 136 | 137 | //---------------------------------------------------------- 138 | void ofxMacUtils::setWifiPower( bool bOn ) { 139 | // networksetup -setairportpower en1 off 140 | string command = "networksetup -setairportpower "+getCurrentWifiPort()+" "+ofToString( bOn?"on":"off" ); 141 | cout << "isWifi On: " << getWifiPower() << endl; 142 | string res = executeSystemCommand( command ); 143 | } 144 | 145 | //---------------------------------------------------------- 146 | bool ofxMacUtils::getWifiPower() { 147 | string command = "networksetup -getairportpower "+getCurrentWifiPort(); 148 | string res = executeSystemCommand( command ); 149 | ofStringReplace( res, "\r", ""); 150 | ofStringReplace( res, "\n", ""); 151 | res = ofToLower(res); 152 | return ofIsStringInString( res, "on"); 153 | } 154 | 155 | //---------------------------------------------------------- 156 | void ofxMacUtils::setComputerName( string aSystemPassword, string aName ) { 157 | // ofStringReplace( aName, " ", "\n"); 158 | // ofStringReplace( aName, " ", "\r"); 159 | ofStringReplace( aName, " ", "\\ "); 160 | ofStringReplace( aName, "'", "\\'"); 161 | cout << "Trying to set the computer name " << aName << endl; 162 | string command = "scutil --set ComputerName "+aName; 163 | string res = executeSystemCommand( command, aSystemPassword ); 164 | } 165 | 166 | //---------------------------------------------------------- 167 | void ofxMacUtils::setComputerLocalHostName( string aSystemPassword, string aName ) { 168 | ofStringReplace( aName, " ", "-"); 169 | ofStringReplace( aName, "'", ""); 170 | ofStringReplace( aName, "+", "-"); 171 | string command = "scutil --set LocalHostName "+aName; 172 | string res = executeSystemCommand( command, aSystemPassword ); 173 | } 174 | 175 | //---------------------------------------------------------- 176 | void ofxMacUtils::setComputerHostName( string aSystemPassword, string aName ) { 177 | // ofStringReplace( aName, " ", "\ "); 178 | string command = "scutil --set HostName "+aName; 179 | string res = executeSystemCommand( command, aSystemPassword ); 180 | } 181 | 182 | //---------------------------------------------------------- 183 | string ofxMacUtils::getComputerName() { 184 | string command = "scutil --get ComputerName"; 185 | string res = executeSystemCommand( command ); 186 | ofStringReplace( res, "\r", ""); 187 | ofStringReplace( res, "\n", ""); 188 | return res; 189 | } 190 | 191 | //---------------------------------------------------------- 192 | string ofxMacUtils::getComputerLocalHostName() { 193 | string command = "scutil --get LocalHostName"; 194 | string res = executeSystemCommand( command ); 195 | ofStringReplace( res, "\r", ""); 196 | ofStringReplace( res, "\n", ""); 197 | return res; 198 | } 199 | 200 | //---------------------------------------------------------- 201 | string ofxMacUtils::getComputerHostName() { 202 | string command = "scutil --get HostName"; 203 | string res = executeSystemCommand( command ); 204 | ofStringReplace( res, "\r", ""); 205 | ofStringReplace( res, "\n", ""); 206 | return res; 207 | } 208 | 209 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 210 | //---------------------------------------------------------- 211 | string ofxMacUtils::getCurrentUsername() { 212 | return [NSUserName() UTF8String]; 213 | } 214 | #endif 215 | 216 | // http://apple.stackexchange.com/questions/47503/how-to-control-bluetooth-wireless-radio-from-the-command-line 217 | //---------------------------------------------------------- 218 | void ofxMacUtils::setBluetooth( string aSystemPassword, bool bEnable ) { 219 | // sudo defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -bool FALSE 220 | // sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist 221 | // sudo launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist 222 | string command; 223 | if( bEnable ) { 224 | command = "defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -bool TRUE"; 225 | } else { 226 | command = "defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -bool FALSE"; 227 | } 228 | string res = executeSystemCommand( command, aSystemPassword ); 229 | command = "launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist"; 230 | executeSystemCommand( command, aSystemPassword ); 231 | command = "launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist"; 232 | res += executeSystemCommand( command, aSystemPassword ); 233 | } 234 | 235 | // http://alblue.bandlem.com/2013/10/disabling-osx-bluetooth.html 236 | //---------------------------------------------------------- 237 | void ofxMacUtils::setBluetoothSeupAssistant( string aSystemPassword, bool bEnable ) { 238 | string command = "defaults write /Library/Preferences/com.apple.Bluetooth BluetoothAutoSeekKeyboard '"+ofToString(bEnable?"1":"0")+"'"; 239 | string res = executeSystemCommand( command, aSystemPassword ); 240 | 241 | command = "defaults write /Library/Preferences/com.apple.Bluetooth BluetoothAutoSeekPointingDevice '"+ofToString(bEnable?"1":"0")+"'"; 242 | res += executeSystemCommand( command, aSystemPassword ); 243 | } 244 | 245 | // http://thisiskindagood.hatenablog.com/entry/2014/07/03/120036 246 | // requires reboot // 247 | //---------------------------------------------------------- 248 | void ofxMacUtils::setSendDiagInfo( string aSystemPassword, bool bEnable ) { 249 | string command = ""; 250 | if( bEnable ) { 251 | command = "launchctl load -w /System/Library/LaunchDaemons/com.apple.DiagnosticReportCleanUpDaemon.plist"; 252 | } else { 253 | command = "launchctl unload -w /System/Library/LaunchDaemons/com.apple.DiagnosticReportCleanUpDaemon.plist"; 254 | } 255 | string res = executeSystemCommand( command, aSystemPassword ); 256 | } 257 | 258 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 259 | // crashes every once in a while when calling every frame, supposed to register for events // 260 | //-------------------------------------------------------------- 261 | NSRunningApplication* ofxMacUtils::getRunningProcess( string aProcessName ) { 262 | for(NSRunningApplication *currApp in [[NSWorkspace sharedWorkspace] runningApplications]) { 263 | if( !currApp || currApp == nil ) continue; 264 | NSString* localString = [currApp localizedName]; 265 | if( [localString isEqual:[NSNull null]] ) continue; 266 | 267 | string cappName = [localString UTF8String]; 268 | 269 | if( cappName == aProcessName ) { 270 | // NSLog(@"debugdescription: %@", [currApp _activeSeed] ); 271 | return currApp; 272 | } 273 | } 274 | return nil; 275 | } 276 | #endif 277 | 278 | //-------------------------------------------------------------- 279 | bool ofxMacUtils::isProcessRunning( string aAbsPath ) { 280 | string command = "ps aux | grep '"+aAbsPath+"' | wc -l"; 281 | string execres = executeSystemCommand( command ); 282 | int numInstances = ofToInt( execres ); 283 | return numInstances > 2; 284 | } 285 | 286 | //-------------------------------------------------------------- 287 | void ofxMacUtils::openProcess( string aAbsPath ) { 288 | string command = "open "+aAbsPath+" &"; 289 | system( command.c_str() ); 290 | } 291 | 292 | //-------------------------------------------------------------- 293 | string ofxMacUtils::getProcessId( string aProcessName ) { 294 | string command = "pgrep "+aProcessName; 295 | string execres = executeSystemCommand( command ); 296 | ofStringReplace( execres, "\n", "" ); 297 | ofStringReplace( execres, "\r", "" ); 298 | return execres; 299 | } 300 | 301 | //-------------------------------------------------------------- 302 | bool ofxMacUtils::isApplicationRunning( string aAppName ) { 303 | string command = "osascript -e 'tell application \"System Events\"' -e 'count (every process whose displayed name is \""+aAppName+"\")' -e 'end tell'"; 304 | string execres = executeSystemCommand( command ); 305 | int res = ofToInt( execres ); 306 | return res > 0; 307 | } 308 | 309 | //-------------------------------------------------------------- 310 | void ofxMacUtils::runApplication( string aAppName ) { 311 | string command = "osascript -e 'tell application \""+aAppName+"\" to activate'"; 312 | string execres = executeSystemCommand( command ); 313 | } 314 | 315 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 316 | // not very efficient // 317 | //-------------------------------------------------------------- 318 | string ofxMacUtils::getProcessStatus( string aProcessName ) { 319 | 320 | // TODO: Find faster / more reliable way for getting the process ID // 321 | NSRunningApplication* papp = getRunningProcess( aProcessName ); 322 | if( papp == nil || !papp ) return "terminated"; 323 | 324 | pid_t pid = [papp processIdentifier]; 325 | 326 | // top -l1 -n 1 -pid 48929 -stats "STATE" | tail -n 1 | head -n 1 327 | string command = "top -l1 -n 1 -pid "+ofToString(pid,0)+" -stats \"STATE\" | tail -n 1 | head -n 1"; 328 | string execres = executeSystemCommand( command ); 329 | // string execres = system( command.c_str() ); 330 | ofStringReplace( execres, "\n", "" ); 331 | ofStringReplace( execres, "\r", "" ); 332 | return execres; 333 | } 334 | #endif 335 | 336 | //-------------------------------------------------------------- 337 | void ofxMacUtils::setScreenSaverStartTime( float aTimeInSeconds ) { 338 | // defaults -currentHost write com.apple.screensaver idleTime 0 339 | string command = "defaults -currentHost write com.apple.screensaver idleTime "+ofToString( aTimeInSeconds, 0); 340 | string execres = executeSystemCommand( command ); 341 | } 342 | 343 | //-------------------------------------------------------------- 344 | bool ofxMacUtils::isApplicationALoginItem( string aAppName ) { 345 | string command = "osascript -e 'tell application \"System Events\" to get the name of every login item'"; 346 | string execres = executeSystemCommand( command ); 347 | // cout << "isApplicationLoginItem: " << execres << endl; 348 | return ofIsStringInString( execres, aAppName ); 349 | } 350 | 351 | //-------------------------------------------------------------- 352 | void ofxMacUtils::addApplicationToLoginItems( string aPathToApp, bool bHide ) { 353 | // osascript -e 'tell application "System Events" to make login item at end with properties {path:"fullPathToApp.app", hidden:false}' 354 | string hstr = (bHide ? "true" : "false"); 355 | string command = "osascript -e 'tell application \"System Events\" to make login item at end with properties {path:\""+aPathToApp+"\", hidden:"+hstr+"}'"; 356 | string execres = executeSystemCommand( command ); 357 | } 358 | 359 | // http://stackoverflow.com/questions/5468074/programmatically-changing-desktop-image 360 | //-------------------------------------------------------------- 361 | void ofxMacUtils::setDesktopImage( string aAbsPath ) { 362 | // defaults write com.apple.desktop Background “{default = {ImageFilePath=’$WLPR’; };}”; killall Dock 363 | // string command = "defaults write com.apple.desktop Background \"{default = {ImageFilePath='"+aAbsPath+"'; };}\"; killall Dock"; 364 | // string execres = exec( command.c_str() ); 365 | 366 | NSURL* newImageURL = [NSURL fileURLWithPath:[NSString stringWithUTF8String:aAbsPath.c_str()] ]; 367 | 368 | NSInteger count = [[NSScreen screens] count]; 369 | for( int i = 0; i < count; i++ ) { 370 | NSScreen* curScreen = [[NSScreen screens] objectAtIndex:i]; 371 | NSMutableDictionary *screenOptions = [[[NSWorkspace sharedWorkspace] desktopImageOptionsForScreen:curScreen] mutableCopy]; 372 | 373 | // NSURL* currentImageURL = [[NSWorkspace sharedWorkspace] desktopImageURLForScreen:curScreen]; 374 | // desktopImageURLForScreen 375 | // setDesktopImageURL:(NSURL *)url forScreen:(NSScreen *)screen options:(NSDictionary *)options error:(NSError **)error 376 | NSError *error = nil; 377 | if (![[NSWorkspace sharedWorkspace] setDesktopImageURL:newImageURL 378 | forScreen:curScreen 379 | options:screenOptions 380 | error:&error]) { 381 | NSLog(@"Error: %@ %@", error, [error userInfo]); 382 | } 383 | 384 | [screenOptions release]; 385 | } 386 | 387 | 388 | 389 | } 390 | 391 | //-------------------------------------------------------------- 392 | void ofxMacUtils::setLoginImage( string aAbsPath ) { 393 | // defaults write /Library/Preferences/com.apple.loginwindow DesktopPicture "/System/Library/CoreServices/Finder.app/Contents/Resources/vortex.png" 394 | string command = "defaults write /Library/Preferences/com.apple.loginwindow DesktopPicture \""+aAbsPath+"\""; 395 | string res = executeSystemCommand( command ); 396 | } 397 | 398 | //-------------------------------------------------------------- 399 | void ofxMacUtils::setSoftwareUpdates( string aRootPassword, bool bOn ) { 400 | // sudo softwareupdate --schedule off 401 | // string command = "echo "+rootPassword+" | sudo -S softwareupdate --schedule off"; 402 | // system( command.c_str() ); 403 | string command = "softwareupdate --schedule "+ofToString( bOn ? "on":"off"); 404 | string res = executeSystemCommand( command, aRootPassword ); 405 | } 406 | 407 | //-------------------------------------------------------------- 408 | void ofxMacUtils::setSleep( string aRootPassword, bool bOn ) { 409 | // string command = "echo "+rootPassword+" | sudo -S systemsetup -setsleep off"; 410 | // system( command.c_str() ); 411 | string command = "systemsetup -setsleep "+ofToString(bOn?"on":"off"); 412 | string res = executeSystemCommand( command, aRootPassword ); 413 | } 414 | 415 | // http://www.cnet.com/news/how-to-manage-os-x-gatekeeper-from-the-command-line/ 416 | //-------------------------------------------------------------- 417 | void ofxMacUtils::setGateKeeper( string aRootPassword, bool bOn ) { 418 | // spctl --add --label "MyLabel" /Path/To/program 419 | // string command = "echo "+rootPassword+" | sudo -S spctl --add --label \""+aAppFile.getBaseName()+"\" "+aAppFile.getAbsolutePath(); 420 | // spctl --master-disable 421 | // string command = "echo "+rootPassword+" | sudo -S spctl --master-disable"; 422 | // system( command.c_str() ); 423 | string command = "spctl --master-"+ofToString( bOn?"enable":"disable"); 424 | string res = executeSystemCommand( command, aRootPassword ); 425 | } 426 | 427 | //-------------------------------------------------------------- 428 | void ofxMacUtils::setCrashReporterDialog( bool bEnable ) { 429 | // defaults write com.apple.CrashReporter DialogType none 430 | string cstr = bEnable ? "prompt" : "none"; 431 | string command = "defaults write com.apple.CrashReporter DialogType "+cstr; 432 | system( command.c_str() ); 433 | } 434 | 435 | // https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man8/systemsetup.8.html 436 | //-------------------------------------------------------------- 437 | void ofxMacUtils::restartOnPowerFailure( string aRootPassword, bool aYes ) { 438 | // setrestartpowerfailure 439 | // string command = "echo "+rootPassword+" | sudo -S spctl --add --label \""+aAppFile.getBaseName()+"\" "+aAppFile.getAbsolutePath(); 440 | // spctl --master-disable 441 | string cstr = aYes ? "on" : "off"; 442 | // string command = "echo "+rootPassword+" | sudo -S systemsetup -setrestartpowerfailure "+cstr; 443 | // system( command.c_str() ); 444 | string command = "systemsetup -setrestartpowerfailure "+cstr; 445 | string res = executeSystemCommand( command, aRootPassword ); 446 | } 447 | 448 | //-------------------------------------------------------------- 449 | void ofxMacUtils::setNotificationCenter( bool bEnable ) { 450 | // http://www.tuaw.com/2014/03/18/how-to-permanently-remove-notification-center-from-os-x/ 451 | // launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist 452 | string command; 453 | if( bEnable ) { 454 | command = "launchctl load -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist; killall NotificationCenter; "; 455 | // might need to open manually open /System/Library/CoreServices/NotificationCenter.app 456 | } else { 457 | command = "launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist"; 458 | } 459 | system( command.c_str() ); 460 | } 461 | 462 | //-------------------------------------------------------------- 463 | void ofxMacUtils::setScreenSharing( string aRootPassword, bool bEnable ) { 464 | // http://pivotallabs.com/enabling-os-x-screen-sharing-from-the-command-line/ 465 | string command; 466 | if( bEnable ) { 467 | command = "defaults write /var/db/launchd.db/com.apple.launchd/overrides.plist com.apple.screensharing -dict Disabled -bool false"; 468 | } else { 469 | command = "defaults write /var/db/launchd.db/com.apple.launchd/overrides.plist com.apple.screensharing -dict Disabled -bool true"; 470 | } 471 | string res = executeSystemCommand( command, aRootPassword ); 472 | if( bEnable ) { 473 | command = "launchctl load /System/Library/LaunchDaemons/com.apple.screensharing.plist"; 474 | } else { 475 | command = "launchctl unload /System/Library/LaunchDaemons/com.apple.screensharing.plist"; 476 | } 477 | res += executeSystemCommand( command, aRootPassword ); 478 | 479 | } 480 | 481 | //-------------------------------------------------------------- 482 | void ofxMacUtils::setFireWall( string aRootPassword, bool bEnable ) { 483 | string command = "defaults write /Library/Preferences/com.apple.alf globalstate -int "+ofToString(bEnable?1:0); 484 | string res = executeSystemCommand( command, aRootPassword ); 485 | command = "launchctl unload /System/Library/LaunchDaemons/com.apple.alf.agent.plist"; 486 | res = executeSystemCommand( command, aRootPassword ); 487 | command = "launchctl load /System/Library/LaunchDaemons/com.apple.alf.agent.plist"; 488 | res = executeSystemCommand( command, aRootPassword ); 489 | } 490 | 491 | //-------------------------------------------------------------- 492 | int ofxMacUtils::getNumMonitors() { 493 | // string ncommand = "system_profiler SPDisplaysDataType | grep 'Online: Yes' | wc -l"; 494 | // int numMonitors = ofToInt( MacUtils::executeSystemCommand( ncommand )); 495 | return [[NSScreen screens] count]; 496 | } 497 | 498 | //-------------------------------------------------------------- 499 | int ofxMacUtils::screenCapture( vector aScreenCaptureSavePaths ) { 500 | string command = "screencapture"; 501 | int screenCaptureStatus = 0; 502 | if( aScreenCaptureSavePaths.size() ) { 503 | int numMonitors = getNumMonitors(); 504 | for( int i = 0; i < aScreenCaptureSavePaths.size(); i++ ) { 505 | if( i >= numMonitors ) break; 506 | command += " "+aScreenCaptureSavePaths[i]; 507 | } 508 | screenCaptureStatus = ofToInt(executeSystemCommand( command )); 509 | } 510 | return screenCaptureStatus; 511 | } 512 | 513 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 514 | //-------------------------------------------------------------- 515 | bool ofxMacUtils::saveNsImage( NSImage* aImage, string aSavePath, bool bMakeAbsolute, float aWidth, float aHeight, bool bProportional ) { 516 | 517 | string path = aSavePath; 518 | 519 | if( aWidth == 0 && aHeight == 0 ) { 520 | aWidth = [aImage size].width; 521 | aHeight = [aImage size].height; 522 | } 523 | 524 | CGImageRef imgRef = resizeNSImageToCGRef( aImage, aWidth, aHeight, bProportional ); 525 | bool bIsNil = imgRef == nil; 526 | cout << "imgRef is nil: " << bIsNil << endl; 527 | 528 | if( imgRef == nil ) return false; 529 | 530 | 531 | NSBitmapImageRep *newRep = [[NSBitmapImageRep alloc] initWithCGImage:imgRef]; 532 | // [newRep setSize:NSMakeSize(256, 256)]; 533 | NSData *pngData = [newRep representationUsingType:NSPNGFileType properties:nil]; 534 | 535 | if(bMakeAbsolute) path = ofToDataPath( path, true ); 536 | 537 | cout << "Going to save to path: " << path << endl; 538 | 539 | NSString* iconPath = [NSString stringWithUTF8String:path.c_str()]; 540 | [pngData writeToFile:iconPath atomically:NO]; 541 | [newRep autorelease]; 542 | return true; 543 | } 544 | 545 | //-------------------------------------------------------------- 546 | CGImageRef ofxMacUtils::resizeNSImageToCGRef( NSImage* aImage, float aWidth, float aHeight, bool bProportional ) { 547 | 548 | 549 | ofRectangle trect( 0, 0, aWidth, aHeight ); 550 | if( bProportional ) { 551 | ofRectangle srect( 0, 0, [aImage size].width, [aImage size].height ); 552 | srect.scaleTo( trect ); 553 | trect = srect; 554 | } 555 | 556 | NSRect pRect = NSMakeRect( 0, 0, [aImage size].width, [aImage size].height ); 557 | NSRect rpRect = NSMakeRect( 0, 0, trect.width, trect.height ); 558 | 559 | CGImageRef cgRef = [aImage CGImageForProposedRect:nil 560 | context:nil 561 | hints:nil]; 562 | 563 | CGImageRef rcgRef = [aImage CGImageForProposedRect:&rpRect 564 | context:nil 565 | hints:nil]; 566 | 567 | // create context, keeping original image properties 568 | CGColorSpaceRef colorspace = CGImageGetColorSpace(cgRef); 569 | CGContextRef context = CGBitmapContextCreate(NULL, trect.width, trect.height, 570 | CGImageGetBitsPerComponent(cgRef), 571 | 0, //CGImageGetBytesPerRow(cgRef), 572 | colorspace, 573 | CGImageGetAlphaInfo(cgRef)); 574 | 575 | 576 | CGColorSpaceRef rcolorspace = CGImageGetColorSpace(rcgRef); 577 | CGContextRef rcontext = CGBitmapContextCreate(NULL, trect.width, trect.height, 578 | CGImageGetBitsPerComponent(rcgRef), 579 | 0,//CGImageGetBytesPerRow(rcgRef), 580 | colorspace, 581 | CGImageGetAlphaInfo(rcgRef)); 582 | 583 | CGColorSpaceRelease(colorspace); 584 | CGColorSpaceRelease(rcolorspace); 585 | 586 | bool bContextIsNull = context == NULL; 587 | cout << "context: " << bContextIsNull << " w: " << trect.width << " x " << trect.height << endl; 588 | 589 | if(context == NULL) 590 | return nil; 591 | 592 | 593 | // draw image to context (resizing it) 594 | CGContextDrawImage(rcontext, CGRectMake(0, 0, trect.width, trect.height), rcgRef); 595 | // extract resulting image from context 596 | CGImageRef imgRef = CGBitmapContextCreateImage(rcontext); 597 | CGContextRelease(context); 598 | CGContextRelease(rcontext); 599 | return imgRef; 600 | } 601 | #endif 602 | 603 | //-------------------------------------------------------------- 604 | void ofxMacUtils::enablePrintToConsole() { 605 | bPrintToConsole = true; 606 | } 607 | 608 | //-------------------------------------------------------------- 609 | void ofxMacUtils::disablePrintToConsole() { 610 | bPrintToConsole = false; 611 | } 612 | 613 | //-------------------------------------------------------------- 614 | bool ofxMacUtils::isPrintToConsoleEnabled() { 615 | return bPrintToConsole; 616 | } 617 | 618 | #ifdef OFX_MAC_UTILS_USE_OBJ_C 619 | //-------------------------------------------------------------- 620 | void ofxMacUtils::addWorkspaceNotificationsListener( ofxMacUtilsWorkpaceNotificationsListener* aListener ) { 621 | if( nsWSResponder == nil ) { 622 | nsWSResponder = [[ofxMacUtilsWorkspaceResponder alloc] init]; 623 | } 624 | wsListeners.push_back( aListener ); 625 | } 626 | 627 | //-------------------------------------------------------------- 628 | void ofxMacUtils::removeAllNotificationsListeners() { 629 | wsListeners.clear(); 630 | if( nsWSResponder != nil ) { 631 | [nsWSResponder dealloc]; 632 | nsWSResponder = nil; 633 | } 634 | } 635 | 636 | //-------------------------------------------------------------- 637 | void ofxMacUtils::receivedNotificationFromResponder( int aEvent ) { 638 | list::iterator it; 639 | for ( it = wsListeners.begin(); it != wsListeners.end(); ++it) { 640 | (*it)->ofxMacUtilsWorkpaceNotificationReceived( aEvent ); 641 | } 642 | } 643 | #endif 644 | 645 | 646 | 647 | 648 | 649 | -------------------------------------------------------------------------------- /InstaFigurator/Resources/MainView.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | NSAllRomanInputSourcesLocaleIdentifier 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 142 | 150 | 158 | 166 | 174 | 182 | 190 | 198 | 206 | 214 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 316 | 317 | 318 | 319 | 320 | 321 | 329 | 337 | 345 | 353 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | -------------------------------------------------------------------------------- /PowerNotifications/PowerNotificationsExample.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 2E3889801AAF8E700056CA68 /* ofxMacUtils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2E38897C1AAF8E700056CA68 /* ofxMacUtils.mm */; }; 11 | 2E3889811AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2E38897F1AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.mm */; }; 12 | 2E7655C21AB31F550079EAF5 /* tinyxml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E7655BB1AB31F550079EAF5 /* tinyxml.cpp */; }; 13 | 2E7655C31AB31F550079EAF5 /* tinyxmlerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E7655BD1AB31F550079EAF5 /* tinyxmlerror.cpp */; }; 14 | 2E7655C41AB31F550079EAF5 /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E7655BE1AB31F550079EAF5 /* tinyxmlparser.cpp */; }; 15 | 2E7655C51AB31F550079EAF5 /* ofxXmlSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E7655C01AB31F550079EAF5 /* ofxXmlSettings.cpp */; }; 16 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 17 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; 18 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; 19 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; 20 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; 21 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; 22 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; 23 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; 24 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; 25 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; 26 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; 27 | E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; }; 28 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; 29 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; 30 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; 31 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 32 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */; }; 33 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E715D3B6510020DFD4 /* QTKit.framework */; }; 34 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F985F515E0DE99003869B5 /* Accelerate.framework */; }; 35 | /* End PBXBuildFile section */ 36 | 37 | /* Begin PBXContainerItemProxy section */ 38 | E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = { 39 | isa = PBXContainerItemProxy; 40 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 41 | proxyType = 2; 42 | remoteGlobalIDString = E4B27C1510CBEB8E00536013; 43 | remoteInfo = openFrameworks; 44 | }; 45 | E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = { 46 | isa = PBXContainerItemProxy; 47 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 48 | proxyType = 1; 49 | remoteGlobalIDString = E4B27C1410CBEB8E00536013; 50 | remoteInfo = openFrameworks; 51 | }; 52 | /* End PBXContainerItemProxy section */ 53 | 54 | /* Begin PBXCopyFilesBuildPhase section */ 55 | E4C2427710CC5ABF004149E2 /* CopyFiles */ = { 56 | isa = PBXCopyFilesBuildPhase; 57 | buildActionMask = 2147483647; 58 | dstPath = ""; 59 | dstSubfolderSpec = 10; 60 | files = ( 61 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */, 62 | ); 63 | runOnlyForDeploymentPostprocessing = 0; 64 | }; 65 | /* End PBXCopyFilesBuildPhase section */ 66 | 67 | /* Begin PBXFileReference section */ 68 | 2E38897B1AAF8E700056CA68 /* ofxMacUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxMacUtils.h; sourceTree = ""; }; 69 | 2E38897C1AAF8E700056CA68 /* ofxMacUtils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ofxMacUtils.mm; sourceTree = ""; }; 70 | 2E38897D1AAF8E700056CA68 /* ofxMacUtilsWorkpaceNotificationsListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxMacUtilsWorkpaceNotificationsListener.h; sourceTree = ""; }; 71 | 2E38897E1AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxMacUtilsWorkspaceResponder.h; sourceTree = ""; }; 72 | 2E38897F1AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ofxMacUtilsWorkspaceResponder.mm; sourceTree = ""; }; 73 | 2E7655BB1AB31F550079EAF5 /* tinyxml.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxml.cpp; sourceTree = ""; }; 74 | 2E7655BC1AB31F550079EAF5 /* tinyxml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinyxml.h; sourceTree = ""; }; 75 | 2E7655BD1AB31F550079EAF5 /* tinyxmlerror.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlerror.cpp; sourceTree = ""; }; 76 | 2E7655BE1AB31F550079EAF5 /* tinyxmlparser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlparser.cpp; sourceTree = ""; }; 77 | 2E7655C01AB31F550079EAF5 /* ofxXmlSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxXmlSettings.cpp; sourceTree = ""; }; 78 | 2E7655C11AB31F550079EAF5 /* ofxXmlSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxXmlSettings.h; sourceTree = ""; }; 79 | BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; }; 80 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; 81 | E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; 82 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; 83 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; 84 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; 85 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; 86 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; 87 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; 88 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; 89 | E4B69B5B0A3A1756003C02F2 /* PowerNotificationsExampleDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PowerNotificationsExampleDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; 90 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 30; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; 91 | E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 30; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; }; 92 | E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; }; 93 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; 94 | E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 95 | E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 96 | E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; 97 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; 98 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; 99 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = ""; }; 100 | E7E077E715D3B6510020DFD4 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = ""; }; 101 | E7F985F515E0DE99003869B5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = ""; }; 102 | /* End PBXFileReference section */ 103 | 104 | /* Begin PBXFrameworksBuildPhase section */ 105 | E4B69B590A3A1756003C02F2 /* Frameworks */ = { 106 | isa = PBXFrameworksBuildPhase; 107 | buildActionMask = 2147483647; 108 | files = ( 109 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */, 110 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */, 111 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, 112 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, 113 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, 114 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, 115 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, 116 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, 117 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, 118 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, 119 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, 120 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, 121 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, 122 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, 123 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, 124 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */, 125 | ); 126 | runOnlyForDeploymentPostprocessing = 0; 127 | }; 128 | /* End PBXFrameworksBuildPhase section */ 129 | 130 | /* Begin PBXGroup section */ 131 | 2E06A5E81AAF628E00DF91CF /* ofxMacUtils */ = { 132 | isa = PBXGroup; 133 | children = ( 134 | 2E38897A1AAF8E700056CA68 /* src */, 135 | ); 136 | name = ofxMacUtils; 137 | path = ../../../addons/ofxMacUtils; 138 | sourceTree = ""; 139 | }; 140 | 2E38897A1AAF8E700056CA68 /* src */ = { 141 | isa = PBXGroup; 142 | children = ( 143 | 2E38897B1AAF8E700056CA68 /* ofxMacUtils.h */, 144 | 2E38897C1AAF8E700056CA68 /* ofxMacUtils.mm */, 145 | 2E38897D1AAF8E700056CA68 /* ofxMacUtilsWorkpaceNotificationsListener.h */, 146 | 2E38897E1AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.h */, 147 | 2E38897F1AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.mm */, 148 | ); 149 | path = src; 150 | sourceTree = ""; 151 | }; 152 | 2E7655B91AB31F550079EAF5 /* ofxXmlSettings */ = { 153 | isa = PBXGroup; 154 | children = ( 155 | 2E7655BA1AB31F550079EAF5 /* libs */, 156 | 2E7655BF1AB31F550079EAF5 /* src */, 157 | ); 158 | name = ofxXmlSettings; 159 | path = ../../ofxXmlSettings; 160 | sourceTree = ""; 161 | }; 162 | 2E7655BA1AB31F550079EAF5 /* libs */ = { 163 | isa = PBXGroup; 164 | children = ( 165 | 2E7655BB1AB31F550079EAF5 /* tinyxml.cpp */, 166 | 2E7655BC1AB31F550079EAF5 /* tinyxml.h */, 167 | 2E7655BD1AB31F550079EAF5 /* tinyxmlerror.cpp */, 168 | 2E7655BE1AB31F550079EAF5 /* tinyxmlparser.cpp */, 169 | ); 170 | path = libs; 171 | sourceTree = ""; 172 | }; 173 | 2E7655BF1AB31F550079EAF5 /* src */ = { 174 | isa = PBXGroup; 175 | children = ( 176 | 2E7655C01AB31F550079EAF5 /* ofxXmlSettings.cpp */, 177 | 2E7655C11AB31F550079EAF5 /* ofxXmlSettings.h */, 178 | ); 179 | path = src; 180 | sourceTree = ""; 181 | }; 182 | BB4B014C10F69532006C3DED /* addons */ = { 183 | isa = PBXGroup; 184 | children = ( 185 | 2E7655B91AB31F550079EAF5 /* ofxXmlSettings */, 186 | 2E06A5E81AAF628E00DF91CF /* ofxMacUtils */, 187 | ); 188 | name = addons; 189 | sourceTree = ""; 190 | }; 191 | BBAB23C913894ECA00AA2426 /* system frameworks */ = { 192 | isa = PBXGroup; 193 | children = ( 194 | E7F985F515E0DE99003869B5 /* Accelerate.framework */, 195 | E4C2424410CC5A17004149E2 /* AppKit.framework */, 196 | E4C2424510CC5A17004149E2 /* Cocoa.framework */, 197 | E4C2424610CC5A17004149E2 /* IOKit.framework */, 198 | E45BE9710E8CC7DD009D7055 /* AGL.framework */, 199 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, 200 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, 201 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, 202 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, 203 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, 204 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, 205 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, 206 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */, 207 | E7E077E715D3B6510020DFD4 /* QTKit.framework */, 208 | ); 209 | name = "system frameworks"; 210 | sourceTree = ""; 211 | }; 212 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { 213 | isa = PBXGroup; 214 | children = ( 215 | BBAB23BE13894E4700AA2426 /* GLUT.framework */, 216 | ); 217 | name = "3rd party frameworks"; 218 | sourceTree = ""; 219 | }; 220 | E4328144138ABC890047C5CB /* Products */ = { 221 | isa = PBXGroup; 222 | children = ( 223 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */, 224 | ); 225 | name = Products; 226 | sourceTree = ""; 227 | }; 228 | E45BE5980E8CC70C009D7055 /* frameworks */ = { 229 | isa = PBXGroup; 230 | children = ( 231 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, 232 | BBAB23C913894ECA00AA2426 /* system frameworks */, 233 | ); 234 | name = frameworks; 235 | sourceTree = ""; 236 | }; 237 | E4B69B4A0A3A1720003C02F2 = { 238 | isa = PBXGroup; 239 | children = ( 240 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */, 241 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */, 242 | E4B69E1C0A3A1BDC003C02F2 /* src */, 243 | E4EEC9E9138DF44700A80321 /* openFrameworks */, 244 | BB4B014C10F69532006C3DED /* addons */, 245 | E45BE5980E8CC70C009D7055 /* frameworks */, 246 | E4B69B5B0A3A1756003C02F2 /* PowerNotificationsExampleDebug.app */, 247 | ); 248 | sourceTree = ""; 249 | }; 250 | E4B69E1C0A3A1BDC003C02F2 /* src */ = { 251 | isa = PBXGroup; 252 | children = ( 253 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, 254 | E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */, 255 | E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */, 256 | ); 257 | path = src; 258 | sourceTree = SOURCE_ROOT; 259 | }; 260 | E4EEC9E9138DF44700A80321 /* openFrameworks */ = { 261 | isa = PBXGroup; 262 | children = ( 263 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */, 264 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */, 265 | ); 266 | name = openFrameworks; 267 | sourceTree = ""; 268 | }; 269 | /* End PBXGroup section */ 270 | 271 | /* Begin PBXNativeTarget section */ 272 | E4B69B5A0A3A1756003C02F2 /* PowerNotificationsExample */ = { 273 | isa = PBXNativeTarget; 274 | buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "PowerNotificationsExample" */; 275 | buildPhases = ( 276 | E4B69B580A3A1756003C02F2 /* Sources */, 277 | E4B69B590A3A1756003C02F2 /* Frameworks */, 278 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, 279 | E4C2427710CC5ABF004149E2 /* CopyFiles */, 280 | ); 281 | buildRules = ( 282 | ); 283 | dependencies = ( 284 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */, 285 | ); 286 | name = PowerNotificationsExample; 287 | productName = myOFApp; 288 | productReference = E4B69B5B0A3A1756003C02F2 /* PowerNotificationsExampleDebug.app */; 289 | productType = "com.apple.product-type.application"; 290 | }; 291 | /* End PBXNativeTarget section */ 292 | 293 | /* Begin PBXProject section */ 294 | E4B69B4C0A3A1720003C02F2 /* Project object */ = { 295 | isa = PBXProject; 296 | attributes = { 297 | LastUpgradeCheck = 0460; 298 | }; 299 | buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "PowerNotificationsExample" */; 300 | compatibilityVersion = "Xcode 3.2"; 301 | developmentRegion = English; 302 | hasScannedForEncodings = 0; 303 | knownRegions = ( 304 | English, 305 | Japanese, 306 | French, 307 | German, 308 | ); 309 | mainGroup = E4B69B4A0A3A1720003C02F2; 310 | productRefGroup = E4B69B4A0A3A1720003C02F2; 311 | projectDirPath = ""; 312 | projectReferences = ( 313 | { 314 | ProductGroup = E4328144138ABC890047C5CB /* Products */; 315 | ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 316 | }, 317 | ); 318 | projectRoot = ""; 319 | targets = ( 320 | E4B69B5A0A3A1756003C02F2 /* PowerNotificationsExample */, 321 | ); 322 | }; 323 | /* End PBXProject section */ 324 | 325 | /* Begin PBXReferenceProxy section */ 326 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = { 327 | isa = PBXReferenceProxy; 328 | fileType = archive.ar; 329 | path = openFrameworksDebug.a; 330 | remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */; 331 | sourceTree = BUILT_PRODUCTS_DIR; 332 | }; 333 | /* End PBXReferenceProxy section */ 334 | 335 | /* Begin PBXShellScriptBuildPhase section */ 336 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { 337 | isa = PBXShellScriptBuildPhase; 338 | buildActionMask = 2147483647; 339 | files = ( 340 | ); 341 | inputPaths = ( 342 | ); 343 | outputPaths = ( 344 | ); 345 | runOnlyForDeploymentPostprocessing = 0; 346 | shellPath = /bin/sh; 347 | shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";\nmkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\ncp -f \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n"; 348 | }; 349 | /* End PBXShellScriptBuildPhase section */ 350 | 351 | /* Begin PBXSourcesBuildPhase section */ 352 | E4B69B580A3A1756003C02F2 /* Sources */ = { 353 | isa = PBXSourcesBuildPhase; 354 | buildActionMask = 2147483647; 355 | files = ( 356 | 2E7655C31AB31F550079EAF5 /* tinyxmlerror.cpp in Sources */, 357 | 2E3889811AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.mm in Sources */, 358 | 2E7655C51AB31F550079EAF5 /* ofxXmlSettings.cpp in Sources */, 359 | 2E7655C21AB31F550079EAF5 /* tinyxml.cpp in Sources */, 360 | 2E7655C41AB31F550079EAF5 /* tinyxmlparser.cpp in Sources */, 361 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, 362 | E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */, 363 | 2E3889801AAF8E700056CA68 /* ofxMacUtils.mm in Sources */, 364 | ); 365 | runOnlyForDeploymentPostprocessing = 0; 366 | }; 367 | /* End PBXSourcesBuildPhase section */ 368 | 369 | /* Begin PBXTargetDependency section */ 370 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = { 371 | isa = PBXTargetDependency; 372 | name = openFrameworks; 373 | targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */; 374 | }; 375 | /* End PBXTargetDependency section */ 376 | 377 | /* Begin XCBuildConfiguration section */ 378 | E4B69B4E0A3A1720003C02F2 /* Debug */ = { 379 | isa = XCBuildConfiguration; 380 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 381 | buildSettings = { 382 | ARCHS = "$(NATIVE_ARCH)"; 383 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 384 | COPY_PHASE_STRIP = NO; 385 | DEAD_CODE_STRIPPING = YES; 386 | GCC_AUTO_VECTORIZATION = YES; 387 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 388 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 389 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 390 | GCC_OPTIMIZATION_LEVEL = 0; 391 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 392 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 393 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 394 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 395 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 396 | GCC_WARN_UNUSED_VALUE = NO; 397 | GCC_WARN_UNUSED_VARIABLE = NO; 398 | HEADER_SEARCH_PATHS = ( 399 | "$(OF_CORE_HEADERS)", 400 | src, 401 | ); 402 | MACOSX_DEPLOYMENT_TARGET = 10.6; 403 | OTHER_CPLUSPLUSFLAGS = ( 404 | "-D__MACOSX_CORE__", 405 | "-lpthread", 406 | "-mtune=native", 407 | ); 408 | SDKROOT = macosx; 409 | }; 410 | name = Debug; 411 | }; 412 | E4B69B4F0A3A1720003C02F2 /* Release */ = { 413 | isa = XCBuildConfiguration; 414 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 415 | buildSettings = { 416 | ARCHS = "$(NATIVE_ARCH)"; 417 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 418 | COPY_PHASE_STRIP = YES; 419 | DEAD_CODE_STRIPPING = YES; 420 | GCC_AUTO_VECTORIZATION = YES; 421 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 422 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 423 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 424 | GCC_OPTIMIZATION_LEVEL = 3; 425 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 426 | GCC_UNROLL_LOOPS = YES; 427 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 428 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 429 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 430 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 431 | GCC_WARN_UNUSED_VALUE = NO; 432 | GCC_WARN_UNUSED_VARIABLE = NO; 433 | HEADER_SEARCH_PATHS = ( 434 | "$(OF_CORE_HEADERS)", 435 | src, 436 | ); 437 | MACOSX_DEPLOYMENT_TARGET = 10.6; 438 | OTHER_CPLUSPLUSFLAGS = ( 439 | "-D__MACOSX_CORE__", 440 | "-lpthread", 441 | "-mtune=native", 442 | ); 443 | SDKROOT = macosx; 444 | }; 445 | name = Release; 446 | }; 447 | E4B69B600A3A1757003C02F2 /* Debug */ = { 448 | isa = XCBuildConfiguration; 449 | buildSettings = { 450 | COMBINE_HIDPI_IMAGES = YES; 451 | COPY_PHASE_STRIP = NO; 452 | FRAMEWORK_SEARCH_PATHS = ( 453 | "$(inherited)", 454 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 455 | ); 456 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 457 | GCC_DYNAMIC_NO_PIC = NO; 458 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 459 | GCC_MODEL_TUNING = NONE; 460 | ICON = "$(ICON_NAME_DEBUG)"; 461 | ICON_FILE = "$(ICON_FILE_PATH)$(ICON)"; 462 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 463 | INSTALL_PATH = "$(HOME)/Applications"; 464 | LIBRARY_SEARCH_PATHS = ( 465 | "$(inherited)", 466 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 467 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 468 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 469 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 470 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 471 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 472 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 473 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 474 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 475 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 476 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 477 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 478 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 479 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 480 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 481 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 482 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 483 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 484 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 485 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 486 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 487 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 488 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 489 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 490 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 491 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 492 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 493 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 494 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 495 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 496 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 497 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 498 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 499 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 500 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 501 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 502 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 503 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 504 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 505 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 506 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 507 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 508 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 509 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 510 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 511 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 512 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 513 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 514 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 515 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 516 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 517 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 518 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 519 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 520 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 521 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 522 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 523 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 524 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 525 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 526 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", 527 | ); 528 | PRODUCT_NAME = PowerNotificationsExampleDebug; 529 | WRAPPER_EXTENSION = app; 530 | }; 531 | name = Debug; 532 | }; 533 | E4B69B610A3A1757003C02F2 /* Release */ = { 534 | isa = XCBuildConfiguration; 535 | buildSettings = { 536 | COMBINE_HIDPI_IMAGES = YES; 537 | COPY_PHASE_STRIP = YES; 538 | FRAMEWORK_SEARCH_PATHS = ( 539 | "$(inherited)", 540 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 541 | ); 542 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 543 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 544 | GCC_MODEL_TUNING = NONE; 545 | ICON = "$(ICON_NAME_RELEASE)"; 546 | ICON_FILE = "$(ICON_FILE_PATH)$(ICON)"; 547 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 548 | INSTALL_PATH = "$(HOME)/Applications"; 549 | LIBRARY_SEARCH_PATHS = ( 550 | "$(inherited)", 551 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 552 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 553 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 554 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 555 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 556 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 557 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 558 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 559 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 560 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 561 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 562 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 563 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 564 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 565 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 566 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 567 | "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", 568 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 569 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 570 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 571 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 572 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 573 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 574 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 575 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 576 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 577 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 578 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 579 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 580 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 581 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 582 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 583 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 584 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 585 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 586 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 587 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 588 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 589 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 590 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 591 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 592 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 593 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 594 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 595 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 596 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 597 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 598 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 599 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 600 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 601 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 602 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 603 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 604 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 605 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 606 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 607 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 608 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 609 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 610 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 611 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 612 | ); 613 | PRODUCT_NAME = PowerNotificationsExample; 614 | WRAPPER_EXTENSION = app; 615 | }; 616 | name = Release; 617 | }; 618 | /* End XCBuildConfiguration section */ 619 | 620 | /* Begin XCConfigurationList section */ 621 | E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "PowerNotificationsExample" */ = { 622 | isa = XCConfigurationList; 623 | buildConfigurations = ( 624 | E4B69B4E0A3A1720003C02F2 /* Debug */, 625 | E4B69B4F0A3A1720003C02F2 /* Release */, 626 | ); 627 | defaultConfigurationIsVisible = 0; 628 | defaultConfigurationName = Release; 629 | }; 630 | E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "PowerNotificationsExample" */ = { 631 | isa = XCConfigurationList; 632 | buildConfigurations = ( 633 | E4B69B600A3A1757003C02F2 /* Debug */, 634 | E4B69B610A3A1757003C02F2 /* Release */, 635 | ); 636 | defaultConfigurationIsVisible = 0; 637 | defaultConfigurationName = Release; 638 | }; 639 | /* End XCConfigurationList section */ 640 | }; 641 | rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */; 642 | } 643 | -------------------------------------------------------------------------------- /InstaFigurator/InstaFigurator.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 2E2C86EA1AB4AE10008F1259 /* ofxMacUtilsEncryption.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E2C86E81AB4AE10008F1259 /* ofxMacUtilsEncryption.cpp */; }; 11 | 2E2C86EC1AB4BB61008F1259 /* MainView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2E6628ED1AB322DC005E2FCE /* MainView.xib */; }; 12 | 2E3889801AAF8E700056CA68 /* ofxMacUtils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2E38897C1AAF8E700056CA68 /* ofxMacUtils.mm */; }; 13 | 2E3889811AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2E38897F1AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.mm */; }; 14 | 2E6628DF1AB32286005E2FCE /* ofxMacUtilsSimpleSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E6628DD1AB32286005E2FCE /* ofxMacUtilsSimpleSettings.cpp */; }; 15 | 2E6628E81AB322D0005E2FCE /* ClickToResignView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E6628E11AB322D0005E2FCE /* ClickToResignView.m */; }; 16 | 2E6628E91AB322D0005E2FCE /* DragItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E6628E21AB322D0005E2FCE /* DragItem.cpp */; }; 17 | 2E6628EA1AB322D0005E2FCE /* KSImageView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2E6628E51AB322D0005E2FCE /* KSImageView.mm */; }; 18 | 2E6628EB1AB322D0005E2FCE /* MainViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2E6628E71AB322D0005E2FCE /* MainViewController.mm */; }; 19 | 2E7655C21AB31F550079EAF5 /* tinyxml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E7655BB1AB31F550079EAF5 /* tinyxml.cpp */; }; 20 | 2E7655C31AB31F550079EAF5 /* tinyxmlerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E7655BD1AB31F550079EAF5 /* tinyxmlerror.cpp */; }; 21 | 2E7655C41AB31F550079EAF5 /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E7655BE1AB31F550079EAF5 /* tinyxmlparser.cpp */; }; 22 | 2E7655C51AB31F550079EAF5 /* ofxXmlSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E7655C01AB31F550079EAF5 /* ofxXmlSettings.cpp */; }; 23 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 24 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; 25 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; 26 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; 27 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; 28 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; 29 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; 30 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; 31 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; 32 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; 33 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; 34 | E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; }; 35 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; 36 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; 37 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; 38 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 39 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */; }; 40 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E715D3B6510020DFD4 /* QTKit.framework */; }; 41 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F985F515E0DE99003869B5 /* Accelerate.framework */; }; 42 | /* End PBXBuildFile section */ 43 | 44 | /* Begin PBXContainerItemProxy section */ 45 | E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = { 46 | isa = PBXContainerItemProxy; 47 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 48 | proxyType = 2; 49 | remoteGlobalIDString = E4B27C1510CBEB8E00536013; 50 | remoteInfo = openFrameworks; 51 | }; 52 | E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = { 53 | isa = PBXContainerItemProxy; 54 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 55 | proxyType = 1; 56 | remoteGlobalIDString = E4B27C1410CBEB8E00536013; 57 | remoteInfo = openFrameworks; 58 | }; 59 | /* End PBXContainerItemProxy section */ 60 | 61 | /* Begin PBXCopyFilesBuildPhase section */ 62 | E4C2427710CC5ABF004149E2 /* CopyFiles */ = { 63 | isa = PBXCopyFilesBuildPhase; 64 | buildActionMask = 2147483647; 65 | dstPath = ""; 66 | dstSubfolderSpec = 10; 67 | files = ( 68 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */, 69 | ); 70 | runOnlyForDeploymentPostprocessing = 0; 71 | }; 72 | /* End PBXCopyFilesBuildPhase section */ 73 | 74 | /* Begin PBXFileReference section */ 75 | 2E2C86E81AB4AE10008F1259 /* ofxMacUtilsEncryption.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxMacUtilsEncryption.cpp; sourceTree = ""; }; 76 | 2E2C86E91AB4AE10008F1259 /* ofxMacUtilsEncryption.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxMacUtilsEncryption.h; sourceTree = ""; }; 77 | 2E38897B1AAF8E700056CA68 /* ofxMacUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxMacUtils.h; sourceTree = ""; }; 78 | 2E38897C1AAF8E700056CA68 /* ofxMacUtils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ofxMacUtils.mm; sourceTree = ""; }; 79 | 2E38897D1AAF8E700056CA68 /* ofxMacUtilsWorkpaceNotificationsListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxMacUtilsWorkpaceNotificationsListener.h; sourceTree = ""; }; 80 | 2E38897E1AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxMacUtilsWorkspaceResponder.h; sourceTree = ""; }; 81 | 2E38897F1AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ofxMacUtilsWorkspaceResponder.mm; sourceTree = ""; }; 82 | 2E6628DD1AB32286005E2FCE /* ofxMacUtilsSimpleSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxMacUtilsSimpleSettings.cpp; sourceTree = ""; }; 83 | 2E6628DE1AB32286005E2FCE /* ofxMacUtilsSimpleSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxMacUtilsSimpleSettings.h; sourceTree = ""; }; 84 | 2E6628E01AB322D0005E2FCE /* ClickToResignView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClickToResignView.h; sourceTree = ""; }; 85 | 2E6628E11AB322D0005E2FCE /* ClickToResignView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClickToResignView.m; sourceTree = ""; }; 86 | 2E6628E21AB322D0005E2FCE /* DragItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DragItem.cpp; sourceTree = ""; }; 87 | 2E6628E31AB322D0005E2FCE /* DragItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DragItem.h; sourceTree = ""; }; 88 | 2E6628E41AB322D0005E2FCE /* KSImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSImageView.h; sourceTree = ""; }; 89 | 2E6628E51AB322D0005E2FCE /* KSImageView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KSImageView.mm; sourceTree = ""; }; 90 | 2E6628E61AB322D0005E2FCE /* MainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = ""; }; 91 | 2E6628E71AB322D0005E2FCE /* MainViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MainViewController.mm; sourceTree = ""; }; 92 | 2E6628ED1AB322DC005E2FCE /* MainView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainView.xib; sourceTree = ""; }; 93 | 2E7655BB1AB31F550079EAF5 /* tinyxml.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxml.cpp; sourceTree = ""; }; 94 | 2E7655BC1AB31F550079EAF5 /* tinyxml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinyxml.h; sourceTree = ""; }; 95 | 2E7655BD1AB31F550079EAF5 /* tinyxmlerror.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlerror.cpp; sourceTree = ""; }; 96 | 2E7655BE1AB31F550079EAF5 /* tinyxmlparser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlparser.cpp; sourceTree = ""; }; 97 | 2E7655C01AB31F550079EAF5 /* ofxXmlSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxXmlSettings.cpp; sourceTree = ""; }; 98 | 2E7655C11AB31F550079EAF5 /* ofxXmlSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxXmlSettings.h; sourceTree = ""; }; 99 | BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; }; 100 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; 101 | E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; 102 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; 103 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; 104 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; 105 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; 106 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; 107 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; 108 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; 109 | E4B69B5B0A3A1756003C02F2 /* InstaFiguratorDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = InstaFiguratorDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; 110 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 30; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; 111 | E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 30; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; }; 112 | E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; }; 113 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; 114 | E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 115 | E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 116 | E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; 117 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; 118 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; 119 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = ""; }; 120 | E7E077E715D3B6510020DFD4 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = ""; }; 121 | E7F985F515E0DE99003869B5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = ""; }; 122 | /* End PBXFileReference section */ 123 | 124 | /* Begin PBXFrameworksBuildPhase section */ 125 | E4B69B590A3A1756003C02F2 /* Frameworks */ = { 126 | isa = PBXFrameworksBuildPhase; 127 | buildActionMask = 2147483647; 128 | files = ( 129 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */, 130 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */, 131 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, 132 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, 133 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, 134 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, 135 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, 136 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, 137 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, 138 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, 139 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, 140 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, 141 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, 142 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, 143 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, 144 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */, 145 | ); 146 | runOnlyForDeploymentPostprocessing = 0; 147 | }; 148 | /* End PBXFrameworksBuildPhase section */ 149 | 150 | /* Begin PBXGroup section */ 151 | 2E06A5E81AAF628E00DF91CF /* ofxMacUtils */ = { 152 | isa = PBXGroup; 153 | children = ( 154 | 2E38897A1AAF8E700056CA68 /* src */, 155 | ); 156 | name = ofxMacUtils; 157 | path = ../../../addons/ofxMacUtils; 158 | sourceTree = ""; 159 | }; 160 | 2E38897A1AAF8E700056CA68 /* src */ = { 161 | isa = PBXGroup; 162 | children = ( 163 | 2E38897B1AAF8E700056CA68 /* ofxMacUtils.h */, 164 | 2E38897C1AAF8E700056CA68 /* ofxMacUtils.mm */, 165 | 2E38897D1AAF8E700056CA68 /* ofxMacUtilsWorkpaceNotificationsListener.h */, 166 | 2E38897E1AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.h */, 167 | 2E38897F1AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.mm */, 168 | 2E6628DD1AB32286005E2FCE /* ofxMacUtilsSimpleSettings.cpp */, 169 | 2E6628DE1AB32286005E2FCE /* ofxMacUtilsSimpleSettings.h */, 170 | 2E2C86E81AB4AE10008F1259 /* ofxMacUtilsEncryption.cpp */, 171 | 2E2C86E91AB4AE10008F1259 /* ofxMacUtilsEncryption.h */, 172 | ); 173 | path = src; 174 | sourceTree = ""; 175 | }; 176 | 2E6628EC1AB322DC005E2FCE /* Resources */ = { 177 | isa = PBXGroup; 178 | children = ( 179 | 2E6628ED1AB322DC005E2FCE /* MainView.xib */, 180 | ); 181 | path = Resources; 182 | sourceTree = ""; 183 | }; 184 | 2E7655B91AB31F550079EAF5 /* ofxXmlSettings */ = { 185 | isa = PBXGroup; 186 | children = ( 187 | 2E7655BA1AB31F550079EAF5 /* libs */, 188 | 2E7655BF1AB31F550079EAF5 /* src */, 189 | ); 190 | name = ofxXmlSettings; 191 | path = ../../ofxXmlSettings; 192 | sourceTree = ""; 193 | }; 194 | 2E7655BA1AB31F550079EAF5 /* libs */ = { 195 | isa = PBXGroup; 196 | children = ( 197 | 2E7655BB1AB31F550079EAF5 /* tinyxml.cpp */, 198 | 2E7655BC1AB31F550079EAF5 /* tinyxml.h */, 199 | 2E7655BD1AB31F550079EAF5 /* tinyxmlerror.cpp */, 200 | 2E7655BE1AB31F550079EAF5 /* tinyxmlparser.cpp */, 201 | ); 202 | path = libs; 203 | sourceTree = ""; 204 | }; 205 | 2E7655BF1AB31F550079EAF5 /* src */ = { 206 | isa = PBXGroup; 207 | children = ( 208 | 2E7655C01AB31F550079EAF5 /* ofxXmlSettings.cpp */, 209 | 2E7655C11AB31F550079EAF5 /* ofxXmlSettings.h */, 210 | ); 211 | path = src; 212 | sourceTree = ""; 213 | }; 214 | BB4B014C10F69532006C3DED /* addons */ = { 215 | isa = PBXGroup; 216 | children = ( 217 | 2E7655B91AB31F550079EAF5 /* ofxXmlSettings */, 218 | 2E06A5E81AAF628E00DF91CF /* ofxMacUtils */, 219 | ); 220 | name = addons; 221 | sourceTree = ""; 222 | }; 223 | BBAB23C913894ECA00AA2426 /* system frameworks */ = { 224 | isa = PBXGroup; 225 | children = ( 226 | E7F985F515E0DE99003869B5 /* Accelerate.framework */, 227 | E4C2424410CC5A17004149E2 /* AppKit.framework */, 228 | E4C2424510CC5A17004149E2 /* Cocoa.framework */, 229 | E4C2424610CC5A17004149E2 /* IOKit.framework */, 230 | E45BE9710E8CC7DD009D7055 /* AGL.framework */, 231 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, 232 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, 233 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, 234 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, 235 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, 236 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, 237 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, 238 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */, 239 | E7E077E715D3B6510020DFD4 /* QTKit.framework */, 240 | ); 241 | name = "system frameworks"; 242 | sourceTree = ""; 243 | }; 244 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { 245 | isa = PBXGroup; 246 | children = ( 247 | BBAB23BE13894E4700AA2426 /* GLUT.framework */, 248 | ); 249 | name = "3rd party frameworks"; 250 | sourceTree = ""; 251 | }; 252 | E4328144138ABC890047C5CB /* Products */ = { 253 | isa = PBXGroup; 254 | children = ( 255 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */, 256 | ); 257 | name = Products; 258 | sourceTree = ""; 259 | }; 260 | E45BE5980E8CC70C009D7055 /* frameworks */ = { 261 | isa = PBXGroup; 262 | children = ( 263 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, 264 | BBAB23C913894ECA00AA2426 /* system frameworks */, 265 | ); 266 | name = frameworks; 267 | sourceTree = ""; 268 | }; 269 | E4B69B4A0A3A1720003C02F2 = { 270 | isa = PBXGroup; 271 | children = ( 272 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */, 273 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */, 274 | 2E6628EC1AB322DC005E2FCE /* Resources */, 275 | E4B69E1C0A3A1BDC003C02F2 /* src */, 276 | E4EEC9E9138DF44700A80321 /* openFrameworks */, 277 | BB4B014C10F69532006C3DED /* addons */, 278 | E45BE5980E8CC70C009D7055 /* frameworks */, 279 | E4B69B5B0A3A1756003C02F2 /* InstaFiguratorDebug.app */, 280 | ); 281 | sourceTree = ""; 282 | }; 283 | E4B69E1C0A3A1BDC003C02F2 /* src */ = { 284 | isa = PBXGroup; 285 | children = ( 286 | 2E6628E01AB322D0005E2FCE /* ClickToResignView.h */, 287 | 2E6628E11AB322D0005E2FCE /* ClickToResignView.m */, 288 | 2E6628E21AB322D0005E2FCE /* DragItem.cpp */, 289 | 2E6628E31AB322D0005E2FCE /* DragItem.h */, 290 | 2E6628E41AB322D0005E2FCE /* KSImageView.h */, 291 | 2E6628E51AB322D0005E2FCE /* KSImageView.mm */, 292 | 2E6628E61AB322D0005E2FCE /* MainViewController.h */, 293 | 2E6628E71AB322D0005E2FCE /* MainViewController.mm */, 294 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, 295 | E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */, 296 | E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */, 297 | ); 298 | path = src; 299 | sourceTree = SOURCE_ROOT; 300 | }; 301 | E4EEC9E9138DF44700A80321 /* openFrameworks */ = { 302 | isa = PBXGroup; 303 | children = ( 304 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */, 305 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */, 306 | ); 307 | name = openFrameworks; 308 | sourceTree = ""; 309 | }; 310 | /* End PBXGroup section */ 311 | 312 | /* Begin PBXNativeTarget section */ 313 | E4B69B5A0A3A1756003C02F2 /* InstaFigurator */ = { 314 | isa = PBXNativeTarget; 315 | buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "InstaFigurator" */; 316 | buildPhases = ( 317 | E4B69B580A3A1756003C02F2 /* Sources */, 318 | E4B69B590A3A1756003C02F2 /* Frameworks */, 319 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, 320 | E4C2427710CC5ABF004149E2 /* CopyFiles */, 321 | 2E2C86EB1AB4BB5E008F1259 /* Resources */, 322 | ); 323 | buildRules = ( 324 | ); 325 | dependencies = ( 326 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */, 327 | ); 328 | name = InstaFigurator; 329 | productName = myOFApp; 330 | productReference = E4B69B5B0A3A1756003C02F2 /* InstaFiguratorDebug.app */; 331 | productType = "com.apple.product-type.application"; 332 | }; 333 | /* End PBXNativeTarget section */ 334 | 335 | /* Begin PBXProject section */ 336 | E4B69B4C0A3A1720003C02F2 /* Project object */ = { 337 | isa = PBXProject; 338 | attributes = { 339 | LastUpgradeCheck = 0460; 340 | }; 341 | buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "InstaFigurator" */; 342 | compatibilityVersion = "Xcode 3.2"; 343 | developmentRegion = English; 344 | hasScannedForEncodings = 0; 345 | knownRegions = ( 346 | English, 347 | Japanese, 348 | French, 349 | German, 350 | ); 351 | mainGroup = E4B69B4A0A3A1720003C02F2; 352 | productRefGroup = E4B69B4A0A3A1720003C02F2; 353 | projectDirPath = ""; 354 | projectReferences = ( 355 | { 356 | ProductGroup = E4328144138ABC890047C5CB /* Products */; 357 | ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 358 | }, 359 | ); 360 | projectRoot = ""; 361 | targets = ( 362 | E4B69B5A0A3A1756003C02F2 /* InstaFigurator */, 363 | ); 364 | }; 365 | /* End PBXProject section */ 366 | 367 | /* Begin PBXReferenceProxy section */ 368 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = { 369 | isa = PBXReferenceProxy; 370 | fileType = archive.ar; 371 | path = openFrameworksDebug.a; 372 | remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */; 373 | sourceTree = BUILT_PRODUCTS_DIR; 374 | }; 375 | /* End PBXReferenceProxy section */ 376 | 377 | /* Begin PBXResourcesBuildPhase section */ 378 | 2E2C86EB1AB4BB5E008F1259 /* Resources */ = { 379 | isa = PBXResourcesBuildPhase; 380 | buildActionMask = 2147483647; 381 | files = ( 382 | 2E2C86EC1AB4BB61008F1259 /* MainView.xib in Resources */, 383 | ); 384 | runOnlyForDeploymentPostprocessing = 0; 385 | }; 386 | /* End PBXResourcesBuildPhase section */ 387 | 388 | /* Begin PBXShellScriptBuildPhase section */ 389 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { 390 | isa = PBXShellScriptBuildPhase; 391 | buildActionMask = 2147483647; 392 | files = ( 393 | ); 394 | inputPaths = ( 395 | ); 396 | outputPaths = ( 397 | ); 398 | runOnlyForDeploymentPostprocessing = 0; 399 | shellPath = /bin/sh; 400 | shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";\nmkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\ncp -r bin/data/ \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources\";\ncp -f \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n"; 401 | }; 402 | /* End PBXShellScriptBuildPhase section */ 403 | 404 | /* Begin PBXSourcesBuildPhase section */ 405 | E4B69B580A3A1756003C02F2 /* Sources */ = { 406 | isa = PBXSourcesBuildPhase; 407 | buildActionMask = 2147483647; 408 | files = ( 409 | 2E7655C31AB31F550079EAF5 /* tinyxmlerror.cpp in Sources */, 410 | 2E3889811AAF8E700056CA68 /* ofxMacUtilsWorkspaceResponder.mm in Sources */, 411 | 2E7655C51AB31F550079EAF5 /* ofxXmlSettings.cpp in Sources */, 412 | 2E7655C21AB31F550079EAF5 /* tinyxml.cpp in Sources */, 413 | 2E6628EB1AB322D0005E2FCE /* MainViewController.mm in Sources */, 414 | 2E6628E91AB322D0005E2FCE /* DragItem.cpp in Sources */, 415 | 2E2C86EA1AB4AE10008F1259 /* ofxMacUtilsEncryption.cpp in Sources */, 416 | 2E7655C41AB31F550079EAF5 /* tinyxmlparser.cpp in Sources */, 417 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, 418 | E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */, 419 | 2E3889801AAF8E700056CA68 /* ofxMacUtils.mm in Sources */, 420 | 2E6628E81AB322D0005E2FCE /* ClickToResignView.m in Sources */, 421 | 2E6628EA1AB322D0005E2FCE /* KSImageView.mm in Sources */, 422 | 2E6628DF1AB32286005E2FCE /* ofxMacUtilsSimpleSettings.cpp in Sources */, 423 | ); 424 | runOnlyForDeploymentPostprocessing = 0; 425 | }; 426 | /* End PBXSourcesBuildPhase section */ 427 | 428 | /* Begin PBXTargetDependency section */ 429 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = { 430 | isa = PBXTargetDependency; 431 | name = openFrameworks; 432 | targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */; 433 | }; 434 | /* End PBXTargetDependency section */ 435 | 436 | /* Begin XCBuildConfiguration section */ 437 | E4B69B4E0A3A1720003C02F2 /* Debug */ = { 438 | isa = XCBuildConfiguration; 439 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 440 | buildSettings = { 441 | ARCHS = "$(NATIVE_ARCH)"; 442 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 443 | COPY_PHASE_STRIP = NO; 444 | DEAD_CODE_STRIPPING = YES; 445 | GCC_AUTO_VECTORIZATION = YES; 446 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 447 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 448 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 449 | GCC_OPTIMIZATION_LEVEL = 0; 450 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 451 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 452 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 453 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 454 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 455 | GCC_WARN_UNUSED_VALUE = NO; 456 | GCC_WARN_UNUSED_VARIABLE = NO; 457 | HEADER_SEARCH_PATHS = ( 458 | "$(OF_CORE_HEADERS)", 459 | src, 460 | ); 461 | MACOSX_DEPLOYMENT_TARGET = 10.6; 462 | OTHER_CPLUSPLUSFLAGS = ( 463 | "-D__MACOSX_CORE__", 464 | "-lpthread", 465 | "-mtune=native", 466 | ); 467 | SDKROOT = macosx; 468 | }; 469 | name = Debug; 470 | }; 471 | E4B69B4F0A3A1720003C02F2 /* Release */ = { 472 | isa = XCBuildConfiguration; 473 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 474 | buildSettings = { 475 | ARCHS = "$(NATIVE_ARCH)"; 476 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 477 | COPY_PHASE_STRIP = YES; 478 | DEAD_CODE_STRIPPING = YES; 479 | GCC_AUTO_VECTORIZATION = YES; 480 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 481 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 482 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 483 | GCC_OPTIMIZATION_LEVEL = 3; 484 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 485 | GCC_UNROLL_LOOPS = YES; 486 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 487 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 488 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 489 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 490 | GCC_WARN_UNUSED_VALUE = NO; 491 | GCC_WARN_UNUSED_VARIABLE = NO; 492 | HEADER_SEARCH_PATHS = ( 493 | "$(OF_CORE_HEADERS)", 494 | src, 495 | ); 496 | MACOSX_DEPLOYMENT_TARGET = 10.6; 497 | OTHER_CPLUSPLUSFLAGS = ( 498 | "-D__MACOSX_CORE__", 499 | "-lpthread", 500 | "-mtune=native", 501 | ); 502 | SDKROOT = macosx; 503 | }; 504 | name = Release; 505 | }; 506 | E4B69B600A3A1757003C02F2 /* Debug */ = { 507 | isa = XCBuildConfiguration; 508 | buildSettings = { 509 | COMBINE_HIDPI_IMAGES = YES; 510 | COPY_PHASE_STRIP = NO; 511 | FRAMEWORK_SEARCH_PATHS = ( 512 | "$(inherited)", 513 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 514 | ); 515 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 516 | GCC_DYNAMIC_NO_PIC = NO; 517 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 518 | GCC_MODEL_TUNING = NONE; 519 | GCC_PREPROCESSOR_DEFINITIONS = ( 520 | "OFX_MAC_UTILS_USE_OBJ_C=1", 521 | OF_DEBUG, 522 | ); 523 | ICON = "$(ICON_NAME_DEBUG)"; 524 | ICON_FILE = "$(ICON_FILE_PATH)$(ICON)"; 525 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 526 | INSTALL_PATH = "$(HOME)/Applications"; 527 | LIBRARY_SEARCH_PATHS = ( 528 | "$(inherited)", 529 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 530 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 531 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 532 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 533 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 534 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 535 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 536 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 537 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 538 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 539 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 540 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 541 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 542 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 543 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 544 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 545 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 546 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 547 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 548 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 549 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 550 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 551 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 552 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 553 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 554 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 555 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 556 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 557 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 558 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 559 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 560 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 561 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 562 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 563 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 564 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 565 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 566 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 567 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 568 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 569 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 570 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 571 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 572 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 573 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 574 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 575 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 576 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 577 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 578 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 579 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 580 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 581 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 582 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 583 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 584 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 585 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 586 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 587 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 588 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 589 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", 590 | ); 591 | PRODUCT_NAME = InstaFiguratorDebug; 592 | WRAPPER_EXTENSION = app; 593 | }; 594 | name = Debug; 595 | }; 596 | E4B69B610A3A1757003C02F2 /* Release */ = { 597 | isa = XCBuildConfiguration; 598 | buildSettings = { 599 | COMBINE_HIDPI_IMAGES = YES; 600 | COPY_PHASE_STRIP = YES; 601 | FRAMEWORK_SEARCH_PATHS = ( 602 | "$(inherited)", 603 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 604 | ); 605 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 606 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 607 | GCC_MODEL_TUNING = NONE; 608 | GCC_PREPROCESSOR_DEFINITIONS = ( 609 | "OFX_MAC_UTILS_USE_OBJ_C=1", 610 | OF_RELEASE, 611 | ); 612 | ICON = "$(ICON_NAME_RELEASE)"; 613 | ICON_FILE = "$(ICON_FILE_PATH)$(ICON)"; 614 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 615 | INSTALL_PATH = "$(HOME)/Applications"; 616 | LIBRARY_SEARCH_PATHS = ( 617 | "$(inherited)", 618 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 619 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 620 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 621 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 622 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 623 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 624 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 625 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 626 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 627 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 628 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 629 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 630 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 631 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 632 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 633 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 634 | "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", 635 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 636 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 637 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 638 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 639 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 640 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 641 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 642 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 643 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 644 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 645 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 646 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 647 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 648 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 649 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 650 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 651 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 652 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 653 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 654 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 655 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 656 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 657 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 658 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 659 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 660 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 661 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 662 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 663 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 664 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 665 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 666 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 667 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 668 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 669 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 670 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 671 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 672 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 673 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 674 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 675 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 676 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 677 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 678 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 679 | ); 680 | PRODUCT_NAME = InstaFigurator; 681 | WRAPPER_EXTENSION = app; 682 | }; 683 | name = Release; 684 | }; 685 | /* End XCBuildConfiguration section */ 686 | 687 | /* Begin XCConfigurationList section */ 688 | E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "InstaFigurator" */ = { 689 | isa = XCConfigurationList; 690 | buildConfigurations = ( 691 | E4B69B4E0A3A1720003C02F2 /* Debug */, 692 | E4B69B4F0A3A1720003C02F2 /* Release */, 693 | ); 694 | defaultConfigurationIsVisible = 0; 695 | defaultConfigurationName = Release; 696 | }; 697 | E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "InstaFigurator" */ = { 698 | isa = XCConfigurationList; 699 | buildConfigurations = ( 700 | E4B69B600A3A1757003C02F2 /* Debug */, 701 | E4B69B610A3A1757003C02F2 /* Release */, 702 | ); 703 | defaultConfigurationIsVisible = 0; 704 | defaultConfigurationName = Release; 705 | }; 706 | /* End XCConfigurationList section */ 707 | }; 708 | rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */; 709 | } 710 | --------------------------------------------------------------------------------