Project

General

Profile

Basic builder » History » Version 6

iri, 02/22/2011 02:30 PM

1 1 iri
h1. Basic builder
2
3
It's a very simple interface built with GtkBuilder.
4
5
# add the file with _gtkBuilderNewFromFile
6
# if needed, get any included object (for example, a window, a button ...) with _gtkBuilderWidgetGet
7
# if needed, define any callback and others codes ...
8
# run the GTK+ loop.
9
10 5 iri
Note : Don't call _gtkWidgetShow(All), all included widgets will be automatically shown.
11 1 iri
12
Look this Scol code :
13
14
<pre><code class="php">
15
fun cbDestroy (obj, uparam)=
16
	_fooS strcat "upram = " itoa uparam;
17 6 iri
        /* Stop the GTK+ loop */
18 1 iri
	_gtkMainQuit;
19
	0;;
20
	
21
fun cbButtonClicked (obj, uparam)=
22
	_fooS strcat "button param = " uparam;
23
	0;;
24
	
25
fun main ()=
26
	_showconsole;
27 4 iri
	// add a .xml file
28 1 iri
	let _gtkBuilderNewFromFile _channel _checkpack "tests/2dgtk/0.glade" -> builder in
29
	
30
	// get object from the builder : a window and a button
31
	let _gtkBuilderWidgetGet builder "main_window" -> win in
32
	let _gtkBuilderWidgetGet builder "button_1" -> button in
33
	(
34
	// define the callbacks
35
	_gtkWindowCBdestroyed win @cbDestroy 10;
36
	_gtkButtonCB button @cbButtonClicked "yes !" SCOL_GTK_BUTTON_CB_CLICKED;
37
	// run the GTK+ loop
38
	_gtkMain;
39
	0
40
	);;
41
</code></pre>
42
43
and now, the xml file :
44
45
<pre><code class="xml">
46
<?xml version="1.0"?>
47
<interface>
48
  <requires lib="gtk+" version="2.16"/>
49
  <!-- interface-naming-policy project-wide -->
50
  <object class="GtkWindow" id="main_window">
51
    <property name="visible">True</property>
52
    <property name="title" translatable="yes">Test 2dGtk - 0</property>
53
    <child>
54
      <object class="GtkVBox" id="main_box">
55
        <property name="visible">True</property>
56
        <property name="spacing">5</property>
57
        <child>
58
          <object class="GtkButton" id="button_1">
59
            <property name="label" translatable="yes">button 1</property>
60
            <property name="visible">True</property>
61
            <property name="can_focus">True</property>
62
            <property name="receives_default">True</property>
63
          </object>
64
          <packing>
65
            <property name="position">0</property>
66
          </packing>
67
        </child>
68
      </object>
69
    </child>
70
  </object>
71
</interface>
72
</code></pre>
73 2 iri
74 3 iri
Return [[Examples]]