![Page 1: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/1.jpg)
1
World Headquarters
Cincinnati, Ohio
Cincom® ObjectStudio® New Native GUI
Implementation Preview:
A Technical Overview
![Page 2: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/2.jpg)
![Page 3: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/3.jpg)
Overview
• Intention and Goals
• Some Windows™ Definitions
• Architectural Overview
• Announcements
• Sample Code
3
![Page 4: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/4.jpg)
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
![Page 5: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/5.jpg)
Some Windows™ Definitions
• Window Classes
• Window Procedure
• Window Messages
5
![Page 6: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/6.jpg)
Window Classes
A window class is a set of attributes that the system uses
as a template to create a window. Every window is a
member of a window class. All window classes are
process specific.
6
![Page 7: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/7.jpg)
Window Procedure
Every window class has an associated window
procedure — 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
![Page 8: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/8.jpg)
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 obtain
input. 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
![Page 9: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/9.jpg)
Architectural Overview
• UIView
UITransparentWindow
UIChildWindow
UIControl
• Windows GDI
• GDI+
9
![Page 10: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/10.jpg)
UIView
• UIView class
registerClass
WndProc
MessageMap
Message Handling
• UIView
privateCreate
10
![Page 11: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/11.jpg)
UIView class>>registerClass
11
![Page 12: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/12.jpg)
UIView class>>WndProc
12
![Page 13: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/13.jpg)
UIView class>>MessageMap
13
![Page 14: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/14.jpg)
UIView>>WM_CHAR:msg:wParam:lParam
14
![Page 15: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/15.jpg)
UIView>>privateCreate
15
![Page 16: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/16.jpg)
UIChildWindow
• Superclass for all child windows
• Subclasses are window classes
like
UITabPage
UIDrawPad
UIImgDisplay
(…)
16
![Page 17: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/17.jpg)
UIControl
• Superclass for all Controls /
Widgets
• Subclasses are Controls / Widgets
like
UITreeView
UIListView
UIEdit
• UIMultilineEdit
• UIRichEdit
(…)
17
![Page 18: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/18.jpg)
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
![Page 19: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/19.jpg)
Windows GDI
With the introduction of Windows XP, GDI was
deprecated in favor of its successor, the C++ based
GDI+ subsystem.
19
![Page 20: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/20.jpg)
GDI+
―GDI+ adds anti-aliased 2D graphics, floating point
coordinates, 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
![Page 21: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/21.jpg)
GDI+
Windows GDI+ exposes a flat API
that consists of about 600
functions
The functions are mapped into
Smalltalk classes, that reflect the
C++ hierarchy
21
![Page 22: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/22.jpg)
Used In
• UIBitmapDisplay
• UIImgDisplay
• UIDrawPad
• UIChart
UILineGraph
UIBarChart
UIPieChart
22
![Page 23: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/23.jpg)
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
![Page 24: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/24.jpg)
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 see
the effect
24
![Page 25: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/25.jpg)
Sample Code
• TestUI
• TestGdipClock
• TestPathGradient
• (…)
25
![Page 26: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/26.jpg)
Some Controls / Widgets
26
![Page 27: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/27.jpg)
27
If you want to know more, get your hands on the
code and tell us what you think, please register for
our OST-DEV program.
See our Product Manager Arden Thomas
([email protected]) for more information
![Page 28: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/28.jpg)
Contact Information
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
![Page 29: Cincom® ObjectStudio® New Native GUI Implementation Preview](https://reader033.vdocuments.site/reader033/viewer/2022052413/559bd65c1a28abbd678b4626/html5/thumbnails/29.jpg)
Thanks for listening