cincom smalltalk new native gui implementation preview: a technical overview, by andreas hiltner

29
1 World Headquarters Cincinnati, Ohio Cincom®ObjectStudio® NewNa4veGUI Implementa4onPreview: ATechnicalOverview

Upload: cincom-smalltalk

Post on 14-Apr-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 2: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 3: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 4: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 5: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 6: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 7: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 8: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 9: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 10: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 11: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 12: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 13: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 14: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 15: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 16: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 17: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 18: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 19: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 20: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 21: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 22: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 23: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 24: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 25: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 26: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 27: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

Page 28: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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

 

Page 29: Cincom Smalltalk New Native GUI Implementation Preview: A Technical Overview, by Andreas Hiltner

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