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. Assumptions 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: <?php // 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!'); $window->add($label); $window->hide_all(); // setup system tray icon $statusicon = new GtkStatusIcon(); $statusicon->set_from_stock(Gtk::STOCK_FILE); $statusicon->connect('activate', 'on_activate'); Gtk::main(); 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.
blog comments powered by Disqus |
|
|
|
|
|
|
|