The C64 OS Programmer's Guide is being written
This guide is being written and released and few chapters at a time. If a chapter seems to be empty, or if you click a chapter in the table of contents but it loads up Chapter 1, that's mostly likely because the chapter you've clicked doesn't exist yet.
Discussion of development topics are on-going about what to put in this guide. The discusssions are happening in the C64 OS Community Support Discord server, available to licensed C64 OS users.
C64 OS PROGRAMMER'S GUIDE
Class Reference: TKObj
Overview
TKObj is the root class. It inherits from nothing, and all other classes inherit, ultimately,
from it.
TKObj is mostly an abstract superclass which defines the ISA pointer at the core of every
Toolkit object. The ISA pointer is what makes a memory structure in fact an object and not
just a generic memory structure. By pointing to the class definition, it becomes possible
to lookup methods which are capable of acting upon this object and its properties.
There is very little point to instantiating TKObj directly. Its init method does nothing.
Its delete_ method only frees the memory
that was previous allocated with malloc to hold
the new object. And it has no other methods or properties. Additionally, TKObj is not a
subclass of TKView, which means it cannot be appended to a view hierarchy.
Subclassing notes
There is only one class included with C64 OS that inherits directly from TKObj, and that
class is TKView. All other classes inherit either directly or
indirectly from TKView. If you want to create any kind of
Toolkit user interface class, you should inherit from TKView
or one of its subclasses. TKView provides all of the logic for
event propagation, and node properties, and positioning, anchoring and sizing properties.
Although Toolkit is primarily designed to be used to build user interfaces, separating
TKObj from TKView opens the door to allow
Applications to create non-UI related subclasses, which inherit directly from TKObj.
These can be used for other purposes such as data modeling.
Class Definition
//os/tk/h/:tkobj.h
| Property | Type | Size | Offset |
|---|---|---|---|
| super_ | superclass pointer | 2 | 0 |
| size_ | object size | 2 | 2 |
| init_ | method | 3 | 4 |
| delete_ | method | 3 | 7 |
Object Definition
//os/tk/s/:tkobj.s Object Size: 2 (+3) bytes
| Property | Type | Size | Offset |
|---|---|---|---|
| isa_ | class pointer | 2 | 0 |
Relationships
Inherits from: Nothing. TKObj is the root object.
Parent Section: Class Reference
Next Section: Subclassing
Next Chapter: Writing an Application
Table of Contents
This document is subject to revision updates.
Last modified: Jul 02, 2024
