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
//----------------------------------------------------------------