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.
7685 lines
242 KiB
7685 lines
242 KiB
/* |
|
File: MacWindows.h |
|
|
|
Contains: Window Manager Interfaces |
|
|
|
Version: QuickTime 7.3 |
|
|
|
Copyright: (c) 2007 (c) 1997-2002 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 __MACWINDOWS__ |
|
#define __MACWINDOWS__ |
|
|
|
#ifndef __MACTYPES__ |
|
#include <MacTypes.h> |
|
#endif |
|
|
|
#ifndef __TEXTCOMMON__ |
|
#include <TextCommon.h> |
|
#endif |
|
|
|
#ifndef __MACERRORS__ |
|
#include <MacErrors.h> |
|
#endif |
|
|
|
#ifndef __ALIASES__ |
|
#include <Aliases.h> |
|
#endif |
|
|
|
#ifndef __APPLEEVENTS__ |
|
#include <AppleEvents.h> |
|
#endif |
|
|
|
#ifndef __COLLECTIONS__ |
|
#include <Collections.h> |
|
#endif |
|
|
|
#ifndef __MIXEDMODE__ |
|
#include <MixedMode.h> |
|
#endif |
|
|
|
#ifndef __QDOFFSCREEN__ |
|
#include <QDOffscreen.h> |
|
#endif |
|
|
|
#ifndef __QUICKDRAW__ |
|
#include <Quickdraw.h> |
|
#endif |
|
|
|
#ifndef __CFSTRING__ |
|
#include <CFString.h> |
|
#endif |
|
|
|
#ifndef __ICONS__ |
|
#include <Icons.h> |
|
#endif |
|
|
|
#ifndef __DRAG__ |
|
#include <Drag.h> |
|
#endif |
|
|
|
#ifndef __EVENTS__ |
|
#include <Events.h> |
|
#endif |
|
|
|
#ifndef __MENUS__ |
|
#include <Menus.h> |
|
#endif |
|
|
|
#ifndef __HITOOLBAR__ |
|
#include <HIToolbar.h> |
|
#endif |
|
|
|
|
|
|
|
|
|
#if PRAGMA_ONCE |
|
#pragma once |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
#if PRAGMA_IMPORT |
|
#pragma import on |
|
#endif |
|
|
|
#if PRAGMA_STRUCT_ALIGN |
|
#pragma options align=mac68k |
|
#elif PRAGMA_STRUCT_PACKPUSH |
|
#pragma pack(push, 2) |
|
#elif PRAGMA_STRUCT_PACK |
|
#pragma pack(2) |
|
#endif |
|
|
|
/* */ |
|
/* Current documentation for the Mac OS Window Manager is available on the web: */ |
|
/* <http://developer.apple.com/techpubs/macos8/HumanInterfaceToolbox/WindowManager/windowmanager.html> */ |
|
/* */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Property Types */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
typedef OSType PropertyCreator; |
|
typedef OSType PropertyTag; |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Classes */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
|
|
/* |
|
* WindowClass |
|
* |
|
* Summary: |
|
* The types of windows provided by the Window Manager. |
|
* |
|
* Discussion: |
|
* The class of a window determines several aspects of the window: |
|
* its appearance, its initial window attributes, its initial window |
|
* group, and its initial modality. All of these except for the |
|
* window's appearance may be changed later using other Window |
|
* Manager APIs. |
|
*/ |
|
typedef UInt32 WindowClass; |
|
enum { |
|
|
|
/* |
|
* An alert window is used when the application needs the user's |
|
* attention immediately. On Mac OS 9 and earlier, a visible alert |
|
* window will prevent the user from switching to any other |
|
* application. Use kThemeBrushAlertBackgroundActive to draw the |
|
* background of alert windows. Alert windows are initially placed in |
|
* the modal window group, given a modality of |
|
* kWindowModalityAppModal, and given an activation scope of |
|
* kWindowActivationScopeAll. Available in Mac OS 8.5 and later. |
|
*/ |
|
kAlertWindowClass = 1, |
|
|
|
/* |
|
* Similar to kAlertWindowClass, but provides a window that is |
|
* movable and that allows switching to other applications. Generally |
|
* you should use this window class rather than kAlertWindowClass. |
|
* Use kThemeBrushAlertBackgroundActive to draw the background of |
|
* movable alert windows. Movable alert windows are initially placed |
|
* in the modal window group, given a modality of |
|
* kWindowModalityAppModal, and given an activation scope of |
|
* kWindowActivationScopeAll. Available in Mac OS 8.5 and later. |
|
*/ |
|
kMovableAlertWindowClass = 2, |
|
|
|
/* |
|
* A modal window is used to display a dialog (but not an alert; use |
|
* kAlertWindowClass for alerts). On Mac OS 9 and earlier, a visible |
|
* modal window will prevent the user from switching to any other |
|
* application. Use kThemeBrushDialogBackgroundActive to draw the |
|
* background of modal windows. Modal windows are initially placed in |
|
* the modal window group, given a modality of |
|
* kWindowModalityAppModal, and given an activation scope of |
|
* kWindowActivationScopeAll. Available in Mac OS 8.5 and later. |
|
*/ |
|
kModalWindowClass = 3, |
|
|
|
/* |
|
* Similar to kModalWindowClass, but provides a window that is |
|
* movable and that allows switching to other applications. Generally |
|
* you should use this window class rather than kModalWindowClass. If |
|
* you are using CarbonLib 1.3 or later, or Mac OS X, use |
|
* kThemeBrushMovableModalBackground to draw the background of |
|
* movable modal windows; on earlier versions of CarbonLib, or for |
|
* non-Carbon programming, use kThemeBrushDialogBackgroundActive. |
|
* Movable modal windows are initially placed in the modal window |
|
* group, given a modality of kWindowModalityAppModal, and given an |
|
* activation scope of kWindowActivationScopeAll. Available in Mac OS |
|
* 8.5 and later. |
|
*/ |
|
kMovableModalWindowClass = 4, |
|
|
|
/* |
|
* A floating window is layered above all application windows except |
|
* for alert and modal windows. It is commonly used for palette |
|
* windows, inspectors, and other accessory (non-document) windows. |
|
* Use kThemeBrushUtilityWindowBackgroundActive or |
|
* kThemeBrushDocumentWindowBackground to draw the background of |
|
* floating windows. Floating windows are initially placed in the |
|
* floating window group, given a modality of kWindowModalityNone, |
|
* and given an activation scope of |
|
* kWindowActivationScopeIndependent. Available in Mac OS 8.6 and |
|
* later. |
|
*/ |
|
kFloatingWindowClass = 5, |
|
|
|
/* |
|
* A document window is used for normal application document windows. |
|
* Use kThemeBrushDocumentWindowBackground or your own custom drawing |
|
* to draw the background of a document window. Document windows are |
|
* initially placed in the document window group, given a modality of |
|
* kWindowModalityNone, and given an activation scope of |
|
* kWindowActivationScopeAll. Available in Mac OS 8.5 and later. |
|
*/ |
|
kDocumentWindowClass = 6, |
|
|
|
/* |
|
* A utility window is similar to a floating window, but it floats |
|
* above the windows of all applications rather than just above the |
|
* windows of the application that creates it. Use |
|
* kThemeBrushUtilityWindowBackgroundActive or |
|
* kThemeBrushDocumentWindowBackground to draw the background of |
|
* utility windows. Utility windows are initially placed in the |
|
* utility window group, given a modality of kWindowModalityNone, and |
|
* given an activation scope of kWindowActivationScopeIndependent. |
|
* Available in CarbonLib 1.1 and later, and in Mac OS X. |
|
*/ |
|
kUtilityWindowClass = 8, |
|
|
|
/* |
|
* A help window is used to display help tags. It has no window |
|
* frame. Typically you should use the Help Manager to display help |
|
* tags, rather than creating a help tag window yourself. Help |
|
* windows are initially placed in the help window group, given a |
|
* modality of kWindowModalityNone, and given an activation scope of |
|
* kWindowActivationScopeNone. Available in CarbonLib 1.1 and later, |
|
* and in Mac OS X. |
|
*/ |
|
kHelpWindowClass = 10, |
|
|
|
/* |
|
* A sheet window is used to display a dialog that is attached |
|
* directly to its parent window, rather than being a independent |
|
* window. A sheet dialog only prevents interaction with its parent |
|
* window; the user may still interact with other windows in the same |
|
* application. Use kThemeBrushSheetBackgroundOpaque to draw an |
|
* opaque background for sheet windows, or |
|
* kThemeBrushSheetBackgroundTransparent to draw a transparent |
|
* background (the transparent brush is only available in Mac OS X |
|
* 10.1 and later). Sheet windows are initially placed in the |
|
* document window group, given a modality of kWindowModalityNone, |
|
* and given an activation scope of kWindowActivationScopeAll. |
|
* Available in CarbonLib 1.3 and later, and in Mac OS X; in |
|
* CarbonLib, a sheet window is actually a movable-modal window, |
|
* which blocks user interaction with all windows of the application. |
|
*/ |
|
kSheetWindowClass = 11, |
|
|
|
/* |
|
* A toolbar window is used to display a palette of controls. It is |
|
* similar to a floating window, and like a floating window is |
|
* layered above all application windows except for alert and modal |
|
* windows, but is layered beneath floating windows. Use |
|
* kThemeBrushToolbarBackground to draw the background of a toolbar |
|
* window in Mac OS X or later; CarbonLib does not currently support |
|
* kThemeBrushToolbarBackground. Floating windows are initially |
|
* placed in the toolbar window group, given a modality of |
|
* kWindowModalityNone, and given an activation scope of |
|
* kWindowActivationScopeNone. Available in CarbonLib 1.1 and later, |
|
* and Mac OS X. |
|
*/ |
|
kToolbarWindowClass = 12, |
|
|
|
/* |
|
* A plain window has a single-pixel window frame. |
|
* kThemeBrushDocumentWindowBackground, |
|
* kThemeBrushDialogBackgroundActive, and application-specific custom |
|
* drawing are all commonly used to draw the background of a plain |
|
* window. Plain windows are initially placed in the document window |
|
* group, given a modality of kWindowModalityNone, and given an |
|
* activation scope of kWindowActivationScopeAll. Available in |
|
* CarbonLib 1.2.5 and later, and Mac OS X. |
|
*/ |
|
kPlainWindowClass = 13, |
|
|
|
/* |
|
* An overlay window is a completely transparent window positioned |
|
* above all other windows. Overlay windows are intended as a |
|
* replacement for the pre-Carbon practice of drawing directly into |
|
* the window manager port; by creating a full-screen overlay window |
|
* and drawing into it, you can draw over any window in any |
|
* application without disturbing the contents of the windows |
|
* underneath your drawing. After creating an overlay window, you |
|
* should use CGContextClearRect to clear the overlay window's alpha |
|
* channel to zero; this ensures the initial transparancy of the |
|
* window. You must use CoreGraphics to draw into an overlay window |
|
* to preserve the transparency of the window. Overlay windows are |
|
* initially placed in the overlay window group, given a modality of |
|
* kWindowModalityNone, and given an activation scope of |
|
* kWindowActivationScopeNone. Available in Mac OS X. |
|
*/ |
|
kOverlayWindowClass = 14, |
|
|
|
/* |
|
* A sheet alert window is similar to a sheet window, but is intended |
|
* to display an alert rather than a dialog. On Mac OS X, the |
|
* appearance of a sheet window and a sheet alert window is currently |
|
* identical, but in CarbonLib a sheet alert window has a different |
|
* appearance from a sheet window. Use |
|
* kThemeBrushSheetBackgroundOpaque to draw an opaque background for |
|
* sheet alert windows, or kThemeBrushSheetBackgroundTransparent to |
|
* draw a transparent background (the transparent brush is only |
|
* available in Mac OS X 10.1 and later). Sheet alert windows are |
|
* initially placed in the document window group, given a modality of |
|
* kWindowModalityNone, and given an activation scope of |
|
* kWindowActivationScopeAll. Available in CarbonLib 1.3 and later, |
|
* and in Mac OS X 10.1 and later; in CarbonLib, a sheet alert window |
|
* is actually a movable alert window, which blocks user interaction |
|
* with all windows of the application. |
|
*/ |
|
kSheetAlertWindowClass = 15, |
|
|
|
/* |
|
* A alternate plain window is similar to a plain window but has a |
|
* solid black shadow on its right and bottom sides. It is rarely |
|
* used in modern Mac OS applications. |
|
* kThemeBrushDocumentWindowBackground, |
|
* kThemeBrushDialogBackgroundActive, and application-specific custom |
|
* drawing are all commonly used to draw the background of an |
|
* alternate plain window. Alternate plain windows are initially |
|
* placed in the document window group, given a modality of |
|
* kWindowModalityNone, and given an activation scope of |
|
* kWindowActivationScopeAll. Available in CarbonLib 1.3 and later, |
|
* and Mac OS X 10.1 and later. |
|
*/ |
|
kAltPlainWindowClass = 16, |
|
|
|
/* |
|
* A drawer window is used when implementing a drawer user interface, |
|
* in which the drawer windo slides out from underneath a document |
|
* window. Use kThemeBrushDrawerBackground or |
|
* kThemeBrushDocumentWindowBackground to draw the background of |
|
* drawer windows. Drawer windows are initially placed in the |
|
* document window group, given a modality of kWindowModalityNone, |
|
* and given an activation scope of kWindowActivationScopeAll. |
|
* Available in Mac OS X 10.2 or later. |
|
*/ |
|
kDrawerWindowClass = 20, |
|
|
|
/* |
|
* Not an actual window class, but a meta-constant that is used with |
|
* GetFrontWindowOfClass, FindWindowOfClass, and GetNextWindowOfClass |
|
* to indicate that there should be no restriction on the class of |
|
* the returned window. Also used with GetWindowGroupOfClass to get |
|
* the root window group. |
|
*/ |
|
kAllWindowClasses = (unsigned long)0xFFFFFFFF |
|
}; |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Attributes */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
|
|
typedef UInt32 WindowAttributes; |
|
|
|
/* |
|
* Summary: |
|
* Window attributes |
|
*/ |
|
enum { |
|
|
|
/* |
|
* A constant with value zero; the lack of any attributes. |
|
*/ |
|
kWindowNoAttributes = 0L, |
|
|
|
/* |
|
* This window has a close box. Available for windows of |
|
* kDocumentWindowClass, kFloatingWindowClass, and |
|
* kUtilityWindowClass. |
|
*/ |
|
kWindowCloseBoxAttribute = (1L << 0), |
|
|
|
/* |
|
* This window changes width when zooming. Available for windows of |
|
* kDocumentWindowClass, kFloatingWindowClass, and |
|
* kUtilityWindowClass. |
|
*/ |
|
kWindowHorizontalZoomAttribute = (1L << 1), |
|
|
|
/* |
|
* This window changes height when zooming. Available for windows of |
|
* kDocumentWindowClass, kFloatingWindowClass, and |
|
* kUtilityWindowClass. |
|
*/ |
|
kWindowVerticalZoomAttribute = (1L << 2), |
|
|
|
/* |
|
* This window changes both width and height when zooming. Available |
|
* for windows of kDocumentWindowClass, kFloatingWindowClass, and |
|
* kUtilityWindowClass. |
|
*/ |
|
kWindowFullZoomAttribute = (kWindowVerticalZoomAttribute | kWindowHorizontalZoomAttribute), |
|
|
|
/* |
|
* This window has a collapse box. Available for windows of |
|
* kDocumentWindowClass and, on Mac OS 9, kFloatingWindowClass and |
|
* kUtilityWindowClass; not available for windows of |
|
* kFloatingWindowClass or kUtilityWindowClass on Mac OS X. |
|
*/ |
|
kWindowCollapseBoxAttribute = (1L << 3), |
|
|
|
/* |
|
* This window can be resized. Available for windows of |
|
* kDocumentWindowClass, kMovableModalWindowClass, |
|
* kFloatingWindowClass, kUtilityWindowClass, and kSheetWindowClass. |
|
*/ |
|
kWindowResizableAttribute = (1L << 4), |
|
|
|
/* |
|
* This window has a vertical titlebar on the side of the window. |
|
* Available for windows of kFloatingWindowClass and |
|
* kUtilityWindowClass. |
|
*/ |
|
kWindowSideTitlebarAttribute = (1L << 5), |
|
|
|
/* |
|
* This window has a toolbar button. Available for windows of |
|
* kDocumentWindowClass on Mac OS X. |
|
*/ |
|
kWindowToolbarButtonAttribute = (1L << 6), |
|
|
|
/* |
|
* This window uses the Metal appearance. Available for document and |
|
* floating window classes on Mac OS X 10.2 and later. Drawers can |
|
* also be metal, but dynamically adjust their appearance based on |
|
* their parent window's appearance; it is not necessary to specify |
|
* this attribute for a metal drawer. |
|
*/ |
|
kWindowMetalAttribute = (1L << 8), |
|
|
|
/* |
|
* This window receives no update events. Available for all windows. |
|
*/ |
|
kWindowNoUpdatesAttribute = (1L << 16), |
|
|
|
/* |
|
* This window receives no activate events. Available for all windows. |
|
*/ |
|
kWindowNoActivatesAttribute = (1L << 17), |
|
|
|
/* |
|
* This window receives mouse events even for areas of the window |
|
* that are transparent (have an alpha channel component of zero). |
|
* Available for windows of kOverlayWindowClass on Mac OS X 10.0 and |
|
* 10.1, and available for all windows on Mac OS X 10.2 and later. |
|
*/ |
|
kWindowOpaqueForEventsAttribute = (1L << 18), |
|
|
|
/* |
|
* This window uses composited drawing. This means that the entire |
|
* window is comprised of HIViews, and can be treated thusly. This |
|
* attribute must be specified at window creation, and cannot be |
|
* changed later with ChangeWindowAttributes. Available on Mac OS X |
|
* 10.2 and later. |
|
*/ |
|
kWindowCompositingAttribute = (1L << 19), |
|
|
|
/* |
|
* This window has no shadow. Available for all windows on Mac OS X. |
|
* This attribute is automatically given to windows of |
|
* kOverlayWindowClass. |
|
*/ |
|
kWindowNoShadowAttribute = (1L << 21), |
|
|
|
/* |
|
* This window is automatically hidden on suspend and shown on |
|
* resume. Available for all windows. This attribute is automatically |
|
* given to windows of kFloatingWindowClass, kHelpWindowClass, and |
|
* kToolbarWindowClass. |
|
*/ |
|
kWindowHideOnSuspendAttribute = (1L << 24), |
|
|
|
/* |
|
* This window has the standard Carbon window event handler |
|
* installed. Available for all windows. |
|
*/ |
|
kWindowStandardHandlerAttribute = (1L << 25), |
|
|
|
/* |
|
* This window is automatically hidden during fullscreen mode (when |
|
* the menubar is invisible) and shown afterwards. Available for all |
|
* windows. This attribute is automatically given to windows of |
|
* kUtilityWindowClass. |
|
*/ |
|
kWindowHideOnFullScreenAttribute = (1L << 26), |
|
|
|
/* |
|
* This window is added to the standard Window menu. Available for |
|
* windows of kDocumentWindowClass. This attribute is automatically |
|
* given to windows of kDocumentWindowClass. |
|
*/ |
|
kWindowInWindowMenuAttribute = (1L << 27), |
|
|
|
/* |
|
* This window supports live resizing. Available for all windows on |
|
* Mac OS X. |
|
*/ |
|
kWindowLiveResizeAttribute = (1L << 28), |
|
|
|
/* |
|
* This window never receives mouse events, even in areas that are |
|
* opaque. Instead, clicks on the window will be passed through to |
|
* windows beneath it. Available for all windows on Mac OS X 10.2 and |
|
* later. |
|
*/ |
|
kWindowIgnoreClicksAttribute = (1L << 29), |
|
|
|
/* |
|
* This window will not be repositioned by the default |
|
* kEventWindowConstrain handler in response to changes in monitor |
|
* size, Dock position, and so on. Available for all windows on Mac |
|
* OS X 10.1 and later, and CarbonLib 1.6 and later. |
|
*/ |
|
kWindowNoConstrainAttribute = (unsigned long)((1L << 31)), |
|
|
|
/* |
|
* The minimum set of window attributes commonly used by document |
|
* windows. |
|
*/ |
|
kWindowStandardDocumentAttributes = (kWindowCloseBoxAttribute | kWindowFullZoomAttribute | kWindowCollapseBoxAttribute | kWindowResizableAttribute), |
|
|
|
/* |
|
* The minimum set of window attributes commonly used by floating |
|
* windows. |
|
*/ |
|
kWindowStandardFloatingAttributes = (kWindowCloseBoxAttribute | kWindowCollapseBoxAttribute) |
|
}; |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Definition Type */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
enum { |
|
kWindowDefProcType = FOUR_CHAR_CODE('WDEF') |
|
}; |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Mac OS 7.5 Window Definition Resource IDs */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
enum { |
|
kStandardWindowDefinition = 0, /* for document windows and dialogs*/ |
|
kRoundWindowDefinition = 1, /* old da-style window*/ |
|
kFloatingWindowDefinition = 124 /* for floating windows*/ |
|
}; |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Variant Codes */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
enum { |
|
/* for use with kStandardWindowDefinition */ |
|
kDocumentWindowVariantCode = 0, |
|
kModalDialogVariantCode = 1, |
|
kPlainDialogVariantCode = 2, |
|
kShadowDialogVariantCode = 3, |
|
kMovableModalDialogVariantCode = 5, |
|
kAlertVariantCode = 7, |
|
kMovableAlertVariantCode = 9, /* for use with kFloatingWindowDefinition */ |
|
kSideFloaterVariantCode = 8 |
|
}; |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o DefProc IDs */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
enum { |
|
/* classic ids */ |
|
documentProc = 0, |
|
dBoxProc = 1, |
|
plainDBox = 2, |
|
altDBoxProc = 3, |
|
noGrowDocProc = 4, |
|
movableDBoxProc = 5, |
|
zoomDocProc = 8, |
|
zoomNoGrow = 12, /* floating window defproc ids */ |
|
floatProc = 1985, |
|
floatGrowProc = 1987, |
|
floatZoomProc = 1989, |
|
floatZoomGrowProc = 1991, |
|
floatSideProc = 1993, |
|
floatSideGrowProc = 1995, |
|
floatSideZoomProc = 1997, |
|
floatSideZoomGrowProc = 1999 |
|
}; |
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* The rDocProc (rounded WDEF, ala calculator) is not supported in Carbon.*/ |
|
enum { |
|
rDocProc = 16 |
|
}; |
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
enum { |
|
/* Resource IDs for theme-savvy window defprocs */ |
|
kWindowDocumentDefProcResID = 64, |
|
kWindowDialogDefProcResID = 65, |
|
kWindowUtilityDefProcResID = 66, |
|
kWindowUtilitySideTitleDefProcResID = 67, |
|
kWindowSheetDefProcResID = 68, |
|
kWindowSimpleDefProcResID = 69, |
|
kWindowSheetAlertDefProcResID = 70 |
|
}; |
|
|
|
enum { |
|
/* Proc IDs for theme-savvy windows */ |
|
kWindowDocumentProc = 1024, |
|
kWindowGrowDocumentProc = 1025, |
|
kWindowVertZoomDocumentProc = 1026, |
|
kWindowVertZoomGrowDocumentProc = 1027, |
|
kWindowHorizZoomDocumentProc = 1028, |
|
kWindowHorizZoomGrowDocumentProc = 1029, |
|
kWindowFullZoomDocumentProc = 1030, |
|
kWindowFullZoomGrowDocumentProc = 1031 |
|
}; |
|
|
|
|
|
enum { |
|
/* Proc IDs for theme-savvy dialogs */ |
|
kWindowPlainDialogProc = 1040, |
|
kWindowShadowDialogProc = 1041, |
|
kWindowModalDialogProc = 1042, |
|
kWindowMovableModalDialogProc = 1043, |
|
kWindowAlertProc = 1044, |
|
kWindowMovableAlertProc = 1045 |
|
}; |
|
|
|
|
|
enum { |
|
/* procIDs available from Mac OS 8.1 (Appearance 1.0.1) forward */ |
|
kWindowMovableModalGrowProc = 1046 |
|
}; |
|
|
|
|
|
enum { |
|
/* Proc IDs for top title bar theme-savvy floating windows */ |
|
kWindowFloatProc = 1057, |
|
kWindowFloatGrowProc = 1059, |
|
kWindowFloatVertZoomProc = 1061, |
|
kWindowFloatVertZoomGrowProc = 1063, |
|
kWindowFloatHorizZoomProc = 1065, |
|
kWindowFloatHorizZoomGrowProc = 1067, |
|
kWindowFloatFullZoomProc = 1069, |
|
kWindowFloatFullZoomGrowProc = 1071 |
|
}; |
|
|
|
|
|
enum { |
|
/* Proc IDs for side title bar theme-savvy floating windows */ |
|
kWindowFloatSideProc = 1073, |
|
kWindowFloatSideGrowProc = 1075, |
|
kWindowFloatSideVertZoomProc = 1077, |
|
kWindowFloatSideVertZoomGrowProc = 1079, |
|
kWindowFloatSideHorizZoomProc = 1081, |
|
kWindowFloatSideHorizZoomGrowProc = 1083, |
|
kWindowFloatSideFullZoomProc = 1085, |
|
kWindowFloatSideFullZoomGrowProc = 1087 |
|
}; |
|
|
|
|
|
enum { |
|
/* Proc IDs for sheet windows */ |
|
kWindowSheetProc = 1088, /* available in Mac OS X and CarbonLib 1.3 */ |
|
kWindowSheetAlertProc = 1120 /* available in Mac OS X after 1.0, and CarbonLib 1.3 */ |
|
}; |
|
|
|
|
|
|
|
/* |
|
* Discussion: |
|
* Window defproc IDs for simple windows |
|
*/ |
|
enum { |
|
/* Proc IDs for simple windows */ |
|
|
|
/* |
|
* A window that has no structure region; the content covers the |
|
* entire window. |
|
*/ |
|
kWindowSimpleProc = 1104, |
|
|
|
/* |
|
* A window that has a 1-pixel black frame as its structure. |
|
*/ |
|
kWindowSimpleFrameProc = 1105 |
|
}; |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o System 7 Window Positioning Constants */ |
|
/* */ |
|
/* Passed into StandardAlert and used in 'WIND', 'DLOG', and 'ALRT' templates */ |
|
/* StandardAlert uses zero to specify the default position. Other calls use zero to */ |
|
/* specify "no position". Do not pass these constants to RepositionWindow. Do not */ |
|
/* store these constants in the BasicWindowDescription of a 'wind' resource. */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
|
|
enum { |
|
kWindowNoPosition = 0x0000, |
|
kWindowDefaultPosition = 0x0000, /* used by StandardAlert*/ |
|
kWindowCenterMainScreen = 0x280A, |
|
kWindowAlertPositionMainScreen = 0x300A, |
|
kWindowStaggerMainScreen = 0x380A, |
|
kWindowCenterParentWindow = 0xA80A, |
|
kWindowAlertPositionParentWindow = 0xB00A, |
|
kWindowStaggerParentWindow = 0xB80A, |
|
kWindowCenterParentWindowScreen = 0x680A, |
|
kWindowAlertPositionParentWindowScreen = 0x700A, |
|
kWindowStaggerParentWindowScreen = 0x780A |
|
}; |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Positioning Methods */ |
|
/* */ |
|
/* Positioning methods passed to RepositionWindow. */ |
|
/* Do not use them in WIND, ALRT, DLOG templates. */ |
|
/* Do not confuse these constants with the constants above */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
|
|
/* |
|
* WindowPositionMethod |
|
* |
|
* Summary: |
|
* Positioning methods usable with RepositionWindow. |
|
* |
|
* Discussion: |
|
* These constants are for use solely with the RepositionWindow API. |
|
* They should not be used in 'WIND', 'ALRT', or 'DLOG' resources. |
|
*/ |
|
typedef UInt32 WindowPositionMethod; |
|
enum { |
|
|
|
/* |
|
* Centers the window on the main screen. |
|
*/ |
|
kWindowCenterOnMainScreen = 1, |
|
|
|
/* |
|
* Centers the window on its parent window. |
|
*/ |
|
kWindowCenterOnParentWindow = 2, |
|
|
|
/* |
|
* Centers the window on the screen containing the largest portion of |
|
* its parent window. |
|
*/ |
|
kWindowCenterOnParentWindowScreen = 3, |
|
|
|
/* |
|
* Cascades the window on the main screen. |
|
*/ |
|
kWindowCascadeOnMainScreen = 4, |
|
|
|
/* |
|
* Cascades the window on its parent window. |
|
*/ |
|
kWindowCascadeOnParentWindow = 5, |
|
|
|
/* |
|
* Cascades the window on the screen containing the largest portion |
|
* of its parent window. |
|
*/ |
|
kWindowCascadeOnParentWindowScreen = 6, |
|
|
|
/* |
|
* Cascades the window on the screen containing the largest portion |
|
* of its parent window, starting below and to the right of its |
|
* parent window. Available in Mac OS X after version 10.1.x and |
|
* CarbonLib after 1.5. |
|
*/ |
|
kWindowCascadeStartAtParentWindowScreen = 10, |
|
|
|
/* |
|
* Puts the window into the alert position on the main screen. |
|
*/ |
|
kWindowAlertPositionOnMainScreen = 7, |
|
|
|
/* |
|
* Puts the window into the alert position on its parent window. |
|
*/ |
|
kWindowAlertPositionOnParentWindow = 8, |
|
|
|
/* |
|
* Puts the window into the alert position on the screen containing |
|
* the largest portion of its parent window. |
|
*/ |
|
kWindowAlertPositionOnParentWindowScreen = 9 |
|
}; |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o GetWindowRegion Types */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
typedef UInt16 WindowRegionCode; |
|
enum { |
|
/* Region values to pass into GetWindowRegion & GetWindowBounds. All regions are reported in global coordinates. */ |
|
kWindowTitleBarRgn = 0, |
|
kWindowTitleTextRgn = 1, |
|
kWindowCloseBoxRgn = 2, |
|
kWindowZoomBoxRgn = 3, |
|
kWindowDragRgn = 5, |
|
kWindowGrowRgn = 6, |
|
kWindowCollapseBoxRgn = 7, |
|
kWindowTitleProxyIconRgn = 8, /* Mac OS 8.5 forward*/ |
|
kWindowStructureRgn = 32, |
|
kWindowContentRgn = 33, /* Content area of the window; empty when the window is collapsed*/ |
|
kWindowUpdateRgn = 34, /* Carbon forward*/ |
|
kWindowOpaqueRgn = 35, /* Mac OS X: Area of window considered to be opaque. Only valid for windows with alpha channels.*/ |
|
kWindowGlobalPortRgn = 40 /* Carbon forward - bounds of the window's port in global coordinates; not affected by CollapseWindow*/ |
|
}; |
|
|
|
/* GetWindowRegionRec - a pointer to this is passed in WDEF param for kWindowMsgGetRegion*/ |
|
struct GetWindowRegionRec { |
|
RgnHandle winRgn; |
|
WindowRegionCode regionCode; |
|
}; |
|
typedef struct GetWindowRegionRec GetWindowRegionRec; |
|
typedef GetWindowRegionRec * GetWindowRegionPtr; |
|
typedef GetWindowRegionRec * GetWindowRegionRecPtr; |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o WDEF Message Types */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
SetupWindowProxyDragImageRec - setup the proxy icon drag image |
|
Both regions are allocated and disposed by the Window Manager. |
|
The GWorld is disposed of by the Window Manager, but the WDEF must allocate |
|
it. See Technote on Drag Manager 1.1 additions for more information and sample code for |
|
setting up drag images. |
|
*/ |
|
|
|
struct SetupWindowProxyDragImageRec { |
|
GWorldPtr imageGWorld; /* locked GWorld containing the drag image - output - can be NULL*/ |
|
RgnHandle imageRgn; /* image clip region, contains the portion of the image which gets blitted to screen - preallocated output - if imageGWorld is NULL, this is ignored*/ |
|
RgnHandle outlineRgn; /* the outline region used on shallow monitors - preallocated output - must always be non-empty*/ |
|
}; |
|
typedef struct SetupWindowProxyDragImageRec SetupWindowProxyDragImageRec; |
|
/* MeasureWindowTitleRec - a pointer to this is passed in WDEF param for kWindowMsgMeasureTitle*/ |
|
struct MeasureWindowTitleRec { |
|
/* output parameters (filled in by the WDEF)*/ |
|
SInt16 fullTitleWidth; /* text + proxy icon width*/ |
|
SInt16 titleTextWidth; /* text width*/ |
|
}; |
|
typedef struct MeasureWindowTitleRec MeasureWindowTitleRec; |
|
typedef MeasureWindowTitleRec * MeasureWindowTitleRecPtr; |
|
/* |
|
GetGrowImageRegionRec - generate a region to be xored during GrowWindow and ResizeWindow. |
|
This is passed along with a kWindowMsgGetGrowImageRegion message. On input, the growRect |
|
parameter is the window's new bounds in global coordinates. The growImageRegion parameter |
|
will be allocated and disposed automatically; the window definition should alter the |
|
region appropriately. |
|
*/ |
|
struct GetGrowImageRegionRec { |
|
Rect growRect; |
|
RgnHandle growImageRegion; |
|
}; |
|
typedef struct GetGrowImageRegionRec GetGrowImageRegionRec; |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Standard Window Kinds */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
enum { |
|
dialogKind = 2, |
|
userKind = 8, |
|
kDialogWindowKind = 2, |
|
kApplicationWindowKind = 8 |
|
}; |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o FindWindow Result Codes */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
typedef SInt16 WindowPartCode; |
|
enum { |
|
inDesk = 0, |
|
inNoWindow = 0, |
|
inMenuBar = 1, |
|
inSysWindow = 2, |
|
inContent = 3, |
|
inDrag = 4, |
|
inGrow = 5, |
|
inGoAway = 6, |
|
inZoomIn = 7, |
|
inZoomOut = 8, |
|
inCollapseBox = 11, /* Mac OS 8.0 forward*/ |
|
inProxyIcon = 12, /* Mac OS 8.5 forward*/ |
|
inToolbarButton = 13, /* Mac OS X forward*/ |
|
inStructure = 15 /* Mac OS X 10.1 forward*/ |
|
}; |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Definition Hit Test Result Codes */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
typedef SInt16 WindowDefPartCode; |
|
enum { |
|
wNoHit = 0, |
|
wInContent = 1, |
|
wInDrag = 2, |
|
wInGrow = 3, |
|
wInGoAway = 4, |
|
wInZoomIn = 5, |
|
wInZoomOut = 6, |
|
wInCollapseBox = 9, /* Mac OS 8.0 forward*/ |
|
wInProxyIcon = 10, /* Mac OS 8.5 forward*/ |
|
wInToolbarButton = 11, /* Mac OS X forward*/ |
|
wInStructure = 13 /* Mac OS X 10.1 forward*/ |
|
}; |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Definition Messages */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
|
|
enum { |
|
kWindowMsgDraw = 0, |
|
kWindowMsgHitTest = 1, |
|
kWindowMsgCalculateShape = 2, |
|
kWindowMsgInitialize = 3, |
|
kWindowMsgCleanUp = 4, |
|
kWindowMsgDrawGrowOutline = 5, |
|
kWindowMsgDrawGrowBox = 6 |
|
}; |
|
|
|
/* Messages available from Mac OS 8.0 forward*/ |
|
enum { |
|
kWindowMsgGetFeatures = 7, |
|
kWindowMsgGetRegion = 8 |
|
}; |
|
|
|
/* Messages available from Mac OS 8.5 forward*/ |
|
enum { |
|
kWindowMsgDragHilite = 9, /* parameter boolean indicating on or off*/ |
|
kWindowMsgModified = 10, /* parameter boolean indicating saved (false) or modified (true)*/ |
|
kWindowMsgDrawInCurrentPort = 11, /* same as kWindowMsgDraw, but must draw in current port*/ |
|
kWindowMsgSetupProxyDragImage = 12, /* parameter pointer to SetupWindowProxyDragImageRec*/ |
|
kWindowMsgStateChanged = 13, /* something about the window's state has changed*/ |
|
kWindowMsgMeasureTitle = 14 /* measure and return the ideal title width*/ |
|
}; |
|
|
|
/* Messages only available in Carbon*/ |
|
enum { |
|
kWindowMsgGetGrowImageRegion = 19 /* get region to xor during grow/resize. parameter pointer to GetGrowImageRegionRec.*/ |
|
}; |
|
|
|
/* old names*/ |
|
enum { |
|
wDraw = 0, |
|
wHit = 1, |
|
wCalcRgns = 2, |
|
wNew = 3, |
|
wDispose = 4, |
|
wGrow = 5, |
|
wDrawGIcon = 6 |
|
}; |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o State-changed Flags for kWindowMsgStateChanged */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
enum { |
|
kWindowStateTitleChanged = (1 << 0) |
|
}; |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Feature Bits */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
enum { |
|
kWindowCanGrow = (1 << 0), |
|
kWindowCanZoom = (1 << 1), |
|
kWindowCanCollapse = (1 << 2), |
|
kWindowIsModal = (1 << 3), |
|
kWindowCanGetWindowRegion = (1 << 4), |
|
kWindowIsAlert = (1 << 5), |
|
kWindowHasTitleBar = (1 << 6) |
|
}; |
|
|
|
/* Feature bits available from Mac OS 8.5 forward*/ |
|
enum { |
|
kWindowSupportsDragHilite = (1 << 7), /* window definition supports kWindowMsgDragHilite*/ |
|
kWindowSupportsModifiedBit = (1 << 8), /* window definition supports kWindowMsgModified*/ |
|
kWindowCanDrawInCurrentPort = (1 << 9), /* window definition supports kWindowMsgDrawInCurrentPort*/ |
|
kWindowCanSetupProxyDragImage = (1 << 10), /* window definition supports kWindowMsgSetupProxyDragImage*/ |
|
kWindowCanMeasureTitle = (1 << 11), /* window definition supports kWindowMsgMeasureTitle*/ |
|
kWindowWantsDisposeAtProcessDeath = (1 << 12), /* window definition wants a Dispose message for windows still extant during ExitToShell*/ |
|
kWindowSupportsGetGrowImageRegion = (1 << 13), /* window definition will calculate the grow image region manually.*/ |
|
kWindowDefSupportsColorGrafPort = 0x40000002 |
|
}; |
|
|
|
/* Feature bits for post MacOS 10.0*/ |
|
enum { |
|
kWindowIsOpaque = (1 << 14) /* Window doesn't need an alpha channel. Saves memory.*/ |
|
}; |
|
|
|
/* |
|
THIS CONSTANT IS GOING AWAY. IT IS NAMED INCORRECTLY. USE THE GETGROWIMAGE CONSTANT ABOVE INSTEAD. |
|
DO YOU HEAR ME! AM I YELLING LOUD ENOUGH?! |
|
*/ |
|
enum { |
|
kWindowSupportsSetGrowImageRegion = (1 << 13) |
|
}; |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Desktop Pattern Resource ID */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
enum { |
|
deskPatID = 16 |
|
}; |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Color Part Codes */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
enum { |
|
wContentColor = 0, |
|
wFrameColor = 1, |
|
wTextColor = 2, |
|
wHiliteColor = 3, |
|
wTitleBarColor = 4 |
|
}; |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Region Dragging Constants */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
|
|
enum { |
|
kMouseUpOutOfSlop = (long)0x80008000 |
|
}; |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Color Table */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
struct WinCTab { |
|
long wCSeed; /* reserved */ |
|
short wCReserved; /* reserved */ |
|
short ctSize; /* usually 4 for windows */ |
|
ColorSpec ctTable[5]; |
|
}; |
|
typedef struct WinCTab WinCTab; |
|
typedef WinCTab * WCTabPtr; |
|
typedef WCTabPtr * WCTabHandle; |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o WindowRecord */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
#if !OPAQUE_TOOLBOX_STRUCTS |
|
typedef struct WindowRecord WindowRecord; |
|
typedef WindowRecord * WindowPeek; |
|
struct WindowRecord { |
|
GrafPort port; /* in Carbon use GetWindowPort*/ |
|
short windowKind; /* in Carbon use Get/SetWindowKind*/ |
|
Boolean visible; /* in Carbon use Hide/ShowWindow, ShowHide, IsWindowVisible*/ |
|
Boolean hilited; /* in Carbon use HiliteWindow, IsWindowHilited*/ |
|
Boolean goAwayFlag; /* in Carbon use ChangeWindowAttributes*/ |
|
Boolean spareFlag; /* in Carbon use ChangeWindowAttributes*/ |
|
RgnHandle strucRgn; /* in Carbon use GetWindowRegion*/ |
|
RgnHandle contRgn; /* in Carbon use GetWindowRegion*/ |
|
RgnHandle updateRgn; /* in Carbon use GetWindowRegion*/ |
|
Handle windowDefProc; /* not supported in Carbon */ |
|
Handle dataHandle; /* not supported in Carbon */ |
|
StringHandle titleHandle; /* in Carbon use Get/SetWTitle */ |
|
short titleWidth; /* in Carbon use GetWindowRegion */ |
|
Handle controlList; /* in Carbon use GetRootControl */ |
|
WindowPeek nextWindow; /* in Carbon use GetNextWindow */ |
|
PicHandle windowPic; /* in Carbon use Get/SetWindowPic */ |
|
long refCon; /* in Carbon use Get/SetWRefCon*/ |
|
}; |
|
|
|
#endif /* !OPAQUE_TOOLBOX_STRUCTS */ |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Color WindowRecord */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
#if !OPAQUE_TOOLBOX_STRUCTS |
|
typedef struct CWindowRecord CWindowRecord; |
|
typedef CWindowRecord * CWindowPeek; |
|
struct CWindowRecord { |
|
CGrafPort port; /* in Carbon use GetWindowPort*/ |
|
short windowKind; /* in Carbon use Get/SetWindowKind */ |
|
Boolean visible; /* in Carbon use Hide/ShowWindow, ShowHide, IsWindowVisible */ |
|
Boolean hilited; /* in Carbon use HiliteWindow, IsWindowHilited*/ |
|
Boolean goAwayFlag; /* in Carbon use ChangeWindowAttributes */ |
|
Boolean spareFlag; /* in Carbon use ChangeWindowAttributes */ |
|
RgnHandle strucRgn; /* in Carbon use GetWindowRegion */ |
|
RgnHandle contRgn; /* in Carbon use GetWindowRegion */ |
|
RgnHandle updateRgn; /* in Carbon use GetWindowRegion */ |
|
Handle windowDefProc; /* not supported in Carbon */ |
|
Handle dataHandle; /* not supported in Carbon */ |
|
StringHandle titleHandle; /* in Carbon use Get/SetWTitle */ |
|
short titleWidth; /* in Carbon use GetWindowRegion */ |
|
Handle controlList; /* in Carbon use GetRootControl */ |
|
CWindowPeek nextWindow; /* in Carbon use GetNextWindow */ |
|
PicHandle windowPic; /* in Carbon use Get/SetWindowPic */ |
|
long refCon; /* in Carbon use Get/SetWRefCon */ |
|
}; |
|
|
|
#endif /* !OPAQUE_TOOLBOX_STRUCTS */ |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o AuxWinHandle */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
#if !OPAQUE_TOOLBOX_STRUCTS |
|
typedef struct AuxWinRec AuxWinRec; |
|
typedef AuxWinRec * AuxWinPtr; |
|
typedef AuxWinPtr * AuxWinHandle; |
|
struct AuxWinRec { |
|
AuxWinHandle awNext; /* handle to next AuxWinRec, not supported in Carbon*/ |
|
WindowRef awOwner; /* not supported in Carbon*/ |
|
CTabHandle awCTable; /* color table for this window, use Get/SetWindowContentColor in Carbon*/ |
|
Handle reserved; /* not supported in Carbon*/ |
|
long awFlags; /* reserved for expansion, not supported in Carbon*/ |
|
CTabHandle awReserved; /* reserved for expansion, not supported in Carbon*/ |
|
long awRefCon; /* user constant, in Carbon use Get/SetWindowProperty if you need more refCons*/ |
|
}; |
|
|
|
#endif /* !OPAQUE_TOOLBOX_STRUCTS */ |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o BasicWindowDescription */ |
|
/* */ |
|
/* Contains statically-sized basic attributes of the window, for storage in a */ |
|
/* collection item. */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* constants for the version field*/ |
|
enum { |
|
kWindowDefinitionVersionOne = 1, |
|
kWindowDefinitionVersionTwo = 2 |
|
}; |
|
|
|
/* constants for the stateflags bit field */ |
|
enum { |
|
kWindowIsCollapsedState = (1 << 0L) |
|
}; |
|
|
|
struct BasicWindowDescription { |
|
UInt32 descriptionSize; /* sizeof(BasicWindowDescription)*/ |
|
|
|
Rect windowContentRect; /* location on screen*/ |
|
Rect windowZoomRect; /* location on screen when zoomed out*/ |
|
UInt32 windowRefCon; /* the refcon - __avoid saving stale pointers here__ */ |
|
UInt32 windowStateFlags; /* window state bit flags*/ |
|
WindowPositionMethod windowPositionMethod; /* method last used by RepositionWindow to position the window (if any)*/ |
|
|
|
UInt32 windowDefinitionVersion; |
|
union { |
|
struct { |
|
SInt16 windowDefProc; /* defProc and variant*/ |
|
Boolean windowHasCloseBox; |
|
} versionOne; |
|
|
|
struct { |
|
WindowClass windowClass; /* the class*/ |
|
WindowAttributes windowAttributes; /* the attributes*/ |
|
} versionTwo; |
|
|
|
} windowDefinition; |
|
}; |
|
typedef struct BasicWindowDescription BasicWindowDescription; |
|
/* the window manager stores the default collection items using these IDs*/ |
|
enum { |
|
kStoredWindowSystemTag = FOUR_CHAR_CODE('appl'), /* Only Apple collection items will be of this tag*/ |
|
kStoredBasicWindowDescriptionID = FOUR_CHAR_CODE('sbas'), /* BasicWindowDescription*/ |
|
kStoredWindowPascalTitleID = FOUR_CHAR_CODE('s255') /* pascal title string*/ |
|
}; |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Class Ordering */ |
|
/* */ |
|
/* Special cases for the "behind" parameter in window creation calls. */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
#define kFirstWindowOfClass ((WindowRef)(-1)) |
|
#define kLastWindowOfClass ((WindowRef)0) |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Zoom Information Handle */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
struct WStateData { |
|
Rect userState; /*user zoom state*/ |
|
Rect stdState; /*standard zoom state*/ |
|
}; |
|
typedef struct WStateData WStateData; |
|
typedef WStateData * WStateDataPtr; |
|
typedef WStateDataPtr * WStateDataHandle; |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o MixedMode & ProcPtrs */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
typedef CALLBACK_API( long , WindowDefProcPtr )(short varCode, WindowRef window, short message, long param); |
|
typedef CALLBACK_API_REGISTER68K( void , DeskHookProcPtr, (Boolean mouseClick, EventRecord *theEvent) ); |
|
typedef CALLBACK_API( OSStatus , WindowPaintProcPtr )(GDHandle device, GrafPtr qdContext, WindowRef window, RgnHandle inClientPaintRgn, RgnHandle outSystemPaintRgn, void *refCon); |
|
typedef STACK_UPP_TYPE(WindowDefProcPtr) WindowDefUPP; |
|
typedef REGISTER_UPP_TYPE(DeskHookProcPtr) DeskHookUPP; |
|
typedef STACK_UPP_TYPE(WindowPaintProcPtr) WindowPaintUPP; |
|
/* |
|
* NewWindowDefUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( WindowDefUPP ) |
|
NewWindowDefUPP(WindowDefProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppWindowDefProcInfo = 0x00003BB0 }; /* pascal 4_bytes Func(2_bytes, 4_bytes, 2_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(WindowDefUPP) NewWindowDefUPP(WindowDefProcPtr userRoutine) { return (WindowDefUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppWindowDefProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewWindowDefUPP(userRoutine) (WindowDefUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppWindowDefProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* NewDeskHookUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( DeskHookUPP ) |
|
NewDeskHookUPP(DeskHookProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppDeskHookProcInfo = 0x00130802 }; /* register no_return_value Func(1_byte:D0, 4_bytes:A0) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(DeskHookUPP) NewDeskHookUPP(DeskHookProcPtr userRoutine) { return (DeskHookUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDeskHookProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewDeskHookUPP(userRoutine) (DeskHookUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDeskHookProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* NewWindowPaintUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( WindowPaintUPP ) |
|
NewWindowPaintUPP(WindowPaintProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppWindowPaintProcInfo = 0x0003FFF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(WindowPaintUPP) NewWindowPaintUPP(WindowPaintProcPtr userRoutine) { return (WindowPaintUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppWindowPaintProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewWindowPaintUPP(userRoutine) (WindowPaintUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppWindowPaintProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeWindowDefUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeWindowDefUPP(WindowDefUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeWindowDefUPP(WindowDefUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeWindowDefUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* DisposeDeskHookUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeDeskHookUPP(DeskHookUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeDeskHookUPP(DeskHookUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeDeskHookUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* DisposeWindowPaintUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeWindowPaintUPP(WindowPaintUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeWindowPaintUPP(WindowPaintUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeWindowPaintUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeWindowDefUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( long ) |
|
InvokeWindowDefUPP( |
|
short varCode, |
|
WindowRef window, |
|
short message, |
|
long param, |
|
WindowDefUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(long) InvokeWindowDefUPP(short varCode, WindowRef window, short message, long param, WindowDefUPP userUPP) { return (long)CALL_FOUR_PARAMETER_UPP(userUPP, uppWindowDefProcInfo, varCode, window, message, param); } |
|
#else |
|
#define InvokeWindowDefUPP(varCode, window, message, param, userUPP) (long)CALL_FOUR_PARAMETER_UPP((userUPP), uppWindowDefProcInfo, (varCode), (window), (message), (param)) |
|
#endif |
|
#endif |
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* InvokeDeskHookUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM |
|
#pragma parameter InvokeDeskHookUPP(__D0, __A0, __A1) |
|
#endif |
|
EXTERN_API_C( void ) |
|
InvokeDeskHookUPP( |
|
Boolean mouseClick, |
|
EventRecord * theEvent, |
|
DeskHookUPP userUPP) ONEWORDINLINE(0x4E91); |
|
#if !OPAQUE_UPP_TYPES && (!TARGET_OS_MAC || !TARGET_CPU_68K || TARGET_RT_MAC_CFM) |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) InvokeDeskHookUPP(Boolean mouseClick, EventRecord * theEvent, DeskHookUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppDeskHookProcInfo, mouseClick, theEvent); } |
|
#else |
|
#define InvokeDeskHookUPP(mouseClick, theEvent, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppDeskHookProcInfo, (mouseClick), (theEvent)) |
|
#endif |
|
#endif |
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* InvokeWindowPaintUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
InvokeWindowPaintUPP( |
|
GDHandle device, |
|
GrafPtr qdContext, |
|
WindowRef window, |
|
RgnHandle inClientPaintRgn, |
|
RgnHandle outSystemPaintRgn, |
|
void * refCon, |
|
WindowPaintUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(OSStatus) InvokeWindowPaintUPP(GDHandle device, GrafPtr qdContext, WindowRef window, RgnHandle inClientPaintRgn, RgnHandle outSystemPaintRgn, void * refCon, WindowPaintUPP userUPP) { return (OSStatus)CALL_SIX_PARAMETER_UPP(userUPP, uppWindowPaintProcInfo, device, qdContext, window, inClientPaintRgn, outSystemPaintRgn, refCon); } |
|
#else |
|
#define InvokeWindowPaintUPP(device, qdContext, window, inClientPaintRgn, outSystemPaintRgn, refCon, userUPP) (OSStatus)CALL_SIX_PARAMETER_UPP((userUPP), uppWindowPaintProcInfo, (device), (qdContext), (window), (inClientPaintRgn), (outSystemPaintRgn), (refCon)) |
|
#endif |
|
#endif |
|
|
|
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES |
|
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ |
|
#define NewWindowDefProc(userRoutine) NewWindowDefUPP(userRoutine) |
|
#define NewDeskHookProc(userRoutine) NewDeskHookUPP(userRoutine) |
|
#define NewWindowPaintProc(userRoutine) NewWindowPaintUPP(userRoutine) |
|
#define CallWindowDefProc(userRoutine, varCode, window, message, param) InvokeWindowDefUPP(varCode, window, message, param, userRoutine) |
|
#define CallDeskHookProc(userRoutine, mouseClick, theEvent) InvokeDeskHookUPP(mouseClick, theEvent, userRoutine) |
|
#define CallWindowPaintProc(userRoutine, device, qdContext, window, inClientPaintRgn, outSystemPaintRgn, refCon) InvokeWindowPaintUPP(device, qdContext, window, inClientPaintRgn, outSystemPaintRgn, refCon, userRoutine) |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Definition Spec. Used in Carbon to specify the code that defines a window. */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
enum { |
|
kWindowDefProcPtr = 0, /* raw proc-ptr based access*/ |
|
kWindowDefObjectClass = 1, /* event-based definition (Carbon 1.1 or later)*/ |
|
kWindowDefProcID = 2, /* explicit proc ID; overrides the window class default proc ID*/ |
|
kWindowDefHIView = 3 /* this window uses a view as its frame, not a WDEF*/ |
|
}; |
|
|
|
typedef UInt32 WindowDefType; |
|
struct WindowDefSpec { |
|
WindowDefType defType; |
|
union { |
|
WindowDefUPP defProc; |
|
void * classRef; |
|
short procID; |
|
void * rootView; /* ControlRef*/ |
|
} u; |
|
}; |
|
typedef struct WindowDefSpec WindowDefSpec; |
|
typedef WindowDefSpec * WindowDefSpecPtr; |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Creation & Persistence */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
* GetNewCWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( WindowRef ) |
|
GetNewCWindow( |
|
short windowID, |
|
void * wStorage, |
|
WindowRef behind) ONEWORDINLINE(0xAA46); |
|
|
|
|
|
/* |
|
* NewWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( WindowRef ) |
|
NewWindow( |
|
void * wStorage, |
|
const Rect * boundsRect, |
|
ConstStr255Param title, |
|
Boolean visible, |
|
short theProc, |
|
WindowRef behind, |
|
Boolean goAwayFlag, |
|
long refCon) ONEWORDINLINE(0xA913); |
|
|
|
|
|
/* |
|
* GetNewWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( WindowRef ) |
|
GetNewWindow( |
|
short windowID, |
|
void * wStorage, |
|
WindowRef behind) ONEWORDINLINE(0xA9BD); |
|
|
|
|
|
/* |
|
* NewCWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( WindowRef ) |
|
NewCWindow( |
|
void * wStorage, |
|
const Rect * boundsRect, |
|
ConstStr255Param title, |
|
Boolean visible, |
|
short procID, |
|
WindowRef behind, |
|
Boolean goAwayFlag, |
|
long refCon) ONEWORDINLINE(0xAA45); |
|
|
|
|
|
/* |
|
* DisposeWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
DisposeWindow(WindowRef window) ONEWORDINLINE(0xA914); |
|
|
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* [Mac]CloseWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
#if TARGET_OS_MAC |
|
#define MacCloseWindow CloseWindow |
|
#endif |
|
EXTERN_API( void ) |
|
MacCloseWindow(WindowRef window) ONEWORDINLINE(0xA92D); |
|
|
|
|
|
|
|
/* |
|
Routines available from Mac OS 8.5 forward |
|
or from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward |
|
*/ |
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* CreateNewWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
CreateNewWindow( |
|
WindowClass windowClass, |
|
WindowAttributes attributes, |
|
const Rect * contentBounds, |
|
WindowRef * outWindow); |
|
|
|
|
|
/* Routines available from Mac OS 8.5 forward*/ |
|
|
|
/* Create a window from a 'wind' resource*/ |
|
/* |
|
* CreateWindowFromResource() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
CreateWindowFromResource( |
|
SInt16 resID, |
|
WindowRef * outWindow); |
|
|
|
|
|
/* window persistence*/ |
|
/* |
|
* StoreWindowIntoCollection() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
StoreWindowIntoCollection( |
|
WindowRef window, |
|
Collection collection); |
|
|
|
|
|
/* |
|
* CreateWindowFromCollection() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
CreateWindowFromCollection( |
|
Collection collection, |
|
WindowRef * outWindow); |
|
|
|
|
|
/* window refcounting*/ |
|
/* |
|
* GetWindowOwnerCount() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowOwnerCount( |
|
WindowRef window, |
|
UInt32 * outCount); |
|
|
|
|
|
/* |
|
* CloneWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
CloneWindow(WindowRef window); |
|
|
|
|
|
/* |
|
* GetWindowRetainCount() |
|
* |
|
* Summary: |
|
* Returns the retain count of a window. |
|
* |
|
* Discussion: |
|
* This API is equivalent to GetWindowOwnerCount. For consistency |
|
* with CoreFoundation and Carbon Events, it is preferred over |
|
* GetWindowOwnerCount. Both APIs will continue to be supported. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose retain count to retrieve. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ItemCount ) |
|
GetWindowRetainCount(WindowRef inWindow); |
|
|
|
|
|
/* |
|
* RetainWindow() |
|
* |
|
* Summary: |
|
* Increments the retain count of a window. |
|
* |
|
* Discussion: |
|
* This API is equivalent to CloneWindow. For consistency with |
|
* CoreFoundation and Carbon Events, it is preferred over |
|
* CloneWindow. Both APIs will continue to be supported. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose retain count to increment. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
RetainWindow(WindowRef inWindow); |
|
|
|
|
|
/* |
|
* ReleaseWindow() |
|
* |
|
* Summary: |
|
* Decrements the retain count of a window, and destroys the window |
|
* if the retain count falls to zero. |
|
* |
|
* Discussion: |
|
* This API is equivalent to DisposeWindow. For consistency with |
|
* CoreFoundation and Carbon Events, it is preferred over |
|
* DisposeWindow. Both APIs will continue to be supported. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose retain count to decrement. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ReleaseWindow(WindowRef inWindow); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Custom Windows */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* Routines available from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward*/ |
|
|
|
/* |
|
* CreateCustomWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
CreateCustomWindow( |
|
const WindowDefSpec * def, |
|
WindowClass windowClass, |
|
WindowAttributes attributes, |
|
const Rect * contentBounds, |
|
WindowRef * outWindow); |
|
|
|
|
|
/* |
|
* ReshapeCustomWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ReshapeCustomWindow(WindowRef window); |
|
|
|
|
|
/* |
|
* RegisterWindowDefinition() |
|
* |
|
* Summary: |
|
* Registers or unregisters a binding between a resource ID and a |
|
* window definition function. |
|
* |
|
* Discussion: |
|
* In the Mac OS 8.x Window Manager, a 'WIND' resource can contain |
|
* an embedded WDEF procID that is used by the Window Manager as the |
|
* resource ID of an 'WDEF' resource to lay out and draw the window. |
|
* The 'WDEF' resource is loaded by the Window Manager when you load |
|
* the menu with GetNewWindow. Since WDEFs can no longer be packaged |
|
* as code resources on Carbon, the procID can no longer refer |
|
* directly to a WDEF resource. However, using |
|
* RegisterWindowDefinition you can instead specify a |
|
* UniversalProcPtr pointing to code in your application code |
|
* fragment. RegisterWindowDefinition is available when linking to |
|
* CarbonLib 1.1 forward. |
|
* |
|
* Parameters: |
|
* |
|
* inResID: |
|
* A WDEF proc ID, as used in a 'WIND' resource. |
|
* |
|
* inDefSpec: |
|
* Specifies the WindowDefUPP that should be used for windows with |
|
* the given WDEF proc ID. Passing NULL allows you to unregister |
|
* the window definition that had been associated with the given |
|
* WDEF proc ID. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
RegisterWindowDefinition( |
|
SInt16 inResID, |
|
const WindowDefSpec * inDefSpec); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window part tracking */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
Routines available from Mac OS 8.5 forward |
|
(or from Mac OS 8.6 forward when linking to CarbonLib 1.1 forward) |
|
*/ |
|
|
|
|
|
/* |
|
* GetWindowWidgetHilite() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowWidgetHilite( |
|
WindowRef inWindow, |
|
WindowDefPartCode * outHilite); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Metainformation Accessors */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
* IsValidWindowClass() |
|
* |
|
* Summary: |
|
* Indicates whether a window class is supported by the Window |
|
* Manager. |
|
* |
|
* Parameters: |
|
* |
|
* inClass: |
|
* The window class. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.5 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
IsValidWindowClass(WindowClass inClass); |
|
|
|
|
|
/* |
|
* GetAvailableWindowAttributes() |
|
* |
|
* Summary: |
|
* Returns the window attributes that are valid for a window class. |
|
* |
|
* Discussion: |
|
* This API is useful because some window classes support different |
|
* attributes on different platforms (for example, floating windows |
|
* can have collapse boxes on 9, but not on X), and the Window |
|
* Manager will return an error if you attempt to create a window |
|
* with attributes that aren't supported for the requested window |
|
* class. You can use this API to remove attributes that are not |
|
* supported by the current platform before calling CreateNewWindow. |
|
* |
|
* Parameters: |
|
* |
|
* inClass: |
|
* The window class. |
|
* |
|
* Result: |
|
* The window attributes that are supported for the specified window |
|
* class. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.5 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API_C( WindowAttributes ) |
|
GetAvailableWindowAttributes(WindowClass inClass); |
|
|
|
|
|
/* |
|
Routines available from Mac OS 8.5 forward |
|
or from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward |
|
*/ |
|
/* |
|
* GetWindowClass() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowClass( |
|
WindowRef window, |
|
WindowClass * outClass); |
|
|
|
|
|
/* |
|
* GetWindowAttributes() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowAttributes( |
|
WindowRef window, |
|
WindowAttributes * outAttributes); |
|
|
|
|
|
/* |
|
Routines available from Mac OS 9.0 forward |
|
or from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward |
|
*/ |
|
/* |
|
* ChangeWindowAttributes() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ChangeWindowAttributes( |
|
WindowRef window, |
|
WindowAttributes setTheseAttributes, |
|
WindowAttributes clearTheseAttributes); |
|
|
|
|
|
/* |
|
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING |
|
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING |
|
|
|
SetWindowClass will disappear in the near future. Instead of SetWindowClass, |
|
you should use SetWindowGroup to move a window into the group of the desired |
|
class. This API is very dangerous in that is actually does change the class |
|
of the window, but class was meant to be an immutable property of the window. |
|
At the very least, this API will be modified to only change the layer of the |
|
window to match the layer that the specified class normally lives in. Consider |
|
yourself warned! |
|
|
|
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING |
|
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING |
|
*/ |
|
/* |
|
* SetWindowClass() |
|
* |
|
* Summary: |
|
* Changes the window class of a window. |
|
* |
|
* Discussion: |
|
* SetWindowClass changes the class of a window. It also changes the |
|
* window's z-order so that it is grouped with other windows of the |
|
* same class. It does not change the visual appearance of the |
|
* window. In CarbonLib, SetWindowClass may not be used to change a |
|
* non-utility window to have utility window class, or to make a |
|
* utility window have non-utility class. SetWindowClass is |
|
* available from CarbonLib 1.1 forward. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose class to change. |
|
* |
|
* inWindowClass: |
|
* The new window class. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowClass( |
|
WindowRef inWindow, |
|
WindowClass inWindowClass); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Modality */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
|
|
/* |
|
* WindowModality |
|
* |
|
*/ |
|
typedef UInt32 WindowModality; |
|
enum { |
|
|
|
/* |
|
* A window does not prevent interaction with any other window in the |
|
* system. |
|
*/ |
|
kWindowModalityNone = 0, |
|
|
|
/* |
|
* A window prevents interaction with all other windows in the |
|
* system. Only available in CarbonLib. Mapped to |
|
* kWindowModalityAppModal in Mac OS X. |
|
*/ |
|
kWindowModalitySystemModal = 1, |
|
|
|
/* |
|
* A window prevents interaction with other windows in the same |
|
* process. |
|
*/ |
|
kWindowModalityAppModal = 2, |
|
|
|
/* |
|
* A window prevents interaction with a single other window. |
|
*/ |
|
kWindowModalityWindowModal = 3 |
|
}; |
|
|
|
|
|
/* |
|
* SetWindowModality() |
|
* |
|
* Summary: |
|
* Sets the modality of a window. |
|
* |
|
* Discussion: |
|
* The modality of a window is used by the Carbon event manager to |
|
* automatically determine appropriate event handling. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose modality to set. |
|
* |
|
* inModalKind: |
|
* The new modality for the window. |
|
* |
|
* inUnavailableWindow: |
|
* If the window is becoming window-modal, this parameter |
|
* specifies the window to which the inWindow parameter is modal. |
|
* The unavailableWindow will not be available while inWindow is |
|
* in window-modal state. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowModality( |
|
WindowRef inWindow, |
|
WindowModality inModalKind, |
|
WindowRef inUnavailableWindow); |
|
|
|
|
|
/* |
|
* GetWindowModality() |
|
* |
|
* Summary: |
|
* Retrieves the modality of a window. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose modality to retrieve. |
|
* |
|
* outModalKind: |
|
* On exit, contains the modality of the window. |
|
* |
|
* outUnavailableWindow: |
|
* On exit, if.the window is window-modal, contains the target |
|
* window of the specified window's modality. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowModality( |
|
WindowRef inWindow, |
|
WindowModality * outModalKind, |
|
WindowRef * outUnavailableWindow); /* can be NULL */ |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Floating Windows */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
Routines available from Mac OS 8.6 forward |
|
or from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward |
|
*/ |
|
|
|
/* |
|
* ShowFloatingWindows() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ShowFloatingWindows(void); |
|
|
|
|
|
/* |
|
* HideFloatingWindows() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
HideFloatingWindows(void); |
|
|
|
|
|
/* |
|
* AreFloatingWindowsVisible() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
AreFloatingWindowsVisible(void); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Groups */ |
|
/* */ |
|
/* The Window Group API allows the creation and management of groups of windows, */ |
|
/* allowing control of the z-order, activation, and positioning of the windows. */ |
|
/* Internally to the Window Manager, each of the standard window tiers (document, */ |
|
/* toolbar, floating, modal, utility, help, and overlay) is implemented as a window */ |
|
/* group; you can access the window group for a class with GetWindowGroupOfClass. */ |
|
/* You can create your own window groups, if you would like your windows to float, */ |
|
/* for example, above the floating window layer but below the modal layer. It is */ |
|
/* also possible to create more complex hierarchical arrangements of window groups. */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
typedef struct OpaqueWindowGroupRef* WindowGroupRef; |
|
/* may be passed as the "behindWindow" parameter to NewCWindow and SendBehind*/ |
|
#define kFirstWindowOfGroup ((WindowRef)(-1)) |
|
#define kLastWindowOfGroup ((WindowRef)NULL) |
|
/* may be passed as the "behindGroup" parameter to SendWindowGroupBehind*/ |
|
#define kFirstWindowGroup ((WindowGroupRef)(-1)) |
|
#define kLastWindowGroup ((WindowGroupRef)NULL) |
|
|
|
/* |
|
* WindowGroupAttributes |
|
* |
|
* Summary: |
|
* These are attributes that may be applied to a window group. |
|
*/ |
|
typedef UInt32 WindowGroupAttributes; |
|
enum { |
|
|
|
/* |
|
* Makes the group behave somewhat as a layer of windows that move |
|
* together. When any window in the group is brought to the front of |
|
* the group, the entire group will also be brought to the front of |
|
* the containing group's child hierarchy. |
|
*/ |
|
kWindowGroupAttrSelectAsLayer = 1 << 0, |
|
|
|
/* |
|
* The positions of the contents of this group with respect to each |
|
* other cannot be changed. When one item moves, all other items are |
|
* moved simultaneously. |
|
*/ |
|
kWindowGroupAttrMoveTogether = 1 << 1, |
|
|
|
/* |
|
* The z-order of the contents of this group with respect to each |
|
* other cannot be changed. When one item changes z-order, all other |
|
* items are moved simulataneously. For purposes of z-ordering, the |
|
* group and all its subgroups are effectively treated as if they |
|
* were a single window in the parent group of this group. |
|
*/ |
|
kWindowGroupAttrLayerTogether = 1 << 2, |
|
|
|
/* |
|
* The active state of the windows in this group is shared. The |
|
* windows in the group are activated or deactivated according to the |
|
* activation scope of the group, but when any window in the group |
|
* changes activation, all other windows change to match. |
|
*/ |
|
kWindowGroupAttrSharedActivation = 1 << 3, |
|
|
|
/* |
|
* When any window in this group is collapsed, all other windows in |
|
* this group are hidden. All subgroups of this group are also |
|
* examined for the HideOnCollapse attribute, and any the windows of |
|
* any subgroup with this attribute are also hidden. All windows will |
|
* be shown again when the collapsed window is expanded. |
|
*/ |
|
kWindowGroupAttrHideOnCollapse = 1 << 4 |
|
}; |
|
|
|
|
|
/* |
|
* WindowActivationScope |
|
* |
|
* Discussion: |
|
* Every window has a WindowActivationScope. It defines how windows |
|
* are activated by the Window Manager with respect to other windows |
|
* in the window's group and in the current process. |
|
*/ |
|
typedef UInt32 WindowActivationScope; |
|
enum { |
|
|
|
/* |
|
* Windows with this scope are never activated by the Window Manager. |
|
* This should be used when the window's visual state does not change |
|
* based on activation (for example, tooltip windows), or when the |
|
* client wishes to manually control all activation. The window owner |
|
* is free to explicitly activate windows using the ActivateWindow |
|
* and DeactivateWindow APIs. |
|
*/ |
|
kWindowActivationScopeNone = 0, |
|
|
|
/* |
|
* Windows with this scope are always active if visible. Windows with |
|
* this scope are unaffected by the activation state of other |
|
* windows. This activation scope is automatically used by floating |
|
* windows. |
|
*/ |
|
kWindowActivationScopeIndependent = 1, |
|
|
|
/* |
|
* Windows with this scope are activated relative to other windows |
|
* with the same scope in the current process. Only one window with |
|
* this scope can be active in the entire process. This activation |
|
* scope is automatically used by document and dialog windows. |
|
*/ |
|
kWindowActivationScopeAll = 2 |
|
}; |
|
|
|
|
|
/* |
|
* Summary: |
|
* These are constants that can be used for the inNextGroup |
|
* parameter to GetSiblingWindowGroup. |
|
*/ |
|
enum { |
|
|
|
/* |
|
* Indicates that GetSiblingWindowGroup should return the next deeper |
|
* sibling group in the z-order. |
|
*/ |
|
kNextWindowGroup = true, |
|
|
|
/* |
|
* Indicates that GetSiblingWindowGroup should return the next higher |
|
* sibling group in the z-order. |
|
*/ |
|
kPreviousWindowGroup = false |
|
}; |
|
|
|
|
|
/* |
|
* WindowGroupContentOptions |
|
* |
|
* Discussion: |
|
* Window group contents options are used to control what group |
|
* content is counted or returned by the CountWindowGroupContents |
|
* and GetWindowGroupContents APIs. |
|
*/ |
|
typedef UInt32 WindowGroupContentOptions; |
|
enum { |
|
|
|
/* |
|
* Indicates that Count/GetWindowGroupContents should return the |
|
* windows in a group. If this option is not set, these APIs return |
|
* the groups in a group. |
|
*/ |
|
kWindowGroupContentsReturnWindows = 1 << 0, |
|
|
|
/* |
|
* Indicates that Count/GetWindowGroupContents should include the |
|
* contents of groups contained by the specified group. If this |
|
* option is not set, these APIs only return information about the |
|
* specified group's contents. |
|
*/ |
|
kWindowGroupContentsRecurse = 1 << 1, |
|
|
|
/* |
|
* Indicates that Count/GetWindowGroupContents should only include |
|
* visible windows. Only valid when kWindowGroupContentsReturnWindows |
|
* is specified. |
|
*/ |
|
kWindowGroupContentsVisible = 1 << 2 |
|
}; |
|
|
|
|
|
/*----------------------------------------------------------------------------------*/ |
|
/* o Group creation, destruction, and refcounting */ |
|
/*----------------------------------------------------------------------------------*/ |
|
/* |
|
* CreateWindowGroup() |
|
* |
|
* Summary: |
|
* Creates a new window group. |
|
* |
|
* Parameters: |
|
* |
|
* inAttributes: |
|
* Attributes for the new window group. |
|
* |
|
* outGroup: |
|
* On exit, contains the new window group. |
|
* |
|
* 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 ) |
|
CreateWindowGroup( |
|
WindowGroupAttributes inAttributes, |
|
WindowGroupRef * outGroup); |
|
|
|
|
|
/* |
|
* RetainWindowGroup() |
|
* |
|
* Summary: |
|
* Increments the refcount of a window group. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose refcount to increment. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
RetainWindowGroup(WindowGroupRef inGroup); |
|
|
|
|
|
/* |
|
* ReleaseWindowGroup() |
|
* |
|
* Summary: |
|
* Releases a refcount on a window group. If the refcount goes to |
|
* zero, the group is destroyed, and a refcount is released from all |
|
* contained objects. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose refcount to decrement. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
ReleaseWindowGroup(WindowGroupRef inGroup); |
|
|
|
|
|
/* |
|
* GetWindowGroupRetainCount() |
|
* |
|
* Summary: |
|
* Returns the refcount of a window group. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose refcount to return. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API_C( ItemCount ) |
|
GetWindowGroupRetainCount(WindowGroupRef inGroup); |
|
|
|
|
|
/* |
|
* GetWindowGroupOfClass() |
|
* |
|
* Summary: |
|
* Gets the window group in which windows of a given class are |
|
* placed. |
|
* |
|
* Discussion: |
|
* The Window Manager uses window groups internally to manage the |
|
* ordering of windows of different classes. In some cases, multiple |
|
* classes are placed within the same group; for example, windows |
|
* from all of the modal and alert window classes are placed into |
|
* the same modal window group. The refcount of the group returned |
|
* by this API is not incremented, and the caller does not need to |
|
* release the reference. |
|
* |
|
* Parameters: |
|
* |
|
* windowClass: |
|
* The class whose window group to retrieve. You may pass |
|
* kAllWindowClasses to retrieve the root window group. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( WindowGroupRef ) |
|
GetWindowGroupOfClass(WindowClass windowClass); |
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------------*/ |
|
/* o.Group name, attributes, and level */ |
|
/*----------------------------------------------------------------------------------*/ |
|
/* |
|
* SetWindowGroupName() |
|
* |
|
* Summary: |
|
* Sets the name of a window group. |
|
* |
|
* Discussion: |
|
* The name of a window group is never displayed to the user. |
|
* However, it is displayed by debugging functions such as |
|
* DebugPrintWindowGroup. This can be very useful when debugging the |
|
* structure of your window groups. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose name to set. |
|
* |
|
* inName: |
|
* The name of the group. |
|
* |
|
* 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 ) |
|
SetWindowGroupName( |
|
WindowGroupRef inGroup, |
|
CFStringRef inName); |
|
|
|
|
|
/* |
|
* CopyWindowGroupName() |
|
* |
|
* Summary: |
|
* Returns a copy of the name of a window group. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose name to retrieve. |
|
* |
|
* outName: |
|
* On exit, contains the name of the group. It is the caller's |
|
* responsibility to release the name. |
|
* |
|
* 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 ) |
|
CopyWindowGroupName( |
|
WindowGroupRef inGroup, |
|
CFStringRef * outName); |
|
|
|
|
|
/* |
|
* GetWindowGroupAttributes() |
|
* |
|
* Summary: |
|
* Retrieves the attributes of a window group. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose attributes to retrieve. |
|
* |
|
* outAttributes: |
|
* On exit, the group's attributes. |
|
* |
|
* 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 ) |
|
GetWindowGroupAttributes( |
|
WindowGroupRef inGroup, |
|
WindowGroupAttributes * outAttributes); |
|
|
|
|
|
/* |
|
* ChangeWindowGroupAttributes() |
|
* |
|
* Summary: |
|
* Changes the attributes of a window group. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose attributes to change. |
|
* |
|
* setTheseAttributes: |
|
* The attributes to set. |
|
* |
|
* clearTheseAttributes: |
|
* The attributes to clear. |
|
* |
|
* 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 ) |
|
ChangeWindowGroupAttributes( |
|
WindowGroupRef inGroup, |
|
WindowGroupAttributes setTheseAttributes, |
|
WindowGroupAttributes clearTheseAttributes); |
|
|
|
|
|
/* |
|
* SetWindowGroupLevel() |
|
* |
|
* Summary: |
|
* Sets the CoreGraphics window group level of windows in a group. |
|
* |
|
* Discussion: |
|
* CoreGraphics windows (used to implement all windows in Carbon and |
|
* Cocoa applications on Mac OS X) are divided into layers specified |
|
* by a window level. Standard window levels are listed in |
|
* <CoreGraphics/CGWindowLevel.h>. By default, a new window group |
|
* has a window level of kCGNormalWindowLevel. When a window is |
|
* placed into a window group, its window level is determined by the |
|
* window level of its "base group". This is the containing group |
|
* that is a child of the root group. For example, if group A is a |
|
* child of the root group, and group B is a child of group A, and |
|
* window C is in group B, then window C's base group is group A, |
|
* and group A's window level determines the level of window C. |
|
* SetWindowGroupLevel only allows changing the window level of |
|
* groups that are children of the root group. It returns paramErr |
|
* for other groups, since a group that is not a child of the root |
|
* group is not a base group and changing its level has no effect. |
|
* Changing the level of a group also changes the level of all |
|
* windows currently contained by the group. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The window group whose level to change. |
|
* |
|
* inLevel: |
|
* The new level for the windows in this group. |
|
* |
|
* 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 ) |
|
SetWindowGroupLevel( |
|
WindowGroupRef inGroup, |
|
SInt32 inLevel); |
|
|
|
|
|
/* |
|
* GetWindowGroupLevel() |
|
* |
|
* Summary: |
|
* Gets the CoreGraphics window group level of windows in a group. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The window group whose level to return. |
|
* |
|
* outLevel: |
|
* On exit, contains the window level of the windows in this group. |
|
* |
|
* 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 ) |
|
GetWindowGroupLevel( |
|
WindowGroupRef inGroup, |
|
SInt32 * outLevel); |
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------------*/ |
|
/* o.Group z-ordering */ |
|
/*----------------------------------------------------------------------------------*/ |
|
/* |
|
* SendWindowGroupBehind() |
|
* |
|
* Summary: |
|
* Changes the z-order of a group, if the group does not have the |
|
* kWindowGroupAttributeLayerTogether attribute set. |
|
* |
|
* Discussion: |
|
* SendWindowGroupBehind currently requires that the group being |
|
* moved and the behindGroup have the same parent group. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose z-order to change. |
|
* |
|
* behindGroup: |
|
* The group behind which to position the specified group. |
|
* |
|
* 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 ) |
|
SendWindowGroupBehind( |
|
WindowGroupRef inGroup, |
|
WindowGroupRef behindGroup); |
|
|
|
|
|
/*----------------------------------------------------------------------------------*/ |
|
/* o.Group containment hierarchy manipulation */ |
|
/*----------------------------------------------------------------------------------*/ |
|
/* |
|
* GetWindowGroup() |
|
* |
|
* Summary: |
|
* Gets the window group that contains a window. |
|
* |
|
* Discussion: |
|
* The refcount of the group returned by this API is not |
|
* incremented, and the caller does not need to release the |
|
* reference. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose containing group to retrieve. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( WindowGroupRef ) |
|
GetWindowGroup(WindowRef inWindow); |
|
|
|
|
|
/* |
|
* SetWindowGroup() |
|
* |
|
* Summary: |
|
* Sets the window group that contains a window. |
|
* |
|
* Discussion: |
|
* The window's z-order relative to windows in the current process |
|
* may also be changed by this API. If the new window group is |
|
* z-ordered above the window's current group, the window will be |
|
* placed at the end of the new group. If the new window group is |
|
* z-ordered below the window's current group, the window will be |
|
* placed at the top of the new group. You may not place a window |
|
* directly into the root group. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose group to change. |
|
* |
|
* inNewGroup: |
|
* The new containing group. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
SetWindowGroup( |
|
WindowRef inWindow, |
|
WindowGroupRef inNewGroup); |
|
|
|
|
|
/* |
|
* IsWindowContainedInGroup() |
|
* |
|
* Summary: |
|
* Indicates whether a window is contained within a group or any of |
|
* its subgroups. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose containment to examine. |
|
* |
|
* inGroup: |
|
* The group that might contain the window. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
IsWindowContainedInGroup( |
|
WindowRef inWindow, |
|
WindowGroupRef inGroup); |
|
|
|
|
|
/* |
|
* GetWindowGroupParent() |
|
* |
|
* Summary: |
|
* Gets the window group that contains a group. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose containing group to retrieve. |
|
* |
|
* outGroup: |
|
* On exit, the containing window group of the group. The group's |
|
* refcount is not incremented by this API, and the caller does |
|
* not need to release the 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( WindowGroupRef ) |
|
GetWindowGroupParent(WindowGroupRef inGroup); |
|
|
|
|
|
/* |
|
* SetWindowGroupParent() |
|
* |
|
* Summary: |
|
* Sets the window group that contains a group. |
|
* |
|
* Discussion: |
|
* SetWindowGroupParent currently requires that the group have no |
|
* windows in it. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose containing group to change. |
|
* |
|
* inNewGroup: |
|
* The new containing group. |
|
* |
|
* 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 ) |
|
SetWindowGroupParent( |
|
WindowGroupRef inGroup, |
|
WindowGroupRef inNewGroup); |
|
|
|
|
|
/* |
|
* GetWindowGroupSibling() |
|
* |
|
* Summary: |
|
* Returns the next or previous group of a window group. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose sibling to return. |
|
* |
|
* inNextGroup: |
|
* True to return the next sibling, false to return the previous |
|
* sibling. |
|
* |
|
* 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( WindowGroupRef ) |
|
GetWindowGroupSibling( |
|
WindowGroupRef inGroup, |
|
Boolean inNextGroup); |
|
|
|
|
|
/* |
|
* GetWindowGroupOwner() |
|
* |
|
* Summary: |
|
* Returns the window that owns a window group, or NULL if none. |
|
* |
|
* Discussion: |
|
* A window may own one or more window groups. The windows in an |
|
* owned window group will always be z-ordered above the owner |
|
* window. Whenever the owner window changes z-order, the windows in |
|
* the groups owned by the window will be moved also. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose owner to retrieve. |
|
* |
|
* 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( WindowRef ) |
|
GetWindowGroupOwner(WindowGroupRef inGroup); |
|
|
|
|
|
/* |
|
* SetWindowGroupOwner() |
|
* |
|
* Summary: |
|
* Sets the window that owns a window group. |
|
* |
|
* Discussion: |
|
* The group and the window must have the same parent group. |
|
* SetWindowGroupOwner currently requires that the group have no |
|
* windows in it. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose owner to set. |
|
* |
|
* inWindow: |
|
* The group's new owner. |
|
* |
|
* 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 ) |
|
SetWindowGroupOwner( |
|
WindowGroupRef inGroup, |
|
WindowRef inWindow); |
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------------*/ |
|
/* o Inspection of group contents */ |
|
/*----------------------------------------------------------------------------------*/ |
|
|
|
/* |
|
* CountWindowGroupContents() |
|
* |
|
* Summary: |
|
* Counts the windows or groups contained in a group. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose contents to count. |
|
* |
|
* inOptions: |
|
* Specifies how to count the group's contents. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( ItemCount ) |
|
CountWindowGroupContents( |
|
WindowGroupRef inGroup, |
|
WindowGroupContentOptions inOptions); |
|
|
|
|
|
/* |
|
* GetWindowGroupContents() |
|
* |
|
* Summary: |
|
* Retrieves the windows or groups contained in a group. |
|
* |
|
* Discussion: |
|
* The windows or groups returned by this API will be placed into |
|
* the output buffer in z-order, from highest to lowest. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose contents to retrieve. |
|
* |
|
* inOptions: |
|
* Specifies which content to retrieve. |
|
* |
|
* inAllowedItems: |
|
* The number of items that will fit in the output buffer. |
|
* |
|
* outNumItems: |
|
* On exit, the number of items that were returned. May be NULL. |
|
* |
|
* outItems: |
|
* On entry, points to enough memory to hold inAllowedSize |
|
* WindowRefs or WindowGroupRefs. On exit, contains *outNumItems |
|
* WindowRefs or WindowGroupRefs. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
GetWindowGroupContents( |
|
WindowGroupRef inGroup, |
|
WindowGroupContentOptions inOptions, |
|
ItemCount inAllowedItems, |
|
ItemCount * outNumItems, /* can be NULL */ |
|
void ** outItems); |
|
|
|
|
|
/* |
|
* GetIndexedWindow() |
|
* |
|
* Summary: |
|
* Retrieves a specified window from a group. |
|
* |
|
* Discussion: |
|
* GetIndexedWindow is provided as an easier way to get a particular |
|
* window from a group than using GetWindowGroupContents. If you |
|
* only need to retrieve, say, the last window in a group, it is |
|
* easier and more efficient to use GetIndexedWindow. If you need to |
|
* retrieve all the windows in a group, it is more efficient to use |
|
* GetWindowGroupContents. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group containing the window to retrieve. |
|
* |
|
* inIndex: |
|
* The index of the window. This parameter may range from 1 to |
|
* CountWindowGroupContents( inGroup, |
|
* kWindowGroupContentsReturnWindows | inOptions ); |
|
* |
|
* inOptions: |
|
* Indicates how to locate the specified window. |
|
* kWindowGroupContentsReturnWindows is implied by this API and |
|
* does not need to be explicitly specified. |
|
* |
|
* outWindow: |
|
* On exit, the window at the specified index. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
GetIndexedWindow( |
|
WindowGroupRef inGroup, |
|
UInt32 inIndex, |
|
WindowGroupContentOptions inOptions, |
|
WindowRef * outWindow); |
|
|
|
|
|
/* |
|
* GetWindowIndex() |
|
* |
|
* Summary: |
|
* Retrieves the z-order index of a window inside a group. |
|
* |
|
* Discussion: |
|
* The z-order index of a window is its relative position in z-order |
|
* inside a group. The index ranges from 1 to the number of windows |
|
* in the group. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose z-order index to retrieve. |
|
* |
|
* inStartGroup: |
|
* The group on which to base the z-order index. This should be |
|
* either the containing group of the window, or NULL. If NULL, |
|
* this API returns the z-order index of the window across the |
|
* entire process. |
|
* |
|
* inOptions: |
|
* Indicates how to enumerate the specified window. |
|
* kWindowGroupContentsReturnWindows is implied by this API and |
|
* does not need to be explicitly specified. |
|
* |
|
* outIndex: |
|
* On exit, contains the window's z-order index. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
GetWindowIndex( |
|
WindowRef inWindow, |
|
WindowGroupRef inStartGroup, |
|
WindowGroupContentOptions inOptions, |
|
UInt32 * outIndex); |
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------------*/ |
|
/* o.Window activation */ |
|
/*----------------------------------------------------------------------------------*/ |
|
/* |
|
* ActiveNonFloatingWindow() |
|
* |
|
* Summary: |
|
* Returns the window, among all windows with activation scope of |
|
* kWindowActivationScopeAll, that is considered active. |
|
* |
|
* Discussion: |
|
* The Mac OS 8.5 Window Manager introduced the |
|
* FrontNonFloatingWindow API, which was designed to return the |
|
* window that should be considered active by the application. With |
|
* the advent of window groups, it is now possible to have a window |
|
* that looks active (is highlighted, and accepts keyboard input) |
|
* but to have other non-floating windows grouped above the active |
|
* window. The ActiveNonFloatingWindow API returns the active window |
|
* regardless of where it is positioned in the z-order. Most code |
|
* that currently uses FrontNonFloatingWindow or |
|
* GetFrontWindowOfClass(kDocumentClass) to get the active window |
|
* should use ActiveNonFloatingWindow instead. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( WindowRef ) |
|
ActiveNonFloatingWindow(void); |
|
|
|
|
|
/* |
|
* IsWindowActive() |
|
* |
|
* Summary: |
|
* Indicates whether a window is active. |
|
* |
|
* Discussion: |
|
* The active state of a window is simply determined by whether its |
|
* window frame is drawn using an active appearance. This does not |
|
* indicate whether the window has keyboard focus. To get the window |
|
* with keyboard focus, use GetUserFocusWindow(). |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose active state to retrieve. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
IsWindowActive(WindowRef inWindow); |
|
|
|
|
|
/* |
|
* ActivateWindow() |
|
* |
|
* Summary: |
|
* Activates or deactivates a window. |
|
* |
|
* Discussion: |
|
* Window activation consists of two steps: hiliting the window |
|
* frame and sending an activate event to the window. ActivateWindow |
|
* handles both of these steps and also updates internal Window |
|
* Manager state. If you just need to hilite the window frame, you |
|
* may use HiliteWindow. If you need to send an activate event, you |
|
* should always use ActivateWindow rather than creating and sending |
|
* the event yourself. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window to activate or deactivate. |
|
* |
|
* inActivate: |
|
* Whether to activate or deactivate the window. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
ActivateWindow( |
|
WindowRef inWindow, |
|
Boolean inActivate); |
|
|
|
|
|
/* |
|
* GetWindowActivationScope() |
|
* |
|
* Summary: |
|
* Retrieves a window's activation scope. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose activation scope to retrieve. |
|
* |
|
* outScope: |
|
* On exit, the window's activation scope. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
GetWindowActivationScope( |
|
WindowRef inWindow, |
|
WindowActivationScope * outScope); |
|
|
|
|
|
/* |
|
* SetWindowActivationScope() |
|
* |
|
* Summary: |
|
* Sets a window's activation scope. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose activation scope to set. |
|
* |
|
* inScope: |
|
* The new activation scope. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.4 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
SetWindowActivationScope( |
|
WindowRef inWindow, |
|
WindowActivationScope inScope); |
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------------*/ |
|
/* o.Debugging Utilities */ |
|
/*----------------------------------------------------------------------------------*/ |
|
/* |
|
* DebugPrintWindowGroup() |
|
* |
|
* Summary: |
|
* Prints the contents of a window group to stdout. |
|
* |
|
* Parameters: |
|
* |
|
* inGroup: |
|
* The group whose contents to print. |
|
* |
|
* 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 ) |
|
DebugPrintWindowGroup(WindowGroupRef inGroup); |
|
|
|
|
|
/* |
|
* DebugPrintAllWindowGroups() |
|
* |
|
* Summary: |
|
* Prints the full window group hierarchy, starting at the root |
|
* group. |
|
* |
|
* 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 ) |
|
DebugPrintAllWindowGroups(void); |
|
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Background Image */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* SetWinColor is not available in Carbon.*/ |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* SetWinColor() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
SetWinColor( |
|
WindowRef window, |
|
WCTabHandle newColorTable) ONEWORDINLINE(0xAA41); |
|
|
|
|
|
/* SetDeskCPat is not available in Carbon.*/ |
|
/* |
|
* SetDeskCPat() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
SetDeskCPat(PixPatHandle deskPixPat) ONEWORDINLINE(0xAA47); |
|
|
|
|
|
/* |
|
Routines available from Mac OS 8.5 forward |
|
or from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward |
|
*/ |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* SetWindowContentColor() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowContentColor( |
|
WindowRef window, |
|
const RGBColor * color); |
|
|
|
|
|
/* |
|
* GetWindowContentColor() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowContentColor( |
|
WindowRef window, |
|
RGBColor * color); |
|
|
|
|
|
/* Routines available from Mac OS 8.5 forward*/ |
|
/* |
|
* GetWindowContentPattern() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowContentPattern( |
|
WindowRef window, |
|
PixPatHandle outPixPat); |
|
|
|
|
|
/* |
|
* SetWindowContentPattern() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowContentPattern( |
|
WindowRef window, |
|
PixPatHandle pixPat); |
|
|
|
|
|
/* Routines available from Mac OS 9.0 forward*/ |
|
typedef OptionBits WindowPaintProcOptions; |
|
enum { |
|
kWindowPaintProcOptionsNone = 0 |
|
}; |
|
|
|
/* |
|
* InstallWindowContentPaintProc() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 9.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
InstallWindowContentPaintProc( |
|
WindowRef window, |
|
WindowPaintUPP paintProc, |
|
WindowPaintProcOptions options, |
|
void * refCon); /* can be NULL */ |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Scrolling Routines */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
typedef UInt32 ScrollWindowOptions; |
|
enum { |
|
kScrollWindowNoOptions = 0, |
|
kScrollWindowInvalidate = (1L << 0), /* add the exposed area to the window's update region*/ |
|
kScrollWindowEraseToPortBackground = (1L << 1) /* erase the exposed area using the background color/pattern of the window's grafport*/ |
|
}; |
|
|
|
|
|
/* Routines available from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward*/ |
|
|
|
/* |
|
* ScrollWindowRect() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ScrollWindowRect( |
|
WindowRef inWindow, |
|
const Rect * inScrollRect, |
|
SInt16 inHPixels, |
|
SInt16 inVPixels, |
|
ScrollWindowOptions inOptions, |
|
RgnHandle outExposedRgn); /* can be NULL */ |
|
|
|
|
|
/* |
|
* ScrollWindowRegion() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ScrollWindowRegion( |
|
WindowRef inWindow, |
|
RgnHandle inScrollRgn, |
|
SInt16 inHPixels, |
|
SInt16 inVPixels, |
|
ScrollWindowOptions inOptions, |
|
RgnHandle outExposedRgn); /* can be NULL */ |
|
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Low-Level Region & Painting Routines */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
* ClipAbove() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
ClipAbove(WindowRef window) ONEWORDINLINE(0xA90B); |
|
|
|
|
|
/* SaveOld/DrawNew are not available in Carbon. Use ReshapeCustomWindow instead.*/ |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* SaveOld() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
SaveOld(WindowRef window) ONEWORDINLINE(0xA90E); |
|
|
|
|
|
/* |
|
* DrawNew() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
DrawNew( |
|
WindowRef window, |
|
Boolean update) ONEWORDINLINE(0xA90F); |
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* PaintOne() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
PaintOne( |
|
WindowRef window, /* can be NULL */ |
|
RgnHandle clobberedRgn) ONEWORDINLINE(0xA90C); |
|
|
|
|
|
/* |
|
* PaintBehind() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
PaintBehind( |
|
WindowRef startWindow, /* can be NULL */ |
|
RgnHandle clobberedRgn) ONEWORDINLINE(0xA90D); |
|
|
|
|
|
/* |
|
* CalcVis() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
CalcVis(WindowRef window) ONEWORDINLINE(0xA909); |
|
|
|
|
|
/* |
|
* CalcVisBehind() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
CalcVisBehind( |
|
WindowRef startWindow, /* can be NULL */ |
|
RgnHandle clobberedRgn) ONEWORDINLINE(0xA90A); |
|
|
|
|
|
/* |
|
* CheckUpdate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
CheckUpdate(EventRecord * theEvent) ONEWORDINLINE(0xA911); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window List */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
* [Mac]FindWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
#if TARGET_OS_MAC |
|
#define MacFindWindow FindWindow |
|
#endif |
|
EXTERN_API( WindowPartCode ) |
|
MacFindWindow( |
|
Point thePoint, |
|
WindowRef * window) ONEWORDINLINE(0xA92C); |
|
|
|
|
|
/* |
|
* FrontWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( WindowRef ) |
|
FrontWindow(void) ONEWORDINLINE(0xA924); |
|
|
|
|
|
/* |
|
* BringToFront() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
BringToFront(WindowRef window) ONEWORDINLINE(0xA920); |
|
|
|
|
|
/* |
|
* SendBehind() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
SendBehind( |
|
WindowRef window, |
|
WindowRef behindWindow) ONEWORDINLINE(0xA921); |
|
|
|
|
|
/* |
|
* SelectWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
SelectWindow(WindowRef window) ONEWORDINLINE(0xA91F); |
|
|
|
|
|
/* |
|
Routines available from Mac OS 8.6 forward |
|
or from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward |
|
*/ |
|
|
|
/* |
|
* FrontNonFloatingWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( WindowRef ) |
|
FrontNonFloatingWindow(void); |
|
|
|
|
|
/* Routines available from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward*/ |
|
|
|
/* |
|
* GetNextWindowOfClass() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( WindowRef ) |
|
GetNextWindowOfClass( |
|
WindowRef inWindow, |
|
WindowClass inWindowClass, |
|
Boolean mustBeVisible); |
|
|
|
|
|
/* |
|
* GetFrontWindowOfClass() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( WindowRef ) |
|
GetFrontWindowOfClass( |
|
WindowClass inWindowClass, |
|
Boolean mustBeVisible); |
|
|
|
|
|
/* |
|
* FindWindowOfClass() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
FindWindowOfClass( |
|
const Point * where, |
|
WindowClass inWindowClass, |
|
WindowRef * outWindow, |
|
WindowPartCode * outWindowPart); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
* Summary: |
|
* Options for the CreateStandardWindowMenu API. |
|
*/ |
|
enum { |
|
|
|
/* |
|
* Requests the standard window menu include a Rotate Windows menu |
|
* item. Available in Mac OS X after version 10.1. |
|
*/ |
|
kWindowMenuIncludeRotate = 1 << 0 |
|
}; |
|
|
|
/* |
|
* CreateStandardWindowMenu() |
|
* |
|
* Discussion: |
|
* Creates a standard Window menu for your application. You can call |
|
* this to create a window menu for your application. Once you have |
|
* the menu, you need to insert it in your menu bar (typically at |
|
* the end of your menu list) with a call to InsertMenu. To register |
|
* a window to be tracked by this menu, you either create your |
|
* window with CreateNewWindow, passing the |
|
* kWindowInWindowMenuAttribute, or you can use |
|
* ChangeWindowAttributes after the window is created. The Toolbox |
|
* takes care of acting on the standard items such as zoom and |
|
* minimize, as well as bringing selected windows to the front. All |
|
* you need to do is install it and register your windows and the |
|
* Toolbox does the rest. |
|
* |
|
* You may also add your own menu items to the standard window menu. |
|
* To do this, we recommend that you use the |
|
* GetIndMenuItemWithCommandID API to locate one of the standard |
|
* menu items in the menu which is immediately above or below the |
|
* location where you wish to insert your items. Then insert your |
|
* items relative to the position of the standard menu item. Do not |
|
* attempt to search the menu items yourself without calling |
|
* GetIndMenuItemWithCommandID; in Mac OS X 10.2, |
|
* CreateStandardWindowMenu returns an initially empty menu which is |
|
* populated later when the menu is displayed or when |
|
* GetIndMenuItemWithCommandID is called, so you will find no items |
|
* in the menu unless you first call GetIndMenuItemWithCommandID. |
|
* |
|
* Parameters: |
|
* |
|
* inOptions: |
|
* Requests optional behavior of the standard window menu. Mac OS |
|
* X 10.2 supports the kWindowMenuIncludeRotate option; in earlier |
|
* versions of Mac OS X, and in CarbonLib, you must pass zero for |
|
* this parameter. |
|
* |
|
* outMenu: |
|
* Receives a new menu reference which contains the standard |
|
* window menu items and commands. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
CreateStandardWindowMenu( |
|
OptionBits inOptions, |
|
MenuRef * outMenu); |
|
|
|
|
|
/* |
|
* SetWindowAlternateTitle() |
|
* |
|
* Discussion: |
|
* This API sets an alternate title for a window. The alternate |
|
* title overrides what is displayed in the Window menu. If you do |
|
* not set an alternate title, the normal window title is used. You |
|
* would normally use this if the window title was not expressive |
|
* enough to be used in the Window menu (or similar text-only |
|
* situation). |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window to set the alternate title. |
|
* |
|
* inTitle: |
|
* The alternate title for the window. Passing NULL for this |
|
* parameter will remove any alternate title that might be present. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowAlternateTitle( |
|
WindowRef inWindow, |
|
CFStringRef inTitle); |
|
|
|
|
|
/* |
|
* CopyWindowAlternateTitle() |
|
* |
|
* Discussion: |
|
* This API gets the alternate title for a window. See the |
|
* discussion of SetWindowAlternateTitle for more info. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window to get the alternate title from. |
|
* |
|
* outTitle: |
|
* Receives the alternate title for the window. If the window does |
|
* not have an alternate title, NULL will be returned in outTitle. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
CopyWindowAlternateTitle( |
|
WindowRef inWindow, |
|
CFStringRef * outTitle); |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Misc Low-Level stuff */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* InitWindows() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
InitWindows(void) ONEWORDINLINE(0xA912); |
|
|
|
|
|
/* The window manager port does not exist in Carbon. */ |
|
/* We are investigating replacement technologies. */ |
|
/* |
|
* GetWMgrPort() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
GetWMgrPort(GrafPtr * wPort) ONEWORDINLINE(0xA910); |
|
|
|
|
|
/* |
|
* GetCWMgrPort() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
GetCWMgrPort(CGrafPtr * wMgrCPort) ONEWORDINLINE(0xAA48); |
|
|
|
|
|
/* |
|
Routines available from Mac OS 8.5 forward |
|
or from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward |
|
*/ |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* IsValidWindowPtr() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
IsValidWindowPtr(WindowRef possibleWindow); |
|
|
|
|
|
#define IsValidWindowRef IsValidWindowPtr |
|
/* |
|
Routines available from Mac OS 8.6 forward |
|
InitFloatingWindows is not available in Carbon; |
|
window ordering is always active for Carbon clients |
|
*/ |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* InitFloatingWindows() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
InitFloatingWindows(void); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Various & Sundry Window Accessors */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* HiliteWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
HiliteWindow( |
|
WindowRef window, |
|
Boolean fHilite) ONEWORDINLINE(0xA91C); |
|
|
|
|
|
/* |
|
* SetWRefCon() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
SetWRefCon( |
|
WindowRef window, |
|
long data) ONEWORDINLINE(0xA918); |
|
|
|
|
|
/* |
|
* GetWRefCon() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( long ) |
|
GetWRefCon(WindowRef window) ONEWORDINLINE(0xA917); |
|
|
|
|
|
/* |
|
* SetWindowPic() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
SetWindowPic( |
|
WindowRef window, |
|
PicHandle pic) ONEWORDINLINE(0xA92E); |
|
|
|
|
|
/* |
|
* GetWindowPic() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( PicHandle ) |
|
GetWindowPic(WindowRef window) ONEWORDINLINE(0xA92F); |
|
|
|
|
|
/* |
|
* GetWVariant() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( short ) |
|
GetWVariant(WindowRef window) ONEWORDINLINE(0xA80A); |
|
|
|
|
|
/* Routines available from Mac OS 8.0 (Appearance 1.0) forward*/ |
|
/* |
|
* GetWindowFeatures() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in AppearanceLib 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowFeatures( |
|
WindowRef window, |
|
UInt32 * outFeatures) THREEWORDINLINE(0x303C, 0x0013, 0xAA74); |
|
|
|
|
|
/* |
|
* GetWindowRegion() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in AppearanceLib 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowRegion( |
|
WindowRef window, |
|
WindowRegionCode inRegionCode, |
|
RgnHandle ioWinRgn) THREEWORDINLINE(0x303C, 0x0014, 0xAA74); |
|
|
|
|
|
/* |
|
* GetWindowStructureWidths() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowStructureWidths( |
|
WindowRef inWindow, |
|
Rect * outRect); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Update Events */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
These aren't present in Carbon. Please use the InvalWindowRect, etc. routines |
|
below instead. |
|
*/ |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* InvalRect() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
InvalRect(const Rect * badRect) ONEWORDINLINE(0xA928); |
|
|
|
|
|
/* |
|
* InvalRgn() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
InvalRgn(RgnHandle badRgn) ONEWORDINLINE(0xA927); |
|
|
|
|
|
/* |
|
* ValidRect() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
ValidRect(const Rect * goodRect) ONEWORDINLINE(0xA92A); |
|
|
|
|
|
/* |
|
* ValidRgn() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
ValidRgn(RgnHandle goodRgn) ONEWORDINLINE(0xA929); |
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* BeginUpdate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
BeginUpdate(WindowRef window) ONEWORDINLINE(0xA922); |
|
|
|
|
|
/* |
|
* EndUpdate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
EndUpdate(WindowRef window) ONEWORDINLINE(0xA923); |
|
|
|
|
|
/* |
|
Routines available from Mac OS 8.5 forward |
|
or from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward |
|
*/ |
|
|
|
/* |
|
* InvalWindowRgn() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
InvalWindowRgn( |
|
WindowRef window, |
|
RgnHandle region); |
|
|
|
|
|
/* |
|
* InvalWindowRect() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
InvalWindowRect( |
|
WindowRef window, |
|
const Rect * bounds); |
|
|
|
|
|
/* |
|
* ValidWindowRgn() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ValidWindowRgn( |
|
WindowRef window, |
|
RgnHandle region); |
|
|
|
|
|
/* |
|
* ValidWindowRect() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ValidWindowRect( |
|
WindowRef window, |
|
const Rect * bounds); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o DrawGrowIcon */ |
|
/* */ |
|
/* DrawGrowIcon is deprecated from Mac OS 8.0 forward. Theme-savvy window defprocs */ |
|
/* include the grow box in the window frame. */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
* DrawGrowIcon() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
DrawGrowIcon(WindowRef window) ONEWORDINLINE(0xA904); |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Titles */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
* SetWTitle() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
SetWTitle( |
|
WindowRef window, |
|
ConstStr255Param title) ONEWORDINLINE(0xA91A); |
|
|
|
|
|
/* |
|
* GetWTitle() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
GetWTitle( |
|
WindowRef window, |
|
Str255 title) ONEWORDINLINE(0xA919); |
|
|
|
|
|
/* |
|
* SetWindowTitleWithCFString() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowTitleWithCFString( |
|
WindowRef inWindow, |
|
CFStringRef inString); |
|
|
|
|
|
/* |
|
* CopyWindowTitleAsCFString() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
CopyWindowTitleAsCFString( |
|
WindowRef inWindow, |
|
CFStringRef * outString); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Proxies */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* Routines available from Mac OS 8.5 forward*/ |
|
|
|
/* |
|
* SetWindowProxyFSSpec() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowProxyFSSpec( |
|
WindowRef window, |
|
const FSSpec * inFile); |
|
|
|
|
|
/* |
|
* GetWindowProxyFSSpec() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowProxyFSSpec( |
|
WindowRef window, |
|
FSSpec * outFile); |
|
|
|
|
|
/* |
|
* SetWindowProxyAlias() |
|
* |
|
* Summary: |
|
* Sets the proxy icon for a window based on an AliasHandle. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose proxy icon to set. |
|
* |
|
* inAlias: |
|
* The alias that specifies the proxy icon. The Window Manager |
|
* copies the alias data; the caller may dispose of the alias |
|
* after SetWindowProxyAlias returns. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowProxyAlias( |
|
WindowRef inWindow, |
|
AliasHandle inAlias); |
|
|
|
|
|
/* |
|
* GetWindowProxyAlias() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowProxyAlias( |
|
WindowRef window, |
|
AliasHandle * alias); |
|
|
|
|
|
/* |
|
* SetWindowProxyCreatorAndType() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowProxyCreatorAndType( |
|
WindowRef window, |
|
OSType fileCreator, |
|
OSType fileType, |
|
SInt16 vRefNum); |
|
|
|
|
|
/* |
|
* GetWindowProxyIcon() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowProxyIcon( |
|
WindowRef window, |
|
IconRef * outIcon); |
|
|
|
|
|
/* |
|
* SetWindowProxyIcon() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowProxyIcon( |
|
WindowRef window, |
|
IconRef icon); |
|
|
|
|
|
/* |
|
* RemoveWindowProxy() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
RemoveWindowProxy(WindowRef window); |
|
|
|
|
|
/* |
|
* BeginWindowProxyDrag() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
BeginWindowProxyDrag( |
|
WindowRef window, |
|
DragReference * outNewDrag, |
|
RgnHandle outDragOutlineRgn); |
|
|
|
|
|
/* |
|
* EndWindowProxyDrag() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
EndWindowProxyDrag( |
|
WindowRef window, |
|
DragReference theDrag); |
|
|
|
|
|
/* |
|
* TrackWindowProxyFromExistingDrag() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
TrackWindowProxyFromExistingDrag( |
|
WindowRef window, |
|
Point startPt, |
|
DragReference drag, |
|
RgnHandle inDragOutlineRgn); |
|
|
|
|
|
/* |
|
* TrackWindowProxyDrag() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
TrackWindowProxyDrag( |
|
WindowRef window, |
|
Point startPt); |
|
|
|
|
|
/* |
|
* IsWindowModified() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
IsWindowModified(WindowRef window); |
|
|
|
|
|
/* |
|
* SetWindowModified() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowModified( |
|
WindowRef window, |
|
Boolean modified); |
|
|
|
|
|
/* |
|
* IsWindowPathSelectClick() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
IsWindowPathSelectClick( |
|
WindowRef window, |
|
const EventRecord * event); |
|
|
|
|
|
/* |
|
* WindowPathSelect() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
WindowPathSelect( |
|
WindowRef window, |
|
MenuRef menu, /* can be NULL */ |
|
SInt32 * outMenuResult); |
|
|
|
|
|
/* |
|
* IsWindowPathSelectEvent() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
IsWindowPathSelectEvent( |
|
WindowRef window, |
|
EventRef inEvent); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o HiliteWindowFrameForDrag */ |
|
/* */ |
|
/* If you call ShowDragHilite and HideDragHilite, you don't need to use this routine. */ |
|
/* If you implement custom drag hiliting, you should call HiliteWindowFrameForDrag */ |
|
/* when the drag is tracking inside a window with drag-hilited content. */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* Routines available from Mac OS 8.5 forward*/ |
|
|
|
/* |
|
* HiliteWindowFrameForDrag() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
HiliteWindowFrameForDrag( |
|
WindowRef window, |
|
Boolean hilited) TWOWORDINLINE(0x7019, 0xA829); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Transitions */ |
|
/* */ |
|
/* TransitionWindow displays a window with accompanying animation and sound. */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
|
|
/* |
|
* WindowTransitionEffect |
|
* |
|
* Summary: |
|
* Visual effects that are provided by TransitionWindow |
|
*/ |
|
typedef UInt32 WindowTransitionEffect; |
|
enum { |
|
|
|
/* |
|
* Finder-like zoom rectangles. Use with TransitionWindow and Show or |
|
* Hide transition actions |
|
*/ |
|
kWindowZoomTransitionEffect = 1, |
|
|
|
/* |
|
* Zoom in/out from parent. Use with TransitionWindowAndParent and |
|
* Show or Hide transition actions. Available in Mac OS X, and in |
|
* CarbonLib 1.5 and later. |
|
*/ |
|
kWindowSheetTransitionEffect = 2, |
|
|
|
/* |
|
* Slide the window into its new position. Use with TransitionWindow |
|
* and Move or Resize transition actions. Available in Mac OS X, and |
|
* in CarbonLib 1.5 and later. |
|
*/ |
|
kWindowSlideTransitionEffect = 3 |
|
}; |
|
|
|
|
|
/* |
|
* WindowTransitionAction |
|
* |
|
* Summary: |
|
* Modifications to window state that are provided by |
|
* TransitionWindow |
|
*/ |
|
typedef UInt32 WindowTransitionAction; |
|
enum { |
|
|
|
/* |
|
* Shows the window. Use with the Zoom or Sheet transition effects. |
|
* The inRect parameter is the global coordinates from which to start |
|
* the animation; if inRect is NULL, the animation begins at the |
|
* center of the window. |
|
*/ |
|
kWindowShowTransitionAction = 1, |
|
|
|
/* |
|
* Hides the window. Use with the Zoom or Sheet transition effects. |
|
* The inRect parameter is the global coordinates at which to end the |
|
* animation; if inRect is NULL, the animation ends at the center of |
|
* the window. |
|
*/ |
|
kWindowHideTransitionAction = 2, |
|
|
|
/* |
|
* Moves the window. Use with the Slide transition effect. The inRect |
|
* parameter is the global coordinates of the window's new structure |
|
* bounds; inRect must be non-NULL. Available in Mac OS X, and in |
|
* CarbonLib 1.5 and later. |
|
*/ |
|
kWindowMoveTransitionAction = 3, |
|
|
|
/* |
|
* Resizes the window. Use with the Slide transition effect. The |
|
* inRect parameter is the global coordinates of the window's new |
|
* structure bounds; inRect must be non-NULL. Available in Mac OS X, |
|
* and in CarbonLib 1.5 and later. |
|
*/ |
|
kWindowResizeTransitionAction = 4 |
|
}; |
|
|
|
/* |
|
* TransitionWindow() |
|
* |
|
* Summary: |
|
* Shows, hides, moves, or resizes a window with appropriate |
|
* animation and sound. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window on which to act. |
|
* |
|
* inEffect: |
|
* The type of visual effect to use. TransitionWindow supports the |
|
* Zoom and Slide transition effects. The Slide effect is |
|
* supported on Mac OS X and in CarbonLib 1.5 and later. |
|
* |
|
* inAction: |
|
* The action to take on the window. TransitionWindow supports the |
|
* Show, Hide, Move, and Resize actions. The Move and Resize |
|
* actions are supported on Mac OS X and in CarbonLib 1.5 and |
|
* later. |
|
* |
|
* inRect: |
|
* A screen rect in global coordinates. The interpretation of the |
|
* rect is dependent on the transition action; see the |
|
* documentation for each action for details. May be NULL for some |
|
* transition actions. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
TransitionWindow( |
|
WindowRef inWindow, |
|
WindowTransitionEffect inEffect, |
|
WindowTransitionAction inAction, |
|
const Rect * inRect); /* can be NULL */ |
|
|
|
|
|
/* |
|
* TransitionWindowAndParent() |
|
* |
|
* Summary: |
|
* Shows or hides a window, potentially also moving a second window, |
|
* with appropriate animation and sound. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window on which to act. |
|
* |
|
* inParentWindow: |
|
* The window to which the primary window is related. |
|
* |
|
* inEffect: |
|
* The type of visual effect to use. TransitionWindowAndParent |
|
* supports the Sheet transition effect. |
|
* |
|
* inAction: |
|
* The action to take on the window. TransitionWindowAndParent |
|
* supports the Show and Hide actions. |
|
* |
|
* inRect: |
|
* A screen rect in global coordinates. The interpretation of the |
|
* rect is dependent on the transition action; see the |
|
* documentation for each action for details. May be NULL for some |
|
* transition actions. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.5 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
TransitionWindowAndParent( |
|
WindowRef inWindow, |
|
WindowRef inParentWindow, |
|
WindowTransitionEffect inEffect, |
|
WindowTransitionAction inAction, |
|
const Rect * inRect); /* can be NULL */ |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Positioning */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
|
|
/* |
|
* [Mac]MoveWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
#if TARGET_OS_MAC |
|
#define MacMoveWindow MoveWindow |
|
#endif |
|
EXTERN_API( void ) |
|
MacMoveWindow( |
|
WindowRef window, |
|
short hGlobal, |
|
short vGlobal, |
|
Boolean front) ONEWORDINLINE(0xA91B); |
|
|
|
|
|
/* |
|
* SizeWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
SizeWindow( |
|
WindowRef window, |
|
short w, |
|
short h, |
|
Boolean fUpdate) ONEWORDINLINE(0xA91D); |
|
|
|
|
|
|
|
/* Note: bBox can only be NULL when linking to CarbonLib 1.0 forward */ |
|
/* |
|
* GrowWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( long ) |
|
GrowWindow( |
|
WindowRef window, |
|
Point startPt, |
|
const Rect * bBox) /* can be NULL */ ONEWORDINLINE(0xA92B); |
|
|
|
|
|
/* Note: boundsRect can only be NULL when linking to CarbonLib 1.0 forward */ |
|
/* |
|
* DragWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
DragWindow( |
|
WindowRef window, |
|
Point startPt, |
|
const Rect * boundsRect) /* can be NULL */ ONEWORDINLINE(0xA925); |
|
|
|
|
|
/* |
|
* ZoomWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
ZoomWindow( |
|
WindowRef window, |
|
WindowPartCode partCode, |
|
Boolean front) ONEWORDINLINE(0xA83A); |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Collapsing/Expanding */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* Routines available from Mac OS 8.0 (Appearance 1.0) forward*/ |
|
/* |
|
* IsWindowCollapsable() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in AppearanceLib 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
IsWindowCollapsable(WindowRef window) THREEWORDINLINE(0x303C, 0x000F, 0xAA74); |
|
|
|
|
|
/* |
|
* IsWindowCollapsed() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in AppearanceLib 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
IsWindowCollapsed(WindowRef window) THREEWORDINLINE(0x303C, 0x0010, 0xAA74); |
|
|
|
|
|
/* |
|
* CollapseWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in AppearanceLib 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
CollapseWindow( |
|
WindowRef window, |
|
Boolean collapse) THREEWORDINLINE(0x303C, 0x0011, 0xAA74); |
|
|
|
|
|
/* |
|
* CollapseAllWindows() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in AppearanceLib 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
CollapseAllWindows(Boolean collapse) THREEWORDINLINE(0x303C, 0x0012, 0xAA74); |
|
|
|
|
|
/* Routines available on Mac OS X*/ |
|
|
|
/* |
|
* CreateQDContextForCollapsedWindowDockTile() |
|
* |
|
* Discussion: |
|
* Creates and returns a CGrafPtr for a collapsed window's tile in |
|
* the dock. You can use this port to draw into your window's dock |
|
* tile with Quickdraw. You **MUST** call |
|
* ReleaseQDContextForCollapsedWindowDockTile and NOT DisposePort |
|
* when using this API, as it maintains more state than just the |
|
* port. If you call DisposePort, you may leak system resources. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window to create the dock tile port for. If this window is |
|
* not collapsed, an error is returned. |
|
* |
|
* outContext: |
|
* The Quickdraw port for you to use to draw into. If you wish to |
|
* use CoreGraphics (Quartz) drawing, call CreateCGContextForPort |
|
* with this port to obtain a CGContext. |
|
* |
|
* 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.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
CreateQDContextForCollapsedWindowDockTile( |
|
WindowRef inWindow, |
|
CGrafPtr * outContext); |
|
|
|
|
|
/* |
|
* ReleaseQDContextForCollapsedWindowDockTile() |
|
* |
|
* Discussion: |
|
* Releases a port and other state created by the |
|
* CreateQDContextForCollapsedWindowDockTile API. You MUST call this |
|
* instead of DisposePort directly, or you may leak system resources. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window you created the port for. If this window is not |
|
* collapsed, an error is returned. |
|
* |
|
* inContext: |
|
* The Quickdraw context to dispose. |
|
* |
|
* 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.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
ReleaseQDContextForCollapsedWindowDockTile( |
|
WindowRef inWindow, |
|
CGrafPtr inContext); |
|
|
|
|
|
/* |
|
* UpdateCollapsedWindowDockTile() |
|
* |
|
* Discussion: |
|
* Automatically updates the image of a particular window in the |
|
* dock to the current contents of the window. Use this for periodic |
|
* updates, etc. Do not use this for animation purposes, if you want |
|
* animation, use the above create/release drawing context APIs. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window to update the dock tile for. If this window is not |
|
* collapsed, an error is returned. |
|
* |
|
* 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.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
UpdateCollapsedWindowDockTile(WindowRef inWindow); |
|
|
|
|
|
/* |
|
* SetWindowDockTileMenu() |
|
* |
|
* Summary: |
|
* Sets the menu that is displayed by a window's dock tile. |
|
* |
|
* Discussion: |
|
* When a window's dock tile menu is right-clicked or |
|
* control-clicked, the Dock will always automatically display a |
|
* menu containing a Close menu item that closes the window. If the |
|
* application wants to add other additional menu items, it can use |
|
* the SetWindowDockTileMenu API to provide those items. The items |
|
* in the specified menu will be combined with the standard items |
|
* provided by the Dock. |
|
* |
|
* 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 window's event target (and from there to |
|
* the application, if the window does not handle the |
|
* event). |
|
* |
|
* This API increments the refcount of the specified menu. |
|
* |
|
* The toolbox provides a default handler for the |
|
* kEventWindowGetDockTileMenu event that returns the menu specified |
|
* by the SetWindowDockTileMenu API. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window for which to set the dock tile menu. |
|
* |
|
* 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.2 and later |
|
* Mac OS X: in version 10.2 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
SetWindowDockTileMenu( |
|
WindowRef inWindow, |
|
MenuRef inMenu); /* can be NULL */ |
|
|
|
|
|
/* |
|
* GetWindowDockTileMenu() |
|
* |
|
* Summary: |
|
* Returns the menu that is displayed by a window'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.2 and later |
|
* Mac OS X: in version 10.2 and later |
|
*/ |
|
EXTERN_API_C( MenuRef ) |
|
GetWindowDockTileMenu(WindowRef inWindow); |
|
|
|
|
|
/* |
|
Routines available from Mac OS 8.5 forward |
|
or from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward |
|
*/ |
|
|
|
/* |
|
* GetWindowBounds() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowBounds( |
|
WindowRef window, |
|
WindowRegionCode regionCode, |
|
Rect * globalBounds); |
|
|
|
|
|
/* |
|
* SetWindowResizeLimits() |
|
* |
|
* Summary: |
|
* Sets the minimum and maximum content sizes for a window. |
|
* |
|
* Discussion: |
|
* The minimum and maximum sizes are obeyed by ResizeWindow and |
|
* GrowWindow. The default Carbon event handler installed for all |
|
* windows will return these sizes in response to |
|
* kEventWindowGetMinimumSize and kEventWindowGetMaximumSize events. |
|
* When a window is first created, its minimum and maximum sizes are |
|
* set to reasonable values (which may change from one system |
|
* release to the next). |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose minimum and maximum sizes to set. |
|
* |
|
* inMinLimits: |
|
* The new minimum size for the content region of the window. Pass |
|
* NULL if you don't want to set a minimum size. |
|
* |
|
* inMaxLimits: |
|
* The new maximum size for the content region of the window. Pass |
|
* NULL if you don't want to set a maximum size. |
|
* |
|
* 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 ) |
|
SetWindowResizeLimits( |
|
WindowRef inWindow, |
|
const HISize * inMinLimits, /* can be NULL */ |
|
const HISize * inMaxLimits); /* can be NULL */ |
|
|
|
|
|
/* |
|
* GetWindowResizeLimits() |
|
* |
|
* Summary: |
|
* Returns the minimum and maximum content sizes for a window. |
|
* |
|
* Discussion: |
|
* GetWindowResizeLimits returns the minimum and maximum sizes that |
|
* were set by SetWindowResizeLimits. Note that it does not send |
|
* kEventWindowGetMinimumSize or kEventWindowGetMaximumSize Carbon |
|
* events to get these sizes; it simply retrieves the sizes from the |
|
* WindowRef. It is entirely possible (and quite likely) that a |
|
* given window will have event handlers for the |
|
* kEventWindowGetMinimum/MaximumSize events that will modify or |
|
* override the sizes in the WindowRef; therefore, to accurately |
|
* determine the desired minimum and maximum sizes, you should send |
|
* kEventWindowGetMinimum/MaximumSize Carbon events rather than |
|
* using this API. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose minimum and maximum sizes to retrieve. |
|
* |
|
* outMinLimits: |
|
* On exit, contains the minimum size of the window's content |
|
* region. Pass NULL if you don't want this information. |
|
* |
|
* outMaxLimits: |
|
* On exit, contains the maximum size of the window's content |
|
* region. Pass NULL if you don't want this information. |
|
* |
|
* 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 ) |
|
GetWindowResizeLimits( |
|
WindowRef inWindow, |
|
HISize * outMinLimits, /* can be NULL */ |
|
HISize * outMaxLimits); /* can be NULL */ |
|
|
|
|
|
/* |
|
* ResizeWindow() |
|
* |
|
* Summary: |
|
* Handles all user interaction while a window is being resized. |
|
* |
|
* Discussion: |
|
* The ResizeWindow function moves either an outline of the window's |
|
* edges (on Mac OS 9.x and earlier) or the actual window (on Mac OS |
|
* X) around the screen, following the user's cursor movements, and |
|
* handles all user interaction until the mouse button is released. |
|
* Unlike the GrowWindow API, there is no need to follow this call |
|
* with a call to the function SizeWindow, because once the mouse |
|
* button is released, ResizeWindow resizes the window if the user |
|
* has changed the window size. Once the resizing is complete, |
|
* ResizeWindow draws the window in the new size. Your application |
|
* should call the ResizeWindow function instead of the earlier |
|
* Window Manager APIs SizeWindow and GrowWindow. Some windows may |
|
* allow themselves to be resized from any corner or edge, not just |
|
* the bottom right, and as a result, when the user resizes the |
|
* window, the window may move on the screen and not merely change |
|
* size. ResizeWindow informs your application of the new window |
|
* bounds, so that your application can respond to any changes in |
|
* the window's position. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window to be resized. |
|
* |
|
* inStartPoint: |
|
* The point, in global coordinates, at which the original |
|
* mouse-down occurred. |
|
* |
|
* inSizeConstraints: |
|
* The limits on the vertical and horizontal measurements of the |
|
* content rectangle, in pixels. Although this parameter is typed |
|
* as a Rect, the four numbers in the structure represent limits, |
|
* not screen coordinates. The top, left, bottom, and right fields |
|
* of the structure specify the minimum vertical measurement |
|
* (top), the minimum horizontal measurement (left), the maximum |
|
* vertical measurement (bottom), and the maximum horizontal |
|
* measurement (right). The minimum dimensions should be large |
|
* enough to allow a manageable rectangle; 64 pixels on a side is |
|
* typical. The maximum dimensions can be no greater than 32,767. |
|
* You can pass NULL to allow the user to resize the window to any |
|
* size that is contained onscreen. |
|
* |
|
* outNewContentRect: |
|
* On exit, the structure contains the new dimensions of the |
|
* window's content region, in global coordinates. On Mac OS 9.x |
|
* and earlier, you must pass a non-NULL value in this parameter; |
|
* in Carbon, you may pass NULL if you do not need the window's |
|
* new dimensions. |
|
* |
|
* Result: |
|
* Returns true if the window changed size, or false if not. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
ResizeWindow( |
|
WindowRef inWindow, |
|
Point inStartPoint, |
|
const Rect * inSizeConstraints, /* can be NULL */ |
|
Rect * outNewContentRect); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
Routines available from Mac OS 8.5 forward, |
|
or from Mac OS 8.1 forward when linking to CarbonLib 1.0.2 forward |
|
*/ |
|
|
|
/* |
|
* SetWindowBounds() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowBounds( |
|
WindowRef window, |
|
WindowRegionCode regionCode, |
|
const Rect * globalBounds); |
|
|
|
|
|
/* Routines available from Mac OS 8.5 forward*/ |
|
|
|
/* |
|
* RepositionWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
RepositionWindow( |
|
WindowRef window, |
|
WindowRef parentWindow, |
|
WindowPositionMethod method); |
|
|
|
|
|
/* |
|
* MoveWindowStructure() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
MoveWindowStructure( |
|
WindowRef window, |
|
short hGlobal, |
|
short vGlobal); |
|
|
|
|
|
/* |
|
Routines available from Mac OS 8.5 forward, |
|
or from Mac OS 8.6 forward when linking to CarbonLib 1.1 forward |
|
*/ |
|
|
|
/* Routines available from Mac OS 8.5 forward*/ |
|
|
|
/* |
|
* IsWindowInStandardState() |
|
* |
|
* Summary: |
|
* Determines whether a window is currently zoomed in to the user |
|
* state or zoomed out to the standard state. |
|
* |
|
* Discussion: |
|
* IsWindowInStandardState compares the window's current dimensions |
|
* to those given by the inIdealSize parameter to determine if the |
|
* window is currently in its standard (zoomed-out) state. Your |
|
* application may use IsWindowInStandardState to decide whether a |
|
* user's click of the zoom box is a request to zoom in to the user |
|
* state or out to the standard state. Your application may also use |
|
* IsWindowInStandardState to determine the size and position of the |
|
* standard state that the Window Manager would calculate for a |
|
* window, given a specified ideal size; this value is returned in |
|
* the outIdealStandardState parameter. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window for which to determine the zoom state. |
|
* |
|
* inIdealSize: |
|
* The ideal width and height of the window's content region, |
|
* regardless of the actual screen device dimensions. If you set |
|
* idealSize to NULL, IsWindowInStandardState examines the |
|
* dimensions stored in the stdState field of the WStateData |
|
* structure attached to the window. |
|
* |
|
* outIdealStandardState: |
|
* On exit, contains the global coordinates for the content region |
|
* of the window in its standard state, based on the data supplied |
|
* in the inIdealSize parameter. You may pass NULL if you do not |
|
* need this information. |
|
* |
|
* Result: |
|
* Returns true if the window is currently in its standard |
|
* (zoomed-out) state, or false if the window is a non-zoomed-out |
|
* state. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
IsWindowInStandardState( |
|
WindowRef inWindow, |
|
const Point * inIdealSize, /* can be NULL */ |
|
Rect * outIdealStandardState); /* can be NULL */ |
|
|
|
|
|
/* |
|
* ZoomWindowIdeal() |
|
* |
|
* Summary: |
|
* Zooms a window in accordance with human interface guidelines. |
|
* |
|
* Discussion: |
|
* Applications should use the ZoomWindowIdeal API instead of the |
|
* older ZoomWindow API. When your application calls |
|
* ZoomWindowIdeal, it automatically conforms to the human interface |
|
* guidelines for determining a window's standard state: the window |
|
* is moved as little as possible when switching between user and |
|
* standard states, the window is zoomed to the screen that contains |
|
* the largest portion of the window, and the window is positioned |
|
* in its zoomed-out size to avoid the Dock on Mac OS X. The |
|
* ZoomWindowIdeal API calculates a window's ideal standard state |
|
* and updates a window's ideal user state independently of the |
|
* WStateData structure. Previously, the window definition function |
|
* was responsible for updating the user state, but because it |
|
* relies upon the WStateData structure, the window definition |
|
* function is unaware of the ideal standard state and can no longer |
|
* track the window's zoom state reliably. The Window Manager |
|
* provides the GetWindowIdealUserState and SetWindowIdealUserState |
|
* APIs to access a window's current ideal user state, previously |
|
* recorded by ZoomWindowIdeal. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window to be zoomed. |
|
* |
|
* inPartCode: |
|
* The direction of the zoom, either inZoomIn or inZoomOut. The |
|
* value passed in this parameter should generally be determined |
|
* by calling IsWindowInStandardState; if IsWindowInStandardState |
|
* returns true, pass inZoomIn, otherwise pass inZoomOut. |
|
* |
|
* ioIdealSize: |
|
* When you specify inZoomIn in the inPartCode parameter, this |
|
* parameter is unused on entry; you pass a pointer to a Point |
|
* structure, but do not fill the structure with data. On exit, |
|
* the Point contains the new height and width of the window's |
|
* content region, and ZoomWindowIdeal restores the previous ideal |
|
* user state. When you specify inZoomOut in the inPartCode |
|
* parameter, you pass the ideal height and width of the window's |
|
* content region in the Point structure. On return, the Point |
|
* contains the new height and width of the window's content |
|
* region; ZoomWindowIdeal saves the current user state of the |
|
* window and zooms the window to its ideal size for the standard |
|
* state. |
|
* |
|
* Result: |
|
* An operating system result code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ZoomWindowIdeal( |
|
WindowRef inWindow, |
|
WindowPartCode inPartCode, |
|
Point * ioIdealSize); |
|
|
|
|
|
/* |
|
* GetWindowIdealUserState() |
|
* |
|
* Summary: |
|
* Returns the bounds of a window's content region in its user |
|
* (zoomed-in) state. |
|
* |
|
* Discussion: |
|
* Traditionally, the user (zoomed-in) state of a window has been |
|
* stored in the WStateData structure attached to a window. This |
|
* field is updated by the window definition when the user clicks on |
|
* the zoom box and the window definition determines that the window |
|
* is currently not zoomed out. When determining whether the window |
|
* is zoomed out, however, the window definition can only look at |
|
* the standard state stored in the WStateData field. With the |
|
* introduction of the ZoomWindowIdeal API, there is a new basis for |
|
* determining whether a window is zoomed out: the window's ideal |
|
* size. The window definition does not have access to the window's |
|
* ideal size, and therefore cannot accurately determine whether a |
|
* window that is zoomed with ZoomWindowIdeal is in its user state |
|
* or standard state; therefore, the user state that the window |
|
* definition stores in the WStateData is also unreliable. The |
|
* ZoomWindowIdeal API therefore stores the window's user state |
|
* before zooming out in a new location, which is accessed using the |
|
* GetWindowIdealUserState API. The GetWindowIdealUserState API |
|
* returns the window's user state most recently recorded by |
|
* ZoomWindowIdeal. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose ideal user state you wish to retrieve. |
|
* |
|
* outUserState: |
|
* On exit, contains the global coordinates of the window's |
|
* content region when zoomed in. On Mac OS X 10.1 and earlier, |
|
* and CarbonLib 1.5 and earlier, the window's ideal user state is |
|
* an empty rect with coordinates (0,0,0,0) if the window has |
|
* never been zoomed out; you should check for an empty rect and |
|
* use GetWindowBounds with the kWindowContentRgn selector to |
|
* determine the window's current content region. On later |
|
* versions of Mac OS X and CarbonLib, GetWindowIdealUserState |
|
* automatically returns the window's current content bounds if |
|
* the window has not yet been zoomed. |
|
* |
|
* Result: |
|
* An operating system result code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowIdealUserState( |
|
WindowRef inWindow, |
|
Rect * outUserState); |
|
|
|
|
|
/* |
|
* SetWindowIdealUserState() |
|
* |
|
* Summary: |
|
* Sets the bounds of a window's content region in its user |
|
* (zoomed-in) state. |
|
* |
|
* Discussion: |
|
* The window's ideal user state is used by the ZoomWindowIdeal API |
|
* when zooming in. The ideal user state is ignored by the |
|
* ZoomWindow API. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose ideal user state to set. |
|
* |
|
* inUserState: |
|
* The global coordinates of the window's content region in its |
|
* ideal user state. |
|
* |
|
* Result: |
|
* An operating system result code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowIdealUserState( |
|
WindowRef inWindow, |
|
const Rect * inUserState); |
|
|
|
|
|
/* Routines available in CarbonLib 1.1 and later*/ |
|
|
|
/* |
|
* GetWindowGreatestAreaDevice() |
|
* |
|
* Summary: |
|
* Returns the graphics device with the greatest area of |
|
* intersection with a specified window region. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window to compare against. |
|
* |
|
* inRegion: |
|
* The window region to compare against. |
|
* |
|
* outGreatestDevice: |
|
* On exit, the graphics device with the greatest intersection. |
|
* May be NULL. |
|
* |
|
* outGreatestDeviceRect: |
|
* On exit, the bounds of the graphics device with the greatest |
|
* intersection. May be NULL. If the device with the greatest |
|
* intersection also contains the menu bar, the device rect will |
|
* exclude the menu bar area. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowGreatestAreaDevice( |
|
WindowRef inWindow, |
|
WindowRegionCode inRegion, |
|
GDHandle * outGreatestDevice, /* can be NULL */ |
|
Rect * outGreatestDeviceRect); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
* WindowConstrainOptions |
|
* |
|
*/ |
|
typedef UInt32 WindowConstrainOptions; |
|
enum { |
|
|
|
/* |
|
* The window may be resized if necessary to make it fit onscreen. |
|
*/ |
|
kWindowConstrainMayResize = (1L << 0), |
|
|
|
/* |
|
* The window will be moved even if it doesn't fit entirely onscreen. |
|
*/ |
|
kWindowConstrainMoveRegardlessOfFit = (1L << 1), |
|
|
|
/* |
|
* Allow partial intersection of the specified window region with the |
|
* screen, instead of requiring total intersection. |
|
*/ |
|
kWindowConstrainAllowPartial = (1L << 2), |
|
|
|
/* |
|
* Only calculate the new window bounds; don't actually move the |
|
* window. |
|
*/ |
|
kWindowConstrainCalcOnly = (1L << 3), |
|
|
|
/* |
|
* Use TransitionWindow with kWindowSlideTransitionEffect to move |
|
* windows onscreen. Available in Mac OS X 10.2. |
|
*/ |
|
kWindowConstrainUseTransitionWindow = (1L << 4), |
|
|
|
/* |
|
* The most common options: don't resize the window, move the window |
|
* regardless of fit to the screen, require total intersection of the |
|
* specified window region with the screen, and do actually move the |
|
* window. |
|
*/ |
|
kWindowConstrainStandardOptions = kWindowConstrainMoveRegardlessOfFit |
|
}; |
|
|
|
/* |
|
* ConstrainWindowToScreen() |
|
* |
|
* Summary: |
|
* Moves and resizes a window so that it's contained entirely on a |
|
* single screen. |
|
* |
|
* Parameters: |
|
* |
|
* inWindowRef: |
|
* The window to constrain. |
|
* |
|
* inRegionCode: |
|
* The window region to constrain. |
|
* |
|
* inOptions: |
|
* Flags controlling how the window is constrained. |
|
* |
|
* inScreenRect: |
|
* A rectangle, in global coordinates, in which to constrain the |
|
* window. May be NULL. If NULL, the window is constrained to the |
|
* screen with the greatest intersection with the specified window |
|
* region. |
|
* |
|
* outStructure: |
|
* On exit, contains the new structure bounds of the window, in |
|
* global coordinates. May be NULL. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ConstrainWindowToScreen( |
|
WindowRef inWindowRef, |
|
WindowRegionCode inRegionCode, |
|
WindowConstrainOptions inOptions, |
|
const Rect * inScreenRect, /* can be NULL */ |
|
Rect * outStructure); /* can be NULL */ |
|
|
|
|
|
/* |
|
* GetAvailableWindowPositioningBounds() |
|
* |
|
* Summary: |
|
* Returns the available window positioning bounds on the given |
|
* screen (i.e., the screen rect minus the MenuBar and Dock if |
|
* located on that screen). |
|
* |
|
* Parameters: |
|
* |
|
* inDevice: |
|
* The device for which to find the available bounds. |
|
* |
|
* outAvailableRect: |
|
* On exit, contains the available bounds for the given device. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetAvailableWindowPositioningBounds( |
|
GDHandle inDevice, |
|
Rect * outAvailableRect); |
|
|
|
|
|
|
|
/* |
|
* GetAvailableWindowPositioningRegion() |
|
* |
|
* Summary: |
|
* Returns the available window positioning region on the given |
|
* screen (i.e., the screen rect minus the MenuBar and Dock if |
|
* located on that screen). |
|
* |
|
* Discussion: |
|
* GetAvailableWindowPositionRegion differs from |
|
* GetAvailableWindowPositioningBounds in that the Bounds API |
|
* removes the entire area that may theoretically be covered by the |
|
* Dock, even if the the Dock does not currently reach from edge to |
|
* edge of the device on which it is positioned. The Region API |
|
* includes the area at the sides of the Dock that is not covered by |
|
* the Dock in the available region. |
|
* |
|
* Parameters: |
|
* |
|
* inDevice: |
|
* The device for which to find the available bounds. |
|
* |
|
* ioRgn: |
|
* On entry, contains a preallocated RgnHandle. On exit, the |
|
* RgnHandle has been modified to contain the available region for |
|
* the given device. |
|
* |
|
* 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 ) |
|
GetAvailableWindowPositioningRegion( |
|
GDHandle inDevice, |
|
RgnHandle ioRgn); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Visibility */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
* HideWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
HideWindow(WindowRef window) ONEWORDINLINE(0xA916); |
|
|
|
|
|
/* |
|
* [Mac]ShowWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
#if TARGET_OS_MAC |
|
#define MacShowWindow ShowWindow |
|
#endif |
|
EXTERN_API( void ) |
|
MacShowWindow(WindowRef window) ONEWORDINLINE(0xA915); |
|
|
|
|
|
/* |
|
* ShowHide() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
ShowHide( |
|
WindowRef window, |
|
Boolean showFlag) ONEWORDINLINE(0xA908); |
|
|
|
|
|
|
|
/* |
|
* [Mac]IsWindowVisible() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
#if TARGET_OS_MAC |
|
#define MacIsWindowVisible IsWindowVisible |
|
#endif |
|
EXTERN_API( Boolean ) |
|
MacIsWindowVisible(WindowRef window); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(Boolean ) MacIsWindowVisible(WindowRef window) { return ((WindowPeek)window)->visible != 0; } |
|
#else |
|
#if TARGET_OS_MAC |
|
#define IsWindowVisible(window) (((WindowPeek)window)->visible != 0) |
|
#else |
|
#define MacIsWindowVisible(window) (((WindowPeek)window)->visible != 0) |
|
#endif |
|
#endif |
|
#endif |
|
|
|
|
|
/* |
|
-------------------------------------------------------------------------------------- |
|
o.Latent window visibility |
|
-------------------------------------------------------------------------------------- |
|
*/ |
|
|
|
|
|
/* |
|
* WindowLatentVisibility |
|
* |
|
* Summary: |
|
* Reasons why a window is currently invisible when ordinarily it |
|
* would be visible. |
|
*/ |
|
typedef UInt32 WindowLatentVisibility; |
|
enum { |
|
|
|
/* |
|
* Window is a floater and floating windows are hidden |
|
*/ |
|
kWindowLatentVisibleFloater = 1 << 0, |
|
|
|
/* |
|
* Window has HideOnSuspend and we are suspended |
|
*/ |
|
kWindowLatentVisibleSuspend = 1 << 1, |
|
|
|
/* |
|
* Window has HideOnFullScreen and we are full-screen |
|
*/ |
|
kWindowLatentVisibleFullScreen = 1 << 2, |
|
|
|
/* |
|
* Window's process is hidden |
|
*/ |
|
kWindowLatentVisibleAppHidden = 1 << 3, |
|
|
|
/* |
|
* Window is in an owned group and the owner was collapsed |
|
*/ |
|
kWindowLatentVisibleCollapsedOwner = 1 << 4, |
|
|
|
/* |
|
* Window is in a HideOnCollapse group and another window in the |
|
* group was collapsed |
|
*/ |
|
kWindowLatentVisibleCollapsedGroup = 1 << 5 |
|
}; |
|
|
|
/* |
|
* IsWindowLatentVisible() |
|
* |
|
* Summary: |
|
* Indicates whether a window is visible onscreen and also whether |
|
* it is latently visible but not currently onscreen. |
|
* |
|
* Discussion: |
|
* All windows are either onscreen or offscreen. A window that is |
|
* offscreen may still be latently visible; this occurs, for |
|
* example, when a floating window is hidden as an application is |
|
* suspended. The floating window is not visible onscreen, but it is |
|
* latently visible and is only hidden due to the suspended state of |
|
* the application; when the application becomes active again, the |
|
* floating window will be placed back onscreen. |
|
* IsWindowLatentVisible may be used to determine both the window's |
|
* onscreen/offscreen status and its latent visibility (if the |
|
* window is offscreen). |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose visibility to return. |
|
* |
|
* outLatentVisible: |
|
* If the window is onscreen, the latent visibility is zero. If |
|
* the window is offscreen, this parameter is used to return the |
|
* latent visibility flags of the window. If any of the flags are |
|
* set, then the window is latently visible. |
|
* |
|
* Result: |
|
* Indicates whether the window is currently onscreen. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.5 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
IsWindowLatentVisible( |
|
WindowRef inWindow, |
|
WindowLatentVisibility * outLatentVisible); /* can be NULL */ |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
o Sheets |
|
|
|
Sheets are a new user interface object in Mac OS X. A sheet is a modal alert or dialog, |
|
but unlike a traditional alert or dialog window (which is visually separate from the |
|
frontmost document window), a sheet appears to be attached to its parent window; it |
|
moves and z-orders simultaneously with its parent. Furthermore, sheets on Mac OS X |
|
use a new type of modality called window modality. A traditional alert or dialog is |
|
app-modal; it prevents user interaction with all other windows in the current application. |
|
A sheet is window-modal; it only prevents user interaction with its parent window, and |
|
events continue to flow to other windows in the application. |
|
|
|
o Sheet Event Handling |
|
|
|
Implementing a sheet window in your application generally requires some modifications |
|
to your event-handling code. A traditional app-modal window is implemented using a modal |
|
event loop; your application starts a new event loop (either by processing events itself, |
|
or by calling ModalDialog), which does not return back to your application's main event |
|
loop until the app-modal window has closed. |
|
|
|
Starting a new event loop doesn't work with sheets, because typically the modal event loop |
|
will only handle events destined for the sheet, and not events for other windows, but |
|
a sheet only blocks events for its parent window, and your application must still handle |
|
events for the rest of its windows as normal. Therefore, you will usually not use a modal |
|
event loop to handle events in a sheet. Rather, you will show the sheet window, and then |
|
return directly back to your main event loop. The Carbon Event Manager automatically |
|
prevents events in the sheet's parent window from reaching it; events in your application's |
|
other windows are still returned to you via WaitNextEvent or your application's Carbon |
|
event handlers, where you can process them as normal. |
|
|
|
You have several choices for handling events in the sheet itself. A sheet is, at the most |
|
basic level, simply another window in your application, and you can use any of the standard |
|
event-handling APIs to receive events in the sheet. For example, you can: |
|
|
|
- receive events in the sheet via WaitNextEvent, and handle them directly in your |
|
main event loop |
|
|
|
- create the sheet using Dialog Manager APIs, and use IsDialogEvent and DialogSelect |
|
to handle events in the sheet |
|
|
|
- install Carbon event handlers on the sheet, and respond to events in your handlers |
|
|
|
Which approach you choose is up to you. |
|
|
|
o Sheets in CarbonLib |
|
|
|
The sheet window class, sheet WDEF procIDs, and ShowSheetWindow, HideSheetWindow, and |
|
GetSheetWindowParent APIs are implemented in CarbonLib starting with version 1.3. However, |
|
since Mac OS 8 and 9 do not traditionally support a window-modal user interface, sheet |
|
windows are displayed as app-modal windows by CarbonLib. From your application's perspective, |
|
event handling for a sheet in CarbonLib is the same as event handling for a sheet on X; |
|
ShowSheetWindow still returns immediately, and your application should still return back |
|
to its main event loop and be prepared to handle events in other windows. On CarbonLib, |
|
your application will simply never receive an user input in any of your other windows; |
|
since the sheet has application modality, the Carbon Event Manager will discard events |
|
in any windows other than the sheet. |
|
|
|
o.Creating a Sheet |
|
|
|
A sheet is just a normal window with a special window class: kSheetWindowClass or |
|
kSheetAlertWindowClass. As such, it can be created in any of the ways you might create |
|
a window: NewWindow, NewCWindow, CreateNewWindow, GetNewWindow, GetNewCWindow, |
|
CreateWindowFromCollection, CreateWindowFromResource, CreateWindowFromNib, NewDialog, |
|
NewColorDialog, NewFeaturesDialog, or GetNewDialog. |
|
|
|
The Window Manager defines two window classes and two WDEF procIDs for sheets: |
|
|
|
- kSheetWindowClass and kSheetAlertWindowClass |
|
- kWindowSheetProc and kWindowSheetAlertProc |
|
|
|
The window classes may be used with CreateNewWindow, CreateWindowFromCollection, and |
|
CreateWindowFromResource; the WDEF procIDs may be used with NewWindow, NewCWindow, NewDialog, |
|
NewColorDialog, NewFeaturesDialog, and in 'WDEF' and 'DLOG' resources. |
|
|
|
The first release of Mac OS X only supports kSheetWindowClass and kWindowSheetProc; |
|
it does not support kSheetAlertWindowClass or kWindowSheetAlertProc. The latter window |
|
class and procID were added in CarbonLib 1.3 and will be added to a future version of |
|
Mac OS X. A new window class and procID were necessary for CarbonLib support because |
|
sheets can be used for both alerts ("Do you want to save changes before closing this |
|
window?") and dialogs (a Navigation Services PutFile dialog). On Mac OS X, sheet windows |
|
have the same appearance when used for either an alert or a dialog, but on Mac OS 8 and 9, |
|
alert windows have a different appearance from dialog windows. Two separate window classes |
|
are necessary for CarbonLib to know whether to display a sheet using a movable alert or a |
|
movable dialog window. Therefore, it is recommended that you use kSheetAlertWindowClass when |
|
creating a sheet window that will be used to display an alert, although this is not required. |
|
|
|
o Displaying a Sheet |
|
|
|
A sheet is made visible by calling the ShowSheetWindow API. This API shows the sheet, |
|
using whatever visual effects are appropriate for the platform, and then returns immediately. |
|
On Mac OS X, it creates a window group and places the sheet and its parent window into the |
|
group; it also marks the sheet as window-modal. On CarbonLib, it marks the sheet as app-modal |
|
but does not create a window group. |
|
|
|
On Mac OS X, before the sheet window is actually made visible, ShowSheetWindow sends a |
|
kEventWindowDrawContent event to the sheet window, asking it to draw its content into the |
|
window's offscreen buffer. The sheet must handle this event, or its content area will be |
|
blank after the sheet becomes visible. |
|
|
|
In some cases, this handler is automatically provided for you: |
|
|
|
- If you create your sheet window using the Dialog Manager, the Dialog Manager |
|
automatically installs a handler for this event that calls DrawDialog, so you |
|
don't need to install the handler yourself. |
|
|
|
- If you install the standard Carbon window event handler on your sheet window |
|
(using kWindowStandardHandlerAttribute or InstallStandardEventHandler), the |
|
standard handler automatically handles this event and calls DrawControls. |
|
|
|
Typically, your event handling code (whether it uses WaitNextEvent, the Dialog Manager, |
|
or Carbon event handlers) will receive and respond to events in the sheet until the |
|
user does something that should cause the sheet to close. This might be clicking in an |
|
OK or Cancel button, for example. At that time, your event handling code should call |
|
HideSheetWindow. The sheet window will hide, but will not be destroyed, so you can use |
|
it again later if you want. |
|
*/ |
|
/* |
|
* ShowSheetWindow() |
|
* |
|
* Summary: |
|
* Shows a sheet window using appropriate visual effects. |
|
* |
|
* Discussion: |
|
* ShowSheetWindow is implemented in both CarbonLib 1.3 and Mac OS |
|
* X. Since Mac OS 9 does not use a window-modal user interface for |
|
* alerts and dialogs, ShowSheetWindow in CarbonLib does not bind |
|
* the sheet to the parent window in the same way that it does on |
|
* Mac OS X; instead, it shows the sheet like a standard |
|
* movable-modal dialog window. Sheet windows must use the window |
|
* classes kSheetWindowClass or kSheetAlertWindowClass to get the |
|
* right appearance on both platforms. |
|
* |
|
* Parameters: |
|
* |
|
* inSheet: |
|
* The sheet window to show. |
|
* |
|
* inParentWindow: |
|
* The sheet's parent window. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ShowSheetWindow( |
|
WindowRef inSheet, |
|
WindowRef inParentWindow); |
|
|
|
|
|
/* |
|
* HideSheetWindow() |
|
* |
|
* Summary: |
|
* Hides a sheet window using appropriate visual effects. |
|
* |
|
* Parameters: |
|
* |
|
* inSheet: |
|
* The sheet window to hide. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
HideSheetWindow(WindowRef inSheet); |
|
|
|
|
|
/* |
|
* GetSheetWindowParent() |
|
* |
|
* Summary: |
|
* Returns the parent window of a sheet. |
|
* |
|
* Parameters: |
|
* |
|
* inSheet: |
|
* The sheet window whose parent to retrieve. |
|
* |
|
* outParentWindow: |
|
* On exit, contains the parent window of the sheet. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetSheetWindowParent( |
|
WindowRef inSheet, |
|
WindowRef * outParentWindow); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
o Drawers |
|
|
|
Drawers are supported in Carbon by Jaguar and later. To create and use a drawer: |
|
|
|
- Create a window using kDrawerWindowClass. You may optionally set the background |
|
brush of the window to kThemeBrushDrawerBackground using the SetThemeWindowBackground |
|
function. |
|
|
|
- Either install the standard window event handler on the drawer window, or use |
|
your own Carbon event or WaitNextEvent code to handle user interaction with the |
|
drawer. If you do not use the standard window event handler, you should call |
|
ResizeWindow in response to clicks on the grow region of the drawer if you want |
|
the drawer to be resizable. |
|
|
|
- Install a handler on the drawer window for the kEventWindowDrawContent event. |
|
You must handle this event and draw your drawer's content so that the content |
|
will be visible when the drawer is slid out from underneath the parent window. |
|
|
|
- Set the drawer's parent window with the SetDrawerParent function. The parent is |
|
the window on which the drawer will open. |
|
|
|
- Optionally, install a Carbon event handler on the drawer or the drawer's parent |
|
window for the kEventWindowDrawerOpening/Opened/Closing/Closed events, to be notified |
|
when the drawer has started or finished opening or closing. |
|
|
|
- Optionally, set the drawer's preferred edge on the parent window with the |
|
SetDrawerPreferredEdge function. If you do not set a preferred edge, the drawer |
|
opens on the parent's left side on a left-to-right system, or on the parent's right |
|
side on a right-to-left system. |
|
|
|
- Optionally, Set the drawer's offsets with the SetDrawerOffsets function. The offsets |
|
control the amount of inset between the edge of the parent's content area and the edge |
|
of the drawer's structure. If you do not set any offsets, the drawer's edges are flush |
|
with the edges of the parent's content. |
|
|
|
- Optionally, set the drawer's minimum and maximum sizes with the SetWindowResizeLimits |
|
function. Or, install a Carbon event handler on the drawer to handle the kEventWindow- |
|
GetMinimumSize and kEventWindowGetMaximumSize events. The drawer's minimum and maximum |
|
sizes control how small or large it will resize together with the parent. If you do not |
|
set resize limits, the drawer will be capable of resizing to default small and large |
|
limits. |
|
|
|
- Call ToggleDrawer to open or close the drawer, or use OpenDrawer or CloseDrawer if |
|
you require more control over how the drawer opens or closes. |
|
*/ |
|
|
|
/* |
|
* Summary: |
|
* Indicates the parent window edge on which a drawer will be shown. |
|
*/ |
|
enum { |
|
|
|
/* |
|
* This constant is typically used with the OpenDrawer API; it |
|
* indicates that the drawer should be opened on whatever edge of the |
|
* parent window has previously been set as the drawer's preferred |
|
* edge. |
|
*/ |
|
kWindowEdgeDefault = 0, |
|
|
|
/* |
|
* The drawer should open on the top edge of the parent window. |
|
*/ |
|
kWindowEdgeTop = 1 << 0, |
|
|
|
/* |
|
* The drawer should open on the left edge of the parent window. |
|
*/ |
|
kWindowEdgeLeft = 1 << 1, |
|
|
|
/* |
|
* The drawer should open on the bottom edge of the parent window. |
|
*/ |
|
kWindowEdgeBottom = 1 << 2, |
|
|
|
/* |
|
* The drawer should open on the right edge of the parent window. |
|
*/ |
|
kWindowEdgeRight = 1 << 3 |
|
}; |
|
|
|
|
|
/* |
|
* Summary: |
|
* Indicates the current state of a drawer window. |
|
*/ |
|
enum { |
|
|
|
/* |
|
* The drawer is opening, but is not yet fully open. |
|
*/ |
|
kWindowDrawerOpening = 1, |
|
|
|
/* |
|
* The drawer is fully open. |
|
*/ |
|
kWindowDrawerOpen = 2, |
|
|
|
/* |
|
* The drawer is closing, but is not yet fully closed. |
|
*/ |
|
kWindowDrawerClosing = 3, |
|
|
|
/* |
|
* The drawer is fully closed. |
|
*/ |
|
kWindowDrawerClosed = 4 |
|
}; |
|
|
|
typedef UInt32 WindowDrawerState; |
|
|
|
/* |
|
* GetDrawerPreferredEdge() |
|
* |
|
* Summary: |
|
* Returns the preferred parent window edge of a drawer. |
|
* |
|
* Discussion: |
|
* Drawers start out with a preferred parent window edge of |
|
* kWindowEdgeDefault. On left-to-right systems, the default edge is |
|
* the left edge of the parent window; on right-to-left systems, the |
|
* default edge is the right edge. You can set the preferred edge |
|
* with SetDrawerPreferredEdge. If there's not enough room on the |
|
* preferred edge, the drawer will automatically switch to the |
|
* opposite edge. |
|
* |
|
* Parameters: |
|
* |
|
* inDrawerWindow: |
|
* The drawer window whose preferred edge to retrieve. |
|
* |
|
* Result: |
|
* The preferred edge of the drawer window. |
|
* |
|
* 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( OptionBits ) |
|
GetDrawerPreferredEdge(WindowRef inDrawerWindow); |
|
|
|
|
|
/* |
|
* SetDrawerPreferredEdge() |
|
* |
|
* Summary: |
|
* Sets the preferred parent window edge of a drawer. |
|
* |
|
* Parameters: |
|
* |
|
* inDrawerWindow: |
|
* The drawer window whose preferred edge to set. |
|
* |
|
* inEdge: |
|
* The preferred edge of the drawer window. Note that although the |
|
* WindowEdge enumeration has values appropriate for a bitfield, |
|
* the current implementation does not support receiving more than |
|
* one edge bit in this parameter. You can also pass |
|
* kWindowEdgeDefault to allow the Window Manager to pick an edge. |
|
* |
|
* 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 ) |
|
SetDrawerPreferredEdge( |
|
WindowRef inDrawerWindow, |
|
OptionBits inEdge); |
|
|
|
|
|
/* |
|
* GetDrawerCurrentEdge() |
|
* |
|
* Summary: |
|
* Returns the current parent window edge on which a drawer is |
|
* displayed. |
|
* |
|
* Discussion: |
|
* If the drawer window is currently visible, this API returns the |
|
* parent window edge on which the drawer is displayed. If the |
|
* drawer is not visible, this API determines on which edge of the |
|
* parent window the drawer should be displayed, given the current |
|
* size of the drawer, position of the parent, and preferred edge |
|
* for the drawer. |
|
* |
|
* Parameters: |
|
* |
|
* inDrawerWindow: |
|
* The drawer window whose current edge to retrieve. |
|
* |
|
* Result: |
|
* The current edge of the drawer window. |
|
* |
|
* 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( OptionBits ) |
|
GetDrawerCurrentEdge(WindowRef inDrawerWindow); |
|
|
|
|
|
/* |
|
* GetDrawerState() |
|
* |
|
* Summary: |
|
* Returns the current state of a drawer: opening, open, closing, or |
|
* closed. |
|
* |
|
* Parameters: |
|
* |
|
* inDrawerWindow: |
|
* The drawer window whose state to retrieve. |
|
* |
|
* Result: |
|
* The current state of the drawer window. |
|
* |
|
* 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( WindowDrawerState ) |
|
GetDrawerState(WindowRef inDrawerWindow); |
|
|
|
|
|
/* |
|
* GetDrawerParent() |
|
* |
|
* Summary: |
|
* Returns the parent window of a drawer. |
|
* |
|
* Parameters: |
|
* |
|
* inDrawerWindow: |
|
* The drawer window whose parent window to retrieve. |
|
* |
|
* Result: |
|
* The drawer's parent window, or NULL if the drawer has no assigned |
|
* parent. |
|
* |
|
* 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( WindowRef ) |
|
GetDrawerParent(WindowRef inDrawerWindow); |
|
|
|
|
|
/* |
|
* SetDrawerParent() |
|
* |
|
* Summary: |
|
* Sets the parent window of a drawer. |
|
* |
|
* Parameters: |
|
* |
|
* inDrawerWindow: |
|
* The drawer window whose parent window to set. |
|
* |
|
* inParent: |
|
* The drawer's new parent window, or NULL if the drawer should |
|
* have no parent. |
|
* |
|
* 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 ) |
|
SetDrawerParent( |
|
WindowRef inDrawerWindow, |
|
WindowRef inParent); |
|
|
|
|
|
|
|
/* |
|
* kWindowOffsetUnchanged |
|
* |
|
* Discussion: |
|
* Pass this value to SetDrawerOffsets to indicate that an existing |
|
* offset should not be changed. |
|
*/ |
|
#define kWindowOffsetUnchanged ((float)(-1.0)) |
|
/* |
|
* SetDrawerOffsets() |
|
* |
|
* Summary: |
|
* Sets the offsets from the beginning and end of the parent window |
|
* to the beginning and end of the drawer window. |
|
* |
|
* Discussion: |
|
* The drawer offsets control the positioning of the drawer relative |
|
* to its parent window. When a drawer is first created, its offsets |
|
* are zero. When a drawer is positioned, it is initially given a |
|
* height or width equal to the height or width of the content area |
|
* of the parent to which it is attached. If a drawer is opening on |
|
* the left side of its parent, for example, the drawer's height |
|
* will be the height of the parent's content area. In this case, |
|
* the top side of the drawer window is called the leading edge of |
|
* the drawer, and the bottom side of the drawer window is called |
|
* the trailing edge of the drawer. The drawer's size is then |
|
* adjusted by the leading and trailing offsets. The leading edge of |
|
* the drawer is moved inward by an amount equal to the leading |
|
* offset, and the trailing edge is moved inward by an amount equal |
|
* to the trailing offset. For example, if the leading and trailing |
|
* offsets are five and fifteen, then the top edge of a left-opening |
|
* drawer will be five pixels inside the top edge of the parent |
|
* window's content area, and the bottom edge of the drawer will be |
|
* fifteen pixels inside the bottom edge of the parent's content |
|
* area. |
|
* |
|
* Parameters: |
|
* |
|
* inDrawerWindow: |
|
* The drawer window whose offsets to change. |
|
* |
|
* inLeadingOffset: |
|
* The new leading offset, in pixels. Pass kWindowOffsetUnchanged |
|
* if you don't want to change the leading offset. |
|
* |
|
* inTrailingOffset: |
|
* The new trailing offset, in pixels. Pass kWindowOffsetUnchanged |
|
* if you don't want to change the trailing offset. |
|
* |
|
* 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 ) |
|
SetDrawerOffsets( |
|
WindowRef inDrawerWindow, |
|
float inLeadingOffset, |
|
float inTrailingOffset); |
|
|
|
|
|
/* |
|
* GetDrawerOffsets() |
|
* |
|
* Summary: |
|
* Returns the offsets from the beginning and end of the parent |
|
* window to the beginning and end of the drawer window. |
|
* |
|
* Parameters: |
|
* |
|
* inDrawerWindow: |
|
* The drawer window whose offsets to retrieve. |
|
* |
|
* outLeadingOffset: |
|
* On exit, contains the drawer's leading offset. Pass NULL if you |
|
* don't need this information returned. |
|
* |
|
* outTrailingOffset: |
|
* On exit, contains the drawer's trailing offset. Pass NULL if |
|
* you don't need this information returned. |
|
* |
|
* 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 ) |
|
GetDrawerOffsets( |
|
WindowRef inDrawerWindow, |
|
float * outLeadingOffset, /* can be NULL */ |
|
float * outTrailingOffset); /* can be NULL */ |
|
|
|
|
|
/* |
|
* ToggleDrawer() |
|
* |
|
* Summary: |
|
* Toggles a drawer from open to closed, or vice versa. |
|
* |
|
* Discussion: |
|
* ToggleDrawer opens the drawer if it is closed, opening, or |
|
* closing. If the drawer is open, it closes the drawer. |
|
* ToggleDrawer attemps to open the drawer on its preferred edge, |
|
* but if there is not enough room on that edge, it will try the |
|
* opposite edge instead. If there is insufficient room on either |
|
* edge, the drawer will open on the preferred edge but may extend |
|
* offscreen, under the Dock, or under the menubar. |
|
* The opening or closing of the drawer is performed asynchronously; |
|
* ToggleDrawer installs an event loop timer that opens or closes |
|
* the drawer after ToggleDrawer returns to the caller. Therefore, |
|
* the caller must be running its event loop for the drawer to open |
|
* or close. To open or close the drawer synchronously, use the |
|
* OpenDrawer or CloseDrawer APIs. |
|
* ToggleDrawer retains the drawer window while the drawer is |
|
* opening or closing, and releases it when the drawer is fully |
|
* opened or closed. |
|
* ToggleDrawer sends the kEventWindowDrawerOpening, |
|
* kEventWindowDrawerOpened, kEventWindowDrawerClosing, and |
|
* kEventWindowDrawerClosed events as the drawer opens or closes. |
|
* |
|
* Parameters: |
|
* |
|
* inDrawerWindow: |
|
* The drawer window to open or close. |
|
* |
|
* 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 ) |
|
ToggleDrawer(WindowRef inDrawerWindow); |
|
|
|
|
|
/* |
|
* OpenDrawer() |
|
* |
|
* Summary: |
|
* Opens a drawer on a specified parent window edge. |
|
* |
|
* Discussion: |
|
* OpenDrawer may open the drawer either synchronously or |
|
* asynchronously, depending on the value of the inAsync parameter. |
|
* If inAsync is true, OpenDrawer installs an event loop timer that |
|
* opens the drawer after OpenDrawer returns to the caller; |
|
* therefore, the caller must be running its event loop for the |
|
* drawer to open. If inAsync is false, OpenDrawer opens the drawer |
|
* completely before returning to the caller. |
|
* OpenDrawer retains the drawer window while the drawer is opening, |
|
* and releases it when the drawer is fully open. |
|
* OpenDrawer sends the kEventWindowDrawerOpening event to the |
|
* drawer, the drawer's parent, and the application before opening |
|
* the drawer. If an event handler for this event returns |
|
* userCanceledErr, OpenDrawer will return immediately without |
|
* opening the drawer. OpenDrawer sends the kEventWindowDrawerOpened |
|
* event to the drawer, the drawer's parent, and the application |
|
* after the drawer has finished opening. |
|
* |
|
* Parameters: |
|
* |
|
* inDrawerWindow: |
|
* The drawer window to open. |
|
* |
|
* inEdge: |
|
* The parent window edge on which to open the drawer. Pass |
|
* kWindowEdgeDefault to use the drawer's preferred edge. If there |
|
* is not enough room on the preferred edge, OpenDrawer will try |
|
* the opposite edge instead. If there is insufficient room on |
|
* either edge, the drawer will open on the preferred edge but may |
|
* extend offscreen, under the Dock, or under the menubar. |
|
* |
|
* inAsync: |
|
* Whether to open the drawer synchronously (the drawer is |
|
* entirely opened before the function call returns) or |
|
* asynchronously (the drawer opens using an event loop timer |
|
* after the function call returns). |
|
* |
|
* 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 ) |
|
OpenDrawer( |
|
WindowRef inDrawerWindow, |
|
OptionBits inEdge, |
|
Boolean inAsync); |
|
|
|
|
|
/* |
|
* CloseDrawer() |
|
* |
|
* Summary: |
|
* Closes a drawer. |
|
* |
|
* Discussion: |
|
* CloseDrawer may close the drawer either synchronously or |
|
* asynchronously, depending on the value of the inAsync parameter. |
|
* If inAsync is true, CloseDrawer installs an event loop timer that |
|
* closes the drawer after CloseDrawer returns to the caller; |
|
* therefore, the caller must be running its event loop for the |
|
* drawer to close. If inAsync is false, CloseDrawer closes the |
|
* drawer completely before returning to the caller. |
|
* CloseDrawer retains the drawer window while the drawer is |
|
* closing, and releases it when the drawer is fully closed. |
|
* CloseDrawer sends the kEventWindowDrawerClosing event to the |
|
* drawer, the drawer's parent, and the application before closing |
|
* the drawer. If an event handler for this event returns |
|
* userCanceledErr, CloseDrawer will return immediately without |
|
* closing the drawer. CloseDrawer sends the |
|
* kEventWindowDrawerClosed event to the drawer, the drawer's |
|
* parent, and the application after the drawer has finished closing. |
|
* |
|
* Parameters: |
|
* |
|
* inDrawerWindow: |
|
* The drawer window to close. |
|
* |
|
* inAsync: |
|
* Whether to close the drawer synchronously (the drawer is |
|
* entirely closed before the function call returns) or |
|
* asynchronously (the drawer closes using an event loop timer |
|
* after the function call returns). |
|
* |
|
* 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 ) |
|
CloseDrawer( |
|
WindowRef inDrawerWindow, |
|
Boolean inAsync); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Disabling Screen Redraw */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
disable and enable screen updates for changes to the current application's windows |
|
(OS X only for now) |
|
*/ |
|
|
|
/* |
|
* DisableScreenUpdates() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
DisableScreenUpdates(void); |
|
|
|
|
|
/* |
|
* EnableScreenUpdates() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
EnableScreenUpdates(void); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Toolbars */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
#define _SetWindowToolbar SetWindowToolbar |
|
/* |
|
* SetWindowToolbar() |
|
* |
|
* Discussion: |
|
* Sets the toolbar for a window. If any other toolbar is currently |
|
* bound to the window, it is released. This API does NOT add the |
|
* toolbar button to the window, your application must set the |
|
* attribute itself. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window to add the toolbar to. |
|
* |
|
* inToolbar: |
|
* The toolbar to add. |
|
* |
|
* 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 ) |
|
SetWindowToolbar( |
|
WindowRef inWindow, |
|
HIToolbarRef inToolbar); |
|
|
|
|
|
#define _GetWindowToolbar GetWindowToolbar |
|
/* |
|
* GetWindowToolbar() |
|
* |
|
* Discussion: |
|
* Gets the toolbar of a window, if any. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window to add the toolbar to. |
|
* |
|
* outToolbar: |
|
* The toolbar. You do not own the toolbar reference returned by |
|
* this function. Do not release it! It is possibly for the |
|
* toolbar returned to be NULL, indicating there is no toolbar |
|
* associated with this window. ooo NOTE: May need to change the |
|
* release strategy here. |
|
* |
|
* 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 ) |
|
GetWindowToolbar( |
|
WindowRef inWindow, |
|
HIToolbarRef * outToolbar); |
|
|
|
|
|
#define _ShowHideWindowToolbar ShowHideWindowToolbar |
|
/* |
|
* ShowHideWindowToolbar() |
|
* |
|
* Discussion: |
|
* Shows or hides a window's toolbar. Optionally, you can ask for |
|
* the transition to be animated or not. Typically, you would not |
|
* need to call this other than to set up your window accordingly. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window to show or hide the toolbar for. |
|
* |
|
* inShow: |
|
* Pass true to show the toolbar, false to hide it. |
|
* |
|
* inAnimate: |
|
* Pass true to animate the transition, false to do it quickly and |
|
* without fanfare. |
|
* |
|
* 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 ) |
|
ShowHideWindowToolbar( |
|
WindowRef inWindow, |
|
Boolean inShow, |
|
Boolean inAnimate); |
|
|
|
|
|
#define _IsWindowToolbarVisible IsWindowToolbarVisible |
|
/* |
|
* IsWindowToolbarVisible() |
|
* |
|
* Discussion: |
|
* Returns whether the toolbar (if any) attached to a window is |
|
* visible. If the window has no toolbar, false is returned. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window test the toolbar visiblity for. |
|
* |
|
* Result: |
|
* A boolean result indicating whether the toolbar is visible (true) |
|
* or not (false). |
|
* |
|
* 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( Boolean ) |
|
IsWindowToolbarVisible(WindowRef inWindow); |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Transparency */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
* SetWindowAlpha() |
|
* |
|
* Discussion: |
|
* Alters the overall alpha of a window, making the entire window |
|
* (including window frame) either more or less transparent. The |
|
* alpha is expressed as a floating point value from 0.0 (completely |
|
* transparent) to 1.0 (completely opaque). |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose alpha to modify. |
|
* |
|
* inAlpha: |
|
* The new alpha value. |
|
* |
|
* 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.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
SetWindowAlpha( |
|
WindowRef inWindow, |
|
float inAlpha); |
|
|
|
|
|
|
|
/* |
|
* GetWindowAlpha() |
|
* |
|
* Discussion: |
|
* Returns the current overall alpha value for a window. The alpha |
|
* is expressed as a floating point value from 0.0 (completely |
|
* transparent) to 1.0 (completely opaque). |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window whose alpha to return. |
|
* |
|
* outAlpha: |
|
* On exit, contains the window's current alpha value. |
|
* |
|
* 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.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
GetWindowAlpha( |
|
WindowRef inWindow, |
|
float * outAlpha); |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Properties */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
Routines available from Mac OS 8.5 forward |
|
or from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward |
|
*/ |
|
|
|
/* |
|
* GetWindowProperty() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowProperty( |
|
WindowRef window, |
|
PropertyCreator propertyCreator, |
|
PropertyTag propertyTag, |
|
UInt32 bufferSize, |
|
UInt32 * actualSize, /* can be NULL */ |
|
void * propertyBuffer); |
|
|
|
|
|
/* |
|
* GetWindowPropertySize() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowPropertySize( |
|
WindowRef window, |
|
PropertyCreator creator, |
|
PropertyTag tag, |
|
UInt32 * size); |
|
|
|
|
|
/* |
|
* SetWindowProperty() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetWindowProperty( |
|
WindowRef window, |
|
PropertyCreator propertyCreator, |
|
PropertyTag propertyTag, |
|
UInt32 propertySize, |
|
const void * propertyBuffer); |
|
|
|
|
|
/* |
|
* RemoveWindowProperty() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in WindowsLib 8.5 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
RemoveWindowProperty( |
|
WindowRef window, |
|
PropertyCreator propertyCreator, |
|
PropertyTag propertyTag); |
|
|
|
|
|
|
|
/* Routines available from Mac OS 8.1 forward when linking to CarbonLib 1.0 forward*/ |
|
|
|
enum { |
|
kWindowPropertyPersistent = 0x00000001 /* whether this property gets saved when flattening the window */ |
|
}; |
|
|
|
/* |
|
* GetWindowPropertyAttributes() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetWindowPropertyAttributes( |
|
WindowRef window, |
|
OSType propertyCreator, |
|
OSType propertyTag, |
|
UInt32 * attributes); |
|
|
|
|
|
/* |
|
* ChangeWindowPropertyAttributes() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ChangeWindowPropertyAttributes( |
|
WindowRef window, |
|
OSType propertyCreator, |
|
OSType propertyTag, |
|
UInt32 attributesToSet, |
|
UInt32 attributesToClear); |
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Utilities */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
* PinRect() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( long ) |
|
PinRect( |
|
const Rect * theRect, |
|
Point thePt) ONEWORDINLINE(0xA94E); |
|
|
|
|
|
|
|
/* |
|
* GetGrayRgn() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( RgnHandle ) |
|
GetGrayRgn(void) TWOWORDINLINE(0x2EB8, 0x09EE); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Part Tracking */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
* TrackBox() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
TrackBox( |
|
WindowRef window, |
|
Point thePt, |
|
WindowPartCode partCode) ONEWORDINLINE(0xA83B); |
|
|
|
|
|
/* |
|
* TrackGoAway() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
TrackGoAway( |
|
WindowRef window, |
|
Point thePt) ONEWORDINLINE(0xA91E); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Region Dragging */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
/* |
|
* DragGrayRgn() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( long ) |
|
DragGrayRgn( |
|
RgnHandle theRgn, |
|
Point startPt, |
|
const Rect * limitRect, |
|
const Rect * slopRect, |
|
short axis, |
|
DragGrayRgnUPP actionProc) ONEWORDINLINE(0xA905); |
|
|
|
|
|
/* |
|
* DragTheRgn() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( long ) |
|
DragTheRgn( |
|
RgnHandle theRgn, |
|
Point startPt, |
|
const Rect * limitRect, |
|
const Rect * slopRect, |
|
short axis, |
|
DragGrayRgnUPP actionProc) ONEWORDINLINE(0xA926); |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o GetAuxWin */ |
|
/* */ |
|
/* GetAuxWin is not available in Carbon */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
#if !OPAQUE_TOOLBOX_STRUCTS |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* GetAuxWin() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( Boolean ) |
|
GetAuxWin( |
|
WindowRef window, |
|
AuxWinHandle * awHndl) ONEWORDINLINE(0xAA42); |
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
#endif /* !OPAQUE_TOOLBOX_STRUCTS */ |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o C Glue */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* setwtitle() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void ) |
|
setwtitle( |
|
WindowRef window, |
|
const char * title); |
|
|
|
|
|
/* |
|
* trackgoaway() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
trackgoaway( |
|
WindowRef window, |
|
Point * thePt); |
|
|
|
|
|
/* |
|
* findwindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( short ) |
|
findwindow( |
|
Point * thePoint, |
|
WindowRef * window); |
|
|
|
|
|
/* |
|
* getwtitle() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void ) |
|
getwtitle( |
|
WindowRef window, |
|
char * title); |
|
|
|
|
|
/* |
|
* growwindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( long ) |
|
growwindow( |
|
WindowRef window, |
|
Point * startPt, |
|
const Rect * bBox); |
|
|
|
|
|
/* |
|
* newwindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( WindowRef ) |
|
newwindow( |
|
void * wStorage, |
|
const Rect * boundsRect, |
|
const char * title, |
|
Boolean visible, |
|
short theProc, |
|
WindowRef behind, |
|
Boolean goAwayFlag, |
|
long refCon); |
|
|
|
|
|
/* |
|
* newcwindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( WindowRef ) |
|
newcwindow( |
|
void * wStorage, |
|
const Rect * boundsRect, |
|
const char * title, |
|
Boolean visible, |
|
short procID, |
|
WindowRef behind, |
|
Boolean goAwayFlag, |
|
long refCon); |
|
|
|
|
|
/* |
|
* pinrect() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( long ) |
|
pinrect( |
|
const Rect * theRect, |
|
Point * thePt); |
|
|
|
|
|
/* |
|
* trackbox() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
trackbox( |
|
WindowRef window, |
|
Point * thePt, |
|
short partCode); |
|
|
|
|
|
/* |
|
* draggrayrgn() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( long ) |
|
draggrayrgn( |
|
RgnHandle theRgn, |
|
Point * startPt, |
|
const Rect * boundsRect, |
|
const Rect * slopRect, |
|
short axis, |
|
DragGrayRgnUPP actionProc); |
|
|
|
|
|
/* |
|
* dragwindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void ) |
|
dragwindow( |
|
WindowRef window, |
|
Point * startPt, |
|
const Rect * boundsRect); |
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/*--------------------------------------------------------------------------------------*/ |
|
/* o Window Accessors */ |
|
/*--------------------------------------------------------------------------------------*/ |
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* GetWindowGoAwayFlag() |
|
* |
|
* Discussion: |
|
* use GetWindowAttributes in Carbon |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( Boolean ) |
|
GetWindowGoAwayFlag(WindowRef window); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(Boolean ) GetWindowGoAwayFlag(WindowRef window) { return ((WindowPeek)window)->goAwayFlag; } |
|
#else |
|
#define GetWindowGoAwayFlag(window) (((WindowPeek)window)->goAwayFlag) |
|
#endif |
|
#endif |
|
|
|
|
|
/* |
|
* GetWindowSpareFlag() |
|
* |
|
* Discussion: |
|
* use GetWindowAttributes in Carbon |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( Boolean ) |
|
GetWindowSpareFlag(WindowRef window); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(Boolean ) GetWindowSpareFlag(WindowRef window) { return ((WindowPeek)window)->spareFlag; } |
|
#else |
|
#define GetWindowSpareFlag(window) (((WindowPeek)window)->spareFlag) |
|
#endif |
|
#endif |
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* GetWindowList() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0.2 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( WindowRef ) |
|
GetWindowList(void); |
|
|
|
|
|
|
|
/* |
|
* GetWindowPort() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( CGrafPtr ) |
|
GetWindowPort(WindowRef window); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(CGrafPtr ) GetWindowPort(WindowRef window) { return (CGrafPtr)window; } |
|
#else |
|
#define GetWindowPort(window) ((CGrafPtr)window) |
|
#endif |
|
#endif |
|
|
|
|
|
/* |
|
* GetWindowStructurePort() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.5 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API( CGrafPtr ) |
|
GetWindowStructurePort(WindowRef inWindow); |
|
|
|
|
|
|
|
/* |
|
* GetWindowKind() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( short ) |
|
GetWindowKind(WindowRef window); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(short ) GetWindowKind(WindowRef window) { return ((WindowPeek)window)->windowKind; } |
|
#else |
|
#define GetWindowKind(window) (((WindowPeek)window)->windowKind) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* IsWindowHilited() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
IsWindowHilited(WindowRef window); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(Boolean ) IsWindowHilited(WindowRef window) { return ((WindowPeek)window)->hilited != 0; } |
|
#else |
|
#define IsWindowHilited(window) (((WindowPeek)window)->hilited != 0) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* IsWindowUpdatePending() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Boolean ) |
|
IsWindowUpdatePending(WindowRef window); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(Boolean ) IsWindowUpdatePending(WindowRef window) { return (((WindowPeek) window)->updateRgn != NULL) && !EmptyRgn(((WindowPeek) window)->updateRgn); } |
|
#else |
|
#define IsWindowUpdatePending(window) ((((WindowPeek) window)->updateRgn != NULL) && !EmptyRgn(((WindowPeek) window)->updateRgn)) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* [Mac]GetNextWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0.2 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
#if TARGET_OS_MAC |
|
#define MacGetNextWindow GetNextWindow |
|
#endif |
|
EXTERN_API( WindowRef ) |
|
MacGetNextWindow(WindowRef window); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(WindowRef ) MacGetNextWindow(WindowRef window) { return (WindowRef)(((WindowPeek)window)->nextWindow); } |
|
#else |
|
#if TARGET_OS_MAC |
|
#define GetNextWindow(window) ((WindowRef)(((WindowPeek)window)->nextWindow)) |
|
#else |
|
#define MacGetNextWindow(window) ((WindowRef)(((WindowPeek)window)->nextWindow)) |
|
#endif |
|
#endif |
|
#endif |
|
|
|
|
|
/* |
|
* GetPreviousWindow() |
|
* |
|
* Summary: |
|
* Returns the window above a given window in the window list. |
|
* |
|
* Parameters: |
|
* |
|
* inWindow: |
|
* The window above this window is returned. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.6 and later |
|
* Mac OS X: in version 10.2 and later |
|
*/ |
|
EXTERN_API_C( WindowRef ) |
|
GetPreviousWindow(WindowRef inWindow); |
|
|
|
|
|
|
|
/* |
|
* GetWindowStandardState() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Rect * ) |
|
GetWindowStandardState( |
|
WindowRef window, |
|
Rect * rect); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(Rect *) GetWindowStandardState(WindowRef window, Rect *rect) { return (*(rect) = ((*(((WindowPeek)window)->dataHandle) == NULL) ? *(rect) : ((Rect*)(*(((WindowPeek)window)->dataHandle)))[1])), (rect); } |
|
#else |
|
#define GetWindowStandardState(window, rect) ((*(rect) = ((*(((WindowPeek)window)->dataHandle) == NULL) ? *(rect) : ((Rect*)(*(((WindowPeek)window)->dataHandle)))[1])), (rect)) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* GetWindowUserState() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Rect * ) |
|
GetWindowUserState( |
|
WindowRef window, |
|
Rect * rect); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(Rect *) GetWindowUserState(WindowRef window, Rect *rect) { return (*(rect) = ((*(((WindowPeek)window)->dataHandle) == NULL) ? *(rect) : ((Rect*)(*(((WindowPeek)window)->dataHandle)))[0])), (rect); } |
|
#else |
|
#define GetWindowUserState(window, rect) ((*(rect) = ((*(((WindowPeek)window)->dataHandle) == NULL) ? *(rect) : ((Rect*)(*(((WindowPeek)window)->dataHandle)))[0])), (rect)) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* SetWindowKind() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
SetWindowKind( |
|
WindowRef window, |
|
short kind); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(void) SetWindowKind(WindowRef window, short kind) { ((WindowPeek)window)->windowKind = kind; } |
|
#else |
|
#define SetWindowKind(window, kind) (((WindowPeek)window)->windowKind = kind) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* SetWindowStandardState() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
SetWindowStandardState( |
|
WindowRef window, |
|
const Rect * rect); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(void) SetWindowStandardState(WindowRef window, const Rect *rect) { Rect* stateRects = (Rect*)(*(((WindowPeek)window)->dataHandle)); if (stateRects != NULL) stateRects[1] = *rect; } |
|
#else |
|
#define SetWindowStandardState(window, rect) do { Rect* stateRects = (Rect*)(*(((WindowPeek)window)->dataHandle)); if (stateRects != NULL) stateRects[1] = *rect; } while (false) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
|
|
/* |
|
* SetWindowUserState() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
SetWindowUserState( |
|
WindowRef window, |
|
const Rect * rect); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(void) SetWindowUserState(WindowRef window, const Rect *rect) { Rect* stateRects = (Rect*)(*(((WindowPeek)window)->dataHandle)); if (stateRects != NULL) stateRects[0] = *rect; } |
|
#else |
|
#define SetWindowUserState(window, rect) do { Rect* stateRects = (Rect*)(*(((WindowPeek)window)->dataHandle)); if (stateRects != NULL) stateRects[0] = *rect; } while (false) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* SetPortWindowPort() |
|
* |
|
* Discussion: |
|
* set the current QuickDraw port to the port associated with the |
|
* window |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
SetPortWindowPort(WindowRef window); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(void) SetPortWindowPort(WindowRef window) { MacSetPort((GrafPtr)window); } |
|
#else |
|
#define SetPortWindowPort(window) (MacSetPort((GrafPtr)window)) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
|
|
/* |
|
* GetWindowPortBounds() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( Rect * ) |
|
GetWindowPortBounds( |
|
WindowRef window, |
|
Rect * bounds); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(Rect *) GetWindowPortBounds(WindowRef window, Rect *bounds) { return ((*(bounds) = (window)->portRect)), (bounds); } |
|
#else |
|
#define GetWindowPortBounds(window, bounds) (((*(bounds) = (window)->portRect)), (bounds)) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* GetWindowFromPort() |
|
* |
|
* Discussion: |
|
* Needed to 'cast up' to a WindowRef from a GrafPtr |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in CarbonAccessors.o 1.0 and later or as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( WindowRef ) |
|
GetWindowFromPort(CGrafPtr port); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API(WindowRef ) GetWindowFromPort(CGrafPtr port) { return (WindowRef)port; } |
|
#else |
|
#define GetWindowFromPort(port) ((WindowRef)port) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
/* old accessors*/ |
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* GetWindowDataHandle() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( Handle ) |
|
GetWindowDataHandle(WindowRef window); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(Handle ) GetWindowDataHandle(WindowRef window) { return ((WindowPeek)window)->dataHandle; } |
|
#else |
|
#define GetWindowDataHandle(window) (((WindowPeek)window)->dataHandle) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* SetWindowDataHandle() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void ) |
|
SetWindowDataHandle( |
|
WindowRef window, |
|
Handle data); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) SetWindowDataHandle(WindowRef window, Handle data) { ((WindowPeek)window)->dataHandle = data; } |
|
#else |
|
#define SetWindowDataHandle(window, data) (((WindowPeek)window)->dataHandle = data) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* GetWindowZoomFlag() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
GetWindowZoomFlag(WindowRef window); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(Boolean ) GetWindowZoomFlag(WindowRef window) { return ((WindowPeek)window)->spareFlag; } |
|
#else |
|
#define GetWindowZoomFlag(window) (((WindowPeek)window)->spareFlag) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* GetWindowStructureRgn() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void ) |
|
GetWindowStructureRgn( |
|
WindowRef window, |
|
RgnHandle r); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) GetWindowStructureRgn(WindowRef window, RgnHandle r) { MacCopyRgn(((WindowPeek)window)->strucRgn, r); } |
|
#else |
|
#define GetWindowStructureRgn(window, r) (MacCopyRgn(((WindowPeek)window)->strucRgn, r)) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* GetWindowContentRgn() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void ) |
|
GetWindowContentRgn( |
|
WindowRef window, |
|
RgnHandle r); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) GetWindowContentRgn(WindowRef window, RgnHandle r) { MacCopyRgn(((WindowPeek)window)->contRgn, r); } |
|
#else |
|
#define GetWindowContentRgn(window, r) (MacCopyRgn(((WindowPeek)window)->contRgn, r)) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* GetWindowUpdateRgn() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void ) |
|
GetWindowUpdateRgn( |
|
WindowRef window, |
|
RgnHandle r); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) GetWindowUpdateRgn(WindowRef window, RgnHandle r) { MacCopyRgn(((WindowPeek)window)->updateRgn, r); } |
|
#else |
|
#define GetWindowUpdateRgn(window, r) (MacCopyRgn(((WindowPeek)window)->updateRgn, r)) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/* |
|
* GetWindowTitleWidth() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( SInt16 ) |
|
GetWindowTitleWidth(WindowRef window); |
|
#if !OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(SInt16 ) GetWindowTitleWidth(WindowRef window) { return ((WindowPeek)window)->titleWidth; } |
|
#else |
|
#define GetWindowTitleWidth(window) (((WindowPeek)window)->titleWidth) |
|
#endif |
|
#endif |
|
|
|
|
|
|
|
/*--------------------------------------------------------------------------------------------------*/ |
|
/* Obsolete symbolic names */ |
|
/*--------------------------------------------------------------------------------------------------*/ |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
enum { |
|
kWindowGroupAttrSelectable = kWindowGroupAttrSelectAsLayer, |
|
kWindowGroupAttrPositionFixed = kWindowGroupAttrMoveTogether, |
|
kWindowGroupAttrZOrderFixed = kWindowGroupAttrLayerTogether |
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if PRAGMA_STRUCT_ALIGN |
|
#pragma options align=reset |
|
#elif PRAGMA_STRUCT_PACKPUSH |
|
#pragma pack(pop) |
|
#elif PRAGMA_STRUCT_PACK |
|
#pragma pack() |
|
#endif |
|
|
|
#ifdef PRAGMA_IMPORT_OFF |
|
#pragma import off |
|
#elif PRAGMA_IMPORT |
|
#pragma import reset |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#endif /* __MACWINDOWS__ */ |
|
|
|
|