27 Jul

PHP-GTK2 ile sistem çekmecesine yerleşelim

Ve PHP-GTK2 Beta yayında. Evet yeni değil 17 Hazirandan beridir yayında. Şimdi PHP-GTK2 ile gelen yeniliklerden biri olan, birçok kişinin ilgisini çekeceğinden şüphem olmadığı bir konuya örnek vereyim.
Sistem çekmecesine yerleşen ikonları bilirsiniz. Bir program başlatırsınız ve penceresini kapadığınızda hemen sistem çekmecesine kendi ikonunu yerleştirir ve bu ikon yardımıyla o programa ait, program yazarı tarafından hazırlanmış olan nimetlerden faydalanabiliyoruz bu ikon üzerinden.
Şimdi bu ikonu PHP-GTK ile nasıl oluşturup kullanacağımızı görelim.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php

/**

*

* Standart bir PHP-GTK uygulamasındaki gibi

*penceremizi oluşturalım

*

**/

$pencere = new GtkWindow();

$pencere->set_title("Örnek Pencere başlığım");

$pencere->set_size_request(240, 120);

$pencere->set_position(Gtk::WIN_POS_CENTER_ALWAYS);

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

$pencere->add($vbox = new GtkVBox());

$vbox->pack_start(
                          new GtkLabel("Sistem çekmecesindeki ikona tıkladınız!"));

$vbox->pack_start(
                        new GtkLabel("Gizlemek için birkez daha tıklayın."));

// sistem çekmecesine yerleşecek ikonu ayarlıyoruz

// işte yeni versiyondaki yenilik ve büyük kurtarıcı  

$statusicon = new GtkStatusIcon();

// Sistem çekmecesinde görünecek ikonumuzu seçiyoruz

<a rel="nofollow" href=http://gtk.php.net/manual/en/gtk.enum.stockitems.php target=_blank> burdan da </a>görebileceğeniz gibi PHP-GTK2 içerisinde

// onlarca hazır ikon bulunmaktadır

$statusicon->set_from_stock(Gtk::STOCK_HOME);

// sistem çekmecesindeki ikon üzerine gelindiğinde

// görüntülenecek ipucuyu ayarlıyoruz.

$statusicon->set_tooltip(?Pencereyi gormek için sol tıklayın?);

$app_status = 0;

// sistem çekmecesindeki ikona sol tıkladığımızda bir olay

// gerçekleşir (signal) ve bu olay karşılığında çalışmasını

// istediğimiz işlevi atıyoruz (callback)

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

$pencere->hide_all();

Gtk::main();

function on_activate($statusicon) {

global $pencere, $app_status;

 if ($app_status) {

$statusicon->set_tooltip(?Pencereyi görmek için sol tıklayın?);

$pencere->hide_all();

$app_status = 0;

} else {

 $statusicon->set_tooltip(?Pencereyi görmek için?);

  $pencere->show_all();

  $app_status = 1;

 }

}

?>

Evvet işte oldu, nur topu gibi, sistem çekmecesinde yerleşke bir uygulamacık sahibiyiz
Kodların sade ve açık olduğunu düşündüğümden fazla açıklama yaparak kafa karıştırmak istemedim.
Eğer daha önce PHP-GTK1 ile uğraştı iseniz, burdaki Türkçe karakter desteğini fark etmişsinizdir. Evet
artık Türkçe karakter kullanmaktan korkmanıza gerek yok, uygulamanız abuk subuk tavırlar sergilemeyecek, sonlanmayacak.