[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-dev] SF.net SVN: supercollider:[8225] trunk
Revision: 8225
http://supercollider.svn.sourceforge.net/supercollider/?rev=8225&view=rev
Author: mullmusik
Date: 2008-12-20 22:54:49 +0000 (Sat, 20 Dec 2008)
Log Message:
-----------
Add help tree to Help Menu on OSX, small fixes and improvements
Modified Paths:
--------------
trunk/Source/app/GUIPrimitives.M
trunk/build/SCClassLibrary/Common/Files/osx/Help_osx.sc
trunk/build/SCClassLibrary/Platform/osx/CocoaMenu.sc
trunk/build/SCClassLibrary/Platform/osx/OSXPlatform.sc
Modified: trunk/Source/app/GUIPrimitives.M
===================================================================
--- trunk/Source/app/GUIPrimitives.M 2008-12-20 18:14:40 UTC (rev 8224)
+++ trunk/Source/app/GUIPrimitives.M 2008-12-20 22:54:49 UTC (rev 8225)
@@ -3718,7 +3718,14 @@
// make a submenu if needed
//NSLog(@"Top Level");
parentMenu = [NSApp mainMenu];
- } else {
+ } else if (IsSym(parentObj)) {
+ PyrSymbol *parentSymbol;
+ int err = slotSymbolVal(parentObj, &parentSymbol);
+ if (err) return err;
+ if (strcmp(parentSymbol->name, "Help")==0) {
+ parentMenu = [[[NSApp mainMenu] itemWithTitle:@"Help"] submenu];
+ }
+ } else if (isKindOfSlot(parentObj, getsym("CocoaMenuItem")->u.classobj)){
SCNSMenuItem *parentItem = (SCNSMenuItem*)(parentObj->uo->slots->uptr);
if([parentItem hasSubmenu]) {
//NSLog(@"Parent has submenu");
@@ -3726,7 +3733,7 @@
} else {
return errFailed;
}
- }
+ } else return errWrongType;
// protect against bad indices
int parentSize = [parentMenu numberOfItems];
@@ -3750,6 +3757,7 @@
int prRemoveMenuItem(struct VMGlobals *g, int numArgsPushed);
int prRemoveMenuItem(struct VMGlobals *g, int numArgsPushed)
{
+
PyrSlot *caller = g->sp;
SCNSMenuItem *menuItem = (SCNSMenuItem*)(caller->uo->slots->uptr);
@@ -3764,6 +3772,8 @@
int prEnableMenuItem(struct VMGlobals *g, int numArgsPushed);
int prEnableMenuItem(struct VMGlobals *g, int numArgsPushed)
{
+ if (!g->canCallOS) return errCantCallOS;
+
PyrSlot *caller = g->sp - 1;
PyrSlot *boolean = g->sp;
@@ -3780,6 +3790,8 @@
int prSetMenuItemState(struct VMGlobals *g, int numArgsPushed);
int prSetMenuItemState(struct VMGlobals *g, int numArgsPushed)
{
+ if (!g->canCallOS) return errCantCallOS;
+
PyrSlot *caller = g->sp - 1;
PyrSlot *boolean = g->sp;
@@ -3796,6 +3808,7 @@
int prSetMenuItemKeyboardEquivalent(struct VMGlobals *g, int numArgsPushed);
int prSetMenuItemKeyboardEquivalent(struct VMGlobals *g, int numArgsPushed)
{
+ if (!g->canCallOS) return errCantCallOS;
PyrSlot *caller = g->sp - 3;
PyrSlot *stringSlot = g->sp - 2;
PyrSlot *alt = g->sp - 1;
Modified: trunk/build/SCClassLibrary/Common/Files/osx/Help_osx.sc
===================================================================
--- trunk/build/SCClassLibrary/Common/Files/osx/Help_osx.sc 2008-12-20 18:14:40 UTC (rev 8224)
+++ trunk/build/SCClassLibrary/Common/Files/osx/Help_osx.sc 2008-12-20 22:54:49 UTC (rev 8225)
@@ -18,6 +18,6 @@
};
menu
};
- addSubMenu.value(CocoaMenuItem.default, Help.tree, "HelpTree");
+ addSubMenu.value('Help', Help.tree, "Help Tree");
}
}
Modified: trunk/build/SCClassLibrary/Platform/osx/CocoaMenu.sc
===================================================================
--- trunk/build/SCClassLibrary/Platform/osx/CocoaMenu.sc 2008-12-20 18:14:40 UTC (rev 8224)
+++ trunk/build/SCClassLibrary/Platform/osx/CocoaMenu.sc 2008-12-20 22:54:49 UTC (rev 8225)
@@ -1,5 +1,5 @@
CocoaMenuItem {
- classvar topLevelItems;
+ classvar <topLevelItems;
classvar <default;
var dataptr;
@@ -15,7 +15,7 @@
}
*clearCustomItems {
- topLevelItems.do({|item| item.remove });
+ topLevelItems.copy.do({|item| item.remove });
}
*initDefaultMenu {
@@ -69,15 +69,17 @@
name = argname;
action = argaction;
isBranch = hasSubmenu;
- if(parent.notNil) { parent.addChild(this) } { topLevelItems = topLevelItems.add(this) };
this.prAddMenuItem(argparent, argindex, argname, hasSubmenu);
+ if(parent.notNil && (parent != 'Help')) { parent.addChild(this) }
+ { topLevelItems = topLevelItems.add(this) };
}
remove {
children.copy.do({|child| child.remove}); // cleanup my kids
children = nil;
- parent.notNil.if({parent.removeChild(this)});
+ (parent.notNil && (parent != 'Help')).if({parent.removeChild(this)});
this.prRemoveMenuItem;
+ topLevelItems.remove(this);
}
addChild {|child|
Modified: trunk/build/SCClassLibrary/Platform/osx/OSXPlatform.sc
===================================================================
--- trunk/build/SCClassLibrary/Platform/osx/OSXPlatform.sc 2008-12-20 18:14:40 UTC (rev 8224)
+++ trunk/build/SCClassLibrary/Platform/osx/OSXPlatform.sc 2008-12-20 22:54:49 UTC (rev 8225)
@@ -18,6 +18,7 @@
Server.internal.makeWindow;
Server.local.makeWindow;
this.loadStartupFiles;
+ Help.addToMenu;
}
shutdown {
HIDDeviceService.releaseDeviceList;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
_______________________________________________
sc-dev mailing list
info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-dev/
search: https://listarc.bham.ac.uk/lists/sc-dev/search/