All is about my experience | Linux

Like Us

12 May 2017

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+S

Build Resource File

Buka Makefile.am pada directory /src lalu copy dan paste

bin_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