Implementation Support Introduction Elements of Windowing Systems

Total Page:16

File Type:pdf, Size:1020Kb

Implementation Support Introduction Elements of Windowing Systems Implementation support Introduction chapter 8 • programming tools How does HCI affect of the programmer? – levels of services for programmers • windowing systems Advances in coding have elevated programming – core support for separate and simultaneous user- hardware specific system activity → interaction-technique specific • programming the application and control of dialogue Layers of development tools • interaction toolkits – windowing systems (operating systems) – bring programming closer to level of user perception – interaction toolkits • user interface management systems – user interface management systems – controls relationship between presentation and functionality 1 2 Elements of windowing systems roles of a windowing system Device independence programming the abstract terminal device drivers image models for output and (partially) input Resource sharing achieving simultaneity of user tasks window system supports independent processes isolation of individual applications 3 4 Architectures of windowing The client-server architecture systems Need not be three possible software architectures on same machine – all assume device driver is separate – differ in how multiple application management is implemented 1. each application manages all processes – everyone worries about synchronization – reduces portability of applications 2. management role within kernel of operating system – applications tied to operating system 3. management role as separate application maximum portability 5 6 Programming the application Programming the application read-evaluation loop (macs) notification-based void main(String[] args) { Menu menu = new Menu(); menu.setOption(“Save”); menu.setOption(“Quit”); menu.setAction(“Save”,mySave) menu.setAction(“Quit”,myQuit) ... repeat } read-event(myevent) case myevent.type int mySave(Event e) { type_1: // save the current file do type_1 processing } type_2: do type_2 processing int myQuit(Event e) { ... // close down type_n: } do type_n processing end case end repeat 7 8 going with the grain Using toolkits • system style affects the interfaces Interaction objects – modal dialogue box – input and output intrinsically linked • easy with event-loop (just have extra read-event loop) • hard with notification (need lots of mode flags) – non-modal dialogue box • hard with event-loop (very complicated main loop) move press release move • easy with notification (just add extra handler) Toolkits provide this level of abstraction – programming with interaction objects (or beware! – techniques, widgets, gadgets) if you don’t explicitly design it will just happen – promote consistency and generalizability – through similar look and feel implementation should not drive design – amenable to object-oriented programming 9 10 UI development environment interfaces in Java (UIDE) • Java toolkit – AWT (abstract windowing toolkit) • e.g. Visual Studio, Delphi – Provide high level of support for • Java classes for buttons, menus, etc. programmer • Notification based; •but – AWT 1.0 – need to subclass basic widgets – Usually operating system specific – AWT 1.1 and beyond -– callback objects •Swing toolkit – built on top of AWT – higher level features – uses MVC architecture (see later) 11 12 User Interface Management UIMS as conceptual architecture Systems (UIMS) • UIMS add another level above toolkits • separation between application semantics and – toolkits too difficult for non-programmers presentation •improves: • roles of UIMS – portability – runs on different systems – conceptual architecture – reusability – components reused cutting costs – implementation techniques – multiple interfaces – accessing same functionality – support infrastructure – customizability – by designer and user • These issues will be more important as ‘anytime anywhere’ computing becomes a reality 13 14 Seeheim model MVC model - view - controller lexical syntactic semantic Dialogue Functionality view USERUSER Presentation (application APPLICATION Control interface) model switch controller – arose out of implementation experience • MVC is largely pipeline model: – but principal contribution is conceptual input → control → model → view → output – concepts part of ‘normal’ UI language • but in graphical interface – input only has meaning in relation to output e.g. mouse click –need to know what was clicked e.g. the lower box, the switch – controller has to decide what to do with click • needed for implementation – but view knows what is shown where! • in practice controller ‘talks’ to view • but not conceptual – separation not complete 15 16 PAC PAC model presentation - abstraction - control A P A P • PAC model closer to Seeheim C C – abstraction – logical state of component – presentation – manages input and output – control – mediates between them abstraction presentation • manages hierarchy and multiple views – control part of PAC objects communicate control • PAC cleaner in many ways … but MVC used more in practice (e.g. Java Swing) A P C A P C 17 18 Implementation of UIMS graphical specification • Techniques for dialogue controller • what it is • menu networks • state transition diagrams – draw components on screen • grammar notations • event languages – set actions with script or links to program • declarative languages • constraints • graphical specification • in use – with raw programming most popular technique – for most of these see chapter 16 – e.g. Visual Basic, Dreamweaver, Flash • N.B. constraints • local vs. global – instead of what happens say what should be true – hard to ‘see’ the paths through system – used in groupware as well as single user interfaces – focus on what can be seen on one screen (ALV -abstraction–link–view) see chapter 16 for more details on several of19 these 20 Trend Summary The drift of dialogue control • internal control Levels of programming support tools (e.g., read-evaluation loop) •Windowing systems – device independence –multiple tasks • external control • Paradigms for programming the application (independent of application semantics or presentation) – read-evaluation loop – notification-based • presentation control • Toolkits – programming interaction objects (e.g., graphical specification) •UIMS – conceptual architectures for separation – techniques for expressing dialogue 21 22.
Recommended publications
  • The Glib/GTK+ Development Platform
    The GLib/GTK+ Development Platform A Getting Started Guide Version 0.8 Sébastien Wilmet March 29, 2019 Contents 1 Introduction 3 1.1 License . 3 1.2 Financial Support . 3 1.3 Todo List for this Book and a Quick 2019 Update . 4 1.4 What is GLib and GTK+? . 4 1.5 The GNOME Desktop . 5 1.6 Prerequisites . 6 1.7 Why and When Using the C Language? . 7 1.7.1 Separate the Backend from the Frontend . 7 1.7.2 Other Aspects to Keep in Mind . 8 1.8 Learning Path . 9 1.9 The Development Environment . 10 1.10 Acknowledgments . 10 I GLib, the Core Library 11 2 GLib, the Core Library 12 2.1 Basics . 13 2.1.1 Type Definitions . 13 2.1.2 Frequently Used Macros . 13 2.1.3 Debugging Macros . 14 2.1.4 Memory . 16 2.1.5 String Handling . 18 2.2 Data Structures . 20 2.2.1 Lists . 20 2.2.2 Trees . 24 2.2.3 Hash Tables . 29 2.3 The Main Event Loop . 31 2.4 Other Features . 33 II Object-Oriented Programming in C 35 3 Semi-Object-Oriented Programming in C 37 3.1 Header Example . 37 3.1.1 Project Namespace . 37 3.1.2 Class Namespace . 39 3.1.3 Lowercase, Uppercase or CamelCase? . 39 3.1.4 Include Guard . 39 3.1.5 C++ Support . 39 1 3.1.6 #include . 39 3.1.7 Type Definition . 40 3.1.8 Object Constructor . 40 3.1.9 Object Destructor .
    [Show full text]
  • A Successor to the X Window System
    Y: A Successor to the X Window System Mark Thomas <[email protected]> Project Supervisor: D. R¨uckert <[email protected]> Second Marker: E. Lupu <[email protected]> June 18, 2003 ii Abstract UNIX desktop environments are a mess. The proliferation of incompatible and inconsistent user interface toolkits is now the primary factor in the failure of enterprises to adopt UNIX as a desktop solution. This report documents the creation of a comprehensive, elegant framework for a complete windowing system, including a standardised graphical user interface toolkit. ‘Y’ addresses many of the problems associated with current systems, whilst keeping and improving on their best features. An initial implementation, which supports simple applications like a terminal emulator, a clock and a calculator, is provided. iii iv Acknowledgements Thanks to Daniel R¨uckert for supervising the project and for his help and advice regarding it. Thanks to David McBride for his assistance with setting up my project machine and providing me with an ATI Radeon for it. Thanks to Philip Willoughby for his knowledge of the POSIX standard and help with the GNU Autotools and some of the more obscure libc functions. Thanks to Andrew Suffield for his help with the GNU Autotools and Arch. Thanks to Nick Maynard and Karl O’Keeffe for discussions on window system and GUI design. Thanks to Tim Southerwood for discussions about possible features of Y. Thanks to Duncan White for discussions about the virtues of X. All company and product names are trademarks and/or registered trademarks of their respective owners.
    [Show full text]
  • Toward General Purpose 3D User Interfaces: Extending Windowing Systems to Three Dimensions
    TOWARD GENERAL PURPOSE 3D USER INTERFACES: EXTENDING WINDOWING SYSTEMS TO THREE DIMENSIONS A Thesis presented to the Faculty of California Polytechnic State University San Luis Obispo In Partial Fulfillment of the Requirements for the Degree Master of Science in Computer Science by Forrest Reiling June 2014 c 2014 Forrest Reiling ALL RIGHTS RESERVED ii COMMITTEE MEMBERSHIP TITLE: Toward General Purpose 3D User Inter- faces: Extending Windowing Systems to Three Dimensions AUTHOR: Forrest Reiling DATE SUBMITTED: June 2014 COMMITTEE CHAIR: Assistant Professor Zo¨eWood, Ph.D., Department of Computer Science COMMITTEE MEMBER: Assistant Professor Chris Lupo, Ph.D., Department of Computer Science COMMITTEE MEMBER: Professor Franz Kurfess, Ph.D., Department of Computer Science iii ABSTRACT Toward General Purpose 3D User Interfaces: Extending Windowing Systems to Three Dimensions Forrest Reiling Recent growth in the commercial availability of consumer grade 3D user interface de- vices like the Microsoft Kinect and the Oculus Rift, coupled with the broad availability of high performance 3D graphics hardware, has put high quality 3D user interfaces firmly within the reach of consumer markets for the first time ever. However, these devices require custom integration with every application which wishes to use them, seriously limiting application support, and there is no established mechanism for mul- tiple applications to use the same 3D interface hardware simultaneously. This thesis proposes that these problems can be solved in the same way that the same problems were solved for 2D interfaces: by abstracting the input hardware behind input prim- itives provided by the windowing system and compositing the output of applications within the windowing system before displaying it.
    [Show full text]
  • Development and Analysis of a Window Manager Concept for Consolidated 3D Rendering on an Embedded Platform
    Institute of Parallel and Distributed Systems University of Stuttgart Universitätsstraße 38 D–70569 Stuttgart Master’s Thesis Nr. 0202-0001 Development and Analysis of a Window Manager Concept for Consolidated 3D Rendering on an Embedded Platform Han Zhao Course of Study: INFOTECH Examiner: Prof. Dr. Kurt Rothermel Supervisor: Dipl.-Inf. Simon Gansel, Dipl.-Inf. Stephan Schnitzer Commenced: 19. Jan. 2015 Completed: 21. July 2015 CR-Classification: I.3.2, C.3, D.4.9 Abstract Nowadays with the information technology rapidly developing, an increasing number of 2D and 3D graphics are used in automotive displaying systems, to provide vehicle information, driving assistance, etc. With the demand of 3D models interacting with each other, an implementation should have a 3D compositing capability. However, traditional 2D compositing implementations are not capable of 3D models compositing tasks. In order to composite 3D graphics on embedded platform, the 3D compositing implementation is necessary. Therefore, a concept of window manager is developed aiming to composite 3D graphics with an optimized efficiency for embedded platform. Specially for automotive platforms, a virtualization is made to unify multiple Electronic Control Units (ECUs) into one single ECU platform. On this platform, a server and multiple clients are implemented with dedicated Virtual Machines (VMs). The server is in charge of rendering tasks requested from clients. Based on this, a 3D compositing concept is implemented. It handles efficiently the multiple 3D applications situation using a method of off-screen rendering. A server-side virtualization is also implemented by replacing certain client-side commands during commands forwarding. With this virtualization implementation, multiple applications run simultaneously with accessing single 3D GPU only.
    [Show full text]
  • Building a 3D Graphic User Interface in Linux
    Freescale Semiconductor Document Number: AN4045 Application Note Rev. 0, 01/2010 Building a 3D Graphic User Interface in Linux Building Appealing, Eye-Catching, High-End 3D UIs with i.MX31 by Multimedia Application Division Freescale Semiconductor, Inc. Austin, TX To compete in the market, apart from aesthetics, mobile Contents 1. X Window System . 2 devices are expected to provide simplicity, functionality, and 1.1. UI Issues . 2 elegance. Customers prefer attractive mobile devices and 2. Overview of GUI Options for Linux . 3 expect new models to be even more attractive. For embedded 2.1. Graphics Toolkit . 3 devices, a graphic user interface is essential as it enhances 2.2. Open Graphics Library® . 4 3. Clutter Toolkit - Solution for GUIs . 5 the ease of use. Customers expect the following qualities 3.1. Features . 5 when they use a Graphical User Interface (GUI): 3.2. Clutter Overview . 6 3.3. Creating the Scenegraph . 7 • Quick and responsive feedback for user actions that 3.4. Behaviors . 8 clarifies what the device is doing. 3.5. Animation by Frames . 9 • Natural animations. 3.6. Event Handling . 10 4. Conclusion . 10 • Provide cues, whenever appropriate, instead of 5. Revision History . 11 lengthy textual descriptions. • Quick in resolving distractions when the system is loading or processing. • Elegant and beautiful UI design. This application note provides an overview and a guide for creating a complex 3D User Interface (UI) in Linux® for the embedded devices. © Freescale Semiconductor, Inc., 2010. All rights reserved. X Window System 1 X Window System The X Window system (commonly X11 or X) is a computer software system and network protocol that implements X display protocol and provides windowing on bitmap displays.
    [Show full text]
  • Basic Single-Window X Overview
    1/10/2013 Basic Single-Window X X: The Basics 1 Overview • Basic X Architecture • Drawing • Events and the Event Loop 2 1 1/10/2013 Windowing Systems • 1960’s: Doug Englebart used a mouse-driven cursor with multiple (non-overlapping?) windows. • 1973: Xerox PARC developed the Alto -- bit-mapped graphics, desktop metaphor, GUI. Heavily influenced PERQ, Apple Lisa/Mac, Sun workstations. Followed by Xerox Star. Alto stacked windows; Star mostly tiled. • 1984: Apple Macintosh released. First commercially successful multi-window GUI. • 1984: Work on X windowing system begins. • 1985: Microsoft releases Windows 1.0; doesn’t really take off until 1990 release of Windows 3.0. 3 Valuable X References • CS349 web site, see Resources page – The X Window System • background, design goals, basic architecture • PDF available online – The Xlib manual: http://tronche.com/gui/x/xlib • link and a PDF available on CS349 site – Basic Graphics Programming With The Xlib Library tutorial – Sample code 4 2 1/10/2013 Notes on this lecture • All examples were implemented and tested on VM – Should be reasonably generic – You may need to tweak some things if you want to program on your own computer – … But remember that assignments must run on VM • Class examples use standard C programming language – No objects, no STL – You can use c or c++ • TAs will be looking at your sourcecode … XWindows System (1) • Client-Server model of an application and UI – The client is the application that is running on a computer – The server is the display that is being drawn 3 1/10/2013 XWindows System (2) • Goal was flexibility – Many clients (perhaps on multiple machines) – One display • Generalization of model-view-controller architecture – Model = client application – View/Controller = terminal device running Xserver XWindows and XLib • To avoid implementing message passing every time a new program written, created XLib – Every client who “speaks” XLib could interact with any XServer – So what? • VERY NOVEL in the ‘80s.
    [Show full text]
  • Using the GNOME and KDE Desktops
    Using the GNOME and KDE Desktops George Ajam Computer Science Dept. College of Science March, 8th 2012 Linux Desktop General overview Below we will see an overview about the different software involved in the Linux desktop. The way they are ordered from the user on the top to the hardware on the bottom, should roughly reflect usage dependency between the software. Software on the top uses services of the software located below them. The next sections will give a short introduction to each of them. The X Server The X Window System1 (commonly X or X11) is a computer software system and network protocol that provides a graphical user interface (GUI) for networked computers. It creates a hardware abstraction layer where software is written to use a generalized set of commands, allowing for device independence and reuse of programs on any computer that implements X. Special commands xwininfo:Shows informations about windows related to the X Server xkill:Provides a graphical way to close the window resource of any window startx:Starts an Xserver and executes all commands in the file /home/<user>/.xinitrc The X Server terminates when the last command in the list exits. Display Manager In the X Window System, an X display manager runs as a program that allows the starting of a session on an X server from the same or another computer. A display manager presents the user with a login screen which prompts for a username and password. A session starts when the user successfully enters a valid combination of username and password.
    [Show full text]
  • The Beginner's Handbook
    The beginner’s handbook Debian 10 Buster arpinux © WTFPL trad. Saby43 & arpinux Updated: July 31, 2020 – About this manual – “The beginner’s handbook” is a simplified manual to install and master the Debian system. You will find in the following pages the answers to your first questions concerning the Debian GNU/Linux system , its history, how to obtain it, to install it, to master it, to configure and administrate it. You will be able to go further and obtain information concerning the privacy protection, the backing up of your data, and the various actors of the Free Software world. Usually, the manuals begin by teaching you the theoretical basis and the usage of the terminal. This manual takes the very side of the “graphical environment”: it is designed to let you start quickly with Debian, screen powered on, fingers on the keyboard and the mouse nearby . – The mission of this manual is not to be comprehensive – A lot of external links are available in this manual. Don’t hesitate to click on them in order to read more detailed information. For a more detailed documentation, please visit the official Debian Wiki: https://wiki.debian.org/FrontPage or the Debian administrator’s handbook: https://debian-handbook.info/browse/stable/ – How to use this manual? – This PDF version includes a detailed summary and a table of images at the end of the guide. Note: This manual includes some commands or code blocks that are sometimes longer than the width of the page. In this case, a backslash “\” is added and the rest of the command or code is carried over to the next line.
    [Show full text]
  • An Introduction to X Window Application Development
    Calhoun: The NPS Institutional Archive Theses and Dissertations Thesis Collection 1992-03 An introduction to X Window application development. Rust, David Michael Monterey, California. Naval Postgraduate School http://hdl.handle.net/10945/23933 FV KNOX LIBRARY •Ud SCHOOL SivAL POSTGRADUATE SoNTEHEV.CAUFORN.AG^^ CURITY CLASSIFICATION OF THIS PAGE REPORT DOCUMENTATION PAGE 1b. RESTRICTIVE MARKINGS REPORT SECURITY CLASSIFICATION UNCLASSIFIED a SECURITY CLASSIPICAT I6M AUTH6RITV 3. bisTRiBuTi6N7AVAlLABiUTY 6P REP5RT Approved for public release; b. dECLAssIFICATIoN/doWNgRADINg SCHEDULE distribution is unlimited PERFORMING ORGANIZATION REP6RT NUM&ER(S) 5. M6niT6Ring6Rgani2aTi6n rep6rT numbER(S) *. NAME 6F PERFORMING 6R6ANIZATI6N 6b OFFICE SYMBOL 7a. NAME 6E M6NIT6R1NG ORGANIZATION vdministrative Sciences Department (if applicable) Naval Postgraduate School Javal Postgraduate School AS :. ADDRESS (City, State, and ZIP Code) 7b. ADDRESS (City, State, and ZIP Code) /lonterey, CA 93943-5000 Monterey, CA 93943-5000 NAME OF FUNDING/SPONSORING 8b. OFFICE SYMBOL g PROCURE M E N T I NST RUMEN T ID E N T I FI CATION NUMBE R ORGANIZATION (if applicable) 6. ADDRESS (City, State, and ZIP Code) 10. SOURCE OF FUNDING NUMBERS PROGRAM 1 PR6JECT TTa^R" WoRkUNiT ELEMENT NO. NO. NO. ACCESSION NO. 1 . TITLE (Include Security Classification) ^N INTRODUCTION TO X WINDOW APPLICATION DEVELOPMENT (U) 2 PERSONAL AUTHOR(S) lust, David M. 3a. type of report 13b. time covered 14. DATE OF REPORT (Year, Month, Day) 16. PAGE COUNT Master's Thesis from 10/90 to 03/92 1992, March, 23 70 supplementary notation 6 The views expressed in this ^sis ^ those of the author md do not reflect the official policy or position of the Department of Defense or the United States Government.
    [Show full text]
  • Importance-Driven Compositing Window Management
    Importance-Driven Compositing Window Management Manuela Waldner1, Markus Steinberger1, Raphael Grasset2, and Dieter Schmalstieg1 1Institute for Computer Graphics and Vision 2HIT Lab NZ Graz University of Technology University of Canterbury Graz, Austria Christchurch, New Zealand f waldner j steinberger j schmalstieg [email protected] [email protected] ABSTRACT In this paper we present importance-driven compositing window management, which considers windows not only as basic rectangular shapes but also integrates the importance of the windows’ content using a bottom-up visual attention model. Based on this information, importance-driven com- positing optimizes the spatial window layout for maximum visibility and interactivity of occluded content in combina- tion with see-through windows. We employ this technique for emerging window manager functions to minimize infor- mation overlap caused by popping up windows or floating toolbars and to improve the access to occluded window con- tent. An initial user study indicates that our technique pro- vides a more effective and satisfactory access to occluded information than the well-adopted Alt+Tab window switch- (a) (b) ing technique and see-through windows without optimized spatial layout. Figure 1. (a) Conventional overlapping windows occlude important in- formation in obscured windows. To reveal this information, the user has to change the window layout manually. (b) Importance-driven com- Author Keywords positing spatially arranges occluded windows and applies see-through compositing window management, visual saliency, space compositing to maximize content visibility and interactivity. management, transparency ACM Classification Keywords Most current window managers employ multiple overlap- ping windows and leave the spatial arrangement of the in- H.5.2 Information Interfaces and Presentation: User Inter- dividual windows merely to the user.
    [Show full text]
  • Section 2: a Quick Window Manager and Unix Tutorial
    2. A quick windowmanager and Unix tutorial (This section last updated August 2012) This section provides •some "getting started" pointers on the graphical windowing environments you will be using, primar- ily on the ECMC Linux system in the room 52 studio, but also with some references and comparisons to comparable Mac OSX and Windows procedures; and •anintroduction to some basic Unix commands and utility programs that can be run from a shell windowonECMC Linux and Macintosh music production systems As noted in section 1, the core of a computer operating system, which implements the most basic sys- tem protocols and operations, is called the kernel.The open source Linux kernel is developed and main- tained by an international group of thousands of volunteers under the direction of Linus Torvalds, who wrote much of the first Linux kernel, modeled after the functionality of Unix operating systems, during the early 1990s. The Linux kernel is updated several times each year,and includes both a stable branch, designed for most users (likeus), and a developmental branch, used by Linux developers to test newfea- tures before theyare incorporated into stable versions of the kernel. Technically,the term "Linux"refers only to an operating system kernel developed by the team of Linux Project programmers under Torvolds’ direction. The GNU (pronounced "ga-NOO") Project is a non- profit organization that supports the development of a broad range of open source applications, without which the Linux kernel would be useless. Manyusers of GNU software on Linux kernels prefer to call their operating system GNU Linux or GNU/Linux.Incommon usage, however, the term Linux often is used loosely to refer to all GNU operating system components as well as the Linux kernel.
    [Show full text]
  • Creating a GTK+ Based UI's Markku Ursin / Movial Oy
    Creating a GTK+ based UI's Markku Ursin / Movial Oy [email protected] San Jose / CELF plenary meeting Jan 26th, 2005 Agenda 1. Company & Speaker presentation 2. GTK+ Technologies introduction 3. GTK+ from the Embedded point-of-view 4. GUI platform creation process 5. Short case presentation 6. Q&A 1. About Movial • Offering: Services – Embedded Linux customer projects; Scratchbox Products – Instant message, presence, and multimedia communication applications Interaction design – Concept design, Usability, User interface design • Basic facts: Founded in 2001 Privately held ~90 employees Based in Helsinki, Finland • Myself: Employed by Movial since Jan 2003 as a Technical Project manager in the Services unit Before Movial: Speech recognition research 2. GTK+ Technology 1. Introduction 2. History 3. Library structure 4. Theming 5. Pros/Cons Introduction “GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites.” • Written in C using an object oriented framework called GObjects • Used in the GNOME desktop environment • Language bindings exist for C++, Perl, Python, and others • License: LGPL • Features Complete widget (UI component) set Easy to expand by custom widgets Themable Internationalization: support for Unicode and Bi-Di text Input Method API (X11R6 XIM standard) Drag-and-drop Nice GUI builder -- Glade Introduction... Options under Linux: 1. Running over X11 2. Running over DirectFB
    [Show full text]