Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
GNOME 3 Application Development Beginner's Guide
Table of Contents
GNOME 3 Application Development Beginner's Guide
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Time for action – heading
What just happened?
Pop quiz – heading
Have a go hero – heading
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Installing GNOME 3 and SDK
System requirements
The GNOME Shell
GNOME Panel/Fallback
Development requirements
GNOME 3 desktop architecture
GNOME and the SDK
Time for action – installing GNOME and SDK in Fedora 17
What just happened?
Marking packages to be installed
Ready to install the packages
Time for action – installing GNOME and SDK in openSUSE 12
What just happened?
Marking SDK packages
Starting the installation
Time for action – installing GNOME and SDK in Debian Testing
What just happened?
Marking SDK packages
Applying the installation
Time for action – installing GNOME and SDK in Ubuntu 12.04
What just happened?
Continue installing the SDK
Summary
2. Preparing Our Weapons
Firing up Anjuta
Time for action – creating a new Vala project
What just happened?
The IDE layout
Bookmarks
Files
Project
Symbols
Watches
Breakpoints
Messages
Terminal
Navigation between tabs
Time for action – navigating between tabs
What just happened?
Comment block
Time for action – commenting/uncommenting a block
What just happened?
Have a go hero – uncommenting the block
Time for action – running the program for the first time
What just happened?
Make an error and see how it works
Editing UI
Time for action – editing UI
What just happened?
Palette
Widgets
Time for action – adding a label and a button
What just happened?
Time for action – changing widget properties
A responsive button
Time for action – making the button responsive
What just happened?
Pop quiz – naming a signal
Tracking symbols
Time for action – finding a symbol
Getting help
Summary
3. Programming Languages
Programming GNOME with JavaScript
Time for action – saying hello to Seed
What just happened?
Have a go hero – trying more JavaScript code here
Time for action – running our program with Seed
What just happened?
Loosely typed language
Time for action – playing with data types
What just happened?
Pop quiz – what is the value now?
Controlling iteration
Time for action – controlling Iteration
What just happened?
Have a go hero – counting down
Time for action – manipulating an array
What just happened?
Have a go hero – fill with anything you want
Object-oriented programming (OOP) with JavaScript
Time for action – using the JavaScript object
What just happened?
With great power comes great responsibility
Have a go hero – another way to fill the object
Constructing objects
Time for action – playing with constructors
What just happened?
Class and object
Pop quiz – can you see the difference now?
Using prototypes
Time for action – adding prototypes
What just happened?
Have a go hero – adding more methods
Time for action – modifying the prototype of an object
What just happened?
Pop quiz – how to make it global then?
Have a go hero – changing the implementation details
Modularization
Time for action – modularizing our program
What just happened?
Getting to know Vala
Time for action – entry point to our program
What just happened?
Have a go hero – look at the generated C code
Member access specifier
Time for action – defining member access
What just happened?
The access specifiers
Pop quiz – how to fix this?
Basic data types
Time for action – experiment with data types
What just happened?
Gee, what is it?
Time for action – adding the Gee library
What just happened?
Time for action – Gee in action
What just happened?
Initializing members when declaring
Time for action – watching for signals
What just happened?
Have a go hero – putting parameters in signals
Summary
4. Using GNOME Core Libraries
Before we start
The GLib main loop
Time for action – playing with the GLib main loop
What just happened?
Have a go hero – stopping the timeout
GObject signals
Time for action – handling GObject signals
What just happened?
Have a go hero – writing it in Vala
GLib properties
Time for action – accessing properties
What just happened?
Pop quiz – why the value of zero is printed out
Have a go hero – making a property read-only
Configuration files
Time for action – reading configuration files
What just happened?
Have a go hero – multi-section configuration
GIO, the input/output library
Time for action – accessing files
What just happened?
Network access with GIO
Time for action – accessing a network
What just happened?
Have a go hero – making an echo server
Understanding GSettings
Time for action – learning GSettings
What just happened?
GSettings API
Time for action – accessing GSettings programmatically
What just happened?
Summary
5. Building Graphical User Interface Applications
Before we start
Creating a basic GTK+ application
Time for action – implementing the mockup
What just happened?
Pop quiz
Have a go hero – creating a Vala version
Time for action – adding icons to the buttons
What just happened?
Have a go hero – adjusting the icon placement
Porting the code without GtkBuilder
Time for action – programming with raw GTK+
What just happened?
GUI programming with Clutter
Time for action – implementing the mockup with Clutter
What just happened?
Have a go hero – playing with the animations
Summary
6. Creating Widgets
Before we take off
Overriding the widget's standard functions
Time for action – overriding the set_title function
What just happened?
Adding new functionalities
Time for action – making a composite widget
What just happened?
Maintaining compatibility
Have a go hero – hiding the entry after use
Implementing a GTK+ custom widget
Time for action – implementing the custom widget
What just happened?
Maintaining widgets in a library
Time for action – creating a library
What just happened?
Summary
7. 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
What just happened?
Time for action – programmatically playing the audio
What just happened?
Time for action – handling the events
What just happened?
Playing a video media
Time for action – playing video
What just happened?
Have a go hero – defining the audio first
Time for action – programmatically playing the video
What just happened?
Summary
8. Playing with Data
Presenting data with TreeView
Time for action – using TreeView
What just happened?
The Evolution Data Server (EDS) architecture
Time for action – setting up the address book and the calendar data source
What just happened?
Time for action – accessing the address book
What just happened?
Have a go hero – saving data to the address book
Summary
9. Deploying HTML5 Applications with GNOME
Before we start
Embedding WebKit
Time for action – embedding WebKit
What just happened?
Runtime with JavaScriptCore
Time for action – calling the Vala object from the frontend
What just happened?
Have a go hero – using a separate HTML file
Time for action – connecting GNOME with client-side JavaScript
What just happened?
Have a go hero – where to put index.html
Summary
10. Desktop Integration
Talking to each other with D-Bus
Time for action – listening to D-Bus
What just happened?
Pop quiz – a good example application?
The GNOME session manager
Time for action – talking to the session manager
What just happened?
Have a go hero – checking all nulls
Launcher
Time for action – putting our application in the launcher
What just happened?
GNOME keyring
Time for action – storing passwords securely
What just happened?
Notification system
Time for action – sending notifications
What just happened?
Have a go hero – displaying an icon
Summary
11. Making Our Applications Go International
Understanding locale
Time for action – getting the available locales
What just happened?
Have a go hero – exploring the locale parameters
Time for action – adding a locale
What just happened?
Time for action – getting different outputs with different locales
What just happened?
Have a go hero – using a bogus local identifier
i18n in a Vala project
Time for action – bootstrapping the infrastructure
What just happened?
Time for action – creating a UI
What just happened?
Time for action – translating UI texts
What just happened?
Have a go hero – installing another locale
The localization process
Summary
12. Quality Made Easy
Reasons for performing unit testing
Time for action – creating our first unit test
What just happened?
Have a go hero – checking the actual value
Stubbing our tests
Time for action – creating stubs
What just happened?
Testing GUI modules
Time for action – testing a GTK+ module
What just happened?
Have a go hero – adding missing tests
Summary
13. Exciting Projects
Part I – web browser
Time for action – designing our UI
What just happened?
Browser interaction
Time for action – preparing the build infrastructure
What just happened?
Time for action – finishing up
What just happened?
Have a go hero – creating more tests
Part II – A Twitter client
Time for action – implementing the Twitter client
What just happened?
Summary
A. Pop Quiz Answers
Chapter 2, Preparing Our Weapons
Pop quiz – naming a signal
Chapter 3, Programming Languages
Pop quiz – how to fix this?
Pop quiz – what is the value now?
Pop quiz – can you see the difference now?
Pop quiz – how to make it global
Chapter 4, Using GNOME Core Libraries
Pop quiz – why the value of zero is printed out
Chapter 5, Building Graphical User Interface Applications
Pop quiz
Chapter 10, Desktop Integration
Pop quiz – a good example application
Index
← Prev
Back
Next →
← Prev
Back
Next →