0_ Tutorial Start Here.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"
        "http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<html lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Tutorial: Writing a custom HIView</title>
    <meta name="generator" content="BBEdit 8.2">
</head>
<body>
 
 
<h1>
Tutorial: Writing a custom HIView
</h1>
 
<p>
Custom HIViews are easy to write. Really.
</p>
 
<p>
Thanks to the Carbon Events messaging and the object based architecture of the HIView model, it is very straightforward and simple to write a custom HIView even if you never did write one before.
</p>
 
<p>
Whether you dealt with the intricacies of CDEFs or direct Quickdraw content and event management before or not, the past will not matter since you will start your coding on a very well designed view architecture.
</p>
 
<p>
This document is aimed at developers who never programmed on Mac OS before as well as developers who have been developing on Mac OS for a long time.
</p>
 
<p>
Rather than repeating the HIView architecture concepts which have already been documented in <a href="http://developer.apple.com/documentation/Carbon/Conceptual/HIViewDoc/index.html">HIView Programming Guide</a> and <a href="http://developer.apple.com/documentation/Carbon/Reference/HIViewReference/index.html">HIView Reference</a>, this document will be a tutorial showing all the necessary steps to writing a custom HIView from the very basic to advanced.
</p>
 
<p>
One of the reasons custom HIViews are easy to write is that you can implement them incrementally. You start with just a very few lines of code and you get a fully functional HIView that you can start testing. Then you just add more handlers as your needs require. Most of the handlers are orthogonal so there will be little to no interaction between them. You can easily follow this scenario: this morning I create my custom HIView and have it running before noon, this afternoon I will add custom tracking, and this evening I will add drag-and-dropping.
</p>
 
 
<a href="0_Tutorial/Minimum%20Requirements.html">
A) What are the minimum requirements?
</a>
<br>
 
<a href="0_Tutorial/Value%20and%20State.html">
B) Implementing support for value and state
</a>
<br>
 
<a href="0_Tutorial/Tracking.html">
C) Implementing support for tracking
</a>
<br>
 
<a href="0_Tutorial/Custom%20Cursor.html">
D) Implementing support for custom cursor appearance
</a>
<br>
 
<a href="0_Tutorial/Drag%20and%20Drop.html">
E) Implementing support for drag-and-drop
</a>
<br>
 
<a href="0_Tutorial/Conclusion.html">
F) Conclusion
</a>
 
 
 
 
 
 
 
 
 
 
 
</body>
</html>