]> Pileus Git - ~andy/csm213a-hw/blob - vis/visual.ui
Add serial interface
[~andy/csm213a-hw] / vis / visual.ui
1 <?xml version="1.0" encoding="UTF-8"?>
2 <interface>
3   <requires lib="gtk+" version="2.24"/>
4   <!-- interface-naming-policy project-wide -->
5   <object class="GtkAdjustment" id="a2d_adj">
6     <property name="upper">100</property>
7     <property name="value">1</property>
8     <property name="step_increment">1</property>
9     <property name="page_increment">10</property>
10   </object>
11   <object class="GtkAdjustment" id="accel_adj">
12     <property name="upper">100</property>
13     <property name="value">1</property>
14     <property name="step_increment">1</property>
15     <property name="page_increment">10</property>
16   </object>
17   <object class="GtkAdjustment" id="baud_adj">
18     <property name="upper">1.7976931348623157e+308</property>
19     <property name="step_increment">1</property>
20     <property name="page_increment">10</property>
21   </object>
22   <object class="GtkAdjustment" id="datab_adj">
23     <property name="lower">6</property>
24     <property name="upper">8</property>
25     <property name="step_increment">1</property>
26     <property name="page_increment">10</property>
27   </object>
28   <object class="GtkAdjustment" id="light_adj">
29     <property name="upper">100</property>
30     <property name="value">1</property>
31     <property name="step_increment">1</property>
32     <property name="page_increment">10</property>
33   </object>
34   <object class="GtkAdjustment" id="mag_adj">
35     <property name="upper">100</property>
36     <property name="value">1</property>
37     <property name="step_increment">1</property>
38     <property name="page_increment">10</property>
39   </object>
40   <object class="GtkTextBuffer" id="serial_buf"/>
41   <object class="GtkToggleAction" id="serial_con">
42     <property name="label" translatable="yes">Serial</property>
43     <property name="stock_id">gtk-connect</property>
44     <signal name="activate" handler="on_serial" swapped="no"/>
45   </object>
46   <object class="GtkAction" id="settings_act">
47     <property name="label" translatable="yes">Settings</property>
48     <property name="stock_id">gtk-preferences</property>
49     <signal name="activate" handler="on_show" swapped="no"/>
50   </object>
51   <object class="GtkToggleAction" id="xively_con">
52     <property name="label" translatable="yes">Xively</property>
53     <property name="stock_id">gtk-connect</property>
54     <signal name="activate" handler="on_xively" swapped="no"/>
55   </object>
56   <object class="GtkDialog" id="settings">
57     <property name="can_focus">False</property>
58     <property name="border_width">5</property>
59     <property name="modal">True</property>
60     <property name="destroy_with_parent">True</property>
61     <property name="type_hint">dialog</property>
62     <property name="transient_for">window</property>
63     <signal name="close" handler="on_hide" swapped="no"/>
64     <signal name="delete-event" handler="on_hide" swapped="no"/>
65     <child internal-child="vbox">
66       <object class="GtkVBox" id="settings_box">
67         <property name="visible">True</property>
68         <property name="can_focus">False</property>
69         <property name="spacing">2</property>
70         <child internal-child="action_area">
71           <object class="GtkHButtonBox" id="settings_btns">
72             <property name="visible">True</property>
73             <property name="can_focus">False</property>
74             <property name="layout_style">end</property>
75             <child>
76               <object class="GtkButton" id="close">
77                 <property name="label" translatable="yes">Close</property>
78                 <property name="visible">True</property>
79                 <property name="can_focus">True</property>
80                 <property name="receives_default">True</property>
81                 <signal name="clicked" handler="on_hide" swapped="no"/>
82               </object>
83               <packing>
84                 <property name="expand">False</property>
85                 <property name="fill">False</property>
86                 <property name="position">0</property>
87               </packing>
88             </child>
89           </object>
90           <packing>
91             <property name="expand">False</property>
92             <property name="fill">True</property>
93             <property name="position">0</property>
94           </packing>
95         </child>
96         <child>
97           <object class="GtkFrame" id="serial_frame">
98             <property name="visible">True</property>
99             <property name="can_focus">False</property>
100             <property name="label_xalign">0</property>
101             <property name="shadow_type">none</property>
102             <child>
103               <object class="GtkAlignment" id="align1">
104                 <property name="visible">True</property>
105                 <property name="can_focus">False</property>
106                 <property name="left_padding">12</property>
107                 <child>
108                   <object class="GtkTable" id="table1">
109                     <property name="visible">True</property>
110                     <property name="can_focus">False</property>
111                     <property name="n_rows">4</property>
112                     <property name="n_columns">2</property>
113                     <property name="column_spacing">20</property>
114                     <child>
115                       <object class="GtkLabel" id="baud_lbl">
116                         <property name="visible">True</property>
117                         <property name="can_focus">False</property>
118                         <property name="xalign">0</property>
119                         <property name="label" translatable="yes">Baud rate</property>
120                       </object>
121                       <packing>
122                         <property name="x_options">GTK_FILL</property>
123                         <property name="y_options">GTK_FILL</property>
124                       </packing>
125                     </child>
126                     <child>
127                       <object class="GtkLabel" id="stopb_lbl">
128                         <property name="visible">True</property>
129                         <property name="can_focus">False</property>
130                         <property name="xalign">0</property>
131                         <property name="label" translatable="yes">Stop bits</property>
132                       </object>
133                       <packing>
134                         <property name="top_attach">2</property>
135                         <property name="bottom_attach">3</property>
136                         <property name="x_options">GTK_FILL</property>
137                         <property name="y_options">GTK_FILL</property>
138                       </packing>
139                     </child>
140                     <child>
141                       <object class="GtkLabel" id="datab_lbl">
142                         <property name="visible">True</property>
143                         <property name="can_focus">False</property>
144                         <property name="xalign">0</property>
145                         <property name="label" translatable="yes">Data bits</property>
146                       </object>
147                       <packing>
148                         <property name="top_attach">3</property>
149                         <property name="bottom_attach">4</property>
150                         <property name="x_options">GTK_FILL</property>
151                         <property name="y_options">GTK_FILL</property>
152                       </packing>
153                     </child>
154                     <child>
155                       <object class="GtkSpinButton" id="baudrate">
156                         <property name="visible">True</property>
157                         <property name="can_focus">True</property>
158                         <property name="invisible_char">●</property>
159                         <property name="primary_icon_activatable">False</property>
160                         <property name="secondary_icon_activatable">False</property>
161                         <property name="primary_icon_sensitive">True</property>
162                         <property name="secondary_icon_sensitive">True</property>
163                         <property name="adjustment">baud_adj</property>
164                       </object>
165                       <packing>
166                         <property name="left_attach">1</property>
167                         <property name="right_attach">2</property>
168                         <property name="y_options">GTK_FILL</property>
169                       </packing>
170                     </child>
171                     <child>
172                       <object class="GtkSpinButton" id="stopbits">
173                         <property name="visible">True</property>
174                         <property name="can_focus">True</property>
175                         <property name="invisible_char">●</property>
176                         <property name="primary_icon_activatable">False</property>
177                         <property name="secondary_icon_activatable">False</property>
178                         <property name="primary_icon_sensitive">True</property>
179                         <property name="secondary_icon_sensitive">True</property>
180                         <property name="adjustment">stopb_adj</property>
181                       </object>
182                       <packing>
183                         <property name="left_attach">1</property>
184                         <property name="right_attach">2</property>
185                         <property name="top_attach">2</property>
186                         <property name="bottom_attach">3</property>
187                         <property name="y_options">GTK_FILL</property>
188                       </packing>
189                     </child>
190                     <child>
191                       <object class="GtkSpinButton" id="databits">
192                         <property name="visible">True</property>
193                         <property name="can_focus">True</property>
194                         <property name="invisible_char">●</property>
195                         <property name="primary_icon_activatable">False</property>
196                         <property name="secondary_icon_activatable">False</property>
197                         <property name="primary_icon_sensitive">True</property>
198                         <property name="secondary_icon_sensitive">True</property>
199                         <property name="adjustment">datab_adj</property>
200                       </object>
201                       <packing>
202                         <property name="left_attach">1</property>
203                         <property name="right_attach">2</property>
204                         <property name="top_attach">3</property>
205                         <property name="bottom_attach">4</property>
206                         <property name="y_options">GTK_FILL</property>
207                       </packing>
208                     </child>
209                     <child>
210                       <object class="GtkLabel" id="parity_lbl">
211                         <property name="visible">True</property>
212                         <property name="can_focus">False</property>
213                         <property name="xalign">0</property>
214                         <property name="label" translatable="yes">Parity</property>
215                       </object>
216                       <packing>
217                         <property name="top_attach">1</property>
218                         <property name="bottom_attach">2</property>
219                         <property name="x_options">GTK_FILL</property>
220                         <property name="y_options">GTK_FILL</property>
221                       </packing>
222                     </child>
223                     <child>
224                       <object class="GtkEntry" id="parity">
225                         <property name="visible">True</property>
226                         <property name="can_focus">True</property>
227                         <property name="invisible_char">●</property>
228                         <property name="invisible_char_set">True</property>
229                         <property name="primary_icon_activatable">False</property>
230                         <property name="secondary_icon_activatable">False</property>
231                         <property name="primary_icon_sensitive">True</property>
232                         <property name="secondary_icon_sensitive">True</property>
233                       </object>
234                       <packing>
235                         <property name="left_attach">1</property>
236                         <property name="right_attach">2</property>
237                         <property name="top_attach">1</property>
238                         <property name="bottom_attach">2</property>
239                         <property name="y_options">GTK_FILL</property>
240                       </packing>
241                     </child>
242                   </object>
243                 </child>
244               </object>
245             </child>
246             <child type="label">
247               <object class="GtkLabel" id="label1">
248                 <property name="visible">True</property>
249                 <property name="can_focus">False</property>
250                 <property name="label" translatable="yes">Serial Settings</property>
251                 <attributes>
252                   <attribute name="weight" value="bold"/>
253                 </attributes>
254               </object>
255             </child>
256           </object>
257           <packing>
258             <property name="expand">False</property>
259             <property name="fill">True</property>
260             <property name="position">1</property>
261           </packing>
262         </child>
263         <child>
264           <object class="GtkFrame" id="xively_frame">
265             <property name="visible">True</property>
266             <property name="can_focus">False</property>
267             <property name="label_xalign">0</property>
268             <property name="shadow_type">none</property>
269             <child>
270               <object class="GtkAlignment" id="align">
271                 <property name="visible">True</property>
272                 <property name="can_focus">False</property>
273                 <property name="left_padding">12</property>
274                 <child>
275                   <object class="GtkTable" id="table">
276                     <property name="visible">True</property>
277                     <property name="can_focus">False</property>
278                     <property name="n_rows">3</property>
279                     <property name="n_columns">2</property>
280                     <property name="column_spacing">20</property>
281                     <child>
282                       <object class="GtkLabel" id="user_lbl">
283                         <property name="visible">True</property>
284                         <property name="can_focus">False</property>
285                         <property name="xalign">0</property>
286                         <property name="label" translatable="yes">Username</property>
287                       </object>
288                       <packing>
289                         <property name="x_options">GTK_FILL</property>
290                         <property name="y_options">GTK_FILL</property>
291                       </packing>
292                     </child>
293                     <child>
294                       <object class="GtkLabel" id="pass_lbl">
295                         <property name="visible">True</property>
296                         <property name="can_focus">False</property>
297                         <property name="xalign">0</property>
298                         <property name="label" translatable="yes">Password</property>
299                       </object>
300                       <packing>
301                         <property name="top_attach">1</property>
302                         <property name="bottom_attach">2</property>
303                         <property name="x_options">GTK_FILL</property>
304                         <property name="y_options">GTK_FILL</property>
305                       </packing>
306                     </child>
307                     <child>
308                       <object class="GtkLabel" id="api_lbl">
309                         <property name="visible">True</property>
310                         <property name="can_focus">False</property>
311                         <property name="xalign">0</property>
312                         <property name="label" translatable="yes">API Key</property>
313                       </object>
314                       <packing>
315                         <property name="top_attach">2</property>
316                         <property name="bottom_attach">3</property>
317                         <property name="x_options">GTK_FILL</property>
318                         <property name="y_options">GTK_FILL</property>
319                       </packing>
320                     </child>
321                     <child>
322                       <object class="GtkEntry" id="username">
323                         <property name="visible">True</property>
324                         <property name="can_focus">True</property>
325                         <property name="invisible_char">●</property>
326                         <property name="invisible_char_set">True</property>
327                         <property name="primary_icon_activatable">False</property>
328                         <property name="secondary_icon_activatable">False</property>
329                         <property name="primary_icon_sensitive">True</property>
330                         <property name="secondary_icon_sensitive">True</property>
331                       </object>
332                       <packing>
333                         <property name="left_attach">1</property>
334                         <property name="right_attach">2</property>
335                         <property name="y_options">GTK_FILL</property>
336                       </packing>
337                     </child>
338                     <child>
339                       <object class="GtkEntry" id="password">
340                         <property name="visible">True</property>
341                         <property name="can_focus">True</property>
342                         <property name="invisible_char">●</property>
343                         <property name="invisible_char_set">True</property>
344                         <property name="primary_icon_activatable">False</property>
345                         <property name="secondary_icon_activatable">False</property>
346                         <property name="primary_icon_sensitive">True</property>
347                         <property name="secondary_icon_sensitive">True</property>
348                       </object>
349                       <packing>
350                         <property name="left_attach">1</property>
351                         <property name="right_attach">2</property>
352                         <property name="top_attach">1</property>
353                         <property name="bottom_attach">2</property>
354                         <property name="y_options">GTK_FILL</property>
355                       </packing>
356                     </child>
357                     <child>
358                       <object class="GtkEntry" id="apikey">
359                         <property name="visible">True</property>
360                         <property name="can_focus">True</property>
361                         <property name="invisible_char">●</property>
362                         <property name="invisible_char_set">True</property>
363                         <property name="primary_icon_activatable">False</property>
364                         <property name="secondary_icon_activatable">False</property>
365                         <property name="primary_icon_sensitive">True</property>
366                         <property name="secondary_icon_sensitive">True</property>
367                       </object>
368                       <packing>
369                         <property name="left_attach">1</property>
370                         <property name="right_attach">2</property>
371                         <property name="top_attach">2</property>
372                         <property name="bottom_attach">3</property>
373                         <property name="y_options">GTK_FILL</property>
374                       </packing>
375                     </child>
376                   </object>
377                 </child>
378               </object>
379             </child>
380             <child type="label">
381               <object class="GtkLabel" id="label">
382                 <property name="visible">True</property>
383                 <property name="can_focus">False</property>
384                 <property name="label" translatable="yes">Xively Settings</property>
385                 <attributes>
386                   <attribute name="weight" value="bold"/>
387                 </attributes>
388               </object>
389             </child>
390           </object>
391           <packing>
392             <property name="expand">False</property>
393             <property name="fill">True</property>
394             <property name="position">2</property>
395           </packing>
396         </child>
397       </object>
398     </child>
399     <action-widgets>
400       <action-widget response="0">close</action-widget>
401     </action-widgets>
402   </object>
403   <object class="GtkAdjustment" id="stopb_adj">
404     <property name="lower">1</property>
405     <property name="upper">2</property>
406     <property name="step_increment">1</property>
407     <property name="page_increment">10</property>
408   </object>
409   <object class="GtkAdjustment" id="touch_adj">
410     <property name="upper">100</property>
411     <property name="value">1</property>
412     <property name="step_increment">1</property>
413     <property name="page_increment">10</property>
414   </object>
415   <object class="GtkWindow" id="window">
416     <property name="can_focus">False</property>
417     <signal name="destroy" handler="on_destroy" swapped="no"/>
418     <signal name="key-press-event" handler="on_key" swapped="no"/>
419     <child>
420       <object class="GtkVBox" id="vbox">
421         <property name="visible">True</property>
422         <property name="can_focus">False</property>
423         <child>
424           <object class="GtkToolbar" id="toolbar">
425             <property name="visible">True</property>
426             <property name="can_focus">False</property>
427             <property name="toolbar_style">both</property>
428             <child>
429               <object class="GtkToggleToolButton" id="serial_btn">
430                 <property name="related_action">serial_con</property>
431                 <property name="visible">True</property>
432                 <property name="can_focus">False</property>
433                 <property name="use_underline">True</property>
434               </object>
435               <packing>
436                 <property name="expand">False</property>
437                 <property name="homogeneous">True</property>
438               </packing>
439             </child>
440             <child>
441               <object class="GtkToggleToolButton" id="xively_btn">
442                 <property name="related_action">xively_con</property>
443                 <property name="visible">True</property>
444                 <property name="can_focus">False</property>
445                 <property name="use_underline">True</property>
446               </object>
447               <packing>
448                 <property name="expand">False</property>
449                 <property name="homogeneous">True</property>
450               </packing>
451             </child>
452             <child>
453               <object class="GtkSeparatorToolItem" id="sep">
454                 <property name="visible">True</property>
455                 <property name="can_focus">False</property>
456               </object>
457               <packing>
458                 <property name="expand">False</property>
459                 <property name="homogeneous">True</property>
460               </packing>
461             </child>
462             <child>
463               <object class="GtkToolButton" id="settings_btn">
464                 <property name="related_action">settings_act</property>
465                 <property name="visible">True</property>
466                 <property name="can_focus">False</property>
467                 <property name="use_underline">True</property>
468               </object>
469               <packing>
470                 <property name="expand">False</property>
471                 <property name="homogeneous">True</property>
472               </packing>
473             </child>
474           </object>
475           <packing>
476             <property name="expand">False</property>
477             <property name="fill">True</property>
478             <property name="position">0</property>
479           </packing>
480         </child>
481         <child>
482           <object class="GtkNotebook" id="notebook">
483             <property name="visible">True</property>
484             <property name="can_focus">True</property>
485             <property name="has_focus">True</property>
486             <child>
487               <object class="GtkTable" id="controls">
488                 <property name="visible">True</property>
489                 <property name="can_focus">False</property>
490                 <property name="n_rows">6</property>
491                 <property name="n_columns">2</property>
492                 <property name="column_spacing">20</property>
493                 <child>
494                   <object class="GtkCheckButton" id="accel_btn">
495                     <property name="label" translatable="yes">Acceorometer</property>
496                     <property name="visible">True</property>
497                     <property name="can_focus">True</property>
498                     <property name="receives_default">False</property>
499                     <property name="draw_indicator">True</property>
500                     <signal name="toggled" handler="on_enable" swapped="no"/>
501                   </object>
502                   <packing>
503                     <property name="top_attach">1</property>
504                     <property name="bottom_attach">2</property>
505                     <property name="x_options">GTK_FILL</property>
506                     <property name="y_options">GTK_FILL</property>
507                   </packing>
508                 </child>
509                 <child>
510                   <object class="GtkCheckButton" id="mag_btn">
511                     <property name="label" translatable="yes">Magnometer</property>
512                     <property name="visible">True</property>
513                     <property name="can_focus">True</property>
514                     <property name="receives_default">False</property>
515                     <property name="draw_indicator">True</property>
516                     <signal name="toggled" handler="on_enable" swapped="no"/>
517                   </object>
518                   <packing>
519                     <property name="top_attach">2</property>
520                     <property name="bottom_attach">3</property>
521                     <property name="x_options">GTK_FILL</property>
522                     <property name="y_options">GTK_FILL</property>
523                   </packing>
524                 </child>
525                 <child>
526                   <object class="GtkCheckButton" id="a2d_btn">
527                     <property name="label" translatable="yes">Analog to Digital</property>
528                     <property name="visible">True</property>
529                     <property name="can_focus">True</property>
530                     <property name="receives_default">False</property>
531                     <property name="draw_indicator">True</property>
532                     <signal name="toggled" handler="on_enable" swapped="no"/>
533                   </object>
534                   <packing>
535                     <property name="top_attach">5</property>
536                     <property name="bottom_attach">6</property>
537                     <property name="x_options">GTK_FILL</property>
538                     <property name="y_options">GTK_FILL</property>
539                   </packing>
540                 </child>
541                 <child>
542                   <object class="GtkCheckButton" id="touch_btn">
543                     <property name="label" translatable="yes">Tounch Sensor</property>
544                     <property name="visible">True</property>
545                     <property name="can_focus">True</property>
546                     <property name="receives_default">False</property>
547                     <property name="draw_indicator">True</property>
548                     <signal name="toggled" handler="on_enable" swapped="no"/>
549                   </object>
550                   <packing>
551                     <property name="top_attach">3</property>
552                     <property name="bottom_attach">4</property>
553                     <property name="x_options">GTK_FILL</property>
554                     <property name="y_options">GTK_FILL</property>
555                   </packing>
556                 </child>
557                 <child>
558                   <object class="GtkCheckButton" id="light_btn">
559                     <property name="label" translatable="yes">Light Sensor</property>
560                     <property name="visible">True</property>
561                     <property name="can_focus">True</property>
562                     <property name="receives_default">False</property>
563                     <property name="draw_indicator">True</property>
564                     <signal name="toggled" handler="on_enable" swapped="no"/>
565                   </object>
566                   <packing>
567                     <property name="top_attach">4</property>
568                     <property name="bottom_attach">5</property>
569                     <property name="x_options">GTK_FILL</property>
570                     <property name="y_options">GTK_FILL</property>
571                   </packing>
572                 </child>
573                 <child>
574                   <object class="GtkLabel" id="control_sensor">
575                     <property name="visible">True</property>
576                     <property name="can_focus">False</property>
577                     <property name="label" translatable="yes">Sensor</property>
578                     <attributes>
579                       <attribute name="weight" value="bold"/>
580                     </attributes>
581                   </object>
582                   <packing>
583                     <property name="x_options">GTK_FILL</property>
584                     <property name="y_options">GTK_FILL</property>
585                   </packing>
586                 </child>
587                 <child>
588                   <object class="GtkLabel" id="control_rate">
589                     <property name="visible">True</property>
590                     <property name="can_focus">False</property>
591                     <property name="label" translatable="yes">Collection Rate</property>
592                     <attributes>
593                       <attribute name="weight" value="bold"/>
594                     </attributes>
595                   </object>
596                   <packing>
597                     <property name="left_attach">1</property>
598                     <property name="right_attach">2</property>
599                     <property name="y_options">GTK_FILL</property>
600                   </packing>
601                 </child>
602                 <child>
603                   <object class="GtkSpinButton" id="a2d_spin">
604                     <property name="visible">True</property>
605                     <property name="can_focus">True</property>
606                     <property name="invisible_char">●</property>
607                     <property name="primary_icon_activatable">False</property>
608                     <property name="secondary_icon_activatable">False</property>
609                     <property name="primary_icon_sensitive">True</property>
610                     <property name="secondary_icon_sensitive">True</property>
611                     <property name="adjustment">a2d_adj</property>
612                     <property name="numeric">True</property>
613                     <signal name="change-value" handler="on_rate" swapped="no"/>
614                   </object>
615                   <packing>
616                     <property name="left_attach">1</property>
617                     <property name="right_attach">2</property>
618                     <property name="top_attach">5</property>
619                     <property name="bottom_attach">6</property>
620                     <property name="y_options">GTK_FILL</property>
621                   </packing>
622                 </child>
623                 <child>
624                   <object class="GtkSpinButton" id="accel_spin">
625                     <property name="visible">True</property>
626                     <property name="can_focus">True</property>
627                     <property name="invisible_char">●</property>
628                     <property name="primary_icon_activatable">False</property>
629                     <property name="secondary_icon_activatable">False</property>
630                     <property name="primary_icon_sensitive">True</property>
631                     <property name="secondary_icon_sensitive">True</property>
632                     <property name="adjustment">accel_adj</property>
633                     <property name="numeric">True</property>
634                   </object>
635                   <packing>
636                     <property name="left_attach">1</property>
637                     <property name="right_attach">2</property>
638                     <property name="top_attach">1</property>
639                     <property name="bottom_attach">2</property>
640                     <property name="y_options">GTK_FILL</property>
641                   </packing>
642                 </child>
643                 <child>
644                   <object class="GtkSpinButton" id="mag_spin">
645                     <property name="visible">True</property>
646                     <property name="can_focus">True</property>
647                     <property name="invisible_char">●</property>
648                     <property name="primary_icon_activatable">False</property>
649                     <property name="secondary_icon_activatable">False</property>
650                     <property name="primary_icon_sensitive">True</property>
651                     <property name="secondary_icon_sensitive">True</property>
652                     <property name="adjustment">mag_adj</property>
653                     <property name="numeric">True</property>
654                     <signal name="change-value" handler="on_rate" swapped="no"/>
655                   </object>
656                   <packing>
657                     <property name="left_attach">1</property>
658                     <property name="right_attach">2</property>
659                     <property name="top_attach">2</property>
660                     <property name="bottom_attach">3</property>
661                     <property name="y_options">GTK_FILL</property>
662                   </packing>
663                 </child>
664                 <child>
665                   <object class="GtkSpinButton" id="touch_spin">
666                     <property name="visible">True</property>
667                     <property name="can_focus">True</property>
668                     <property name="invisible_char">●</property>
669                     <property name="primary_icon_activatable">False</property>
670                     <property name="secondary_icon_activatable">False</property>
671                     <property name="primary_icon_sensitive">True</property>
672                     <property name="secondary_icon_sensitive">True</property>
673                     <property name="adjustment">touch_adj</property>
674                     <property name="numeric">True</property>
675                     <signal name="change-value" handler="on_rate" swapped="no"/>
676                   </object>
677                   <packing>
678                     <property name="left_attach">1</property>
679                     <property name="right_attach">2</property>
680                     <property name="top_attach">3</property>
681                     <property name="bottom_attach">4</property>
682                     <property name="y_options">GTK_FILL</property>
683                   </packing>
684                 </child>
685                 <child>
686                   <object class="GtkSpinButton" id="light_spin">
687                     <property name="visible">True</property>
688                     <property name="can_focus">True</property>
689                     <property name="invisible_char">●</property>
690                     <property name="primary_icon_activatable">False</property>
691                     <property name="secondary_icon_activatable">False</property>
692                     <property name="primary_icon_sensitive">True</property>
693                     <property name="secondary_icon_sensitive">True</property>
694                     <property name="adjustment">light_adj</property>
695                     <property name="numeric">True</property>
696                     <signal name="change-value" handler="on_rate" swapped="no"/>
697                   </object>
698                   <packing>
699                     <property name="left_attach">1</property>
700                     <property name="right_attach">2</property>
701                     <property name="top_attach">4</property>
702                     <property name="bottom_attach">5</property>
703                     <property name="y_options">GTK_FILL</property>
704                   </packing>
705                 </child>
706               </object>
707             </child>
708             <child type="tab">
709               <object class="GtkLabel" id="controls_tab">
710                 <property name="visible">True</property>
711                 <property name="can_focus">False</property>
712                 <property name="xpad">1</property>
713                 <property name="label" translatable="yes">Controls</property>
714               </object>
715               <packing>
716                 <property name="tab_fill">False</property>
717               </packing>
718             </child>
719             <child>
720               <object class="GtkTable" id="data">
721                 <property name="visible">True</property>
722                 <property name="can_focus">False</property>
723                 <property name="n_rows">6</property>
724                 <property name="n_columns">2</property>
725                 <property name="column_spacing">20</property>
726                 <property name="row_spacing">5</property>
727                 <child>
728                   <object class="GtkLabel" id="data_sensor">
729                     <property name="visible">True</property>
730                     <property name="can_focus">False</property>
731                     <property name="label" translatable="yes">Sensor</property>
732                     <attributes>
733                       <attribute name="weight" value="bold"/>
734                     </attributes>
735                   </object>
736                   <packing>
737                     <property name="x_options">GTK_FILL</property>
738                     <property name="y_options">GTK_FILL</property>
739                   </packing>
740                 </child>
741                 <child>
742                   <object class="GtkLabel" id="data_value">
743                     <property name="visible">True</property>
744                     <property name="can_focus">False</property>
745                     <property name="label" translatable="yes">Current Value</property>
746                     <attributes>
747                       <attribute name="weight" value="bold"/>
748                     </attributes>
749                   </object>
750                   <packing>
751                     <property name="left_attach">1</property>
752                     <property name="right_attach">2</property>
753                     <property name="y_options">GTK_FILL</property>
754                   </packing>
755                 </child>
756                 <child>
757                   <object class="GtkHBox" id="accel_val">
758                     <property name="visible">True</property>
759                     <property name="can_focus">False</property>
760                     <child>
761                       <object class="GtkLabel" id="accx">
762                         <property name="visible">True</property>
763                         <property name="can_focus">False</property>
764                         <property name="xalign">0</property>
765                         <property name="label" translatable="yes">X: 0.0</property>
766                       </object>
767                       <packing>
768                         <property name="expand">True</property>
769                         <property name="fill">True</property>
770                         <property name="position">0</property>
771                       </packing>
772                     </child>
773                     <child>
774                       <object class="GtkLabel" id="accy">
775                         <property name="visible">True</property>
776                         <property name="can_focus">False</property>
777                         <property name="xalign">0</property>
778                         <property name="label" translatable="yes">Y: 0.0</property>
779                       </object>
780                       <packing>
781                         <property name="expand">True</property>
782                         <property name="fill">True</property>
783                         <property name="position">1</property>
784                       </packing>
785                     </child>
786                     <child>
787                       <object class="GtkLabel" id="accz">
788                         <property name="visible">True</property>
789                         <property name="can_focus">False</property>
790                         <property name="xalign">0</property>
791                         <property name="label" translatable="yes">Z: 0.0</property>
792                       </object>
793                       <packing>
794                         <property name="expand">True</property>
795                         <property name="fill">True</property>
796                         <property name="position">2</property>
797                       </packing>
798                     </child>
799                   </object>
800                   <packing>
801                     <property name="left_attach">1</property>
802                     <property name="right_attach">2</property>
803                     <property name="top_attach">1</property>
804                     <property name="bottom_attach">2</property>
805                     <property name="y_options">GTK_FILL</property>
806                   </packing>
807                 </child>
808                 <child>
809                   <object class="GtkHBox" id="mag_val">
810                     <property name="visible">True</property>
811                     <property name="can_focus">False</property>
812                     <child>
813                       <object class="GtkLabel" id="magx">
814                         <property name="visible">True</property>
815                         <property name="can_focus">False</property>
816                         <property name="xalign">0</property>
817                         <property name="label" translatable="yes">X: 0.0</property>
818                       </object>
819                       <packing>
820                         <property name="expand">True</property>
821                         <property name="fill">True</property>
822                         <property name="position">0</property>
823                       </packing>
824                     </child>
825                     <child>
826                       <object class="GtkLabel" id="magy">
827                         <property name="visible">True</property>
828                         <property name="can_focus">False</property>
829                         <property name="xalign">0</property>
830                         <property name="label" translatable="yes">Y: 0.0</property>
831                       </object>
832                       <packing>
833                         <property name="expand">True</property>
834                         <property name="fill">True</property>
835                         <property name="position">1</property>
836                       </packing>
837                     </child>
838                     <child>
839                       <object class="GtkLabel" id="magz">
840                         <property name="visible">True</property>
841                         <property name="can_focus">False</property>
842                         <property name="xalign">0</property>
843                         <property name="label" translatable="yes">Z: 0.0</property>
844                       </object>
845                       <packing>
846                         <property name="expand">True</property>
847                         <property name="fill">True</property>
848                         <property name="position">2</property>
849                       </packing>
850                     </child>
851                   </object>
852                   <packing>
853                     <property name="left_attach">1</property>
854                     <property name="right_attach">2</property>
855                     <property name="top_attach">2</property>
856                     <property name="bottom_attach">3</property>
857                     <property name="y_options">GTK_FILL</property>
858                   </packing>
859                 </child>
860                 <child>
861                   <object class="GtkHBox" id="a2d_val">
862                     <property name="visible">True</property>
863                     <property name="can_focus">False</property>
864                     <property name="homogeneous">True</property>
865                     <child>
866                       <object class="GtkLabel" id="a2d0">
867                         <property name="visible">True</property>
868                         <property name="can_focus">False</property>
869                         <property name="xalign">0</property>
870                         <property name="label" translatable="yes">0.0</property>
871                       </object>
872                       <packing>
873                         <property name="expand">True</property>
874                         <property name="fill">True</property>
875                         <property name="position">0</property>
876                       </packing>
877                     </child>
878                     <child>
879                       <object class="GtkLabel" id="a2d1">
880                         <property name="visible">True</property>
881                         <property name="can_focus">False</property>
882                         <property name="xalign">0</property>
883                         <property name="label" translatable="yes">0.0</property>
884                       </object>
885                       <packing>
886                         <property name="expand">True</property>
887                         <property name="fill">True</property>
888                         <property name="position">1</property>
889                       </packing>
890                     </child>
891                     <child>
892                       <object class="GtkLabel" id="a2d2">
893                         <property name="visible">True</property>
894                         <property name="can_focus">False</property>
895                         <property name="xalign">0</property>
896                         <property name="label" translatable="yes">0.0</property>
897                       </object>
898                       <packing>
899                         <property name="expand">True</property>
900                         <property name="fill">True</property>
901                         <property name="position">2</property>
902                       </packing>
903                     </child>
904                     <child>
905                       <object class="GtkLabel" id="a2d3">
906                         <property name="visible">True</property>
907                         <property name="can_focus">False</property>
908                         <property name="xalign">0</property>
909                         <property name="label" translatable="yes">0.0</property>
910                       </object>
911                       <packing>
912                         <property name="expand">True</property>
913                         <property name="fill">True</property>
914                         <property name="position">3</property>
915                       </packing>
916                     </child>
917                     <child>
918                       <object class="GtkLabel" id="a2d4">
919                         <property name="visible">True</property>
920                         <property name="can_focus">False</property>
921                         <property name="xalign">0</property>
922                         <property name="label" translatable="yes">0.0</property>
923                       </object>
924                       <packing>
925                         <property name="expand">True</property>
926                         <property name="fill">True</property>
927                         <property name="position">4</property>
928                       </packing>
929                     </child>
930                     <child>
931                       <object class="GtkLabel" id="a2d5">
932                         <property name="visible">True</property>
933                         <property name="can_focus">False</property>
934                         <property name="xalign">0</property>
935                         <property name="label" translatable="yes">0.0</property>
936                       </object>
937                       <packing>
938                         <property name="expand">True</property>
939                         <property name="fill">True</property>
940                         <property name="position">5</property>
941                       </packing>
942                     </child>
943                   </object>
944                   <packing>
945                     <property name="left_attach">1</property>
946                     <property name="right_attach">2</property>
947                     <property name="top_attach">5</property>
948                     <property name="bottom_attach">6</property>
949                     <property name="y_options">GTK_FILL</property>
950                   </packing>
951                 </child>
952                 <child>
953                   <object class="GtkLabel" id="touch">
954                     <property name="visible">True</property>
955                     <property name="can_focus">False</property>
956                     <property name="xalign">0</property>
957                     <property name="label" translatable="yes">0.0</property>
958                   </object>
959                   <packing>
960                     <property name="left_attach">1</property>
961                     <property name="right_attach">2</property>
962                     <property name="top_attach">3</property>
963                     <property name="bottom_attach">4</property>
964                     <property name="y_options">GTK_FILL</property>
965                   </packing>
966                 </child>
967                 <child>
968                   <object class="GtkLabel" id="light">
969                     <property name="visible">True</property>
970                     <property name="can_focus">False</property>
971                     <property name="xalign">0</property>
972                     <property name="label" translatable="yes">0.0</property>
973                   </object>
974                   <packing>
975                     <property name="left_attach">1</property>
976                     <property name="right_attach">2</property>
977                     <property name="top_attach">4</property>
978                     <property name="bottom_attach">5</property>
979                     <property name="y_options">GTK_FILL</property>
980                   </packing>
981                 </child>
982                 <child>
983                   <object class="GtkLabel" id="accel_lbl">
984                     <property name="visible">True</property>
985                     <property name="can_focus">False</property>
986                     <property name="xalign">0</property>
987                     <property name="label" translatable="yes">Accelerometer</property>
988                   </object>
989                   <packing>
990                     <property name="top_attach">1</property>
991                     <property name="bottom_attach">2</property>
992                     <property name="x_options">GTK_FILL</property>
993                     <property name="y_options">GTK_FILL</property>
994                   </packing>
995                 </child>
996                 <child>
997                   <object class="GtkLabel" id="mag_lbl">
998                     <property name="visible">True</property>
999                     <property name="can_focus">False</property>
1000                     <property name="xalign">0</property>
1001                     <property name="label" translatable="yes">Magnometer</property>
1002                   </object>
1003                   <packing>
1004                     <property name="top_attach">2</property>
1005                     <property name="bottom_attach">3</property>
1006                     <property name="x_options">GTK_FILL</property>
1007                     <property name="y_options">GTK_FILL</property>
1008                   </packing>
1009                 </child>
1010                 <child>
1011                   <object class="GtkLabel" id="touch_lbl">
1012                     <property name="visible">True</property>
1013                     <property name="can_focus">False</property>
1014                     <property name="xalign">0</property>
1015                     <property name="label" translatable="yes">Touch Sensor</property>
1016                   </object>
1017                   <packing>
1018                     <property name="top_attach">3</property>
1019                     <property name="bottom_attach">4</property>
1020                     <property name="x_options">GTK_FILL</property>
1021                     <property name="y_options">GTK_FILL</property>
1022                   </packing>
1023                 </child>
1024                 <child>
1025                   <object class="GtkLabel" id="light_lbl">
1026                     <property name="visible">True</property>
1027                     <property name="can_focus">False</property>
1028                     <property name="xalign">0</property>
1029                     <property name="label" translatable="yes">Light Sensor</property>
1030                   </object>
1031                   <packing>
1032                     <property name="top_attach">4</property>
1033                     <property name="bottom_attach">5</property>
1034                     <property name="x_options">GTK_FILL</property>
1035                     <property name="y_options">GTK_FILL</property>
1036                   </packing>
1037                 </child>
1038                 <child>
1039                   <object class="GtkLabel" id="a2d_lbl">
1040                     <property name="visible">True</property>
1041                     <property name="can_focus">False</property>
1042                     <property name="xalign">0</property>
1043                     <property name="label" translatable="yes">Analog to Digital</property>
1044                   </object>
1045                   <packing>
1046                     <property name="top_attach">5</property>
1047                     <property name="bottom_attach">6</property>
1048                     <property name="x_options">GTK_FILL</property>
1049                     <property name="y_options">GTK_FILL</property>
1050                   </packing>
1051                 </child>
1052               </object>
1053               <packing>
1054                 <property name="position">1</property>
1055               </packing>
1056             </child>
1057             <child type="tab">
1058               <object class="GtkLabel" id="data_tab">
1059                 <property name="visible">True</property>
1060                 <property name="can_focus">False</property>
1061                 <property name="label" translatable="yes">Data</property>
1062               </object>
1063               <packing>
1064                 <property name="position">1</property>
1065                 <property name="tab_fill">False</property>
1066               </packing>
1067             </child>
1068             <child>
1069               <object class="GtkLabel" id="plot">
1070                 <property name="visible">True</property>
1071                 <property name="can_focus">False</property>
1072                 <property name="label" translatable="yes">Plots</property>
1073               </object>
1074               <packing>
1075                 <property name="position">2</property>
1076               </packing>
1077             </child>
1078             <child type="tab">
1079               <object class="GtkLabel" id="plot_tab">
1080                 <property name="visible">True</property>
1081                 <property name="can_focus">False</property>
1082                 <property name="label" translatable="yes">Plots</property>
1083               </object>
1084               <packing>
1085                 <property name="position">2</property>
1086                 <property name="tab_fill">False</property>
1087               </packing>
1088             </child>
1089             <child>
1090               <object class="GtkScrolledWindow" id="serial_scroll">
1091                 <property name="visible">True</property>
1092                 <property name="can_focus">True</property>
1093                 <property name="hscrollbar_policy">automatic</property>
1094                 <property name="vscrollbar_policy">automatic</property>
1095                 <child>
1096                   <object class="GtkTextView" id="serial_view">
1097                     <property name="visible">True</property>
1098                     <property name="can_focus">True</property>
1099                   </object>
1100                 </child>
1101               </object>
1102               <packing>
1103                 <property name="position">3</property>
1104               </packing>
1105             </child>
1106             <child type="tab">
1107               <object class="GtkLabel" id="serial_tab">
1108                 <property name="visible">True</property>
1109                 <property name="can_focus">False</property>
1110                 <property name="label" translatable="yes">Serial</property>
1111               </object>
1112               <packing>
1113                 <property name="position">3</property>
1114                 <property name="tab_fill">False</property>
1115               </packing>
1116             </child>
1117           </object>
1118           <packing>
1119             <property name="expand">True</property>
1120             <property name="fill">True</property>
1121             <property name="position">1</property>
1122           </packing>
1123         </child>
1124         <child>
1125           <object class="GtkHBox" id="status_box">
1126             <property name="visible">True</property>
1127             <property name="can_focus">False</property>
1128             <child>
1129               <object class="GtkImage" id="conn">
1130                 <property name="visible">True</property>
1131                 <property name="can_focus">False</property>
1132                 <property name="stock">gtk-no</property>
1133               </object>
1134               <packing>
1135                 <property name="expand">False</property>
1136                 <property name="fill">True</property>
1137                 <property name="position">0</property>
1138               </packing>
1139             </child>
1140             <child>
1141               <object class="GtkStatusbar" id="status">
1142                 <property name="visible">True</property>
1143                 <property name="can_focus">False</property>
1144                 <property name="spacing">10</property>
1145               </object>
1146               <packing>
1147                 <property name="expand">True</property>
1148                 <property name="fill">True</property>
1149                 <property name="position">1</property>
1150               </packing>
1151             </child>
1152           </object>
1153           <packing>
1154             <property name="expand">False</property>
1155             <property name="fill">True</property>
1156             <property name="position">2</property>
1157           </packing>
1158         </child>
1159       </object>
1160     </child>
1161   </object>
1162 </interface>