diff options
Diffstat (limited to 'bin')
| -rw-r--r-- | bin/gui/control.c | 48 | ||||
| -rw-r--r-- | bin/gui/control.glade | 639 | 
2 files changed, 444 insertions, 243 deletions
| diff --git a/bin/gui/control.c b/bin/gui/control.c index b895f91..69a2cda 100644 --- a/bin/gui/control.c +++ b/bin/gui/control.c @@ -59,6 +59,7 @@ typedef struct {      GtkWidget       *histogram_view;      GtkToggleButton *histogram_button; +    GtkToggleButton *log_button;      GtkAdjustment   *frame_slider;      RingBuffer  *buffer; @@ -83,9 +84,10 @@ down_scale (ThreadData *data, gpointer buffer)      gdouble min;      gdouble max;      gdouble factor; +    gdouble dval;      guint8 *output;      gint stride; -    gint i = 0; +    gint i = 0;         egg_histogram_get_range (EGG_HISTOGRAM_VIEW (data->histogram_view), &min, &max);      factor = 255.0 / (max - min); @@ -99,7 +101,13 @@ down_scale (ThreadData *data, gpointer buffer)              gint offset = y * stride * data->width;              for (gint x = 0; x < data->display_width; x++, offset += stride) { -                gdouble dval = (input[offset] - min) * factor; +                 +                if (gtk_toggle_button_get_active (data->log_button)) +                { +                    dval = log((input[offset] - min) * factor); +                } else { +                    dval = (input[offset] - min) * factor; +                }                  guchar val = (guchar) CLAMP(dval, 0.0, 255.0);                  output[i++] = val; @@ -115,12 +123,19 @@ down_scale (ThreadData *data, gpointer buffer)              gint offset = y * stride * data->width;              for (gint x = 0; x < data->display_width; x++, offset += stride) { -                gdouble dval = (input[offset] - min) * factor; + +                if (gtk_toggle_button_get_active (data->log_button)) +                { +                    dval = log((input[offset] - min) * factor); +                } else { +                    dval = (input[offset] - min) * factor; +                }                  guchar val = (guchar) CLAMP(dval, 0.0, 255.0);                  output[i++] = val;                  output[i++] = val;                  output[i++] = val; +                              }          }      } @@ -132,6 +147,7 @@ up_scale (ThreadData *data, gpointer buffer)      gdouble min;      gdouble max;      gdouble factor; +    gdouble dval;      guint8 *output;      gint i = 0;      gint zoom; @@ -147,7 +163,13 @@ up_scale (ThreadData *data, gpointer buffer)          for (gint y = 0; y < data->display_height; y++) {              for (gint x = 0; x < data->display_width; x++) {                  gint offset = ((gint) (y / zoom) * data->width) + ((gint) (x / zoom)); -                gdouble dval = (input[offset] - min) * factor; +                 +                if (gtk_toggle_button_get_active (data->log_button)) +                { +                    dval = log((input[offset] - min) * factor); +                } else { +                    dval = (input[offset] - min) * factor; +                }                  guchar val = (guchar) CLAMP(dval, 0.0, 255.0);                  output[i++] = val; @@ -162,7 +184,12 @@ up_scale (ThreadData *data, gpointer buffer)          for (gint y = 0; y < data->display_height; y++) {              for (gint x = 0; x < data->display_width; x++) {                  gint offset = ((gint) (y / zoom) * data->width) + ((gint) (x / zoom)); -                gdouble dval = (input[offset] - min) * factor; +                if (gtk_toggle_button_get_active (data->log_button)) +                { +                    dval = log((input[offset] - min) * factor); +                } else {  +                    dval = (input[offset] - min) * factor; +                }                  guchar val = (guchar) CLAMP(dval, 0.0, 255.0);                  output[i++] = val; @@ -215,8 +242,14 @@ get_statistics (ThreadData *data, gdouble *mean, gdouble *sigma, guint *_max, gu          }      } -    *mean = sum / n; -    *sigma = sqrt((squared_sum - sum*sum/n) / (n - 1)); +    if (gtk_toggle_button_get_active (data->log_button)) +    { +        *mean = log(sum/n); +        *sigma = log(sqrt((squared_sum - sum*sum/n) / (n - 1))); +    } else { +        *mean = sum / n; +        *sigma = sqrt((squared_sum - sum*sum/n) / (n - 1)); +    }      *_min = min;      *_max = max;  } @@ -702,6 +735,7 @@ create_main_window (GtkBuilder *builder, const gchar* camera_name)      td.record_button    = GTK_WIDGET (gtk_builder_get_object (builder, "record-button"));      td.download_button  = GTK_WIDGET (gtk_builder_get_object (builder, "download-button"));      td.histogram_button = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "histogram-checkbutton")); +    td.log_button       = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "logarithmus-checkbutton"));      td.frame_slider     = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "frames-adjustment"));      td.count            = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "acquisitions-adjustment")); diff --git a/bin/gui/control.glade b/bin/gui/control.glade index d4b663e..3467ed7 100644 --- a/bin/gui/control.glade +++ b/bin/gui/control.glade @@ -2,11 +2,9 @@  <interface>    <requires lib="gtk+" version="2.20"/>    <!-- interface-naming-policy project-wide --> -  <object class="GtkListStore" id="camera-types"> -    <columns> -      <!-- column-name name --> -      <column type="gchararray"/> -    </columns> +  <object class="GtkAdjustment" id="acquisitions-adjustment"> +    <property name="step_increment">1</property> +    <property name="page_increment">10</property>    </object>    <object class="GtkListStore" id="camera-properties">      <columns> @@ -18,29 +16,269 @@        <column type="gboolean"/>      </columns>    </object> +  <object class="GtkListStore" id="camera-types"> +    <columns> +      <!-- column-name name --> +      <column type="gchararray"/> +    </columns> +  </object> +  <object class="GtkWindow" id="choice-window"> +    <property name="can_focus">False</property> +    <property name="border_width">6</property> +    <child> +      <object class="GtkVBox" id="vbox3"> +        <property name="visible">True</property> +        <property name="can_focus">False</property> +        <property name="spacing">2</property> +        <child> +          <object class="GtkScrolledWindow" id="scrolledwindow3"> +            <property name="visible">True</property> +            <property name="can_focus">True</property> +            <property name="hscrollbar_policy">automatic</property> +            <property name="vscrollbar_policy">automatic</property> +            <child> +              <object class="GtkTreeView" id="treeview-cameras"> +                <property name="visible">True</property> +                <property name="can_focus">True</property> +                <property name="model">camera-types</property> +                <property name="headers_clickable">False</property> +                <property name="search_column">0</property> +                <child> +                  <object class="GtkTreeViewColumn" id="treeviewcolumn1"> +                    <property name="title">Choose camera</property> +                    <child> +                      <object class="GtkCellRendererText" id="cellrenderertext1"/> +                      <attributes> +                        <attribute name="text">0</attribute> +                      </attributes> +                    </child> +                  </object> +                </child> +              </object> +            </child> +          </object> +          <packing> +            <property name="expand">True</property> +            <property name="fill">True</property> +            <property name="position">0</property> +          </packing> +        </child> +        <child> +          <object class="GtkHButtonBox" id="hbuttonbox1"> +            <property name="visible">True</property> +            <property name="can_focus">False</property> +            <property name="spacing">6</property> +            <property name="layout_style">end</property> +            <child> +              <object class="GtkButton" id="cancel-button"> +                <property name="label">gtk-quit</property> +                <property name="use_action_appearance">False</property> +                <property name="visible">True</property> +                <property name="can_focus">True</property> +                <property name="receives_default">True</property> +                <property name="use_stock">True</property> +                <signal name="clicked" handler="gtk_main_quit" swapped="no"/> +              </object> +              <packing> +                <property name="expand">False</property> +                <property name="fill">False</property> +                <property name="position">0</property> +              </packing> +            </child> +            <child> +              <object class="GtkButton" id="proceed-button"> +                <property name="label">gtk-ok</property> +                <property name="use_action_appearance">False</property> +                <property name="visible">True</property> +                <property name="can_focus">True</property> +                <property name="receives_default">True</property> +                <property name="use_stock">True</property> +              </object> +              <packing> +                <property name="expand">False</property> +                <property name="fill">False</property> +                <property name="position">1</property> +              </packing> +            </child> +          </object> +          <packing> +            <property name="expand">False</property> +            <property name="fill">True</property> +            <property name="padding">6</property> +            <property name="position">1</property> +          </packing> +        </child> +      </object> +    </child> +  </object> +  <object class="GtkAdjustment" id="download-adjustment"> +    <property name="upper">100</property> +    <property name="step_increment">1</property> +    <property name="page_increment">10</property> +    <property name="page_size">10</property> +  </object> +  <object class="GtkDialog" id="download-dialog"> +    <property name="can_focus">False</property> +    <property name="border_width">5</property> +    <property name="type_hint">normal</property> +    <child internal-child="vbox"> +      <object class="GtkVBox" id="dialog-vbox1"> +        <property name="visible">True</property> +        <property name="can_focus">False</property> +        <property name="spacing">2</property> +        <child internal-child="action_area"> +          <object class="GtkHButtonBox" id="dialog-action_area1"> +            <property name="visible">True</property> +            <property name="can_focus">False</property> +            <property name="layout_style">end</property> +            <child> +              <object class="GtkButton" id="download-close-button"> +                <property name="label">gtk-close</property> +                <property name="use_action_appearance">False</property> +                <property name="visible">True</property> +                <property name="can_focus">True</property> +                <property name="receives_default">True</property> +                <property name="use_stock">True</property> +              </object> +              <packing> +                <property name="expand">False</property> +                <property name="fill">False</property> +                <property name="position">0</property> +              </packing> +            </child> +          </object> +          <packing> +            <property name="expand">False</property> +            <property name="fill">False</property> +            <property name="pack_type">end</property> +            <property name="position">0</property> +          </packing> +        </child> +        <child> +          <object class="GtkVBox" id="vbox2"> +            <property name="visible">True</property> +            <property name="can_focus">False</property> +            <property name="border_width">10</property> +            <property name="spacing">6</property> +            <child> +              <object class="GtkLabel" id="label7"> +                <property name="visible">True</property> +                <property name="can_focus">False</property> +                <property name="xalign">0</property> +                <property name="label" translatable="yes">Downloading Frames …</property> +              </object> +              <packing> +                <property name="expand">False</property> +                <property name="fill">False</property> +                <property name="position">0</property> +              </packing> +            </child> +            <child> +              <object class="GtkProgressBar" id="download-progressbar"> +                <property name="visible">True</property> +                <property name="can_focus">False</property> +                <property name="adjustment">download-adjustment</property> +              </object> +              <packing> +                <property name="expand">False</property> +                <property name="fill">True</property> +                <property name="position">1</property> +              </packing> +            </child> +          </object> +          <packing> +            <property name="expand">True</property> +            <property name="fill">True</property> +            <property name="position">1</property> +          </packing> +        </child> +      </object> +    </child> +    <action-widgets> +      <action-widget response="0">download-close-button</action-widget> +    </action-widgets> +  </object> +  <object class="GtkAdjustment" id="exposure-adjustment"> +    <property name="upper">100</property> +    <property name="step_increment">0.01</property> +    <property name="page_increment">10</property> +  </object> +  <object class="GtkAdjustment" id="frames-adjustment"> +    <property name="step_increment">1</property> +    <property name="page_increment">10</property> +  </object> +  <object class="GtkAdjustment" id="max-bin-value-adjustment"> +    <property name="upper">65535</property> +    <property name="value">256</property> +    <property name="step_increment">1</property> +    <property name="page_increment">10</property> +  </object> +  <object class="GtkAdjustment" id="min-bin-value-adjustment"> +    <property name="upper">65535</property> +    <property name="step_increment">1</property> +    <property name="page_increment">10</property> +  </object> +  <object class="GtkListStore" id="zoom-values"> +    <columns> +      <!-- column-name display --> +      <column type="gchararray"/> +      <!-- column-name factor --> +      <column type="gdouble"/> +    </columns> +    <data> +      <row> +        <col id="0" translatable="yes">400 %</col> +        <col id="1">4</col> +      </row> +      <row> +        <col id="0" translatable="yes">200 %</col> +        <col id="1">2</col> +      </row> +      <row> +        <col id="0" translatable="yes">100 %</col> +        <col id="1">1</col> +      </row> +      <row> +        <col id="0" translatable="yes">50 %</col> +        <col id="1">0.5</col> +      </row> +      <row> +        <col id="0" translatable="yes">25 %</col> +        <col id="1">0.25</col> +      </row> +    </data> +  </object>    <object class="GtkWindow" id="window"> +    <property name="can_focus">False</property>      <property name="title" translatable="yes">Camera Control</property>      <property name="default_width">1024</property>      <property name="default_height">768</property> -    <signal name="delete_event" handler="on_delete_event"/> +    <signal name="delete-event" handler="on_delete_event" swapped="no"/>      <child>        <object class="GtkVBox" id="vbox1">          <property name="visible">True</property> +        <property name="can_focus">False</property>          <child>            <object class="GtkMenuBar" id="menubar1">              <property name="visible">True</property> +            <property name="can_focus">False</property>              <child>                <object class="GtkMenuItem" id="menuitem1"> +                <property name="use_action_appearance">False</property>                  <property name="visible">True</property> +                <property name="can_focus">False</property>                  <property name="label" translatable="yes">_File</property>                  <property name="use_underline">True</property>                  <child type="submenu">                    <object class="GtkMenu" id="menu_file">                      <property name="visible">True</property> +                    <property name="can_focus">False</property>                      <child>                        <object class="GtkImageMenuItem" id="imagemenuitem1">                          <property name="label">gtk-new</property> +                        <property name="use_action_appearance">False</property>                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                          <property name="use_underline">True</property>                          <property name="use_stock">True</property>                        </object> @@ -48,7 +286,9 @@                      <child>                        <object class="GtkImageMenuItem" id="imagemenuitem2">                          <property name="label">gtk-open</property> +                        <property name="use_action_appearance">False</property>                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                          <property name="use_underline">True</property>                          <property name="use_stock">True</property>                        </object> @@ -56,7 +296,9 @@                      <child>                        <object class="GtkImageMenuItem" id="save-item">                          <property name="label">gtk-save-as</property> +                        <property name="use_action_appearance">False</property>                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                          <property name="use_underline">True</property>                          <property name="use_stock">True</property>                        </object> @@ -64,15 +306,18 @@                      <child>                        <object class="GtkSeparatorMenuItem" id="separatormenuitem1">                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                        </object>                      </child>                      <child>                        <object class="GtkImageMenuItem" id="imagemenuitem_quit">                          <property name="label">gtk-quit</property> +                        <property name="use_action_appearance">False</property>                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                          <property name="use_underline">True</property>                          <property name="use_stock">True</property> -                        <signal name="activate" handler="gtk_main_quit"/> +                        <signal name="activate" handler="gtk_main_quit" swapped="no"/>                        </object>                      </child>                    </object> @@ -81,16 +326,21 @@              </child>              <child>                <object class="GtkMenuItem" id="menuitem4"> +                <property name="use_action_appearance">False</property>                  <property name="visible">True</property> +                <property name="can_focus">False</property>                  <property name="label" translatable="yes">_Help</property>                  <property name="use_underline">True</property>                  <child type="submenu">                    <object class="GtkMenu" id="menu_help">                      <property name="visible">True</property> +                    <property name="can_focus">False</property>                      <child>                        <object class="GtkImageMenuItem" id="imagemenuitem_about">                          <property name="label">gtk-about</property> +                        <property name="use_action_appearance">False</property>                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                          <property name="use_underline">True</property>                          <property name="use_stock">True</property>                        </object> @@ -102,15 +352,19 @@            </object>            <packing>              <property name="expand">False</property> +            <property name="fill">True</property>              <property name="position">0</property>            </packing>          </child>          <child>            <object class="GtkToolbar" id="toolbar">              <property name="visible">True</property> +            <property name="can_focus">False</property>              <child>                <object class="GtkToolButton" id="start-button"> +                <property name="use_action_appearance">False</property>                  <property name="visible">True</property> +                <property name="can_focus">False</property>                  <property name="label" translatable="yes">Run</property>                  <property name="use_underline">True</property>                  <property name="stock_id">gtk-media-play</property> @@ -122,7 +376,9 @@              </child>              <child>                <object class="GtkToolButton" id="record-button"> +                <property name="use_action_appearance">False</property>                  <property name="visible">True</property> +                <property name="can_focus">False</property>                  <property name="label" translatable="yes">Record</property>                  <property name="use_underline">True</property>                  <property name="stock_id">gtk-media-record</property> @@ -134,7 +390,9 @@              </child>              <child>                <object class="GtkToolButton" id="stop-button"> +                <property name="use_action_appearance">False</property>                  <property name="visible">True</property> +                <property name="can_focus">False</property>                  <property name="label" translatable="yes">Stop</property>                  <property name="use_underline">True</property>                  <property name="stock_id">gtk-media-stop</property> @@ -146,7 +404,9 @@              </child>              <child>                <object class="GtkToolButton" id="download-button"> +                <property name="use_action_appearance">False</property>                  <property name="visible">True</property> +                <property name="can_focus">False</property>                  <property name="label" translatable="yes">Download</property>                  <property name="use_underline">True</property>                  <property name="icon_name">network-receive</property> @@ -159,6 +419,7 @@            </object>            <packing>              <property name="expand">False</property> +            <property name="fill">True</property>              <property name="position">1</property>            </packing>          </child> @@ -178,10 +439,12 @@                  <child>                    <object class="GtkViewport" id="viewport1">                      <property name="visible">True</property> +                    <property name="can_focus">False</property>                      <property name="resize_mode">queue</property>                      <child>                        <object class="GtkImage" id="image">                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                          <property name="stock">gtk-missing-image</property>                        </object>                      </child> @@ -196,6 +459,7 @@              <child>                <object class="GtkVBox" id="settings-box">                  <property name="visible">True</property> +                <property name="can_focus">False</property>                  <child>                    <object class="GtkExpander" id="acquisition-expander">                      <property name="visible">True</property> @@ -204,10 +468,12 @@                      <child>                        <object class="GtkVBox" id="vbox4">                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                          <property name="border_width">12</property>                          <child>                            <object class="GtkLabel" id="label9">                              <property name="visible">True</property> +                            <property name="can_focus">False</property>                              <property name="xalign">0</property>                              <property name="label" translatable="yes">Settings</property>                              <attributes> @@ -223,12 +489,14 @@                          <child>                            <object class="GtkTable" id="table3">                              <property name="visible">True</property> +                            <property name="can_focus">False</property>                              <property name="border_width">6</property>                              <property name="n_rows">3</property>                              <property name="n_columns">2</property>                              <child>                                <object class="GtkLabel" id="label10">                                  <property name="visible">True</property> +                                <property name="can_focus">False</property>                                  <property name="xalign">0</property>                                  <property name="label" translatable="yes">Exposure time:</property>                                </object> @@ -241,6 +509,7 @@                              <child>                                <object class="GtkLabel" id="label11">                                  <property name="visible">True</property> +                                <property name="can_focus">False</property>                                  <property name="xalign">0</property>                                  <property name="label" translatable="yes">Acquire:</property>                                </object> @@ -255,27 +524,36 @@                              <child>                                <object class="GtkHBox" id="hbox2">                                  <property name="visible">True</property> +                                <property name="can_focus">False</property>                                  <property name="spacing">6</property>                                  <child>                                    <object class="GtkSpinButton" id="spinbutton3">                                      <property name="visible">True</property>                                      <property name="can_focus">True</property>                                      <property name="invisible_char">•</property> +                                    <property name="primary_icon_activatable">False</property> +                                    <property name="secondary_icon_activatable">False</property> +                                    <property name="primary_icon_sensitive">True</property> +                                    <property name="secondary_icon_sensitive">True</property>                                      <property name="adjustment">exposure-adjustment</property>                                      <property name="digits">6</property>                                    </object>                                    <packing>                                      <property name="expand">False</property> +                                    <property name="fill">True</property>                                      <property name="position">0</property>                                    </packing>                                  </child>                                  <child>                                    <object class="GtkLabel" id="label14">                                      <property name="visible">True</property> +                                    <property name="can_focus">False</property>                                      <property name="xalign">0</property>                                      <property name="label" translatable="yes">seconds</property>                                    </object>                                    <packing> +                                    <property name="expand">True</property> +                                    <property name="fill">True</property>                                      <property name="position">1</property>                                    </packing>                                  </child> @@ -290,6 +568,7 @@                              <child>                                <object class="GtkHBox" id="hbox3">                                  <property name="visible">True</property> +                                <property name="can_focus">False</property>                                  <property name="spacing">6</property>                                  <child>                                    <object class="GtkSpinButton" id="spinbutton4"> @@ -297,20 +576,28 @@                                      <property name="can_focus">True</property>                                      <property name="invisible_char">•</property>                                      <property name="width_chars">6</property> +                                    <property name="primary_icon_activatable">False</property> +                                    <property name="secondary_icon_activatable">False</property> +                                    <property name="primary_icon_sensitive">True</property> +                                    <property name="secondary_icon_sensitive">True</property>                                      <property name="adjustment">acquisitions-adjustment</property>                                    </object>                                    <packing>                                      <property name="expand">False</property> +                                    <property name="fill">True</property>                                      <property name="position">0</property>                                    </packing>                                  </child>                                  <child>                                    <object class="GtkLabel" id="label16">                                      <property name="visible">True</property> +                                    <property name="can_focus">False</property>                                      <property name="xalign">0</property>                                      <property name="label" translatable="yes">frames</property>                                    </object>                                    <packing> +                                    <property name="expand">True</property> +                                    <property name="fill">True</property>                                      <property name="position">1</property>                                    </packing>                                  </child> @@ -326,6 +613,7 @@                              <child>                                <object class="GtkCheckButton" id="repeat-checkbutton">                                  <property name="label" translatable="yes">Repeat</property> +                                <property name="use_action_appearance">False</property>                                  <property name="visible">True</property>                                  <property name="can_focus">True</property>                                  <property name="receives_default">False</property> @@ -345,6 +633,7 @@                                <object class="GtkHBox" id="repeat-box">                                  <property name="visible">True</property>                                  <property name="sensitive">False</property> +                                <property name="can_focus">False</property>                                  <property name="spacing">6</property>                                  <child>                                    <object class="GtkSpinButton" id="spinbutton5"> @@ -352,19 +641,27 @@                                      <property name="can_focus">True</property>                                      <property name="invisible_char">•</property>                                      <property name="width_chars">6</property> +                                    <property name="primary_icon_activatable">False</property> +                                    <property name="secondary_icon_activatable">False</property> +                                    <property name="primary_icon_sensitive">True</property> +                                    <property name="secondary_icon_sensitive">True</property>                                    </object>                                    <packing>                                      <property name="expand">False</property> +                                    <property name="fill">True</property>                                      <property name="position">0</property>                                    </packing>                                  </child>                                  <child>                                    <object class="GtkLabel" id="label13">                                      <property name="visible">True</property> +                                    <property name="can_focus">False</property>                                      <property name="xalign">0</property>                                      <property name="label" translatable="yes">times</property>                                    </object>                                    <packing> +                                    <property name="expand">True</property> +                                    <property name="fill">True</property>                                      <property name="position">1</property>                                    </packing>                                  </child> @@ -381,12 +678,14 @@                            </object>                            <packing>                              <property name="expand">False</property> +                            <property name="fill">True</property>                              <property name="position">1</property>                            </packing>                          </child>                          <child>                            <object class="GtkLabel" id="label15">                              <property name="visible">True</property> +                            <property name="can_focus">False</property>                              <property name="xalign">0</property>                              <property name="yalign">0</property>                              <property name="ypad">6</property> @@ -404,6 +703,7 @@                          <child>                            <object class="GtkAlignment" id="alignment1">                              <property name="visible">True</property> +                            <property name="can_focus">False</property>                              <property name="xalign">0</property>                              <property name="left_padding">12</property>                              <child> @@ -416,6 +716,8 @@                              </child>                            </object>                            <packing> +                            <property name="expand">True</property> +                            <property name="fill">True</property>                              <property name="position">3</property>                            </packing>                          </child> @@ -424,6 +726,7 @@                      <child type="label">                        <object class="GtkLabel" id="label18">                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                          <property name="label" translatable="yes">Acquisition</property>                          <attributes>                            <attribute name="weight" value="bold"/> @@ -433,6 +736,7 @@                    </object>                    <packing>                      <property name="expand">False</property> +                    <property name="fill">True</property>                      <property name="position">0</property>                    </packing>                  </child> @@ -444,10 +748,12 @@                      <child>                        <object class="GtkVBox" id="vbox7">                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                          <property name="border_width">12</property>                          <child>                            <object class="GtkLabel" id="label5">                              <property name="visible">True</property> +                            <property name="can_focus">False</property>                              <property name="xalign">0</property>                              <property name="label" translatable="yes">Histogram</property>                              <attributes> @@ -463,13 +769,16 @@                          <child>                            <object class="GtkVBox" id="histogram-box">                              <property name="visible">True</property> +                            <property name="can_focus">False</property>                              <property name="border_width">12</property>                              <child>                                <object class="GtkHBox" id="hbox1">                                  <property name="visible">True</property> +                                <property name="can_focus">False</property>                                  <child>                                    <object class="GtkLabel" id="label2">                                      <property name="visible">True</property> +                                    <property name="can_focus">False</property>                                      <property name="xalign">0</property>                                      <property name="label" translatable="yes">Minimum:</property>                                    </object> @@ -485,6 +794,10 @@                                      <property name="visible">True</property>                                      <property name="can_focus">True</property>                                      <property name="invisible_char">•</property> +                                    <property name="primary_icon_activatable">False</property> +                                    <property name="secondary_icon_activatable">False</property> +                                    <property name="primary_icon_sensitive">True</property> +                                    <property name="secondary_icon_sensitive">True</property>                                      <property name="adjustment">min-bin-value-adjustment</property>                                    </object>                                    <packing> @@ -497,6 +810,7 @@                                  <child>                                    <object class="GtkLabel" id="label3">                                      <property name="visible">True</property> +                                    <property name="can_focus">False</property>                                      <property name="xalign">0</property>                                      <property name="label" translatable="yes">Maximum:</property>                                    </object> @@ -512,6 +826,10 @@                                      <property name="visible">True</property>                                      <property name="can_focus">True</property>                                      <property name="invisible_char">•</property> +                                    <property name="primary_icon_activatable">False</property> +                                    <property name="secondary_icon_activatable">False</property> +                                    <property name="primary_icon_sensitive">True</property> +                                    <property name="secondary_icon_sensitive">True</property>                                      <property name="adjustment">max-bin-value-adjustment</property>                                    </object>                                    <packing> @@ -535,6 +853,7 @@                              <child>                                <object class="GtkCheckButton" id="histogram-checkbutton">                                  <property name="label" translatable="yes">Live Update</property> +                                <property name="use_action_appearance">False</property>                                  <property name="visible">True</property>                                  <property name="can_focus">True</property>                                  <property name="receives_default">False</property> @@ -551,12 +870,15 @@                              </child>                            </object>                            <packing> +                            <property name="expand">True</property> +                            <property name="fill">True</property>                              <property name="position">1</property>                            </packing>                          </child>                          <child>                            <object class="GtkTable" id="stats-table">                              <property name="visible">True</property> +                            <property name="can_focus">False</property>                              <property name="border_width">12</property>                              <property name="n_rows">2</property>                              <property name="n_columns">2</property> @@ -565,6 +887,7 @@                              <child>                                <object class="GtkLabel" id="label20">                                  <property name="visible">True</property> +                                <property name="can_focus">False</property>                                  <property name="xalign">0</property>                                  <property name="label" translatable="yes">Pixel counts:</property>                                </object> @@ -575,6 +898,7 @@                              <child>                                <object class="GtkLabel" id="label21">                                  <property name="visible">True</property> +                                <property name="can_focus">False</property>                                  <property name="xalign">0</property>                                  <property name="label" translatable="yes">Distribution:</property>                                </object> @@ -587,44 +911,57 @@                              <child>                                <object class="GtkHBox" id="hbox5">                                  <property name="visible">True</property> +                                <property name="can_focus">False</property>                                  <property name="spacing">6</property>                                  <child>                                    <object class="GtkLabel" id="mean-label">                                      <property name="visible">True</property> +                                    <property name="can_focus">False</property>                                      <property name="xalign">0</property>                                      <property name="label" translatable="yes">µ = 0.0</property>                                    </object>                                    <packing> +                                    <property name="expand">True</property> +                                    <property name="fill">True</property>                                      <property name="position">0</property>                                    </packing>                                  </child>                                  <child>                                    <object class="GtkLabel" id="sigma-label">                                      <property name="visible">True</property> +                                    <property name="can_focus">False</property>                                      <property name="xalign">0</property>                                      <property name="label" translatable="yes">σ = 0.0</property>                                    </object>                                    <packing> +                                    <property name="expand">True</property> +                                    <property name="fill">True</property>                                      <property name="position">1</property>                                    </packing>                                  </child>                                  <child>                                    <object class="GtkLabel" id="min-label">                                      <property name="visible">True</property> +                                    <property name="can_focus">False</property>                                      <property name="xalign">0</property>                                      <property name="label" translatable="yes">min = 0</property>                                    </object>                                    <packing> +                                    <property name="expand">True</property> +                                    <property name="fill">True</property>                                      <property name="position">2</property>                                    </packing>                                  </child>                                  <child>                                    <object class="GtkLabel" id="max-label">                                      <property name="visible">True</property> +                                    <property name="can_focus">False</property>                                      <property name="xalign">0</property>                                      <property name="label" translatable="yes">max = 0</property>                                    </object>                                    <packing> +                                    <property name="expand">True</property> +                                    <property name="fill">True</property>                                      <property name="position">3</property>                                    </packing>                                  </child> @@ -640,6 +977,7 @@                              <child>                                <object class="GtkLabel" id="label26">                                  <property name="visible">True</property> +                                <property name="can_focus">False</property>                                  <property name="xalign">0</property>                                  <property name="label" translatable="yes">0</property>                                </object> @@ -650,6 +988,8 @@                              </child>                            </object>                            <packing> +                            <property name="expand">True</property> +                            <property name="fill">True</property>                              <property name="position">2</property>                            </packing>                          </child> @@ -658,6 +998,7 @@                      <child type="label">                        <object class="GtkLabel" id="label22">                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                          <property name="label" translatable="yes">Statistics</property>                          <attributes>                            <attribute name="weight" value="bold"/> @@ -667,6 +1008,7 @@                    </object>                    <packing>                      <property name="expand">False</property> +                    <property name="fill">True</property>                      <property name="position">1</property>                    </packing>                  </child> @@ -675,37 +1017,68 @@                      <property name="visible">True</property>                      <property name="can_focus">True</property>                      <child> -                      <object class="GtkHBox" id="hbox4"> +                      <object class="GtkVBox" id="vbox5">                          <property name="visible">True</property> -                        <property name="border_width">12</property> -                        <property name="spacing">6</property> +                        <property name="can_focus">False</property>                          <child> -                          <object class="GtkLabel" id="label23"> +                          <object class="GtkHBox" id="hbox6">                              <property name="visible">True</property> -                            <property name="xalign">0</property> -                            <property name="label" translatable="yes">Zoom:</property> +                            <property name="can_focus">False</property> +                            <property name="border_width">12</property> +                            <property name="spacing">6</property> +                            <child> +                              <object class="GtkLabel" id="label23"> +                                <property name="visible">True</property> +                                <property name="can_focus">False</property> +                                <property name="xalign">0</property> +                                <property name="label" translatable="yes">Zoom:</property> +                              </object> +                              <packing> +                                <property name="expand">False</property> +                                <property name="fill">False</property> +                                <property name="position">0</property> +                              </packing> +                            </child> +                            <child> +                              <object class="GtkComboBox" id="zoom-box"> +                                <property name="visible">True</property> +                                <property name="can_focus">False</property> +                                <property name="model">zoom-values</property> +                                <child> +                                  <object class="GtkCellRendererText" id="cellrenderertext2"/> +                                  <attributes> +                                    <attribute name="text">0</attribute> +                                  </attributes> +                                </child> +                              </object> +                              <packing> +                                <property name="expand">False</property> +                                <property name="fill">False</property> +                                <property name="position">1</property> +                              </packing> +                            </child>                            </object>                            <packing> -                            <property name="expand">False</property> -                            <property name="fill">False</property> +                            <property name="expand">True</property> +                            <property name="fill">True</property>                              <property name="position">0</property>                            </packing>                          </child>                          <child> -                          <object class="GtkComboBox" id="zoom-box"> +                          <object class="GtkCheckButton" id="logarithmus-checkbutton"> +                            <property name="label" translatable="yes">Logarithmus</property> +                            <property name="use_action_appearance">False</property>                              <property name="visible">True</property> -                            <property name="model">zoom-values</property> -                            <child> -                              <object class="GtkCellRendererText" id="cellrenderertext2"/> -                              <attributes> -                                <attribute name="text">0</attribute> -                              </attributes> -                            </child> +                            <property name="can_focus">True</property> +                            <property name="receives_default">False</property> +                            <property name="border_width">10</property> +                            <property name="xalign">0</property> +                            <property name="draw_indicator">True</property>                            </object>                            <packing>                              <property name="expand">False</property>                              <property name="fill">False</property> -                            <property name="position">1</property> +                            <property name="position">2</property>                            </packing>                          </child>                        </object> @@ -713,6 +1086,7 @@                      <child type="label">                        <object class="GtkLabel" id="label6">                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                          <property name="label" translatable="yes">Preview</property>                          <attributes>                            <attribute name="weight" value="bold"/> @@ -744,6 +1118,7 @@                      <child type="label">                        <object class="GtkLabel" id="label17">                          <property name="visible">True</property> +                        <property name="can_focus">False</property>                          <property name="label" translatable="yes">Properties</property>                          <attributes>                            <attribute name="weight" value="bold"/> @@ -752,6 +1127,8 @@                      </child>                    </object>                    <packing> +                    <property name="expand">True</property> +                    <property name="fill">True</property>                      <property name="position">3</property>                    </packing>                  </child> @@ -763,222 +1140,12 @@              </child>            </object>            <packing> +            <property name="expand">True</property> +            <property name="fill">True</property>              <property name="position">2</property>            </packing>          </child>        </object>      </child>    </object> -  <object class="GtkListStore" id="zoom-values"> -    <columns> -      <!-- column-name display --> -      <column type="gchararray"/> -      <!-- column-name factor --> -      <column type="gdouble"/> -    </columns> -    <data> -      <row> -        <col id="0" translatable="yes">400 %</col> -        <col id="1">4</col> -      </row> -      <row> -        <col id="0" translatable="yes">200 %</col> -        <col id="1">2</col> -      </row> -      <row> -        <col id="0" translatable="yes">100 %</col> -        <col id="1">1</col> -      </row> -      <row> -        <col id="0" translatable="yes">50 %</col> -        <col id="1">0.5</col> -      </row> -      <row> -        <col id="0" translatable="yes">25 %</col> -        <col id="1">0.25</col> -      </row> -    </data> -  </object> -  <object class="GtkWindow" id="choice-window"> -    <property name="border_width">6</property> -    <child> -      <object class="GtkVBox" id="vbox3"> -        <property name="visible">True</property> -        <property name="spacing">2</property> -        <child> -          <object class="GtkScrolledWindow" id="scrolledwindow3"> -            <property name="visible">True</property> -            <property name="can_focus">True</property> -            <property name="hscrollbar_policy">automatic</property> -            <property name="vscrollbar_policy">automatic</property> -            <child> -              <object class="GtkTreeView" id="treeview-cameras"> -                <property name="visible">True</property> -                <property name="can_focus">True</property> -                <property name="model">camera-types</property> -                <property name="headers_clickable">False</property> -                <property name="search_column">0</property> -                <child> -                  <object class="GtkTreeViewColumn" id="treeviewcolumn1"> -                    <property name="title">Choose camera</property> -                    <child> -                      <object class="GtkCellRendererText" id="cellrenderertext1"/> -                      <attributes> -                        <attribute name="text">0</attribute> -                      </attributes> -                    </child> -                  </object> -                </child> -              </object> -            </child> -          </object> -          <packing> -            <property name="position">0</property> -          </packing> -        </child> -        <child> -          <object class="GtkHButtonBox" id="hbuttonbox1"> -            <property name="visible">True</property> -            <property name="spacing">6</property> -            <property name="layout_style">end</property> -            <child> -              <object class="GtkButton" id="cancel-button"> -                <property name="label">gtk-quit</property> -                <property name="visible">True</property> -                <property name="can_focus">True</property> -                <property name="receives_default">True</property> -                <property name="use_stock">True</property> -                <signal name="clicked" handler="gtk_main_quit"/> -              </object> -              <packing> -                <property name="expand">False</property> -                <property name="fill">False</property> -                <property name="position">0</property> -              </packing> -            </child> -            <child> -              <object class="GtkButton" id="proceed-button"> -                <property name="label">gtk-ok</property> -                <property name="visible">True</property> -                <property name="can_focus">True</property> -                <property name="receives_default">True</property> -                <property name="use_stock">True</property> -              </object> -              <packing> -                <property name="expand">False</property> -                <property name="fill">False</property> -                <property name="position">1</property> -              </packing> -            </child> -          </object> -          <packing> -            <property name="expand">False</property> -            <property name="padding">6</property> -            <property name="position">1</property> -          </packing> -        </child> -      </object> -    </child> -  </object> -  <object class="GtkAdjustment" id="min-bin-value-adjustment"> -    <property name="upper">65535</property> -    <property name="step_increment">1</property> -    <property name="page_increment">10</property> -  </object> -  <object class="GtkAdjustment" id="max-bin-value-adjustment"> -    <property name="value">256</property> -    <property name="upper">65535</property> -    <property name="step_increment">1</property> -    <property name="page_increment">10</property> -  </object> -  <object class="GtkAdjustment" id="frames-adjustment"> -    <property name="step_increment">1</property> -    <property name="page_increment">10</property> -  </object> -  <object class="GtkDialog" id="download-dialog"> -    <property name="border_width">5</property> -    <property name="type_hint">normal</property> -    <child internal-child="vbox"> -      <object class="GtkVBox" id="dialog-vbox1"> -        <property name="visible">True</property> -        <property name="spacing">2</property> -        <child> -          <object class="GtkVBox" id="vbox2"> -            <property name="visible">True</property> -            <property name="border_width">10</property> -            <property name="spacing">6</property> -            <child> -              <object class="GtkLabel" id="label7"> -                <property name="visible">True</property> -                <property name="xalign">0</property> -                <property name="label" translatable="yes">Downloading Frames …</property> -              </object> -              <packing> -                <property name="expand">False</property> -                <property name="fill">False</property> -                <property name="position">0</property> -              </packing> -            </child> -            <child> -              <object class="GtkProgressBar" id="download-progressbar"> -                <property name="visible">True</property> -                <property name="adjustment">download-adjustment</property> -              </object> -              <packing> -                <property name="expand">False</property> -                <property name="position">1</property> -              </packing> -            </child> -          </object> -          <packing> -            <property name="position">1</property> -          </packing> -        </child> -        <child internal-child="action_area"> -          <object class="GtkHButtonBox" id="dialog-action_area1"> -            <property name="visible">True</property> -            <property name="layout_style">end</property> -            <child> -              <object class="GtkButton" id="download-close-button"> -                <property name="label">gtk-close</property> -                <property name="visible">True</property> -                <property name="can_focus">True</property> -                <property name="receives_default">True</property> -                <property name="use_stock">True</property> -              </object> -              <packing> -                <property name="expand">False</property> -                <property name="fill">False</property> -                <property name="position">0</property> -              </packing> -            </child> -          </object> -          <packing> -            <property name="expand">False</property> -            <property name="fill">False</property> -            <property name="pack_type">end</property> -            <property name="position">0</property> -          </packing> -        </child> -      </object> -    </child> -    <action-widgets> -      <action-widget response="0">download-close-button</action-widget> -    </action-widgets> -  </object> -  <object class="GtkAdjustment" id="download-adjustment"> -    <property name="upper">100</property> -    <property name="step_increment">1</property> -    <property name="page_increment">10</property> -    <property name="page_size">10</property> -  </object> -  <object class="GtkAdjustment" id="exposure-adjustment"> -    <property name="upper">100</property> -    <property name="step_increment">0.01</property> -    <property name="page_increment">10</property> -  </object> -  <object class="GtkAdjustment" id="acquisitions-adjustment"> -    <property name="step_increment">1</property> -    <property name="page_increment">10</property> -  </object>  </interface> | 
