packages feed

plot-lab 0.0.1.7 → 0.0.1.8

raw patch · 5 files changed

+2023/−4 lines, 5 files

Files

README.md view
@@ -9,15 +9,15 @@ * GUI written using gtk2hs (using [gtk3](http://hackage.haskell.org/package/gtk3) package) * GUI designed using glade -# Installation+## Installation      ```-    cabal install plot-lab+    $ cabal install plot-lab     ```  Manual installations can be done using the package from [hackage](http://hackage.haskell.org/package/plot-lab) -# Usage+## Usage  The window displays the sum of two gaussian distributions with sliders for mean and std. deviation The plan is to add custom function input facilities and make it more interactive
plot-lab.cabal view
@@ -1,5 +1,5 @@ Name:                plot-lab-Version:             0.0.1.7+Version:             0.0.1.8 License:             GPL-2 License-file:        LICENSE Author:              Sumit Sahrawat@@ -19,6 +19,9 @@  Extra-source-files:  README.md Data-dir:            ui+Data-files:          main-window.glade+                   , plot-window.glade+                   , button-panel.glade  executable plot-lab   Main-is:             Main.hs
+ ui/button-panel.glade view
@@ -0,0 +1,1023 @@+<?xml version="1.0" encoding="UTF-8"?>+<interface>+  <requires lib="gtk+" version="2.24"/>+  <!-- interface-naming-policy project-wide -->+  <object class="GtkTable" id="Button Panel">+    <property name="width_request">600</property>+    <property name="height_request">300</property>+    <property name="visible">True</property>+    <property name="can_focus">False</property>+    <property name="n_rows">5</property>+    <property name="n_columns">10</property>+    <property name="homogeneous">True</property>+    <child>+      <object class="GtkButton" id="calc_inverse_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="focus_on_click">False</property>+        <child internal-child="accessible">+          <object class="AtkObject" id="calc_inverse_button-atkobject">+            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the inverse button">Inverse</property>+          </object>+        </child>+        <child>+          <object class="GtkLabel" id="label20">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;−1&lt;/sup&gt;</property>+            <property name="use_markup">True</property>+            <property name="justify">center</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">6</property>+        <property name="right_attach">7</property>+        <property name="top_attach">2</property>+        <property name="bottom_attach">3</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_factor_button">+        <property name="label">a×b</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+        <child internal-child="accessible">+          <object class="AtkObject" id="calc_factor_button-atkobject">+            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the factorize button">Factorize</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">5</property>+        <property name="right_attach">6</property>+        <property name="top_attach">4</property>+        <property name="bottom_attach">5</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_factorial_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="focus_on_click">False</property>+        <child internal-child="accessible">+          <object class="AtkObject" id="calc_factorial_button-atkobject">+            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the factorial button">Factorial</property>+          </object>+        </child>+        <child>+          <object class="GtkLabel" id="label14">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="label">&lt;i&gt;x&lt;/i&gt;!</property>+            <property name="use_markup">True</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">7</property>+        <property name="right_attach">8</property>+        <property name="top_attach">2</property>+        <property name="bottom_attach">3</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_imaginary_portion_button">+        <property name="label">Im</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">7</property>+        <property name="right_attach">8</property>+        <property name="top_attach">4</property>+        <property name="bottom_attach">5</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_imaginary_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+        <child>+          <object class="GtkLabel" id="imaginary_label">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="label">&lt;i&gt;i&lt;/i&gt;</property>+            <property name="use_markup">True</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">2</property>+        <property name="right_attach">3</property>+        <property name="top_attach">4</property>+        <property name="bottom_attach">5</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_4_button">+        <property name="label">4</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="top_attach">2</property>+        <property name="bottom_attach">3</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_7_button">+        <property name="label">7</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="top_attach">1</property>+        <property name="bottom_attach">2</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_8_button">+        <property name="label">8</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">1</property>+        <property name="right_attach">2</property>+        <property name="top_attach">1</property>+        <property name="bottom_attach">2</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_9_button">+        <property name="label">9</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">2</property>+        <property name="right_attach">3</property>+        <property name="top_attach">1</property>+        <property name="bottom_attach">2</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_5_button">+        <property name="label">5</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">1</property>+        <property name="right_attach">2</property>+        <property name="top_attach">2</property>+        <property name="bottom_attach">3</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_6_button">+        <property name="label">6</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">2</property>+        <property name="right_attach">3</property>+        <property name="top_attach">2</property>+        <property name="bottom_attach">3</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_divide_button">+        <property name="label">÷</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">3</property>+        <property name="right_attach">4</property>+        <property name="top_attach">1</property>+        <property name="bottom_attach">2</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_1_button">+        <property name="label">1</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="top_attach">3</property>+        <property name="bottom_attach">4</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_2_button">+        <property name="label">2</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">1</property>+        <property name="right_attach">2</property>+        <property name="top_attach">3</property>+        <property name="bottom_attach">4</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_0_button">+        <property name="label">0</property>+        <property name="width_request">50</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="top_attach">4</property>+        <property name="bottom_attach">5</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_numeric_point_button">+        <property name="label" comments="Label is set in gtk.c to comply with LC flags">.</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">1</property>+        <property name="right_attach">2</property>+        <property name="top_attach">4</property>+        <property name="bottom_attach">5</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_3_button">+        <property name="label">3</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">2</property>+        <property name="right_attach">3</property>+        <property name="top_attach">3</property>+        <property name="bottom_attach">4</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_multiply_button">+        <property name="label">×</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">3</property>+        <property name="right_attach">4</property>+        <property name="top_attach">2</property>+        <property name="bottom_attach">3</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_subtract_button">+        <property name="label">−</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">3</property>+        <property name="right_attach">4</property>+        <property name="top_attach">3</property>+        <property name="bottom_attach">4</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_add_button">+        <property name="label">+</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">3</property>+        <property name="right_attach">4</property>+        <property name="top_attach">4</property>+        <property name="bottom_attach">5</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_result_button">+        <property name="label" translatable="yes" comments="Label on the solve button (clicking this solves the displayed calculation)">=</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">4</property>+        <property name="right_attach">5</property>+        <property name="top_attach">4</property>+        <property name="bottom_attach">5</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_clear_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+        <child>+          <object class="GtkImage" id="image1">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="icon_name">edit-clear-symbolic</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">5</property>+        <property name="right_attach">6</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkToggleButton" id="calc_subscript_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="focus_on_click">False</property>+        <child internal-child="accessible">+          <object class="AtkObject" id="calc_subscript_button-atkobject">+            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the subscript mode button">Subscript</property>+          </object>+        </child>+        <child>+          <object class="GtkLabel" id="label4">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="label">↓n</property>+            <property name="use_markup">True</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkToggleButton" id="calc_superscript_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="focus_on_click">False</property>+        <child internal-child="accessible">+          <object class="AtkObject" id="calc_superscript_button-atkobject">+            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the superscript mode button">Superscript</property>+          </object>+        </child>+        <child>+          <object class="GtkLabel" id="label3">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="label">↑n</property>+            <property name="use_markup">True</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">1</property>+        <property name="right_attach">2</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_exponential_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+        <child internal-child="accessible">+          <object class="AtkObject" id="calc_exponential_button-atkobject">+            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the scientific exponent button">Scientific Exponent</property>+          </object>+        </child>+        <child>+          <object class="GtkLabel" id="label2">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="label">×10&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>+            <property name="use_markup">True</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">2</property>+        <property name="right_attach">3</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_modulus_divide_button">+        <property name="label">mod</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">3</property>+        <property name="right_attach">4</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_start_group_button">+        <property name="label">(</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">4</property>+        <property name="right_attach">5</property>+        <property name="top_attach">1</property>+        <property name="bottom_attach">2</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_end_group_button">+        <property name="label">)</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">5</property>+        <property name="right_attach">6</property>+        <property name="top_attach">1</property>+        <property name="bottom_attach">2</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_memory_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="focus_on_click">False</property>+        <child internal-child="accessible">+          <object class="AtkObject" id="calc_memory_button-atkobject">+            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the memory button">Memory</property>+          </object>+        </child>+        <child>+          <object class="GtkHBox" id="hbox20">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <child>+              <object class="GtkLabel" id="label23">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="label" translatable="yes" comments="The label on the memory button">x</property>+                <attributes>+                  <attribute name="style" value="italic"/>+                </attributes>+              </object>+              <packing>+                <property name="expand">True</property>+                <property name="fill">True</property>+                <property name="position">0</property>+              </packing>+            </child>+            <child>+              <object class="GtkArrow" id="arrow14">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="arrow_type">down</property>+              </object>+              <packing>+                <property name="expand">False</property>+                <property name="fill">True</property>+                <property name="position">1</property>+              </packing>+            </child>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">4</property>+        <property name="right_attach">6</property>+        <property name="top_attach">2</property>+        <property name="bottom_attach">3</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_abs_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+        <child internal-child="accessible">+          <object class="AtkObject" id="calc_abs_button-atkobject">+            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the absolute value button">Absolute Value</property>+          </object>+        </child>+        <child>+          <object class="GtkLabel" id="label1">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="label">|&lt;i&gt;x&lt;/i&gt;|</property>+            <property name="use_markup">True</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">8</property>+        <property name="right_attach">9</property>+        <property name="top_attach">2</property>+        <property name="bottom_attach">3</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_real_portion_button">+        <property name="label">Re</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">6</property>+        <property name="right_attach">7</property>+        <property name="top_attach">4</property>+        <property name="bottom_attach">5</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_conjugate_button">+        <property name="label">conj</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">8</property>+        <property name="right_attach">9</property>+        <property name="top_attach">4</property>+        <property name="bottom_attach">5</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_arg_button">+        <property name="label">Arg</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">9</property>+        <property name="right_attach">10</property>+        <property name="top_attach">2</property>+        <property name="bottom_attach">3</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_natural_logarithm_button">+        <property name="label">ln</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">9</property>+        <property name="right_attach">10</property>+        <property name="top_attach">3</property>+        <property name="bottom_attach">4</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_logarithm_button">+        <property name="label">log</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">8</property>+        <property name="right_attach">9</property>+        <property name="top_attach">3</property>+        <property name="bottom_attach">4</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_x_pow_y_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="focus_on_click">False</property>+        <child internal-child="accessible">+          <object class="AtkObject" id="calc_x_pow_y_button-atkobject">+            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the exponentiation (x to the power of y) button">Exponent</property>+          </object>+        </child>+        <child>+          <object class="GtkLabel" id="x_pow_y_label">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="label">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>+            <property name="use_markup">True</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">6</property>+        <property name="right_attach">7</property>+        <property name="top_attach">3</property>+        <property name="bottom_attach">4</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_root_button">+        <property name="label">√</property>+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+      </object>+      <packing>+        <property name="left_attach">7</property>+        <property name="right_attach">8</property>+        <property name="top_attach">3</property>+        <property name="bottom_attach">4</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_undo_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+        <child>+          <object class="GtkImage" id="image2">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="icon_name">edit-undo-symbolic</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">4</property>+        <property name="right_attach">5</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_pi_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+        <child>+          <object class="GtkLabel" id="pi_label">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="label">π</property>+            <property name="use_markup">True</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">4</property>+        <property name="right_attach">5</property>+        <property name="top_attach">3</property>+        <property name="bottom_attach">4</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_eulers_number_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="use_underline">True</property>+        <property name="focus_on_click">False</property>+        <child>+          <object class="GtkLabel" id="eulers_number_label">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="label">&lt;i&gt;e&lt;/i&gt;</property>+            <property name="use_markup">True</property>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">5</property>+        <property name="right_attach">6</property>+        <property name="top_attach">3</property>+        <property name="bottom_attach">4</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+    <child>+      <object class="GtkTable" id="table1">+        <property name="visible">True</property>+        <property name="can_focus">False</property>+        <property name="n_rows">2</property>+        <property name="n_columns">3</property>+        <property name="homogeneous">True</property>+        <child>+          <object class="GtkButton" id="calc_cosine_button">+            <property name="label">cos</property>+            <property name="visible">True</property>+            <property name="can_focus">True</property>+            <property name="receives_default">True</property>+            <property name="focus_on_click">False</property>+          </object>+          <packing>+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+          </packing>+        </child>+        <child>+          <object class="GtkButton" id="calc_sine_button">+            <property name="label">sin</property>+            <property name="visible">True</property>+            <property name="can_focus">True</property>+            <property name="receives_default">True</property>+            <property name="focus_on_click">False</property>+          </object>+          <packing>+            <property name="left_attach">1</property>+            <property name="right_attach">2</property>+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+          </packing>+        </child>+        <child>+          <object class="GtkButton" id="calc_tangent_button">+            <property name="label">tan</property>+            <property name="visible">True</property>+            <property name="can_focus">True</property>+            <property name="receives_default">True</property>+            <property name="focus_on_click">False</property>+          </object>+          <packing>+            <property name="left_attach">2</property>+            <property name="right_attach">3</property>+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+          </packing>+        </child>+        <child>+          <object class="GtkButton" id="calc_hyperbolic_cosine_button">+            <property name="label">cosh</property>+            <property name="visible">True</property>+            <property name="can_focus">True</property>+            <property name="receives_default">True</property>+            <property name="focus_on_click">False</property>+          </object>+          <packing>+            <property name="top_attach">1</property>+            <property name="bottom_attach">2</property>+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+          </packing>+        </child>+        <child>+          <object class="GtkButton" id="calc_hyperbolic_sine_button">+            <property name="label">sinh</property>+            <property name="visible">True</property>+            <property name="can_focus">True</property>+            <property name="receives_default">True</property>+            <property name="focus_on_click">False</property>+          </object>+          <packing>+            <property name="left_attach">1</property>+            <property name="right_attach">2</property>+            <property name="top_attach">1</property>+            <property name="bottom_attach">2</property>+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+          </packing>+        </child>+        <child>+          <object class="GtkButton" id="calc_hyperbolic_tangent_button">+            <property name="label">tanh</property>+            <property name="visible">True</property>+            <property name="can_focus">True</property>+            <property name="receives_default">True</property>+            <property name="focus_on_click">False</property>+          </object>+          <packing>+            <property name="left_attach">2</property>+            <property name="right_attach">3</property>+            <property name="top_attach">1</property>+            <property name="bottom_attach">2</property>+            <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+            <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+          </packing>+        </child>+      </object>+      <packing>+        <property name="left_attach">6</property>+        <property name="right_attach">10</property>+        <property name="bottom_attach">2</property>+      </packing>+    </child>+    <child>+      <object class="GtkButton" id="calc_function_button">+        <property name="visible">True</property>+        <property name="can_focus">True</property>+        <property name="receives_default">True</property>+        <property name="focus_on_click">False</property>+        <child internal-child="accessible">+          <object class="AtkObject" id="calc_function_button-atkobject">+            <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the store value button">Store</property>+          </object>+        </child>+        <child>+          <object class="GtkHBox" id="hbox2">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <child>+              <object class="GtkLabel" id="label5">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="label">f(x)</property>+              </object>+              <packing>+                <property name="expand">True</property>+                <property name="fill">True</property>+                <property name="position">0</property>+              </packing>+            </child>+            <child>+              <object class="GtkArrow" id="arrow1">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="arrow_type">down</property>+              </object>+              <packing>+                <property name="expand">False</property>+                <property name="fill">True</property>+                <property name="position">1</property>+              </packing>+            </child>+          </object>+        </child>+      </object>+      <packing>+        <property name="left_attach">9</property>+        <property name="right_attach">10</property>+        <property name="top_attach">4</property>+        <property name="bottom_attach">5</property>+        <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>+      </packing>+    </child>+  </object>+</interface>
+ ui/main-window.glade view
@@ -0,0 +1,34 @@+<?xml version="1.0" encoding="UTF-8"?>+<interface>+  <requires lib="gtk+" version="2.24"/>+  <!-- interface-naming-policy project-wide -->+  <object class="GtkWindow" id="Main Window">+    <property name="can_focus">False</property>+    <property name="title" translatable="yes">Plot Lab</property>+    <property name="resizable">False</property>+    <child>+      <object class="GtkVBox" id="Working Area">+        <property name="visible">True</property>+        <property name="can_focus">False</property>+        <child>+          <placeholder/>+        </child>+        <child>+          <object class="GtkButton" id="Plot Button">+            <property name="label" translatable="yes">Plot</property>+            <property name="width_request">250</property>+            <property name="height_request">75</property>+            <property name="visible">True</property>+            <property name="can_focus">True</property>+            <property name="receives_default">True</property>+          </object>+          <packing>+            <property name="expand">False</property>+            <property name="fill">False</property>+            <property name="position">1</property>+          </packing>+        </child>+      </object>+    </child>+  </object>+</interface>
+ ui/plot-window.glade view
@@ -0,0 +1,959 @@+<?xml version="1.0" encoding="UTF-8"?>+<interface>+  <requires lib="gtk+" version="2.24"/>+  <!-- interface-naming-policy project-wide -->+  <object class="GtkAdjustment" id="Export Height">+    <property name="lower">1</property>+    <property name="upper">5120</property>+    <property name="value">1</property>+    <property name="step_increment">50</property>+    <property name="page_increment">200</property>+  </object>+  <object class="GtkAdjustment" id="Export Width">+    <property name="lower">1</property>+    <property name="upper">5120</property>+    <property name="value">1</property>+    <property name="step_increment">50</property>+    <property name="page_increment">200</property>+  </object>+  <object class="GtkWindow" id="Plot Window">+    <property name="can_focus">False</property>+    <property name="border_width">1</property>+    <property name="title" translatable="yes">Your Plot</property>+    <child>+      <object class="GtkHBox" id="Vertical Division">+        <property name="visible">True</property>+        <property name="can_focus">False</property>+        <child>+          <object class="GtkVBox" id="Plot Region">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="border_width">5</property>+            <child>+              <object class="GtkAspectFrame" id="Canvas Aspect">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="label_xalign">0</property>+                <property name="shadow_type">in</property>+                <child>+                  <object class="GtkDrawingArea" id="Plotting Canvas">+                    <property name="width_request">500</property>+                    <property name="height_request">500</property>+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="events">GDK_EXPOSURE_MASK | GDK_STRUCTURE_MASK</property>+                  </object>+                </child>+              </object>+              <packing>+                <property name="expand">True</property>+                <property name="fill">True</property>+                <property name="pack_type">end</property>+                <property name="position">0</property>+              </packing>+            </child>+          </object>+          <packing>+            <property name="expand">True</property>+            <property name="fill">True</property>+            <property name="position">0</property>+          </packing>+        </child>+        <child>+          <object class="GtkVSeparator" id="Separator">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+          </object>+          <packing>+            <property name="expand">False</property>+            <property name="fill">True</property>+            <property name="position">1</property>+          </packing>+        </child>+        <child>+          <object class="GtkScrolledWindow" id="Settings Palette Scroll">+            <property name="visible">True</property>+            <property name="can_focus">True</property>+            <property name="hscrollbar_policy">never</property>+            <property name="vscrollbar_policy">automatic</property>+            <child>+              <object class="GtkViewport" id="Settings Palette Viewport">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="shadow_type">none</property>+                <child>+                  <object class="GtkVBox" id="Settings Palette">+                    <property name="width_request">250</property>+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="border_width">10</property>+                    <child>+                      <object class="GtkFrame" id="Plot Title">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="border_width">3</property>+                        <property name="label_xalign">0</property>+                        <property name="shadow_type">in</property>+                        <child>+                          <object class="GtkHBox" id="Plot Title Input Widget">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="border_width">3</property>+                            <property name="spacing">2</property>+                            <child>+                              <object class="GtkEntry" id="Plot Title Entry">+                                <property name="visible">True</property>+                                <property name="can_focus">True</property>+                                <property name="invisible_char">●</property>+                                <property name="invisible_char_set">True</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">True</property>+                                <property name="fill">True</property>+                                <property name="position">0</property>+                              </packing>+                            </child>+                            <child>+                              <object class="GtkSpinButton" id="Plot Title Size">+                                <property name="visible">True</property>+                                <property name="can_focus">True</property>+                                <property name="invisible_char">●</property>+                                <property name="progress_pulse_step">0.5</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">Title Font Size</property>+                                <property name="digits">1</property>+                                <property name="snap_to_ticks">True</property>+                                <property name="numeric">True</property>+                                <property name="update_policy">if-valid</property>+                              </object>+                              <packing>+                                <property name="expand">True</property>+                                <property name="fill">True</property>+                                <property name="position">1</property>+                              </packing>+                            </child>+                          </object>+                        </child>+                        <child type="label">+                          <object class="GtkLabel" id="Plot Title Frame Label">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="label" translatable="yes">&lt;b&gt;Plot Title&lt;/b&gt;</property>+                            <property name="use_markup">True</property>+                          </object>+                        </child>+                      </object>+                      <packing>+                        <property name="expand">False</property>+                        <property name="fill">True</property>+                        <property name="position">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkFrame" id="Subtitle">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="border_width">3</property>+                        <property name="label_xalign">0</property>+                        <property name="shadow_type">in</property>+                        <child>+                          <object class="GtkHBox" id="Subtitle Input Widget">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="border_width">3</property>+                            <property name="spacing">2</property>+                            <child>+                              <object class="GtkEntry" id="Subtitle Entry">+                                <property name="visible">True</property>+                                <property name="can_focus">True</property>+                                <property name="invisible_char">●</property>+                                <property name="truncate_multiline">True</property>+                                <property name="invisible_char_set">True</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">True</property>+                                <property name="fill">True</property>+                                <property name="position">0</property>+                              </packing>+                            </child>+                            <child>+                              <object class="GtkSpinButton" id="Subtitle Size">+                                <property name="visible">True</property>+                                <property name="can_focus">True</property>+                                <property name="invisible_char">●</property>+                                <property name="progress_pulse_step">0.5</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">Subtitle Font Size</property>+                                <property name="digits">1</property>+                                <property name="snap_to_ticks">True</property>+                                <property name="numeric">True</property>+                                <property name="update_policy">if-valid</property>+                              </object>+                              <packing>+                                <property name="expand">True</property>+                                <property name="fill">True</property>+                                <property name="position">1</property>+                              </packing>+                            </child>+                          </object>+                        </child>+                        <child type="label">+                          <object class="GtkLabel" id="Sub-Title Frame Label">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="label" translatable="yes">&lt;b&gt;Subtitle&lt;/b&gt;</property>+                            <property name="use_markup">True</property>+                          </object>+                        </child>+                      </object>+                      <packing>+                        <property name="expand">False</property>+                        <property name="fill">True</property>+                        <property name="position">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkFrame" id="Axes">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="border_width">3</property>+                        <property name="label_xalign">0</property>+                        <property name="shadow_type">in</property>+                        <child>+                          <object class="GtkHBox" id="Axes Box">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="border_width">3</property>+                            <child>+                              <object class="GtkCheckButton" id="X-Axis Check">+                                <property name="label" translatable="yes">Show X-Axis</property>+                                <property name="visible">True</property>+                                <property name="can_focus">True</property>+                                <property name="receives_default">False</property>+                                <property name="active">True</property>+                                <property name="draw_indicator">True</property>+                              </object>+                              <packing>+                                <property name="expand">True</property>+                                <property name="fill">True</property>+                                <property name="position">0</property>+                              </packing>+                            </child>+                            <child>+                              <object class="GtkCheckButton" id="Y-Axis Check">+                                <property name="label" translatable="yes">Show Y-Axis</property>+                                <property name="visible">True</property>+                                <property name="can_focus">True</property>+                                <property name="receives_default">False</property>+                                <property name="active">True</property>+                                <property name="draw_indicator">True</property>+                              </object>+                              <packing>+                                <property name="expand">True</property>+                                <property name="fill">True</property>+                                <property name="position">1</property>+                              </packing>+                            </child>+                          </object>+                        </child>+                        <child type="label">+                          <object class="GtkLabel" id="Axes Frame Label">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="label" translatable="yes">&lt;b&gt;Axes&lt;/b&gt;</property>+                            <property name="use_markup">True</property>+                          </object>+                        </child>+                      </object>+                      <packing>+                        <property name="expand">False</property>+                        <property name="fill">True</property>+                        <property name="position">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkFrame" id="X-Range">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="border_width">3</property>+                        <property name="label_xalign">0</property>+                        <property name="shadow_type">in</property>+                        <child>+                          <object class="GtkVBox" id="X-Range Box">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="border_width">3</property>+                            <child>+                              <object class="GtkCheckButton" id="X-Range Check">+                                <property name="label" translatable="yes">Auto-Determine X-Range</property>+                                <property name="visible">True</property>+                                <property name="can_focus">True</property>+                                <property name="receives_default">False</property>+                                <property name="draw_indicator">True</property>+                              </object>+                              <packing>+                                <property name="expand">True</property>+                                <property name="fill">True</property>+                                <property name="position">0</property>+                              </packing>+                            </child>+                            <child>+                              <object class="GtkHBox" id="X-Range Entries">+                                <property name="visible">True</property>+                                <property name="can_focus">False</property>+                                <property name="spacing">2</property>+                                <property name="homogeneous">True</property>+                                <child>+                                  <object class="GtkSpinButton" id="X-Range Lower Entry">+                                    <property name="visible">True</property>+                                    <property name="can_focus">True</property>+                                    <property name="invisible_char">●</property>+                                    <property name="progress_pulse_step">0.25</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">X-Lower</property>+                                    <property name="digits">2</property>+                                    <property name="numeric">True</property>+                                  </object>+                                  <packing>+                                    <property name="expand">True</property>+                                    <property name="fill">True</property>+                                    <property name="position">0</property>+                                  </packing>+                                </child>+                                <child>+                                  <object class="GtkSpinButton" id="X-Range Upper Entry">+                                    <property name="visible">True</property>+                                    <property name="can_focus">True</property>+                                    <property name="invisible_char">●</property>+                                    <property name="progress_pulse_step">0.25</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">X-Upper</property>+                                    <property name="digits">2</property>+                                    <property name="numeric">True</property>+                                  </object>+                                  <packing>+                                    <property name="expand">True</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>+                        <child type="label">+                          <object class="GtkLabel" id="X-Range Frame Label">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="label" translatable="yes">&lt;b&gt;X-Range&lt;/b&gt;</property>+                            <property name="use_markup">True</property>+                          </object>+                        </child>+                      </object>+                      <packing>+                        <property name="expand">False</property>+                        <property name="fill">True</property>+                        <property name="position">3</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkFrame" id="Y-Range">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="border_width">3</property>+                        <property name="label_xalign">0</property>+                        <property name="shadow_type">in</property>+                        <child>+                          <object class="GtkVBox" id="Y-Range Box">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="border_width">2</property>+                            <child>+                              <object class="GtkCheckButton" id="Y-Range Check">+                                <property name="label" translatable="yes">Auto-Determine Y-Range</property>+                                <property name="visible">True</property>+                                <property name="can_focus">True</property>+                                <property name="receives_default">False</property>+                                <property name="draw_indicator">True</property>+                              </object>+                              <packing>+                                <property name="expand">True</property>+                                <property name="fill">True</property>+                                <property name="position">0</property>+                              </packing>+                            </child>+                            <child>+                              <object class="GtkHBox" id="Y-Range Entries">+                                <property name="visible">True</property>+                                <property name="can_focus">False</property>+                                <property name="spacing">2</property>+                                <property name="homogeneous">True</property>+                                <child>+                                  <object class="GtkSpinButton" id="Y-Range Lower Entry">+                                    <property name="visible">True</property>+                                    <property name="can_focus">True</property>+                                    <property name="invisible_char">●</property>+                                    <property name="progress_pulse_step">0.25</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">Y-Lower</property>+                                    <property name="digits">2</property>+                                    <property name="numeric">True</property>+                                  </object>+                                  <packing>+                                    <property name="expand">True</property>+                                    <property name="fill">True</property>+                                    <property name="position">0</property>+                                  </packing>+                                </child>+                                <child>+                                  <object class="GtkSpinButton" id="Y-Range Upper Entry">+                                    <property name="visible">True</property>+                                    <property name="can_focus">True</property>+                                    <property name="invisible_char">●</property>+                                    <property name="progress_pulse_step">0.25</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">Y-Upper</property>+                                    <property name="digits">2</property>+                                    <property name="numeric">True</property>+                                  </object>+                                  <packing>+                                    <property name="expand">True</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>+                        <child type="label">+                          <object class="GtkLabel" id="Y-Range Frame Label">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="label" translatable="yes">&lt;b&gt;Y-Range&lt;/b&gt;</property>+                            <property name="use_markup">True</property>+                          </object>+                        </child>+                      </object>+                      <packing>+                        <property name="expand">False</property>+                        <property name="fill">True</property>+                        <property name="position">4</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkFrame" id="Sampling Rate">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="border_width">3</property>+                        <property name="label_xalign">0</property>+                        <property name="shadow_type">in</property>+                        <child>+                          <object class="GtkVBox" id="Sampling Rate Box">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="border_width">3</property>+                            <child>+                              <object class="GtkSpinButton" id="Sampling Rate Entry">+                                <property name="visible">True</property>+                                <property name="can_focus">True</property>+                                <property name="invisible_char">●</property>+                                <property name="progress_pulse_step">1</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">Sampling Adj</property>+                                <property name="digits">1</property>+                                <property name="snap_to_ticks">True</property>+                                <property name="numeric">True</property>+                                <property name="update_policy">if-valid</property>+                              </object>+                              <packing>+                                <property name="expand">True</property>+                                <property name="fill">True</property>+                                <property name="position">0</property>+                              </packing>+                            </child>+                          </object>+                        </child>+                        <child type="label">+                          <object class="GtkLabel" id="Sampling Frame Label">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="label" translatable="yes">&lt;b&gt;Sampling Rate&lt;/b&gt;</property>+                            <property name="use_markup">True</property>+                          </object>+                        </child>+                      </object>+                      <packing>+                        <property name="expand">False</property>+                        <property name="fill">True</property>+                        <property name="position">5</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkFrame" id="Labels">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="border_width">3</property>+                        <property name="label_xalign">0</property>+                        <property name="shadow_type">in</property>+                        <child>+                          <object class="GtkVBox" id="Labels Box">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <child>+                              <object class="GtkVBox" id="X-Axis Label Widget">+                                <property name="visible">True</property>+                                <property name="can_focus">False</property>+                                <child>+                                  <object class="GtkHBox" id="X-Label Input Widget">+                                    <property name="visible">True</property>+                                    <property name="can_focus">False</property>+                                    <property name="border_width">2</property>+                                    <property name="spacing">2</property>+                                    <child>+                                      <object class="GtkEntry" id="X-Label Entry">+                                        <property name="visible">True</property>+                                        <property name="can_focus">True</property>+                                        <property name="invisible_char">●</property>+                                        <property name="invisible_char_set">True</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">True</property>+                                        <property name="fill">True</property>+                                        <property name="position">0</property>+                                      </packing>+                                    </child>+                                    <child>+                                      <object class="GtkSpinButton" id="X-Label Font Input">+                                        <property name="visible">True</property>+                                        <property name="can_focus">True</property>+                                        <property name="invisible_char">●</property>+                                        <property name="progress_pulse_step">0.5</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">X-Label Size</property>+                                        <property name="digits">1</property>+                                        <property name="snap_to_ticks">True</property>+                                        <property name="numeric">True</property>+                                        <property name="update_policy">if-valid</property>+                                      </object>+                                      <packing>+                                        <property name="expand">True</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>+                                <child>+                                  <object class="GtkLabel" id="X-Axis Label">+                                    <property name="visible">True</property>+                                    <property name="can_focus">False</property>+                                    <property name="label" translatable="yes">X-Axis Label</property>+                                    <property name="use_markup">True</property>+                                  </object>+                                  <packing>+                                    <property name="expand">True</property>+                                    <property name="fill">True</property>+                                    <property name="position">0</property>+                                  </packing>+                                </child>+                              </object>+                              <packing>+                                <property name="expand">True</property>+                                <property name="fill">True</property>+                                <property name="position">0</property>+                              </packing>+                            </child>+                            <child>+                              <object class="GtkVBox" id="Y-Axis Label Widget">+                                <property name="visible">True</property>+                                <property name="can_focus">False</property>+                                <child>+                                  <object class="GtkHBox" id="Y-Axis Input Widget">+                                    <property name="visible">True</property>+                                    <property name="can_focus">False</property>+                                    <property name="border_width">2</property>+                                    <property name="spacing">2</property>+                                    <child>+                                      <object class="GtkEntry" id="Y-Label Entry">+                                        <property name="visible">True</property>+                                        <property name="can_focus">True</property>+                                        <property name="invisible_char">●</property>+                                        <property name="invisible_char_set">True</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">True</property>+                                        <property name="fill">True</property>+                                        <property name="position">0</property>+                                      </packing>+                                    </child>+                                    <child>+                                      <object class="GtkSpinButton" id="Y-Label Font Input">+                                        <property name="visible">True</property>+                                        <property name="can_focus">True</property>+                                        <property name="invisible_char">●</property>+                                        <property name="progress_pulse_step">0.5</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">Y-Label Size</property>+                                        <property name="digits">1</property>+                                        <property name="snap_to_ticks">True</property>+                                        <property name="numeric">True</property>+                                        <property name="update_policy">if-valid</property>+                                      </object>+                                      <packing>+                                        <property name="expand">True</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>+                                <child>+                                  <object class="GtkLabel" id="Y-Axis Label">+                                    <property name="visible">True</property>+                                    <property name="can_focus">False</property>+                                    <property name="label" translatable="yes">Y-Axis Label</property>+                                  </object>+                                  <packing>+                                    <property name="expand">True</property>+                                    <property name="fill">True</property>+                                    <property name="position">0</property>+                                  </packing>+                                </child>+                              </object>+                              <packing>+                                <property name="expand">True</property>+                                <property name="fill">True</property>+                                <property name="position">1</property>+                              </packing>+                            </child>+                          </object>+                        </child>+                        <child type="label">+                          <object class="GtkLabel" id="Labels Frame Label">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="label" translatable="yes">&lt;b&gt;Labels&lt;/b&gt;</property>+                            <property name="use_markup">True</property>+                          </object>+                        </child>+                      </object>+                      <packing>+                        <property name="expand">False</property>+                        <property name="fill">True</property>+                        <property name="position">6</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkFrame" id="Export">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="border_width">3</property>+                        <property name="label_xalign">0</property>+                        <property name="shadow_type">in</property>+                        <child>+                          <object class="GtkVBox" id="Export Box">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="border_width">1</property>+                            <child>+                              <object class="GtkVBox" id="Dimensions">+                                <property name="visible">True</property>+                                <property name="can_focus">False</property>+                                <property name="border_width">2</property>+                                <child>+                                  <object class="GtkLabel" id="Dimensions Label">+                                    <property name="visible">True</property>+                                    <property name="can_focus">False</property>+                                    <property name="label" translatable="yes">Dimensions</property>+                                  </object>+                                  <packing>+                                    <property name="expand">True</property>+                                    <property name="fill">True</property>+                                    <property name="position">0</property>+                                  </packing>+                                </child>+                                <child>+                                  <object class="GtkHBox" id="Dimension Entries">+                                    <property name="visible">True</property>+                                    <property name="can_focus">False</property>+                                    <property name="spacing">2</property>+                                    <property name="homogeneous">True</property>+                                    <child>+                                      <object class="GtkSpinButton" id="Dimensions Width">+                                        <property name="visible">True</property>+                                        <property name="can_focus">True</property>+                                        <property name="invisible_char">●</property>+                                        <property name="progress_pulse_step">0.25</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">Export Width</property>+                                        <property name="numeric">True</property>+                                        <property name="update_policy">if-valid</property>+                                      </object>+                                      <packing>+                                        <property name="expand">True</property>+                                        <property name="fill">True</property>+                                        <property name="position">0</property>+                                      </packing>+                                    </child>+                                    <child>+                                      <object class="GtkSpinButton" id="Dimensions Height">+                                        <property name="visible">True</property>+                                        <property name="can_focus">True</property>+                                        <property name="invisible_char">●</property>+                                        <property name="progress_pulse_step">0.25</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">Export Height</property>+                                        <property name="numeric">True</property>+                                        <property name="update_policy">if-valid</property>+                                      </object>+                                      <packing>+                                        <property name="expand">True</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>+                              <packing>+                                <property name="expand">True</property>+                                <property name="fill">True</property>+                                <property name="position">0</property>+                              </packing>+                            </child>+                            <child>+                              <object class="GtkVBox" id="File Name &amp; Type">+                                <property name="visible">True</property>+                                <property name="can_focus">False</property>+                                <child>+                                  <object class="GtkLabel" id="File Name Label">+                                    <property name="visible">True</property>+                                    <property name="can_focus">False</property>+                                    <property name="label" translatable="yes">File Name &amp; Type</property>+                                  </object>+                                  <packing>+                                    <property name="expand">True</property>+                                    <property name="fill">True</property>+                                    <property name="position">0</property>+                                  </packing>+                                </child>+                                <child>+                                  <object class="GtkHBox" id="File Name">+                                    <property name="visible">True</property>+                                    <property name="can_focus">False</property>+                                    <property name="border_width">1</property>+                                    <property name="spacing">2</property>+                                    <child>+                                      <object class="GtkEntry" id="File Entry">+                                        <property name="visible">True</property>+                                        <property name="can_focus">True</property>+                                        <property name="tooltip_text" translatable="yes">File Name</property>+                                        <property name="invisible_char">●</property>+                                        <property name="invisible_char_set">True</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">True</property>+                                        <property name="fill">True</property>+                                        <property name="position">0</property>+                                      </packing>+                                    </child>+                                    <child>+                                      <placeholder/>+                                    </child>+                                  </object>+                                  <packing>+                                    <property name="expand">True</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>+                            <child>+                              <object class="GtkButton" id="Export Button">+                                <property name="label" translatable="yes">Export</property>+                                <property name="visible">True</property>+                                <property name="can_focus">True</property>+                                <property name="receives_default">True</property>+                              </object>+                              <packing>+                                <property name="expand">True</property>+                                <property name="fill">True</property>+                                <property name="position">2</property>+                              </packing>+                            </child>+                          </object>+                        </child>+                        <child type="label">+                          <object class="GtkLabel" id="Export Frame Label">+                            <property name="visible">True</property>+                            <property name="can_focus">False</property>+                            <property name="label" translatable="yes">&lt;b&gt;Export&lt;/b&gt;</property>+                            <property name="use_markup">True</property>+                          </object>+                        </child>+                      </object>+                      <packing>+                        <property name="expand">False</property>+                        <property name="fill">True</property>+                        <property name="position">7</property>+                      </packing>+                    </child>+                  </object>+                </child>+              </object>+            </child>+          </object>+          <packing>+            <property name="expand">False</property>+            <property name="fill">True</property>+            <property name="position">2</property>+          </packing>+        </child>+      </object>+    </child>+  </object>+  <object class="GtkAdjustment" id="Sampling Adj">+    <property name="lower">1</property>+    <property name="upper">1000</property>+    <property name="value">1</property>+    <property name="step_increment">1</property>+    <property name="page_increment">1</property>+  </object>+  <object class="GtkAdjustment" id="Subtitle Font Size">+    <property name="lower">1</property>+    <property name="upper">72</property>+    <property name="value">1</property>+    <property name="step_increment">0.5</property>+    <property name="page_increment">1</property>+  </object>+  <object class="GtkAdjustment" id="Title Font Size">+    <property name="lower">1</property>+    <property name="upper">72</property>+    <property name="value">1</property>+    <property name="step_increment">0.5</property>+    <property name="page_increment">1</property>+  </object>+  <object class="GtkAdjustment" id="X-Label Size">+    <property name="lower">1</property>+    <property name="upper">72</property>+    <property name="value">1</property>+    <property name="step_increment">0.5</property>+    <property name="page_increment">1</property>+  </object>+  <object class="GtkAdjustment" id="X-Lower">+    <property name="lower">-1.7976931348623157e+308</property>+    <property name="upper">1.7976931348623157e+308</property>+    <property name="step_increment">0.01</property>+    <property name="page_increment">1</property>+  </object>+  <object class="GtkAdjustment" id="X-Upper">+    <property name="lower">-1.7976931348623157e+308</property>+    <property name="upper">1.7976931348623157e+308</property>+    <property name="step_increment">0.01</property>+    <property name="page_increment">1</property>+  </object>+  <object class="GtkAdjustment" id="Y-Label Size">+    <property name="lower">1</property>+    <property name="upper">72</property>+    <property name="value">1</property>+    <property name="step_increment">0.5</property>+    <property name="page_increment">1</property>+  </object>+  <object class="GtkAdjustment" id="Y-Lower">+    <property name="lower">-1.7976931348623157e+308</property>+    <property name="upper">1.7976931348623157e+308</property>+    <property name="step_increment">0.01</property>+    <property name="page_increment">1</property>+  </object>+  <object class="GtkAdjustment" id="Y-Upper">+    <property name="lower">-1.7976931348623157e+308</property>+    <property name="upper">1.7976931348623157e+308</property>+    <property name="step_increment">0.01</property>+    <property name="page_increment">1</property>+  </object>+</interface>