
GNOME Developer Documentation Brent Smith GNOME Developer Documentation GNOME Developer Documentation by Brent Smith This is 2.13.0 version of this document. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later revision published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found here. Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and those trademarks are made aware to the members of the GNOME Documentation Project, the names have been printed in caps or initial caps. Dedication Dedication This book is dedicated to the community that makes great free software like GNOME possible. i GNOME Developer Documentation Table of Contents Foreward ................................................................................................................. iv 1. What is GNOME? ................................................................................................. 5 The History of the GNOME Desktop .................................................................... 5 What defines the GNOME Desktop? .................................................................... 6 GNOME Application Requirements ...................................................................... 7 The Software “Stack” ........................................................................................ 7 2. Getting Started Developing for GNOME .................................................................... 9 Requirements ................................................................................................... 9 First Application ............................................................................................... 9 Using Callback Functions ................................................................................... 10 3. Using Glade to Design User Interfaces ...................................................................... 11 Designing with glade-2 ...................................................................................... 11 Using libglade2 to Parse Glade Files .................................................................... 11 A. GNOME Platform ................................................................................................. 12 GNOME Developer Platform .............................................................................. 12 GNOME Desktop .............................................................................................. 14 GNOME Platform Bindings ................................................................................ 18 B. Building and Installing the GNOME platform ............................................................. 20 Using GARNOME ............................................................................................ 20 Using Jhbuild ................................................................................................... 20 ii GNOME Developer Documentation List of Tables A.1. Libraries and Applications in the GNOME Developer Platform ................................... 12 A.2. Libraries and Applications in the GNOME Desktop .................................................. 14 A.3. Bindings for C++ ............................................................................................... 18 A.4. Bindings for Java ............................................................................................... 18 A.5. Bindings for Perl ................................................................................................ 19 A.6. Bindings for Python ............................................................................................ 19 iii Foreward Foreward This document is meant as an introduction to the GNOME Desktop and Platform for new developers. The goals of the book are to help the reader understand the GNOME platform and guide them through the development of a full fledged application. It intends to be a complete reference for all required components of a GNOME application, including HIG compliance, internationalization, help document support, MIME support, etc. iv Chapter 1. What is GNOME? GNOME is known to as a desktop environment for UNIX/Linux operating systems. It strives to be a simple to use graphical environment with sane defaults. It is completely free and open source, developed by hundreds of people around the world. It has seen amazing growth and had been adapted as a platform by many companies including Sun Microsystems, Novell, IBM and others. GNOME is also a community of users and developers who design, code, translate, QA and have fun together. If you are interested in joining a thriving community of developers, then GNOME just might be for you. For more information about The History of the GNOME Desktop GNOME was born out of the desire for a completely free desktop environment that was not encumbered by restrictive licensing schemes. During its infancy, there were other efforts at creating a desktop environment (namely KDE), however these efforts were based on a library whose licensing scheme was, at the time, not compatible with the ideals of free software. There are other reasons that GNOME was born, although none of them quite as important as the licensing reasons. GNOME sought to attack some of the stagnation that was happening in UNIX by fostering the concepts of code reuse and code sharing. Innovation was slowed by the fact that code was not allowed to be modified and redistributed freely. Therefore, it was decided that GNOME should be developed from a shared code base. GNOME also recognized that people used computers to simplify their lives by automating daily tasks and have fun, and therefore sought to make a desktop environment that was easy and provided sensible defaults. GNOME's early years were spent at the Red Hat Advanced Development Labs where it was worked on by a handful of developers. The first official version was released in March 1999, but adoption was slow due to instability issues. A much improved version was released in October 1999 which proved to be a much greater success and enjoyed wide deployment. Two companies were founded around developing different aspects of the GNOME desktop. Eazel was founded in 1999 and worked heavily on the nautilus file manager. Helix Code was also founded and involved in many of the infrastructural aspects of the developer platform as well the now popular Evolution mail client. Involvement from industry grew even further after the announcement of the GNOME Foundation at the Linux World Expo in August of 2000. Sun Microsystems adopted the platform as well other companies such as HP and IBM. Sun Microsystems proceeded to be very generous in their feedback in terms of the accessibility and documentation aspects of the GNOME platform. GNOME 2.0, the first in the GNOME 2.X series, was the result of a tremendous amount of work yielding a new version of the GTK+ widget set. GTK+ 2.0 was the culmination of three years of work integrating and improving the technology that was present in GTK+ 1.4. The GObject framework was added into glib which allowed for bindings to nearly any programming language. Full support for unicode and internationalized text through Pango was integrated. New widgets were introduced and a port to of GDK 1 to Microsoft Windows™ was added. From the GTK+ 2.0 release announcement itself: The huge feature set of GTK+ 2.0 more than doubles the size of GTK+ 1.2, moving from 230,000 lines of code to 620,000 lines of code. Over the last three years a line of code was added to GTK+ every 5 minutes. Nonetheless a statically-linked version of gtk-demo can still fit on a 1.4M floppy disk. 1GDK is the drawing abstraction library used by GTK+ 5 Chapter 1. What is GNOME? What defines the GNOME Desktop? —GTK+ Development Team The most obvious change being a new, attractive look to the widget set as well as support for anti-aliased text, it was clear that a new version of GNOME was required to take advantage of these features. GNOME 2.0 was released a few months after GTK+ on June 26th, 2002. It was extremely well received and many distributions shipped it in their next release. Today, the stable version of the GNOME Desktop is 2.12 while the development series is 2.13. Many changes have been made since the initial release of GNOME, such as the recent addition of the Cairo library to the software stack. Since it is often hard to distinguish the new features present in each version of the desktop, a summary of changes can be found in the release notes at http://live.gnome.org/ReleaseNotes What defines the GNOME Desktop? GNOME is... Free GNOME is free software and part of the GNU project, dedicated to giving users and developers the ultimate level of control over their desktops, their software, and their data. Usable GNOME understands that usability is about creating software that is easy for everyone to use, not about piling on features. GNOME's community of professional and volunteer usability experts have created Free Software's first and only Human Interface Guidelines, and all core GNOME software is adopting these principles. Find out more about GNOME and usability at the GNOME Usability Project. Accessible Free Software is about enabling software freedom for everyone, including users and developers with disabilities. GNOME's
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages24 Page
-
File Size-