Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
AppearanceSample-5/UDialogUtils.cp
/* |
File: UDialogUtils.cp |
Contains: Dialog item utilities |
Version: Mac OS X |
Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. |
("Apple") in consideration of your agreement to the following terms, and your |
use, installation, modification or redistribution of this Apple software |
constitutes acceptance of these terms. If you do not agree with these terms, |
please do not use, install, modify or redistribute this Apple software. |
In consideration of your agreement to abide by the following terms, and subject |
to these terms, Apple grants you a personal, non-exclusive license, under AppleÕs |
copyrights in this original Apple software (the "Apple Software"), to use, |
reproduce, modify and redistribute the Apple Software, with or without |
modifications, in source and/or binary forms; provided that if you redistribute |
the Apple Software in its entirety and without modifications, you must retain |
this notice and the following text and disclaimers in all such redistributions of |
the Apple Software. Neither the name, trademarks, service marks or logos of |
Apple Computer, Inc. may be used to endorse or promote products derived from the |
Apple Software without specific prior written permission from Apple. Except as |
expressly stated in this notice, no other rights or licenses, express or implied, |
are granted by Apple herein, including but not limited to any patent rights that |
may be infringed by your derivative works or by other works in which the Apple |
Software may be incorporated. |
The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO |
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED |
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN |
COMBINATION WITH YOUR PRODUCTS. |
IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR |
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION |
OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT |
(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN |
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
Copyright © 1997-2001 Apple Computer, Inc., All Rights Reserved |
*/ |
#include "AppearanceSamplePrefix.h" |
#include "UDialogUtils.h" |
// |
// GetItemHandle |
// |
// Returns the handle to the specified dialog item. |
// |
Handle |
UDialogUtils::GetItemHandle( DialogPtr theDialog, SInt16 item ) |
{ |
SInt16 itemType; |
Handle itemHand; |
Rect itemRect; |
::GetDialogItem( theDialog, item, &itemType, &itemHand, &itemRect ); |
return itemHand; |
} |
// |
// SetItemHandle |
// |
// Sets the handle of the specified dialog item to the handle given. |
// |
void |
UDialogUtils::SetItemHandle( DialogPtr theDialog, SInt16 item, Handle handle ) |
{ |
SInt16 itemType; |
Handle itemHand; |
Rect itemRect; |
::GetDialogItem( theDialog, item, &itemType, &itemHand, &itemRect ); |
::SetDialogItem( theDialog, item, itemType, handle, &itemRect ); |
} |
// |
// GetItemRect |
// |
// Gets the bounding rectangle of the specified dialog item. |
// |
void |
UDialogUtils::GetItemRect( DialogPtr theDialog, SInt16 item, Rect& rect ) |
{ |
SInt16 itemType; |
Handle itemHand; |
::GetDialogItem( theDialog, item, &itemType, &itemHand, &rect ); |
} |
// |
// SetItemRect |
// |
// Sets the bounding rectangle of the specified dialog item to the given rectangle. |
// |
void |
UDialogUtils::SetItemRect( DialogPtr theDialog, SInt16 item, const Rect& rect ) |
{ |
SInt16 itemType; |
Handle itemHand; |
Rect itemRect; |
::GetDialogItem( theDialog, item, &itemType, &itemHand, &itemRect ); |
::SetDialogItem( theDialog, item, itemType, itemHand, &rect ); |
} |
// |
// FlashItem |
// |
// This routine is used to flash a button for the cases when the user presses a key that |
// 'clicks' a dialog button. If the item specified is not a button, the routine does nothing. |
// |
void |
UDialogUtils::FlashItem( DialogPtr theDialog, SInt16 item ) |
{ |
ControlHandle control; |
UInt32 ticks; |
OSErr err; |
err = ::GetDialogItemAsControl( theDialog, item, &control ); |
if ( err == noErr ) |
{ |
HiliteControl( control, 1 ); |
Delay( 8, &ticks ); |
HiliteControl( control, 0 ); |
} |
} |
// |
// ToggleCheckBox |
// |
// This routine simply toggles a check box. |
// |
void |
UDialogUtils::ToggleCheckBox( DialogPtr dialog, SInt16 item ) |
{ |
SInt16 newState = 0; |
if ( GetItemValue( dialog, item ) == 0 ) |
newState = 1; |
SetItemValue( dialog, item, newState ); |
} |
// |
// SetItemValue |
// |
// This routine sets the value of the given item to the value passed in. |
// |
void |
UDialogUtils::SetItemValue( DialogPtr dialog, SInt16 item, SInt16 value ) |
{ |
ControlHandle control; |
OSErr err; |
err = ::GetDialogItemAsControl( dialog, item, &control ); |
if ( err ) return; |
::SetControlValue( control, value ); |
} |
// |
// GetItemValue |
// |
// This routine gets the value of the given item and returns it. |
// |
SInt16 |
UDialogUtils::GetItemValue( DialogPtr dialog, SInt16 item ) |
{ |
ControlHandle control; |
OSErr err; |
err = ::GetDialogItemAsControl( dialog, item, &control ); |
if ( err ) return 0; |
return ::GetControlValue( control ); |
} |
// |
// SetItemText |
// |
// This routine sets the text of the given item to the value passed in. |
// |
void |
UDialogUtils::SetItemText( DialogPtr dialog, SInt16 item, StringPtr text ) |
{ |
SInt16 itemType; |
Handle itemHand; |
Rect itemRect; |
ControlHandle root; |
if ( GetRootControl( GetDialogWindow( dialog ), &root ) == noErr ) |
::GetDialogItemAsControl( dialog, item, (ControlHandle*)&itemHand ); |
else |
::GetDialogItem( dialog, item, &itemType, &itemHand, &itemRect ); |
::SetDialogItemText( itemHand, text ); |
} |
// |
// GetItemText |
// |
// This routine gets the text of the given item and returns it. |
// |
void |
UDialogUtils::GetItemText( DialogPtr dialog, SInt16 item, StringPtr text ) |
{ |
SInt16 itemType; |
Handle itemHand; |
Rect itemRect; |
::GetDialogItem( dialog, item, &itemType, &itemHand, &itemRect ); |
::GetDialogItemText( itemHand, text ); |
} |
// |
// EnableDialogItem |
// |
// This routine enables or disables a specified item. enableIt is true for enabling, false |
// to disable. |
// |
void |
UDialogUtils:: EnableDialogItem( DialogPtr dialog, SInt16 item, Boolean enableIt ) |
{ |
ControlHandle control; |
OSErr err; |
err = ::GetDialogItemAsControl( dialog, item, &control ); |
if ( err ) return; |
if ( enableIt ) |
::ActivateControl( control ); |
else |
{ |
::DeactivateControl( control ); |
} |
} |
// |
// SetFontStyle |
// |
// This routine sets the font style of a dialog item. |
// |
void |
UDialogUtils::SetFontStyle( DialogPtr dialog, SInt16 item, ControlFontStyleRec& style ) |
{ |
ControlHandle control; |
OSErr err; |
err = ::GetDialogItemAsControl( dialog, item, &control ); |
if ( err == noErr ) |
::SetControlFontStyle( control, &style ); |
} |
Copyright © 2005 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2005-06-27