PacktLib: GNOME 3 Application Development Beginner's Guide

GNOME 3 Application Development Beginner's Guide

Credits

About the Author

About the Reviewers

www.PacktPub.com

Preface

Installing GNOME 3 and SDK

System requirements

GNOME 3 desktop architecture

GNOME and the SDK

Time for action – installing GNOME and SDK in Fedora 17

Time for action – installing GNOME and SDK in openSUSE 12

Time for action – installing GNOME and SDK in Debian Testing

Time for action – installing GNOME and SDK in Ubuntu 12.04

Summary

Preparing Our Weapons

Firing up Anjuta

Time for action – creating a new Vala project

Navigation between tabs

Time for action – navigating between tabs

Comment block

Time for action – commenting/uncommenting a block

Time for action – running the program for the first time

Editing UI

Time for action – editing UI

Time for action – adding a label and a button

Time for action – changing widget properties

A responsive button

Time for action – making the button responsive

Tracking symbols

Time for action – finding a symbol

Getting help

Summary

Programming Languages

Programming GNOME with JavaScript

Time for action – saying hello to Seed

Time for action – running our program with Seed

Time for action – playing with data types

Time for action – controlling Iteration

Time for action – manipulating an array

Time for action – using the JavaScript object

Time for action – playing with constructors

Time for action – adding prototypes

Time for action – modifying the prototype of an object

Time for action – modularizing our program

Getting to know Vala

Time for action – entry point to our program

Time for action – defining member access

Time for action – experiment with data types

Time for action – adding the Gee library

Time for action – Gee in action

Time for action – watching for signals

Summary

Using GNOME Core Libraries

Before we start

The GLib main loop

Time for action – playing with the GLib main loop

GObject signals

Time for action – handling GObject signals

GLib properties

Time for action – accessing properties

Configuration files

Time for action – reading configuration files

GIO, the input/output library

Time for action – accessing files

Network access with GIO

Time for action – accessing a network

Understanding GSettings

Time for action – learning GSettings

GSettings API

Time for action – accessing GSettings programmatically

Summary

Building Graphical User Interface Applications

Before we start

Creating a basic GTK+ application

Time for action – implementing the mockup

Time for action – adding icons to the buttons

Porting the code without GtkBuilder

Time for action – programming with raw GTK+

GUI programming with Clutter

Time for action – implementing the mockup with Clutter

Summary

Creating Widgets

Before we take off

Overriding the widget's standard functions

Time for action – overriding the set_title function

Adding new functionalities

Time for action – making a composite widget

Maintaining compatibility

Implementing a GTK+ custom widget

Time for action – implementing the custom widget

Maintaining widgets in a library

Time for action – creating a library

Summary

Having Fun with Multimedia

Packages required

Understanding the basic concept of GStreamer

Accessing the GStreamer pipeline with the command line

Time for action – testing the pipeline

Time for action – programmatically playing the audio

Time for action – handling the events

Playing a video media

Time for action – playing video

Time for action – programmatically playing the video

Summary

Playing with Data

Presenting data with TreeView

Time for action – using TreeView

The Evolution Data Server (EDS) architecture

Time for action – setting up the address book and the calendar data source

Time for action – accessing the address book

Have a go hero – saving data to the address book

Summary

Deploying HTML5 Applications with GNOME

Before we start

Embedding WebKit

Time for action – embedding WebKit

Runtime with JavaScriptCore

Time for action – calling the Vala object from the frontend

Time for action – connecting GNOME with client-side JavaScript

Summary

Desktop Integration

Talking to each other with D-Bus

Time for action – listening to D-Bus

The GNOME session manager

Time for action – talking to the session manager

Launcher

Time for action – putting our application in the launcher

GNOME keyring

Time for action – storing passwords securely

Notification system

Time for action – sending notifications

Summary

Making Our Applications Go International

Understanding locale

Time for action – getting the available locales

Time for action – adding a locale

Time for action – getting different outputs with different locales

i18n in a Vala project

Time for action – bootstrapping the infrastructure

Time for action – creating a UI

Time for action – translating UI texts

The localization process

Summary

Quality Made Easy

Reasons for performing unit testing

Time for action – creating our first unit test

Time for action – creating stubs

Testing GUI modules

Time for action – testing a GTK+ module

Summary

Exciting Projects

Part I – web browser

Time for action – designing our UI

Time for action – preparing the build infrastructure

Time for action – finishing up

Part II – A Twitter client

Time for action – implementing the Twitter client

Summary

Pop Quiz Answers

Pop Quiz Answers

Pop Quiz Answers

Pop Quiz Answers

Pop Quiz Answers

Pop Quiz Answers

Index