SlideShare una empresa de Scribd logo
1 de 29
1
World Headquarters
Cincinnati, Ohio
Cincom® ObjectStudio®
New Native GUI
Implementation Preview:
A Technical Overview
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

Más contenido relacionado

Similar a Cincom® ObjectStudio® New Native GUI Implementation Preview

DotNet Introduction
DotNet IntroductionDotNet Introduction
DotNet Introduction
nandhu8124
 
Visual programming lab
Visual programming labVisual programming lab
Visual programming lab
Soumya Behera
 
VB.Net GUI Unit_01
VB.Net GUI Unit_01VB.Net GUI Unit_01
VB.Net GUI Unit_01
Prashanth Shivakumar
 

Similar a Cincom® ObjectStudio® New Native GUI Implementation Preview (20)

Windows programming
Windows programmingWindows programming
Windows programming
 
Windows programming ppt
Windows programming pptWindows programming ppt
Windows programming ppt
 
Windows 8 Hot or Not
Windows 8 Hot or NotWindows 8 Hot or Not
Windows 8 Hot or Not
 
Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...
 
Android class provider in mumbai
Android class provider in mumbaiAndroid class provider in mumbai
Android class provider in mumbai
 
Unit 2
Unit 2Unit 2
Unit 2
 
Rapid2d C++ Windows8
Rapid2d C++ Windows8Rapid2d C++ Windows8
Rapid2d C++ Windows8
 
Android programming Assignment Help
Android programming Assignment HelpAndroid programming Assignment Help
Android programming Assignment Help
 
DotNet Introduction
DotNet IntroductionDotNet Introduction
DotNet Introduction
 
DOTNET
DOTNETDOTNET
DOTNET
 
Visual programming lab
Visual programming labVisual programming lab
Visual programming lab
 
Auto it - AnhPC
Auto it - AnhPCAuto it - AnhPC
Auto it - AnhPC
 
VB.Net GUI Unit_01
VB.Net GUI Unit_01VB.Net GUI Unit_01
VB.Net GUI Unit_01
 
How to modernise WPF and Windows Forms applications with Windows Apps SDK
How to modernise WPF and Windows Forms applications with Windows Apps SDKHow to modernise WPF and Windows Forms applications with Windows Apps SDK
How to modernise WPF and Windows Forms applications with Windows Apps SDK
 
Project
ProjectProject
Project
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the Enterprise
 
W1.pptx
W1.pptxW1.pptx
W1.pptx
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
A Developer's View of Windows 8
A Developer's View of Windows 8A Developer's View of Windows 8
A Developer's View of Windows 8
 
Android overview
Android overviewAndroid overview
Android overview
 

Más de ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Más de ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Cincom® ObjectStudio® New Native GUI Implementation Preview

  • 1. 1 World Headquarters Cincinnati, Ohio Cincom® ObjectStudio® New Native GUI Implementation Preview: A Technical Overview
  • 2.
  • 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