summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2001-12-10 16:08:14 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2001-12-10 16:08:14 (GMT)
commit52306a780b622ebe90f80f4296a311e6921d274a (patch)
tree538e894de73b43030e55857898749f68b05f4451 /Mac
parent1d961f5e5fb80a77f37cbdf350e78718e6131abf (diff)
downloadcpython-52306a780b622ebe90f80f4296a311e6921d274a.zip
cpython-52306a780b622ebe90f80f4296a311e6921d274a.tar.gz
cpython-52306a780b622ebe90f80f4296a311e6921d274a.tar.bz2
The new menu initialization code would also add the SIOUX menus if a (frozen) Python program had installed its own menubar previously. We now guard against this, with a bit of a hack: FrameWork uses the same Menu ID as Sioux, and the init code checks that the text in the menu is "About SIOUX" before replacing it.
Diffstat (limited to 'Mac')
-rw-r--r--Mac/Lib/FrameWork.py14
-rw-r--r--Mac/Python/macglue.c7
2 files changed, 15 insertions, 6 deletions
diff --git a/Mac/Lib/FrameWork.py b/Mac/Lib/FrameWork.py
index b2b61db..c0692b9 100644
--- a/Mac/Lib/FrameWork.py
+++ b/Mac/Lib/FrameWork.py
@@ -30,6 +30,9 @@ import EasyDialogs
kHighLevelEvent = 23 # Don't know what header file this should come from
SCROLLBARWIDTH = 16 # Again, not a clue...
+# Trick to forestall a set of SIOUX menus being added to our menubar
+SIOUX_APPLEMENU_ID=32000
+
# Map event 'what' field to strings
eventname = {}
@@ -442,8 +445,9 @@ class MenuBar:
self.bar = None
self.menus = None
- def addmenu(self, title, after = 0):
- id = self.getnextid()
+ def addmenu(self, title, after = 0, id=None):
+ if id == None:
+ id = self.getnextid()
if DEBUG: print 'Newmenu', title, id # XXXX
m = NewMenu(id, title)
m.InsertMenu(after)
@@ -507,9 +511,9 @@ class MenuBar:
class Menu:
"One menu."
- def __init__(self, bar, title, after=0):
+ def __init__(self, bar, title, after=0, id=None):
self.bar = bar
- self.id, self.menu = self.bar.addmenu(title, after)
+ self.id, self.menu = self.bar.addmenu(title, after, id)
bar.menus[self.id] = self
self.items = []
self._parent = None
@@ -675,7 +679,7 @@ def SubMenu(menu, label, title=''):
class AppleMenu(Menu):
def __init__(self, bar, abouttext="About me...", aboutcallback=None):
- Menu.__init__(self, bar, "\024")
+ Menu.__init__(self, bar, "\024", id=SIOUX_APPLEMENU_ID)
if MacOS.runtimemodel == 'ppc':
self.additem(abouttext, None, aboutcallback)
self.addseparator()
diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c
index f9c9aff..e66ab83 100644
--- a/Mac/Python/macglue.c
+++ b/Mac/Python/macglue.c
@@ -720,6 +720,8 @@ void
PyMac_InitMenuBar()
{
MenuHandle applemenu;
+ Str255 about_text;
+ static unsigned char about_sioux[] = "\pAbout SIOUX";
if ( sioux_mbar ) return;
#if 0
@@ -737,7 +739,10 @@ PyMac_InitMenuBar()
return;
}
if ( (applemenu=GetMenuHandle(SIOUX_APPLEID)) == NULL ) return;
- SetMenuItemText(applemenu, 1, "\pAbout Python...");
+ GetMenuItemText(applemenu, 1, about_text);
+ if ( about_text[0] == about_sioux[0] &&
+ strncmp((char *)(about_text+1), (char *)(about_sioux+1), about_text[0]) == 0 )
+ SetMenuItemText(applemenu, 1, "\pAbout Python...");
}
/*