<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -49,5 +49,8 @@ background_color: &quot;\&quot;#bec0c2\&quot;...\&quot;#86888b\&quot;&quot;
 window_height:
 window_width:
 
+# Sets the ammount of the screen that is usable
+# (IE the lowest buttons can be placed to be usable)
+
 # The language you want to use, e.g. 'it' for Italian, 'es' for Spanish.
 locale: 'en'</diff>
      <filename>conf-sample.yml</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,8 @@ class ConfigController &lt; Shoes::Main
   url '/configuration/bikes', :bikes
   url '/configuration/upgrade', :upgrade
 
-  def config_nav
+  def config_setup
+    layout(:menu)
     @left.clear {
       left_button(&quot;Appearance&quot;) { visit '/configuration/appearance' }
       left_button(&quot;Skin&quot;) { visit '/configuration/skin' }
@@ -23,19 +24,23 @@ class ConfigController &lt; Shoes::Main
         left_button(&quot;Upgrade&quot;) { visit '/configuration/upgrade' }
       end
     }
+    if File.exists?(File.join(LIB_DIR,'opensprints_conf.yml'))
+      @prefs = YAML::load_file(File.join(LIB_DIR,'opensprints_conf.yml'))
+    else
+      @prefs = YAML::load_file('conf-sample.yml')
+    end
   end
-  
+
   def appearance
-    layout(:menu)
-    config_nav
+    config_setup
+    if RUBY_PLATFORM =~ /linux/
+      width,height = `xrandr | grep '*'`.split[0].split('x')
+    else
+      width,height = 1024,768
+    end
     @header.clear { title &quot;Appearance&quot; }
 
     @center.clear do
-      if File.exists?(File.join(LIB_DIR,'opensprints_conf.yml'))
-        @prefs = YAML::load_file(File.join(LIB_DIR,'opensprints_conf.yml'))
-      else
-        @prefs = YAML::load_file('conf-sample.yml')
-      end
       flow(:height =&gt; @center.height-50, :width =&gt; 1.0) do
         container
         flow(:height =&gt; @center.height-150, :scroll =&gt; true) do
@@ -48,33 +53,16 @@ class ConfigController &lt; Shoes::Main
             end
 
             stack(:margin =&gt; 10, :padding =&gt; 0) do
-              stack(:margin =&gt; 0) do
-                inscription &quot;Display speed in:&quot;, :margin =&gt; 0
-                metric = nil; standard = nil;
-                flow(:margin =&gt; 0) do
-                  standard = radio(:units){ @prefs['units'] = 'standard'}
-                  inscription 'standard', :margin =&gt; 2
-                end
-                flow(:margin =&gt; 0) do
-                  metric = radio(:units){ @prefs['units'] = 'metric'}
-                  inscription 'metric', :margin =&gt; 2
-                end
-                if @prefs['units'] == 'metric'
-                  metric.checked = true
-                else
-                  standard.checked = true
-                end
+              inscription &quot;usable window height (e.g. #{height.to_i - 100}):&quot;
+              edit_line(@prefs['usable_window_height']) do |edit|
+                @prefs['usable_window_height'] = edit.text
               end
+              inscription(link(&quot;(what's this?)&quot;,:click =&gt; &quot;http://wiki.opensprints.org/index.php?title=Usable_Screen_Height&quot;))
             end
 
           end
           stack(:width =&gt; 0.6) do
             stack(:margin =&gt; 10) do
-              if RUBY_PLATFORM =~ /linux/
-                width,height = `xrandr | grep '*'`.split[0].split('x')
-              else
-                width,height = 1024,768
-              end
 
               inscription &quot;window height (e.g. #{height.to_i - 100}):&quot;
               edit_line(@prefs['window_height']) do |edit|
@@ -94,16 +82,10 @@ class ConfigController &lt; Shoes::Main
     end
   end
   def skin
-    layout(:menu)
-    config_nav
+    config_setup
     @header.clear { title &quot;Skin&quot; }
 
     @center.clear do
-      if File.exists?(File.join(LIB_DIR,'opensprints_conf.yml'))
-        @prefs = YAML::load_file(File.join(LIB_DIR,'opensprints_conf.yml'))
-      else
-        @prefs = YAML::load_file('conf-sample.yml')
-      end
       flow(:height =&gt; @center.height-50, :width =&gt; 1.0) do
         container
         flow(:height =&gt; @center.height-150, :scroll =&gt; true) do
@@ -156,8 +138,7 @@ class ConfigController &lt; Shoes::Main
   end
 
   def data_file
-    layout(:menu)
-    config_nav
+    config_setup
     @header.clear { title &quot;Data&quot; }
     @center.clear do
       container
@@ -180,21 +161,14 @@ class ConfigController &lt; Shoes::Main
   end
   
   def index
-    layout(:menu)
-    config_nav
+    config_setup
     @header.clear { title &quot;Configuration&quot; }
   end
 
   def bikes
-    layout(:menu)
-    config_nav
+    config_setup
     @header.clear { title &quot;Bike Setup&quot; }
     @center.clear do
-      if File.exists?(File.join(LIB_DIR,'opensprints_conf.yml'))
-        @prefs = YAML::load_file(File.join(LIB_DIR,'opensprints_conf.yml'))
-      else
-        @prefs = YAML::load_file('conf-sample.yml')
-      end
       stack(:height =&gt; @center.height-50, :width =&gt; 0.8) do
         container
         stack(:height =&gt; @center.height-150, :scroll =&gt; true) do
@@ -239,16 +213,10 @@ class ConfigController &lt; Shoes::Main
   end
 
   def hardware
-    layout(:menu)
-    config_nav
+    config_setup
     @header.clear { title &quot;Hardware &amp; Rollers&quot; }
     
     @center.clear do
-      if File.exists?(File.join(LIB_DIR,'opensprints_conf.yml'))
-        @prefs = YAML::load_file(File.join(LIB_DIR,'opensprints_conf.yml'))
-      else
-        @prefs = YAML::load_file('conf-sample.yml')
-      end
       stack(:height =&gt; @center.height-50, :width =&gt; 0.8) do
         container
         flow(:height =&gt; @center.height-150, :scroll =&gt; true) do
@@ -339,8 +307,7 @@ class ConfigController &lt; Shoes::Main
   end
 
   def upgrade
-    layout(:menu)
-    config_nav
+    config_setup
     @header.clear { title &quot;Upgrade&quot; }
     @center.clear do
       container
@@ -356,16 +323,10 @@ class ConfigController &lt; Shoes::Main
   end
 
   def locale
-    layout(:menu)
-    config_nav
+    config_setup
     @header.clear { title &quot;Appearance&quot; }
 
     @center.clear do
-      if File.exists?(File.join(LIB_DIR,'opensprints_conf.yml'))
-        @prefs = YAML::load_file(File.join(LIB_DIR,'opensprints_conf.yml'))
-      else
-        @prefs = YAML::load_file('conf-sample.yml')
-      end
       flow(:height =&gt; @center.height-50, :width =&gt; 1.0) do
         container
         flow(:height =&gt; @center.height-150, :scroll =&gt; true) do</diff>
      <filename>lib/controllers/config_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -57,6 +57,7 @@ else
   width,height = 800,600
 end
 
+USABLE_HEIGHT = options['usable_window_height'].to_i.nonzero?||nil
 HEIGHT = options['window_height'].to_i.nonzero?||(height.to_i-100)
 WIDTH = options['window_width'].to_i.nonzero?||(width.to_i-50)
 </diff>
      <filename>lib/setup.rb</filename>
    </modified>
    <modified>
      <diff>@@ -179,8 +179,8 @@ class Main &lt; Shoes
     @nav.clear
     @center.clear {
       stack {
-        flow(:attach =&gt; Window, :top =&gt; (HEIGHT * 0.2).to_i, :left =&gt; (WIDTH / 2)-350) { image(logoimage) }
-        flow(:attach =&gt; Window, :top =&gt; (HEIGHT * 0.6).to_i, :left =&gt; (WIDTH / 2)-350) {
+        flow(:attach =&gt; Window, :top =&gt; (@center.height * 0.2).to_i, :left =&gt; (WIDTH / 2)-350) { image(logoimage) }
+        flow(:attach =&gt; Window, :top =&gt; (@center.height * 0.6).to_i, :left =&gt; (WIDTH / 2)-350) {
           caption(link($i18n.categories, :click =&gt; &quot;/categories&quot;))
           caption(&quot; / &quot;, :stroke =&gt; link_color)
           caption(link($i18n.events, :click =&gt; &quot;/tournaments&quot;))
@@ -216,7 +216,7 @@ class Main &lt; Shoes
     end
     @left = stack(:width =&gt; 150) do
     end
-    @center = flow(:width =&gt; width - (175+125), :height =&gt; HEIGHT-@header.height-150) do
+    @center = flow(:width =&gt; width - (175+125), :height =&gt; (USABLE_HEIGHT-@header.height-150)||(HEIGHT-@header.height-150)) do
     end
     @right = flow(:width =&gt; 150) do
     end</diff>
      <filename>opensprints.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>74a4199078970ceae875b07ef626eac8aaaafd76</id>
    </parent>
  </parents>
  <author>
    <name>Evan Farrar</name>
    <email>evanfarrar@gmail.com</email>
  </author>
  <url>http://github.com/evanfarrar/opensprints/commit/a8d1eff87626516cc7c4968ba53c6b69762211d9</url>
  <id>a8d1eff87626516cc7c4968ba53c6b69762211d9</id>
  <committed-date>2009-10-10T08:47:03-07:00</committed-date>
  <authored-date>2009-10-10T08:47:03-07:00</authored-date>
  <message>Now the interface has a &quot;usable height&quot; setting for your screen size that you can actually see buttons. Also, began a practice of linking contextual help to the wiki.</message>
  <tree>3762c0ed707cd7aa1fd9e148d788e2b5fa75bc86</tree>
  <committer>
    <name>Evan Farrar</name>
    <email>evanfarrar@gmail.com</email>
  </committer>
</commit>
