Fenestra User's Guide


Contents

Introduction

1 Tutorial: Tic-tac-toe
1.1 The application: a tic-tac-toe game
1.2 The model
1.3 The view
1.4 The options dialog

2 Library overview
2.1 A portable Win32 library
2.2 Design principles
2.3 Design patterns
2.3.1 Event model
2.3.2 Command objects
2.3.3 On inheritance
2.3.4 Dialog construction
2.3.5 On the multiple document interface
2.4 Library layout
2.5 Building systems
2.5.1 Installation
2.5.2 System description
2.5.3 Low-level linking
2.5.4 Making programs with TowerEiffel
2.5.5 Making programs with ISE Eiffel
2.5.6 Making programs with SIG Visual Eiffel
2.5.7 Making programs with SmallEiffel
2.5.8 Supported C compilers

3 The `Windows' cluster
3.1 Event model and event processing
3.2 The fundamental window class
3.2.1 Initialisation and destruction
3.2.2 Characteristics
3.2.3 Keyboard events
3.2.4 Mouse events
3.2.5 Drawing the window's content
3.3 Specialised windows
3.3.1 Child windows
3.3.2 Overlapped windows
3.3.3 The application class
3.4 Complementary classes for windows
3.4.1 Virtual key
3.4.2 Mouse handler
3.4.3 Caret
3.4.4 Mouse cursor
3.5 Command classes
3.6 Menu system
3.6.1 Popup menus and the menu bar
3.6.2 Menu items
3.6.3 Keyboard accelerators
3.7 Help commands
3.8 Clipboard access
3.9 Standard dialogs
3.9.1 File name dialogs
3.9.2 Message box
3.9.3 Font selection dialog
3.9.4 Colour selection dialog
3.9.5 Print setup dialog box
3.10 Miscellaneous classes

4 The `Controls' cluster
4.1 Cluster structure
4.2 Overview of the dialog box system
4.3 Dialog boxes
4.4 Dialog elements or abstract controls
4.4.1 Basic dialog element
4.4.2 Buttons
4.4.3 List boxes
4.4.4 String box and text box
4.4.5 Scrollbars
4.5 The fundamental concrete control
4.5.1 Customisation and addition of controls
4.6 Standard system controls
4.6.1 The standard control hierarchy
4.6.2 Buttons
4.6.3 Static controls
4.6.4 Lists and editable fields
4.6.5 Scrollbars

5 The `Graphics' cluster
5.1 Basic persistence
5.2 Geometry primitives
5.3 Graphic devices
5.3.1 The abstract device
5.3.2 Screen device
5.3.3 Printer devices
5.3.4 Metafiles
5.3.5 Bitmap devices
5.4 Graphic device settings
5.4.1 Metrics
5.4.2 Graphic mapping and coordinate systems
5.4.3 Graphic mode
5.4.4 Colours
5.4.5 Pens
5.4.6 Brushes
5.4.7 Colour palette
5.4.8 Fonts
5.5 Graphics primitives
5.5.1 Lines and rectangles
5.5.2 Polygon and polylines
5.5.3 Bezier curves
5.5.4 Elliptic figures
5.5.5 Text output
5.5.6 Bitmap operations
5.5.7 Metafiles
5.5.8 Icons
5.5.9 Helper facility

6 The `System' cluster
6.1 Low-level memory block
6.2 Files and file management
6.2.1 IO Streams
6.2.2 Binary files
6.2.3 Text files
6.2.4 File management
6.2.5 File properties
6.3 Synchronisation
6.3.1 Mutex
6.3.2 Semaphores
6.3.3 Synchronisation event
6.4 Time and timers
6.4.1 System time
6.4.2 Timers
6.5 System registry access
6.6 Multimedia
6.7 Miscellaneous

A Eiffel conventions
A.1 Use of indexing
A.2 Public interface
A.3 Documentation assertions
A.4 English language usage
A.5 Eiffel usage guidelines

B An introduction to Pylon
B.1 Lists
B.2 Basic persistence
B.3 Date and time

C Resource compiler primer
C.1 Resource compilation and the rc command
C.2 Resource types

D C Runtime System
D.1 Portability of the runtime
D.2 Low-level event processing
D.3 Win32 API issues

E Bibliography