Commit 6925057

mo khan <mo@mokhan.ca>
2013-12-11 03:55:12
extract create class for creating menus.
1 parent 1b5cc00
Changed files (1)
lib
presentation
lib/presentation/presenters/application_shell_presenter.rb
@@ -19,44 +19,49 @@ class ApplicationShellPresenter
   private
 
   def add_menu_to(view)
-    view.modify_bg(Gtk::STATE_NORMAL, Gdk::Color.new(6400, 6400, 6440))
-    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))
+    view.add(Create.vertical_box(Create.menu_bar.append(create_file_menu)))
   end
 
-  def create_vertical_box(menu_bar)
-    vbox = Gtk::VBox.new(false, 2)
-    vbox.pack_start(menu_bar, false, false, 0)
-    vbox
+  def create_file_menu
+    Create.menu_item("_File", Create.menu.append(create_import_menu).append(create_exit_menu))
   end
 
-  def create_menu
-    Gtk::Menu.new
+  def create_import_menu
+    Create.menu_item("_Import", Create.menu
+                     .append(Create.menu_item("Import news feed..."))
+                     .append(Create.menu_item("Import bookmarks..."))
+                     .append(Create.menu_item("Import mail..."))
+                    )
   end
 
-  def create_menu_item(name, sub_menu = nil)
-    menu_item = Gtk::MenuItem.new(name)
-    menu_item.set_submenu(sub_menu) if sub_menu
+  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
 
-  def create_menu_bar
+class Create
+  def self.menu_bar
     Gtk::MenuBar.new
   end
 
-  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
+  def self.menu_item(name, sub_menu = nil)
+    menu_item = Gtk::MenuItem.new(name)
+    menu_item.set_submenu(sub_menu) if sub_menu
+    menu_item
   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
+  def self.menu
+    Gtk::Menu.new
+  end
+
+  def self.vertical_box(menu_bar)
+    box = Gtk::VBox.new(false, 2)
+    box.pack_start(menu_bar, false, false, 0)
+    box
   end
 end
+