Document Revision History

This table describes the changes to Handling Carbon Windows and Controls.

DateNotes
2005-07-07

Fixed bugs and updated older links. Noted that function QDAddRectToDirtyRegion should be used when drawing directly into a graphics port.

2002-09-30

Revised public release.

 

Corrected text for the kWindowCompositingAttribute in Table 2-2: The compositing mode is specific to the Control Manager, and does not have anything to do with the Quartz compositor.

 

Added info to Cycling Through Windows (Mac OS X 10.2 and Later) about the kWindowMenuIncludeRotate option that you can pass to CreateStandardWindowMenu to add a “Cycle Windows” menu item to the Window menu.

 

Corrected text for kEventControlBoundsChanged in Table 3-7: The Control Manager sends you a kEventControlDraw event after the bounds changed; you do not need to send the event to yourself.

2002-08-21

Updated review draft.

 

Updated most code examples to use the Carbon Event Manager macro GetEventTypeCount for the number of registered events rather than hard coding a specific value.

 

Updated code examples to explicitly assign universal procedure pointers (UPPs) to variables rather than inline their creation in function calls (for example, Listing 3-2). Doing so promotes better memory management as you can dispose of the UPPs when you no longer need them.

 

Added note indicating that the standard handler for kEventWindowClose automatically calls DisposeWindow,.

 

Added drawer window class to Table 2-1 and added section Manipulating Drawers (Mac OS X 10.2 and later).

 

Added kWindowCompositingAttribute, kWindowMetalAttribute, and kWindowIgnoreClicksAttribute to Table 2-2. Also corrected spelling of the kWindowResizableAttribute constant.

 

Added new section, Cycling Through Windows (Mac OS X 10.2 and Later).

 

Removed drawing into an offscreen graphics world in Listing 3-18. Because Mac OS X automatically double buffers windows, you should no longer buffer windows yourself. Also added new event, kEventWindowInit to demonstrate the Appearance Manager function SetThemeWindowBackground.

 

In Listing 3-19, added new event (kEventWindowInit) to event specification. Changed window class to movable modal to support theme background set in Listing 3-18.

 

Added new section, Drawing Using Quartz to describe the basics of using Quartz from Carbon. .

 

Added more information and code about simple control tracking to Creating a Custom Control. Also added a new section, Custom Control Tracking, and split out the registration information in Registering Your Custom Control.

 

Added new section, Introducing HIObject and HIView (Mac OS X 10. 2 and Later).

2002-04-22

Revised beta. First public release .

 

Corrected window class hierarchy in Window Classes, placing Help windows below Overlay and Utility windows.

 

Removed “combo box” from Figure 2-11.

 

Changed the advantages of Editable Unicode Text Fields. QuickDraw enhancements will soon allow you to draw antialiased text using editable text fields.

 

Changed Figure 2-27 in Drawing Events to show an update region appearing during a window resize rather than window movement. Window buffering in Mac OS X makes the latter event less likely.

 

Added note to Embedding Controls indicating that on Mac OS X (but not Mac OS 9) you can embed controls from one window into another.

 

Removed sample code from Adding Window Proxy Icons, as it needs to be updated.

 

In Creating a Custom Control, added caveats indicating that the control or window drawn using the Appearance Manager DrawThemeXXXX functions don’t necessarily appear wholly within the bounds you pass into the function.

 

Added index.

2002-04-04

Beta draft.

 

Book title changed to Inside Mac OS X: Handling Carbon Windows and Controls from Inside Carbon: Handling Windows and Controls.

 

Added more information about new window naming conventions in Anatomy of a Window.

 

Added definition of a control indicator to Controls and the Glossary

 

Added help windows to window layer hierarchy in Window Classes

 

Added text to Window Classes to define the difference between window layering and window ordering.

 

Added kWindoeToolbarButtonAttribute to Table 2-2.

 

Pop-up buttons renamed pop-up menus and moved to a separate section: Pop-Up Controls.

 

Scrolling text boxes renamed Scrolling Text Fields.

 

Edit text fields renamed Editable Text Fields.

 

Edit Unicode text fields renamed Editable Unicode Text Fields.

 

User panes renamed Custom panes.

 

Visual Separators renamed Separator Lines.

 

Placards moved from “Button Controls” to Miscellaneous Controls.

 

Added new section, Accessibility and Section 508 Compliance.

 

Added text promoting the virtues of Interface Builder over other layout methods in Using Interface Builder. Also added info emphasizing compatibility with older resource-based windows and controls.

 

Added note to Creating a Window From a Nib file reminding developers to create separate nib files if they contain localizable text.

 

Emphasized that in Window Bounds Changed Events that a window resize must be constrained so that it doesn’t overwrite the Dock.

 

Added usage do’s and don’ts from the Aqua HIG in Creating and Displaying Sheets.

 

Added new sections, Changing the Modification State and Ordering Windows.

 

Added Get/SetWindowProperty functions to Window Reference Constants.

 

Added new section,Adding Window Proxy Icons.

 

Added new section Window Groups (Mac OS X Only).

 

Cleaned up terminology in Live Scrolling. “Scroll bar” refers to the entire control. Replaced “scroll control value” with “scroller value.”

 

Added new material to Custom Windows and Controls, including Creating a Custom Control.

 

Added additional glossary terms.

 

Added this Document Version History.

2002-01-28

Alpha draft for internal review.