SlideShare a Scribd company logo
1
World Headquarters
Cincinnati, Ohio
Cincom® ObjectStudio®
New Native GUI
Implementation Preview:
A Technical Overview
UI Unlimited
Overview
• Intention and Goals
• Some Windows™ Definitions
• Architectural Overview
• Announcements
• Sample Code
3
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
Some Windows™ Definitions
• Window Classes
• Window Procedure
• Window Messages
5
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
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
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
Architectural Overview
• UIView
 UITransparentWindow
 UIChildWindow
 UIControl
• Windows GDI
• GDI+
9
UIView
• UIView class
 registerClass
 WndProc
 MessageMap
 Message Handling
• UIView
 privateCreate
10
UIView class>>registerClass
11
UIView class>>WndProc
12
UIView class>>MessageMap
13
UIView>>WM_CHAR:msg:wParam:lParam
14
UIView>>privateCreate
15
UIChildWindow
• Superclass for all child windows
• Subclasses are window classes
like
 UITabPage
 UIDrawPad
 UIImgDisplay
 (…)
16
UIControl
• Superclass for all Controls /
Widgets
• Subclasses are Controls / Widgets
like
 UITreeView
 UIListView
 UIEdit
• UIMultilineEdit
• UIRichEdit
 (…)
17
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
Windows GDI
With the introduction of Windows XP, GDI was
deprecated in favor of its successor, the C++ based
GDI+ subsystem.
19
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
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
Used In
• UIBitmapDisplay
• UIImgDisplay
• UIDrawPad
• UIChart
 UILineGraph
 UIBarChart
 UIPieChart
22
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
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
Sample Code
• TestUI
• TestGdipClock
• TestPathGradient
• (…)
25
Some Controls / Widgets
26
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
(athomas@cincom.com) for more information
Contact Information
Star Team (Smalltalk Strategic Resources)
– Suzanne Fortman (sfortman@cincom.com)
Cincom Smalltalk Program Director
– Arden Thomas (athomas@cincom.com)
Cincom Smalltalk Product Manager
– Jeremy Jordan (jjordan@cincom.com)
Cincom Smalltalk Marketing Manager
http://www.cincomsmalltalk.com
Thanks for listening

More Related Content

PDF
Cairo Graphics Kit
PPS
08 gui 11
PDF
Developing Secure Authentication Using Chrome Custom Tabs - Citrix
PPTX
Windows programming
PPT
Windows programming ppt
PPTX
Windows 8 Hot or Not
PPTX
Radu vunvulea building and testing windows 8 metro style applications using ...
PPT
Android class provider in mumbai
Cairo Graphics Kit
08 gui 11
Developing Secure Authentication Using Chrome Custom Tabs - Citrix
Windows programming
Windows programming ppt
Windows 8 Hot or Not
Radu vunvulea building and testing windows 8 metro style applications using ...
Android class provider in mumbai

Similar to UI Unlimited (20)

PPT
PDF
Rapid2d C++ Windows8
PPTX
Android programming Assignment Help
PPT
DOTNET
PPT
DotNet Introduction
PDF
Visual programming lab
PPTX
Auto it - AnhPC
PPT
VB.Net GUI Unit_01
PDF
How to modernise WPF and Windows Forms applications with Windows Apps SDK
PDF
Griffon for the Enterprise
PPTX
PPTX
UNIT3-session1 on creating a visual graphical user interface using c#
PPT
Introduction to Android Development
PPTX
A Developer's View of Windows 8
PPT
Android overview
PPTX
Android course (lecture1)
PDF
Climberreport
PDF
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
PDF
DocDokuPLM presentation - OW2Con 2015 Community Award winner
Rapid2d C++ Windows8
Android programming Assignment Help
DOTNET
DotNet Introduction
Visual programming lab
Auto it - AnhPC
VB.Net GUI Unit_01
How to modernise WPF and Windows Forms applications with Windows Apps SDK
Griffon for the Enterprise
UNIT3-session1 on creating a visual graphical user interface using c#
Introduction to Android Development
A Developer's View of Windows 8
Android overview
Android course (lecture1)
Climberreport
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
Ad

More from ESUG (20)

PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
PDF
Directing Generative AI for Pharo Documentation
PDF
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
PDF
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
PDF
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
PDF
Analysing Python Machine Learning Notebooks with Moose
PDF
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
PDF
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
PDF
Package-Aware Approach for Repository-Level Code Completion in Pharo
PDF
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
PDF
An Analysis of Inline Method Refactoring
PDF
Identification of unnecessary object allocations using static escape analysis
PDF
Control flow-sensitive optimizations In the Druid Meta-Compiler
PDF
Clean Blocks (IWST 2025, Gdansk, Poland)
PDF
Encoding for Objects Matters (IWST 2025)
PDF
Challenges of Transpiling Smalltalk to JavaScript
PDF
Immersive experiences: what Pharo users do!
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
PDF
Cavrois - an Organic Window Management (ESUG 2025)
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
Micromaid: A simple Mermaid-like chart generator for Pharo
Directing Generative AI for Pharo Documentation
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
Analysing Python Machine Learning Notebooks with Moose
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
Package-Aware Approach for Repository-Level Code Completion in Pharo
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
An Analysis of Inline Method Refactoring
Identification of unnecessary object allocations using static escape analysis
Control flow-sensitive optimizations In the Druid Meta-Compiler
Clean Blocks (IWST 2025, Gdansk, Poland)
Encoding for Objects Matters (IWST 2025)
Challenges of Transpiling Smalltalk to JavaScript
Immersive experiences: what Pharo users do!
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
Cavrois - an Organic Window Management (ESUG 2025)
Ad

Recently uploaded (20)

PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Hybrid model detection and classification of lung cancer
PDF
Encapsulation theory and applications.pdf
PDF
August Patch Tuesday
PDF
Web App vs Mobile App What Should You Build First.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Mushroom cultivation and it's methods.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PPTX
Tartificialntelligence_presentation.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
SOPHOS-XG Firewall Administrator PPT.pptx
Zenith AI: Advanced Artificial Intelligence
WOOl fibre morphology and structure.pdf for textiles
Group 1 Presentation -Planning and Decision Making .pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Hybrid model detection and classification of lung cancer
Encapsulation theory and applications.pdf
August Patch Tuesday
Web App vs Mobile App What Should You Build First.pdf
A comparative analysis of optical character recognition models for extracting...
Mushroom cultivation and it's methods.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Tartificialntelligence_presentation.pptx

UI Unlimited

  • 1. 1 World Headquarters Cincinnati, Ohio Cincom® ObjectStudio® New Native GUI Implementation Preview: A Technical Overview
  • 3. Overview • Intention and Goals • Some Windows™ Definitions • Architectural Overview • Announcements • Sample Code 3
  • 4. 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
  • 5. Some Windows™ Definitions • Window Classes • Window Procedure • Window Messages 5
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. Architectural Overview • UIView  UITransparentWindow  UIChildWindow  UIControl • Windows GDI • GDI+ 9
  • 10. UIView • UIView class  registerClass  WndProc  MessageMap  Message Handling • UIView  privateCreate 10
  • 16. UIChildWindow • Superclass for all child windows • Subclasses are window classes like  UITabPage  UIDrawPad  UIImgDisplay  (…) 16
  • 17. UIControl • Superclass for all Controls / Widgets • Subclasses are Controls / Widgets like  UITreeView  UIListView  UIEdit • UIMultilineEdit • UIRichEdit  (…) 17
  • 18. 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. Windows GDI With the introduction of Windows XP, GDI was deprecated in favor of its successor, the C++ based GDI+ subsystem. 19
  • 20. 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
  • 21. 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
  • 22. Used In • UIBitmapDisplay • UIImgDisplay • UIDrawPad • UIChart  UILineGraph  UIBarChart  UIPieChart 22
  • 23. 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. 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
  • 25. Sample Code • TestUI • TestGdipClock • TestPathGradient • (…) 25
  • 26. Some Controls / Widgets 26
  • 27. 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 (athomas@cincom.com) for more information
  • 28. Contact Information Star Team (Smalltalk Strategic Resources) – Suzanne Fortman (sfortman@cincom.com) Cincom Smalltalk Program Director – Arden Thomas (athomas@cincom.com) Cincom Smalltalk Product Manager – Jeremy Jordan (jjordan@cincom.com) Cincom Smalltalk Marketing Manager http://www.cincomsmalltalk.com