Load Resource UI dengan Vala
Untuk memuat file UI dengan vala terdapat dua cara yaitu Builder.from_file() dan Builder.from_resource()
Tentunya kedua cara tersebut memiliki kelebihan dan kekurangan misalnya from_file() hanya dapat bekerja jika file .ui berada satu folder dengan source file .vala , kelebihannya mungkin lebih simpel dan gak banyak konfigurasi lainnya.
Sementara from_resource() kekurangannya yaitu konfigurasinya lebih banyak dari from_file, Namun biasanya ini cocok untuk membangun aplikasi skala besar juga lebih terstruktur.
Oke, dalam artikel kali ini kita akan belajar cara Load menggunakan Builder.from_resource() dan bagaimana cara ngebuild file resource tersebut.
Pertama-tama buat window baru dengan Glade yang didalamnya terdapat sebuah tombol
GtkWindow:
ID - window
Default Width - (checklist)
Default Height - (checklist)
GtkButton:
ID - tombol
Simpan ( CTRL+S ) dengan nama contoh.ui
Kemudian buat project baru dengan Builder ( Gnome Builder ):
Project Name - Contoh
Language - Vala
Template - Gnome Application
Copy file contoh.ui kedalam direktori /data pada project "Contoh" yang barusaja dibuat. atau bisa dengan klik kanan pada direktori /data ( sidebar/project ) -> Open Containing Folder
Buat file baru dalam direktori /data dengan mengkilk kanan folder /data pada sidebar -> New -> Empty File. dan beri nama contoh.gresource.xml
<gresources>
<gresource prefix="/app/namaku/contoh">
<file preprocess="xml-stripblanks">contoh.ui</file>
</gresource>
</gresources>
Simpan dengan menekan CTRL+SBuild Resource File
Buka Makefile.am pada directory /src lalu copy dan pastebin_PROGRAMS = contoh
resource.c: $(top_srcdir)/data/contoh.gresource.xml
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(top_srcdir)/data --generate-source $<
BUILT_SOURCES = resource.c
contoh_SOURCES = \
$(BUILT_SOURCES) \
main.vala
contoh_CPPFLAGS = $(CONTOH_CFLAGS)
contoh_VALAFLAGS = --pkg gtk+-3.0
contoh_LDADD = $(CONTOH_LIBS)
-include $(top_srcdir)/git.mk
Tekan CTRL+F7 untuk build project
Selanjutnya ubah isi dari /src/main.vala dengan
using Gtk;
int main (string[] args) {
Gtk.init (ref args);
var builder = new Builder.from_resource("/app/namaku/contoh/contoh.ui");
var window = builder.get_object("window") as Window;
var button = builder.get_object("tombol") as Button;
window.title = "Jreng Jreng Jreng";
button.label = "Hulalala";
window.destroy.connect(Gtk.main_quit);
window.show_all ();
Gtk.main ();
return 0;
}
Build project ( CTRL+F7 ) dan Jalankan project ( CTRL+F5 )Selamat mencoba dan berkreasi