Revision
51
Author
emsmith
Date
2006-12-01 13:43:39 -0800 (Fri, 01 Dec 2006)

Log Message

Menus building works now

Modified Paths

Diff

Modified: desktop/trunk/lib/window.class.php (50 => 51)


--- desktop/trunk/lib/window.class.php	2006-12-01 21:18:11 UTC (rev 50)
+++ desktop/trunk/lib/window.class.php	2006-12-01 21:43:39 UTC (rev 51)
@@ -35,6 +35,12 @@
 	public $vbox;
 
 	/**
+	 * main menu for the window
+	 * @var $menu object instanceof GtkMenu
+	 */
+	public $menu;
+
+	/**
 	 * status bar for window
 	 * @var $statusbar object instanceof GtkStatusBar
 	 */
@@ -74,12 +80,12 @@
 		}
 
 		$this->buildActions();
-		//$this->buildMenu();
+		$this->buildMenu();
 		//$this->buildToolbar();
 		$this->buildStatusbar();
 
 		$vbox = $this->vbox = new GtkVBox();
-		//$vbox->pack_start($this->menu, 0, 0);
+		$vbox->pack_start($this->menu, 0, 0);
 		//$vbox->pack_start($this->toolbar, 0, 0);
 		$vbox->pack_end($this->statusbar, 0, 0);
 		$this->add($vbox);
@@ -254,6 +260,52 @@
 	//----------------------------------------------------------------
 
 	/**
+	 * protected function buildMenu
+	 *
+	 * build a default menubar
+	 * file quit, view options
+	 *
+	 * @todo finish menu creation
+	 * @return void
+	 */
+	protected function buildMenu()
+	{
+
+		$this->menu = $menu = is_null($this->menu) ? new GtkMenuBar() : $this->menu;
+		$actions = CC_Actions::instance();
+
+		$item = new GtkMenuItem(CC_Main::i18n('_File'));
+		$menu->add($item);
+		$submenu = new GtkMenu();
+		$item->set_submenu($submenu);
+
+		$submenu->append($actions->create_menu_item('file', 'quit'));
+
+		$item = new GtkMenuItem(CC_Main::i18n('_Tools'));
+		$menu->add($item);
+		$submenu = new GtkMenu();
+		$item->set_submenu($submenu);
+
+		$submenu->append($actions->create_menu_item('toolbar', 'toggle'));
+		$submenu->append($actions->create_menu_item('toolbar', 'customize'));
+
+		$item = new GtkMenuItem(CC_Main::i18n('_Help'));
+		$menu->add($item);
+		$submenu = new GtkMenu();
+		$item->set_submenu($submenu);
+
+		$submenu->append($actions->create_menu_item('help', 'help'));
+		$submenu->append($actions->create_menu_item('help', 'website'));
+
+		$submenu->append(new GtkSeparatorMenuItem());
+
+		$submenu->append($actions->create_menu_item('help', 'about'));
+
+		unset($this, $menu, $actions, $item, $submenu);
+		return;
+	}
+
+	/**
 	 * protected function buildStatusbar
 	 *
 	 * build statusbar - gets the label inside and pads it gently (because

Modified: desktop/trunk/programs/writer/lib/writer.class.php (50 => 51)


--- desktop/trunk/programs/writer/lib/writer.class.php	2006-12-01 21:18:11 UTC (rev 50)
+++ desktop/trunk/programs/writer/lib/writer.class.php	2006-12-01 21:43:39 UTC (rev 51)
@@ -5,11 +5,11 @@
  * main window for the application, opens up last used project or creates a new
  * blank project if no "last" is available to use
  *
- * This is released under the GPL, see license.txt for details
+ * This is released under the GPL, see docs/gpl.txt for details
  *
  * @author       Elizabeth Smith <emsmith@callicore.net>
  * @copyright    Elizabeth Smith (c)2006
- * @link         http://callicore.net/writer
+ * @link         http://callicore.net/desktop/programs/writer
  * @license      http://www.opensource.org/licenses/gpl-license.php GPL
  * @version      $Id$
  * @since        Php 5.2.0
@@ -163,7 +163,7 @@
 			),
 		array(
 			'type' => 'action',
-			'name' => 'save',
+			'name' => 'saveas',
 			'label' => 'Save _As...',
 			'short-label' => 'Save _As',
 			'tooltip' => 'Save current project',
@@ -274,7 +274,100 @@
 		return;
 	}
 
+	/**
+	 * protected function buildMenu
+	 *
+	 * build a default menubar
+	 * file quit, view options
+	 *
+	 * @todo finish menu creation
+	 * @return void
+	 */
+	protected function buildMenu()
+	{
+		$this->menu = $menu = is_null($this->menu) ? new GtkMenuBar() : $this->menu;
+		$actions = CC_Actions::instance();
+		$config = CC_Config::instance();
 
+		$item = new GtkMenuItem(CC_Main::i18n('_File'));
+		$menu->add($item);
+		$submenu = new GtkMenu();
+		$item->set_submenu($submenu);
+
+		$submenu->append($actions->create_menu_item('file', 'new'));
+		$submenu->append($actions->create_menu_item('file', 'open'));
+		$submenu->append($actions->create_menu_item('file', 'close'));
+		$submenu->append($actions->create_menu_item('file', 'delete'));
+		$submenu->append(new GtkSeparatorMenuItem());
+		$submenu->append($actions->create_menu_item('file', 'save'));
+		$submenu->append($actions->create_menu_item('file', 'saveas'));
+		$submenu->append($actions->create_menu_item('file', 'revert'));
+		$submenu->append($actions->create_menu_item('file', 'print'));
+		$submenu->append(new GtkSeparatorMenuItem());
+
+		$item = new GtkMenuItem(CC_Main::i18n('Recent'));
+		$submenu->append($item);
+		$subitem = new GtkMenu();
+		$item->set_submenu($subitem);
+
+		$list = $config->project_recent ? $config->project_recent : array();
+		foreach($list as $id => $file)
+		{
+			if(!file_exists($file))
+			{
+				unset($list[$id]);
+				continue;
+			}
+			$child = new GtkMenuItem(basename($file));
+			$subitem->append($child);
+			$tooltips->set_tip($child, $file);
+			$child->connect_simple('activate', array($this, 'onOpen'), $file);
+		}
+
+		$submenu->append(new GtkSeparatorMenuItem());
+		$submenu->append($actions->create_menu_item('file', 'quit'));
+
+		$item = new GtkMenuItem(CC_Main::i18n('_Manage'));
+		$menu->add($item);
+		$submenu = new GtkMenu();
+		$item->set_submenu($submenu);
+
+		$submenu->append($actions->create_menu_item('manage', 'wizard'));
+		$submenu->append($actions->create_menu_item('manage', 'import'));
+		$submenu->append($actions->create_menu_item('manage', 'export'));
+		$submenu->append(new GtkSeparatorMenuItem());
+		$submenu->append($actions->create_menu_item('manage', 'properties'));
+
+		$item = new GtkMenuItem(CC_Main::i18n('_Tools'));
+		$menu->add($item);
+		$submenu = new GtkMenu();
+		$item->set_submenu($submenu);
+
+		$submenu->append($actions->create_menu_item('toolbar', 'toggle'));
+		$submenu->append(new GtkSeparatorMenuItem());
+		$submenu->append($actions->create_menu_item('tools', 'characters'));
+		$submenu->append($actions->create_menu_item('tools', 'places'));
+		$submenu->append($actions->create_menu_item('tools', 'notes'));
+		$submenu->append(new GtkSeparatorMenuItem());
+		$submenu->append($actions->create_menu_item('tools', 'preferences'));
+		$submenu->append($actions->create_menu_item('toolbar', 'customize'));
+
+		$item = new GtkMenuItem(CC_Main::i18n('_Help'));
+		$menu->add($item);
+		$submenu = new GtkMenu();
+		$item->set_submenu($submenu);
+
+		$submenu->append($actions->create_menu_item('help', 'help'));
+		$submenu->append($actions->create_menu_item('help', 'website'));
+
+		$submenu->append(new GtkSeparatorMenuItem());
+
+		$submenu->append($actions->create_menu_item('help', 'about'));
+
+		unset($this, $menu, $actions, $item, $submenu, $list, $id, $file, $child);
+		return;
+	}
+
 	//----------------------------------------------------------------
 	//             Callbacks
 	//----------------------------------------------------------------