# exo Reference Manual

Version &version;
&date;
2004 2005 os-cillation e.K.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation.

Benedikt Meurer

    benny@xfce.org

os-cillation System development Software developer

## Overview

libexo is an extension library for Xfce, developed by os-cillation. While Xfce comes with quite a few libraries that are targeted at desktop development, libexo is targeted at application developement - in particular, developing applications for the Xfce Desktop Environment.

The exo library depends on the following libraries:

GLib

  A general-purpose utility library, not specific to graphical user interfaces. GLib provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on.

Pango

  Pango is a library for internationalized text handling. It centers around the PangoLayout object, representing a paragraph of text. Pango provides the engine for GtkTextView, GtkLabel, GtkEntry, and other widgets that display text.

ATK

  ATK is the Accessibility Toolkit. It provides a set of generic interfaces allowing accessibility technologies to interact with a graphical user interface. For example, a screen reader uses ATK to discover the text in an interface and read it to blind users. GTK+ widgets have built-in support for accessibility using the ATK framework.

GdkPixbuf

  This is a small library which allows you to create GdkPixbuf ("pixel buffer") objects from image data or image files. Use a GdkPixbuf in combination with GtkImage to display images.

GDK

  GDK is the abstraction layer that allows GTK+ to support multiple windowing systems. GDK provides drawing and window system facilities on X11, Windows, and the Linux framebuffer device.

GTK+

  The GTK+ library contains widgets, that is, GUI components such as GtkButton or GtkTextView.

libxfce4util

  The Xfce utility library provides various helper functions and classes for C programmers, that aren't directly related to GUI tasks.

## Editable Toolbars

These classes together provide a framework for editable toolbars based on the GtkAction facility introduced with Gtk+ 2.4. To create editable toolbars with exo, use the ExoToolbarsModel class with the ExoToolbarsView widget. This widget is designed around a Model/View/Controller design and consists of three parts:

- The toolbars widget (ExoToolbarsView)
- The toolbars model (ExoToolbarsModel)
- The toolbars editor widget (ExoToolbarsEditor)

The ExoToolbarsEditorDialog widget is provided for convenience, it simply wraps the ExoToolbarsEditor component into a GtkDialog. &exo-toolbars-model; &exo-toolbars-editor; &exo-toolbars-editor-dialog; &exo-toolbars-view;

## Additional widgets

&exo-cell-renderer-ellipsized-text; &exo-ellipsized-label; &exo-icon-bar; &exo-icon-view; &exo-wrap-table;

## Extensions to existing frameworks

&exo-gdk-pixbuf-extensions; &exo-gobject-extensions; &exo-gtk-extensions; &exo-pango-extensions;

## Miscelleanous

&exo-config; &exo-binding; &exo-md5; &exo-string; &exo-utils; &exo-xsession-client;

## Tools

This part presents the tools which are shipped with the exo library.

&exo-csource;

Index