packages feed

hsudoku 0.1.0.0 → 0.1.0.1

raw patch · 5 files changed

+3156/−2 lines, 5 filesdep ~hspecbinary-addedPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: hspec

API changes (from Hackage documentation)

Files

+ gui/hsudoku.ui view
@@ -0,0 +1,2968 @@+<?xml version="1.0" encoding="UTF-8"?>+<!-- Generated with glade 3.20.0 -->+<interface>+  <requires lib="gtk+" version="3.20"/>+  <!-- interface-css-provider-path theme.css -->+  <object class="GtkPopover" id="inputPopover">+    <property name="name">inputPopover</property>+    <property name="can_focus">False</property>+    <property name="relative_to">box1</property>+    <property name="modal">False</property>+    <child>+      <object class="GtkBox" id="box1">+        <property name="visible">True</property>+        <property name="can_focus">False</property>+        <property name="orientation">vertical</property>+        <child>+          <object class="GtkGrid">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <child>+              <object class="GtkButton" id="input1">+                <property name="label" translatable="yes">1</property>+                <property name="name">inputPopover</property>+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">True</property>+                <property name="hexpand">True</property>+                <property name="vexpand">True</property>+              </object>+              <packing>+                <property name="left_attach">0</property>+                <property name="top_attach">0</property>+              </packing>+            </child>+            <child>+              <object class="GtkButton" id="input4">+                <property name="label" translatable="yes">4</property>+                <property name="name">inputPopover</property>+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">True</property>+                <property name="hexpand">True</property>+                <property name="vexpand">True</property>+              </object>+              <packing>+                <property name="left_attach">0</property>+                <property name="top_attach">1</property>+              </packing>+            </child>+            <child>+              <object class="GtkButton" id="input7">+                <property name="label" translatable="yes">7</property>+                <property name="name">inputPopover</property>+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">True</property>+                <property name="hexpand">True</property>+                <property name="vexpand">True</property>+              </object>+              <packing>+                <property name="left_attach">0</property>+                <property name="top_attach">2</property>+              </packing>+            </child>+            <child>+              <object class="GtkButton" id="input2">+                <property name="label" translatable="yes">2</property>+                <property name="name">inputPopover</property>+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">True</property>+                <property name="hexpand">True</property>+                <property name="vexpand">True</property>+              </object>+              <packing>+                <property name="left_attach">1</property>+                <property name="top_attach">0</property>+              </packing>+            </child>+            <child>+              <object class="GtkButton" id="input5">+                <property name="label" translatable="yes">5</property>+                <property name="name">inputPopover</property>+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">True</property>+                <property name="hexpand">True</property>+                <property name="vexpand">True</property>+              </object>+              <packing>+                <property name="left_attach">1</property>+                <property name="top_attach">1</property>+              </packing>+            </child>+            <child>+              <object class="GtkButton" id="input8">+                <property name="label" translatable="yes">8</property>+                <property name="name">inputPopover</property>+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">True</property>+                <property name="hexpand">True</property>+                <property name="vexpand">True</property>+              </object>+              <packing>+                <property name="left_attach">1</property>+                <property name="top_attach">2</property>+              </packing>+            </child>+            <child>+              <object class="GtkButton" id="input3">+                <property name="label" translatable="yes">3</property>+                <property name="name">inputPopover</property>+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">True</property>+                <property name="hexpand">True</property>+                <property name="vexpand">True</property>+              </object>+              <packing>+                <property name="left_attach">2</property>+                <property name="top_attach">0</property>+              </packing>+            </child>+            <child>+              <object class="GtkButton" id="input6">+                <property name="label" translatable="yes">6</property>+                <property name="name">inputPopover</property>+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">True</property>+                <property name="hexpand">True</property>+                <property name="vexpand">True</property>+              </object>+              <packing>+                <property name="left_attach">2</property>+                <property name="top_attach">1</property>+              </packing>+            </child>+            <child>+              <object class="GtkButton" id="input9">+                <property name="label" translatable="yes">9</property>+                <property name="name">inputPopover</property>+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">True</property>+                <property name="hexpand">True</property>+                <property name="vexpand">True</property>+              </object>+              <packing>+                <property name="left_attach">2</property>+                <property name="top_attach">2</property>+              </packing>+            </child>+          </object>+          <packing>+            <property name="expand">False</property>+            <property name="fill">True</property>+            <property name="position">0</property>+          </packing>+        </child>+        <child>+          <object class="GtkButton" id="inputClear">+            <property name="label" translatable="yes">Clear</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">True</property>+            <property name="position">1</property>+          </packing>+        </child>+        <child>+          <object class="GtkButton" id="inputSolve">+            <property name="label" translatable="yes">Cheat</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">True</property>+            <property name="position">2</property>+          </packing>+        </child>+      </object>+    </child>+  </object>+  <object class="GtkWindow" id="mainWindow">+    <property name="can_focus">False</property>+    <property name="title" translatable="yes">Hsudoku</property>+    <property name="window_position">center</property>+    <property name="icon">icon.png</property>+    <child>+      <object class="GtkOverlay">+        <property name="visible">True</property>+        <property name="can_focus">False</property>+        <property name="hexpand">True</property>+        <property name="vexpand">True</property>+        <child>+          <object class="GtkBox" id="mainBox">+            <property name="name">container</property>+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="hexpand">True</property>+            <property name="vexpand">True</property>+            <property name="orientation">vertical</property>+            <child>+              <object class="GtkGrid">+                <property name="name">mainGrid</property>+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="hexpand">True</property>+                <property name="vexpand">True</property>+                <child>+                  <object class="GtkGrid">+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="hexpand">True</property>+                    <property name="vexpand">True</property>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell1">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell1</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell10">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell10</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell19">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell19</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell2">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell2</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell11">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell11</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell20">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell20</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell3">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell3</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell12">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell12</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell21">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell21</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                  </object>+                  <packing>+                    <property name="left_attach">0</property>+                    <property name="top_attach">0</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkGrid">+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="hexpand">True</property>+                    <property name="vexpand">True</property>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell28">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell28</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell37">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell37</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell46">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell46</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell29">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell29</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell38">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell38</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell47">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell47</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell30">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell30</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell39">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell39</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell48">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell48</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                  </object>+                  <packing>+                    <property name="left_attach">0</property>+                    <property name="top_attach">1</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkGrid">+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="hexpand">True</property>+                    <property name="vexpand">True</property>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell55">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell55</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell64">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell64</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell73">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell73</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell56">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell56</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell65">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell65</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell74">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell74</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell57">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell57</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell66">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell66</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell75">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell75</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                  </object>+                  <packing>+                    <property name="left_attach">0</property>+                    <property name="top_attach">2</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkGrid">+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="hexpand">True</property>+                    <property name="vexpand">True</property>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell4">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell4</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell13">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell13</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell22">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell22</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell5">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell5</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell14">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell14</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell23">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell23</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell6">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell6</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell15">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell15</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell24">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell24</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                  </object>+                  <packing>+                    <property name="left_attach">1</property>+                    <property name="top_attach">0</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkGrid">+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="hexpand">True</property>+                    <property name="vexpand">True</property>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell31">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell31</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell40">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell40</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell49">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell49</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell32">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell32</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell41">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell41</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell50">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell50</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell33">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell33</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell42">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell42</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell51">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell51</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                  </object>+                  <packing>+                    <property name="left_attach">1</property>+                    <property name="top_attach">1</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkGrid">+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="hexpand">True</property>+                    <property name="vexpand">True</property>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell58">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell58</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell67">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell67</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell76">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell76</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell59">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell59</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell68">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell68</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell77">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell77</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell60">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell60</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="name">cell69</property>+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell69">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell69</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell78">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell78</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                  </object>+                  <packing>+                    <property name="left_attach">1</property>+                    <property name="top_attach">2</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkGrid">+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="hexpand">True</property>+                    <property name="vexpand">True</property>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell7">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell7</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell16">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell16</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell25">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell25</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell8">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell8</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell17">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell17</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell26">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell26</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell9">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell9</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell18">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell18</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell27">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell27</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                  </object>+                  <packing>+                    <property name="left_attach">2</property>+                    <property name="top_attach">0</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkGrid">+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="hexpand">True</property>+                    <property name="vexpand">True</property>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell34">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell34</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell43">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell43</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell52">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell52</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell35">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell35</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell44">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell44</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell53">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell53</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell36">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell36</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell45">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell45</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell54">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell54</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                  </object>+                  <packing>+                    <property name="left_attach">2</property>+                    <property name="top_attach">1</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkGrid">+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="hexpand">True</property>+                    <property name="vexpand">True</property>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell61">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell61</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell70">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell70</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell79">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell79</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell62">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell62</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell71">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell71</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell80">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell80</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell63">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell63</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell72">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell72</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">1</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkBox">+                        <property name="visible">True</property>+                        <property name="can_focus">False</property>+                        <property name="hexpand">True</property>+                        <property name="vexpand">True</property>+                        <property name="orientation">vertical</property>+                        <child>+                          <object class="GtkButton" id="cell81">+                            <property name="label" translatable="yes"> </property>+                            <property name="name">cell81</property>+                            <property name="visible">True</property>+                            <property name="can_focus">True</property>+                            <property name="receives_default">True</property>+                            <property name="hexpand">True</property>+                            <property name="vexpand">True</property>+                            <property name="relief">none</property>+                          </object>+                          <packing>+                            <property name="expand">False</property>+                            <property name="fill">True</property>+                            <property name="position">0</property>+                          </packing>+                        </child>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">2</property>+                      </packing>+                    </child>+                  </object>+                  <packing>+                    <property name="left_attach">2</property>+                    <property name="top_attach">2</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="GtkGrid">+                <property name="name">statusBar</property>+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="row_spacing">20</property>+                <property name="row_homogeneous">True</property>+                <property name="column_homogeneous">True</property>+                <child>+                  <object class="GtkButton" id="menuButton">+                    <property name="label" translatable="yes">Abort</property>+                    <property name="visible">True</property>+                    <property name="can_focus">True</property>+                    <property name="receives_default">True</property>+                  </object>+                  <packing>+                    <property name="left_attach">0</property>+                    <property name="top_attach">0</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkButton" id="solveButton">+                    <property name="label" translatable="yes">Cheat</property>+                    <property name="visible">True</property>+                    <property name="can_focus">True</property>+                    <property name="receives_default">True</property>+                  </object>+                  <packing>+                    <property name="left_attach">1</property>+                    <property name="top_attach">0</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkButton" id="checkButton">+                    <property name="label" translatable="yes">Check</property>+                    <property name="visible">True</property>+                    <property name="can_focus">True</property>+                    <property name="receives_default">True</property>+                  </object>+                  <packing>+                    <property name="left_attach">2</property>+                    <property name="top_attach">0</property>+                  </packing>+                </child>+              </object>+              <packing>+                <property name="expand">False</property>+                <property name="fill">True</property>+                <property name="position">1</property>+              </packing>+            </child>+          </object>+          <packing>+            <property name="index">-1</property>+          </packing>+        </child>+        <child type="overlay">+          <object class="GtkOverlay" id="menu">+            <property name="name">menu</property>+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <child>+              <object class="GtkBox">+                <property name="name">backdrop</property>+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="hexpand">True</property>+                <property name="vexpand">True</property>+                <property name="orientation">vertical</property>+                <child>+                  <placeholder/>+                </child>+              </object>+              <packing>+                <property name="index">-1</property>+              </packing>+            </child>+            <child type="overlay">+              <object class="GtkBox">+                <property name="name">menu-text</property>+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="hexpand">True</property>+                <property name="vexpand">True</property>+                <property name="orientation">vertical</property>+                <child>+                  <object class="GtkLabel">+                    <property name="name">title</property>+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="label" translatable="yes">λsudoku</property>+                  </object>+                  <packing>+                    <property name="expand">False</property>+                    <property name="fill">True</property>+                    <property name="position">0</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkLabel">+                    <property name="name">copyright</property>+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="label" translatable="yes">© Marcel Moosbrugger, 2017</property>+                    <style>+                      <class name="light"/>+                    </style>+                  </object>+                  <packing>+                    <property name="expand">False</property>+                    <property name="fill">True</property>+                    <property name="position">1</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkLabel">+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="label" translatable="yes">New game:</property>+                    <style>+                      <class name="light"/>+                    </style>+                  </object>+                  <packing>+                    <property name="expand">False</property>+                    <property name="fill">True</property>+                    <property name="position">2</property>+                  </packing>+                </child>+                <child>+                  <object class="GtkGrid">+                    <property name="visible">True</property>+                    <property name="can_focus">False</property>+                    <property name="hexpand">True</property>+                    <property name="vexpand">False</property>+                    <property name="row_spacing">10</property>+                    <property name="column_spacing">10</property>+                    <property name="row_homogeneous">True</property>+                    <property name="column_homogeneous">True</property>+                    <child>+                      <object class="GtkButton" id="gameEasy">+                        <property name="label" translatable="yes">Easy</property>+                        <property name="visible">True</property>+                        <property name="can_focus">True</property>+                        <property name="has_focus">True</property>+                        <property name="receives_default">True</property>+                      </object>+                      <packing>+                        <property name="left_attach">0</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkButton" id="gameMedium">+                        <property name="label" translatable="yes">Medium</property>+                        <property name="visible">True</property>+                        <property name="can_focus">True</property>+                        <property name="receives_default">True</property>+                      </object>+                      <packing>+                        <property name="left_attach">1</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkButton" id="gameHard">+                        <property name="label" translatable="yes">Hard</property>+                        <property name="visible">True</property>+                        <property name="can_focus">True</property>+                        <property name="receives_default">True</property>+                      </object>+                      <packing>+                        <property name="left_attach">2</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                    <child>+                      <object class="GtkButton" id="gameEvil">+                        <property name="label" translatable="yes">Evil</property>+                        <property name="visible">True</property>+                        <property name="can_focus">True</property>+                        <property name="receives_default">True</property>+                      </object>+                      <packing>+                        <property name="left_attach">3</property>+                        <property name="top_attach">0</property>+                      </packing>+                    </child>+                  </object>+                  <packing>+                    <property name="expand">False</property>+                    <property name="fill">True</property>+                    <property name="position">3</property>+                  </packing>+                </child>+                <child>+                  <placeholder/>+                </child>+              </object>+            </child>+          </object>+        </child>+      </object>+    </child>+  </object>+</interface>
+ gui/icon.png view

binary file changed (absent → 2691 bytes)

+ gui/theme.css view
@@ -0,0 +1,131 @@+#mainWindow {+    background: #ECF0F1;+}++#container {+    padding: 15px;+}++#menu #backdrop {+    background: #2C3E50;+    opacity: 0.8;+}++#menu #title {+    font-size: 58px;+    margin-top: 50px;+    margin-bottom: 5px;+    color: #E74C3C;+    text-shadow: 0px 0px 5px #2C3E50;+}++#menu .light {+    color: #ECF0F1;+    font-size: 10px;+    margin-bottom: 10px;+}++#menu #copyright {+    margin-bottom: 125px;+}++#menu #menu-text {+    padding: 20px;+}++#mainGrid {+    border: 2px solid #999;+}++#mainGrid > grid:nth-child(2n+1) {+    background: #E1E5E5;+}++#mainGrid > grid:nth-child(4),+#mainGrid > grid:nth-child(5),+#mainGrid > grid:nth-child(6) {+    border-style: solid;+    border-color: #999;+    border-left-width: 2px;+    border-right-width: 2px;+}+++#mainGrid > grid:nth-child(2),+#mainGrid > grid:nth-child(5),+#mainGrid > grid:nth-child(8) {+    border-style: solid;+    border-color: #999;+    border-top-width: 2px;+    border-bottom-width: 2px;+}++#mainGrid > grid > *:nth-child(4) ,+#mainGrid > grid > *:nth-child(5) ,+#mainGrid > grid > *:nth-child(6) {+    border-style: solid;+    border-color: #bbb;+    border-left-width: 1px;+    border-right-width: 1px;+}++#mainGrid > grid > *:nth-child(2),+#mainGrid > grid > *:nth-child(5),+#mainGrid > grid > *:nth-child(8) {+    border-style: solid;+    border-color: #bbb;+    border-top-width: 1px;+    border-bottom-width: 1px;+}++#mainGrid box label {+    min-width: 60px;+    min-height: 60px;+    font-size: 18px;+}++#mainGrid button {+    border-radius: 0;+    border: 0;+    background: transparent;+}++#mainGrid button:hover {+    background: #3498DB;+}++#mainGrid button:active {+    background: #2980B9;+}++#mainGrid button:focus {+    background: #E74C3C;+}++#mainGrid button.correct {+    animation: correct 0.75s ease-out;+}++#mainGrid button.incorrect {+    animation: incorrect 0.75s ease-out;+}++#inputPopover grid button {+    min-width: 20px;+    min-height: 20px;+}++#statusBar {+    padding-top: 15px;+}+++@keyframes correct {+    0%   {background-color: #6AE765;}+    100% {background-color: transparent;}+}++@keyframes incorrect {+    0%   {background-color: #E74C3C;}+    100% {background-color: transparent;}+}
hsudoku.cabal view
@@ -1,5 +1,5 @@ name:               hsudoku-version:            0.1.0.0+version:            0.1.0.1 synopsis:           Sudoku game with a GTK3 interface description:        This package realizes a graphical GTK3 sudoku game. Moreover it                     provides modules for loading and solving sudoku grids.@@ -13,7 +13,12 @@ bug-reports:        https://github.com/marcelmoosbrugger/hsudoku/issues build-type:         Simple cabal-version:      >=1.10+Tested-with:        GHC == 8.0.2 +extra-source-files: gui/hsudoku.ui+                    gui/icon.png,+                    gui/theme.css+ source-repository head     type:           git     location:       git@github.com:marcelmoosbrugger/hsudoku.git   @@ -73,12 +78,42 @@                       , hxt>=9.3 && <9.4                       , haskell-gi-base>=0.20 && <0.21                       , gi-gtk>=3.0 && <3.1-                      , hspec>=2.4 && <2.5+                      , hspec>=2.2 && <2.5                       , QuickCheck>=2.9 && <2.10                       , hsudoku    other-modules:        UtilSpec                       , UserInterfaceSpec+                      , Sudoku.TypeSpec+                      , Sudoku.SolverSpec+                      , Sudoku.LoaderSpec+                      , TestData++  default-language:    Haskell2010+  default-extensions:  OverloadedStrings, OverloadedLabels++-- Travis does not support ubuntu 16.04 yet and therefore+-- GTK+ 3.20 cannot be installed. As the user interface+-- uses new features from GTK+ 3.20, these cannot be tested on travis+test-suite travis+   type:                exitcode-stdio-1.0+   ghc-options:         -Wall+   main-is:             Travis.hs+   hs-source-dirs:      test+   build-depends:       base >=4.9 && <4.10+                      , text >=1.2 && <1.3+                      , bytestring>=0.10 && <0.11+                      , http-client>=0.5 && <0.6+                      , http-client-tls>= 0.3 && <0.4+                      , HandsomeSoup>=0.4 && <0.5+                      , hxt>=9.3 && <9.4+                      , haskell-gi-base>=0.20 && <0.21+                      , gi-gtk>=3.0 && <3.1+                      , hspec>=2.2 && <2.5+                      , QuickCheck>=2.9 && <2.10+                      , hsudoku++  other-modules:        UtilSpec                       , Sudoku.TypeSpec                       , Sudoku.SolverSpec                       , Sudoku.LoaderSpec
+ test/Travis.hs view
@@ -0,0 +1,20 @@+-- Travis does not support ubuntu 16.04 yet and therefore+-- GTK+ 3.20 cannot be installed. As the user interface+-- uses new features from GTK+ 3.20, these cannot be tested on travis+import           Test.Hspec++import qualified Sudoku.LoaderSpec+import qualified Sudoku.SolverSpec+import qualified Sudoku.TypeSpec+import qualified UtilSpec++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+    describe "UtilSpec"          UtilSpec.spec+    describe "Sudoku.LoaderSpec" Sudoku.LoaderSpec.spec+    describe "Sudoku.SolverSpec" Sudoku.SolverSpec.spec+    describe "Sudoku.TypeSpec"   Sudoku.TypeSpec.spec+