cincom smalltalk new native gui implementation preview: a technical overview, by andreas hiltner
TRANSCRIPT
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 1/29
1
World Headquarters
Cincinnati, Ohio
Cincom®ObjectStudio®
NewNa4veGUIImplementa4onPreview:
ATechnicalOverview
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 2/29
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 3/29
Overview
• Intention and Goals
• Some Windows™ Definitions
• Architectural Overview
• Announcements
• Sample Code
3
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 4/29
Intention and Goals
• Modernize the UI Controls / Widgets
• Eliminate Primitives and use DLLCC
• Easy to Maintain and Extend
“A user interface is well-designed when the program
behaves exactly how the user thought it would.”
4
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 5/29
Some Windows™ Definitions
• Window Classes
• Window Procedure
• Window Messages
5
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 6/29
Window Classes
A window class is a set of attributes that the system usesas a template to create a window. Every window is a
member of a window class. All window classes are
process specific.
6
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 7/29
Window Procedure
Every window class has an associated windowprocedure — a function that processes all messages
sent or posted to all windows of the class.
All aspects of a window's appearance and behavior depend on the window procedure's response to these
messages.
7
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 8/29
Window Messages
Each window has a function, called a window procedure,that the system calls whenever it has input for the
window.
Windows do not make explicit function calls to obtaininput. Instead, they wait for the system to pass input to
them.
The system passes all input for an application to the
various windows in the application.
8
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 9/29
Architectural Overview
• UIView
§ UITransparentWindow
§ UIChildWindow
§ UIControl
• Windows GDI
• GDI+
9
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 10/29
UIView
• UIView class
§ registerClass
§ WndProc
§ MessageMap
§ Message Handling
• UIView
§ privateCreate
10
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 11/29
UIView class>>registerClass
11
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 12/29
UIView class>>WndProc
12
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 13/29
UIView class>>MessageMap
13
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 14/29
UIView>>WM_CHAR:msg:wParam:lParam
14
1
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 15/29
UIView>>privateCreate
15
16
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 16/29
UIChildWindow
• Superclass for all child windows
• Subclasses are window classes
like
§ UITabPage§ UIDrawPad
§ UIImgDisplay
§ (…)
16
17
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 17/29
UIControl
• Superclass for all Controls /Widgets
• Subclasses are Controls / Widgets
like§ UITreeView
§ UIListView
§ UIEdit
• UIMultilineEdit
• UIRichEdit
§ (…)
17
18
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 18/29
Windows GDI
The Microsoft Windows graphics device interface (GDI)enables applications to use graphics and formatted text
on both the video display and the printer.
• Negatives§ No support for modern image formats (JPG/PNG)
§ No anti-aliasing
• Positive
§ fast
18
19
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 19/29
Windows GDI
With the introduction of Windows XP, GDI wasdeprecated in favor of its successor, the C++ based GDI
+ subsystem.
19
20
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 20/29
GDI+
“GDI+ adds anti-aliased 2D graphics, floating pointcoordinates, gradient shading, more complex path
management, intrinsic support for modern graphics-file
formats like JPEG and PNG, and support for composition
of affine transformations in the 2D view pipeline.”
20
21
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 21/29
GDI+
Windows GDI+ exposes a flat APIthat consists of about 600
functions
The functions are mapped intoSmalltalk classes, that reflect the
C++ hierarchy
21
22
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 22/29
Used In
• UIBitmapDisplay
• UIImgDisplay
• UIDrawPad
• UIChart
§ UILineGraph
§ UIBarChart
§ UIPieChart
22
23
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 23/29
Announcements
Announcement is the core of class-based event notification
framework superseding the older
symbol-based trigger-event
framework and the changed/update mechanism.
23
24
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 24/29
Class TestUI
• Singleton
• Implements a test for every
UI class implemented
• Controlled by class side
methods
§ Each line in the class method
contain a single operation
§ Execute line by line to seethe effect
24
25
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 25/29
Sample Code
• TestUI
• TestGdipClock
• TestPathGradient
• (…)
25
26
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 26/29
Some Controls / Widgets
26
27
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 27/29
27
If you want to know more, get your hands on thecode and tell us what you think, please register for
our OST-DEV program.
See our Product Manager Arden Thomas
([email protected]) for more information
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 28/29
ContactInforma4on
Star Team (Smalltalk Strategic Resources)
– Suzanne Fortman ([email protected])
Cincom Smalltalk Program Director
– Arden Thomas ([email protected])
Cincom Smalltalk Product Manager
– Jeremy Jordan ([email protected])
Cincom Smalltalk Marketing Manager
http://www.cincomsmalltalk.com
7/29/2019 Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner
http://slidepdf.com/reader/full/cincom-smalltalk-new-native-gui-implementation-preview-a-technical-overview 29/29
Thanks for listening