Commit cdf4249

mo khan <mo@mokhan.ca>
2013-12-11 03:34:45
whittle away at building a menu bar.
1 parent 712eecb
Changed files (1)
lib
presentation
lib/presentation/presenters/application_shell_presenter.rb
@@ -20,22 +20,43 @@ class ApplicationShellPresenter
 
   def add_menu_to(view)
     view.modify_bg(Gtk::STATE_NORMAL, Gdk::Color.new(6400, 6400, 6440))
-    menu_bar = Gtk::MenuBar.new
+    menu_bar = create_menu_bar.append(create_menu_item("_File", create_menu.append(create_menu_item("_Import", create_import_menu)).append(create_exit_menu)))
+    view.add(create_vertical_box(menu_bar))
+  end
+
+  def create_vertical_box(menu_bar)
+    vbox = Gtk::VBox.new(false, 2)
+    vbox.pack_start(menu_bar, false, false, 0)
+    vbox
+  end
 
-    file_menu = Gtk::Menu.new
-    file_menu_item = Gtk::MenuItem.new("_File")
-    file_menu_item.set_submenu(file_menu)
+  def create_menu
+    Gtk::Menu.new
+  end
 
-    exit_menu_item = Gtk::MenuItem.new("E_xit")
-    exit_menu_item.signal_connect "activate" do
-      @event_aggregator.publish(:halt)
-    end
+  def create_menu_item(name, sub_menu = nil)
+    menu_item = Gtk::MenuItem.new(name)
+    menu_item.set_submenu(sub_menu) if sub_menu
+    menu_item
+  end
 
-    file_menu.append(exit_menu_item)
-    menu_bar.append(file_menu_item)
+  def create_menu_bar
+    Gtk::MenuBar.new
+  end
 
-    vbox = Gtk::VBox.new(false, 2)
-    vbox.pack_start(menu_bar, false, false, 0)
-    view.add(vbox)
+  def create_import_menu
+    import_menu = create_menu
+    import_menu.append(create_menu_item("Import news feed..."))
+    import_menu.append(create_menu_item("Import bookmarks..."))
+    import_menu.append(create_menu_item("Import mail..."))
+    import_menu
+  end
+
+  def create_exit_menu
+    menu_item = create_menu_item("E_xit")
+    menu_item.signal_connect "activate" do
+      @event_aggregator.publish(:halt)
+    end
+    menu_item
   end
 end