Revision: 37956 http://trac.macosforge.org/projects/macports/changeset/37956 Author: armahg@macports.org Date: 2008-06-30 15:08:03 -0700 (Mon, 30 Jun 2008) Log Message: ----------- Modified notifications.m to return a single element dictionary contianing ui_message Modified Paths: -------------- branches/gsoc08-framework/MacPorts.Framework/MacPorts.Framework.xcodeproj/project.pbxproj branches/gsoc08-framework/MacPorts.Framework/init.tcl branches/gsoc08-framework/MacPorts.Framework/notifications.m Modified: branches/gsoc08-framework/MacPorts.Framework/MacPorts.Framework.xcodeproj/project.pbxproj =================================================================== --- branches/gsoc08-framework/MacPorts.Framework/MacPorts.Framework.xcodeproj/project.pbxproj 2008-06-30 22:06:07 UTC (rev 37955) +++ branches/gsoc08-framework/MacPorts.Framework/MacPorts.Framework.xcodeproj/project.pbxproj 2008-06-30 22:08:03 UTC (rev 37956) @@ -37,8 +37,8 @@ 48E992980C82C98C00219DDF /* Tcl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 48E992970C82C98C00219DDF /* Tcl.framework */; }; 48E993940C82CAAE00219DDF /* MPMacPorts.h in Headers */ = {isa = PBXBuildFile; fileRef = 48E993920C82CAAE00219DDF /* MPMacPorts.h */; settings = {ATTRIBUTES = (Public, ); }; }; 48E993950C82CAAE00219DDF /* MPMacPorts.m in Sources */ = {isa = PBXBuildFile; fileRef = 48E993930C82CAAE00219DDF /* MPMacPorts.m */; }; - 48E9939F0C82CEB000219DDF /* init.tcl.mod in Resources */ = {isa = PBXBuildFile; fileRef = 48E9939E0C82CEB000219DDF /* init.tcl.mod */; }; - 6E270BE10E1458DE00BAE687 /* init.tcl in Resources */ = {isa = PBXBuildFile; fileRef = 6E270BE00E1458DE00BAE687 /* init.tcl */; }; + 48E9939F0C82CEB000219DDF /* init.tcl in Resources */ = {isa = PBXBuildFile; fileRef = 48E9939E0C82CEB000219DDF /* init.tcl */; }; + 6E270BE10E1458DE00BAE687 /* init.tcl.original in Resources */ = {isa = PBXBuildFile; fileRef = 6E270BE00E1458DE00BAE687 /* init.tcl.original */; }; 6E270D090E158CED00BAE687 /* MPNotificationsListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E270D070E158CED00BAE687 /* MPNotificationsListener.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6E270D0A0E158CED00BAE687 /* MPNotificationsListener.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E270D080E158CED00BAE687 /* MPNotificationsListener.m */; }; 6E49F37B0DFFAB0B0030C3AF /* MPInterpreterTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 489DD92E0C94674B00595506 /* MPInterpreterTest.m */; }; @@ -84,10 +84,10 @@ 48E992970C82C98C00219DDF /* Tcl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Tcl.framework; path = /System/Library/Frameworks/Tcl.framework; sourceTree = "<absolute>"; }; 48E993920C82CAAE00219DDF /* MPMacPorts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPMacPorts.h; sourceTree = "<group>"; }; 48E993930C82CAAE00219DDF /* MPMacPorts.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPMacPorts.m; sourceTree = "<group>"; }; - 48E9939E0C82CEB000219DDF /* init.tcl.mod */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = init.tcl.mod; sourceTree = "<group>"; }; + 48E9939E0C82CEB000219DDF /* init.tcl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = init.tcl; sourceTree = "<group>"; }; 48F811BE0CE4636A009630DE /* MPRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPRegistry.h; sourceTree = "<group>"; }; 48F811BF0CE4638C009630DE /* MPRegistry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPRegistry.m; sourceTree = "<group>"; }; - 6E270BE00E1458DE00BAE687 /* init.tcl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = init.tcl; sourceTree = "<group>"; }; + 6E270BE00E1458DE00BAE687 /* init.tcl.original */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = init.tcl.original; sourceTree = "<group>"; }; 6E270C080E148F4E00BAE687 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; }; 6E270D070E158CED00BAE687 /* MPNotificationsListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPNotificationsListener.h; sourceTree = "<group>"; }; 6E270D080E158CED00BAE687 /* MPNotificationsListener.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPNotificationsListener.m; sourceTree = "<group>"; }; @@ -158,12 +158,12 @@ 089C1665FE841158C02AAC07 /* Resources */ = { isa = PBXGroup; children = ( - 48E9939E0C82CEB000219DDF /* init.tcl.mod */, + 48E9939E0C82CEB000219DDF /* init.tcl */, 8DC2EF5A0486A6940098B216 /* Info.plist */, 089C1666FE841158C02AAC07 /* InfoPlist.strings */, 489DD8F50C94365F00595506 /* Test-Info.plist */, 6EAFD8B70DEC614E00E97270 /* dummycommit.test */, - 6E270BE00E1458DE00BAE687 /* init.tcl */, + 6E270BE00E1458DE00BAE687 /* init.tcl.original */, ); name = Resources; sourceTree = "<group>"; @@ -345,8 +345,8 @@ buildActionMask = 2147483647; files = ( 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */, - 48E9939F0C82CEB000219DDF /* init.tcl.mod in Resources */, - 6E270BE10E1458DE00BAE687 /* init.tcl in Resources */, + 48E9939F0C82CEB000219DDF /* init.tcl in Resources */, + 6E270BE10E1458DE00BAE687 /* init.tcl.original in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; Modified: branches/gsoc08-framework/MacPorts.Framework/init.tcl =================================================================== --- branches/gsoc08-framework/MacPorts.Framework/init.tcl 2008-06-30 22:06:07 UTC (rev 37955) +++ branches/gsoc08-framework/MacPorts.Framework/init.tcl 2008-06-30 22:08:03 UTC (rev 37956) @@ -1,8 +1,13 @@ +#catch {source \ +# [file join "/Library/Tcl" macports1.0 macports_fastload.tcl]} + +#Trying my own MacPorts build rather than default one on the system catch {source \ - [file join "/Library/Tcl" macports1.0 macports_fastload.tcl]} + [file join "/Users/Armahg/macportsbuild/build1/Library/Tcl" macports1.0 macports_fastload.tcl]} package require macports +package require notifications # ui_options accessor proc ui_isset {val} { @@ -67,6 +72,67 @@ } +#Modifying UI initialization to enable notifications +proc ui_init {priority prefix channels message} { + + notifications send global testMacPortsNotification "INSIDE UI_INIT" + + # Get the list of channels. + try { + set channels [ui_channels $priority] + } catch * { + set channels [ui_channels_default $priority] + } + + # Simplify ui_$priority. + set nbchans [llength $channels] + if {$nbchans == 0} { + proc ::ui_$priority {str} { + notifications send global testMacPortstNotification "$prefix\$str" + } + } else { + try { + set prefix [ui_prefix $priority] + } catch * { + set prefix [ui_prefix_default $priority] + } + + if {$nbchans == 1} { + set chan [lindex $channels 0] + + #Redefine ui_$priority here to also throw notifications of some sort + proc ::ui_$priority {str} { + #[subst { puts $chan "$prefix\$str" }] + subst { puts $chan "$prefix\$str" } + + #Send notifications using NSDistributedNotificationCenter for now + #We need a way to name notifications based on given input, using + #testMacPortsNotification for now + notifications send global testMacPortstNotification "$prefix\$str" + } + + + } else { + + + proc ::ui_$priority {str} { + subst { + foreach chan \$channels { + puts $chan "$prefix\$str" + } + } + #Should we discriminate based on channel? + notifications send global testMacPortsNotification "$prefix\$str" + } + } + + # Call ui_$priority + ::ui_$priority $message + } +} + + + # Initialize dport # This must be done following parse of global options, as some options are # evaluated by dportinit. @@ -74,6 +140,4 @@ global errorInfo puts "$errorInfo" fatal "Failed to initialize ports system, $result" -} - - +} \ No newline at end of file Modified: branches/gsoc08-framework/MacPorts.Framework/notifications.m =================================================================== --- branches/gsoc08-framework/MacPorts.Framework/notifications.m 2008-06-30 22:06:07 UTC (rev 37955) +++ branches/gsoc08-framework/MacPorts.Framework/notifications.m 2008-06-30 22:08:03 UTC (rev 37956) @@ -39,6 +39,13 @@ #include <Cocoa/Cocoa.h> int Notifications_Send(int objc, Tcl_Obj *CONST objv[], int global, Tcl_Interp *interpreter) { + /*/Debugging code starts here + NSLog(@"Inside Notifications_Send!"); + if(*objv) { + NSLog(@"size of STUFF is %d", objc); + } + //Debugging code ends here*/ + NSString *name = nil; NSMutableDictionary *info = nil; @@ -47,10 +54,51 @@ int i; const char **tclElements; + + /*/Debugging code starts here + if(*objv) { + NSLog(@"*objv pointer for name is NOT NULL"); + } + //Debugging code ends here*/ + name = [NSString stringWithUTF8String:Tcl_GetString(*objv)]; ++objv; --objc; + + /*/Debugging code starts here + if(*objv) { + NSLog(@"*objv pointer for Tcl_SplitList is NOT NULL, name is %@", name); + } + //Debugging code ends here*/ + tclResult = Tcl_SplitList(interpreter, Tcl_GetString(*objv), &tclCount, &tclElements); if (tclResult == TCL_OK) { + + /*/Debugging code starts here + if(*objv) { + NSLog(@"size of Dictionary is %d", tclCount); + } + for(i = 0; tclElements[i] != NULL; i++) { + NSLog(@"Element in Dictionary is %@", [NSString stringWithUTF8String:tclElements[i]]); + } + for(i = 0; i < tclCount; i++) { + NSLog(@"Element in Dictionary is %@", [NSString stringWithUTF8String:tclElements[i]]); + } + //Debugging code ends here*/ + + + //For now we return a single element dictionary containing the ui_* log message + info = [NSMutableDictionary dictionaryWithCapacity:1]; + [info setObject:[NSString stringWithString:@"ui_msg"] forKey:[NSString stringWithUTF8String:Tcl_GetString(*objv)]]; + + if (global != 0) { + [[NSDistributedNotificationCenter defaultCenter] postNotificationName:name object:nil userInfo:info]; + } else { + [[NSNotificationCenter defaultCenter] postNotificationName:name object:nil userInfo:info]; + } + + + + /* info = [NSMutableDictionary dictionaryWithCapacity:(tclCount / 2)]; for (i = 0; i < tclCount; i +=2) { [info setObject:[NSString stringWithUTF8String:tclElements[i + 1]] forKey:[NSString stringWithUTF8String:tclElements[i]]]; @@ -59,7 +107,7 @@ [[NSDistributedNotificationCenter defaultCenter] postNotificationName:name object:nil userInfo:info]; } else { [[NSNotificationCenter defaultCenter] postNotificationName:name object:nil userInfo:info]; - } + }*/ } else { return TCL_ERROR; } @@ -68,6 +116,9 @@ } int Notifications_Command(ClientData clientData, Tcl_Interp *interpreter, int objc, Tcl_Obj *CONST objv[]) { + //Debugging code starts here + //NSLog(@"Inside Notifications_Command!"); + //Debugging code ends here NSAutoreleasePool *pool = [NSAutoreleasePool new]; NSString *action = nil; @@ -79,6 +130,13 @@ action = [NSString stringWithUTF8String:Tcl_GetString(*objv)]; ++objv, --objc; if ([action isEqualToString:@"send"]) { + + /*/Debugging code starts here + //if(*objv) { + NSLog(@"*objv pointer in Notifications_Command is NOT NULL"); + } + //Debugging code ends here*/ + if ([[NSString stringWithUTF8String:Tcl_GetString(*objv)] isEqualToString:@"global"]) { ++objv, --objc; returnCode = Notifications_Send(objc, objv, 1, interpreter);
participants (1)
-
armahg@macports.org