Home arrow PHP arrow Building Your Own System Tray Application Using PHP-GTK

Building Your Own System Tray Application Using PHP-GTK

You have seen how easy it is to write your own desktop applications using PHP-GTK in the article “Building Your Own Desktop Notepad Application Using PHP-GTK.” Once you have learned how to write desktop applications using PHP-GTK, you will be pleased to know that writing system tray applications is just a matter of adding a couple of lines of code. The bulk of your code remains exactly the same!

  1. Building Your Own System Tray Application Using PHP-GTK
  2. Set up the main application
  3. Second example of GtkStatusIcon
  4. Display a popup menu
  5. Popup menu on right mouse click
  6. A note about subclassing a widget
By: K.K.Sou
Rating: starstarstarstarstar / 7
September 30, 2008

print this article



In this article, I will use the Notepad application which we developed in the previous articleand turn that into a system tray application. As usual, the complete sample code is available for download at the end of the article.


This article assumes that you have successfully installed PHP-GTK v2.0 or v2.0.1, with the glade library properly set up.

It is also recommended that you have Glade 3 installed, so that you can load the glade file and explore the widgets and their respective settings.

And lastly, it is assumed that you have read the article “Building Your Own Desktop Notepad Application Using PHP-GTK” and are familiar with the framework, the various components, the classes and the methods used in the Notepad application. Try to understand that base code first so that you can appreciate the beauty of PHP-GTK in linking the system tray icon to the main application.

So, are you ready? Let’s get started!

Hello World GtkStatusIcon

The system tray application is made possible in PHP-GTK with the help of the  GtkStatusIcon widget.

To make it easier for you to understand this widget, I’ve developed a hello world GtkStatusIcon program. This is the simplest complete system tray application that can be written using PHP-GTK, with just 20 lines of code:


// setup main application

$window = new GtkWindow();

$window->set_size_request(240, 120);

$window->connect_simple('destroy', array('Gtk','main_quit'));

$label = new GtkLabel('Hello World, GtkStatusIcon!');



// setup system tray icon

$statusicon = new GtkStatusIcon();


$statusicon->connect('activate', 'on_activate');


function on_activate($statusicon) {

global $window;

if ($window->is_visible()) $window->hide_all();

else $window->show_all();



When you first start the application, you will see only a file icon appearing in the system tray (the leftmost icon):

When you click on the file icon, the main application window will open up:

When you click on the file icon again, the application window will be hidden again.

>>> More PHP Articles          >>> More By K.K.Sou

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort


- Hackers Compromise PHP Sites to Launch Attac...
- Red Hat, Zend Form OpenShift PaaS Alliance
- PHP IDE News
- BCD, Zend Extend PHP Partnership
- PHP FAQ Highlight
- PHP Creator Didn't Set Out to Create a Langu...
- PHP Trends Revealed in Zend Study
- PHP: Best Methods for Running Scheduled Jobs
- PHP Array Functions: array_change_key_case
- PHP array_combine Function
- PHP array_chunk Function
- PHP Closures as View Helpers: Lazy-Loading F...
- Using PHP Closures as View Helpers
- PHP File and Operating System Program Execut...
- PHP: Effects of Wrapping Code in Class Const...

Developer Shed Affiliates


Dev Shed Tutorial Topics: