Tanya :
Bisa jelaskan fungsi GtkCellRenderer di GTK+ ?
Jawab :
The GtkCellRenderer adalah kelas dasar dari set objek yang digunakan untuk merender suatu cell ke suatu GdkDrawable. Objek-objek ini terutama digunakan oleh widget GtkTreeView, walaupun mereka tidak terikat secara spesifik satu sama lain. Penting untuk dicatat bahwa GtkCellRenderer BUKAN sebuah GtkWidget dan tidak dapat diperlakukan sebagai GtkWidget.
Kegunaan utama dari suatu GtkCellRenderer adalah untuk menggambar/menuliskan elemen grafis tertentu pada GdkDrawable. Umumnya, satu renderer cell digunakan untuk menggambar banyak cell di layar. Dalam keadaan tersebut, tidaklah diharapkan sebuah CellRenderer menjadikan keadaan yang ada tetap berlaku secara permanen, tetapi kondisi apapun diatur sebelumnya untuk digunakan menggunakan sistem properti GObject. Lalu cell diukur dengan fungsi gtk_cell_renderer_get_size(). Baru kemudian akhirnya, cell dirender ke lokasi yang tepat dengan gtk_cell_renderer_render().
Ada beberapa aturan yang harus diikuti ketika membuat sebuah GtkCellRenderer yang baru. Pertama dan utama, adalah penting untuk memastikan serangkaian properti akan selalu menghasilkan suatu renderer cell dengan ukuran yang sama, terkecuali ada perubahan di GtkStyle. GtkCellRenderer juga memiliki sejumlah properti generik yang diharapkan diikuti oleh semua turunannya.
Bukan hanya merender suatu cell, renderer cell dapat juga menyediakan element antar muka aktif bagi pengguna. Sebuah renderer cell dapat dibuat activable seperti GtkCellRendererToggle, dimana toogle dapat diaktifkan ketika mouse diklik, atau dapat juga dibuat editable seperti GtkCellRendererText, yang memperkenankan penggunak untuk mengedit teks melalui suatu GtkEntry. Untuk membuat sebuah renderer cell activable atau editable, anda harus menerapkan fungsi virtual activate atau start_editing.
Hierarki :
GObject +----GInitiallyUnowned +----GtkObject +----GtkCellRenderer +----GtkCellRendererText +----GtkCellRendererPixbuf +----GtkCellRendererProgress +----GtkCellRendererSpinner +----GtkCellRendererToggle
Demikian. (rezaervani@gmail.com)
Leave a Reply