Grip-Vt2010 - Other Approaches Cristian Bogdan – 2010-02-15

Total Page:16

File Type:pdf, Size:1020Kb

Grip-Vt2010 - Other Approaches Cristian Bogdan – 2010-02-15 GrIP-vt2010 - Other Approaches Cristian Bogdan – 2010-02-15 Admin • Project ques/ons? Other Approaches • Physical Interac/on Design demo Wed Mar to Interac/on 3rd at 15:15 on Torget Programming Cris/an Bogdan cris/@kth.se • @Override on framework methods re‐defined (to make sure redefinion is done) • In paint(Graphics g), cast Graphics to Graphics2D to get a richer API – Including afine transforma/ons DH2640 Grafik och Interaktionsprogrammering VT 2010 Why Other Approaches? Approaches • A given approach can work for both prototyping and • Produc/vity development – Interac/on code can grow very large and me‐consuming – But if you use it for prototyping, make sure you can be fast, so you can with toolkits or frameworks focus on the design rather than on the technology – Building e.g. a dialog box in procedural code is not very • User Interface Builders intuive – NetBeans, Eclipse Visual Editor – The “widget level” is very detailed • Command scrip/ng Tcl/Tk – Higher produc/vity is sought. Generate code? • Web 2.0 • Prototyping – Document‐based: JavaScript – JS frameworks (e.g. JQuery) – To communicate about the future product, some – Tradional toolkit: GWT sketch/mock‐up of it is needed • Rich Client PlaYorm: Eclipse RCP – Doing the sketch in the target framework/language is oXen slow/expensive, or the skills are not there • Rich Internet Applica/ons: Adobe Flex, Java FX • • PlaYorm change: from standalone to Web 2.0 Movie metaphor: Adobe Flash GUI‐byggare Några GUI‐byggare: • OXa integrerade med en IDE, Integrated • Interface Builder ever since NeXT (1988) Development Environment for Objec/ve‐C, now on Mac and iPhone • GUI:er består oXast av widgets, samt kod som • Visual Studio .NET Forms Designer, skickar meddelanden mellan dessa www.microsoX.com • GUI‐byggare: "rita" gränssniet, kod som skapar • Borland C++ Builder, www.borland.com widgets och deras layout genereras automa/skt! • QT Designer, www.trolltech.com ‐ Doing that in procedural code is typically boring • NetBeans, www.netbeans.org • Sedan lägger man ll händelselyssnare etc. själv, oXa via någon form av property inspector. • Olika plug‐ins för Eclipse • Many more Sida ‹#› GrIP-vt2010 - Other Approaches Cristian Bogdan – 2010-02-15 NetBeans 6.0 Eclipse interface builder • Called Visual Editor – hhp://www.eclipse.org/vep/ • Was not updated much since Eclipse 3.2 (2006) – S/ll possible to use in 3.5 • hhp://wiki.eclipse.org/VE/Update – This tells that there may not be so much demand for an interface builder Rich Client PlaYorm Command scrip/ng • Eclipse RCP • Tcl scrip/ng language • Can create Eclipse‐like applica/ons using the • Tk user interface toolkit necessary parts (plugins) from Eclipse itself • button.dialogbox.ok -text OK -command {destroy.dialogbox} • Each plugin declares – Create a button – Views and their inial grouping – Called .dialogbox.ok – Editors – With the text OK – Menu items – When pressing the button – Dependencies on other plugins – Destroy the parent window of the button (.dialogbox) • Declared using OSGi (Open Services Gateway • Highly flexible Text and Canvas widgets Inia/ve) • More concise code, rapid prototyping • But still procedural, still at the widget level Web 2.0: HTML + JS + Ajax HTML + JS: events • HTML can describe interface using markup • <form … onSubmit()=“…”> – Form widgets and dynamic elements (see DOM) • Or dynamically: – More declara/ve, possibly more produc/ve • Document Object Model (DOM) • document.forms[0].onSubmit() = – Hierarchical addressing (remember Composite?) function(){…} – document.forms[0].action • Buhons and other GUI‐framework‐like widgets • JavaScript provide the usual events (e.g. onClick) – allows event‐driven change of the document – HTML + CSS presenta/on, JavaScript interac/on • Besides, HTML‐specific events like onSubmit, – Each object defines proper%es, methods, events, sub‐objects onBlur… – document.forms[0].action =‘some_page’; • And document events like onreadystatechange – document.forms[0].submit(); • – document.forms[0].buttons[1] … difficult to add mulple independent event listeners Sida ‹#› GrIP-vt2010 - Other Approaches Cristian Bogdan – 2010-02-15 Web 2.0: HTML + JS + Ajax Web 2.0: frameworks • Data communica/on to the server • Web 2.0 brought a number of frameworks that ease – HTML+JS are restricted to the client browser the JavaScript work. – Server method invoca/on needed for useful • MooTools, very small library applica/ons • JQuery concise code, chained calls – Without change of current browser page • $(document).ready(function() { – Ajax (Asynchronous JavaScript and XML) or similar $("#orderedlist").find("li") .each(function(i) { – Essen/ally a remote procedure call (RPC) for $(this).append( " BAM! " + i ); JavaScript, using }); }); • HTTP as communica/on protocol – Each <li> from the list called #orderedlist is • XML to transmit procedure name, parameters and appended a certain text when the HTML document is results ready Web 2.0: GWT Rich Internet Applica/ons • Google Web Toolkit hhp://code.google.com/webtoolkit • Web applica/ons that look like desktop applica/ons • Applica/ons are wrien in Java • Most of Web 2.0 are RIAs – Using a framework‐like API (Widget, Panel, Frame, Buhon, • But some RIAs are not based on JavaScript but on a Tree…, EventListener) browser plug‐in • Tested in a Java‐based browser • Interac/vity and anima/on – hosted mode • Adobe Flash, Flex – Can be debugged as well • MicrosoX Silverlight • Translated in JavaScript + Ajax automa/cally • Java FX • Then ran in a browser Flash: Anima/on through RIA: Flash Tweening • The movie metaphor • draw or import an element • Stage • select a frame sequence, • Scene • insert a tween – "sec/ons" of a clip, each with its set of frames • define one or more keyframes • Timeline • edit the posion, size and color at the – Frames, keyframes, layers keyframes • test movie (or publish to the web) Sida ‹#› GrIP-vt2010 - Other Approaches Cristian Bogdan – 2010-02-15 Flash: Interac/ve UI RIA: Java FX • make the "stages" in a a graphical program • Compe/tor of Adobe Flex (similar concepts) • or through screenshots • Defines a Stage, Scene,Timeline, KeyFrame, tweening • – Declara/ve or through scans maybe scans of earlier paper – Text‐based prototypes • Uses nodes, groups and transforma/ons over them, • add small scripts for looping layouts • debug: trace() • Data bindings: constraints between variables • add transparent buhons add small event • Events handling scripts for buhon pressing • Scrip/ng language over Java • hhp://java.sun.com/javafx/1/tutorials/ui/ Prototyping Prototype • iden/fy problems and misunderstandings • representa/on: off‐line vs on‐line before it's too late and/or too expensive • precision (low or high, also referred to as • re‐respresent problems, explore solu/ons, get fidelity) inspired • interac/vity (the "look" only, or also parts of • common understanding based on shared the "feel") representa/on (compare formal requirement • evolu/on: rapid, itera/ve (but "plan to throw gathering) one away”), evolu/onary (into the final system) On‐line interac/ve prototyping Ongoing research • "screen changers" (HTML, PowerPoint and • OntoUCP project at TU Wien 2005‐2008 corresponding, earlier Hypercard) • Now EU CommRob project • mulmedia presenters (Flash, Director) • Much higher than widget level • interface builders – Communica/on (tree leaves) – Rhethorical structure (tree nodes) • Flash: on‐line and interac/ve. Not necessarily rapid. Can be itera/ve and even evolu/onary. Sida ‹#› GrIP-vt2010 - Other Approaches Cristian Bogdan – 2010-02-15 Example rendering (UI genera/on) Example model of model Sida ‹#›.
Recommended publications
  • User Interface Software Tools
    User Interface Software Tools Brad A. Myers August 1994 CMU-CS-94-182 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Also appears as Human-Computer Interaction Institute Technical Report CMU-HCII-94-107 This report supersedes CMU-CS-92-114 from February, 1992, published as: Brad A. Myers. ‘‘State of the Art in User Interface Software Tools,’’ Advances in Human- Computer Interaction, Volume 4. Edited by H. Rex Hartson and Deborah Hix. Norwood, NJ: Ablex Publishing, 1993. pp. 110-150. Abstract Almost as long as there have been user interfaces, there have been special software systems and tools to help design and implement the user interface software. Many of these tools have demonstrated significant productivity gains for programmers, and have become important commercial products. Others have proven less successful at supporting the kinds of user interfaces people want to build. This article discusses the different kinds of user interface software tools, and investigates why some approaches have worked and others have not. Many examples of commercial and research systems are included. Finally, current research directions and open issues in the field are discussed. This research was sponsored by NCCOSC under Contract No. N66001-94-C-6037, ARPA Order No. B326. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of NCCOSC or the U.S. Government. CR CATEGORIES AND SUBJECT DESCRIPTORS: D.2.2 [Software Engineering]: Tools and Techniques-User Interfaces; H.1.2 [Models and Principles]: User/Machine Systems-Human Factors; H.5.2 [Information Interfaces and Presentation]: User Interfaces-User Interface Management Systems; I.2.2 [Artificial Intelligence]: Automatic Programming-Program Synthesis; ADDITIONAL KEYWORDS AND PHRASES: User Interface Software, Toolkits, Interface Builders, User Interface Development Environments.
    [Show full text]
  • An Introduction to Qt 4
    AnAn IntroductionIntroduction toto QtQt 44 Jason Trent [email protected] OOuutltliinnee . Why Trolltech? . Why Qt? . Qt 4 Widgets, Datatypes, and Structures . Qt Designer . qmake . Qt without C++ . Demo WWhhyy TTrroolllltetecchh?? .. QQtt aanndd QQttooppiiaa CCoorree aarree OOppeenn SSoouurrccee .. SSuuppppoorrtteedd bbyy mmuullttii--mmiilllliioonn ddoollllaarr ccoommppaannyy WWhhyy QQt?t? .. MMuullttii--ppllaattffoorrmm – No “virtual machines” or emulation layers – Native compilation for Windows, X11, and Mac • Utilizes core OS technologies (Core, Aero, …) – Extensions - ActiveQt, Motif Migration WWhhyy QQt?t? Over 400 C++ Classes . Not just a GUI toolkit – File handling – Networking – Process handling – Threading – Database access – Event loop processing – XML processing – OpenGL integration – and beyond WWhhyy QQt?t? .. IInntteerrnnaattiioonnaalliizzaattiioonn – Built in support for Unicode and Translation • Language and font aware layouts • Bidirectional font support • Mixed-international interface .. SSeeee QQtt LLiinngguuiisstt ffoorr mmoorree WWhhyy QQt?t? .. NNoott jjuusstt mmuuttllii--ppllaattiiffoorrmm,, mmuullttii--aarrcchhiitteeccttuurree .. QQttooppiiaa CCoorree 44 SSeerriieess – Support for embedded devices • Cell phones, PDAs, etc… – Supports Qt4 widgets with little to no code change QQWWiiddggeett TThhee mmeeeekk mmaayy iinnhheerriitt tthhee eeaarrtthh…… ……bbuutt tthhee eeaarrtthh sshhaallll iinnhheerriitt QQWWiiddggeett QWidget QQtt 44 WWiiddggeetsts .. IInnhheerriitt tthhee aallll--ppoowweerrffuull QQWWiiddggeett .. IInncclluuddee::
    [Show full text]
  • Programming Java for OS X
    Programming Java for OS X hat’s so different about Java on a Mac? Pure Java applica- tions run on any operating system that supports Java. W Popular Java tools run on OS X. From the developer’s point of view, Java is Java, no matter where it runs. Users do not agree. To an OS X user, pure Java applications that ignore the feel and features of OS X are less desirable, meaning the customers will take their money elsewhere. Fewer sales translates into unhappy managers and all the awkwardness that follows. In this book, I show how to build GUIs that feel and behave like OS X users expect them to behave. I explain development tools and libraries found on the Mac. I explore bundling of Java applications for deployment on OS X. I also discuss interfacing Java with other languages commonly used on the Mac. This chapter is about the background and basics of Java develop- ment on OS X. I explain the history of Java development. I show you around Apple’s developer Web site. Finally, I go over the IDEs commonly used for Java development on the Mac. In This Chapter Reviewing Apple Java History Exploring the history of Apple embraced Java technologies long before the first version of Java on Apple computers OS X graced a blue and white Mac tower. Refugees from the old Installing developer tan Macs of the 1990s may vaguely remember using what was tools on OS X called the MRJ when their PC counterparts were busy using JVMs. Looking at the MRJ stands for Mac OS Runtime for Java.
    [Show full text]
  • User Interface Software Technology BRAD A
    User Interface Software Technology BRAD A. MYERS Human Computer Interaction Institute, Carnegie Mellon University ^[email protected]& The user interface of an application is the application to draw pictures on the the part that the person using the soft- screen and get input from the user, and ware sees and interacts with. The part the window manager allows the end of the software that makes the user user to move windows around, and is interface work is often large, complex, responsible for displaying the title lines, and difficult to implement, debug, and borders, and icons around the windows. modify. Today direct manipulation in- However, many people and systems use terfaces (also called graphical user in- the name “window manager” to refer to terface (GUI’s)) are almost universal, both layers, since systems such as the and the part of the software that han- Macintosh and Microsoft Windows do dles the user interface generally takes a not separate them. significant percentage of the total sys- On top of the windowing system is the tem design and implementation time toolkit, which contains many commonly [Myers and Rosson 1992]. Therefore, used widgets such as menus, buttons, specialized software tools have been cre- scroll bars, and text-input fields. Tool- ated to ease the programmer’s burden, kits usually connect to application pro- and today virtually all new user inter- grams through call-back procedures de- face software uses tools that make the fined by the application programmer implementation easier. Many of these that are used when a widget is operated tools have demonstrated significant pro- by the end user.
    [Show full text]
  • Eagle: Tcl Implementation in C
    Eagle: Tcl Implementation in C# Joe Mistachkin <[email protected]> 1. Abstract Eagle [1], Extensible Adaptable Generalized Logic Engine, is an implementation of the Tcl [2] scripting language for the Microsoft Common Language Runtime (CLR) [3]. It is designed to be a universal scripting solution for any CLR based language, and is written completely in C# [4]. Su- perficially, it is similar to Jacl [5], but it was written from scratch based on the design and imple- mentation of Tcl 8.4 [6]. It provides most of the functionality of the Tcl 8.4 interpreter while bor- rowing selected features from Tcl 8.5 [7] and the upcoming Tcl 8.6 [8] in addition to adding en- tirely new features. This paper explains how Eagle adds value to both Tcl/Tk and CLR-based applications and how it differs from other “dynamic languages” hosted by the CLR and its cousin, the Microsoft Dy- namic Language Runtime (DLR) [9]. It then describes how to use, integrate with, and extend Ea- gle effectively. It also covers some important implementation details and the overall design phi- losophy behind them. 2. Introduction This paper presents Eagle, which is an open-source [10] implementation of Tcl for the Microsoft CLR written entirely in C#. The goal of this project was to create a dynamic scripting language that could be used to automate any host application running on the CLR. 3. Rationale and Motivation Tcl makes it relatively easy to script applications written in C [11] and/or C++ [12] and so can also script applications written in many other languages (e.g.
    [Show full text]
  • Preview Tcl-Tk Tutorial (PDF Version)
    Tcl/Tk About the Tutorial Tcl is a general purpose multi-paradigm system programming language. It is a scripting language that aims at providing the ability for applications to communicate with each other. On the other hand, Tk is a cross platform widget toolkit used for building GUI in many languages. This tutorial covers various topics ranging from the basics of the Tcl/ Tk to its scope in various applications. Audience This tutorial is designed for all those individuals who are looking for a starting point of learning Tcl/ Tk. Therefore, we cover all those topics that are required for a beginner and an advanced user. Prerequisites Before proceeding with this tutorial, it is advisable for you to understand the basic concepts of computer programming. This tutorial is self-contained and you will be able to learn various concepts of Tcl/Tk even if you are a beginner. You just need to have a basic understanding of working with a simple text editor and command line. Disclaimer & Copyright Copyright 2015 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute, or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt.
    [Show full text]
  • Python and Epics: Channel Access Interface to Python
    Python and Epics: Channel Access Interface to Python Matthew Newville Consortium for Advanced Radiation Sciences University of Chicago October 12, 2010 http://cars9.uchicago.edu/software/python/pyepics3/ Matthew Newville (CARS, Univ Chicago) Epics and Python October 12, 2010 Why Python? The Standard Answers Clean Syntax Easy to learn, remember, and read High Level Language No pointers, dynamic memory, automatic memory Cross Platform code portable to Unix, Windows, Mac. Object Oriented full object model, name spaces. Also: procedural! Extensible with C, C++, Fortran, Java, .NET Many Libraries GUIs, Databases, Web, Image Processing, Array math Free Both senses of the word. No, really: completely free. Matthew Newville (CARS, Univ Chicago) Epics and Python October 12, 2010 Why Python? The Real Answer Scientists use Python. Matthew Newville (CARS, Univ Chicago) Epics and Python October 12, 2010 All of these tools use the C implementation of Python. NOT Jython (Python in Java) or IronPython (Python in .NET): I am not talking about Jython. Why Do Scientists Use Python? Python is great. The tools are even better: numpy Fast arrays. matplotlib Excellent Plotting library scipy Numerical Algorithms (FFT, lapack, fitting, . ) f2py Wrapping Fortran for Python sage Symbolic math (ala Maple, Mathematica) GUI Choices Tk, wxWidgets, Qt, . Free Python is Free. All these tools are Free (BSD). Matthew Newville (CARS, Univ Chicago) Epics and Python October 12, 2010 Why Do Scientists Use Python? Python is great. The tools are even better: numpy Fast arrays. matplotlib Excellent Plotting library scipy Numerical Algorithms (FFT, lapack, fitting, . ) f2py Wrapping Fortran for Python sage Symbolic math (ala Maple, Mathematica) GUI Choices Tk, wxWidgets, Qt, .
    [Show full text]
  • RAND Suicide Prevention Program Evaluation TOOLKIT
    CHILDREN AND FAMILIES The RAND Corporation is a nonprofit institution that helps improve policy and EDUCATION AND THE ARTS decisionmaking through research and analysis. ENERGY AND ENVIRONMENT HEALTH AND HEALTH CARE This electronic document was made available from www.rand.org as a public service INFRASTRUCTURE AND of the RAND Corporation. TRANSPORTATION INTERNATIONAL AFFAIRS LAW AND BUSINESS Skip all front matter: Jump to Page 16 NATIONAL SECURITY POPULATION AND AGING PUBLIC SAFETY Support RAND SCIENCE AND TECHNOLOGY Purchase this document TERRORISM AND Browse Reports & Bookstore HOMELAND SECURITY Make a charitable contribution For More Information Visit RAND at www.rand.org Explore the RAND National Defense Research Institute View document details Limited Electronic Distribution Rights This document and trademark(s) contained herein are protected by law as indicated in a notice appearing later in this work. This electronic representation of RAND intellectual property is provided for non- commercial use only. Unauthorized posting of RAND electronic documents to a non-RAND website is prohibited. RAND electronic documents are protected under copyright law. Permission is required from RAND to reproduce, or reuse in another form, any of our research documents for commercial use. For information on reprint and linking permissions, please see RAND Permissions. This report is part of the RAND Corporation tool series. RAND tools may include models, databases, calculators, computer code, GIS mapping tools, practitioner guide- lines, web applications, and various toolkits. All RAND tools undergo rigorous peer review to ensure both high data standards and appropriate methodology in keeping with RAND’s commitment to quality and objectivity. RAND Suicide Prevention Program Evaluation TOOLKIT Joie D.
    [Show full text]
  • Multi-Platform User Interface Construction – a Challenge for Software Engineering-In-The-Small
    Multi-platform User Interface Construction – A Challenge for Software Engineering-in-the-Small Judith Bishop Department of Computer Science University of Pretoria Pretoria 0002 South Africa [email protected] ABSTRACT The popular view of software engineering focuses on managing 1. INTRODUCTION teams of people to produce large systems. This paper addresses a 1.1 Software engineering different angle of software engineering, that of development for Software engineering as a discipline is perceived as tackling re-use and portability. We consider how an essential part of computing in-the-large. It elevates tools and techniques from the most software products – the user interface – can be successfully level of a craft, to where they can be efficiently and reproducibly engineered so that it can be portable across multiple platforms harnessed for the successful completion of large projects. and on multiple devices. Our research has identified the structure of the problem domain, and we have filled in some of Thirty years ago in 1975, Fred Brooks introduced us to the the answers. We investigate promising solutions from the mythical man month of software development [Brooks 1975] model-driven frameworks of the 1990s, to modern XML-based and followed this with the “no silver bullet” paper, in which he specification notations (Views, XUL, XIML, XAML), multi- talked about software engineering as being a process of building platform toolkits (Qt and Gtk), and our new work, Mirrors software with “specifications, assembly of components, and which pioneers reflective libraries. The methodology on which scaffolding” [Brooks 1987]. Boehm, too, found in 1976 that Views and Mirrors is based enables existing GUI libraries to be software engineering was, encouragingly, concentrating on the transported to new operating systems.
    [Show full text]
  • FOSDEM 2006 – Saturday 25Th February (Part 1) 1/6
    FOSDEM 2006 – Saturday 25th February (part 1) 1/6 10:00 OpenGroupware ▼ Opening Talks Tutorials KDE openSUSE Embedded Mozilla Tcl/Tk 13:00 (Janson) (H2215/Ferrer) (H.1301) (H.1302) (H.1308) (H.1309) +GNUstep (H.2111) (AW1.105) 13:00 lunch break 13:00 Movitation, 13:00 Opening and GNUstep devtools: Goals and 13:15 13:15 introduction GORM, StepTalk Opportunities Axel Hecht Nicolas Roard Systems VoIP 13:30 DTrace S. Krause-Harder, SETR LiveCD 13:30 M. Loeffler (Janson) (Lameere) 13:45 Jon Haslam Hector Oron 13:45 Mozilla 14:00 14:00 Kubuntu openSUSE Build 14:00 Foundation CoreData Intro to Plan9 SER Service Intro 14:15 14:15 Jonathan 14:15 G. Markham Sašo Kiselkov Tcl/Tk Uriel M. Jan Janak A. Schroeter, 14:30 Pereira 14:30 Ridell C. Schumacher, Optimizing 14:30 Mozilla Clif Flynt A. Bauer 14:45 14:45 Linux kernel 14:45 Europe 15:00 15:00 Open SUSE Linux and apps 15:00 Tristan Nitot Web applicationsGUI for DTrace Asterisk M.Opdenacker 15:15 Jon Haslam Mark 15:15 Key Devroom Power Mngmt 15:15 SeaMonkey with SOPE ASIC 15:30 Spencer 15:30 Signing Timo Hoenig, Lock-free data 15:30 Project Marcus Mueller verification 15:45 15:45 Holger Macht exchange for 15:45 Robert Kaiser Karel Nijs Real-Time apps 16:00 16:00 SUSE Linux 16:00 Xen Speex Asterisk Marketing Peter Soetens Flock GNUstep on the Hecl: 10.2: 16:15 Ian Pratt J.-M. Valin 16:15 Mark KDE 16:15 Z. Braniecki Zaurus PDA scripting Quo vadis ? 16:30 16:30 Spencer Sebastian Alsa SoC layer16:30 Nicolaus Schaller for mobiles Kügler M.Loeffler,C.Thiel D.N.Welton 16:45 16:45 Liam Girdwood 16:45 Mozilla 17:00 Closing Talks (Janson) 17:00 17:00 Project BOF 17:15 17:15 17:15 FOSDEM Donators Return 17:30 17:30 17:45 17:45 17:30 FSF Europe Opening Talks (Janson) Hacker Rooms LPI Exam Sessions 10:00 FOSDEM Core Staff Welcome Speech Building H: H2213 Saturday 13:00-14:30 10:30 Keynote Building AW: AW1.117 (H2214) 15:00-16:30 Richard M.
    [Show full text]
  • Pygtk 2.0 Tutorial
    PyGTK 2.0 Tutorial John Finlay October 7, 2012 PyGTK 2.0 Tutorial by John Finlay Published March 2, 2006 ii Contents 1 Introduction 1 1.1 Exploring PyGTK . .2 2 Getting Started 5 2.1 Hello World in PyGTK . .7 2.2 Theory of Signals and Callbacks . .9 2.3 Events . 10 2.4 Stepping Through Hello World . 11 3 Moving On 15 3.1 More on Signal Handlers . 15 3.2 An Upgraded Hello World . 15 4 Packing Widgets 19 4.1 Theory of Packing Boxes . 19 4.2 Details of Boxes . 20 4.3 Packing Demonstration Program . 22 4.4 Packing Using Tables . 27 4.5 Table Packing Example . 28 5 Widget Overview 31 5.1 Widget Hierarchy . 31 5.2 Widgets Without Windows . 34 6 The Button Widget 35 6.1 Normal Buttons . 35 6.2 Toggle Buttons . 38 6.3 Check Buttons . 40 6.4 Radio Buttons . 42 7 Adjustments 45 7.1 Creating an Adjustment . 45 7.2 Using Adjustments the Easy Way . 45 7.3 Adjustment Internals . 46 8 Range Widgets 49 8.1 Scrollbar Widgets . 49 8.2 Scale Widgets . 49 8.2.1 Creating a Scale Widget . 49 8.2.2 Methods and Signals (well, methods, at least) . 50 8.3 Common Range Methods . 50 8.3.1 Setting the Update Policy . 50 8.3.2 Getting and Setting Adjustments . 51 8.4 Key and Mouse Bindings . 51 8.5 Range Widget Example . 51 9 Miscellaneous Widgets 57 9.1 Labels . 57 9.2 Arrows . 60 9.3 The Tooltips Object .
    [Show full text]
  • Using Xmlfor User Interface Documentation And
    Journal of Theoretical and Applied Information Technology © 2005 - 2010 JATIT & LLS. All rights reserved. www.jatit.org USING XML FOR USER INTERFACE DOCUMENTATION AND DIFFERENTIAL EVALUATION 1MOHAMMAD TUBISHAT, 2IZZAT ALSMADI, AND 3MOHAMMED AL-KABI 1Lecturer, Computer Science Department, Yarmouk University, Irbid, Jordan 2Asstt. Prof., Computer Information Systems Department, Yarmouk University, Irbid, Jordan 3Asstt. Prof., Computer Information Systems Department, Yarmouk University, Irbid, Jordan E-mail: [email protected] , [email protected] , [email protected] ABSTRACT In any software product, the user interface is one of the most important parts that defines the communication between the user and the system. One of the challenges in user interfaces is in the ability to save its state at any time as in many cases, especially in problems such as power interruptions; there is a need to save the last “good” state. In some other cases, there is a need to see if the user interface state is changed or to compare the current state with a previous one. This is required for several possible cases such as: evaluation, and changes in requirements, design and implementation. The format used for storing the state of the Graphical User Interface (GUI) should be global and can be easily used by different types of applications (such as the XML format). A GUI state is usually defined as the overall combination of properties of all the components or widgets of the GUI. In this paper an alternative back end representation is proposed for user interfaces and their state from their original format within the applications. In this approach the user interface is converted to an XML file.
    [Show full text]