Tanya :

Bisa berikan contoh dan penjelasan tentang Time Handler di GTK ?

Jawab :

Perhatikan diagram program berikut ini (klik untuk memperbesar) :

Keterangan :

  • Garis Warna Kuning : Menunjukkan deklarasi untuk fungsi update_clock. Fungsi ini sendiri dalam bentuk gboolean : Sebuah tipe boolean standar. Variabel keluaran dari fungsi ini hanya akan bernilai TRUE atau FALSE. Di atas terlihat bahwa jika semua tahapan berjalan maka keluaran fungsi ini adalah TRUE
  • Garis Warna Biru menunjukkan bahwa widget Label yang akan dirubah teksnya dengan perintah gtk_label_set_text
  • Garis Warna Hijau menunjukkan bahwa label yang akan dirubah adalah clock_label yang memiliki id label1 di file xml nya (Ditunjukkan dengan Garis Warna Hijau)
  • Garis Warna Pink menunjukkan bahwa perintah g_timeout_add memberikan nilai pada fungsi update_clock

Beberapa Keterangan Manual Referensi :

g_timeout_add : (Main Event Loop) [GLib Reference Manual]

guint               g_timeout_add                       (guint interval, GSourceFunc function, gpointer data);

Mengatur sebuah fungsi untuk digunakan pada regular interval dengan prioritas default G_PRIORITY_DEFAULT. Fungsi digunakan secara berulang-ulang hingga keluarannya FALSE, dimana point timeout secara otomatis hilang dan fungsi tidak akan digunakan lagi. Penggunaan pertama dari fungsi akan berada di akhir dari interval pertama.

time_t : dari header time.h

struct tm : dari header time.h

g_new()

Mengalokasikan elemen n_structs dari tipe struct_type. Pointer keluaran diberikan kepada pointer tipe yang diberikan. Jika n_struct adalah 0, maka keluarannya adalah NULL. Perhatian perlu diberikan untuk menghindari overflow ketika menghitung ukuran dari blok yang dialoksikan.

Dikarenakan pointer keluaran sudah diberikan ke tipe yang benar, normalnya tidak diperlukan untuk mengarahkan pemberian tersebut secara eksplisit, dan jika dilakukan mungkin dapat menghindari kesalahan alokasi memori.

g_free

Membebaskan memori yang diarahkan oleh mem. Jika mem bernilai NULL maka ia langsung keluar.

Demikian (rezaervani@gmail.com)

Iklan