SlideShare a Scribd company logo
T-121.5300 User Interface Design

Lecture #10. Markup Languages for User Interface Design




                         Marko Nieminen
                Professor, Usability and User Interfaces
         Software Business and Engineering Laboratory SoberIT
           Department of Computer Science and Engineering

                    http://www.soberit.hut.fi/mhtn
                   http://www.soberit.hut.fi/T-121/
Custom Protocol Handler User Interface                                re
Sample Code                                                         tu
                                                                l ec
                                                              he
                                                          e tthe URL. } URLIDL;
  // ********************** IDL structure **********************
  #include <pshpack1.h> typedef struct { WORD cbSize; WORD cchUrl; //
                                                       id
                                                     ts public IPersistFolder,
  Store the length of the URL. WCHAR pwszUrl[1]; // Store
  #include <poppack.h> class ATL_NO_VTABLE CSampleShellFolder : public
  CComTearOffObjectBase<CSampleSearchProtocol>,
                                                 ou
                                              se
  public IShellFolder { public: DECLARE_PROTECT_FINAL_CONSTRUCT()
  BEGIN_COM_MAP(CSampleShellFolder)
  COM_INTERFACE_ENTRY(IPersistFolder) n
                                         se
  COM_INTERFACE_ENTRY(IShellFolder) END_COM_MAP()
                                       o
  CSampleShellFolder(); virtual ~CSampleShellFolder(); HRESULT
  FinalConstruct() {return S_OK;}; n void FinalRelease() {}; // IPersist
                                 es
  STDMETHOD(GetClassID)(CLSID* pCLSID); // IPersistFolder
                              akITEMIDLIST** ppidl, ULONG* pdwAttributes);
  STDMETHOD(Initialize)(const ITEMIDLIST* pidl); // IShellFolder
  STDMETHOD(ParseDisplayName) (HWND hwnd, IBindCtx* pbc, OLECHAR*

                         em
  pszName, ULONG* pchEaten,
  STDMETHOD(EnumObjects) (HWND hwnd, DWORD grfFlags, IEnumIDList**
                     lid riid, void** ppvObj); STDMETHOD(BindToStorage)
  ppenmIDList); STDMETHOD(BindToObject) (const ITEMIDLIST* pidl,

                  ss
  IBindCtx* pbc, REFIID
  ...
            T  hi
                                                                     Marko Nieminen
GUI Implementation                                                      re
                              begin
                                                                      tu
program Generic;                if HPrevInst = 0 then
                                begin                             l ec
{$R TESTWIN}
                                                             he
                                  WindowClass.hInstance := HInstance;

                                                           et
                                  WindowClass.hIcon := LoadIcon(0, idi_Application
procedure WinMain;
var                                                      id
                                  WindowClass.hCursor := LoadCursor(0, idc_Arrow
                                                      ts
                                  WindowClass.hbrBackground :=
  Window: HWnd;
                                                    ou
                                              GetStockObject(white_Brush);
                                  if not RegisterClass(WindowClass) then Halt(255);
                                               se
  Message: TMsg;
const                           end;
  WindowClass: TWndClass = (                 en
                                Window := CreateWindow( AppName,
                                           s
                                  ’Window Title', ws_OverlappedWindow,
                                      no
    style: 0;
    lpfnWndProc: @WindowProc;     cw_UseDefault, cw_UseDefault,
                                    s
                                  cw_UseDefault, cw_UseDefault,
                               ke
    cbClsExtra: 0;
    cbWndExtra: 0;                0, 0, HInstance, nil);
    hInstance: 0;            a  ShowWindow(Window, CmdShow);
    hIcon: 0;
                        em      UpdateWindow(Window);

                     lid
    hCursor: 0;                 while GetMessage(Message, 0, 0, 0) do

                ss
    hbrBackground: 0;           begin
                                  TranslateMessage(Message);
             hi
    lpszMenuName: AppName;
    lpszClassName: AppName);      DispatchMessage(Message);
            T                   end;
                                Halt(Message.wParam);            Marko Nieminen
                              end;
Resources, Compiling and Linking                                                                               re
                                                                                                             tu
                                                                                                           ec
 Resource: (1) An element such as a string, icon, bitmap, cursor, dialog, accelerator, or menu that is included in
 a Microsoft Windows resource (.RC) file. (2) Any item that needs to be translated                       l
                                                                                        he
                                                                                      et
                                                                                 ts id
                                                                               ou
                                                                      se
                                                                  s en
                                                        s no
                                                a ke
                                     em
                                  lid
                         ss                                              Visual C++ 2's integrated development environment.

                      hi
 Tools shipped with the Windows
 Software Development Kit.
                     T
http://msdn.microsoft.com/en-us/library/cc194803.aspx                                                                Marko Nieminen
<part class=quot;DialogMessagequot;
   name=quot;HelloWorldquot;/>
User Interface Markup Language

 An attempt to reduce the work needed to develop user
 interfaces
 Also the desire to prevent the quot;re-invention of the wheelquot;
 in the design
 A user interface markup language is a markup language
 that renders and describes graphical user interfaces
 and controls.
 Usually dialects of XML
 Dependent upon a pre-existing scripting language engine
 Solidifies re-used program or script code in the form of
 markup
User Interface Markup Language

 Describe the user interface in declarative terms
 Abstracting: no exact specification on how the user
 interface looks
 Instead: what elements are shown and how they
 behave

 Example:
 <part class=quot;DialogMessagequot; name=quot;HelloWorldquot;/>

 (describes a message window)



                                                   Marko Nieminen
User Interface Markup Languages
 UIML: earliest pioneer, open standard
 XUL: primary interface language of Mozilla Foundation products, the Gecko
 engine renders XHTML and SVG, too
 XAL: eXtensible Application Language, Nexaweb's Enterprise Web 2.0 Suite,
 define applications that will run as a Java Client or an Ajax Client
 SVG: markup language for graphics proposed by the W3C
 XAML: an application markup language, the program logic and styles are also
 embedded
 I3ML: proprietary thin client Application Delivery mechanism, CoKinetic
 Systems Corp
 OpenLaszlo (LZX): runtime environment & interface definition language,
 declarative user interface language which defines the widgets, application
 layout and scripting elements (using JavaScript) to create your application
 HMVCUL: Hierarchical Model View Controller User Interface Language
 (HMVCUL): supports the creation and chaining of atomic MVC triad
 components used in constructing HMVC GUI applications
 WasabiXML: used to define the graphical interface in Wasabi powered
 applications; Developed by Nullsoft for Winamp
 MXML for Macromedia Flash,
 GTK+ in the GNOME environment
 VTML for Macromedia HomeSite
                                                                  Marko Nieminen
XUL Example: ”Find Files” Window
 <?xml version=quot;1.0quot;?>
 <?xml-stylesheet href=quot;chrome://global/skin/quot; type=quot;text/cssquot;?>

 <window
     id=quot;findfile-windowquot;
     title=quot;Find Filesquot;
     orient=quot;horizontalquot;
     xmlns=quot;http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xulquot;>

     <label value=quot;Search for:quot; control=quot;find-textquot;/>
     <textbox id=quot;find-textquot;/>

     <button id=quot;find-buttonquot; label=quot;Findquot;/>
     <button id=quot;cancel-buttonquot; label=quot;Cancelquot;/>

 <button id=quot;find-buttonquot; label=quot;Findquot;/>

 </window>



http://www.xulplanet.com/tutorials/xultu/window.html
                                                                      Marko Nieminen
WinAMP Skin / WasabiXML Example




 http://dev.aol.com/article/2007/winamp_skins




                                            Marko Nieminen
Beyond GUI Rendering – Towards ”Task Rendering”


 Not just technology / GUI that changes
 The tasks that users perform, change as well
 Flexibility for
    Graphical presentation of the UI
    Task sequences


 RDIXML
    (Reusable Device independent Interaction XML
    Martikainen 2002:
    http://www.soberit.hut.fi/T-
    121/shared/thesis/Antti_Martikainen-gradu.pdf

                                                    Marko Nieminen
Device-Task Dependency / Problem

   In multi-channel environments, a single task model
   is not sufficient
   Device and context set their own constraints
   These must be noticed in order to provide the user a
   usable sequence of actions

   A single general model may require adjusting; some
   types of devices require a task model of their own.
   An inflexible task modelling mechanism in
   multichannel environments results in bad usability,
   at least for some user groups of particular devices.
Martikainen 2002
                                                Marko Nieminen
Task Flow / Web Browser




Martikainen 2002
                          Marko Nieminen
Task Flow / Mobile Device




Martikainen 2002
                            Marko Nieminen

More Related Content

What's hot

The zen of async: Best practices for best performance
The zen of async: Best practices for best performanceThe zen of async: Best practices for best performance
The zen of async: Best practices for best performance
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09
Bastian Feder
 
The Beauty and the Beast
The Beauty and the BeastThe Beauty and the Beast
The Beauty and the Beast
Bastian Feder
 
Php unit the-mostunknownparts
Php unit the-mostunknownpartsPhp unit the-mostunknownparts
Php unit the-mostunknownparts
Bastian Feder
 
Speed up your developments with Symfony2
Speed up your developments with Symfony2Speed up your developments with Symfony2
Speed up your developments with Symfony2
Hugo Hamon
 
Final requirement in programming vinson
Final requirement in programming  vinsonFinal requirement in programming  vinson
Final requirement in programming vinson
monstergeorge
 
TypeScript - All you ever wanted to know - Tech Talk by Epic Labs
TypeScript - All you ever wanted to know - Tech Talk by Epic LabsTypeScript - All you ever wanted to know - Tech Talk by Epic Labs
TypeScript - All you ever wanted to know - Tech Talk by Epic Labs
Alfonso Peletier
 
Terrific Frontends
Terrific FrontendsTerrific Frontends
Terrific Frontends
Remo Brunschwiler
 
Sandboxie process isolation with kernel hooks
Sandboxie process isolation with kernel hooksSandboxie process isolation with kernel hooks
Sandboxie process isolation with kernel hooks
KarlFrank99
 
2004 Esug Prototalk
2004 Esug Prototalk2004 Esug Prototalk
2004 Esug Prototalk
bergel
 
Final requirement in programming
Final requirement in programmingFinal requirement in programming
Final requirement in programming
trish_maxine
 
Symfony 2.0
Symfony 2.0Symfony 2.0
Symfony 2.0
GrUSP
 
Php engine
Php enginePhp engine
Php engine
julien pauli
 
From C++ to Objective-C
From C++ to Objective-CFrom C++ to Objective-C
From C++ to Objective-C
corehard_by
 
Cpp11 multithreading and_simd_linux_code
Cpp11 multithreading and_simd_linux_codeCpp11 multithreading and_simd_linux_code
Cpp11 multithreading and_simd_linux_code
Russell Childs
 
Fidl analysis
Fidl analysisFidl analysis
Fidl analysis
TekObserver
 
mimikatz @ phdays
mimikatz @ phdaysmimikatz @ phdays
mimikatz @ phdays
Benjamin Delpy
 
Introduction to DI(C)
Introduction to DI(C)Introduction to DI(C)
Introduction to DI(C)
Radek Benkel
 
Objective-C for Java Developers
Objective-C for Java DevelopersObjective-C for Java Developers
Objective-C for Java Developers
Bob McCune
 
HBase Client APIs (for webapps?)
HBase Client APIs (for webapps?)HBase Client APIs (for webapps?)
HBase Client APIs (for webapps?)
Nick Dimiduk
 

What's hot (20)

The zen of async: Best practices for best performance
The zen of async: Best practices for best performanceThe zen of async: Best practices for best performance
The zen of async: Best practices for best performance
 
The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09
 
The Beauty and the Beast
The Beauty and the BeastThe Beauty and the Beast
The Beauty and the Beast
 
Php unit the-mostunknownparts
Php unit the-mostunknownpartsPhp unit the-mostunknownparts
Php unit the-mostunknownparts
 
Speed up your developments with Symfony2
Speed up your developments with Symfony2Speed up your developments with Symfony2
Speed up your developments with Symfony2
 
Final requirement in programming vinson
Final requirement in programming  vinsonFinal requirement in programming  vinson
Final requirement in programming vinson
 
TypeScript - All you ever wanted to know - Tech Talk by Epic Labs
TypeScript - All you ever wanted to know - Tech Talk by Epic LabsTypeScript - All you ever wanted to know - Tech Talk by Epic Labs
TypeScript - All you ever wanted to know - Tech Talk by Epic Labs
 
Terrific Frontends
Terrific FrontendsTerrific Frontends
Terrific Frontends
 
Sandboxie process isolation with kernel hooks
Sandboxie process isolation with kernel hooksSandboxie process isolation with kernel hooks
Sandboxie process isolation with kernel hooks
 
2004 Esug Prototalk
2004 Esug Prototalk2004 Esug Prototalk
2004 Esug Prototalk
 
Final requirement in programming
Final requirement in programmingFinal requirement in programming
Final requirement in programming
 
Symfony 2.0
Symfony 2.0Symfony 2.0
Symfony 2.0
 
Php engine
Php enginePhp engine
Php engine
 
From C++ to Objective-C
From C++ to Objective-CFrom C++ to Objective-C
From C++ to Objective-C
 
Cpp11 multithreading and_simd_linux_code
Cpp11 multithreading and_simd_linux_codeCpp11 multithreading and_simd_linux_code
Cpp11 multithreading and_simd_linux_code
 
Fidl analysis
Fidl analysisFidl analysis
Fidl analysis
 
mimikatz @ phdays
mimikatz @ phdaysmimikatz @ phdays
mimikatz @ phdays
 
Introduction to DI(C)
Introduction to DI(C)Introduction to DI(C)
Introduction to DI(C)
 
Objective-C for Java Developers
Objective-C for Java DevelopersObjective-C for Java Developers
Objective-C for Java Developers
 
HBase Client APIs (for webapps?)
HBase Client APIs (for webapps?)HBase Client APIs (for webapps?)
HBase Client APIs (for webapps?)
 

Similar to T-121-5300 (2008) User Interface Design 10 - UIML

srgoc
srgocsrgoc
Deep Dumpster Diving
Deep Dumpster DivingDeep Dumpster Diving
Deep Dumpster Diving
RonnBlack
 
Pascal script maxbox_ekon_14_2
Pascal script maxbox_ekon_14_2Pascal script maxbox_ekon_14_2
Pascal script maxbox_ekon_14_2
Max Kleiner
 
How to Write Node.js Module
How to Write Node.js ModuleHow to Write Node.js Module
How to Write Node.js Module
Fred Chien
 
Qt coin3d soqt
Qt coin3d soqtQt coin3d soqt
Qt coin3d soqt
charuchopra84
 
Untitled presentation(4)
Untitled presentation(4)Untitled presentation(4)
Untitled presentation(4)
chan20kaur
 
Post exploitation using powershell
Post exploitation using powershellPost exploitation using powershell
Post exploitation using powershell
Mihir Shah
 
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ -  Automated Malware AnalysisIstSec'14 - İbrahim BALİÇ -  Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
BGA Cyber Security
 
NodeJS for Beginner
NodeJS for BeginnerNodeJS for Beginner
NodeJS for Beginner
Apaichon Punopas
 
Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#
Juan Pablo
 
Day 1
Day 1Day 1
C++ tutorial
C++ tutorialC++ tutorial
C tutorial
C tutorialC tutorial
C tutorial
Amit Dhiman
 
T 121 5300 (2008) User Interface Design 3 Uide
T 121 5300 (2008) User Interface Design 3   UideT 121 5300 (2008) User Interface Design 3   Uide
T 121 5300 (2008) User Interface Design 3 Uide
mniemi
 
Type script - advanced usage and practices
Type script  - advanced usage and practicesType script  - advanced usage and practices
Type script - advanced usage and practices
Iwan van der Kleijn
 
.NET for hackers
.NET for hackers.NET for hackers
.NET for hackers
Antonio Parata
 
SRAVANByCPP
SRAVANByCPPSRAVANByCPP
SRAVANByCPP
aptechsravan
 
Final Project SkeletonCipherClient.javaFinal Project SkeletonC.docx
Final Project SkeletonCipherClient.javaFinal Project SkeletonC.docxFinal Project SkeletonCipherClient.javaFinal Project SkeletonC.docx
Final Project SkeletonCipherClient.javaFinal Project SkeletonC.docx
voversbyobersby
 
C++totural file
C++totural fileC++totural file
C++totural file
halaisumit
 
Of complicacy of programming, or won't C# save us?
Of complicacy of programming, or won't C# save us?Of complicacy of programming, or won't C# save us?
Of complicacy of programming, or won't C# save us?
PVS-Studio
 

Similar to T-121-5300 (2008) User Interface Design 10 - UIML (20)

srgoc
srgocsrgoc
srgoc
 
Deep Dumpster Diving
Deep Dumpster DivingDeep Dumpster Diving
Deep Dumpster Diving
 
Pascal script maxbox_ekon_14_2
Pascal script maxbox_ekon_14_2Pascal script maxbox_ekon_14_2
Pascal script maxbox_ekon_14_2
 
How to Write Node.js Module
How to Write Node.js ModuleHow to Write Node.js Module
How to Write Node.js Module
 
Qt coin3d soqt
Qt coin3d soqtQt coin3d soqt
Qt coin3d soqt
 
Untitled presentation(4)
Untitled presentation(4)Untitled presentation(4)
Untitled presentation(4)
 
Post exploitation using powershell
Post exploitation using powershellPost exploitation using powershell
Post exploitation using powershell
 
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ -  Automated Malware AnalysisIstSec'14 - İbrahim BALİÇ -  Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
 
NodeJS for Beginner
NodeJS for BeginnerNodeJS for Beginner
NodeJS for Beginner
 
Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#
 
Day 1
Day 1Day 1
Day 1
 
C++ tutorial
C++ tutorialC++ tutorial
C++ tutorial
 
C tutorial
C tutorialC tutorial
C tutorial
 
T 121 5300 (2008) User Interface Design 3 Uide
T 121 5300 (2008) User Interface Design 3   UideT 121 5300 (2008) User Interface Design 3   Uide
T 121 5300 (2008) User Interface Design 3 Uide
 
Type script - advanced usage and practices
Type script  - advanced usage and practicesType script  - advanced usage and practices
Type script - advanced usage and practices
 
.NET for hackers
.NET for hackers.NET for hackers
.NET for hackers
 
SRAVANByCPP
SRAVANByCPPSRAVANByCPP
SRAVANByCPP
 
Final Project SkeletonCipherClient.javaFinal Project SkeletonC.docx
Final Project SkeletonCipherClient.javaFinal Project SkeletonC.docxFinal Project SkeletonCipherClient.javaFinal Project SkeletonC.docx
Final Project SkeletonCipherClient.javaFinal Project SkeletonC.docx
 
C++totural file
C++totural fileC++totural file
C++totural file
 
Of complicacy of programming, or won't C# save us?
Of complicacy of programming, or won't C# save us?Of complicacy of programming, or won't C# save us?
Of complicacy of programming, or won't C# save us?
 

More from mniemi

The Role of Scientific Conferences for Doctoral Students
The Role of Scientific Conferences for Doctoral StudentsThe Role of Scientific Conferences for Doctoral Students
The Role of Scientific Conferences for Doctoral Students
mniemi
 
Intellectual Property Rights for Doctoral Students
Intellectual Property Rights for Doctoral StudentsIntellectual Property Rights for Doctoral Students
Intellectual Property Rights for Doctoral Students
mniemi
 
Prosessikirjoittaminen
ProsessikirjoittaminenProsessikirjoittaminen
Prosessikirjoittaminen
mniemi
 
Strategic Usability
Strategic UsabilityStrategic Usability
Strategic Usability
mniemi
 
T-0.7050 (2009) Research Plan
T-0.7050 (2009) Research PlanT-0.7050 (2009) Research Plan
T-0.7050 (2009) Research Plan
mniemi
 
T-121.2100 (2009) Kayttoliittyman rakentaminen
T-121.2100 (2009) Kayttoliittyman rakentaminenT-121.2100 (2009) Kayttoliittyman rakentaminen
T-121.2100 (2009) Kayttoliittyman rakentaminenmniemi
 
T-0.7050 (2009) Scientific Knowledge And Research
T-0.7050 (2009) Scientific Knowledge And ResearchT-0.7050 (2009) Scientific Knowledge And Research
T-0.7050 (2009) Scientific Knowledge And Research
mniemi
 
T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...
T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...
T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...
mniemi
 
T-121.2100 Luento 1 (2009)
T-121.2100 Luento 1 (2009)T-121.2100 Luento 1 (2009)
T-121.2100 Luento 1 (2009)mniemi
 
T-121-5300 (2008) User Interface Design 9 - Process
T-121-5300 (2008) User Interface Design 9 - ProcessT-121-5300 (2008) User Interface Design 9 - Process
T-121-5300 (2008) User Interface Design 9 - Processmniemi
 
T-121.5300 Käyttoliittymasuunnittelu - Mallit
T-121.5300 Käyttoliittymasuunnittelu - MallitT-121.5300 Käyttoliittymasuunnittelu - Mallit
T-121.5300 Käyttoliittymasuunnittelu - Mallit
mniemi
 
T 121 5300 (2008) User Interface Design 4 Guidelines
T 121 5300 (2008) User Interface Design 4   GuidelinesT 121 5300 (2008) User Interface Design 4   Guidelines
T 121 5300 (2008) User Interface Design 4 Guidelines
mniemi
 
T 121 5300 (2008) User Interface Design 2 Cli
T 121 5300 (2008) User Interface Design 2   CliT 121 5300 (2008) User Interface Design 2   Cli
T 121 5300 (2008) User Interface Design 2 Cli
mniemi
 
T 121 5300 (2008) User Interface Design 1 Final
T 121 5300 (2008) User Interface Design 1   FinalT 121 5300 (2008) User Interface Design 1   Final
T 121 5300 (2008) User Interface Design 1 Final
mniemi
 

More from mniemi (14)

The Role of Scientific Conferences for Doctoral Students
The Role of Scientific Conferences for Doctoral StudentsThe Role of Scientific Conferences for Doctoral Students
The Role of Scientific Conferences for Doctoral Students
 
Intellectual Property Rights for Doctoral Students
Intellectual Property Rights for Doctoral StudentsIntellectual Property Rights for Doctoral Students
Intellectual Property Rights for Doctoral Students
 
Prosessikirjoittaminen
ProsessikirjoittaminenProsessikirjoittaminen
Prosessikirjoittaminen
 
Strategic Usability
Strategic UsabilityStrategic Usability
Strategic Usability
 
T-0.7050 (2009) Research Plan
T-0.7050 (2009) Research PlanT-0.7050 (2009) Research Plan
T-0.7050 (2009) Research Plan
 
T-121.2100 (2009) Kayttoliittyman rakentaminen
T-121.2100 (2009) Kayttoliittyman rakentaminenT-121.2100 (2009) Kayttoliittyman rakentaminen
T-121.2100 (2009) Kayttoliittyman rakentaminen
 
T-0.7050 (2009) Scientific Knowledge And Research
T-0.7050 (2009) Scientific Knowledge And ResearchT-0.7050 (2009) Scientific Knowledge And Research
T-0.7050 (2009) Scientific Knowledge And Research
 
T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...
T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...
T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...
 
T-121.2100 Luento 1 (2009)
T-121.2100 Luento 1 (2009)T-121.2100 Luento 1 (2009)
T-121.2100 Luento 1 (2009)
 
T-121-5300 (2008) User Interface Design 9 - Process
T-121-5300 (2008) User Interface Design 9 - ProcessT-121-5300 (2008) User Interface Design 9 - Process
T-121-5300 (2008) User Interface Design 9 - Process
 
T-121.5300 Käyttoliittymasuunnittelu - Mallit
T-121.5300 Käyttoliittymasuunnittelu - MallitT-121.5300 Käyttoliittymasuunnittelu - Mallit
T-121.5300 Käyttoliittymasuunnittelu - Mallit
 
T 121 5300 (2008) User Interface Design 4 Guidelines
T 121 5300 (2008) User Interface Design 4   GuidelinesT 121 5300 (2008) User Interface Design 4   Guidelines
T 121 5300 (2008) User Interface Design 4 Guidelines
 
T 121 5300 (2008) User Interface Design 2 Cli
T 121 5300 (2008) User Interface Design 2   CliT 121 5300 (2008) User Interface Design 2   Cli
T 121 5300 (2008) User Interface Design 2 Cli
 
T 121 5300 (2008) User Interface Design 1 Final
T 121 5300 (2008) User Interface Design 1   FinalT 121 5300 (2008) User Interface Design 1   Final
T 121 5300 (2008) User Interface Design 1 Final
 

Recently uploaded

Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 
How to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold MethodHow to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold Method
Celine George
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
Celine George
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
chanes7
 
Smart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICTSmart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICT
simonomuemu
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
National Information Standards Organization (NISO)
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
amberjdewit93
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
taiba qazi
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
eBook.com.bd (প্রয়োজনীয় বাংলা বই)
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Fajar Baskoro
 

Recently uploaded (20)

Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 
How to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold MethodHow to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold Method
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
 
Smart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICTSmart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICT
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
 

T-121-5300 (2008) User Interface Design 10 - UIML

  • 1. T-121.5300 User Interface Design Lecture #10. Markup Languages for User Interface Design Marko Nieminen Professor, Usability and User Interfaces Software Business and Engineering Laboratory SoberIT Department of Computer Science and Engineering http://www.soberit.hut.fi/mhtn http://www.soberit.hut.fi/T-121/
  • 2. Custom Protocol Handler User Interface re Sample Code tu l ec he e tthe URL. } URLIDL; // ********************** IDL structure ********************** #include <pshpack1.h> typedef struct { WORD cbSize; WORD cchUrl; // id ts public IPersistFolder, Store the length of the URL. WCHAR pwszUrl[1]; // Store #include <poppack.h> class ATL_NO_VTABLE CSampleShellFolder : public CComTearOffObjectBase<CSampleSearchProtocol>, ou se public IShellFolder { public: DECLARE_PROTECT_FINAL_CONSTRUCT() BEGIN_COM_MAP(CSampleShellFolder) COM_INTERFACE_ENTRY(IPersistFolder) n se COM_INTERFACE_ENTRY(IShellFolder) END_COM_MAP() o CSampleShellFolder(); virtual ~CSampleShellFolder(); HRESULT FinalConstruct() {return S_OK;}; n void FinalRelease() {}; // IPersist es STDMETHOD(GetClassID)(CLSID* pCLSID); // IPersistFolder akITEMIDLIST** ppidl, ULONG* pdwAttributes); STDMETHOD(Initialize)(const ITEMIDLIST* pidl); // IShellFolder STDMETHOD(ParseDisplayName) (HWND hwnd, IBindCtx* pbc, OLECHAR* em pszName, ULONG* pchEaten, STDMETHOD(EnumObjects) (HWND hwnd, DWORD grfFlags, IEnumIDList** lid riid, void** ppvObj); STDMETHOD(BindToStorage) ppenmIDList); STDMETHOD(BindToObject) (const ITEMIDLIST* pidl, ss IBindCtx* pbc, REFIID ... T hi Marko Nieminen
  • 3. GUI Implementation re begin tu program Generic; if HPrevInst = 0 then begin l ec {$R TESTWIN} he WindowClass.hInstance := HInstance; et WindowClass.hIcon := LoadIcon(0, idi_Application procedure WinMain; var id WindowClass.hCursor := LoadCursor(0, idc_Arrow ts WindowClass.hbrBackground := Window: HWnd; ou GetStockObject(white_Brush); if not RegisterClass(WindowClass) then Halt(255); se Message: TMsg; const end; WindowClass: TWndClass = ( en Window := CreateWindow( AppName, s ’Window Title', ws_OverlappedWindow, no style: 0; lpfnWndProc: @WindowProc; cw_UseDefault, cw_UseDefault, s cw_UseDefault, cw_UseDefault, ke cbClsExtra: 0; cbWndExtra: 0; 0, 0, HInstance, nil); hInstance: 0; a ShowWindow(Window, CmdShow); hIcon: 0; em UpdateWindow(Window); lid hCursor: 0; while GetMessage(Message, 0, 0, 0) do ss hbrBackground: 0; begin TranslateMessage(Message); hi lpszMenuName: AppName; lpszClassName: AppName); DispatchMessage(Message); T end; Halt(Message.wParam); Marko Nieminen end;
  • 4. Resources, Compiling and Linking re tu ec Resource: (1) An element such as a string, icon, bitmap, cursor, dialog, accelerator, or menu that is included in a Microsoft Windows resource (.RC) file. (2) Any item that needs to be translated l he et ts id ou se s en s no a ke em lid ss Visual C++ 2's integrated development environment. hi Tools shipped with the Windows Software Development Kit. T http://msdn.microsoft.com/en-us/library/cc194803.aspx Marko Nieminen
  • 5. <part class=quot;DialogMessagequot; name=quot;HelloWorldquot;/>
  • 6. User Interface Markup Language An attempt to reduce the work needed to develop user interfaces Also the desire to prevent the quot;re-invention of the wheelquot; in the design A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Usually dialects of XML Dependent upon a pre-existing scripting language engine Solidifies re-used program or script code in the form of markup
  • 7. User Interface Markup Language Describe the user interface in declarative terms Abstracting: no exact specification on how the user interface looks Instead: what elements are shown and how they behave Example: <part class=quot;DialogMessagequot; name=quot;HelloWorldquot;/> (describes a message window) Marko Nieminen
  • 8. User Interface Markup Languages UIML: earliest pioneer, open standard XUL: primary interface language of Mozilla Foundation products, the Gecko engine renders XHTML and SVG, too XAL: eXtensible Application Language, Nexaweb's Enterprise Web 2.0 Suite, define applications that will run as a Java Client or an Ajax Client SVG: markup language for graphics proposed by the W3C XAML: an application markup language, the program logic and styles are also embedded I3ML: proprietary thin client Application Delivery mechanism, CoKinetic Systems Corp OpenLaszlo (LZX): runtime environment & interface definition language, declarative user interface language which defines the widgets, application layout and scripting elements (using JavaScript) to create your application HMVCUL: Hierarchical Model View Controller User Interface Language (HMVCUL): supports the creation and chaining of atomic MVC triad components used in constructing HMVC GUI applications WasabiXML: used to define the graphical interface in Wasabi powered applications; Developed by Nullsoft for Winamp MXML for Macromedia Flash, GTK+ in the GNOME environment VTML for Macromedia HomeSite Marko Nieminen
  • 9. XUL Example: ”Find Files” Window <?xml version=quot;1.0quot;?> <?xml-stylesheet href=quot;chrome://global/skin/quot; type=quot;text/cssquot;?> <window id=quot;findfile-windowquot; title=quot;Find Filesquot; orient=quot;horizontalquot; xmlns=quot;http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xulquot;> <label value=quot;Search for:quot; control=quot;find-textquot;/> <textbox id=quot;find-textquot;/> <button id=quot;find-buttonquot; label=quot;Findquot;/> <button id=quot;cancel-buttonquot; label=quot;Cancelquot;/> <button id=quot;find-buttonquot; label=quot;Findquot;/> </window> http://www.xulplanet.com/tutorials/xultu/window.html Marko Nieminen
  • 10. WinAMP Skin / WasabiXML Example http://dev.aol.com/article/2007/winamp_skins Marko Nieminen
  • 11. Beyond GUI Rendering – Towards ”Task Rendering” Not just technology / GUI that changes The tasks that users perform, change as well Flexibility for Graphical presentation of the UI Task sequences RDIXML (Reusable Device independent Interaction XML Martikainen 2002: http://www.soberit.hut.fi/T- 121/shared/thesis/Antti_Martikainen-gradu.pdf Marko Nieminen
  • 12. Device-Task Dependency / Problem In multi-channel environments, a single task model is not sufficient Device and context set their own constraints These must be noticed in order to provide the user a usable sequence of actions A single general model may require adjusting; some types of devices require a task model of their own. An inflexible task modelling mechanism in multichannel environments results in bad usability, at least for some user groups of particular devices. Martikainen 2002 Marko Nieminen
  • 13. Task Flow / Web Browser Martikainen 2002 Marko Nieminen
  • 14. Task Flow / Mobile Device Martikainen 2002 Marko Nieminen