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]] |