#56589 - Add shared menus support (requires version 1.2 of SharedMenus.component) for CFM version of Mozilla for Mac OS X. r=bnesse,sr=sfraser

git-svn-id: svn://10.0.0.236/trunk@131488 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
sdagley%netscape.com
2002-10-08 23:09:00 +00:00
parent 99981179ab
commit 1a0e429da2
3 changed files with 100 additions and 0 deletions

View File

@@ -3261,6 +3261,16 @@
<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
</SETTING>
<SETTING>
<SETTING><NAME>SearchPath</NAME>
<SETTING><NAME>Path</NAME><VALUE>:MacOS Support:(Third Party Support):Carbonized Menu Sharing:</VALUE></SETTING>
<SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
<SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
</SETTING>
<SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
</SETTING>
</SETTING>
<SETTING><NAME>SystemSearchPaths</NAME>
<SETTING>
@@ -4444,6 +4454,13 @@
<FILEKIND>Library</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>MenuSharing.c</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
</FILELIST>
<LINKORDER>
<FILEREF>
@@ -4716,6 +4733,11 @@
<PATH>WidgetSupportDebug.shlb</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>MenuSharing.c</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
</LINKORDER>
</TARGET>
<TARGET>
@@ -4800,6 +4822,16 @@
<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
</SETTING>
<SETTING>
<SETTING><NAME>SearchPath</NAME>
<SETTING><NAME>Path</NAME><VALUE>:MacOS Support:(Third Party Support):Carbonized Menu Sharing:</VALUE></SETTING>
<SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
<SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
</SETTING>
<SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
</SETTING>
</SETTING>
<SETTING><NAME>SystemSearchPaths</NAME>
<SETTING>
@@ -5983,6 +6015,13 @@
<FILEKIND>Library</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>MenuSharing.c</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
</FILELIST>
<LINKORDER>
<FILEREF>
@@ -6255,6 +6294,11 @@
<PATH>WidgetSupport.shlb</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>MenuSharing.c</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
</LINKORDER>
</TARGET>
</TARGETLIST>
@@ -6311,6 +6355,12 @@
<PATH>nsTSMStrategy.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>widgetCarbonDebug.shlb</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
<PATH>MenuSharing.c</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
</GROUP>
<GROUP><NAME>Mac Apps</NAME>
<FILEREF>

View File

@@ -86,6 +86,9 @@
#include "nsISocketTransportService.h"
#include "nsIFileTransportService.h"
#if TARGET_CARBON && !XP_MACOSX
#include "MenuSharing.h"
#endif
#ifndef topLeft
#define topLeft(r) (((Point *) &(r))[0])
@@ -189,6 +192,22 @@ static long ConvertOSMenuResultToPPMenuResult(long menuResult)
}
#pragma mark -
#if TARGET_CARBON && !XP_MACOSX
#pragma mark MenuSharingToolkitSupport
//=================================================================
static pascal void ErrorDialog (Str255 s)
{
//ParamText (s, "\p", "\p", "\p");
//Alert (kMenuSharingAlertID, nil);
}
//=================================================================
static pascal void EventFilter (EventRecord *ev)
{
// Hrm, prolly should do _something_ here
}
#pragma mark -
#endif
static NS_DEFINE_CID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID);
@@ -214,6 +233,11 @@ nsMacMessagePump::nsMacMessagePump(nsToolkit *aToolkit)
// startup the watch cursor idle time vbl task
nsWatchTask::GetTask().Start();
#if TARGET_CARBON && !XP_MACOSX
// added to support Menu Sharing API. Initializes the Menu Sharing API.
InitSharedMenus (ErrorDialog, EventFilter);
#endif
}
//=================================================================
@@ -983,6 +1007,14 @@ void nsMacMessagePump::DoIdle(EventRecord &anEvent)
// send mouseMove event
static Point lastWhere = {0, 0};
#if TARGET_CARBON && !XP_MACOSX
if ( nsToolkit::IsAppInForeground() )
{
// Shared Menu support - note we hardcode first menu ID available as 31000
CheckSharedMenus(31000);
}
#endif
if (*(long*)&lastWhere == *(long*)&anEvent.where)
return;

View File

@@ -70,6 +70,10 @@
#include "nsGUIEvent.h"
#if !XP_MACOSX
#include "MenuSharing.h"
#endif
// CIDs
#include "nsWidgetsCID.h"
static NS_DEFINE_CID(kMenuBarCID, NS_MENUBAR_CID);
@@ -351,6 +355,20 @@ nsMenuBarX :: CommandEventHandler ( EventHandlerCallRef inHandlerChain, EventRef
break;
}
#if !XP_MACOSX
case 'SHMN':
{ // Shared menu support
MenuItemIndex index = command.menu.menuItemIndex;
if (index)
{
(void)SharedMenuHit(GetMenuID(command.menu.menuRef), command.menu.menuItemIndex);
::HiliteMenu(0);
handled = noErr;
}
break;
}
#endif
default:
{
// given the commandID, look it up in our hashtable and dispatch to