SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
New Native Windows
UI Possibilities in
Cincom® ObjectStudio®
By Andreas Hiltner
-  Non-rectangular windows
-  Taskbar Notification
-  Monitor(s)
-  WindowPlacement
-  Security Identifier
-  Filename
-  Workspace
-  And much more
©2016 Cincom Systems Inc. All Rights Reserved.3
Topic
Create a non-rectangular Window using a
Region
A region is a rectangle, polygon, or ellipse
(or a combination of two or more of these
shapes) that can be filled, painted,
inverted, framed, and used to perform hit
testing (testing for the cursor location).
©2016 Cincom Systems Inc. All Rights Reserved.4
Non rectangular windows - Region
Create a non-rectangular Window using
transparent Window.
Using an image with transparent areas,
the window can assume any shape or
form
©2016 Cincom Systems Inc. All Rights Reserved.5
Non rectangular windows - Transparency
The notification area is a portion of the
taskbar that provides a temporary source
for notifications and status.
It can also be used to display icons for
system and program features that have no
presence on the desktop, such as battery
level, volume control, and network status.
The notification area has been known
historically as the system tray or status
area.
©2016 Cincom Systems Inc. All Rights Reserved.6
Taskbar Notification
Class UIDeferredMoveList allows to move several Windows in one
fell swoop, which can reduce flicker in contrast to moving each
window individually.
Simply add the Windows to the list, together with the target
rectangle and any possible flags.
Calling #moveAll will then move all those Windows to their desired
location
©2016 Cincom Systems Inc. All Rights Reserved.7
Deferred-Move-List
Class UIMonitor returns all available
monitors, currently attached to the
computer.
The display rectangle specifies
the display monitor rectangle,
expressed in virtual-screen
coordinates.
©2016 Cincom Systems Inc. All Rights Reserved.8
Monitor(s)
Work area rectangle specifies the
work area rectangle of the display
monitor that can be used by
applications, expressed in
virtual-screen coordinates. Windows
uses this rectangle to maximize an
application on the monitor. The rest
of the area in rcMonitor contains
system windows such as the task
bar and side bars.
©2016 Cincom Systems Inc. All Rights Reserved.9
Monitor(s)
Class UITitleBarInfo contains the size (rectangle) and state for the
TitleBar and each button on it, e.g. Minimize/Maximize/Help/Close
States are one or more of the following values
-  Focusable
-  Invisible
-  Offscreen
-  Unavailable
-  Pressed
©2016 Cincom Systems Inc. All Rights Reserved.10
TitleBar-Info
Class UIWindowPlacement Contains information about the placement
of a window on the screen.
-  Current show state of the window: maximized/minimized/hidden
-  The coordinates of the window's upper-left corner when the
window is minimized.
-  The coordinates of the window's upper-left corner when the
window is maximized.
-  The window's coordinates when the window is in the restored
position.
(Perfect way to store the current state of a window and restore later)
©2016 Cincom Systems Inc. All Rights Reserved.11
WindowPlacement
Class WndSID wraps the Security Identifier (SID) of a user/group/computer
account.
A SID is a data structure of variable length that identifies user, group, and
computer accounts. Every account on a network is issued a unique SID
when the account is first created.
Internal processes in Windows refer to an account's SID rather than the
account's user or group name.
(Check, if the process is running with Admin rights, if those rights are
needed or not recommended)
©2016 Cincom Systems Inc. All Rights Reserved.12
Security Identifier
Extensions to class PCFilename
-  Added known folders, e.g.
-  Desktop
-  Documents
-  Music
-  Pictures
-  Program Data
-  Program Files
-  Temp
-  Videos
©2016 Cincom Systems Inc. All Rights Reserved.13
Filename
Extensions to class PCFilename
-  Added known folders, e.g. Desktop, Documents,
Music, Pictures, Program Data, Program Files,
Temp, Videos
-  Create a temporary file in a certain folder (preferably
the Temp folder), with a certain prefix and
©2016 Cincom Systems Inc. All Rights Reserved.14
Filename cont’d
Extensions to class PCFilename
-  Retrieve the name of and handle to the executable
(.exe) file associated with a specific document file.
-  Extract the system icon for a file
©2016 Cincom Systems Inc. All Rights Reserved.15
Filename cont’d
Class PowerState provides access to Windows power management
features.
The power management functions and messages retrieve the system
power status, notify applications of power management events, and
notify the system of each application's power requirements.
©2016 Cincom Systems Inc. All Rights Reserved.16
Power State
-  displayRequired Forces the display to be on by resetting the display
idle timer. Windows 8: This flag can only keep a display turned on, it
can't turn on a display that's currently off.
-  hibernate/suspend/forceHibernate/forceSuspend Suspends the
system by shutting power down. The system either enters a suspend
(sleep) state or hibernation (S4).
-  systemRequired Forces the system to be in the working state by
resetting the system idle timer.
©2016 Cincom Systems Inc. All Rights Reserved.17
Power State
Class OSMemInfo contains information about the current state of both
physical and virtual memory, including extended memory.
-  memoryLoad A number between 0 and 100 that specifies the
approximate percentage of physical memory that is in use (0 indicates
no memory use and 100 indicates full memory use).
-  totalPhysical The amount of actual physical memory, in bytes.
-  availablePhysical The amount of physical memory currently available,
in bytes. This is the amount of physical memory that can be
immediately reused without having to write its contents to disk first. It is
the sum of the size of the standby, free, and zero lists.
©2016 Cincom Systems Inc. All Rights Reserved.18
Memory Info
-  totalPageFile The current committed memory limit for the system or the
current process, whichever is smaller, in bytes.
-  availablePageFile The maximum amount of memory the current
process can commit, in bytes. This value is equal to or smaller than the
system-wide available commit value.
-  totalVirtual The size of the user-mode portion of the virtual address
space of the calling process, in bytes. This value depends on the type
of process, the type of processor, and the configuration of the operating
system.
-  availableVirtual The amount of unreserved and uncommitted memory
currently in the user-mode portion of the virtual address space of the
calling process, in bytes.
©2016 Cincom Systems Inc. All Rights Reserved.19
Memory Info
OSPerformanceCounter
Counters are used to provide information as to how well the operating
system or an application, service, or driver is performing.
The counter data can help determine system bottlenecks and fine-tune
system and application performance.
The operating system, network, and devices provide counter data that an
application can consume to provide users with a graphical view of how
well the system is performing.
©2016 Cincom Systems Inc. All Rights Reserved.20
Performance Counter
Class Keyboard loads a new input locale identifier (formerly called
the keyboard layout) into the system.
Prior to Windows 8: Several input locale identifiers can be
loaded at a time, but only one per process is active at a time.
Loading multiple input locale identifiers makes it possible to
rapidly switch between them.
Beginning in Windows 8: The input locale identifier is loaded for
the entire system. This function has no effect if the current
process does not own the window with keyboard focus.
©2016 Cincom Systems Inc. All Rights Reserved.21
Keyboard
New Workspace with multiple tabs.
Text- or Class-Files can be dropped
on the Workspace and are opened in
any available buffer or a new buffer is
created.
©2016 Cincom Systems Inc. All Rights Reserved.22
Workspace
Namespaces can be imported into
Workspace scripts.
-  Script
-  Dialog
Various pre-defined variables
-  #__currentEnvironment
-  #__currentEditor
-  #__currentBuffer
Each tab/buffer has its own set of
imports.
©2016 Cincom Systems Inc. All Rights Reserved.23
Workspace
Questions?
©2016 Cincom Systems Inc. All Rights Reserved.24
Thank You
Contact:	
	
Arden	Thomas:	
athomas@cincom.com	
Suzanne	Fortman:	
sfortman@cincom.com	
Andreas	Hiltner	
ahiltner@cincom.com

Contenu connexe

Tendances

Understanding operating systems 5th ed ch04
Understanding operating systems 5th ed ch04Understanding operating systems 5th ed ch04
Understanding operating systems 5th ed ch04BarrBoy
 
The Basic Organization of Computers
The Basic Organization of ComputersThe Basic Organization of Computers
The Basic Organization of ComputersTallat Satti
 
Understanding operating systems 5th ed ch12
Understanding operating systems 5th ed ch12Understanding operating systems 5th ed ch12
Understanding operating systems 5th ed ch12BarrBoy
 
Chapter 1 - Introduction
Chapter 1 - IntroductionChapter 1 - Introduction
Chapter 1 - IntroductionWayne Jones Jnr
 
Processor architecture
Processor architectureProcessor architecture
Processor architectureMuuluu
 
computer system structure
computer system structurecomputer system structure
computer system structureHAMZA AHMED
 
Computer System Overview,
Computer System Overview, Computer System Overview,
Computer System Overview, Sajid Marwat
 
The CPU and Memory and Major Components
The CPU and Memory and  Major ComponentsThe CPU and Memory and  Major Components
The CPU and Memory and Major Componentsimtiazalijoono
 
Computer architecture
Computer architectureComputer architecture
Computer architectureZuhaib Zaroon
 
Unit 9 basic system configuration tools
Unit 9 basic system configuration toolsUnit 9 basic system configuration tools
Unit 9 basic system configuration toolsroot_fibo
 
Chapter 1 basic structure of computers
Chapter 1  basic structure of computersChapter 1  basic structure of computers
Chapter 1 basic structure of computersGurpreet Singh
 
Oracle database 12c client quick installation guide 4
Oracle database 12c client quick installation guide 4Oracle database 12c client quick installation guide 4
Oracle database 12c client quick installation guide 4bupbechanhgmail
 
Typical Computer Components
Typical Computer Components Typical Computer Components
Typical Computer Components CharlotteMay97
 

Tendances (20)

Understanding operating systems 5th ed ch04
Understanding operating systems 5th ed ch04Understanding operating systems 5th ed ch04
Understanding operating systems 5th ed ch04
 
The Basic Organization of Computers
The Basic Organization of ComputersThe Basic Organization of Computers
The Basic Organization of Computers
 
Operating system
Operating systemOperating system
Operating system
 
02.Os Structure
02.Os Structure02.Os Structure
02.Os Structure
 
Understanding operating systems 5th ed ch12
Understanding operating systems 5th ed ch12Understanding operating systems 5th ed ch12
Understanding operating systems 5th ed ch12
 
Ch 1 95
Ch 1 95Ch 1 95
Ch 1 95
 
Pankaj kumar
Pankaj kumar Pankaj kumar
Pankaj kumar
 
Chapter 1 - Introduction
Chapter 1 - IntroductionChapter 1 - Introduction
Chapter 1 - Introduction
 
Processor architecture
Processor architectureProcessor architecture
Processor architecture
 
computer system structure
computer system structurecomputer system structure
computer system structure
 
Computer System Overview,
Computer System Overview, Computer System Overview,
Computer System Overview,
 
The CPU and Memory and Major Components
The CPU and Memory and  Major ComponentsThe CPU and Memory and  Major Components
The CPU and Memory and Major Components
 
Basic+machine+organization
Basic+machine+organizationBasic+machine+organization
Basic+machine+organization
 
Computer architecture
Computer architectureComputer architecture
Computer architecture
 
Unit 9 basic system configuration tools
Unit 9 basic system configuration toolsUnit 9 basic system configuration tools
Unit 9 basic system configuration tools
 
Chapter 1 basic structure of computers
Chapter 1  basic structure of computersChapter 1  basic structure of computers
Chapter 1 basic structure of computers
 
Oracle database 12c client quick installation guide 4
Oracle database 12c client quick installation guide 4Oracle database 12c client quick installation guide 4
Oracle database 12c client quick installation guide 4
 
Typical Computer Components
Typical Computer Components Typical Computer Components
Typical Computer Components
 
Ch06
Ch06Ch06
Ch06
 
Data recovery glossary a
Data recovery glossary   aData recovery glossary   a
Data recovery glossary a
 

En vedette

Bloc: a Modern Core for Highly Dynamic Graphics
Bloc: a Modern Core for Highly Dynamic Graphics Bloc: a Modern Core for Highly Dynamic Graphics
Bloc: a Modern Core for Highly Dynamic Graphics ESUG
 
DALi - A database abstraction layer
DALi - A database abstraction layerDALi - A database abstraction layer
DALi - A database abstraction layerESUG
 
SciSmalltalk: Doing Science with Agility
SciSmalltalk: Doing Science with AgilitySciSmalltalk: Doing Science with Agility
SciSmalltalk: Doing Science with AgilityESUG
 
Test Selection with Moose In Industry - Impact of Granularity
Test Selection with Moose In Industry - Impact of GranularityTest Selection with Moose In Industry - Impact of Granularity
Test Selection with Moose In Industry - Impact of GranularityESUG
 
Prototyping Software Product Lines analysis with Pharo
Prototyping Software Product Lines analysis with PharoPrototyping Software Product Lines analysis with Pharo
Prototyping Software Product Lines analysis with PharoESUG
 
Tugrik: A new persistence option for Pharo
Tugrik: A new persistence option for PharoTugrik: A new persistence option for Pharo
Tugrik: A new persistence option for PharoESUG
 
Pillar: one language for all supports
Pillar: one language for all supportsPillar: one language for all supports
Pillar: one language for all supportsESUG
 
The Glamorous Toolkit: Towards a novel live IDE
The Glamorous Toolkit: Towards a novel live IDEThe Glamorous Toolkit: Towards a novel live IDE
The Glamorous Toolkit: Towards a novel live IDEESUG
 
Lub: a DSL for Dynamic Context Oriented Programming
Lub: a DSL for Dynamic Context Oriented ProgrammingLub: a DSL for Dynamic Context Oriented Programming
Lub: a DSL for Dynamic Context Oriented ProgrammingESUG
 
seamless – Object Oriented CMS System
seamless – Object Oriented CMS Systemseamless – Object Oriented CMS System
seamless – Object Oriented CMS SystemESUG
 

En vedette (10)

Bloc: a Modern Core for Highly Dynamic Graphics
Bloc: a Modern Core for Highly Dynamic Graphics Bloc: a Modern Core for Highly Dynamic Graphics
Bloc: a Modern Core for Highly Dynamic Graphics
 
DALi - A database abstraction layer
DALi - A database abstraction layerDALi - A database abstraction layer
DALi - A database abstraction layer
 
SciSmalltalk: Doing Science with Agility
SciSmalltalk: Doing Science with AgilitySciSmalltalk: Doing Science with Agility
SciSmalltalk: Doing Science with Agility
 
Test Selection with Moose In Industry - Impact of Granularity
Test Selection with Moose In Industry - Impact of GranularityTest Selection with Moose In Industry - Impact of Granularity
Test Selection with Moose In Industry - Impact of Granularity
 
Prototyping Software Product Lines analysis with Pharo
Prototyping Software Product Lines analysis with PharoPrototyping Software Product Lines analysis with Pharo
Prototyping Software Product Lines analysis with Pharo
 
Tugrik: A new persistence option for Pharo
Tugrik: A new persistence option for PharoTugrik: A new persistence option for Pharo
Tugrik: A new persistence option for Pharo
 
Pillar: one language for all supports
Pillar: one language for all supportsPillar: one language for all supports
Pillar: one language for all supports
 
The Glamorous Toolkit: Towards a novel live IDE
The Glamorous Toolkit: Towards a novel live IDEThe Glamorous Toolkit: Towards a novel live IDE
The Glamorous Toolkit: Towards a novel live IDE
 
Lub: a DSL for Dynamic Context Oriented Programming
Lub: a DSL for Dynamic Context Oriented ProgrammingLub: a DSL for Dynamic Context Oriented Programming
Lub: a DSL for Dynamic Context Oriented Programming
 
seamless – Object Oriented CMS System
seamless – Object Oriented CMS Systemseamless – Object Oriented CMS System
seamless – Object Oriented CMS System
 

Similaire à New Native Windows UI possibilities in Cincom Smalltalk ObjectStudio

System Software ( Os )
System Software ( Os )System Software ( Os )
System Software ( Os )Paula Smith
 
System Client Details
System Client DetailsSystem Client Details
System Client DetailsSyAM Software
 
SYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITY
SYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITYSYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITY
SYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITYGOKUL SREE
 
09 basics operating and monitoring v1.00_en
09 basics operating and monitoring v1.00_en09 basics operating and monitoring v1.00_en
09 basics operating and monitoring v1.00_enconfidencial
 
Lec9chap8f04
Lec9chap8f04Lec9chap8f04
Lec9chap8f04screaminc
 
Operatig System Tutorial Level3
Operatig System Tutorial Level3Operatig System Tutorial Level3
Operatig System Tutorial Level3willye83
 
Comp10080 Os L12
Comp10080  Os L12Comp10080  Os L12
Comp10080 Os L12gueste5b156
 
Deploying ibm sametime 9 on aix 7.1
Deploying ibm sametime 9 on aix 7.1Deploying ibm sametime 9 on aix 7.1
Deploying ibm sametime 9 on aix 7.1a8us
 
dokumen.tips_aix-presentation.ppt
dokumen.tips_aix-presentation.pptdokumen.tips_aix-presentation.ppt
dokumen.tips_aix-presentation.pptAhmedFawzy916524
 
Operation system structure
Operation system structureOperation system structure
Operation system structurebrysan30
 
Chapter 1 Introduction.pptx
Chapter 1 Introduction.pptxChapter 1 Introduction.pptx
Chapter 1 Introduction.pptxAbdiAzizMaashaa1
 
Modern operating system.......
Modern operating system.......Modern operating system.......
Modern operating system.......vignesh0009
 
CSC1100 - Chapter06 - Operating System & Utility Programs
CSC1100 - Chapter06 - Operating System & Utility ProgramsCSC1100 - Chapter06 - Operating System & Utility Programs
CSC1100 - Chapter06 - Operating System & Utility ProgramsYhal Htet Aung
 
W5 system call, DD, OS structure.ppt
W5 system call, DD, OS structure.pptW5 system call, DD, OS structure.ppt
W5 system call, DD, OS structure.pptiqrayounus5
 

Similaire à New Native Windows UI possibilities in Cincom Smalltalk ObjectStudio (20)

System Software ( Os )
System Software ( Os )System Software ( Os )
System Software ( Os )
 
System Client Details
System Client DetailsSystem Client Details
System Client Details
 
ch2.ppt
ch2.pptch2.ppt
ch2.ppt
 
SYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITY
SYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITYSYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITY
SYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITY
 
09 basics operating and monitoring v1.00_en
09 basics operating and monitoring v1.00_en09 basics operating and monitoring v1.00_en
09 basics operating and monitoring v1.00_en
 
Lec9chap8f04
Lec9chap8f04Lec9chap8f04
Lec9chap8f04
 
Operatig System Tutorial Level3
Operatig System Tutorial Level3Operatig System Tutorial Level3
Operatig System Tutorial Level3
 
Comp10080 Os L12
Comp10080  Os L12Comp10080  Os L12
Comp10080 Os L12
 
Deploying ibm sametime 9 on aix 7.1
Deploying ibm sametime 9 on aix 7.1Deploying ibm sametime 9 on aix 7.1
Deploying ibm sametime 9 on aix 7.1
 
dokumen.tips_aix-presentation.ppt
dokumen.tips_aix-presentation.pptdokumen.tips_aix-presentation.ppt
dokumen.tips_aix-presentation.ppt
 
ch01.ppt
ch01.pptch01.ppt
ch01.ppt
 
ch2a.pptx
ch2a.pptxch2a.pptx
ch2a.pptx
 
Mainframe
MainframeMainframe
Mainframe
 
Operation system structure
Operation system structureOperation system structure
Operation system structure
 
Chapter 1 Introduction.pptx
Chapter 1 Introduction.pptxChapter 1 Introduction.pptx
Chapter 1 Introduction.pptx
 
Modern operating system.......
Modern operating system.......Modern operating system.......
Modern operating system.......
 
CSC1100 - Chapter06 - Operating System & Utility Programs
CSC1100 - Chapter06 - Operating System & Utility ProgramsCSC1100 - Chapter06 - Operating System & Utility Programs
CSC1100 - Chapter06 - Operating System & Utility Programs
 
ch01.ppt
ch01.pptch01.ppt
ch01.ppt
 
W5 system call, DD, OS structure.ppt
W5 system call, DD, OS structure.pptW5 system call, DD, OS structure.ppt
W5 system call, DD, OS structure.ppt
 
Ch2
Ch2Ch2
Ch2
 

Plus 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 programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
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 RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
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 resultsESUG
 
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 6ESUG
 
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 GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
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 ModesESUG
 
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 ReportESUG
 
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 APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
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 CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
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 JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
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 TransformationsESUG
 

Plus 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
 

Dernier

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 

Dernier (20)

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 

New Native Windows UI possibilities in Cincom Smalltalk ObjectStudio

  • 1. New Native Windows UI Possibilities in Cincom® ObjectStudio® By Andreas Hiltner
  • 2.
  • 3. -  Non-rectangular windows -  Taskbar Notification -  Monitor(s) -  WindowPlacement -  Security Identifier -  Filename -  Workspace -  And much more ©2016 Cincom Systems Inc. All Rights Reserved.3 Topic
  • 4. Create a non-rectangular Window using a Region A region is a rectangle, polygon, or ellipse (or a combination of two or more of these shapes) that can be filled, painted, inverted, framed, and used to perform hit testing (testing for the cursor location). ©2016 Cincom Systems Inc. All Rights Reserved.4 Non rectangular windows - Region
  • 5. Create a non-rectangular Window using transparent Window. Using an image with transparent areas, the window can assume any shape or form ©2016 Cincom Systems Inc. All Rights Reserved.5 Non rectangular windows - Transparency
  • 6. The notification area is a portion of the taskbar that provides a temporary source for notifications and status. It can also be used to display icons for system and program features that have no presence on the desktop, such as battery level, volume control, and network status. The notification area has been known historically as the system tray or status area. ©2016 Cincom Systems Inc. All Rights Reserved.6 Taskbar Notification
  • 7. Class UIDeferredMoveList allows to move several Windows in one fell swoop, which can reduce flicker in contrast to moving each window individually. Simply add the Windows to the list, together with the target rectangle and any possible flags. Calling #moveAll will then move all those Windows to their desired location ©2016 Cincom Systems Inc. All Rights Reserved.7 Deferred-Move-List
  • 8. Class UIMonitor returns all available monitors, currently attached to the computer. The display rectangle specifies the display monitor rectangle, expressed in virtual-screen coordinates. ©2016 Cincom Systems Inc. All Rights Reserved.8 Monitor(s)
  • 9. Work area rectangle specifies the work area rectangle of the display monitor that can be used by applications, expressed in virtual-screen coordinates. Windows uses this rectangle to maximize an application on the monitor. The rest of the area in rcMonitor contains system windows such as the task bar and side bars. ©2016 Cincom Systems Inc. All Rights Reserved.9 Monitor(s)
  • 10. Class UITitleBarInfo contains the size (rectangle) and state for the TitleBar and each button on it, e.g. Minimize/Maximize/Help/Close States are one or more of the following values -  Focusable -  Invisible -  Offscreen -  Unavailable -  Pressed ©2016 Cincom Systems Inc. All Rights Reserved.10 TitleBar-Info
  • 11. Class UIWindowPlacement Contains information about the placement of a window on the screen. -  Current show state of the window: maximized/minimized/hidden -  The coordinates of the window's upper-left corner when the window is minimized. -  The coordinates of the window's upper-left corner when the window is maximized. -  The window's coordinates when the window is in the restored position. (Perfect way to store the current state of a window and restore later) ©2016 Cincom Systems Inc. All Rights Reserved.11 WindowPlacement
  • 12. Class WndSID wraps the Security Identifier (SID) of a user/group/computer account. A SID is a data structure of variable length that identifies user, group, and computer accounts. Every account on a network is issued a unique SID when the account is first created. Internal processes in Windows refer to an account's SID rather than the account's user or group name. (Check, if the process is running with Admin rights, if those rights are needed or not recommended) ©2016 Cincom Systems Inc. All Rights Reserved.12 Security Identifier
  • 13. Extensions to class PCFilename -  Added known folders, e.g. -  Desktop -  Documents -  Music -  Pictures -  Program Data -  Program Files -  Temp -  Videos ©2016 Cincom Systems Inc. All Rights Reserved.13 Filename
  • 14. Extensions to class PCFilename -  Added known folders, e.g. Desktop, Documents, Music, Pictures, Program Data, Program Files, Temp, Videos -  Create a temporary file in a certain folder (preferably the Temp folder), with a certain prefix and ©2016 Cincom Systems Inc. All Rights Reserved.14 Filename cont’d
  • 15. Extensions to class PCFilename -  Retrieve the name of and handle to the executable (.exe) file associated with a specific document file. -  Extract the system icon for a file ©2016 Cincom Systems Inc. All Rights Reserved.15 Filename cont’d
  • 16. Class PowerState provides access to Windows power management features. The power management functions and messages retrieve the system power status, notify applications of power management events, and notify the system of each application's power requirements. ©2016 Cincom Systems Inc. All Rights Reserved.16 Power State
  • 17. -  displayRequired Forces the display to be on by resetting the display idle timer. Windows 8: This flag can only keep a display turned on, it can't turn on a display that's currently off. -  hibernate/suspend/forceHibernate/forceSuspend Suspends the system by shutting power down. The system either enters a suspend (sleep) state or hibernation (S4). -  systemRequired Forces the system to be in the working state by resetting the system idle timer. ©2016 Cincom Systems Inc. All Rights Reserved.17 Power State
  • 18. Class OSMemInfo contains information about the current state of both physical and virtual memory, including extended memory. -  memoryLoad A number between 0 and 100 that specifies the approximate percentage of physical memory that is in use (0 indicates no memory use and 100 indicates full memory use). -  totalPhysical The amount of actual physical memory, in bytes. -  availablePhysical The amount of physical memory currently available, in bytes. This is the amount of physical memory that can be immediately reused without having to write its contents to disk first. It is the sum of the size of the standby, free, and zero lists. ©2016 Cincom Systems Inc. All Rights Reserved.18 Memory Info
  • 19. -  totalPageFile The current committed memory limit for the system or the current process, whichever is smaller, in bytes. -  availablePageFile The maximum amount of memory the current process can commit, in bytes. This value is equal to or smaller than the system-wide available commit value. -  totalVirtual The size of the user-mode portion of the virtual address space of the calling process, in bytes. This value depends on the type of process, the type of processor, and the configuration of the operating system. -  availableVirtual The amount of unreserved and uncommitted memory currently in the user-mode portion of the virtual address space of the calling process, in bytes. ©2016 Cincom Systems Inc. All Rights Reserved.19 Memory Info
  • 20. OSPerformanceCounter Counters are used to provide information as to how well the operating system or an application, service, or driver is performing. The counter data can help determine system bottlenecks and fine-tune system and application performance. The operating system, network, and devices provide counter data that an application can consume to provide users with a graphical view of how well the system is performing. ©2016 Cincom Systems Inc. All Rights Reserved.20 Performance Counter
  • 21. Class Keyboard loads a new input locale identifier (formerly called the keyboard layout) into the system. Prior to Windows 8: Several input locale identifiers can be loaded at a time, but only one per process is active at a time. Loading multiple input locale identifiers makes it possible to rapidly switch between them. Beginning in Windows 8: The input locale identifier is loaded for the entire system. This function has no effect if the current process does not own the window with keyboard focus. ©2016 Cincom Systems Inc. All Rights Reserved.21 Keyboard
  • 22. New Workspace with multiple tabs. Text- or Class-Files can be dropped on the Workspace and are opened in any available buffer or a new buffer is created. ©2016 Cincom Systems Inc. All Rights Reserved.22 Workspace
  • 23. Namespaces can be imported into Workspace scripts. -  Script -  Dialog Various pre-defined variables -  #__currentEnvironment -  #__currentEditor -  #__currentBuffer Each tab/buffer has its own set of imports. ©2016 Cincom Systems Inc. All Rights Reserved.23 Workspace
  • 24. Questions? ©2016 Cincom Systems Inc. All Rights Reserved.24