BaCon MinGW32
Mar 7, 2013 0:15:43 GMT 1
Post by Deleted on Mar 7, 2013 0:15:43 GMT 1
It seems that the Vala compiler is actually a GOject based translator to C. I would be interested to see how this Vala Gtk example would look like in BaCon. (HUG preferred)
gtk-treeview-liststore.vala
gtk-treeview-liststore.c
gtk-treeview-liststore.vala
using Gtk;
public class TreeViewSample : Window {
public TreeViewSample () {
this.title = "TreeView Sample";
set_default_size (250, 100);
var view = new TreeView ();
setup_treeview (view);
add (view);
this.destroy.connect (Gtk.main_quit);
}
private void setup_treeview (TreeView view) {
/*
* Use ListStore to hold accountname, accounttype, balance and
* color attribute. For more info on how TreeView works take a
* look at the GTK+ API.
*/
var listmodel = new ListStore (4, typeof (string), typeof (string),
typeof (string), typeof (string));
view.set_model (listmodel);
view.insert_column_with_attributes (-1, "Account Name", new CellRendererText (), "text", 0);
view.insert_column_with_attributes (-1, "Type", new CellRendererText (), "text", 1);
var cell = new CellRendererText ();
cell.set ("foreground_set", true);
view.insert_column_with_attributes (-1, "Balance", cell, "text", 2, "foreground", 3);
TreeIter iter;
listmodel.append (out iter);
listmodel.set (iter, 0, "My Visacard", 1, "card", 2, "102,10", 3, "red");
listmodel.append (out iter);
listmodel.set (iter, 0, "My Mastercard", 1, "card", 2, "10,20", 3, "red");
}
public static int main (string[] args) {
Gtk.init (ref args);
var sample = new TreeViewSample ();
sample.show_all ();
Gtk.main ();
return 0;
}
}
gtk-treeview-liststore.c
/* gtk-treeview-liststore.c generated by valac UNKNOWN, the Vala compiler
* generated from gtk-treeview-liststore.vala, do not modify */
#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
#define TYPE_TREE_VIEW_SAMPLE (tree_view_sample_get_type ())
#define TREE_VIEW_SAMPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TREE_VIEW_SAMPLE, TreeViewSample))
#define TREE_VIEW_SAMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TREE_VIEW_SAMPLE, TreeViewSampleClass))
#define IS_TREE_VIEW_SAMPLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TREE_VIEW_SAMPLE))
#define IS_TREE_VIEW_SAMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TREE_VIEW_SAMPLE))
#define TREE_VIEW_SAMPLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TREE_VIEW_SAMPLE, TreeViewSampleClass))
typedef struct _TreeViewSample TreeViewSample;
typedef struct _TreeViewSampleClass TreeViewSampleClass;
typedef struct _TreeViewSamplePrivate TreeViewSamplePrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
struct _TreeViewSample {
GtkWindow parent_instance;
TreeViewSamplePrivate * priv;
};
struct _TreeViewSampleClass {
GtkWindowClass parent_class;
};
static gpointer tree_view_sample_parent_class = NULL;
GType tree_view_sample_get_type (void) G_GNUC_CONST;
enum {
TREE_VIEW_SAMPLE_DUMMY_PROPERTY
};
TreeViewSample* tree_view_sample_new (void);
TreeViewSample* tree_view_sample_construct (GType object_type);
static void tree_view_sample_setup_treeview (TreeViewSample* self, GtkTreeView* view);
static void _gtk_main_quit_gtk_widget_destroy (GtkWidget* _sender, gpointer self);
gint tree_view_sample_main (gchar** args, int args_length1);
static void _gtk_main_quit_gtk_widget_destroy (GtkWidget* _sender, gpointer self) {
gtk_main_quit ();
}
TreeViewSample* tree_view_sample_construct (GType object_type) {
TreeViewSample * self = NULL;
GtkTreeView* _tmp0_;
GtkTreeView* view;
self = (TreeViewSample*) g_object_new (object_type, NULL);
gtk_window_set_title ((GtkWindow*) self, "TreeView Sample");
gtk_window_set_default_size ((GtkWindow*) self, 250, 100);
_tmp0_ = (GtkTreeView*) gtk_tree_view_new ();
g_object_ref_sink (_tmp0_);
view = _tmp0_;
tree_view_sample_setup_treeview (self, view);
gtk_container_add ((GtkContainer*) self, (GtkWidget*) view);
g_signal_connect ((GtkWidget*) self, "destroy", (GCallback) _gtk_main_quit_gtk_widget_destroy, NULL);
_g_object_unref0 (view);
return self;
}
TreeViewSample* tree_view_sample_new (void) {
return tree_view_sample_construct (TYPE_TREE_VIEW_SAMPLE);
}
static void tree_view_sample_setup_treeview (TreeViewSample* self, GtkTreeView* view) {
GtkListStore* _tmp0_;
GtkListStore* listmodel;
GtkTreeView* _tmp1_;
GtkTreeView* _tmp2_;
GtkCellRendererText* _tmp3_;
GtkCellRendererText* _tmp4_;
GtkTreeView* _tmp5_;
GtkCellRendererText* _tmp6_;
GtkCellRendererText* _tmp7_;
GtkCellRendererText* _tmp8_;
GtkCellRendererText* cell;
GtkTreeView* _tmp9_;
GtkTreeIter iter = {0};
GtkTreeIter _tmp10_ = {0};
GtkTreeIter _tmp11_;
GtkTreeIter _tmp12_ = {0};
GtkTreeIter _tmp13_;
g_return_if_fail (self != NULL);
g_return_if_fail (view != NULL);
_tmp0_ = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
listmodel = _tmp0_;
_tmp1_ = view;
gtk_tree_view_set_model (_tmp1_, (GtkTreeModel*) listmodel);
_tmp2_ = view;
_tmp3_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
g_object_ref_sink (_tmp3_);
_tmp4_ = _tmp3_;
gtk_tree_view_insert_column_with_attributes (_tmp2_, -1, "Account Name", (GtkCellRenderer*) _tmp4_, "text", 0, NULL);
_g_object_unref0 (_tmp4_);
_tmp5_ = view;
_tmp6_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
g_object_ref_sink (_tmp6_);
_tmp7_ = _tmp6_;
gtk_tree_view_insert_column_with_attributes (_tmp5_, -1, "Type", (GtkCellRenderer*) _tmp7_, "text", 1, NULL);
_g_object_unref0 (_tmp7_);
_tmp8_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
g_object_ref_sink (_tmp8_);
cell = _tmp8_;
g_object_set ((GObject*) cell, "foreground_set", TRUE, NULL);
_tmp9_ = view;
gtk_tree_view_insert_column_with_attributes (_tmp9_, -1, "Balance", (GtkCellRenderer*) cell, "text", 2, "foreground", 3, NULL);
gtk_list_store_append (listmodel, &_tmp10_);
iter = _tmp10_;
_tmp11_ = iter;
gtk_list_store_set (listmodel, &_tmp11_, 0, "My Visacard", 1, "card", 2, "102,10", 3, "red", -1);
gtk_list_store_append (listmodel, &_tmp12_);
iter = _tmp12_;
_tmp13_ = iter;
gtk_list_store_set (listmodel, &_tmp13_, 0, "My Mastercard", 1, "card", 2, "10,20", 3, "red", -1);
_g_object_unref0 (cell);
_g_object_unref0 (listmodel);
}
gint tree_view_sample_main (gchar** args, int args_length1) {
gint result = 0;
TreeViewSample* _tmp0_;
TreeViewSample* sample;
gtk_init (&args_length1, &args);
_tmp0_ = tree_view_sample_new ();
g_object_ref_sink (_tmp0_);
sample = _tmp0_;
gtk_widget_show_all ((GtkWidget*) sample);
gtk_main ();
result = 0;
_g_object_unref0 (sample);
return result;
}
int main (int argc, char ** argv) {
g_type_init ();
return tree_view_sample_main (argv, argc);
}
static void tree_view_sample_class_init (TreeViewSampleClass * klass) {
tree_view_sample_parent_class = g_type_class_peek_parent (klass);
}
static void tree_view_sample_instance_init (TreeViewSample * self) {
}
GType tree_view_sample_get_type (void) {
static volatile gsize tree_view_sample_type_id__volatile = 0;
if (g_once_init_enter (&tree_view_sample_type_id__volatile)) {
static const GTypeInfo g_define_type_info = { sizeof (TreeViewSampleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tree_view_sample_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TreeViewSample), 0, (GInstanceInitFunc) tree_view_sample_instance_init, NULL };
GType tree_view_sample_type_id;
tree_view_sample_type_id = g_type_register_static (GTK_TYPE_WINDOW, "TreeViewSample", &g_define_type_info, 0);
g_once_init_leave (&tree_view_sample_type_id__volatile, tree_view_sample_type_id);
}
return tree_view_sample_type_id__volatile;
}