gnome platform
TRANSCRIPT
Language
The C Programming Language
But there are also bindings . . .
C++
Python
Perl
Java
Mono
Not officially: Ruby, PHP, ...
Carlos García Campos The GNOME Platform
The GNOME platform stack
Carlos García Campos The GNOME Platform
GLib
Low-level core library
PortabilityThree main libraries
GLibGObjectGio
Carlos García Campos The GNOME Platform
GLib
Abstract Data Types (list, queue, hash table, ...)
String manipulation
Memory allocation
Dynamics loadable modules
Main loop abstraction
Regexp
Threads
Carlos García Campos The GNOME Platform
GObject
Type system
Signal system
Object Oriented Programming features (inheritance,polymorphism, data abstraction, etc.)
Interfaces
Carlos García Campos The GNOME Platform
Gio
Modern, easy-to-use VFS API (less POSIX)
Replaces GNOME-VFS but in the right place of the stack
Uses GObject
Statefull I/O model
Based on interfaces
Allow use of the vfs in GTK+
Carlos García Campos The GNOME Platform
cairo
2D graphics library
FreedesktopMultiple output devices
X Window SystemImage bufferSVGPostScriptPDF
Modern API
Good community
Dual license: LGPL/MPL
Carlos García Campos The GNOME Platform
GDK
Low level library for interaction with the window system andinput devices
Drawing primitives
Pixbufs
Selections
Drag and Drop
GDK Pixbuf
Carlos García Campos The GNOME Platform
Pango
Layout and rendering of text
Emphasis on internationalization
Integrated with cairo
Carlos García Campos The GNOME Platform
Pango
Carlos García Campos The GNOME Platform
GTK+
The GIMP ToolKit
Main GNOME library for creating graphical user interfaces
Depends on: GLib, Pango, GDK and ATK
Basic Widgets (Buttons, windows, menus, etc.)
Complex widgets (Tree views, text views, etc.)
Printing system
Recently used documents
Interface builder (replaces libglade)
Carlos García Campos The GNOME Platform
GVFS
Support for non local files
Mount daemons implement GFile operations
Main daemon starts and manages the mount daemon
Communication via D-BusBackends
HTTPWebDavSSH/SFTPSMBFTP...
Carlos García Campos The GNOME Platform
Gio/GVFS in the stack
Carlos García Campos The GNOME Platform
Accesibility
ATK: Set of interfaces providing accessibility
AT-SPI: Interface definitions and IPC stuff
Gail: Implements ATK object for widgets in GTK+ (GTK+module)
Carlos García Campos The GNOME Platform