[gnome-devel-docs] platform-overview: migrated to Mallard with CreativeCommons license
- From: Germán Poó Caamaño <gpoo src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-devel-docs] platform-overview: migrated to Mallard with CreativeCommons license
- Date: Sun, 20 Mar 2011 01:04:23 +0000 (UTC)
commit c4d7587ce01301bc41a82e794b7cf3c2869d3834
Author: Germán Póo-Caamaño <gpoo gnome org>
Date: Sat Mar 19 20:52:55 2011 -0400
platform-overview: migrated to Mallard with CreativeCommons license
Signed-off-by: Germán Póo-Caamaño <gpoo gnome org>
platform-overview/C/apx-modules.page | 438 +++++++++++++++++----------------
platform-overview/C/bindings.page | 73 ++++--
platform-overview/C/cc-by-sa-3-0.xml | 9 +
platform-overview/C/core-tech.page | 414 ++++++++++++++++----------------
platform-overview/C/desktop-tech.page | 327 +++++++++++++------------
platform-overview/C/index.page | 90 ++++----
platform-overview/C/introduction.page | 308 ++++++++++++-----------
platform-overview/C/ipc-network.page | 231 ++++++++++--------
platform-overview/C/platform.page | 102 +++++---
9 files changed, 1057 insertions(+), 935 deletions(-)
---
diff --git a/platform-overview/C/apx-modules.page b/platform-overview/C/apx-modules.page
index aba13ed..f9a0aa1 100644
--- a/platform-overview/C/apx-modules.page
+++ b/platform-overview/C/apx-modules.page
@@ -1,284 +1,302 @@
-<?xml version='1.0' encoding='utf-8'?><!-- -*- indent-tabs-mode: nil -*- -->
+<page xmlns="http://projectmallard.org/1.0/"
+ type="topic" stlye="task"
+ id="apx-modules">
-<appendix id="apx-modules">
- <title>Quick Module Overview</title>
+<info>
+ <link type="guide" xref="index#what-is-gnome-platform"/>
+ <link type="seealso" xref="desktop-tech"/>
+ <link type="seealso" xref="core-tech"/>
+ <link type="seealso" xref="ipc-network"/>
+ <desc>Quick Module Overview</desc>
+ <revision pkgversion="3.0" version="0.1" date="2011-03-18" status="incomplete"/>
+ <credit type="author">
+ <name>Shaun McCance</name>
+ <email>shaunm gnome org</email>
+ <years>2005-2011</years>
+ </credit>
+ <credit type="collaborator">
+ <name>Germán Póo-Caamaño</name>
+ <email>gpoo gnome org</email>
+ <years>2011</years>
+ </credit>
+</info>
- <para>This appendix provides a quick overview of the libraries included
+<title>Quick Module Overview</title>
+
+ <p>This appendix provides a quick overview of the libraries included
in the GNOME desktop and developer platform. Libraries are listed by
module with a brief description and a link for more information in this
- document, where possible.</para>
+ document, where possible.</p>
<section id="apx-modules-platform">
<title>Platform Modules</title>
- <para>Modules in the GNOME developer platform make strict guarantees
+ <p>Modules in the GNOME developer platform make strict guarantees
about API and ABI stability. Applications developed against platform
modules can be assured of running unmodified for the duration of the
- GNOME 2 lifecycle.</para>
+ GNOME 2 lifecycle.</p>
- <variablelist>
- <varlistentry>
- <term>GConf</term>
- <listitem><para>GConf provides the daemon and libraries for storing
- and retrieving configuration data. GConf is discussed in <xref
- linkend="gconf"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>ORBit</term>
- <listitem><para>ORBit is a deprecated CORBA server. GNOME's deprecated
+ <terms>
+ <item>
+ <title>GConf</title>
+ <p>GConf provides the daemon and libraries for storing
+ and retrieving configuration data. GConf is discussed in
+ <link xref="core-tech#gconf"/>.</p>
+ </item>
+ <item>
+ <title>ORBit</title>
+ <p>ORBit is a deprecated CORBA server. GNOME's deprecated
component architecture, Bonobo, is built on top of CORBA. CORBA is
- discussed in <xref linkend="bonobo-corba"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>atk</term>
- <listitem><para>ATK provides the set of accessibility interfaces that
+ discussed in <link xref="ipc-network#bonobo-corba"/>.</p>
+ </item>
+ <item>
+ <title>atk</title>
+ <p>ATK provides the set of accessibility interfaces that
are implemented by other toolkits and applications. Using the ATK
interfaces, accessibility tools have full access to view and control
- running applications. ATK is discussed in <xref linkend="a11y"/>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>gail</term>
- <listitem><para>GAIL provides an implementation of the ATK interfaces for
+ running applications. ATK is discussed in <link xref="core-tech#a11y"/>.</p>
+
+ </item>
+ <item>
+ <title>gail</title>
+ <p>GAIL provides an implementation of the ATK interfaces for
GTK+ and GNOME libraries, allowing accessibility tools to interact with
applications written using these libraries. In 2009 GAIL was moved into
- GTK+. Accessibility is discussed in <xref linkend="a11y"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>gio</term>
- <listitem><para>A part of GLib, the GIO library provides a high-level
+ GTK+. Accessibility is discussed in <link xref="core-tech#a11y"/>.</p>
+ </item>
+ <item>
+ <title>gio</title>
+ <p>A part of GLib, the GIO library provides a high-level
API for accessing files and folders. Together with the GVFS library,
it provides a file system abstraction that allows transparent access
to local and remote files. GIO is discussed in
- <xref linkend="gio"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>glib</term>
- <listitem><para>GLib provides the core application building blocks for
+ <link xref="core-tech#gio"/>.</p>
+ </item>
+ <item>
+ <title>glib</title>
+ <p>GLib provides the core application building blocks for
libraries and applications written in C. It provides the core object
system used in GNOME, the main loop implementation, and a large set of
- utility functions for strings and common data structures.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>gnome-vfs</term>
- <listitem><para>GnomeVFS is a deprecated library for accessing files and
+ utility functions for strings and common data structures.</p>
+ </item>
+ <item>
+ <title>gnome-vfs</title>
+ <p>GnomeVFS is a deprecated library for accessing files and
folders. It is superseded by GIO and GVFS. Newly written code should
- use GIO instead.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>gtk+</term>
- <listitem><para>GTK+ is the primary library used to construct user
+ use GIO instead.</p>
+ </item>
+ <item>
+ <title>gtk+</title>
+ <p>GTK+ is the primary library used to construct user
interfaces in GNOME applications. It provides user interface controls
and signal callbacks to control user interfaces. GTK+ is discussed in
- <xref linkend="gtk"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>gvfs</term>
- <listitem><para>GVFS provides a backend implementation for GIO, allowing
+ <link xref="core-tech#gtk"/>.</p>
+ </item>
+ <item>
+ <title>gvfs</title>
+ <p>GVFS provides a backend implementation for GIO, allowing
access to numerous protocols with the GIO API. Developers do not access
GVFS directly. Instead, applications written with GIO will automatically
- use GVFS on systems where it is enabled.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libIDL</term>
- <listitem><para>libIDL is a deprecated library for parsing Interface Definition
+ use GVFS on systems where it is enabled.</p>
+ </item>
+ <item>
+ <title>libIDL</title>
+ <p>libIDL is a deprecated library for parsing Interface Definition
Language (IDL) files, which are necessary for CORBA interfaces. libIDL
is used by GNOME's deprecated CORBA implementation, ORBit. CORBA is discussed in
- <xref linkend="bonobo-corba"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libart_lgpl</term>
- <listitem><para>libart is a deprecated graphics library which can render
+ <link xref="ipc-network#bonobo-corba"/>.</p>
+ </item>
+ <item>
+ <title>libart_lgpl</title>
+ <p>libart is a deprecated graphics library which can render
vector paths. It is used by the GnomeCanvas widget. Newly written code
should not use libart_lgpl and instead use Cairo and/or other
- technologies.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libbonobo</term>
- <listitem><para>Bonobo is a deprecated framework for creating reusable components
+ technologies.</p>
+ </item>
+ <item>
+ <title>libbonobo</title>
+ <p>Bonobo is a deprecated framework for creating reusable components
for use in GNOME applications, built on top of CORBA. Bonobo is
- discussed in <xref linkend="bonobo-corba"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libbonoboui</term>
- <listitem><para>The deprecated Bonobo UI library provides a number of user interface
+ discussed in <link xref="ipc-network#bonobo-corba"/>.</p>
+ </item>
+ <item>
+ <title>libbonoboui</title>
+ <p>The deprecated Bonobo UI library provides a number of user interface
controls using the Bonobo component framework. Bonobo is discussed in
- <xref linkend="bonobo-corba"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libglade</term>
- <listitem><para>Libglade is a deprecated library for constructing user interfaces
+ <link xref="ipc-network#bonobo-corba"/>.</p>
+ </item>
+ <item>
+ <title>libglade</title>
+ <p>Libglade is a deprecated library for constructing user interfaces
dynamically from XML descriptions. Libglade has been deprecated in favor
- of <ulink url="http://library.gnome.org/devel/gtk/stable/GtkBuilder.html">GtkBuilder</ulink>.
+ of <link href="http://library.gnome.org/devel/gtk/stable/GtkBuilder.html">GtkBuilder</link>.
Libglade allows programmers to
construct their user interfaces using a graphical interface builder
application, and then import those interface definitions. Libglade
- is discussed in <xref linkend="libglade"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libgnome</term>
- <listitem><para>The deprecated libgnome library provides a number of useful routines
+ is discussed in <link xref="core-tech#libglade"/>.</p>
+ </item>
+ <item>
+ <title>libgnome</title>
+ <p>The deprecated libgnome library provides a number of useful routines
for building modern applications, including session management, activation
- of files and URIs, and displaying help.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libgnomecanvas</term>
- <listitem><para>The GnomeCanvas widget provides a flexible widget for
- creating interactive structured graphics.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libgnomeui</term>
- <listitem><para>The deprecated libgnomeui library provides additional widgets for
+ of files and URIs, and displaying help.</p>
+ </item>
+ <item>
+ <title>libgnomecanvas</title>
+ <p>The GnomeCanvas widget provides a flexible widget for
+ creating interactive structured graphics.</p>
+ </item>
+ <item>
+ <title>libgnomeui</title>
+ <p>The deprecated libgnomeui library provides additional widgets for
applications. Many of the widgets from libgnomeui have already been
- ported to GTK+.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libxml2</term>
- <listitem><para>The libxml2 library provides a number of APIs for working
+ ported to GTK+.</p>
+ </item>
+ <item>
+ <title>libxml2</title>
+ <p>The libxml2 library provides a number of APIs for working
with XML in a standards-compliant manner. The libxml2 library is
- discussed in <xref linkend="libxml2"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libxslt</term>
- <listitem><para>The libxslt library provides a fast and complete
+ discussed in <link xref="ipc-network#libxml2"/>.</p>
+ </item>
+ <item>
+ <title>libxslt</title>
+ <p>The libxslt library provides a fast and complete
implementation of XSLT, a language for transforming XML. The libxslt
- library is discussed in <xref linkend="libxslt"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>pango</term>
- <listitem><para>Pango is the core text and font handling library used
+ library is discussed in <link xref="ipc-network#libxslt"/>.</p>
+ </item>
+ <item>
+ <title>pango</title>
+ <p>Pango is the core text and font handling library used
in GNOME applications. It has extensive support for the different
writing systems used throughout the world. Pango is discussed in
- <xref linkend="pango"/>.</para></listitem>
- </varlistentry>
- </variablelist>
+ <link xref="core-tech#pango"/>.</p>
+ </item>
+ </terms>
</section>
<section id="apx-modules-desktop">
<title>Desktop Modules</title>
- <para>Modules in the GNOME desktop are not required to make the same
+ <p>Modules in the GNOME desktop are not required to make the same
API and ABI stability guarantees as modules in the platform, although
attempts are made to keep them relatively stable. Often, modules are
introduced in the desktop release to mature, and are moved into the
- platform once they've stabilized.</para>
+ platform once they've stabilized.</p>
- <variablelist>
- <varlistentry>
- <term>eel</term>
- <listitem><para>The eel library provides a number of additional widgets
- primarily for use inside <application>Nautilus</application>, the GNOME
+ <terms>
+ <item>
+ <title>eel</title>
+ <p>The eel library provides a number of additional widgets
+ primarily for use inside <app>Nautilus</app>, the GNOME
file manager. Many of the widgets in eel have since been provided in
- GTK+.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>evolution-data-server</term>
- <listitem><para>Evolution Data Server provides a unified location for
+ GTK+.</p>
+ </item>
+ <item>
+ <title>evolution-data-server</title>
+ <p>Evolution Data Server provides a unified location for
address book and calendar information, allowing multiple applications
to share the same data. Evolution Data Server is discussed in
- <xref linkend="address-book-calendar"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>gnome-panel</term>
- <listitem><para>In addition to the actual panel, the gnome-panel package
+ <link xref="desktop-tech#address-book-calendar"/>.</p>
+ </item>
+ <item>
+ <title>gnome-panel</title>
+ <p>In addition to the actual panel, the gnome-panel package
provides the libraries used to construct panel applets to run on the
- user's panel. Panel applets are discussed in <xref
- linkend="panel-applets"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>gnome-keyring</term>
- <listitem><para>The GNOME keyring manager provides a modern and secure
+ user's panel. Panel applets are discussed in
+ <link xref="desktop-tech#panel-applets"/>.</p>
+ </item>
+ <item>
+ <title>gnome-keyring</title>
+ <p>The GNOME keyring manager provides a modern and secure
means of storing users' passwords and other sensitive data. Keys are
encrypted and can only be accessed by explicit user permission. The
- keyring manager is discussed in <xref linkend="keyring"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>gstreamer</term>
- <listitem><para>GStreamer is the powerful multimedia used throughout GNOME
+ keyring manager is discussed in <link xref="desktop-tech#keyring"/>.</p>
+ </item>
+ <item>
+ <title>gstreamer</title>
+ <p>GStreamer is the powerful multimedia used throughout GNOME
to play, create, and manipulate sound and video. GStreamer is discussed
- in <xref linkend="multimedia"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>gtkhtml</term>
- <listitem><para>The gtkhtml library provides a lightweight HTML renderer
+ in <link xref="core-tech#multimedia"/>.</p>
+ </item>
+ <item>
+ <title>gtkhtml</title>
+ <p>The gtkhtml library provides a lightweight HTML renderer
with full support for rich text editing. It is used inside the
- <application>Evolution</application> mailer to allow users to compose
- and read HTML email.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>gtksourceview</term>
- <listitem><para>The gtksourceview library provides an extension of the
+ <app>Evolution</app> mailer to allow users to compose
+ and read HTML email.</p>
+ </item>
+ <item>
+ <title>gtksourceview</title>
+ <p>The gtksourceview library provides an extension of the
GtkTextView widget with support for automatic syntax highlighting and
other functions that are useful for source code editors. It is used in
- the <application>gedit</application> text editor.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libgail-gnome</term>
- <listitem><para>GAIL provides an implementation of the ATK interfaces for
+ the <app>gedit</app> text editor.</p>
+ </item>
+ <item>
+ <title>libgail-gnome</title>
+ <p>GAIL provides an implementation of the ATK interfaces for
GTK+ and GNOME libraries, allowing accessibility tools to interact with
applications written using these libraries. Accessibility is discussed
- in <xref linkend="a11y"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libgnomeprint</term>
- <listitem><para>libgnomeprint is a deprecated library that provides an
- implementation of the PostScript imaging model. It is superseded by <ulink
- url="http://library.gnome.org/devel/gtk/stable/Printing.html">GtkPrint</ulink>.
+ in <link xref="core-tech#a11y"/>.</p>
+ </item>
+ <item>
+ <title>libgnomeprint</title>
+ <p>libgnomeprint is a deprecated library that provides an
+ implementation of the PostScript imaging model. It is superseded by <link
+ href="http://library.gnome.org/devel/gtk/stable/Printing.html">GtkPrint</link>.
Newly written code should use GtkPrint instead.
- The GNOME print framework is discussed in <xref
- linkend="gnomeprint"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libgnomeprintui</term>
- <listitem><para>libgnomeprintui is a deprecated library that provides a
+ The GNOME print framework is discussed in <link xref="core-tech#gnomeprint"/>.</p>
+ </item>
+ <item>
+ <title>libgnomeprintui</title>
+ <p>libgnomeprintui is a deprecated library that provides a
standard print dialog, a print preview dialog, and various other controls
- required for printing. It is superseded by <ulink
- url="http://library.gnome.org/devel/gtk/stable/Printing.html">GtkPrint</ulink>.
- The GNOME print framework is discussed in <xref
- linkend="gnomeprint"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libgtop</term>
- <listitem><para>The libgtop library provides a portable API for obtaining
- information about running processes. It is used in the <application>System
- Monitor</application> application.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>librsvg</term>
- <listitem><para>The librsvg library provides an implementation of
+ required for printing. It is superseded by <link
+ href="http://library.gnome.org/devel/gtk/stable/Printing.html">GtkPrint</link>.
+ The GNOME print framework is discussed in <link xref="core-tech#gnomeprint"/>.</p>
+ </item>
+ <item>
+ <title>libgtop</title>
+ <p>The libgtop library provides a portable API for obtaining
+ information about running processes. It is used in the <app>System
+ Monitor</app> application.</p>
+ </item>
+ <item>
+ <title>librsvg</title>
+ <p>The librsvg library provides an implementation of
Scalable Vector Graphics (SVG). It is used throughout the desktop
- to render resolution-independent vector graphics.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libsoup</term>
- <listitem><para>The libsoup library provides an implementation of the Simple
+ to render resolution-independent vector graphics.</p>
+ </item>
+ <item>
+ <title>libsoup</title>
+ <p>The libsoup library provides an implementation of the Simple
Object Access Protocol (SOAP), as well as an HTTP implementation. SOAP can
be used to build web services into applications. The libsoup library is
- discussed in <xref linkend="libsoup"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libwnck</term>
- <listitem><para>The libwnck library provides a means of controlling any
- EWMH-compliant window manager, including <application>Metacity</application>,
+ discussed in <link xref="ipc-network#libsoup"/>.</p>
+ </item>
+ <item>
+ <title>libwnck</title>
+ <p>The libwnck library provides a means of controlling any
+ EWMH-compliant window manager, including <app>Metacity</app>,
the GNOME default window manager. The libwnck library is discussed in
- <xref linkend="window-manager"/>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>libxklavier</term>
- <listitem><para>The libxklavier library provides a high-level API for
+ <link xref="desktop-tech#window-manager"/>.</p>
+ </item>
+ <item>
+ <title>libxklavier</title>
+ <p>The libxklavier library provides a high-level API for
accessing and setting keyboard layouts. It is used in the
- <application>Keyboard Preferences</application> to allow users to set
- their keyboard layout and options.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>vte</term>
- <listitem><para>VTE is a terminal emulator widget for use in GTK+
+ <app>Keyboard Preferences</app> to allow users to set
+ their keyboard layout and options.</p>
+ </item>
+ <item>
+ <title>vte</title>
+ <p>VTE is a terminal emulator widget for use in GTK+
applications. It provides a consistent API and uses Pango for text
drawing, allowing it to display all internationalized text. VTE
- is used in GNOME's <application>Terminal</application> application.</para>
- </listitem>
- </varlistentry>
- </variablelist>
+ is used in GNOME's <app>Terminal</app> application.</p>
+
+ </item>
+ </terms>
</section>
-</appendix>
+</page>
diff --git a/platform-overview/C/bindings.page b/platform-overview/C/bindings.page
index 42df336..07fb759 100644
--- a/platform-overview/C/bindings.page
+++ b/platform-overview/C/bindings.page
@@ -1,76 +1,93 @@
-<?xml version='1.0' encoding='utf-8'?><!-- -*- indent-tabs-mode: nil -*- -->
+<page xmlns="http://projectmallard.org/1.0/"
+ type="topic" stlye="task"
+ id="bindings">
-<chapter id="bindings">
- <title>Language Bindings</title>
+<info>
+ <link type="guide" xref="index#what-is-gnome-platform"/>
+ <desc>Language Bindings</desc>
+ <revision pkgversion="3.0" version="0.1" date="2011-03-18" status="incomplete"/>
+ <credit type="author copyright">
+ <name>Shaun McCance</name>
+ <email>shaunm gnome org</email>
+ <years>2005-2011</years>
+ </credit>
+ <credit type="collaborator">
+ <name>Germán Póo-Caamaño</name>
+ <email>gpoo gnome org</email>
+ <years>2011</years>
+ </credit>
+</info>
- <para>Although the GNOME platform is written primarily in C, it is written
+<title>Language Bindings</title>
+
+ <p>Although the GNOME platform is written primarily in C, it is written
intentionally to make it easy to bind to other programming languages. Using
language bindings, you can develop with the GNOME platform natively in your
- programming language of choice.</para>
+ programming language of choice.</p>
- <para>Language bindings exist for many programming languages, and the GNOME
- platform officially supports bindings for C++, Java, Perl, and Python.</para>
+ <p>Language bindings exist for many programming languages, and the GNOME
+ platform officially supports bindings for C++, Java, Perl, and Python.</p>
<section id="cpp">
<title>C++</title>
- <para>The C++ bindings provide complete coverage of the GNOME platform,
+ <p>The C++ bindings provide complete coverage of the GNOME platform,
including GTK+, Libglade, and GConf. The C++ bindings wrap all objects with
native C++ objects and allow programmers to provide custom widgets with
normal C++ inheritence. They provide a fully native API, with type-safe
signal handlers, full use of the standard C++ library, and complete C++
- memory management.</para>
+ memory management.</p>
- <para>For more information on the GNOME C++ bindings, visit <ulink
- url="http://www.gtkmm.org/">the gtkmm web site</ulink>.</para>
+ <p>For more information on the GNOME C++ bindings, visit <link
+ href="http://www.gtkmm.org/">the gtkmm web site</link>.</p>
</section>
<section id="java">
<title>Java</title>
- <para>The Java bindings provide complete coverage of the GNOME platform,
+ <p>The Java bindings provide complete coverage of the GNOME platform,
including GTK+, Cairo, and GConf. The Java bindings wrap all objects with
native Java objects and allow programmers to provide custom widgets with
normal Java inheritence. They provide a fully native API, using Java's
- class libraries and interfaces wherever appropriate.</para>
+ class libraries and interfaces wherever appropriate.</p>
- <para>For more information on the GNOME Java bindings, visit <ulink
- url="http://java-gnome.sourceforge.net/">the Java-GNOME web site</ulink>.</para>
+ <p>For more information on the GNOME Java bindings, visit <link
+ href="http://java-gnome.sourceforge.net/">the Java-GNOME web site</link>.</p>
</section>
<section id="perl">
<title>Perl</title>
- <para>The Perl bindings provide native Perl interfaces for the GNOME
+ <p>The Perl bindings provide native Perl interfaces for the GNOME
platform, including GTK+, GnomeVFS, and GConf. The Perl bindings wrap
all objects with Perl objects and allow programmers to use standard Perl
practices to manipulate them. They provide a fully native API, using
- Perl's native data types wherever appropriate.</para>
+ Perl's native data types wherever appropriate.</p>
- <para>For more information on the GNOME Perl bindings, visit <ulink
- url="http://gtk2-perl.sourceforge.net/">the gtk2-perl web site</ulink>.</para>
+ <p>For more information on the GNOME Perl bindings, visit <link
+ href="http://gtk2-perl.sourceforge.net/">the gtk2-perl web site</link>.</p>
</section>
<section id="python">
<title>Python</title>
- <para>The Python bindings provide native Python interfaces for the GNOME
+ <p>The Python bindings provide native Python interfaces for the GNOME
platform, including GTK+, GnomeVFS, and GConf. The Python bindings wrap
all objects with native Python objects and allow programmers to provide
custom widgets with normal Python inheritence. They provide a fully native
Python API which automatically handles details like type casting and memory
- management.</para>
+ management.</p>
- <para>For more information on the GNOME Python bindings, visit <ulink
- url="http://www.pygtk.org/">the PyGTK web site</ulink>.</para>
+ <p>For more information on the GNOME Python bindings, visit <link
+ href="http://www.pygtk.org/">the PyGTK web site</link>.</p>
</section>
<section id="other-bindings">
<title>Other Languages</title>
- <para>Full or partial bindings exist for many other programming languages,
+ <p>Full or partial bindings exist for many other programming languages,
such as C#, Eiffel, JavaScript, Ruby, and Scheme. Even though they may not
currently be officially supported by GNOME, many of these bindings are of the
same high quality as the official GNOME bindings, and some of them may be
- included as official GNOME bindings in future releases.</para>
+ included as official GNOME bindings in future releases.</p>
- <para>For a list of language bindings, visit <ulink
- url="http://www.gtk.org/language-bindings.html">the GTK+ bindings page</ulink>.</para>
+ <p>For a list of language bindings, visit <link
+ href="http://www.gtk.org/language-bindings.html">the GTK+ bindings page</link>.</p>
</section>
-</chapter>
+</page>
diff --git a/platform-overview/C/cc-by-sa-3-0.xml b/platform-overview/C/cc-by-sa-3-0.xml
new file mode 100644
index 0000000..6f643be
--- /dev/null
+++ b/platform-overview/C/cc-by-sa-3-0.xml
@@ -0,0 +1,9 @@
+<license xmlns="http://projectmallard.org/1.0/"
+ href="http://creativecommons.org/licenses/by-sa/3.0/us/">
+<p>This work is licensed under a
+<link href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons
+Attribution-Share Alike 3.0 United States License</link>.</p>
+<p>As a special exception, the copyright holders give you permission to copy,
+modify, and distribute the example code contained in this document under the
+terms of your choosing, without restriction.</p>
+</license>
diff --git a/platform-overview/C/core-tech.page b/platform-overview/C/core-tech.page
index f4bd52c..b1c2273 100644
--- a/platform-overview/C/core-tech.page
+++ b/platform-overview/C/core-tech.page
@@ -1,352 +1,357 @@
-<?xml version='1.0' encoding='utf-8'?><!-- -*- indent-tabs-mode: nil -*- -->
-
-<chapter id="core-tech">
- <title>Core Technologies</title>
+<page xmlns="http://projectmallard.org/1.0/"
+ type="topic" stlye="task"
+ id="core-tech">
+
+<info>
+ <link type="guide" xref="index#what-is-gnome-platform"/>
+ <desc>Core Technologies</desc>
+ <revision pkgversion="3.0" version="0.1" date="2011-03-18" status="incomplete"/>
+ <credit type="author">
+ <name>Shaun McCance</name>
+ <email>shaunm gnome org</email>
+ <years>2005-2011</years>
+ </credit>
+ <credit type="collaborator">
+ <name>Germán Póo-Caamaño</name>
+ <email>gpoo gnome org</email>
+ <years>2011</years>
+ </credit>
+</info>
+
+<title>Core Technologies</title>
<section id="graphics">
<title>Graphical Interfaces</title>
- <para>Most applications will need to provide a graphical interface to
+ <p>Most applications will need to provide a graphical interface to
interact with users. Graphical interfaces can create an intuitive and
discoverable medium for people to interact with software, and users expect
- applications to provide usable and attractive user interfaces.</para>
+ applications to provide usable and attractive user interfaces.</p>
- <para>The GNOME Platform features sophisticated graphics and user interface
+ <p>The GNOME Platform features sophisticated graphics and user interface
technology, from standard user interface controls to an API for drawing
high-quality graphics to the screen. Using the graphics technologies in
GNOME allows you to create applications that are consistent, intuitive,
- and aesthetically pleasing.</para>
+ and aesthetically pleasing.</p>
<figure>
<title>Layered Look at Graphics Libraries</title>
- <mediaobject>
- <imageobject>
- <imagedata format="PNG" fileref="figures/graphics.png"/>
- </imageobject>
- </mediaobject>
+ <media type="image" mime="image/png" src="figures/graphics.png" ></media>
</figure>
<section id="gtk">
<title>GTK+</title>
- <para>GTK+ is the primary library used to construct user interfaces
+ <p>GTK+ is the primary library used to construct user interfaces
in GNOME. It provides all the user interface controls, or widgets,
used in a common graphical application. Its modern, object-oriented
API allows you to construct attractive and sophisticated user
interfaces without dealing with the low-level details of drawing and
- device interaction.</para>
+ device interaction.</p>
- <para>In addition to basic widgets, such as buttons, check boxes,
+ <p>In addition to basic widgets, such as buttons, check boxes,
and text entries, GTK+ also provides powerful Model-View-Controller
(MVC) APIs for tree views, multi-line text fields, and menu and
- toolbar actions.</para>
+ toolbar actions.</p>
- <para>Widgets in GTK+ are placed on windows using a box-packing model.
+ <p>Widgets in GTK+ are placed on windows using a box-packing model.
Programmers specify only how to pack widgets together in container
boxes, rather than position them directly with absolute coordinates.
GTK+ ensures that windows are sized correctly to fit their contents,
- and it automatically handles window resizing.</para>
+ and it automatically handles window resizing.</p>
- <para>Because GTK+ offers a flexible API, developing additional widgets
+ <p>Because GTK+ offers a flexible API, developing additional widgets
for use in GTK+ applications is easy. A number of third-party libraries
exist which provide additional widgets, and many developers have created
- custom, special-purpose widgets for their applications.</para>
+ custom, special-purpose widgets for their applications.</p>
- <para>GTK+ handles the difficult details of user interfaces and user
+ <p>GTK+ handles the difficult details of user interfaces and user
interaction, and provides a simple yet powerful API which allows you
to focus on the details of your application. Applications developed
with GTK+ will automatically follow the user's theme and font settings,
will interact properly with accessibility technologies, and will behave
- as users expect.</para>
+ as users expect.</p>
- <para>For more information on GTK+, see the
- <ulink url="http://library.gnome.org/devel/gtk/stable/">GTK+ Reference
- Manual</ulink> or visit
- <ulink url="http://gtk.org/">the GTK+ web site</ulink>.</para>
+ <p>For more information on GTK+, see the
+ <link href="http://library.gnome.org/devel/gtk/stable/">GTK+ Reference
+ Manual</link> or visit
+ <link href="http://gtk.org/">the GTK+ web site</link>.</p>
</section> <!-- gtk -->
<section id="libglade">
<title>Libglade</title>
- <note><para><note><para>Note that Libglade has been deprecated in favor of
- <ulink url="http://library.gnome.org/devel/gtk/stable/GtkBuilder.html">GtkBuilder</ulink>.
- Newly written code should use GtkBuilder instead.</para></note></para></note>
+ <note><p>Note that Libglade has been deprecated in favor of
+ <link href="http://library.gnome.org/devel/gtk/stable/GtkBuilder.html">GtkBuilder</link>.
+ Newly written code should use GtkBuilder instead.</p></note>
- <para>Libglade is a library for constructing user interfaces dynamically
+ <p>Libglade is a library for constructing user interfaces dynamically
from XML descriptions. You can use a graphical interface builder like
- <application>Glade</application> to construct your user interface,
+ <app>Glade</app> to construct your user interface,
and then import the interface description into your application. This
- makes it easy to construct complex layouts and adjust layout details.</para>
+ makes it easy to construct complex layouts and adjust layout details.</p>
- <para>Libglade allows programmers to focus their code on the logic of
+ <p>Libglade allows programmers to focus their code on the logic of
their applications, keeping it uncluttered by the actual construction
of the interface. Graphical interface builders also make it easy for
dedicated interface designers to construct the interfaces without having
- to know how to program.</para>
+ to know how to program.</p>
- <para>For more information on Libglade, see the <ulink
- url="http://library.gnome.org/devel/libglade/stable/">Libglade
- Reference Manual</ulink>.</para>
+ <p>For more information on Libglade, see the <link
+ href="http://library.gnome.org/devel/libglade/stable/">Libglade
+ Reference Manual</link>.</p>
</section>
<section id="pango">
<title>Pango</title>
- <para>Pango is the core text and font handling library in the GNOME
+ <p>Pango is the core text and font handling library in the GNOME
platform. It is responsible for laying out and rendering text, and
- is used throughout GTK+.<footnote>
- <para>The Pango layout engine can be used with different font
+ is used throughout GTK+.</p>
+ <note><p>The Pango layout engine can be used with different font
backends and drawing backends. On most GNOME systems, Pango
will use FreeType, fontconfig, and Cairo to access fonts and
render text. On other systems, Pango will use the native font
systems, such as Uniscribe on Microsoft Windows and ATSUI on
- MacOS</para></footnote></para>
+ MacOS</p></note>
- <para>Pango has extensive support for the various writing systems
+ <p>Pango has extensive support for the various writing systems
used throughout the world. Many of the writing systems used for
languages have complex rules for laying out glyphs and composing
characters. With Pango, nearly all languages can be written and
displayed correctly, allowing users everywhere to view text in their
native languages. Pango support for multiple writing systems is
automatic; application developers do not have to write any special
- code to support other languages.</para>
+ code to support other languages.</p>
<figure>
<title>Displaying Multiple Languages With Pango</title>
- <screenshot>
- <mediaobject>
- <imageobject>
- <imagedata format="PNG" fileref="figures/pango.png"/>
- </imageobject>
- <textobject><para>Screenshot of the <application>gedit</application>
- text editor displaying phrases from multiple languages and writing
- systems.</para></textobject>
- </mediaobject>
- </screenshot>
+ <desc>Screenshot of the <app>gedit</app>
+ text editor displaying phrases from multiple languages and writing
+ systems.</desc>
+ <media type="image" mime="image/png" src="figures/pango.png" ></media>
</figure>
- <para>Pango supports the text styling used in typical documents
+ <p>Pango supports the text styling used in typical documents
and interfaces, including italics, font weights, and underlines.
Pango uses a simple XML-like vocabulary called PangoMarkup which
enables you to set font size, color, styles, and other text
attributes. Using PangoMarkup, you can specify inline styles
without manually iterating over text blocks. PangoMarkup can
be used directly from GTK+, enabling you to style text in your
- graphical interfaces easily.</para>
+ graphical interfaces easily.</p>
- <para>You should use Pango directly whenever you need to lay
+ <p>You should use Pango directly whenever you need to lay
text out on the screen or on a different medium. Using Pango
will allow your text layout to work seamlessly with GTK+ and
the rest of the GNOME platform. It will help you create
portable code, and most importantly, it will ensure that your
application can render text correctly in hundreds of different
- languages.</para>
+ languages.</p>
- <para>For more information on Pango, see the
- <ulink url="http://library.gnome.org/devel/pango/stable/">Pango
- Reference Manual</ulink>.</para>
+ <p>For more information on Pango, see the
+ <link href="http://library.gnome.org/devel/pango/stable/">Pango
+ Reference Manual</link>.</p>
</section> <!-- pango -->
<section id="gdk">
<title>GDK</title>
- <para>GDK is the low-level library used by GTK+ to interact with the
+ <p>GDK is the low-level library used by GTK+ to interact with the
system for graphics and input devices. Although you will rarely use
GDK directly in application code, it contains all the necessary
functionality to draw objects and text to the screen and to interact
- with the user with various input devices.<footnote>
- <para>GDK runs on a number of different platforms, including the X Window
+ with the user with various input devices.</p>
+ <note><p>GDK runs on a number of different platforms, including the X Window
System, Microsoft Windows, DirectFB, and Quartz. On any platform, GDK
provides the same consistent API, allowing GTK+ and GTK+ applications to
- run unmodified.</para></footnote></para>
+ run unmodified.</p></note>
- <para>GDK features a graphics context and drawing primitives that are
+ <p>GDK features a graphics context and drawing primitives that are
suitable for drawing simple objects and rendering images on the screen.
Since a more extensive drawing system is provided by Cairo, GDK provides
- hooks to use Cairo contexts within GDK.</para>
+ hooks to use Cairo contexts within GDK.</p>
- <para>GDK enables you to access events from keyboards, mice, and other
+ <p>GDK enables you to access events from keyboards, mice, and other
input devices, rather than connect to the high-level signals used in
GTK+. GDK also provides low-level routines to access drag and drop
and clipboard data from the system. When implementing custom controls,
you may need to access these features to implement proper user interaction
- behavior.</para>
+ behavior.</p>
- <para>GDK provides other functionality which is needed to implement
+ <p>GDK provides other functionality which is needed to implement
a complete graphical toolkit like GTK+. Since GDK acts as a platform
abstraction, allowing GTK+ to run under multiple environments, it
provides an API for all of the system functionality needed by GTK+.
This includes information about multi-head displays, resolution and
- color depth, colormaps, and cursors.</para>
+ color depth, colormaps, and cursors.</p>
- <para>You should use GDK whenever you need low-level access to the
+ <p>You should use GDK whenever you need low-level access to the
underlying windowing system, including low-level access to events,
windows, and the clipboard. Using GDK for these tasks ensures that
your code is portable and integrates with the rest of your GTK+ code.
The simple drawing routines in GDK should generally not be used.
Instead, you should use the extensive functionality provide by
- Cairo.</para>
+ Cairo.</p>
- <para>For more information on GDK, see the
- <ulink url="http://library.gnome.org/devel/gdk/stable/">GDK Reference
- Manual</ulink>.</para>
+ <p>For more information on GDK, see the
+ <link href="http://library.gnome.org/devel/gdk/stable/">GDK Reference
+ Manual</link>.</p>
</section> <!-- gdk -->
<section id="cairo">
<title>Cairo</title>
- <para>Cairo is a 2D graphics library featuring a sophisticated API for
+ <p>Cairo is a 2D graphics library featuring a sophisticated API for
drawing vector graphics, compositing images, and rendering anti-aliased
text. Cairo provides support for multiple output devices, including the
X Window System, Microsoft Windows, and image buffers, allowing you to
- write platform-independent code to draw graphics on different media.</para>
+ write platform-independent code to draw graphics on different media.</p>
- <para>The Cairo drawing model is similar to those provided by PostScript
+ <p>The Cairo drawing model is similar to those provided by PostScript
and PDF. The Cairo API provides such drawing operations as stroking and
filling cubic Bézier splines, compositing images, and performing affine
transformations. These vector operations allow for rich, anti-aliased
graphics without using expensive pixel-based drawing in your application
- code.</para>
+ code.</p>
- <para>Cairo's rich drawing model allows for high-quality rendering to
+ <p>Cairo's rich drawing model allows for high-quality rendering to
multiple media. The same API can be used to create stunning on-screen
graphics and text, to render images, or create crisp output suitable
- for printing.</para>
+ for printing.</p>
- <para>You should use Cairo whenever you need to draw graphics in your
+ <p>You should use Cairo whenever you need to draw graphics in your
application beyond the widgets provided by GTK+. Much of the drawing
inside GTK+ is done using Cairo. Using Cairo for your custom drawing
will allow your application to have high-quality, anti-aliased, and
- resolution-independent graphics.</para>
+ resolution-independent graphics.</p>
- <para>For more information on Cairo, see <ulink
- url="http://www.cairographics.org/manual/">Cairo: A Vector Graphics
- Library</ulink>.</para>
+ <p>For more information on Cairo, see <link
+ href="http://www.cairographics.org/manual/">Cairo: A Vector Graphics
+ Library</link>.</p>
</section> <!-- cairo -->
</section> <!-- graphics -->
<section id="gio">
<title>Virtual File System</title>
- <para>GIO, a part of GLib, is the core library used for file and folder
+ <p>GIO, a part of GLib, is the core library used for file and folder
operations in GNOME applications. GIO provides a unified file system
abstraction layer with pluggable backends. In GNOME, the GVFS library
provides a GIO backend implementing multiple network and local protocols.
Using GIO with GVFS allows your application to work with files on remote
- machines as easily as local files.</para>
+ machines as easily as local files.</p>
- <para>GIO can provide extensive information about files and folders, including
+ <p>GIO can provide extensive information about files and folders, including
the MIME type and icon of a file and which applications can be used to open
- a file. Since the GVFS uses the standard from <ulink
- url="http://www.freedesktop.org/">freedesktop.org</ulink> to determine
+ a file. Since the GVFS uses the standard from <link
+ href="http://www.freedesktop.org/">freedesktop.org</link> to determine
file types and associations, it works correctly on different free desktop
environments, helping independent software developers create
- software that can be run in different environments.</para>
+ software that can be run in different environments.</p>
- <para>GIO is used throughout the GNOME desktop. The file manager,
- <application>Nautilus</application>, uses GIO to display folders on local
+ <p>GIO is used throughout the GNOME desktop. The file manager,
+ <app>Nautilus</app>, uses GIO to display folders on local
and remote systems. For the user, this means that network servers act just
like local folders: They can drag and drop files between them, view the files'
properties, and open the file with an application. Using GIO will allow your
- application to open all the files that users can access on their desktop.</para>
-
- <para>For more information on GIO, see the <ulink
- url="http://library.gnome.org/devel/gio/stable/">GIO Reference Manual</ulink>.</para>
+ application to open all the files that users can access on their desktop.</p>
- <anchor id="gnome-vfs"/>
+ <p>For more information on GIO, see the <link
+ href="http://library.gnome.org/devel/gio/stable/">GIO Reference Manual</link>.</p>
- <para>In previous versions of GNOME, the GnomeVFS library was used for
+ <p>In previous versions of GNOME, the GnomeVFS library was used for
access to files and folders. While GnomeVFS provided many of the same
features, including transparent access to remote folders, it had a number
of limitations which have been addressed in GIO. GnomeVFS is deprecated
and should not be used in newly written code, although it will continue
to be supported throughout the GNOME 2 lifetime. For information on
- GnomeVFS, see <ulink
- url="http://library.gnome.org/devel/gnome-vfs-2.0/stable/">GnomeVFS -
- Filesystem Abstraction Library</ulink>.</para>
+ GnomeVFS, see <link
+ href="http://library.gnome.org/devel/gnome-vfs-2.0/stable/">GnomeVFS -
+ Filesystem Abstraction Library</link>.</p>
</section> <!-- gio -->
<section id="gconf">
<title>Configuration and Lockdown</title>
- <para>GConf is the system for storing and retrieving configuration settings
+ <p>GConf is the system for storing and retrieving configuration settings
in GNOME. GConf consists of two parts: a client library for accessing
settings, and a session daemon which is responsible for the details of
storing and retrieving those settings. Using a daemon allows GConf to
use different storage backends, validate input, and provide simultaneous
- access to different applications.</para>
+ access to different applications.</p>
- <para>Settings stored in GConf are stored and retrieved using a unique
+ <p>Settings stored in GConf are stored and retrieved using a unique
key, or identifier string. Keys use a simple hierarchical namespace to
avoid collision among settings for applications and the desktop. You
can provide a schema file to detail your configuration keys. This allows
GConf to validate the type of the input, and to show localized documentation
about the key. This helps systems administrators, who can set multiple
- settings at once without having to navigate preference dialogs.</para>
+ settings at once without having to navigate preference dialogs.</p>
- <para>GConf can look up settings from different settings at once, typically
+ <p>GConf can look up settings from different settings at once, typically
from different locations on the file system. By having appropriate system
sources configured, GConf enables systems administrators to provide both
default and mandatory settings for all users. Tools such as GNOME's
- <application>Configuration Editor</application> and
- <application>Sabayon</application> make it easy to deploy fully
- configured systems using GConf.</para>
+ <app>Configuration Editor</app> and
+ <app>Sabayon</app> make it easy to deploy fully
+ configured systems using GConf.</p>
- <para>The GConf client library provides notifications of changes to
+ <p>The GConf client library provides notifications of changes to
settings, making it easy to provide instant-apply settings in your
application, regardless if settings are changed from within your
application or using another tool. Setting the value of a key will
notify all interested applications, allowing desktop-wide and other
- cross-application settings to work instantly and effortlessly.</para>
+ cross-application settings to work instantly and effortlessly.</p>
- <para>GConf makes it easy to lock down systems by setting particular
+ <p>GConf makes it easy to lock down systems by setting particular
keys read-only, preventing users from changing their values. In
addition, GNOME provides a number of high-level keys that can be used
to disable actions such as saving to disk and changing the panel layout.
- Tools such as <application>Pessulus</application> make it easy for
- administrators to find and lock down important keys.</para>
+ Tools such as <app>Pessulus</app> make it easy for
+ administrators to find and lock down important keys.</p>
- <para>You should use GConf to store all user preferences in your
+ <p>You should use GConf to store all user preferences in your
application. Using GConf will make it easy to provide instant-apply
preferences, and it will make your settings accessible to systems
- administrators and configuration and backup tools.</para>
+ administrators and configuration and backup tools.</p>
- <para>For more information on GConf, see the <ulink
- url="http://library.gnome.org/devel/gconf/stable/">GConf
- Reference Manual</ulink>.</para>
+ <p>For more information on GConf, see the <link
+ href="http://library.gnome.org/devel/gconf/stable/">GConf
+ Reference Manual</link>.</p>
</section> <!-- gconf -->
<section id="i18n">
<title>Internationalization</title>
- <para>The GNOME Desktop and Developer Platform provides full support for
+ <p>The GNOME Desktop and Developer Platform provides full support for
internationalizing and localizing applications. Internationalization is
the process of ensuring your application can be localized, including
marking all strings for translations, using numbers and format strings
correctly, and making adjustments for variations in conventions for
- times and dates, units, and formatting.</para>
+ times and dates, units, and formatting.</p>
- <para>GNOME uses the standard gettext and related routines for accessing
+ <p>GNOME uses the standard gettext and related routines for accessing
localizations. Support for localization using gettext is built into
every component of the GNOME platform. Your source code can be scanned
for specially-marked tools by automated tools. Those strings are then
placed in PO files to allow translators to track their translations.
Using gettext, you can easily and efficiently access translated versions
of all user-visible strings in your application from translation domains
- installed along with your application.</para>
+ installed along with your application.</p>
- <para>These translation domains can be created using PO files, which
+ <p>These translation domains can be created using PO files, which
can be used by translators to track string changes and update their
translations accordingly. GNOME ships with intltool, a tool for
managing translations in PO files. Using intltool, translators can
use PO files to translate not only the strings in your application,
but also other types of files that you use, such as GConf schema
- files, desktop entry files, and XML files.</para>
+ files, desktop entry files, and XML files.</p>
- <para>GNOME also provides the xml2po tool as part of the gnome-doc-utils
+ <p>GNOME also provides the xml2po tool as part of the gnome-doc-utils
package. This tool allows translators to use PO files to create
translated versions of documentation written in various XML formats,
- including XHTML and DocBook.</para>
+ including XHTML and DocBook.</p>
- <para>Internationalization involves more than just allowing strings
+ <p>Internationalization involves more than just allowing strings
to be translated, and GNOME supports your application development
at every step of the process. GTK+ will automatically adjust its
presentation for languages that are read right-to-left, and Pango
@@ -355,202 +360,195 @@
methods, allowing users from all language to input text efficiently
with their keyboards. The entire GNOME platform uses the UTF-8
encoding of Unicode natively, providing access to the characters
- and writing systems of the entire world.</para>
+ and writing systems of the entire world.</p>
<figure>
- <title><application>Gnumeric</application> in Multiple Languages</title>
- <screenshot>
- <mediaobject>
- <imageobject>
- <imagedata format="PNG" fileref="figures/i18n.png"/>
- </imageobject>
- <textobject><para>Screenshots of the <application>Gnumeric</application>
- spreadsheet application running in Hebrew, Japanese, and Serbian.</para>
- </textobject>
- </mediaobject>
- </screenshot>
+ <title><app>Gnumeric</app> in Multiple Languages</title>
+ <desc>Screenshots of the <app>Gnumeric</app>
+ spreadsheet application running in Hebrew, Japanese, and Serbian.</desc>
+ <media type="image" mime="image/png" src="figures/i18n.png" ></media>
</figure>
- <para>Internationalizing your application helps make it available
+ <p>Internationalizing your application helps make it available
to many more users across the world. While skilled translators
must provide translations for any language, programmers must ensure
the application is properly internationalized before it can be fully
- localized.</para>
+ localized.</p>
<!-- FIXME: where is danilo's awesome guide? -->
- <para>For more information on internationalization in GNOME, see <ulink
- url="http://www.gnome.org/~malcolm/i18n/">Internationalizing GNOME
- Applications</ulink>.</para>
+ <p>For more information on internationalization in GNOME, see <link
+ href="http://www.gnome.org/~malcolm/i18n/">Internationalizing GNOME
+ Applications</link>.</p>
</section> <!-- i18n -->
<section id="a11y">
<title>Accessibility</title>
- <para>Accessibility is the process of ensuring your application can be
+ <p>Accessibility is the process of ensuring your application can be
used by people with various disabilities. Disabilities come in many forms:
visual impairments, movement impairments, hearing impairments, cognitive
and language impairments, and seizure disorders. Many people have some
sort of disability, and making your application accessibility will allow
- more people to use your application effectively.</para>
+ more people to use your application effectively.</p>
- <para>GNOME provides support for accessibility devices using the ATK
+ <p>GNOME provides support for accessibility devices using the ATK
framework. This framework defines a set of interfaces to which graphical
interface components adhere. This allows, for instance, screen readers
to read the text of an interface and interact with its controls. ATK
support is built into GTK+ and the rest of the GNOME platform using the
GAIL library, so any application using GTK+ will have reasonable
- accessibility support for free.</para>
+ accessibility support for free.</p>
- <para>Nonetheless, you should be aware of accessibility issues when
+ <p>Nonetheless, you should be aware of accessibility issues when
when developing your applications. Although GTK+ interfaces provide
reasonable accessibility by default, you can often improve how well
your program behaves with accessibility tools by providing additional
information to ATK. If you develop custom widgets, you should ensure
that they expose their properties to ATK. You should also avoid using
sound, graphics, or color as the sole means of conveying information
- to the user.</para>
+ to the user.</p>
- <para>The GNOME desktop ships with a number of accessibility tools
+ <p>The GNOME desktop ships with a number of accessibility tools
which enable users with disabilities to take full advantage of their
desktop and applications. Applications that fully implement ATK will
be able to work with the accessibility tools. GNOME's accessibility
tools include a screen reader, a screen magnifier, an on-screen
- keyboard, and <application>Dasher</application>, an innovative
- predictive text entry tool.</para>
-
- <para>For extensive recommendations on accessibility, see <ulink
- url="http://developer.gnome.org/projects/gap/guide/gad/index.html">GNOME
- Accessibility for Developers</ulink>. See also <ulink
- url="http://library.gnome.org/devel/atk/stable/">ATK -
- Accessibility Toolkit</ulink> and the <ulink
- url="http://library.gnome.org/devel/gail-libgail-util/stable/">GAIL
- Reference Manual</ulink>.</para>
+ keyboard, and <app>Dasher</app>, an innovative
+ predictive text entry tool.</p>
+
+ <p>For extensive recommendations on accessibility, see <link
+ href="http://developer.gnome.org/projects/gap/guide/gad/index.html">GNOME
+ Accessibility for Developers</link>. See also <link
+ href="http://library.gnome.org/devel/atk/stable/">ATK -
+ Accessibility Toolkit</link> and the <link
+ href="http://library.gnome.org/devel/gail-libgail-util/stable/">GAIL
+ Reference Manual</link>.</p>
</section> <!-- a11y -->
<section id="multimedia">
<title>Multimedia</title>
- <para>GStreamer is a powerful multimedia library for playing, creating,
+ <p>GStreamer is a powerful multimedia library for playing, creating,
and manipulating sound, video, and other media. You can use GStreamer
to provide sound and video playback, record input from multiple sources,
and edit multimedia content. GStreamer supports encoding and decoding
numerous formats by default, and support for additional formats can be
- added with plug-ins.</para>
+ added with plug-ins.</p>
- <para>GStreamer provides a flexible architecture wherein media is
+ <p>GStreamer provides a flexible architecture wherein media is
processed through a pipeline of elements. Each element may apply
filters to the content, such as encoding or decoding, combining
multiple sources, or transforming the multimedia content. This
architecture allows for an arbitrary arrangement of elements,
so that you can accomplish virtually any effect using GStreamer.
Furthermore, GStreamer is designed to have low overhead, so it
- can be used in applications with high demands on latency.</para>
+ can be used in applications with high demands on latency.</p>
- <para>While GStreamer provides a powerful API for manipulating
+ <p>While GStreamer provides a powerful API for manipulating
multimedia, it also provides convenient routines for simple
playback. GStreamer can automatically construct a pipeline to
read and playback files in any supported format, allowing you
- to use sound and video in your application easily.</para>
+ to use sound and video in your application easily.</p>
- <para>The GStreamer architecture allows plugins to add encoders,
+ <p>The GStreamer architecture allows plugins to add encoders,
decoders, and all sorts of content filters. Third-party developers
can provide GStreamer plugins which will be automatically available
to other applications using GStreamer. Plugins can provide support
for other multimedia formats or provide additional functionality
- and effects.</para>
+ and effects.</p>
- <para>You should use GStreamer whenever you need to read or play
+ <p>You should use GStreamer whenever you need to read or play
multimedia content in your application, or if your application
needs to manipulate sound or video. Using GStreamer makes your
application development easy, and it provides you well-tested
- elements for many of your needs.</para>
-
- <para>For comprehensive information on GStreamer, see <ulink
- url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/index.html">The
- GStreamer Application Development Manual</ulink>, <ulink
- url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/">The
- GStreamer 0.10 Core Reference Manual</ulink>, and <ulink
- url="http://gstreamer.freedesktop.org/documentation/">the
- GStreamer documentation page</ulink>.</para>
+ elements for many of your needs.</p>
+
+ <p>For comprehensive information on GStreamer, see <link
+ href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/index.html">The
+ GStreamer Application Development Manual</link>, <link
+ href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/">The
+ GStreamer 0.10 Core Reference Manual</link>, and <link
+ href="http://gstreamer.freedesktop.org/documentation/">the
+ GStreamer documentation page</link>.</p>
</section> <!-- multimedia -->
<section id="printing">
<title>Printing</title>
- <para>Most applications need to provide support for printing. Users expect
+ <p>Most applications need to provide support for printing. Users expect
to be able to print the contents they can view on-screen. The GNOME platform
provides libraries to help you add support for high-quality printing to your
- application.</para>
+ application.</p>
<section id="gnomeprint">
<title>GNOME Print</title>
- <note><para>Note that this section is outdated and that libgnomeprint and
- libgnomeprintui have been deprecated in favor of <ulink
- url="http://library.gnome.org/devel/gtk/stable/Printing.html">GtkPrint</ulink>.
+ <note><p>Note that this section is outdated and that libgnomeprint and
+ libgnomeprintui have been deprecated in favor of <link
+ href="http://library.gnome.org/devel/gtk/stable/Printing.html">GtkPrint</link>.
Printing has been integrated directly into GTK+ 2.10 and later versions,
providing a cross-platform print API that all applications can use.
API and ABI stability guarantees ensures that Gnomeprint will continue to
- be functional and supported throughout the GNOME 2 lifecycle.</para></note>
+ be functional and supported throughout the GNOME 2 lifecycle.</p></note>
- <para>The GNOME print framework consists of two libraries which help
+ <p>The GNOME print framework consists of two libraries which help
you provide high-quality printing with a consistent interface in your
application. At the core of the printing framework is libgnomeprint,
a library for creating PostScript output to send to printers. On top
of that is libgnomeprintui, which provides standard print controls for
- your user interface.</para>
+ your user interface.</p>
- <para>The libgnomeprint library implements the PostScript imaging model,
+ <p>The libgnomeprint library implements the PostScript imaging model,
which is used by most printers. Printers which do not support PostScript
can still be supported through CUPS, described below. In addition to the
standard PostScript imaging, libgnomeprint also features alpha channel
- support and anti-aliasing.</para>
+ support and anti-aliasing.</p>
- <para>The libgnomeprintui library provides a standard print dialog, a print
+ <p>The libgnomeprintui library provides a standard print dialog, a print
preview dialog, and various other controls and functionality required to
build printing into an intuitive user interface. The GNOME print framework
handles the details of locating printers and spooling print jobs, and also
- provides PostScript and PDF export directly in the print dialog.</para>
+ provides PostScript and PDF export directly in the print dialog.</p>
- <para>You should use libgnomeprint whenever you need to render content to
+ <p>You should use libgnomeprint whenever you need to render content to
PostScript for printing. You should use libgnomeprintui to construct your
printing user interface, even if your rendered output comes from another
source. Using the GNOME print framework provides your users a consistent
- user interface with the features they expect of printing appliations.</para>
+ user interface with the features they expect of printing appliations.</p>
</section>
<section id="cups">
<title>CUPS</title>
- <para>On most GNOME systems, CUPS (Common UNIX Printing System) acts as
+ <p>On most GNOME systems, CUPS (Common UNIX Printing System) acts as
the low-level printing system. CUPS provides a modern, feature-rich
architecture for printer discovery, printer option access, and spooling
- print jobs to different types of printers.</para>
+ print jobs to different types of printers.</p>
- <para>CUPS provides a set of utilities for automatically discovering
+ <p>CUPS provides a set of utilities for automatically discovering
printers locally and on the network. This allows users not only to see
all available printers, but to use different types of printers without
- manual configuration.</para>
+ manual configuration.</p>
- <para>CUPS provides a unified interface for printing, regardless of the
+ <p>CUPS provides a unified interface for printing, regardless of the
location or type of the printer. Multiple print protocols are handled
seamlessly by CUPS by automatically applying filters to content sent to
the printers. Applications can simply provide PostScript output, and
CUPS will automatically convert it for printers that do not support
- PostScript natively.</para>
+ PostScript natively.</p>
- <para>CUPS also provides printer configuration options in the form of
+ <p>CUPS also provides printer configuration options in the form of
PostScript Printer Description (PPD) files. PPD configurations allow
applications to expose the capabilities of individual printers to the
users with a consistent user interface. For instance, PPD allows you
to detect whether a printer can collate and staple print jobs, and to
- provide an option in your user interface.</para>
+ provide an option in your user interface.</p>
- <para>In most cases, you will not need to interface directly with CUPS
+ <p>In most cases, you will not need to interface directly with CUPS
in your applications. By using the GNOME print framework, you have
access to the power and flexibility of CUPS automatically. Having CUPS
- underneath means a better user experience with less programming.</para>
+ underneath means a better user experience with less programming.</p>
</section>
</section> <!-- printing -->
-</chapter>
+</page>
diff --git a/platform-overview/C/desktop-tech.page b/platform-overview/C/desktop-tech.page
index e18a5f9..58d0664 100644
--- a/platform-overview/C/desktop-tech.page
+++ b/platform-overview/C/desktop-tech.page
@@ -1,362 +1,379 @@
-<?xml version='1.0' encoding='utf-8'?><!-- -*- indent-tabs-mode: nil -*- -->
-
-<chapter id="desktop-tech">
- <title>Desktop Technologies</title>
+<page xmlns="http://projectmallard.org/1.0/"
+ type="topic" stlye="task"
+ id="desktop-tech">
+
+<info>
+ <link type="guide" xref="index#what-is-gnome-platform"/>
+ <desc>Desktop Technologies</desc>
+ <revision pkgversion="3.0" version="0.1" date="2011-03-18" status="incomplete"/>
+ <credit type="author">
+ <name>Shaun McCance</name>
+ <email>shaunm gnome org</email>
+ <years>2005-2011</years>
+ </credit>
+ <credit type="collaborator">
+ <name>Germán Póo-Caamaño</name>
+ <email>gpoo gnome org</email>
+ <years>2011</years>
+ </credit>
+</info>
+
+<title>Desktop Technologies</title>
<section id="applications-mime">
<title>Application and File Type Registries</title>
- <para>In order for applications to be useful, users need to be able to find
+ <p>In order for applications to be useful, users need to be able to find
and run them. Users of the GNOME desktop may run applications using the
applications menu, or they may run them by accessing files in the file
manager. The GNOME desktop allows you to add applications and file types
when you install your application. The mechanism for these is specified
- on <ulink url="http://www.freedesktop.org/">freedesktop.org</ulink>, so
+ on <link href="http://www.freedesktop.org/">freedesktop.org</link>, so
the same data will allow your application to function in other desktop
- environments.</para>
+ environments.</p>
- <para>Adding your application is as simple as providing a desktop entry
+ <p>Adding your application is as simple as providing a desktop entry
file with the necessary information. Desktop entry files use a simple
key-value syntax, with extra provisions for providing translated content
of particular values. Your application's desktop entry file will contain
- the following information:</para>
-
- <itemizedlist>
- <listitem><para>A name and a comment, each translated into as many languages
- as your application supports,</para></listitem>
- <listitem><para>A list of categories from a fixed list, which are used to
- place your application in the applications menu,</para></listitem>
- <listitem><para>An icon, either as a full file path or as a simple name for
- the icon theme system, </para></listitem>
- <listitem><para>A list of file types that your application supports,
- and</para></listitem>
- <listitem><para>The command to run your application.</para></listitem>
- </itemizedlist>
-
- <para>If your application handles custom file types that are not already
+ the following information:</p>
+
+ <list>
+ <item><p>A name and a comment, each translated into as many languages
+ as your application supports,</p></item>
+ <item><p>A list of categories from a fixed list, which are used to
+ place your application in the applications menu,</p></item>
+ <item><p>An icon, either as a full file path or as a simple name for
+ the icon theme system, </p></item>
+ <item><p>A list of file types that your application supports,
+ and</p></item>
+ <item><p>The command to run your application.</p></item>
+ </list>
+
+ <p>If your application handles custom file types that are not already
known by the system, you will need to add those types to the file type
registry. All file types are accessed with MIME types. For example, Ogg
- Vorbis audio files have the MIME type <literal>application/ogg</literal>.
+ Vorbis audio files have the MIME type <code>application/ogg</code>.
To add a MIME type, you need to provide a description of the type using
a MIME information XML file. These files provide a translated name for
the type as well as information on how to determine which files are of
the type, either by matching the file name or by inspecting the contents
- of the file.</para>
-
- <para>For more information on applications, see <ulink
- url="http://standards.freedesktop.org/desktop-entry-spec/latest/">The
- Desktop Entry Specification</ulink> and <ulink
- url="http://standards.freedesktop.org/menu-spec/latest/">The
- Desktop Menu Specification</ulink>. For more information on file types,
- see <ulink
- url="http://standards.freedesktop.org/shared-mime-info-spec/latest/">The
- Shared MIME Info Specification</ulink>.</para>
+ of the file.</p>
+
+ <p>For more information on applications, see <link
+ href="http://standards.freedesktop.org/desktop-entry-spec/latest/">The
+ Desktop Entry Specification</link> and <link
+ href="http://standards.freedesktop.org/menu-spec/latest/">The
+ Desktop Menu Specification</link>. For more information on file types,
+ see <link
+ href="http://standards.freedesktop.org/shared-mime-info-spec/latest/">The
+ Shared MIME Info Specification</link>.</p>
</section>
<section id="panel-applets">
<title>Panel Applets</title>
- <para>The GNOME desktop features flexible and powerful panels to which users
+ <p>The GNOME desktop features flexible and powerful panels to which users
can add any number of small applications, called panel applets. Panel applets
can provide all sorts of quick access to all sorts of useful information and
functionality. For instance, the GNOME desktop ships with panel applets to
switch between windows and workspaces, display the current weather conditions,
- and display network activity, among many others.</para>
+ and display network activity, among many others.</p>
- <para>You may provide a panel applet to augment the functionality of your
+ <p>You may provide a panel applet to augment the functionality of your
application, or you may provide a simple stand-alone panel applet. If you
simply need to display quick notifications, you should consider using the
notification area instead, which is also displayed in the user's panel.
Panel applets should be used when you need to provide more functionality
- than that provided by notification icons.</para>
+ than that provided by notification icons.</p>
- <para>Panel applets are independent processes that use Bonobo to communicate
+ <p>Panel applets are independent processes that use Bonobo to communicate
with the panel. Bonobo allows applets to integrate with the panel to provide
a consistent user experience. For example, the context menu for every panel
applet contains standard items to remove, move, and lock the applet. Each
panel applet can then add items to the context menu to perform other actions.
- The <application>Weather Report</application> panel applet, for example, has
+ The <app>Weather Report</app> panel applet, for example, has
context menu items to display a detailed report and to update the displayed
- information.</para>
+ information.</p>
- <note><para>Note that Bonobo has been deprecated in favor of D-Bus and other
- technologies.</para></note>
+ <note><p>Note that Bonobo has been deprecated in favor of D-Bus and other
+ technologies.</p></note>
- <para>For more information on panel applets, see the
- <ulink url="http://library.gnome.org/devel/panel-applet/stable/">Panel
- Applet Library</ulink>.</para>
+ <p>For more information on panel applets, see the
+ <link href="http://library.gnome.org/devel/panel-applet/stable/">Panel
+ Applet Library</link>.</p>
</section>
<section id="nofication-area">
<title>Notification Area</title>
- <para>In addition to launchers and panel applets, the GNOME panel also
+ <p>In addition to launchers and panel applets, the GNOME panel also
features a notification area that applications can use to notify users
of events. Notifications can be used to alert the user of new emails,
- available updates, upcoming meetings, or any number of other events.</para>
+ available updates, upcoming meetings, or any number of other events.</p>
- <para>Notifications are simple icons that your application can place in
+ <p>Notifications are simple icons that your application can place in
the notification area on the user's panel. Your application can then
take further action when the user clicks on the icon. Currently, the
notification system is implemented in the experimental Egg library;
however, the next version of GTK+ will have support for notification
- icons.</para>
+ icons.</p>
- <para>The notification area is a <ulink
- url="http://www.freedesktop.org/">freedesktop.org</ulink> specification,
+ <p>The notification area is a <link
+ href="http://www.freedesktop.org/">freedesktop.org</link> specification,
so your notification icons will appear in other desktop environments as
- well. For more information on the notification area, see <ulink
- url="http://standards.freedesktop.org/systemtray-spec/latest/">The System
- Tray Protocol Specification</ulink>.</para>
+ well. For more information on the notification area, see <link
+ href="http://standards.freedesktop.org/systemtray-spec/latest/">The System
+ Tray Protocol Specification</link>.</p>
</section>
<section id="nautilus">
<title>File Manager</title>
- <para>GNOME ships with <application>Nautilus</application>, an intuitive
+ <p>GNOME ships with <app>Nautilus</app>, an intuitive
and powerful file manager. Using the advanced GVFS technology,
- <application>Nautilus</application> is able to display remote folders just
+ <app>Nautilus</app> is able to display remote folders just
like folders on the local file system, giving users access to all their
- files everywhere with a single consistent interface.</para>
+ files everywhere with a single consistent interface.</p>
- <para><application>Nautilus</application> provides a plugin interface,
+ <p><app>Nautilus</app> provides a plugin interface,
enabling developers to extend its functionality to provide more information
about users' files. This provides a richer and more coherant experience
for users, removing the need for seperate applications to manage various
- types of files.</para>
+ types of files.</p>
- <para><application>Nautilus</application> plugins can extend the file
+ <p><app>Nautilus</app> plugins can extend the file
manager's functionality in a number of ways. Plugins can add extra
information to file properties dialogs, providing users with everything
they need to know about files. For example, GNOME ships with a plugin
to display extra information about audio and video files, such as the
codec used, the dimensions of the video, and artist and album of music
- files extracted from a CD.</para>
+ files extracted from a CD.</p>
- <para>Plugins can also add columns to the list view and automatically place
+ <p>Plugins can also add columns to the list view and automatically place
emblems on files. This can be used to provide pertinent information to the
- user at a glance. For example, a <application>Nautilus</application> plugin
+ user at a glance. For example, a <app>Nautilus</app> plugin
could provide version control information on folders checked out from a
version control system. Users could see directly in the file manager if
- a file is up to date, or if changes have been made locally.</para>
+ a file is up to date, or if changes have been made locally.</p>
- <para><application>Nautilus</application> also allows developers to add
+ <p><app>Nautilus</app> also allows developers to add
items to the context menu for files and folders. Context menu items can
specify for which types of files they should be displayed, so the context
menu only provides actions that are relevant for the selected files. For
- example, <application>File Roller</application>, GNOME's archive file
+ example, <app>File Roller</app>, GNOME's archive file
utility, adds an item to the context menu to extract archive files directly.
Extra context menu items provide easy access to common operations on
- different types of files.</para>
+ different types of files.</p>
- <para>In addition to a flexible plugin architecture,
- <application>Nautilus</application> can also display a thumbnail for any
+ <p>In addition to a flexible plugin architecture,
+ <app>Nautilus</app> can also display a thumbnail for any
type of file for which a thumbnailer has been provided. Thumbnails show
a preview of the file, helping users find the files they want. GNOME can
automatically create thumbnails for most image and movie files, and allows
applications to install additional thumbnailer programs to create thumbnails
for application-specific files. Thumbnail management is fully specified by
- <ulink url="http://www.freedesktop.org/">freedesktop.org</ulink>, so any
- thumbnailers you provide can be used by all applications.</para>
+ <link href="http://www.freedesktop.org/">freedesktop.org</link>, so any
+ thumbnailers you provide can be used by all applications.</p>
</section>
<section id="window-manager">
<title>Window Manager</title>
- <para>The window manager is a special program responsible for drawing the
+ <p>The window manager is a special program responsible for drawing the
borders and titlebars around windows. The window manager is responsible
for handling all the operations performed on windows, such as moving,
resizing, minimizing, and moving between workspaces. Windows are managed
consistently with little or no work from application developers. When
applications need to influence the window manager, they can provide
- hints on their windows using function calls in GTK+.</para>
+ hints on their windows using function calls in GTK+.</p>
- <para>External programs can, however, interact directly with the window
+ <p>External programs can, however, interact directly with the window
manager, and even control its behavior. Using GNOME's libwnck library,
applications can get information about the placement and state of all
the windows and instruct the window manager to perform various actions
- on those windows.</para>
+ on those windows.</p>
- <para>The libwnck library isn't specific to GNOME's window manager. All
+ <p>The libwnck library isn't specific to GNOME's window manager. All
of its functionality uses the Extended Window Manager Hints, or EWMH.
EWMH was developed jointly with
- <ulink url="http://www.freedesktop.org">freedesktop.org</ulink> to provide
- unified window manager interaction across multiple desktops.</para>
+ <link href="http://www.freedesktop.org">freedesktop.org</link> to provide
+ unified window manager interaction across multiple desktops.</p>
- <para>Window manager interaction with libwnck can be used for simple tasks,
+ <p>Window manager interaction with libwnck can be used for simple tasks,
such as displaying workspace and window list applets on the user's panel,
as well as for complex applications, such as performing automatic actions
- on new windows based on certain window properties.</para>
+ on new windows based on certain window properties.</p>
</section>
<section id="control-center">
<title>Control Center</title>
- <para>The GNOME desktop provides a single menu of all the desktop-wide
+ <p>The GNOME desktop provides a single menu of all the desktop-wide
preferences and system administration settings. Preferences and settings
dialogs can be placed in this menu to make them easily accessible.
Dialogs can be placed in the preferences menu by adding them to the
- applications registry with the <literal>Setting</literal> category.
+ applications registry with the <sys>Setting</sys> category.
Dialogs can be placed in the administration menu using both the
- <literal>Settings</literal> and <literal>System</literal> categories.</para>
+ <sys>Settings</sys> and <sys>System</sys> categories.</p>
- <para>If you provide a dialog that allows administrators to configure
+ <p>If you provide a dialog that allows administrators to configure
desktop systems, then you should add your dialog to the administration menu.
If you provide a dialog that allows users to adjust preferences that affect
a number of applications, then you should add your dialog to the preferences
menu. You should not use these global menus for individual application
- preferences.</para>
+ preferences.</p>
</section>
<section id="keyring">
<title>Storing Passwords</title>
- <para>GNOME provides a modern and secure keyring manager to store users'
+ <p>GNOME provides a modern and secure keyring manager to store users'
passwords and other sensitive data. Applications can use the keyring
manager library to store and access passwords, and users can manage
- their passwords using GNOME's <application>Seahorse</application>
- application.</para>
+ their passwords using GNOME's <app>Seahorse</app>
+ application.</p>
- <para>The keyring manager provides any number of keyrings, where each
+ <p>The keyring manager provides any number of keyrings, where each
keyring can contain any number of keyring items. Items in a keyring
store some piece of data, often a password. Each keyring is locked
individually, and users must provide a password to unlock the keyring.
Once a keyring has been unlocked, the user has access to all of the
- items in that keyring.</para>
+ items in that keyring.</p>
- <para>The keyring manager provides access control lists for each keyring
+ <p>The keyring manager provides access control lists for each keyring
item, controlling which applications are allowed access to that item.
If an unknown application attempts to access a keyring item, the keyring
manager will prompt the user to allow or deny that application access.
This helps prevent malicious or poorly-written programs from accessing
- the user's sensitive data.</para>
+ the user's sensitive data.</p>
- <para>Keyring data stored on the file system is encrypted with the AES
+ <p>Keyring data stored on the file system is encrypted with the AES
block cipher, and SHA1 is used for hashes of the item's attributes.
Using the attributes hash, the keyring manager is able to look up items
requested by applications without ever unlocking the keyring. The
keyring has to be unlocked when a matching item is found and
- accessed.</para>
+ accessed.</p>
- <para>The keyring manager also provides a session keyring. Items in
+ <p>The keyring manager also provides a session keyring. Items in
the session keyring are never stored on disk, and are lost as soon as
the user's session ends. The session keyring can be used to store
- passwords to be used in the current session only.</para>
+ passwords to be used in the current session only.</p>
- <para>If you use GIO to access remote servers, you automatically
+ <p>If you use GIO to access remote servers, you automatically
get the benefits of the keyring manager. Whenever GVFS needs to
authenticate the user, it provides the option to store the password,
- either in the default keyring or in the session keyring.</para>
+ either in the default keyring or in the session keyring.</p>
- <para>You should use the keyring manager whenever your application needs
+ <p>You should use the keyring manager whenever your application needs
to store passwords or other sensitive data for users. Using the keyring
manager provides a better user experience while still keeping user data
- safe and secure.</para>
+ safe and secure.</p>
- <para>For API references please see the
- <ulink url="http://library.gnome.org/devel/gnome-keyring/stable/">gnome-keyring
- Reference Manual</ulink> and the
- <ulink url="http://library.gnome.org/devel/libseahorse/stable/">libseahorse
- Reference Manual</ulink>.</para>
+ <p>For API references please see the
+ <link href="http://library.gnome.org/devel/gnome-keyring/stable/">gnome-keyring
+ Reference Manual</link> and the
+ <link href="http://library.gnome.org/devel/libseahorse/stable/">libseahorse
+ Reference Manual</link>.</p>
</section>
<section id="session">
<title>Session Management</title>
- <para>GNOME provides tools to allow your application to run smoothly from
+ <p>GNOME provides tools to allow your application to run smoothly from
session to session. Users can log out with running applications and have
those applications fully restored when they log back in. To provide this
functionality, your application must connect to the session manager and
- save its state when the user logs out.</para>
+ save its state when the user logs out.</p>
- <note><para>Note that this section is outdated as GnomeClient and
- Libgnomeui are deprecated. Newly written code should use <ulink
- url="http://live.gnome.org/SessionManagement/EggSMClient">EggSMClient</ulink>
+ <note><p>Note that this section is outdated as GnomeClient and
+ Libgnomeui are deprecated. Newly written code should use <link
+ href="http://live.gnome.org/SessionManagement/EggSMClient">EggSMClient</link>
instead. Work is currently underway to integrate EggSMClient directly into
GTK+. API and ABI stability guarantees ensures that GnomeClient will
continue to be functional and supported throughout the GNOME 2 lifecycle.
- </para></note>
-
- <para>GNOME provides a simple API for session management in the GNOME User
- Interface Library. See the section <ulink
- url="http://library.gnome.org/devel/libgnomeui/stable/GnomeClient.html">GnomeClient</ulink>
- of the <ulink
- url="http://library.gnome.org/devel/libgnomeui/stable/">GNOME
- UI Library Reference Manual</ulink> for more information on working with
- the GNOME session manager.</para>
+ </p></note>
+
+ <p>GNOME provides a simple API for session management in the GNOME User
+ Interface Library. See the section <link
+ href="http://library.gnome.org/devel/libgnomeui/stable/GnomeClient.html">GnomeClient</link>
+ of the <link
+ href="http://library.gnome.org/devel/libgnomeui/stable/">GNOME
+ UI Library Reference Manual</link> for more information on working with
+ the GNOME session manager.</p>
</section>
<section id="address-book-calendar">
<title>Address Book and Calendar</title>
- <para>With Evolution Data Server, GNOME provides a single address book and
+ <p>With Evolution Data Server, GNOME provides a single address book and
calendar that all applications can use to store and retrieve information.
Using Evolution Data Server means that users no longer have to maintain
separate lists of contacts in each application, or manually copy events
- to their calendar.</para>
+ to their calendar.</p>
- <para>People use computers increasingly to interact with their friends
+ <p>People use computers increasingly to interact with their friends
and colleagues. Applications such as email programs, instant messengers,
and telephony and video conferencing applications are used to communicate
with others. These applications often provide contact lists to help users.
Using Evolution Data Server, applications can store contact information in
a single location, allowing all applications to see all the pertinent data
- about users' contacts.</para>
+ about users' contacts.</p>
- <para>Applications can also use Evolution Data Server to store and retrieve
+ <p>Applications can also use Evolution Data Server to store and retrieve
appointments on the user's calendar. For example, the clock on the panel
shows a simple calendar when clicked. If the user has any appointments
scheduled, they are shown alongside the calendar. This makes it easy to
- see upcoming appointments without opening a full calendar application.</para>
-
- <para>For more information on the address book, see <ulink
- url="http://gnome.org/projects/evolution/developer-doc/libebook/ch01.html">
- Evolution API Reference: libebook</ulink>. For more information on the
- calendar, see <ulink
- url="http://gnome.org/projects/evolution/developer-doc/libecal/index.html">
- Evolution API Reference: libecal</ulink>.</para>
+ see upcoming appointments without opening a full calendar application.</p>
+
+ <p>For more information on the address book, see <link
+ href="http://gnome.org/projects/evolution/developer-doc/libebook/ch01.html">
+ Evolution API Reference: libebook</link>. For more information on the
+ calendar, see <link
+ href="http://gnome.org/projects/evolution/developer-doc/libecal/index.html">
+ Evolution API Reference: libecal</link>.</p>
</section>
<section id="usability">
<title>Usability</title>
- <para>The GNOME desktop is designed around usability, and it aims to provide
+ <p>The GNOME desktop is designed around usability, and it aims to provide
a consistent and simple user experience. People use computers to get work
done (or to play!), not to figure out complicated user interface puzzles.
When designing your application, you should consider how well users can
recognize common user interface paradigms, how quickly they can learn the
elements that are unique to your application, and how efficiently they can
- execute tasks once they've learned them.</para>
+ execute tasks once they've learned them.</p>
- <para>GNOME provides comprehensive Human Interface Guidelines to help you
+ <p>GNOME provides comprehensive Human Interface Guidelines to help you
write applications that are attractive and usable. While no guidelines can
provide a single answer for all usability concerns, understanding the GNOME
Human Interface Guidelines can make it easier to create a usable application.
- For more information, please see the <ulink
- url="http://library.gnome.org/devel/hig-book/stable/">GNOME Human
- Interface Guidelines</ulink>.</para>
+ For more information, please see the <link
+ href="http://library.gnome.org/devel/hig-book/stable/">GNOME Human
+ Interface Guidelines</link>.</p>
</section>
<section id="documentation">
<title>Documentation</title>
- <para>All applications should provide documentation to help their users
+ <p>All applications should provide documentation to help their users
understand the application and troubleshoot problems that may arise. While
a well-designed application should not require reading the documentation
before use, documentation can nonetheless be an important tool for users,
- particularly for complex applications.</para>
+ particularly for complex applications.</p>
- <para>GNOME provides a unified framework for providing user documentation.
+ <p>GNOME provides a unified framework for providing user documentation.
You can provide documentation in the industry-standard DocBook format. Using
DocBook means that you don't have to worry about formatting details. Instead,
your documentation will be automatically formatted with the same consistent
- conventions as the rest of the system documentation.</para>
+ conventions as the rest of the system documentation.</p>
- <para>GNOME's help viewer, <application>Yelp</application>, displays and
+ <p>GNOME's help viewer, <app>Yelp</app>, displays and
prints documentation, provides a listing of all documentation on the system,
and allows the user to search the full text of all documentation. Using the
- GNOME help system gives you all these features for free.</para>
-
- <para>For more information on writing documentation for your application,
- see the <ulink
- url="http://library.gnome.org/devel/gdp-handbook/stable/">GNOME
- Handbook of Writing Software Documentation</ulink>, <ulink
- url="http://www.docbook.org/tdg/en/html/docbook.html">DocBook: The Definitive
- Guide</ulink>, and the <ulink
- url="http://library.gnome.org/devel/gdp-style-guide/stable/">GNOME
- Documentation Style Guide</ulink>.</para>
+ GNOME help system gives you all these features for free.</p>
+
+ <p>For more information on writing documentation for your application,
+ see the <link
+ href="http://library.gnome.org/devel/gdp-handbook/stable/">GNOME
+ Handbook of Writing Software Documentation</link>, <link
+ href="http://www.docbook.org/tdg/en/html/docbook.html">DocBook: The Definitive
+ Guide</link>, and the <link
+ href="http://library.gnome.org/devel/gdp-style-guide/stable/">GNOME
+ Documentation Style Guide</link>.</p>
</section>
-</chapter>
+</page>
diff --git a/platform-overview/C/index.page b/platform-overview/C/index.page
index a89b023..bc8a8ee 100644
--- a/platform-overview/C/index.page
+++ b/platform-overview/C/index.page
@@ -1,46 +1,52 @@
-<?xml version='1.0' encoding='utf-8'?><!-- -*- indent-tabs-mode: nil -*- -->
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
-"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
-]>
+<page xmlns="http://projectmallard.org/1.0/"
+ type="guide" stlye="task"
+ id="index">
-<book id="index" lang="en">
- <title>Overview of the GNOME Platform</title>
+<info>
+ <desc>Overview of the powerful technologies inside the GNOME platform.</desc>
+ <revision pkgversion="2.24" version="0.1" date="2007-03-16" status="incomplete"/>
+ <revision pkgversion="3.0" version="0.2" date="2011-03-18" status="incomplete"/>
+ <credit type="author copyright">
+ <name>Shaun McCance</name>
+ <email>shaunm gnome org</email>
+ <years>2005-2011</years>
+ </credit>
+ <credit type="collaborator">
+ <name>Germán Póo-Caamaño</name>
+ <email>gpoo gnome org</email>
+ <years>2011</years>
+ </credit>
+ <credit type="publisher">
+ <name>GNOME Foundation</name>
+ <page xmlns="http://xmlns.com/foaf/0.1/">http://foundation.gnome.org/</page>
+ </credit>
+ <license>
+ <include href="cc-by-sa-3-0.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+ </license>
+</info>
- <bookinfo>
- <title>Overview of the GNOME Platform</title>
- <copyright>
- <year>2005</year>
- <year>2006</year>
- <holder>Shaun McCance</holder>
- </copyright>
- <publisher>
- <publishername>GNOME Foundation</publishername>
- </publisher>
- <pubdate>2007-03-16</pubdate>
- <edition>2.20</edition>
- <releaseinfo revision="2.24" role="incomplete"/>
- <abstract role="description">
- <para>Overview of the powerful technologies inside the GNOME platform.</para>
- </abstract>
- <include href="legal-fdl.xml" xmlns="http://www.w3.org/2001/XInclude"/>
- <authorgroup>
- <author role="maintainer">
- <firstname>Shaun</firstname>
- <surname>McCance</surname>
- <affiliation>
- <orgname>GNOME Documentation Project</orgname>
- </affiliation>
- <email>shaunm gnome org</email>
- </author>
- </authorgroup>
- </bookinfo>
+<title>Overview of the GNOME Platform</title>
+<p>GNOME Platform</p>
- <include href="intro.xml" xmlns="http://www.w3.org/2001/XInclude"/>
- <include href="platform.xml" xmlns="http://www.w3.org/2001/XInclude"/>
- <include href="core-tech.xml" xmlns="http://www.w3.org/2001/XInclude"/>
- <include href="ipc-network.xml" xmlns="http://www.w3.org/2001/XInclude"/>
- <include href="desktop-tech.xml" xmlns="http://www.w3.org/2001/XInclude"/>
- <include href="bindings.xml" xmlns="http://www.w3.org/2001/XInclude"/>
- <include href="apx-modules.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+ <section id="what-is-gnome-platform" style="2column">
+ <info>
+ <title type="link">What is GNOME Platform?</title>
+ </info>
+ <title>What is GNOME Platform?</title>
+ </section>
-</book>
+ <section id="getting-started" style="2column">
+ <info>
+ <title type="link">Getting Started</title>
+ </info>
+ <title>Getting Started</title>
+ </section>
+
+ <section id="getting-involved" style="2column">
+ <info>
+ <title type="link">Getting Involved</title>
+ </info>
+ <title>Getting Involved</title>
+ </section>
+
+</page>
diff --git a/platform-overview/C/introduction.page b/platform-overview/C/introduction.page
index b1ef355..8b6eaf8 100644
--- a/platform-overview/C/introduction.page
+++ b/platform-overview/C/introduction.page
@@ -1,200 +1,218 @@
-<?xml version='1.0' encoding='utf-8'?><!-- -*- indent-tabs-mode: nil -*- -->
+<page xmlns="http://projectmallard.org/1.0/"
+ type="topic"
+ id="introduction">
-<chapter id="intro">
- <title>Introduction</title>
+<info>
+ <link type="guide" xref="index#what-is-gnome-platform"/>
+ <link type="seealso" xref="desktop-tech"/>
+ <desc>Introduction to GNOME Platform</desc>
+ <revision pkgversion="3.0" version="0.1" date="2011-03-18" status="incomplete"/>
+ <credit type="author">
+ <name>Shaun McCance</name>
+ <email>shaunm gnome org</email>
+ <years>2005-2011</years>
+ </credit>
+ <credit type="collaborator">
+ <name>Germán Póo-Caamaño</name>
+ <email>gpoo gnome org</email>
+ <years>2011</years>
+ </credit>
+</info>
- <para>GNOME is a powerful but simple desktop environment with a strong focus
+<title>Introduction</title>
+
+ <p>GNOME is a powerful but simple desktop environment with a strong focus
on usability, accessibility, and internationalization. GNOME is designed to
be usable by everybody, regardless of technical expertise, disabilitites, or
- native language. GNOME makes it easy for people to use their computers.</para>
+ native language. GNOME makes it easy for people to use their computers.</p>
- <para>GNOME provides a comprehensive developer platform that allow developers
+ <p>GNOME provides a comprehensive developer platform that allow developers
to create professional software that is easy to use and aesthetically pleasing.
This document provides a high-level overview of the GNOME platform along with
- links to detailed documentation on each part of the platform.</para>
+ links to detailed documentation on each part of the platform.</p>
<section id="who-should-read">
<title>Who Should Read This Document</title>
- <para>You should read this document if you want to create software using the
+ <p>You should read this document if you want to create software using the
GNOME platform. Developing with the GNOME platform will help you create
consistent applications that integrate well into the user's desktop. This
guide will introduce you to the various components of the platform, so you
know which libraries can accomplish which tasks. This guide links to
additional detailed documentation, so you can explore each component of
- the platform in more depth.</para>
+ the platform in more depth.</p>
- <para>This guide will also be useful if you are picking a development
+ <p>This guide will also be useful if you are picking a development
platform for your software project. It will provide an overview how you
- can use the GNOME platform to build useful software.</para>
+ can use the GNOME platform to build useful software.</p>
- <para>This guide also describes ways of extending the GNOME desktop with
+ <p>This guide also describes ways of extending the GNOME desktop with
plugins, panel applets, and other useful tools. If you want to develop
additional functionality to plug into the GNOME desktop, you should read
- this guide, particularly <xref linkend="desktop-tech"/>.</para>
+ this guide, particularly <link xref="desktop-tech"/>.</p>
- <para>If you have existing software that you want to port to the GNOME
- platform, you should see the online <ulink
- url="http://live.gnome.org/GuideForISVs">Guide For ISVs</ulink> in
- addition to this guide.</para>
+ <p>If you have existing software that you want to port to the GNOME
+ platform, you should see the online <link
+ href="http://live.gnome.org/GuideForISVs">Guide For ISVs</link> in
+ addition to this guide.</p>
</section>
<section id="gnome-family">
<title>The GNOME Family</title>
- <para>GNOME is a global effort, with many contributors all over the world.
+ <p>GNOME is a global effort, with many contributors all over the world.
GNOME is a success because of its contributors and users. This section
lists the web sites and conferences where you can learn more about GNOME,
- as well as other organizations that work with GNOME.</para>
+ as well as other organizations that work with GNOME.</p>
- <variablelist>
+ <terms>
<title>Web Sites</title>
- <varlistentry>
- <term><ulink url="http://www.gnome.org/">www.gnome.org</ulink></term>
- <listitem><para>The primary web site for GNOME users. It contains
- release information, downloads, and documentation.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink url="http://library.gnome.org/">library.gnome.org</ulink></term>
- <listitem><para>The complete source for all GNOME documentation. It contains
+ <item>
+ <title><link href="http://www.gnome.org/">www.gnome.org</link></title>
+ <p>The primary web site for GNOME users. It contains
+ release information, downloads, and documentation.</p>
+ </item>
+ <item>
+ <title><link href="http://library.gnome.org/">library.gnome.org</link></title>
+ <p>The complete source for all GNOME documentation. It contains
all of the user and developer documentation produced by GNOME, automatically
- built and updated for each release.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink url="http://foundation.gnome.org/">foundation.gnome.org</ulink></term>
- <listitem><para>The web site for the GNOME Foundation, the not-for-profit
- foundation that oversees the development of GNOME.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink url="http://bugzilla.gnome.org/">bugzilla.gnome.org</ulink></term>
- <listitem><para>The GNOME bug trackers. Use this site to submit a bug report
- or feature request, or to track the status of a report.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink url="http://live.gnome.org/">live.gnome.org</ulink></term>
- <listitem><para>The GNOME wiki. Many projects within GNOME now use the
+ built and updated for each release.</p>
+ </item>
+ <item>
+ <title><link href="http://foundation.gnome.org/">foundation.gnome.org</link></title>
+ <p>The web site for the GNOME Foundation, the not-for-profit
+ foundation that oversees the development of GNOME.</p>
+ </item>
+ <item>
+ <title><link href="http://bugzilla.gnome.org/">bugzilla.gnome.org</link></title>
+ <p>The GNOME bug trackers. Use this site to submit a bug report
+ or feature request, or to track the status of a report.</p>
+ </item>
+ <item>
+ <title><link href="http://live.gnome.org/">live.gnome.org</link></title>
+ <p>The GNOME wiki. Many projects within GNOME now use the
wiki as their primary web space. In additional, the wiki is often used
- to sketch out future development.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink url="http://developer.gnome.org/">developer.gnome.org</ulink></term>
- <listitem><para>The old website for developer information. This once
+ to sketch out future development.</p>
+ </item>
+ <item>
+ <title><link href="http://developer.gnome.org/">developer.gnome.org</link></title>
+ <p>The old website for developer information. This once
contained developer documentation and information about the usability,
documentation, and translation teams. The content on this site has
since been largely superseded by
- <ulink url="http://library.gnome.org/">library.gnome.org</ulink> and
- <ulink url="http://live.gnome.org/">live.gnome.org</ulink>. There may
- still be some information on this site that is not found elsewhere.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink url="http://mail.gnome.org/">mail.gnome.org</ulink></term>
- <listitem><para>Information on GNOME mailing lists. This site contains
- full archives of all GNOME mailing lists.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink url="http://git.gnome.org/">git.gnome.org</ulink></term>
- <listitem><para>The GNOME Git repository, tracking all GNOME source code
- back to the inception of the project.</para></listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
+ <link href="http://library.gnome.org/">library.gnome.org</link> and
+ <link href="http://live.gnome.org/">live.gnome.org</link>. There may
+ still be some information on this site that is not found elsewhere.</p>
+ </item>
+ <item>
+ <title><link href="http://mail.gnome.org/">mail.gnome.org</link></title>
+ <p>Information on GNOME mailing lists. This site contains
+ full archives of all GNOME mailing lists.</p>
+ </item>
+ <item>
+ <title><link href="http://git.gnome.org/">git.gnome.org</link></title>
+ <p>The GNOME Git repository, tracking all GNOME source code
+ back to the inception of the project.</p>
+ </item>
+ </terms>
+
+ <terms>
<title>Mailing Lists</title>
- <varlistentry>
- <term><ulink
- url="http://mail.gnome.org/mailman/listinfo/gnome-list">gnome-list</ulink></term>
- <listitem><para>The primary mailing list for GNOME users.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink
- url="http://mail.gnome.org/mailman/listinfo/gnome-devel-list">gnome-devel-list</ulink></term>
- <listitem><para>Information and questions about development using the
- GNOME platform.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink
- url="http://mail.gnome.org/mailman/listinfo/gnome-love">gnome-love</ulink></term>
- <listitem><para>The first place to go to get involved with GNOME.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink
- url="http://mail.gnome.org/mailman/listinfo/gnome-accessibility-list">gnome-accessibility-list</ulink></term>
- <listitem><para>Information on accessibility in GNOME applications.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink
- url="http://mail.gnome.org/mailman/listinfo/gnome-doc-list">gnome-doc-list</ulink></term>
- <listitem><para>Information on writing documentation for GNOME
- applications.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink
- url="http://mail.gnome.org/mailman/listinfo/gnome-i18n">gnome-i18n</ulink></term>
- <listitem><para>Information about internationalization and localization
- of GNOME applications.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink
- url="http://mail.gnome.org/mailman/listinfo/usability">usability</ulink></term>
- <listitem><para>Information on usability for GNOME applications.</para></listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
+ <item>
+ <title><link
+ href="http://mail.gnome.org/mailman/listinfo/gnome-list">gnome-list</link></title>
+ <p>The primary mailing list for GNOME users.</p>
+ </item>
+ <item>
+ <title><link
+ href="http://mail.gnome.org/mailman/listinfo/gnome-devel-list">gnome-devel-list</link></title>
+ <p>Information and questions about development using the
+ GNOME platform.</p>
+ </item>
+ <item>
+ <title><link
+ href="http://mail.gnome.org/mailman/listinfo/gnome-love">gnome-love</link></title>
+ <p>The first place to go to get involved with GNOME.</p>
+ </item>
+ <item>
+ <title><link
+ href="http://mail.gnome.org/mailman/listinfo/gnome-accessibility-list">gnome-accessibility-list</link></title>
+ <p>Information on accessibility in GNOME applications.</p>
+ </item>
+ <item>
+ <title><link
+ href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list">gnome-doc-list</link></title>
+ <p>Information on writing documentation for GNOME
+ applications.</p>
+ </item>
+ <item>
+ <title><link
+ href="http://mail.gnome.org/mailman/listinfo/gnome-i18n">gnome-i18n</link></title>
+ <p>Information about internationalization and localization
+ of GNOME applications.</p>
+ </item>
+ <item>
+ <title><link
+ href="http://mail.gnome.org/mailman/listinfo/usability">usability</link></title>
+ <p>Information on usability for GNOME applications.</p>
+ </item>
+ </terms>
+
+ <terms>
<title>Conferences</title>
- <varlistentry>
- <term><ulink url="http://guadec.org/">GUADEC</ulink></term>
- <listitem><para>The primary conference for GNOME users and developers.
+ <item>
+ <title><link href="http://guadec.org/">GUADEC</link></title>
+ <p>The primary conference for GNOME users and developers.
GUADEC is hosted annually in May or June. Each year, it is hosted in
a different European city, making it an excellent excuse to see more
of Europe. GUADEC features talks aimed at users, developers, and
- vendors.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>The GNOME Summit</term>
- <listitem><para>The hacker get-together. The Summit is geared
+ vendors.</p>
+ </item>
+ <item>
+ <title><link href="http://live.gnome.org/BostonSummit/">The GNOME Summit</link></title>
+ <p>The hacker get-together. The Summit is geared
primarily at existing GNOME developers, although there is often
useful information for new developers. The Summit is hosted
- annually in Boston.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>GNOME.conf.au</term>
- <listitem><para>A casual get-together hosted annually at
- linux.conf.au.</para></listitem>
- </varlistentry>
+ annually in Boston.</p>
+ </item>
+ <item>
+ <title>GNOME.conf.au</title>
+ <p>A casual get-together hosted annually at
+ linux.conf.au.</p>
+ </item>
<!-- FIXME: surely there's more -->
- </variablelist>
+ </terms>
- <variablelist>
+ <terms>
<title>Other Organizations</title>
- <varlistentry>
- <term><ulink url="http://www.freedesktop.org/">freedesktop.org</ulink></term>
- <listitem><para>The collaborative effort for interoperability and shared
+ <item>
+ <title><link href="http://www.freedesktop.org/">freedesktop.org</link></title>
+ <p>The collaborative effort for interoperability and shared
technology among desktop environments. Through freedesktop.org, GNOME
works with projects such as KDE and XFCE to make it easier for application
- developers to provide better experiences for their users.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink url="http://www.mozilla.com/">Mozilla</ulink></term>
- <listitem><para>The free web engine, and a whole lot more. GNOME maintains
+ developers to provide better experiences for their users.</p>
+ </item>
+ <item>
+ <title><link href="http://www.mozilla.com/">Mozilla</link></title>
+ <p>The free web engine, and a whole lot more. GNOME maintains
close ties to the Mozilla development team to provide an overall better
- user interface.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink url="http://www.openoffice.org/">OpenOffice.org</ulink></term>
- <listitem><para>The free office suite. GNOME works with the OpenOffice.org
+ user interface.</p>
+ </item>
+ <item>
+ <title><link href="http://www.openoffice.org/">OpenOffice.org</link></title>
+ <p>The free office suite. GNOME works with the OpenOffice.org
development team to help provide a more unified interface when using the
- free office suite on GNOME.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink url="http://www.fsf.org/">Free Software Foundation</ulink></term>
- <listitem><para>Freedom. Established in 1985, the Free Software
+ free office suite on GNOME.</p>
+ </item>
+ <item>
+ <title><link href="http://www.fsf.org/">Free Software Foundation</link></title>
+ <p>Freedom. Established in 1985, the Free Software
Foundation has worked to create a complete free operating systems,
giving its users the freedom to use, modify, and redistribute their
software. As part of the GNU project, GNOME aims to provide a fully
- free desktop environment.</para></listitem>
- </varlistentry>
- </variablelist>
+ free desktop environment.</p>
+ </item>
+ </terms>
</section>
-</chapter>
+</page>
diff --git a/platform-overview/C/ipc-network.page b/platform-overview/C/ipc-network.page
index 684ab6d..ccb902c 100644
--- a/platform-overview/C/ipc-network.page
+++ b/platform-overview/C/ipc-network.page
@@ -1,281 +1,298 @@
-<?xml version='1.0' encoding='utf-8'?><!-- -*- indent-tabs-mode: nil -*- -->
-
-<chapter id="ipc-network">
- <title>IPC and Networking</title>
+<page xmlns="http://projectmallard.org/1.0/"
+ type="topic" stlye="task"
+ id="ipc-network">
+
+<info>
+ <link type="guide" xref="index#what-is-gnome-platform"/>
+ <desc>IPC and Networking</desc>
+ <revision pkgversion="3.0" version="0.1" date="2011-03-18" status="incomplete"/>
+ <credit type="author">
+ <name>Shaun McCance</name>
+ <email>shaunm gnome org</email>
+ <years>2005-2011</years>
+ </credit>
+ <credit type="collaborator">
+ <name>Germán Póo-Caamaño</name>
+ <email>gpoo gnome org</email>
+ <years>2011</years>
+ </credit>
+</info>
+
+<title>IPC and Networking</title>
<section id="clipboard">
<title>Clipboards and Drag and Drop</title>
- <para>As users work with more and more types of data in different
+ <p>As users work with more and more types of data in different
applications, they have an increasing need to share objects and data
between their applications. GNOME supports two related methods for
transfering data between applications: using drag and drop operations,
and copying to and pasting from a system-wide clipboard. Both the
clipboard and drag and drop work across multiple applications,
- including those not developed with GNOME.</para>
+ including those not developed with GNOME.</p>
- <para>The clipboard is used when a user explicitly copies data in an
+ <p>The clipboard is used when a user explicitly copies data in an
application. The application then claims ownership of the clipboard.
When the user pastes the data into another application, that application
requests the clipboard data from the first application. Clipboard
- operations are fully supported in GTK+.</para>
+ operations are fully supported in GTK+.</p>
- <para>Drag and drop operations are similar, but they require the pointer
+ <p>Drag and drop operations are similar, but they require the pointer
to be tracked and updated as the user moves across potential drop targets.
When an application is notified a pointer is moving over it during an
active drag, it must update the cursor to indicate whether or not it can
accept the drop. GTK+ provides drag and drop support with a sophisticated
- API that makes it easy to manage drop targets in your applications.</para>
+ API that makes it easy to manage drop targets in your applications.</p>
- <para>Both the clipboard and drag and drop operations support content
+ <p>Both the clipboard and drag and drop operations support content
negotation. When an application has data to offer, it advertises which
formats are available for that data. Receiving applications can request
the most suitable formats. For instance, if a user copies text from a
web browser, a word processor can maintain formatting by requesting the
data in HTML, while a plain text editor can receive the text without
- formatting.</para>
+ formatting.</p>
- <para>You should provide clipboard and drag and drop functionality for
+ <p>You should provide clipboard and drag and drop functionality for
any data your application operates on. The clipboard and drag and drop
are useful for more than just text: files, graphics, and sound clips are
all examples of data that can be transferred between applications. When
you use GTK+, you automatically get clipboard and drag and drop support
for text areas, color buttons, file choosers, and other built-in user
interface controls. You should use the APIs in GTK+ to provide support
- for any other data in your application.</para>
-
- <para>For more information, see <ulink
- url="http://www.newplanetsoftware.com/xdnd/">Drag-and-Drop Protocol for
- the X Window System</ulink>, <ulink
- url="http://standards.freedesktop.org/clipboards-spec/clipboards-latest.txt">X
- Clipboard Explanation</ulink>, and <ulink
- url="http://freedesktop.org/wiki/ClipboardManager">The
- Clipboard Manager Specification</ulink>.</para>
+ for any other data in your application.</p>
+
+ <p>For more information, see <link
+ href="http://www.newplanetsoftware.com/xdnd/">Drag-and-Drop Protocol for
+ the X Window System</link>, <link
+ href="http://standards.freedesktop.org/clipboards-spec/clipboards-latest.txt">X
+ Clipboard Explanation</link>, and <link
+ href="http://freedesktop.org/wiki/ClipboardManager">The
+ Clipboard Manager Specification</link>.</p>
</section>
<section id="dbus">
<title>D-BUS Messaging</title>
- <para>D-Bus is a cross-desktop message bus for sending events between
+ <p>D-Bus is a cross-desktop message bus for sending events between
various applications, the desktop, and low-level components of the system.
D-Bus provides a simple API for sending messages to particular services
and for broadcasting messages to all interested services. D-Bus enables
different types of applications to communicate and integrate with each
other and with the desktop, providing better interaction and a richer
- experience for the user.</para>
+ experience for the user.</p>
- <para>D-Bus provides a session and a system bus. The session bus is
+ <p>D-Bus provides a session and a system bus. The session bus is
used by applications in a single user session, allowing them to share
data and event notifications and to integrate into the user's desktop.
For example, movie players can send a D-Bus message to prevent the
- screensaver from activating when the user is watching a movie.</para>
+ screensaver from activating when the user is watching a movie.</p>
- <para>The system bus is a single message bus which runs independently of
+ <p>The system bus is a single message bus which runs independently of
any user sessions. It can communicate with applications in any session,
enabling those applications to interact with system components without
dealing with low-level system details. The system bus is used to provide
important functionality that users expect to work on their systems. For
example, the system bus is used to monitor when network interfaces go up
or down, when external drives get plugged in, and when laptop batteries
- are low.</para>
+ are low.</p>
- <para>D-Bus is developed jointly on <ulink
- url="http://www.freedesktop.org/">freedesktop.org</ulink>, so you can
+ <p>D-Bus is developed jointly on <link
+ href="http://www.freedesktop.org/">freedesktop.org</link>, so you can
use it with different desktop environments and applications. Because
D-Bus is a cross-desktop project, you use it to create portable and
versatile software that seamlessly integrates with the user's desktop,
- regardless of which desktop it is.</para>
+ regardless of which desktop it is.</p>
- <para>For more information on D-Bus, see <ulink
- url="http://dbus.freedesktop.org/doc/dbus-tutorial.html">The D-BUS
- Tutorial</ulink> and <ulink
- url="http://dbus.freedesktop.org/doc/dbus-specification.html">The
- D-BUS Specification</ulink>.</para>
+ <p>For more information on D-Bus, see <link
+ href="http://dbus.freedesktop.org/doc/dbus-tutorial.html">The D-BUS
+ Tutorial</link> and <link
+ href="http://dbus.freedesktop.org/doc/dbus-specification.html">The
+ D-BUS Specification</link>.</p>
</section>
<section id="bonobo-corba">
<title>Bonobo and CORBA</title>
- <note><para>Note that Bonobo, libIDL and ORBit have been deprecated in
- favor of D-Bus and other technologies. See above.</para></note>
+ <note><p>Note that Bonobo, libIDL and ORBit have been deprecated in
+ favor of D-Bus and other technologies. See above.</p></note>
- <para>Bonobo is a framework for creating reusable components for use
+ <p>Bonobo is a framework for creating reusable components for use
in applications. Built on top of the industry-standard Common Object
Request Broker Architecture (CORBA), Bonobo provides all the common
interfaces needed to create and use well-behaved components in GNOME
- applications.</para>
+ applications.</p>
- <para>Bonobo components can be used in a variety of situations, and can
+ <p>Bonobo components can be used in a variety of situations, and can
help create flexible and extensible software. For example, a component
to display multimedia content could be embedded inside a word processor,
effectively adding multimedia support to the word processor without the
word processor working directly with it. Bonobo components are also used
to embed the applets in the GNOME panel. Using Bonobo enables the applets
to communicate effectively with the panel, affording users a consistent
- interface.</para>
+ interface.</p>
- <para>Bonobo components are not limited to graphical controls. Bonobo was
+ <p>Bonobo components are not limited to graphical controls. Bonobo was
used by Evolution, GNOME's email and groupware suite, to provide access
to users' addressbook and calendar. This allows users to keep all their
- information in one place, where all applications can access it.</para>
+ information in one place, where all applications can access it.</p>
- <para>Bonobo is built off of CORBA, allowing components to run in seperate
+ <p>Bonobo is built off of CORBA, allowing components to run in seperate
processes. Components can be written in different languages and run on top
of different runtimes; they need only adhere to an interface specified with
the Interface Definition Language (IDL). CORBA's flexible design even allows
- components to run on seperate machines over a network.</para>
+ components to run on seperate machines over a network.</p>
- <para>GNOME provides its own fast and lightweight CORBA implementation with
+ <p>GNOME provides its own fast and lightweight CORBA implementation with
ORBit. The tools and libraries supplied with GNOME even allow components
to be written effectively in C, a language often excluded by other CORBA
- implementations. ORBit is an incredibly fast CORBA implementation.</para>
+ implementations. ORBit is an incredibly fast CORBA implementation.</p>
- <para>Bonobo helps fill the gaps in CORBA, providing the additional
+ <p>Bonobo helps fill the gaps in CORBA, providing the additional
interfaces and specifications needed to support consistent components.
Although you will rarely need to use CORBA without Bonobo, it can be
used directly. For instance, GNOME's accessibility infastructure uses
CORBA to allow assistive tools to inspect and interact with running
- applications.</para>
+ applications.</p>
- <para>You may wish to use Bonobo to provide complex graphical components
+ <p>You may wish to use Bonobo to provide complex graphical components
that can be embedded into applications. For most IPC needs, however,
GNOME is moving towards D-Bus, as integrating D-Bus into applications
- is considerably easier.</para>
-
- <para>For more information on Bonobo, see the <ulink
- url="http://library.gnome.org/devel/libbonobo/stable/">Libbonobo
- Reference Manual</ulink> and the <ulink
- url="http://library.gnome.org/devel/libbonoboui/stable/">LibbonoboUI
- Reference Manual</ulink>. For information on ORBit, GNOME's
- CORBA implementation, see the <ulink
- url="http://library.gnome.org/devel/ORBit2/stable/">ORBit2
- Reference Manual</ulink>.</para>
+ is considerably easier.</p>
+
+ <p>For more information on Bonobo, see the <link
+ href="http://library.gnome.org/devel/libbonobo/stable/">Libbonobo
+ Reference Manual</link> and the <link
+ href="http://library.gnome.org/devel/libbonoboui/stable/">LibbonoboUI
+ Reference Manual</link>. For information on ORBit, GNOME's
+ CORBA implementation, see the <link
+ href="http://library.gnome.org/devel/ORBit2/stable/">ORBit2
+ Reference Manual</link>.</p>
</section>
<section id="dns-sd">
<title>Service Discovery</title>
- <para>DNS Service Discovery, or Zeroconf, is a technology for automatically
+ <p>DNS Service Discovery, or Zeroconf, is a technology for automatically
locating available services on a network. Zeroconf allows users to access
network resources without having to provide explicit addresses or configure
- their applications manually.</para>
+ their applications manually.</p>
- <para>DNS Service Discovery is already used in numerous places throughout
+ <p>DNS Service Discovery is already used in numerous places throughout
GNOME, and further support will be added in the future. For example,
- <application>Nautilus</application>, the GNOME file manager, uses DNS
+ <app>Nautilus</app>, the GNOME file manager, uses DNS
Service Discovery to locate various file servers on the local network.
- <application>Ekiga</application>, the videoconferencing and telephony
+ <app>Ekiga</app>, the videoconferencing and telephony
application in GNOME, can locate and publish the user's presence and
- locate other users on a local network using DNS Service Discovery.</para>
+ locate other users on a local network using DNS Service Discovery.</p>
- <para>Full DNS Service Discovery support is provided by the Avahi library.
- For more information on Avahi, visit <ulink url="http://avahi.org/">the
- Avahi web site</ulink>.</para>
+ <p>Full DNS Service Discovery support is provided by the Avahi library.
+ For more information on Avahi, visit <link href="http://avahi.org/">the
+ Avahi web site</link>.</p>
</section>
<section id="xml-web-services">
<title>XML and Web Services</title>
- <para>In our increasingly inter-connected world, more and more applications
+ <p>In our increasingly inter-connected world, more and more applications
need to provide support for various web services. Sometimes web services
simply provide added functionality, while other times they are the core
purpose of the application. Even applications that have been providing
a standalone user experience for years have found innovative new uses for
- web services.</para>
+ web services.</p>
- <para>The GNOME Platform provides support for using web services from
+ <p>The GNOME Platform provides support for using web services from
within your application, as well as comprehensive libraries for consuming,
- managing, and transforming XML, the language of the web.</para>
+ managing, and transforming XML, the language of the web.</p>
<section id="libsoup">
<title>SOAP</title>
- <para>With the libsoup library, GNOME provides support for the SOAP,
+ <p>With the libsoup library, GNOME provides support for the SOAP,
a widely-used protocol for passing XML messages over HTTP. SOAP allows
developers to expose an interface over the web, which can then be used
by applications to retrieve information, send data, make transactions,
- or use any number of other services provided.</para>
+ or use any number of other services provided.</p>
- <para>SOAP can be used to search and retrieve information, to interact
+ <p>SOAP can be used to search and retrieve information, to interact
with an online store, to manage users' accounts on other systems, or for
many other purposes. Web services are being used more and more to provide
essential functionality for users, and applications using SOAP can provide
- a more integrated and featureful user experience.</para>
+ a more integrated and featureful user experience.</p>
- <para>The libsoup library contains an HTTP implementation and a set of
+ <p>The libsoup library contains an HTTP implementation and a set of
API for constructing and consuming SOAP messages. It also allows for
secure authentication, so you can use web services to access private
accounts over a secure connection. Using libsoup makes it easy to use
web services without manually parsing and interpreting the messages
- sent through SOAP.</para>
+ sent through SOAP.</p>
- <para>For more information on libsoup, see the <ulink
- url="http://library.gnome.org/devel/libsoup/stable/">libsoup
- Reference Manual</ulink>.</para>
+ <p>For more information on libsoup, see the <link
+ href="http://library.gnome.org/devel/libsoup/stable/">libsoup
+ Reference Manual</link>.</p>
</section>
<section id="libxml2">
<title>XML Processing</title>
- <para>Since its formal introduction in 1998, XML (eXtensible Markup
+ <p>Since its formal introduction in 1998, XML (eXtensible Markup
Langauge) has been used in increasingly more applications. It is used
for a wide variety of purposes, from document formats like XHMTL and
DocBook to internet protocols like SOAP and Jabber. XML provides a
clean and simple base syntax, allowing applications to focus on their
- particular needs.</para>
+ particular needs.</p>
- <para>GNOME ships with the libxml2 library, and uses it extensively
+ <p>GNOME ships with the libxml2 library, and uses it extensively
throughout the desktop. The libxml2 library is a fast and fully
standards-compliant XML processing library, providing everything you
- need to use XML in your application.</para>
+ need to use XML in your application.</p>
- <para>The libxml2 library provides a number of different APIs for
+ <p>The libxml2 library provides a number of different APIs for
working with XML, so you can use whatever best suits your application
development needs. In addition to a native tree API, libxml2 also
provides the callback-based SAX2 API, streaming XML reader and writer
- interfaces, and complete support for XPath.</para>
+ interfaces, and complete support for XPath.</p>
- <para>In addition to DTD support, libxml2 also provides full support
+ <p>In addition to DTD support, libxml2 also provides full support
for validing documents using RELAX NG, which allows a more flexible
validation model while remaining simple to use. There is also partial
- support for XML Schema, the new schema language produced by W3C.</para>
+ support for XML Schema, the new schema language produced by W3C.</p>
- <para>You should use libxml2 whenever you need to work directly with
+ <p>You should use libxml2 whenever you need to work directly with
XML in your application. Using libxml2 ensures that you have fully
standards-compliant parsing, processing, and XML output. This means
developers can stop worrying about incompatibilities between
- applications.</para>
+ applications.</p>
- <para>For more information on libxml2, see <ulink
- url="http://xmlsoft.org/tutorial/index.html">The Libxml Tutorial</ulink>
- and <ulink url="http://xmlsoft.org/html/libxml-lib.html">The Reference
- Manual for libxml2</ulink>.</para>
+ <p>For more information on libxml2, see <link
+ href="http://xmlsoft.org/tutorial/index.html">The Libxml Tutorial</link>
+ and <link href="http://xmlsoft.org/html/libxml-lib.html">The Reference
+ Manual for libxml2</link>.</p>
</section>
<section id="libxslt">
<title>Transforming XML with XSLT</title>
- <para>XSLT is an XML-based language for transforming XML into other
+ <p>XSLT is an XML-based language for transforming XML into other
formats. XSLT is a template-based language, allowing you to match
particular types of XML elements and create output accordingly.
Based on XML and XPath, XSLT enables developers to create clean and
modularized templates to convert an XML dialect into another format
- more suitable for the application.</para>
+ more suitable for the application.</p>
- <para>GNOME ships with the libxslt library, a complete implementation of
+ <p>GNOME ships with the libxslt library, a complete implementation of
XSLT. The libxslt library is built on top of the XML and XPath support
- in libxml2, allowing it to be fast and fully standards-compliant.</para>
+ in libxml2, allowing it to be fast and fully standards-compliant.</p>
- <para>You should use libxslt if you need to transform XML documents.
+ <p>You should use libxslt if you need to transform XML documents.
Although XSLT is not always the right solution for XML processing, it
can often simplify development. Since libxslt allows you to add extension
elements and extension functions, you can customize it to fit your
- application.</para>
+ application.</p>
- <para>For more information on libxslt, see <ulink
- url="http://xmlsoft.org/XSLT/html/index.html">The XSLT C library for
- Gnome</ulink>.</para>
+ <p>For more information on libxslt, see <link
+ href="http://xmlsoft.org/XSLT/html/index.html">The XSLT C library for
+ Gnome</link>.</p>
</section>
</section>
-</chapter>
+</page>
diff --git a/platform-overview/C/platform.page b/platform-overview/C/platform.page
index 75b7051..fa40a2b 100644
--- a/platform-overview/C/platform.page
+++ b/platform-overview/C/platform.page
@@ -1,103 +1,125 @@
-<?xml version='1.0' encoding='utf-8'?><!-- -*- indent-tabs-mode: nil -*- -->
-
-<chapter id="platform">
- <title>Platform Overview</title>
-
- <para>The GNOME platform provides a comprehensive development environment
+<page xmlns="http://projectmallard.org/1.0/"
+ type="topic" stlye="task"
+ id="platform">
+
+<info>
+ <link type="guide" xref="index#what-is-gnome-platform"/>
+ <link type="seealso" xref="core-tech"/>
+ <link type="seealso" xref="desktop-tech"/>
+ <link type="seealso" xref="ipc-network"/>
+ <desc>Platform Overview</desc>
+ <revision pkgversion="3.0" version="0.1" date="2011-03-18" status="incomplete"/>
+ <credit type="author">
+ <name>Shaun McCance</name>
+ <email>shaunm gnome org</email>
+ <years>2005-2011</years>
+ </credit>
+ <credit type="collaborator">
+ <name>Germán Póo-Caamaño</name>
+ <email>gpoo gnome org</email>
+ <years>2011</years>
+ </credit>
+</info>
+
+<title>Platform Overview</title>
+
+ <p>The GNOME platform provides a comprehensive development environment
for graphical applications and other software. Using the technologies in
GNOME, you can create high-quality software to meet and exceed your users'
expectations. This chapter provides a very brief overview of the components
- that are discussed in this document.</para>
+ that are discussed in this document.</p>
<section id="platform-core">
<title>Core Technologies</title>
- <para>GNOME provides a number of libraries for constructing attractive
+ <p>GNOME provides a number of libraries for constructing attractive
graphical interfaces. It provides libraries for displaying and manipulating
common user interface controls, for laying out and rendering text from most
of the world's writing systems, and for drawing sophisticated vector
graphics to the screen. The graphical technologies in GNOME are outlined
- in <xref linkend="graphics"/>.</para>
+ in <link xref="core-tech#graphics"/>.</p>
- <para>The GIO library in GLib, together with the GVFS backend, provides
+ <p>The GIO library in GLib, together with the GVFS backend, provides
a file system abstraction that allows users to work with files on remote
servers as well as the local file systems. GIO provides a high-level API
for file operations, making development fast and easy. Using GIO will
allow your application to support remote files and folders automatically.
- GIO and GVFS are discussed in <xref linkend="gio"/>.</para>
+ GIO and GVFS are discussed in <link xref="core-tech#gio"/>.</p>
- <para>GNOME provides the GConf library and daemon for storing and retrieving
+ <p>GNOME provides the GConf library and daemon for storing and retrieving
user preferences. GConf has a simple API that makes it easy to provide
instant-apply preferences in your application. Using GConf also allows
administrators to provide default and mandatory application settings for
- their users. GConf is discussed in <xref linkend="gconf"/>.</para>
+ their users. GConf is discussed in <link xref="core-tech#gconf"/>.</p>
- <para>GNOME provides facilities for internationalization and accessibility,
+ <p>GNOME provides facilities for internationalization and accessibility,
helping you reach the largest possible number of potential users. Much of
the internationalization and accessibility support is built right in, but
there are many issues you should be aware of when developing applications.
- Internationalization is discussed in <xref linkend="i18n"/>. Accessibility
- is discussed in <xref linkend="a11y"/>.</para>
+ Internationalization is discussed in <link xref="core-tech#i18n"/>. Accessibility
+ is discussed in <link xref="core-tech#a11y"/>.</p>
- <para>GNOME ships with GStreamer, an extremely powerful multimedia framework
+ <p>GNOME ships with GStreamer, an extremely powerful multimedia framework
for creating, editing, and playing audio and video content. GStreamer is
- discussed in <xref linkend="multimedia"/>.</para>
+ discussed in <link xref="core-tech#multimedia"/>.</p>
- <para>GNOME also provides a complete print framework which leverages
+ <p>GNOME also provides a complete print framework which leverages
CUPS whenever possible. The print framework in GNOME allows you to
provide a consistent interface to high-quality printing. The print
- framework is discussed in <xref linkend="printing"/>.</para>
+ framework is discussed in <link xref="core-tech#printing"/>.</p>
</section>
<section id="platform-ipc">
<title>IPC and Networking</title>
- <para>The GNOME desktop has full support for transferring data using the
+ <p>The GNOME desktop has full support for transferring data using the
clipboard or with drag and drop. The APIs in GTK+ can help you create
applications that interoperate well with the rest of the desktop. Clipboard
- and drag and drop functionality are discussed in <xref
- linkend="clipboard"/>.</para>
+ and drag and drop functionality are discussed in
+ <link xref="ipc-network#clipboard"/>.</p>
- <para>With <ulink url="http://www.freedesktop.org/">freedesktop.org</ulink>,
+ <p>With <link href="http://www.freedesktop.org/">freedesktop.org</link>,
GNOME provides the D-Bus messaging system. D-Bus is a cross-desktop message
bus which allows all types of applications to communicate with one another.
- D-Bus is discussed in <xref linkend="dbus"/>.</para>
+ D-Bus is discussed in <link xref="ipc-network#dbus"/>.</p>
- <para>GNOME features the Bonobo component system, built on top of CORBA.
+ <p>GNOME features the Bonobo component system, built on top of CORBA.
Bonobo allows programmers to create complex embeddable components which
can be reused inside other programs. Note that Bonobo has been deprecated.
Newly written code should use D-Bus and other technologies instead. Bonobo
- is discussed in <xref linkend="bonobo-corba"/>.</para>
+ is discussed in <link xref="ipc-network#bonobo-corba"/>.</p>
- <para>To make networks more manageable for users, GNOME supports DNS
+ <p>To make networks more manageable for users, GNOME supports DNS
Service Discovery. DNS Service Discovery enables applications to find
services automatically on a local network, rather than requiring users
to provide network addresses. DNS Service Discovery is discussed in
- <xref linkend="dns-sd"/>.</para>
+ <link xref="ipc-network#dns-sd"/>.</p>
- <para>Finally, GNOME provides a number of libraries for working with XML
+ <p>Finally, GNOME provides a number of libraries for working with XML
and web services. These technologies are becoming increasingly important
- to application developers. XML and web services are discussed in <xref
- linkend="xml-web-services"/>.</para>
+ to application developers. XML and web services are discussed in
+ <link xref="ipc-network#xml-web-services"/>.</p>
</section>
<section id="platform-desktop">
<title>Desktop Technologies</title>
- <para>The GNOME desktop features numerous places where applications can
+ <p>The GNOME desktop features numerous places where applications can
provide better integration, such as providing panel applets or plugins
- for the file manager. Many of these features are discussed in <xref
- linkend="desktop-tech"/>.</para>
+ for the file manager. Many of these features are discussed in
+ <link xref="desktop-tech"/>.</p>
- <para>GNOME provides comprehensive Human Interface Guidelines to help
+ <p>GNOME provides comprehensive Human Interface Guidelines to help
you create more usable applications. GNOME's usability standards were
a first among free desktop environments, and they continue to improve
through GNOME's commitment to a better user experience. Usability is
- discussed in <xref linkend="usability"/>.</para>
+ discussed in <link xref="desktop-tech#usability"/>.</p>
- <para>GNOME also provides a complete help system, as well as style
+ <p>GNOME also provides a complete help system, as well as style
guidelines for writing documentation. Though often under-appreciated,
good user help can significantly improve your software. Documentation
- is discussed in <xref linkend="documentation"/>.</para>
+ is discussed in <link xref="desktop-tech#documentation"/>.</p>
</section>
-</chapter>
+
+</page>
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]