You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
534 lines
16 KiB
534 lines
16 KiB
/* |
|
File: MacApplication.h |
|
|
|
Contains: Application-level APIs |
|
|
|
Version: QuickTime 7.3 |
|
|
|
Copyright: (c) 2007 (c) 2000-2001 by Apple Computer, Inc., all rights reserved. |
|
|
|
Bugs?: For bug reports, consult the following page on |
|
the World Wide Web: |
|
|
|
http://developer.apple.com/bugreporter/ |
|
|
|
*/ |
|
#ifndef __MACAPPLICATION__ |
|
#define __MACAPPLICATION__ |
|
|
|
#ifndef __CGCONTEXT__ |
|
#include <CGContext.h> |
|
#endif |
|
|
|
#ifndef __QUICKDRAW__ |
|
#include <Quickdraw.h> |
|
#endif |
|
|
|
#ifndef __MENUS__ |
|
#include <Menus.h> |
|
#endif |
|
|
|
#ifndef __HIOBJECT__ |
|
#include <HIObject.h> |
|
#endif |
|
|
|
|
|
|
|
|
|
#if PRAGMA_ONCE |
|
#pragma once |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
#if PRAGMA_IMPORT |
|
#pragma import on |
|
#endif |
|
|
|
|
|
/* |
|
* Summary: |
|
* Controls the presentation of system-provided user interface |
|
* elements. |
|
* |
|
* Discussion: |
|
* Note that the system UI mode is a per-process state. Switching |
|
* from a process that is suppressing system UI to another process |
|
* that is not will cause system UI elements to become visible |
|
* automatically. Switching back to the first process will suppress |
|
* system UI elements again. |
|
*/ |
|
enum { |
|
|
|
/* |
|
* In this mode, all standard system UI elements are visible. |
|
*/ |
|
kUIModeNormal = 0, |
|
|
|
/* |
|
* In this mode, system UI elements which cover the "content area" of |
|
* the screen (the area other than the menubar) are hidden. However, |
|
* these elements may automatically show themselves in response to |
|
* mouse movements or other user activity; specifically, the Dock |
|
* will still show itself automatically when the mouse moves into the |
|
* Dock's auto-show region. |
|
*/ |
|
kUIModeContentSuppressed = 1, |
|
|
|
/* |
|
* In this mode, system UI elements which cover the "content area" of |
|
* the screen (the area other than the menubar) are hidden. Unlike |
|
* kUIModeContentSuppressed, most UI elements will not automatically |
|
* show themselves in this mode. |
|
*/ |
|
kUIModeContentHidden = 2, |
|
|
|
/* |
|
* In this mode, all system UI elements, including the menubar, are |
|
* hidden. Most system UI elements will not automatically show |
|
* themselves in this mode. The application may request that the |
|
* menubar automatically show itself while in this mode by passing |
|
* the kUIOptionAutoShowMenuBar flag to SetSystemUIMode. |
|
*/ |
|
kUIModeAllHidden = 3 |
|
}; |
|
|
|
typedef UInt32 SystemUIMode; |
|
|
|
/* |
|
* Summary: |
|
* Controls optional behavior of system-provided user interface |
|
* elements. |
|
*/ |
|
enum { |
|
|
|
/* |
|
* Requests that the menubar automatically show itself when the user |
|
* moves the mouse into the screen area that would ordinarily be |
|
* occupied by the menubar. Only valid with kUIModeAllHidden. |
|
*/ |
|
kUIOptionAutoShowMenuBar = 1 << 0, |
|
|
|
/* |
|
* Disables all items in the Apple menu. Valid for all modes. |
|
*/ |
|
kUIOptionDisableAppleMenu = 1 << 2, |
|
|
|
/* |
|
* The active application may not be changed while this process is |
|
* active. Currently disables the Command-Tab and Command-Shift-Tab |
|
* key sequences to switch the active process, and the global window |
|
* rotation key sequence selected by the user in the Keyboard |
|
* preference pane. SetFrontProcess may still be used to explicitly |
|
* switch the active process. Only valid with modes other than |
|
* kUIModeNormal. |
|
*/ |
|
kUIOptionDisableProcessSwitch = 1 << 3, |
|
|
|
/* |
|
* The Force Quit window may not be displayed while this process is |
|
* active. Currently disables the Command-Option-Escape key sequence |
|
* to open the Force Quit window and the Force Quit menu item in the |
|
* Apple menu. Only valid with modes other than kUIModeNormal. |
|
*/ |
|
kUIOptionDisableForceQuit = 1 << 4, |
|
|
|
/* |
|
* The current login session may not be terminated while this process |
|
* is active. Currently disables the Power key and the Restart, Shut |
|
* Down, and Log Out menu items in the Apple menu. Only valid with |
|
* modes other than kUIModeNormal. |
|
*/ |
|
kUIOptionDisableSessionTerminate = 1 << 5 |
|
}; |
|
|
|
typedef OptionBits SystemUIOptions; |
|
/* |
|
* SetSystemUIMode() |
|
* |
|
* Summary: |
|
* Sets the presentation mode for system-provided user interface |
|
* elements. |
|
* |
|
* Discussion: |
|
* The presentation mode of an application determines which |
|
* system-provided user interface elements are visible on thes |
|
* screen. When the frontmost application changes its presentation |
|
* mode, a kEventAppSystemUIModeChanged Carbon event is sent to all |
|
* applications that have registered for the event. This event is |
|
* also sent when an application is activated; it contains the newly |
|
* active application's presentation mode. |
|
* |
|
* Parameters: |
|
* |
|
* inMode: |
|
* The new mode. |
|
* |
|
* inOptions: |
|
* Options controlling how the new mode behaves. |
|
* |
|
* Result: |
|
* An operating system result code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later |
|
* Mac OS X: in version 10.2 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
SetSystemUIMode( |
|
SystemUIMode inMode, |
|
SystemUIOptions inOptions); |
|
|
|
|
|
/* |
|
* GetSystemUIMode() |
|
* |
|
* Summary: |
|
* Returns the current presentation mode of the application. |
|
* |
|
* Parameters: |
|
* |
|
* outMode: |
|
* On exit, contains the current mode. You may pass NULL if you |
|
* don't need this information. |
|
* |
|
* outOptions: |
|
* On exit, contains the current options for the mode. You may |
|
* pass NULL if you don't need this information. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later |
|
* Mac OS X: in version 10.2 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
GetSystemUIMode( |
|
SystemUIMode * outMode, /* can be NULL */ |
|
SystemUIOptions * outOptions); /* can be NULL */ |
|
|
|
|
|
/* |
|
* HIApplicationGetCurrent() |
|
* |
|
* Discussion: |
|
* Returns the HIObjectRef of the currently running application |
|
* object. This HIObject's EventTargetRef is what will be returned |
|
* from GetApplicationEventTarget. |
|
* |
|
* Result: |
|
* The HIObjectRef of the currently running application object. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later |
|
* Mac OS X: in version 10.2 and later |
|
*/ |
|
EXTERN_API_C( HIObjectRef ) |
|
HIApplicationGetCurrent(void); |
|
|
|
|
|
/* |
|
* SetApplicationDockTileImage() |
|
* |
|
* Discussion: |
|
* Sets the image for the tile in the dock that represents your |
|
* application while it is running. If you set the image, it will |
|
* NOT revert back to its original image when your application |
|
* terminates. You need to manually restore it before quitting. |
|
* |
|
* Parameters: |
|
* |
|
* inImage: |
|
* The image you wish to have as your tile image. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
SetApplicationDockTileImage(CGImageRef inImage); |
|
|
|
|
|
/* |
|
* OverlayApplicationDockTileImage() |
|
* |
|
* Discussion: |
|
* Takes the image passed in and composites it on top of the current |
|
* image of your application's dock tile. You might do this to put a |
|
* standard badge over your application's icon to indicate something |
|
* to the user. |
|
* |
|
* Parameters: |
|
* |
|
* inImage: |
|
* The image you wish to overlay onto your tile image. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
OverlayApplicationDockTileImage(CGImageRef inImage); |
|
|
|
|
|
/* |
|
* RestoreApplicationDockTileImage() |
|
* |
|
* Discussion: |
|
* Restores the tile for your appliation in the dock to its normal |
|
* image (your application icon). You would use this if some overlay |
|
* or change of the application icon needed to be removed. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
RestoreApplicationDockTileImage(void); |
|
|
|
|
|
/* |
|
* BeginCGContextForApplicationDockTile() |
|
* |
|
* Discussion: |
|
* Creates and returns a CGContextRef. You can use this context to |
|
* draw into your application's dock tile with Quartz. You **MUST** |
|
* call EndCGContextForApplicationDockTile and NOT CGEndContext when |
|
* using this API, as it locks your application's tile in the dock. |
|
* If you call CGEndContext, the dock will never know you are done |
|
* with the tile. |
|
* |
|
* Result: |
|
* An Quartz (Core Graphics) context reference. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( CGContextRef ) |
|
BeginCGContextForApplicationDockTile(void); |
|
|
|
|
|
/* |
|
* EndCGContextForApplicationDockTile() |
|
* |
|
* Discussion: |
|
* Ends the CG context for your application tile and frees the lock |
|
* on the application dock tile. You **MUST** call this routine and |
|
* NOT CGEndContext when using BeginCGContextForApplicationDockTile, |
|
* as it locks your application's tile in the dock. If you call |
|
* CGEndContext, the dock will never know you are done with the tile. |
|
* |
|
* Parameters: |
|
* |
|
* inContext: |
|
* The context to end. The context is invalid after this call and |
|
* should no longer be used. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
EndCGContextForApplicationDockTile(CGContextRef inContext); |
|
|
|
|
|
|
|
|
|
/* |
|
* BeginQDContextForApplicationDockTile() |
|
* |
|
* Discussion: |
|
* Creates and returns a CGrafPtr for your application's tile in the |
|
* dock. You can use this port to draw into your application's dock |
|
* tile with Quickdraw. You **MUST** call |
|
* EndQDContextForApplicationDockTile and NOT DisposePort when using |
|
* this API, as it locks your application's tile in the dock. If you |
|
* call DisposePort, the dock will never know you are done with the |
|
* tile. |
|
* |
|
* Result: |
|
* A Quickdraw port reference. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( CGrafPtr ) |
|
BeginQDContextForApplicationDockTile(void); |
|
|
|
|
|
/* |
|
* EndQDContextForApplicationDockTile() |
|
* |
|
* Discussion: |
|
* Disposes the Quickdraw port for your application tile and frees |
|
* the lock on the application dock tile. You **MUST** call this |
|
* routine and NOT DisposePort when using |
|
* BeginQDContextForApplicationDockTile, else the dock will never |
|
* know you are done with the tile. |
|
* |
|
* Parameters: |
|
* |
|
* inContext: |
|
* The context to end. The context is invalid after this call and |
|
* should no longer be used. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
EndQDContextForApplicationDockTile(CGrafPtr inContext); |
|
|
|
|
|
|
|
/* |
|
* SetApplicationDockTileMenu() |
|
* |
|
* Summary: |
|
* Sets the menu that is displayed by the application's dock tile. |
|
* |
|
* Discussion: |
|
* The Carbon Window Manager and the Dock will always automatically |
|
* display a menu containing a list of the application's document |
|
* windows. If the application wants to add other additional menu |
|
* items, it can use the SetApplicationDockTileMenu API to provide |
|
* those items. The items in the specified menu will be combined |
|
* with the window title items. This API increments the refcount of |
|
* the specified menu. Before the menu is actually displayed, it |
|
* will receive kEventMenuPopulate, kEventMenuOpening, and |
|
* kEventMenuEnableItems Carbon events, so any event handlers for |
|
* these events may update the menu appropriately for the current |
|
* state of the application. The application should set a command ID |
|
* for each menu item in the dock tile menu, and when that item is |
|
* chosen, a kEventCommandProcess Carbon event containing the item's |
|
* command ID will be sent to the user focus target. |
|
* |
|
* Parameters: |
|
* |
|
* inMenu: |
|
* The menu to display, or NULL to remove the current dock tile |
|
* menu. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
SetApplicationDockTileMenu(MenuRef inMenu); |
|
|
|
|
|
/* |
|
* GetApplicationDockTileMenu() |
|
* |
|
* Summary: |
|
* Returns the menu that is displayed by the application's dock tile. |
|
* |
|
* Result: |
|
* The application's dock tile menu, or NULL if none. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API_C( MenuRef ) |
|
GetApplicationDockTileMenu(void); |
|
|
|
|
|
|
|
/* |
|
* CreateCGImageFromPixMaps() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
CreateCGImageFromPixMaps( |
|
PixMapHandle inImage, |
|
PixMapHandle inMask, |
|
CGImageRef * outImage); |
|
|
|
|
|
/* |
|
* GetApplicationTextEncoding() |
|
* |
|
* Summary: |
|
* Returns the application's primary text encoding. |
|
* |
|
* Discussion: |
|
* The application text encoding is used when you create a |
|
* CFStringRef from text stored in Resource Manager resources, which |
|
* typically uses one of the Mac encodings such as MacRoman or |
|
* MacJapanese. The encoding is determined by: (a) if your app is |
|
* bundled, the encoding of the .lproj directory chosen by CFBundle, |
|
* (b) else if your plist has a CFBundleDevelopmentRegionKey, the |
|
* encoding specified by that key, (c) else if your app has a 'vers' |
|
* resource, the encoding for the region field in the 'vers', (d) |
|
* else the current localization of the operating system. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.2 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( TextEncoding ) |
|
GetApplicationTextEncoding(void); |
|
|
|
|
|
/* |
|
* GetApplicationScript() |
|
* |
|
* Summary: |
|
* Returns the application script. |
|
* |
|
* Discussion: |
|
* The application script is used when you need a ScriptCode to pass |
|
* to some other API, such as UseThemeFont. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ScriptCode ) |
|
GetApplicationScript(void); |
|
|
|
|
|
|
|
|
|
#ifdef PRAGMA_IMPORT_OFF |
|
#pragma import off |
|
#elif PRAGMA_IMPORT |
|
#pragma import reset |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#endif /* __MACAPPLICATION__ */ |
|
|
|
|