環境: W2k+php4.3.1+php/gtk0.5.2
簡単なメモ帳 (変更のために開くことができるのはファイルだけです)
set_time_limit (0) // 実行時間を設定します
if (!class_exists ( "gtk")) // GTK モジュールがあるかどうかを判断します
if (strtoupper (substr ($_SERVER["OS"], 0, 3)) == "WIN")
dl ("php_gtk.dll");
else
dl ("php_gtk.so"); using _usize ((gdk::screen_width()-200), (gdk::screen_height()-150)); // ウィンドウ サイズ
$window->set_タイトル( "WINDOWS"); // ウィンドウのタイトルを設定します
$window- >connect_object ('destroy', array ('gtk', 'main_quit')); // ウィンドウのイベントを登録します
$vbox = &new GtkVBox (); $hbox = &new GtkHBox ();
$window-> ;add ($vbox);
$menuBar = &new GtkMenuBar (); // メニューを作成します
$vbox->pack_start ($menuBar, false, false, 0);
$file = &new GtkMenuItem ("ファイル ");
$menuBar->append ($file);
$fileMenu = &new GtkMenu ();
$open = &new GtkMenuItem ("開く");
$save = &new GtkMenuItem ("保存");
$line = &new GtkMenuItem ();
$line->set_sensitive (true);
$exit = &new GtkMenuItem ("終了");
$fileMenu-> append ($open);
$open->connect_object ('activate', 'showFileSelection');
$fileMenu->append ($save);
$save->connect_object ('activate', 'saveFile' );
$fileMenu->append ($line) ;
$fileMenu->append ($exit);
$exit->connect_object ('activate', array ('gtk', 'main_quit'));
$file->set_submenu ($fileMenu);
$scroll = &new GtkScrolledWindow ();
$scroll->set_border_width (8);
$scroll->set_policy (GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
$hボックス->pack_start ($scroll, true, true, 0 );
$vbox->pack_start ($hbox, true, true, 1);
$text = &new GtkText ();
$text->set_editable (true);
$text->set_word_wrap (true );
$scroll->add ($text);
function showFileSelection () // ファイル選択関数
{
$file = &new GtkFileSelection ("ファイル選択");
$ok_button = $file->ok_button ;
$ok_button->connect ('clicked', 'openFile', $file);
$ok_button->connect_object ('clicked', array ($file) , 'destroy'));
$cancel_button = $file ->cancel_button;
$cancel_button->connect_object ('clicked', array ($file, 'destroy'));
$file->show () ;
}
$filePath = null;
function openFile { ... , $ str);
if (is_file ($filePath ))
$str = $text->get_chars (0, -1);
$fp = fopen ($filePath, 'w');
gtk::main (); の形式ですべてのコントロールを表示します。