Open Source Web Development Tutorials - Dev Shed
PHP-GTKでタスクトレイに常駐するアプリを作ろう
(2008/11/13公開)
PHP-GTKで「メモ帳」を作る!
PHP-GTKでタスクトレイアプリケーションを作る
前回の「PHP-GTKで『メモ帳』を作る」という記事では、PHP-GTKを使って、デスクトップアプリケーションを作成するのがいかに簡単かをご覧いただいた。デスクトップアプリケーションの作り方を学び終えると、うれしいことにタスクトレイに常駐するアプリケーションを作るには2、3行追加するだけで良い。プログラムのほとんどはまったく同様のままだ。
この記事では、前回の記事で作った「メモ帳」アプリケーションを使い、それをタスクトレイアプリケーションへと変換してみる。いつものようにサンプルプログラム全体はこの記事の終わりにダウンロードできるようになっている。
前提条件
この記事では、PHP-GTK v2.0かv2.0.1とGladeライブラリをインストール済みであることを前提条件とする。
また、Gladeのファイルを開き、ウィジェットやその設定を研究できるように、Glade 3もインストールしておくことをお勧めする。
最後に、読者が前回の記事「PHP-GTKで『メモ帳』を作る」をすでに読んでくださり、「メモ帳」アプリケーションの構成、各種の構成要素、またクラスやメソッドに精通しておられることを前提としている。まずは基本となるプログラムをご理解いただくと、メインのアプリケーションとタスクトレイのアイコンをリンクさせるPHP-GTKの得意技をよくご理解いただけることだろう。
準備はよろしいか?でははじめよう。
Hello World GtkStatusIcon
PHP-GTKにおいて、タスクトレイアプリケーションを実現してくれるのは、GtkStatusIcoというウィジェットだ。
このウィジェットを分かりやすく説明するために、GtkStatusIcoを使った「Hello World」プログラムを作ってみた。これは20行のみで作れる、PHP-GTKを使ったもっとも単純でかつ完成したタスクトレイアプリケーションだ。
<?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();
}
?>
まずこのアプリケーションを立ち上げると、タスクトレイにはファイルのアイコン(1番左のアイコン)のみが表示される。
ファイルのアイコンをクリックすると、メインのアプリケーションのウィンドウが開く。
もう一度、ファイルのアイコンをクリックすると、アプリケーションのウィンドウがまた隠れる。
Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.










