Gnome Platform

15
The GNOME Platform Carlos García Campos [email protected] Carlos García Campos The GNOME Platform

Transcript of Gnome Platform

Page 1: Gnome Platform

The GNOME Platform

Carlos García Campos

[email protected]

Carlos García Campos The GNOME Platform

Page 2: Gnome Platform

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

Page 3: Gnome Platform

The GNOME platform stack

Carlos García Campos The GNOME Platform

Page 4: Gnome Platform

GLib

Low-level core library

PortabilityThree main libraries

GLibGObjectGio

Carlos García Campos The GNOME Platform

Page 5: 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

Page 6: Gnome Platform

GObject

Type system

Signal system

Object Oriented Programming features (inheritance,polymorphism, data abstraction, etc.)

Interfaces

Carlos García Campos The GNOME Platform

Page 7: 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

Page 8: 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

Page 9: 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

Page 10: Gnome Platform

Pango

Layout and rendering of text

Emphasis on internationalization

Integrated with cairo

Carlos García Campos The GNOME Platform

Page 11: Gnome Platform

Pango

Carlos García Campos The GNOME Platform

Page 12: 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

Page 13: 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

Page 14: Gnome Platform

Gio/GVFS in the stack

Carlos García Campos The GNOME Platform

Page 15: 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