Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
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.
 
 
 
 
 
 

2376 lines
62 KiB

/*
File: HIView.h
Contains: HIView routines
Version: QuickTime 7.3
Copyright: (c) 2007 (c) 2001-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 __HIVIEW__
#define __HIVIEW__
#ifndef __CONTROLS__
#include <Controls.h>
#endif
#ifndef __CARBONEVENTS__
#include <CarbonEvents.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
typedef ControlRef HIViewRef;
typedef ControlID HIViewID;
typedef ControlPartCode HIViewPartCode;
/*
* kHIViewWindowContentID
*
* Discussion:
* The standard view ID for the content view of a 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 const HIViewID kHIViewWindowContentID;
/*
* kHIViewWindowGrowBoxID
*
* Discussion:
* The standard view ID for the grow box view of a window. Not all
* windows have grow boxes, so be aware that you might not find this
* view if you look for it.
*
* 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 const HIViewID kHIViewWindowGrowBoxID;
/*
* Discussion:
* HIViewZOrderOp
*/
enum {
/*
* Indicates we wish to order a view above another view.
*/
kHIViewZOrderAbove = 1,
/*
* Indicates we wish to order a view below another view.
*/
kHIViewZOrderBelow = 2
};
typedef UInt32 HIViewZOrderOp;
/*==============================================================================*/
/* CONTROL ATTRIBUTES */
/*==============================================================================*/
/*
* Discussion:
* View Attributes
*/
enum {
/*
* When set, the control will send the command it generates to the
* user focus and propagate as it would naturally from there. The
* default is to send the command to itself and then to its parent
* and so forth.
*/
kHIViewSendCommandToUserFocus = (1 << 0)
};
/*==============================================================================*/
/* HIOBJECT SUPPORT */
/*==============================================================================*/
/* The HIObject class ID for the HIView class. */
#define kHIViewClassID CFSTR("com.apple.hiview")
/*==============================================================================*/
/* EMBEDDING */
/*==============================================================================*/
/*
* HIViewGetRoot()
*
* Discussion:
* Returns the root view for a window.
*
* Parameters:
*
* inWindow:
* The window to get the root for.
*
* Result:
* The root view for the window, or NULL if an invalid window is
* passed.
*
* 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( HIViewRef )
HIViewGetRoot(WindowRef inWindow);
/*
* HIViewAddSubview()
*
* Discussion:
* Adds a subview to the given parent. The new subview is added to
* the front of the list of subviews (i.e it is made topmost).
*
* Parameters:
*
* inParent:
* The view which will receive the new subview.
*
* inNewChild:
* The subview being added.
*
* 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 )
HIViewAddSubview(
HIViewRef inParent,
HIViewRef inNewChild);
/*
* HIViewRemoveFromSuperview()
*
* Discussion:
* Removes a view from its parent.
*
* Parameters:
*
* inView:
* The view to remove.
*
* 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 )
HIViewRemoveFromSuperview(HIViewRef inView);
/*
* HIViewGetSuperview()
*
* Discussion:
* Returns a view's parent view.
*
* Parameters:
*
* inView:
* The view whose parent you are interested in getting.
*
* Result:
* An HIView reference, or NULL if this view has no parent or is
* invalid.
*
* 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( HIViewRef )
HIViewGetSuperview(HIViewRef inView);
/*
* HIViewGetFirstSubview()
*
* Discussion:
* Returns the first subview of a container. The first subview is
* the topmost subview in z-order.
*
* Parameters:
*
* inView:
* The view whose subview you are fetching.
*
* Result:
* An HIView reference, or NULL if this view has no subviews or is
* invalid.
*
* 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( HIViewRef )
HIViewGetFirstSubview(HIViewRef inView);
/*
* HIViewGetLastSubview()
*
* Discussion:
* Returns the last subview of a container. The last subview is the
* bottommost subview in z-order.
*
* Parameters:
*
* inView:
* The view whose subview you are fetching.
*
* Result:
* An HIView reference, or NULL if this view has no subviews or is
* invalid.
*
* 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( HIViewRef )
HIViewGetLastSubview(HIViewRef inView);
/*
* HIViewGetNextView()
*
* Discussion:
* Returns the next view after the one given, in z-order.
*
* Parameters:
*
* inView:
* The view to use as reference.
*
* Result:
* An HIView reference, or NULL if this view has no view behind it
* or is invalid.
*
* 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( HIViewRef )
HIViewGetNextView(HIViewRef inView);
/*
* HIViewGetPreviousView()
*
* Discussion:
* Returns the previous view before the one given, in z-order.
*
* Parameters:
*
* inView:
* The view to use as reference.
*
* Result:
* An HIView reference, or NULL if this view has no view in front of
* it or is invalid.
*
* 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( HIViewRef )
HIViewGetPreviousView(HIViewRef inView);
/*
* HIViewSetZOrder()
*
* Discussion:
* Allows you to change the front-to-back ordering of sibling views.
*
* Parameters:
*
* inView:
* The view whose Z-order you wish to change.
*
* inOp:
* Indicates to order inView above or below inOther.
*
* inOther:
* Another optional view to use as a reference. You can pass NULL
* to mean an absolute position. For example, passing
* kHIViewZOrderAbove and NULL will move a view to the front of
* all of its siblings. Likewise, passing kHIViewZOrderBelow and
* NULL will move it to the back.
*
* 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 )
HIViewSetZOrder(
HIViewRef inView,
HIViewZOrderOp inOp,
HIViewRef inOther); /* can be NULL */
/*==============================================================================*/
/* VISIBILITY */
/*==============================================================================*/
/*
* HIViewSetVisible()
*
* Discussion:
* Hides or shows a view. Marks the area the view will occupy or
* used to occupy as needing to be redrawn later.
*
* Parameters:
*
* inView:
* The view to hide or show.
*
* inVisible:
* A boolean value which indicates whether you wish to hide the
* view (false) or show the view (true).
*
* 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 )
HIViewSetVisible(
HIViewRef inView,
Boolean inVisible);
/*
* HIViewIsVisible()
*
* Discussion:
* Returns whether a view is visible.
*
* Parameters:
*
* inView:
* The view whose visibility you wish to determine.
*
* Result:
* A boolean value indicating whether the view is visible (true) or
* hidden (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 )
HIViewIsVisible(HIViewRef inView);
/*==============================================================================*/
/* POSITIONING */
/*==============================================================================*/
/*
* HIViewGetBounds()
*
* Discussion:
* Returns the local bounds of a view. The local bounds are the
* coordinate system that is completely view-relative. A view's top
* left coordinate starts out at 0, 0. Most operations are done in
* these local coordinates. Moving a view is done via the frame
* instead.
*
* Parameters:
*
* inView:
* The view whose bounds you wish to determine.
*
* outRect:
* The local bounds of the view.
*
* 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 )
HIViewGetBounds(
HIViewRef inView,
HIRect * outRect);
/*
* HIViewGetFrame()
*
* Discussion:
* Returns the frame of a view. The frame is the bounds of a view
* relative to its parent's local coordinate system.
*
* Parameters:
*
* inView:
* The view whose frame you wish to determine.
*
* outRect:
* The frame of the view.
*
* 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 )
HIViewGetFrame(
HIViewRef inView,
HIRect * outRect);
/*
* HIViewSetFrame()
*
* Discussion:
* Sets the frame of a view. This effectively moves the view within
* its parent. It also marks the view (and anything that was exposed
* behind it) to be redrawn.
*
* Parameters:
*
* inView:
* The view whose frame you wish to change.
*
* inRect:
* The new frame of the view.
*
* 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 )
HIViewSetFrame(
HIViewRef inView,
const HIRect * inRect);
/*
* HIViewMoveBy()
*
* Discussion:
* Moves a view by a certain distance, relative to its current
* location. This affects a view's frame, but not its bounds.
*
* Parameters:
*
* inView:
* The view you wish to move.
*
* inDX:
* The horizontal distance to move the view. Negative values move
* the view to the left, positive values to the right.
*
* inDY:
* The vertical distance to move the view. Negative values move
* the view upward, positive values downward.
*
* 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 )
HIViewMoveBy(
HIViewRef inView,
float inDX,
float inDY);
/*
* HIViewPlaceInSuperviewAt()
*
* Discussion:
* Places a view at an absolute location within its parent. This
* affects the view's frame, but not its bounds.
*
* Parameters:
*
* inView:
* The view you wish to position.
*
* inX:
* The absolute horizontal coordinate at which to position the
* view.
*
* inY:
* The absolute vertical coordinate at which to position the view.
*
* 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 )
HIViewPlaceInSuperviewAt(
HIViewRef inView,
float inX,
float inY);
/*
* HIViewReshapeStructure()
*
* Discussion:
* This is for use by custom views. If a view decides that its
* structure will change shape, it should call this. This tells the
* Toolbox to recalc things and invalidate as appropriate. You might
* use this when gaining/losing a focus ring, for example.
*
* Parameters:
*
* inView:
* The view to reshape and invalidate.
*
* 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 )
HIViewReshapeStructure(HIViewRef inView);
/*==============================================================================*/
/* HIT TESTING/EVENT HANDLING */
/*==============================================================================*/
/*
* HIViewGetViewForMouseEvent()
*
* Discussion:
* Returns the appropriate view to handle a mouse event. This is a
* little higher-level than GetDeep/ShallowSubviewHit. This routine
* will find the deepest view that should handle the mouse event,
* but along the way, it sends Carbon Events to each view asking it
* to return the appropriate subview. This allows parent views to
* catch clicks on their subviews. This is the recommended function
* to use before processing mouse events. Using one of the more
* primitive functions may result in an undefined behaviour.
*
* Parameters:
*
* inView:
* The view to start from. You should pass the window's root view.
*
* inEvent:
* The mouse event in question.
*
* outView:
* The view that the mouse event should be sent to.
*
* 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 )
HIViewGetViewForMouseEvent(
HIViewRef inView,
EventRef inEvent,
HIViewRef * outView);
/*
* HIViewClick()
*
* Discussion:
* After a successful call to HIViewGetViewForMouseEvent for a mouse
* down event, you should call this function to have the view handle
* the click.
*
* Parameters:
*
* inView:
* The view to handle the event.
*
* inEvent:
* The mouse event to handle.
*
* 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 )
HIViewClick(
HIViewRef inView,
EventRef inEvent);
/*
* HIViewSimulateClick()
*
* Discussion:
* This function is used to simulate a mouse click on a given view.
*
* Parameters:
*
* inView:
* The view to test the part hit.
*
* inPartToClick:
* The part the view should consider to be clicked.
*
* inModifiers:
* The modifiers the view can consider for its click action.
*
* outPartClicked:
* The part that was hit, can be kControlNoPart if no action
* occurred.
*
* 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 )
HIViewSimulateClick(
HIViewRef inView,
HIViewPartCode inPartToClick,
UInt32 inModifiers,
ControlPartCode * outPartClicked);
/*
* HIViewGetPartHit()
*
* Discussion:
* Given a view, and a view-relative point, this function returns
* the part code hit as determined by the view.
*
* Parameters:
*
* inView:
* The view to test the part hit.
*
* inPoint:
* The view-relative point to use.
*
* outPart:
* The part hit by inPoint.
*
* 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 )
HIViewGetPartHit(
HIViewRef inView,
const HIPoint * inPoint,
HIViewPartCode * outPart);
/*
* HIViewGetSubviewHit()
*
* Discussion:
* Returns the child of the given view hit by the point passed in.
* This is more primitive than using HIViewGetViewForMouseEvent, and
* should be used only in non-event-handling cases.
*
* Parameters:
*
* inView:
* The view you wish to position.
*
* inPoint:
* The mouse coordinate to use. This is passed in the local
* coordinate system of inView.
*
* inDeep:
* Pass true to find the deepest child hit, false to go only one
* level deep (just check direct children of inView).
*
* outView:
* The view hit by inPoint, or NULL if no subview was hit.
*
* 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 )
HIViewGetSubviewHit(
HIViewRef inView,
const HIPoint * inPoint,
Boolean inDeep,
HIViewRef * outView);
/*==============================================================================*/
/* DISPLAY */
/*==============================================================================*/
/*
* HIViewGetNeedsDisplay()
*
* Discussion:
* Returns true if the view passed in or any subview of it requires
* redrawing (i.e. part of it has been invalidated).
*
* Parameters:
*
* inView:
* The view to inspect.
*
* Result:
* A boolean 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( Boolean )
HIViewGetNeedsDisplay(HIViewRef inView);
/*
* HIViewSetNeedsDisplay()
*
* Discussion:
* Marks a view as needing to be completely redrawn, or completely
* valid.
*
* Parameters:
*
* inView:
* The view to mark dirty.
*
* inNeedsDisplay:
* A boolean which indicates whether inView needs to be redrawn or
* not.
*
* 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 )
HIViewSetNeedsDisplay(
HIViewRef inView,
Boolean inNeedsDisplay);
/*
* HIViewSetNeedsDisplayInRegion()
*
* Discussion:
* Marks a portion of a view as needing to be redrawn, or valid.
*
* Parameters:
*
* inView:
* The view to mark dirty.
*
* inRgn:
* The region to mark dirty or clean.
*
* inNeedsDisplay:
* A boolean which indicates whether or not inRgn should be added
* to the display region or removed from it.
*
* 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 )
HIViewSetNeedsDisplayInRegion(
HIViewRef inView,
RgnHandle inRgn,
Boolean inNeedsDisplay);
/*
* HIViewFlashDirtyArea()
*
* Discussion:
* Debugging aid. Flashes the region which would be redrawn at the
* next draw time for an entire window.
*
* Parameters:
*
* inWindow:
* The window to flash the dirty region for.
*
* 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 )
HIViewFlashDirtyArea(WindowRef inWindow);
/*
* HIViewGetSizeConstraints()
*
* Discussion:
* Return the minimum and maximum size for a control. A control must
* respond to this protocol to get meaningful results. These sizes
* can be used to help autoposition subviews, for example.
*
* Parameters:
*
* inView:
* The view to inspect.
*
* outMinSize:
* The minimum size the view can be.
*
* outMaxSize:
* The maximum size the view can be.
*
* 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 )
HIViewGetSizeConstraints(
HIViewRef inView,
HISize * outMinSize,
HISize * outMaxSize);
/*==============================================================================*/
/* COORDINATE SYSTEM CONVERSION */
/*==============================================================================*/
/*
* HIViewConvertPoint()
*
* Discussion:
* Converts a point from one view to another. Both views must have a
* common ancestor, i.e. they must both be in the same window.
*
* Parameters:
*
* ioPoint:
* The point to convert.
*
* inSourceView:
* The view whose coordinate system ioPoint is starting out in.
* You can pass NULL to indicate that ioPoint is a window-relative
* point.
*
* inDestView:
* The view whose coordinate system ioPoint should end up in. You
* can pass NULL to indicate that ioPoint is a window-relative
* point.
*
* 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 )
HIViewConvertPoint(
HIPoint * ioPoint,
HIViewRef inSourceView,
HIViewRef inDestView);
/*
* HIViewConvertRect()
*
* Discussion:
* Converts a rectangle from one view to another. Both views must
* have a common ancestor, i.e. they must both be in the same window.
*
* Parameters:
*
* ioRect:
* The rectangle to convert.
*
* inSourceView:
* The view whose coordinate system ioRect is starting out in. You
* can pass NULL to indicate that ioRect is a window-relative
* rectangle.
*
* inDestView:
* The view whose coordinate system ioRect should end up in. You
* can pass NULL to indicate that ioRect is a window-relative
* rectangle.
*
* 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 )
HIViewConvertRect(
HIRect * ioRect,
HIViewRef inSourceView,
HIViewRef inDestView);
/*
* HIViewConvertRegion()
*
* Discussion:
* Converts a region from one view to another. Both views must have
* a common ancestor, i.e. they must both be in the same window.
*
* Parameters:
*
* ioRgn:
* The region to convert.
*
* inSourceView:
* The view whose coordinate system ioRgn is starting out in. You
* can pass NULL to indicate that ioRgn is a window-relative
* region.
*
* inDestView:
* The view whose coordinate system ioRgn should end up in. You
* can pass NULL to indicate that ioRgn is a window-relative
* region.
*
* 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 )
HIViewConvertRegion(
RgnHandle ioRgn,
HIViewRef inSourceView,
HIViewRef inDestView);
/*
* HIViewSetDrawingEnabled()
*
* Discussion:
* Turns control drawing on or off. You can use this to ensure that
* no drawing occurs wrt to the control. Even Draw1Control will not
* draw! HIViewSetNeedsDisplay is also rendered useless when drawing
* is off.
*
* Parameters:
*
* inView:
* The view to enable or disable drawing for.
*
* inEnabled:
* A boolean value indicating whether drawing should be on (true)
* or off (false).
*
* 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 )
HIViewSetDrawingEnabled(
HIViewRef inView,
Boolean inEnabled);
/*
* HIViewIsDrawingEnabled()
*
* Discussion:
* Determines if drawing is currently enabled for a control.
*
* Parameters:
*
* inView:
* The view to get the drawing state for.
*
* Result:
* A boolean value indicating whether drawing is on (true) or off
* (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 )
HIViewIsDrawingEnabled(HIViewRef inView);
/*
* HIViewScrollRect()
*
* Discussion:
* Scrolls a view's contents, or a portion thereof. This will
* actually blit the contents of the view as appropriate to scroll,
* and then invalidate those portions which need to be redrawn. Be
* warned that this is a raw bit scroll. Anything that might overlap
* the target view will get thrashed as well.
*
* Parameters:
*
* inView:
* The view to scroll.
*
* inRect:
* The rect to scroll. Pass NULL to mean the entire view. The rect
* passed cannot be bigger than the view's bounds. It must be in
* the local coordinate system of the view.
*
* inDX:
* The horizontal distance to scroll. Positive values shift to the
* right, negative values shift to the left.
*
* inDY:
* The vertical distance to scroll. Positive values shift
* downward, negative values shift upward.
*
* 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 )
HIViewScrollRect(
HIViewRef inView,
const HIRect * inRect, /* can be NULL */
float inDX,
float inDY);
/*
* HIViewSetBoundsOrigin()
*
* Discussion:
* This API sets the origin of the view. This effectively also moves
* all subcontrols of a view as well. This call will invalidate the
* view.
*
* Parameters:
*
* inView:
* The view whose origin you wish to adjust.
*
* inX:
* The X coordinate.
*
* inY:
* The Y coordinate.
*
* 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 )
HIViewSetBoundsOrigin(
HIViewRef inView,
float inX,
float inY);
/*==============================================================================*/
/* KEYBOARD FOCUS */
/*==============================================================================*/
/*
* HIViewAdvanceFocus()
*
* Discussion:
* Advances the focus to the next most appropriate view. Unless
* overriden in some fashion (either by overriding certain carbon
* events or using the HIViewSetNextFocus API), the Toolbox will use
* a spacially determinant method of focusing, attempting to focus
* left to right, top to bottom in a window, taking groups of
* controls into account.
*
* Parameters:
*
* inRootForFocus:
* The subtree to manipulate. The focus will never leave
* inRootToFocus. Typically you would pass the content of the
* window, or the root. If focused on the toolbar, for example,
* the focus is limited to the toolbar only. In this case, the
* Toolbox passes the toolbar view in as the focus root for
* example.
*
* inModifiers:
* The EventModifiers of the keyboard event that ultimately caused
* the call to HIViewAdvanceFocus. These modifiers are used to
* determine the focus direction as well as other alternate
* focusing behaviors.
*
* 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 )
HIViewAdvanceFocus(
HIViewRef inRootForFocus,
EventModifiers inModifiers);
/*
* HIViewGetFocusPart()
*
* Discussion:
* Returns the currently focused part of the given view.
*
* Parameters:
*
* inView:
* The view to inquire about.
*
* outFocusPart:
* The part currently focused.
*
* 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 )
HIViewGetFocusPart(
HIViewRef inView,
HIViewPartCode * outFocusPart);
/*
* HIViewSubtreeContainsFocus()
*
* Discussion:
* Given a view, this function checks to see if it or any of its
* children currently are the keyboard focus. If so, true is
* returned as the function result.
*
* Parameters:
*
* inSubtreeStart:
* The view to start searching at.
*
* Result:
* A boolean result.
*
* 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 )
HIViewSubtreeContainsFocus(HIViewRef inSubtreeStart);
/*
* HIViewSetNextFocus()
*
* Discussion:
* This function hard-wires the next view to shift focus to whenever
* the keyboard focus is advanced.
*
* Parameters:
*
* inView:
* The view to set the next focus view for.
*
* inNextFocus:
* The view to set focus to next. Pass NULL to tell the view
* system to use the default rules.
*
* 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 )
HIViewSetNextFocus(
HIViewRef inView,
HIViewRef inNextFocus); /* can be NULL */
/*
* HIViewSetFirstSubViewFocus()
*
* Discussion:
* This function hard-wires the first subview to shift focus to
* whenever the keyboard focus is advanced and the container view is
* entered.
*
* Parameters:
*
* inParent:
* The parent view.
*
* inSubView:
* The first child which should receive focus. Pass NULL to tell
* the view system to use the default rules.
*
* 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 )
HIViewSetFirstSubViewFocus(
HIViewRef inParent,
HIViewRef inSubView); /* can be NULL */
/*==============================================================================*/
/* MISCELLANEOUS */
/*==============================================================================*/
/*
* HIViewFindByID()
*
* Discussion:
* Allows you to find a particular view by its ID. Currently, this
* call uses the ControlID type as its IDs.
*
* Parameters:
*
* inStartView:
* The view to start searching at.
*
* inID:
* The ID of the view you are looking for.
*
* outControl:
* Receives the control if found.
*
* 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 )
HIViewFindByID(
HIViewRef inStartView,
HIViewID inID,
HIViewRef * outControl);
/*
* HIViewGetAttributes()
*
* Discussion:
* Allows you to get the attributes of a view.
*
* Parameters:
*
* inView:
* The view to inspect.
*
* outAttrs:
* The attributes of the view.
*
* 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 )
HIViewGetAttributes(
HIViewRef inView,
OptionBits * outAttrs);
/*
* HIViewChangeAttributes()
*
* Discussion:
* Allows you to change the attributes of a view. You can
* simultaneously set and clear attributes.
*
* Parameters:
*
* inView:
* The view to muck with.
*
* inAttrsToSet:
* The attributes you wish to set.
*
* inAttrsToClear:
* The attributes you wish to clear.
*
* 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 )
HIViewChangeAttributes(
HIViewRef inView,
OptionBits inAttrsToSet,
OptionBits inAttrsToClear);
/*
* HIViewCreateOffscreenImage()
*
* Discussion:
* Creates an CGImageRef for the view passed in. The view and any
* children it has are rendered in the resultant image.
*
* Parameters:
*
* inView:
* The view you wish to create an image of.
*
* inOptions:
* Options. Currently you must pass 0.
*
* outFrame:
* The frame of the view within the resultant image. It is in the
* coordinate system of the image, where 0,0 is the top left
* corner of the image. This is so you can know exactly where the
* control lives in the image when the control draws outside its
* bounds for things such as shadows.
*
* outImage:
* The image of the view, including anything that would be drawn
* outside the view's frame.
*
* Result:
* An operating system status code.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Mac OS X: in version 10.2 and later
*/
EXTERN_API_C( OSStatus )
HIViewCreateOffscreenImage(
HIViewRef inView,
OptionBits inOptions,
HIRect * outFrame, /* can be NULL */
CGImageRef * outImage);
/*
* HIViewDrawCGImage()
*
* Discussion:
* Draws an image in the right direction for an HIView. This is
* functionally the same as CGContextDrawImage, but it flips the
* context appropriately so that the image is drawn correctly.
* Because HIViews have their origin at the top, left, you are
* really drawing upside-down, so if you were to use the CG image
* drawing, you'd see what I mean! This call attempts to insulate
* you from that fact.
*
* Parameters:
*
* inContext:
* The context to draw in.
*
* inBounds:
* The bounds to draw the image into.
*
* inImage:
* The image to draw.
*
* Result:
* An operating system status code.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Mac OS X: in version 10.2 and later
*/
EXTERN_API_C( OSStatus )
HIViewDrawCGImage(
CGContextRef inContext,
const HIRect * inBounds,
CGImageRef inImage);
/*==============================================================================*/
/* HIGrowBoxView */
/*==============================================================================*/
/* The HIObject class ID for the HIGrowBoxView class. */
#define kHIGrowBoxViewClassID CFSTR("com.apple.higrowboxview")
/* Currently there is no direct creation API for the grow box, so you must use */
/* HIObjectCreate if you wish to create one directly. Normally, a window will */
/* create one for you, so you should generally never need to do this. */
/*
* HIGrowBoxViewSetTransparent()
*
* Discussion:
* Sets a grow box view as transparent, meaning it will draw the
* grow box lines over any content below it. When not transparent,
* it's an opaque white square with the grow lines.
*
* Parameters:
*
* inGrowBoxView:
* The grow box view reference.
*
* inTransparent:
* Pass true to make the grow view use its transparent look, false
* to give it the opaque look.
*
* 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 )
HIGrowBoxViewSetTransparent(
HIViewRef inGrowBoxView,
Boolean inTransparent);
/*
* HIGrowBoxViewIsTransparent()
*
* Discussion:
* Returns true if a grow box view is set to be transparent.
*
* Parameters:
*
* inGrowBoxView:
* The grow box view reference.
*
* Result:
* A boolean result.
*
* 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 )
HIGrowBoxViewIsTransparent(HIViewRef inGrowBoxView);
/*==============================================================================*/
/* HIScrollView */
/*==============================================================================*/
enum {
kEventClassScrollable = FOUR_CHAR_CODE('scrl')
};
enum {
kEventScrollableGetInfo = 1,
kEventScrollableInfoChanged = 2,
kEventScrollableScrollTo = 10
};
enum {
kEventParamImageSize = FOUR_CHAR_CODE('imsz'), /* type HISize*/
kEventParamViewSize = FOUR_CHAR_CODE('vwsz'), /* type HISize*/
kEventParamLineSize = FOUR_CHAR_CODE('lnsz'), /* type HISize*/
kEventParamOrigin = FOUR_CHAR_CODE('orgn') /* type HIPoint*/
};
/*
* Discussion:
* HIScrollView options
*/
enum {
/*
* This indicates that a vertical scroll bar is desired.
*/
kHIScrollViewOptionsVertScroll = (1 << 0),
/*
* This indicates that a horizontal scroll bar is desired.
*/
kHIScrollViewOptionsHorizScroll = (1 << 1),
/*
* This indicates that space for a grow box should be taken into
* account when layout out scroll bars. If both the horizontal and
* vertical scroll bars are requested, this attribute is assumed.
*/
kHIScrollViewOptionsAllowGrow = (1 << 2),
kHIScrollViewValidOptions = (kHIScrollViewOptionsVertScroll | kHIScrollViewOptionsHorizScroll | kHIScrollViewOptionsAllowGrow)
};
/*
* HIScrollViewCreate()
*
* Discussion:
* Creates a scroll view. This view has 3 parts, essentially. It can
* have one or two scroll bars (horizontal/vertical), and a view to
* be scrolled. The view to be scrolled is merely added via
* HIViewAddSubview. The scroll view will automatically connect it
* up appropriately. **** THIS MAY CHANGE
*
* Parameters:
*
* inOptions:
* Options for our scroll view. You must specify either a
* horizontal or a vertical scroll bar. If neither is passed, an
* error is returned.
*
* outView:
* The new scroll view.
*
* 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 )
HIScrollViewCreate(
OptionBits inOptions,
HIViewRef * outView);
/*
* HIScrollViewSetScrollBarAutoHide()
*
* Discussion:
* Sets a scroll view's scroll bars to auto-hide when the entire
* scrollable view it is managing can be fully displayed in its
* bounds. This is similar to the behavior you see in the Preview
* application.
*
* Parameters:
*
* inView:
* The view to affect.
*
* inAutoHide:
* The new auto-hide setting (true == auto-hide).
*
* 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 )
HIScrollViewSetScrollBarAutoHide(
HIViewRef inView,
Boolean inAutoHide);
/*
* HIScrollViewGetScrollBarAutoHide()
*
* Discussion:
* Gets a scroll view's current scroll bar auto-hide setting.
*
* Parameters:
*
* inView:
* The view to examine.
*
* Result:
* A boolean result.
*
* 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 )
HIScrollViewGetScrollBarAutoHide(HIViewRef inView);
/*==============================================================================*/
/* HIImageView */
/*==============================================================================*/
/*
* HIImageViewCreate()
*
* Discussion:
* Creates an image view. The view responds to the scrollable
* interface and can be used in a scrolling view. You can pass an
* image initially, or set one later.
*
* Parameters:
*
* inImage:
* An initial image, or NULL. You can set the image later via
* SetControlData.
*
* outControl:
* The new image view.
*
* 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 )
HIImageViewCreate(
CGImageRef inImage, /* can be NULL */
ControlRef * outControl);
enum {
kHIImageViewImageTag = FOUR_CHAR_CODE('imag') /* CGImageRef (THIS TAG IS GOING AWAY!!! USE THE APIS BELOW!)*/
};
/*
* HIImageViewSetOpaque()
*
* Discussion:
* Allows you to set whether an image view should be treated as
* opaque. If this is set to true, the image view can make certain
* optimizations for compositing and scrolling. The alpha-related
* image view APIs are rendered useless if opacity it set to true.
* An image view, when created, is opaque by default. You must pass
* false to this function in order to change the alpha, etc. or if
* your image does not fill the full bounds of the view.
*
* Parameters:
*
* inView:
* The image view to affect.
*
* inOpaque:
* The new opacity setting. Pass true to indicate you want the
* image to be treated as opaque.
*
* 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 )
HIImageViewSetOpaque(
HIViewRef inView,
Boolean inOpaque);
/*
* HIImageViewIsOpaque()
*
* Discussion:
* Allows you to determine whether an image view is opaque or not.
*
* Parameters:
*
* inView:
* The image view to query.
*
* Result:
* A boolean result, where true indicates the image view is opaque.
*
* 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 )
HIImageViewIsOpaque(HIViewRef inView);
/*
* HIImageViewSetAlpha()
*
* Discussion:
* Allows you to set the alpha for an image, making it more or less
* transparent. An alpha of 1.0 is fully opaque, and 0.0 is fully
* transparent. The default alpha for an image is 1.0.
*
* Parameters:
*
* inView:
* The image view to affect.
*
* 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.2 and later
* Mac OS X: in version 10.2 and later
*/
EXTERN_API_C( OSStatus )
HIImageViewSetAlpha(
HIViewRef inView,
float inAlpha);
/*
* HIImageViewGetAlpha()
*
* Discussion:
* Allows you to get the alpha for an image. An alpha of 1.0 is
* fully opaque, and 0.0 is fully transparent.
*
* Parameters:
*
* inView:
* The image view to query.
*
* Result:
* A floating point number representing the alpha from 0.0 through
* 1.0.
*
* 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( float )
HIImageViewGetAlpha(HIViewRef inView);
/*
* HIImageViewSetScaleToFit()
*
* Discussion:
* Normally an image view will clip to the view's bounds. Using this
* API, you can instead tell the image view to size the image to fit
* into the view bounds specified.
*
* Parameters:
*
* inView:
* The image view to affect.
*
* inScaleToFit:
* A boolean indicating whether the image should be scaled to fit
* the view bounds (true) or merely clip to the view bounds
* (false).
*
* Result:
* An operating system status code.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Mac OS X: in version 10.2 and later
*/
EXTERN_API_C( OSStatus )
HIImageViewSetScaleToFit(
HIViewRef inView,
Boolean inScaleToFit);
/*
* HIImageViewGetScaleToFit()
*
* Discussion:
* Returns whether or not an image view will scale the image it
* displays to the view bounds or merely clip to the view bounds. A
* true result means it scales.
*
* Parameters:
*
* inView:
* The image view to query.
*
* Result:
* A boolean result.
*
* 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 )
HIImageViewGetScaleToFit(HIViewRef inView);
/*
* HIImageViewSetImage()
*
* Discussion:
* Sets the image to display in an image view. The image passed in
* is retained by the view, so you may release the image after
* calling this API if you no longer need to reference it.
*
* Parameters:
*
* inView:
* The image view to affect.
*
* inImage:
* The image to set.
*
* Result:
* An operating system status code.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Mac OS X: in version 10.2 and later
*/
EXTERN_API_C( OSStatus )
HIImageViewSetImage(
HIViewRef inView,
CGImageRef inImage); /* can be NULL */
/*
* HIImageViewCopyImage()
*
* Discussion:
* Gets the image for an image view. If there is no image set on the
* view, or the view ref is invalid, NULL is returned. The image is
* retained, so you should take care to release it when you are
* finished with it.
*
* Parameters:
*
* inView:
* The image view to query.
*
* Result:
* A CoreGraphics (Quartz) image ref.
*
* 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( CGImageRef )
HIImageViewCopyImage(HIViewRef inView);
/*==============================================================================*/
/* HIComboBox */
/*==============================================================================*/
/*
* Summary:
* ComboBox attributes
*/
enum {
/*
* A constant with value zero; the lack of any attributes.
*/
kHIComboBoxNoAttributes = 0L,
/*
* The control will attempt to auto complete the text the user is
* typing with an item in the ComboBox list that is the closest
* appropriate match.
*/
kHIComboBoxAutoCompletionAttribute = (1L << 0),
/*
* The control will disclose the ComboBox list after the user enters
* text.
*/
kHIComboBoxAutoDisclosureAttribute = (1L << 1),
/*
* The items in the ComboBox list will be automatically sorted in
* alphabetical order.
*/
kHIComboBoxAutoSortAttribute = (1L << 2),
/*
* The ComboBox list will be automatically sized to fit the Human
* Interface Guidelines.
*/
kHIComboBoxAutoSizeListAttribute = (1L << 3),
/*
* The minimum set of ComboBox attributes commonly used.
*/
kHIComboBoxStandardAttributes = (kHIComboBoxAutoCompletionAttribute | kHIComboBoxAutoDisclosureAttribute | kHIComboBoxAutoSizeListAttribute)
};
/* ControlKind*/
enum {
kControlKindHIComboBox = FOUR_CHAR_CODE('cbbx')
};
/* ComboBox Part codes*/
enum {
kHIComboBoxEditTextPart = 5,
kHIComboBoxDisclosurePart = 28
};
/*
* Discussion:
* ComboBox ControlData tags available with Mac OS X 10.2 and later.
*/
enum {
/*
* Extract the contents of the ComboBox list as a CFArray. The
* CFArray will be retained: if you get the array, you own it and
* will be required to release it; if you set it the toolbox makes a
* copy of it and you are free to release your reference.
*/
kHIComboBoxListTag = FOUR_CHAR_CODE('cbls'), /* CFArrayRef; bumps the refCount on get/retains on set*/
/*
* The width of the ComboBox list. This can be customized. This
* disables the autosize attribute.
*/
kHIComboBoxListPixelWidthTag = FOUR_CHAR_CODE('cblw'), /* UInt32 */
/*
* The height of the ComboBox list. This can be customized. This
* disables the autosize attribute.
*/
kHIComboBoxListPixelHeightTag = FOUR_CHAR_CODE('cblh'), /* UInt32*/
/*
* The number of visible items in the list. This can be customized.
* This disables the autosize attribute.
*/
kHIComboBoxNumVisibleItemsTag = FOUR_CHAR_CODE('cbni') /* UInt32*/
};
/*
* HIComboBoxCreate()
*
* Summary:
* Creates a combo box control.
*
* Parameters:
*
* boundsRect:
* The bounding box of the control.
*
* text:
* The default text in the editable portion of the control. Can be
* NULL.
*
* style:
* The font style of the both editable text and the text in the
* disclosure list. Can be NULL.
*
* list:
* The default values available in the disclosure list. Can be
* NULL.
*
* inAttributes:
* The default attributes of the combo box.
*
* outComboBox:
* On exit, contains the new control.
*
* 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 )
HIComboBoxCreate(
const HIRect * boundsRect,
CFStringRef text, /* can be NULL */
const ControlFontStyleRec * style, /* can be NULL */
CFArrayRef list, /* can be NULL */
OptionBits inAttributes,
HIViewRef * outComboBox);
/*
* HIComboBoxGetItemCount()
*
* Summary:
* Get the number of items in the combo box disclosure list.
*
* Parameters:
*
* inComboBox:
* The combo box.
*
* Result:
* The number of items in the combo box disclosure list.
*
* 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( ItemCount )
HIComboBoxGetItemCount(HIViewRef inComboBox);
/*
* HIComboBoxInsertTextItemAtIndex()
*
* Summary:
* Inserts a CFString in the disclosure list
*
* Parameters:
*
* inComboBox:
* The combo box whose disclosure list the text will be inserted
* in.
*
* inIndex:
* The index that the text should be inserted in. If the index
* does not fall within the number of items in the combo box list,
* it will be appended to the end of the list.
*
* inText:
* The text item to be inserted in the combo box disclosure list.
*
* Result:
* An operating system status code.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Mac OS X: in version 10.2 and later
*/
EXTERN_API_C( OSStatus )
HIComboBoxInsertTextItemAtIndex(
HIViewRef inComboBox,
CFIndex inIndex,
CFStringRef inText);
/*
* HIComboBoxAppendTextItem()
*
* Summary:
* Appends a text item to the combo box disclosure list.
*
* Parameters:
*
* inComboBox:
* The combo box whose disclosure list the text will be appended
* to.
*
* inText:
* The text item to be appended to the combo box disclosure list.
*
* outIndex:
* On exit, the index of the new item. Can be NULL if the caller
* does not require this information.
*
* Result:
* An operating system status code.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Mac OS X: in version 10.2 and later
*/
EXTERN_API_C( OSStatus )
HIComboBoxAppendTextItem(
HIViewRef inComboBox,
CFStringRef inText,
CFIndex * outIndex); /* can be NULL */
/*
* HIComboBoxCopyTextItemAtIndex()
*
* Summary:
* Copy the text from the combo box disclosure list
*
* Parameters:
*
* inComboBox:
* The combo box that contains the text item you would like to
* copy.
*
* inIndex:
* The index of the text item. Will return paramErr if the index
* is out of bounds of the combo box list.
*
* outString:
* A copy of the string at the given index. Remember this is now
* your copy that you will need to release.
*
* Result:
* An operating system status code.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Mac OS X: in version 10.2 and later
*/
EXTERN_API_C( OSStatus )
HIComboBoxCopyTextItemAtIndex(
HIViewRef inComboBox,
CFIndex inIndex,
CFStringRef * outString);
/*
* HIComboBoxRemoveItemAtIndex()
*
* Summary:
* Remove an item from a combo box disclosure list.
*
* Parameters:
*
* inComboBox:
* The combo box that contains the disclosure list that you would
* like to remove an item from.
*
* inIndex:
* The index of the item to remove.
*
* Result:
* An operating system status code.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Mac OS X: in version 10.2 and later
*/
EXTERN_API_C( OSStatus )
HIComboBoxRemoveItemAtIndex(
HIViewRef inComboBox,
CFIndex inIndex);
/*
* HIComboBoxChangeAttributes()
*
* Summary:
* Change the attributes of a combo box
*
* Parameters:
*
* inComboBox:
* The combo box whose attributes you would like to change.
*
* inAttributesToSet:
* The attributes to set.
*
* inAttributesToClear:
* The attributes to clear.
*
* Result:
* An operating system status code.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Mac OS X: in version 10.2 and later
*/
EXTERN_API_C( OSStatus )
HIComboBoxChangeAttributes(
HIViewRef inComboBox,
OptionBits inAttributesToSet,
OptionBits inAttributesToClear);
/*
* HIComboBoxGetAttributes()
*
* Summary:
* Get the attributes of a combo box.
*
* Parameters:
*
* inComboBox:
* The combo box whose attributes you would like to obtain.
*
* outAttributes:
* The attributes of the combo box.
*
* Result:
* An operating system status code.
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Mac OS X: in version 10.2 and later
*/
EXTERN_API_C( OSStatus )
HIComboBoxGetAttributes(
HIViewRef inComboBox,
OptionBits * outAttributes);
#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 /* __HIVIEW__ */