Part V. Migrating from Previous Versions of CTK+

This part describes what you need to change in programs use older versions of CTK+ so that they can use the new features. It also mentions how to convert applications using widgets found in the libgnomeui library to use their counterparts in CTK+.

Table of Contents

Migrating from CTK+ 2.x to CTK+ 3
Preparation in CTK+ 2.x
Do not include individual headers
Do not use deprecated symbols
Use accessor functions instead of direct access
Replace CDK_<keyname> with CDK_KEY_<keyname>
Use GIO for launching applications
Use cairo for drawing
Changes that need to be done at the time of the switch
Replace size_request by get_preferred_width/height
Replace CdkRegion by cairo_region_t
Replace CdkPixmap by cairo surfaces
Replace CdkColormap by CdkVisual
CdkDrawable is gone
Event filtering
Backend-specific code
CtkPlug and CtkSocket
The CtkWidget::draw signal
CtkProgressBar orientation
Check your expand and fill flags
Scrolling changes
CtkObject is gone
CtkEntryCompletion signal parameters
Resize grips
Prevent mixed linkage
Install CTK+ modules in the right place
Theming changes
Migrating themes
Migrating theme engines
Extending the CSS parser
Using the CSS file format
A checklist for widgets
Parsing of custom resources
Bonus points
Migrating from libunique to GApplication or CtkApplication
Uniqueness
Commands and Messages
Migrating from EggSMClient to CtkApplication
Migrating from other containers to CtkGrid
CtkBox versus CtkGrid: packing
CtkBox versus CtkGrid: sizing
CtkBox versus CtkGrid: spacing
Migration Details Checklist
Implement CtkWidget::popup_menu
Use CdkEventExpose.region
Test for modifier keys correctly
Use named icons
Migrating from one CTK+ 3 release to another
Changes in CTK+ 3.2
Changes in CTK+ 3.4
Changes in CTK+ 3.6
Changes in CTK+ 3.8
Changes in CTK+ 3.10
Changes in CTK+ 3.12
Changes in CTK+ 3.14
Changes in CTK+ 3.16
Changes in CTK+ 3.18
Changes in CTK+ 3.20
Changes in CTK+ 3.22