1 / 7

http://en.wikipedia.org/wiki/Graphical_user_interface_toolkit http://www.geocities.com/SiliconValley/Vista/7184/guitool.

GUI TOOLKIT INFORMATION (here’s a start):. http://en.wikipedia.org/wiki/Graphical_user_interface_toolkit http://www.geocities.com/SiliconValley/Vista/7184/guitool.html http://www.free-soft.org/guitool/ http://www.efalk.org/Widgets/ http://freshmeat.net/articles/view/928.

hop
Download Presentation

http://en.wikipedia.org/wiki/Graphical_user_interface_toolkit http://www.geocities.com/SiliconValley/Vista/7184/guitool.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GUI TOOLKIT INFORMATION (here’s a start): http://en.wikipedia.org/wiki/Graphical_user_interface_toolkit http://www.geocities.com/SiliconValley/Vista/7184/guitool.html http://www.free-soft.org/guitool/ http://www.efalk.org/Widgets/ http://freshmeat.net/articles/view/928

  2. POPULAR PLATFORM-SPECIFIC GUI TOOLKITS LOW LEVEL integrated in the OS: Mac OS toolbox or Macintosh APIs: Carbon: (Mac) improved version of Mac APIs for OS X; Carbon is the lower level APIs and Cocoa is a higher level application framework. Access Carbon using C, C++, Pascal, Ada, and Cocoa uses Objective C and java; is comprised of “Managers” (HIView, HITheme…), each defining a set of functionally-related data structures and functions to manipulate them. So much more… Windows API: (Windows) set of APIs for use by C/C++ programs. So many versions… Win16, Win32, Win32s, Win64, WinFX (object oriented API – the GUI API set for WinFX called Windows Presentation Foundation, requires high-end graphics cards to properly render some fx.) so much more… A layer on top of the OS: X windows: provides basic building blocks (accessed by Motif, GTK+, Qt) Amiga OS Intutition: Since Amiga OS 2.0, the intuition library is disk (not ROM) based and object oriented. Invokes Workbench (which is the native graphical shell) library and Icon library, which comprise the native GUI. HIGH LEVEL Mac: Interface Builder / Cocoa: (native OO AP environment for OS X); evolved from the NeXTSTEP development software, closely mirrored in Gorm, interface builder for GNUstep. MacApp: (Macintosh framework, most of 1980s) MacZoop: (Macintosh C++ framework) based on Carbon, smaller, more manageable alternative to now defunct Think Class Library (TCL) from Symantec, and later Powerplant framework from Metrowerks. Developed 1994-2003, but then discontinued. Powerplant: (from Metrowerks) Windows: Microsoft Foundation Classes (MFC): (wrapper for Win32API – not independent toolkit) Object Windows Library: (Borlands alternative to MFC) (wrapper for Win32API – not independent toolkit) Windows Forms: (.NET’s classes for GUI controls) Unix: Xaw: (Project Athena widgets for X Windows) simple user interfaces only… Motif: (used in Common Desktop Environment (CDE) and created by Open Software Foundation as OSF/Motif, now owned by The Open Group) Sun Microsystems (major Motif user, will switch to GTK+ and GNOME… Lesstif: (open, LGPL Motif version, developed by the Hungry Programmers)

  3. POPULAR CROSS-PLATFORM GUI TOOLKITS Based on SVG: airWRX: application framework, runs from USB flash drive (flash drive becomes server, PC host and other PCs nearby turn into multi-screen web-like digital workspace Based on Java programming language: Abstract Windowing Toolkit (AWT): platform independent windowing, gfx and gui widget toolkit. Part of Java Foundation Classes (JFC). In JDK version 1, widgets have been superseded by those of Swing Toolkit. Swing: (Sun’s replacement for AWT in newer Java versions), part of JFC. Support pluggable look and feel; slower execution, but identical look/feel on all platforms. Standard Widget Toolkit (SWT): an alternative to AWT and Swing from Eclipse project; will use the running platform’s widget tookit underneath (GTK+ or Windows API) Open source framework for GUI development in Java. Licensed under the Eclipse Public License. Written in standard Java, accesses platform-specific libs thru the Java Native Interface. Based on C/C++ with bindings for other: Tcl/Tk: accessed from Tcl, Python GTK+: (LGPL), mostly for X Windows; used in GNOME DE Qt: (GPL), for Unix/Linux (X Windows), MS Windows, MacOS X and embedded systems; also commercial; used in KDE CLX (Component library for Cross-Platform): used with Borland’s Delphi, C++Builder, Kylix for building cross-platform applications. Based on Qt, wrapped so its interface is similar to VCL toolkit. wxWidgets: (formerly wxWindows), (relaxed LGPL); abstracts toolkits across several platfoms (Windows, Apple Macintosh, Linux/Unix for X11, Motif and GTK+, OpenVMS and OS/2. for C++, Python and Perl, Java, Smalltalk…provides thin abstraction to native widgets. Also has ODBC based database library, interprocess communication layer, socket networking etc. (other functionality besides GUI). FOX toolkit: (LGPL) has a currently hard-wired Win95-style theme (bleh); uses platform specific graphical primitives to display GUI elements (like Swing) as opposed to using native widgets (like Java AWT); has modern widgets, unlike Tk and GTK+; Written in C++ with bindings for Python, Ruby and Eiffel. FLTK (LGPL): (Fast Light Toolkit) “fulltick” C++, Windows, GNU/Linux, Mac OS X, Solaris, Unix, UI builder called FLUID KWwidgets: C++ open, has set of core widgets, composite widgets (and VTK widgets). Testable. Tcl wrapping Presenter: XVT: C, C++, development tools and libraries for GUI; Windows, Linux, Mac, Solaris (oops, purchase only) JUCE: C++ class library for developing cross-platform apps. V: Common C++ wrapper; native look and feel (LGPL) Zoolib: seems inactive for a long time… GLOW GLUI

  4. language & bindings full widget set allows custom widgets | style vtly/poplry% (freshmeat) comments testable docs license OPTIONS Efficient for prototyping; slicer developers have most experience with this set of tools.. Missing many modern GUI widgets. Tcl/Tk Tkinter GTK+ TkZinc Qt FOX toolkit FLTK wxWidgets KWwidgets Zoolib JUCE GLOW GLUI V C; Tcl, python, java BSD n n|native 0.19 / 9.92 great Python bindings for Tcl Portable GUI toolkit for Python; basically python bindings for Tk. BSD+Python licenses are GPL compatible. n n|native 0.00 / 0.36 brief Python Gimp ToolKit; library for creating GUIs. Designed to be small and efficient. Used by GNOME desktop project Check: ported to windows, or cross-platform? C; perl python Java, Tcl, etc. y (hard)| Motif-y++ y 0.59 / 24.45 ok LGPL TkZinc is a widget – like the canvas widget in Tk, but with transparency, supports item hierarchies, scaling, rotation, etc. Not a GUI toolkit! Looks great tho. Tcl; perl/Tk, python/Tkinter NA y|y brief LGPL O-O, supposedly simplifies writing and maintenance of GUIs. In addition to GUI toolkit, has provision for file handling, networking, XML,… takes long to compile. y y|native 0.28 / 20.97 good C++; python, java GPL All fox objects can send messages to each other and receive events; auto updating of GUI elements according to specified conditions in the app. OpenGL support. Objects not referred by namespace, but by prefix. y y|win95-y 100 / 10.43 C++: Python good LGPL Small, supports rapid prototyping, has limited widget set. Direct OpenGL support; portable GLUT header file… C++; Tcl, Python y y|? 0.05 / 6.38 good LGPL Native widgets if possible; fallbacks if not. Not themable. Integrated OpenGL, HTML, Networking… large set of GUI widgets. C++: Python, java, perl… y y|native 0.1 / 6.17 good LGPL C++ y y Seems pretty dead. not much. C++ ? y|native 0.0 / .43 MIT Good for creating highly-specialized GUIs and handling gfx and sound. Not sure how extensive the widget set is; static library; ? y|y 0.07 /1.07 not much. C++ GPL C++ wrapper around GLUT; o-o UI framework; extensive widget lib; custom look and feel across platforms; can define and integrate new widgets. C++ ANSI/ISO ? y|same ok LGPL Old. GLUT-based. Can’t define own widgets or customize existing ones much; without o-o framework for writing more complex programs… y|same C++ ? 0.0 / .41 ok LGPL Doesn’t seem viable anymore.. not much. ?|native 0.0 / .08 ? C++ LGPL

  5. MacOS Linux Unix/Motif Win95/98 NT/2000 Win3.1 OS/2 OSX Unix/X11 OPTIONS Tcl/Tk TkInter GTK+ TkZinc Qt FOX toolkit FLTK wxWidgets KWwidgets Zoolib JUCE GLOW GLUI V y y y y y y y (python) y y y y (GTK-OSX alpha) y y y y y y y y y y y y(98) y y y y y y y (with Xserver) y y y ? y y y y y y y y (in prog) y y ? y some POSIX variants with X 98/ME y ? y y 95/98/ME 2000/XP y y y y y y y y y y y y y y y y y y? ? y y y ? y

  6. TARGET SLICER 3 GUI FEATURES WORKSPACE (DESKTOP) LAYOUT Collapsible component windows (like gui, viewer, console, etc.) Configurable arrangement for component windows Ability to save/load preferences (i.e. workspace configuration, preferred viewing mode) Additional viewing modes (lightbox for instance) GUI PANEL APPEARANCE AND BEHAVIOR Ability for programmer to customize the style of widgets rather than relying on platform-specific look, or some default ugly look. WIDGET SET Basic modern widgets Composite widgets Ability to define custom widgets PROGRAMMING INTERFACE C++ (speed) with bindings for scripting language good, but not required. (Tradeoff ease of prototyping with interaction speed) COMMUNITY PROVISIONS Detailed set of design guidelines for developers (see GNOME human interface guidelines 2.0)

  7. SLICER 3 GUI WIDGET WISH LIST BASIC WIDGETS: Top-level widgets, frames, tabs (or other structural dividers), dialogs, messagebox, button, radio button, slider, scrollbar, thumbwheel, colorwheel, file browser, listbox, entry, canvas, label, bitmap widget, rich text or html widget, checkbox, menu (pulldown, cascaded) and menu button, graph/chart, histogram, table, tree, (continue)…. COMPOSITE WIDGETS: Slice viewer (for single and multi-volume / time-series), Multi-slice viewer (for single and multi-volume / time-series), 3D Viewer, Single pane info viz viewer (for data not to be seen in spatial context of 3D viewer.) lightbox viewer (for single and multi-volume / time-series), layers editor for compositing/viewing (behavior for multi-modal data?), Transfer function editor, Material editor (surface properties, etc.) Volume selector, Model selector, MRML node properties dialog box, Data model viewer (hierarchy editor) Task viewer, Console or log widget, (continue)…

More Related