Index: gnome-panel/panel-action-button.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-action-button.c,v
retrieving revision 1.26
diff -u -r1.26 panel-action-button.c
--- gnome-panel/panel-action-button.c	6 Jul 2004 07:33:33 -0000	1.26
+++ gnome-panel/panel-action-button.c	11 Aug 2004 12:10:31 -0000
@@ -72,6 +72,9 @@
 	{ PANEL_ACTION_SEARCH,       "search"       },
 	{ PANEL_ACTION_SCREENSHOT,   "screenshot"   },
 	{ PANEL_ACTION_FORCE_QUIT,   "force-quit"   },
+	{ PANEL_ACTION_HELP_BROWSER, "help-browser" },
+	{ PANEL_ACTION_REPORT_BUG,   "report-bug"   },
+	{ PANEL_ACTION_ABOUT_GNOME,  "about-gnome"  }
 };
 
 /* Lock Screen
@@ -235,6 +238,78 @@
 panel_action_force_quit (GtkWidget *widget)
 {
 	panel_force_quit (gtk_widget_get_screen (widget));
+}
+
+/* Help Browser
+ */
+void
+panel_action_help_browser (GtkWidget *widget)
+{
+	GdkScreen *screen;
+	GError    *error = NULL;
+	char      *argv [2] = {"yelp", NULL};
+
+	screen = gtk_widget_get_screen (widget);
+
+	if (!gdk_spawn_on_screen (screen, NULL, argv, NULL,
+				  G_SPAWN_SEARCH_PATH,
+				  NULL, NULL, NULL, &error)) {
+		panel_error_dialog (screen,
+				    "cannot_exec_yelp",
+				    _("Cannot execute '%s'"),
+				    "%s",
+				    "yelp",
+				    error->message);
+		g_error_free (error);
+	}
+}
+
+/* Report a Bug
+ */
+void
+panel_action_report_bug (GtkWidget *widget)
+{
+	GdkScreen *screen;
+	GError    *error = NULL;
+	char      *argv [2] = {"bug-buddy", NULL};
+
+	screen = gtk_widget_get_screen (widget);
+
+	if (!gdk_spawn_on_screen (screen, NULL, argv, NULL,
+				  G_SPAWN_SEARCH_PATH,
+				  NULL, NULL, NULL, &error)) {
+		panel_error_dialog (screen,
+				    "cannot_exec_bug-buddy",
+				    _("Cannot execute '%s'"),
+				    "%s",
+				    "bug-buddy",
+				    error->message);
+		g_error_free (error);
+	}
+}
+
+/* About GNOME
+ */
+void
+panel_action_about_gnome (GtkWidget *widget)
+{
+	GdkScreen *screen;
+	GError    *error = NULL;
+	char      *argv [2] = {"gnome-about", NULL};
+
+	screen = gtk_widget_get_screen (widget);
+
+	if (!gdk_spawn_on_screen (screen, NULL, argv, NULL,
+				  G_SPAWN_SEARCH_PATH,
+				  NULL, NULL, NULL, &error)) {
+		panel_error_dialog (screen,
+				    "cannot_exec_gnome-about",
+				    _("Cannot execute '%s'"),
+				    "%s",
+				    "gnome-about",
+				    error->message);
+		g_error_free (error);
+	}
 }
 
 typedef struct {
Index: gnome-panel/panel-action-button.h
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-action-button.h,v
retrieving revision 1.4
diff -u -r1.4 panel-action-button.h
--- gnome-panel/panel-action-button.h	26 May 2003 13:41:07 -0000	1.4
+++ gnome-panel/panel-action-button.h	11 Aug 2004 12:10:31 -0000
@@ -86,11 +86,14 @@
 						 const char             *drag_string,
 						 int                    *old_applet_idx);
 
-void       panel_action_lock_screen (GtkWidget *widget);
-void       panel_action_logout      (GtkWidget *widget);
-void       panel_action_run_program (GtkWidget *widget);
-void       panel_action_search      (GtkWidget *widget);
-void       panel_action_screenshot  (GtkWidget *widget);
+void       panel_action_lock_screen  (GtkWidget *widget);
+void       panel_action_logout       (GtkWidget *widget);
+void       panel_action_run_program  (GtkWidget *widget);
+void       panel_action_search       (GtkWidget *widget);
+void       panel_action_screenshot   (GtkWidget *widget);
+void       panel_action_help_browser (GtkWidget *widget);
+void       panel_action_report_bug   (GtkWidget *widget);
+void       panel_action_about_gnome  (GtkWidget *widget);
 
 G_END_DECLS
 
Index: gnome-panel/panel-enums.h
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-enums.h,v
retrieving revision 1.5
diff -u -r1.5 panel-enums.h
--- gnome-panel/panel-enums.h	16 Jan 2004 14:30:20 -0000	1.5
+++ gnome-panel/panel-enums.h	11 Aug 2004 12:10:31 -0000
@@ -94,6 +94,9 @@
         PANEL_ACTION_SEARCH,
         PANEL_ACTION_SCREENSHOT,
 	PANEL_ACTION_FORCE_QUIT,
+	PANEL_ACTION_HELP_BROWSER,
+	PANEL_ACTION_REPORT_BUG,
+	PANEL_ACTION_ABOUT_GNOME,
         PANEL_ACTION_LAST
 } PanelActionButtonType;
 
Index: gnome-panel/panel-menu-bar.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-menu-bar.c,v
retrieving revision 1.31
diff -u -r1.31 panel-menu-bar.c
--- gnome-panel/panel-menu-bar.c	6 Jul 2004 07:33:33 -0000	1.31
+++ gnome-panel/panel-menu-bar.c	11 Aug 2004 12:10:31 -0000
@@ -28,6 +28,7 @@
 
 #include <string.h>
 #include <libgnome/gnome-i18n.h>
+#include <libgnomeui/gnome-stock-icons.h>
 
 #include "panel-util.h"
 #include "panel-action-button.h"
@@ -54,7 +55,9 @@
 };
 
 static GObjectClass *parent_class;
+
 static void panel_menu_bar_append_actions_menu (PanelMenuBar *menubar);
+static void panel_menu_bar_append_help_menu    (PanelMenuBar *menubar);
 
 static void
 panel_menu_bar_show_applications_menu (PanelMenuBar *menubar,
@@ -213,6 +216,46 @@
 }
 
 static void
+panel_menu_bar_append_help_menu (PanelMenuBar *menubar)
+{
+	GtkWidget *item, *image, *menu;
+
+	item = gtk_image_menu_item_new_with_label (_("Help"));
+	image = gtk_image_new_from_stock (GTK_STOCK_HELP, panel_menu_bar_icon_get_size ());
+	gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
+	gtk_menu_shell_append (GTK_MENU_SHELL (menubar), item);
+
+	menu = panel_create_menu ();
+	gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), menu);
+
+	/* intercept all right button clicks makes sure they don't
+	 * go to the object itself */
+	g_signal_connect (G_OBJECT (menubar->priv->actions_menu), "button_press_event",
+			  G_CALLBACK (menu_dummy_button_press_event), NULL);
+
+	if (panel_is_program_in_path  ("yelp"))
+		panel_menu_bar_append_action_item (menubar, menu,
+						   _("Help Browser"), GTK_STOCK_HELP,
+						   _("Get help with GNOME"),
+						   "ACTION:help-browser:NEW",
+						   G_CALLBACK (panel_action_help_browser));
+
+	if (panel_is_program_in_path  ("bug-buddy"))
+		panel_menu_bar_append_action_item (menubar, menu,
+						   _("Report a Bug"), PANEL_STOCK_REPORT_BUG, NULL,
+						   "ACTION:report-bug:NEW",
+						   G_CALLBACK (panel_action_report_bug));
+
+	if (panel_is_program_in_path  ("gnome-about"))
+		panel_menu_bar_append_action_item (menubar, menu,
+						   _("About GNOME"), GNOME_STOCK_ABOUT, NULL,
+						   "ACTION:about-gnome:NEW",
+						   G_CALLBACK (panel_action_about_gnome));
+
+}
+
+
+static void
 panel_menu_bar_instance_init (PanelMenuBar      *menubar,
 			      PanelMenuBarClass *klass)
 {
@@ -252,6 +295,7 @@
 	menubar->priv->actions_menu = NULL;
 	menubar->priv->actions_item = NULL;
 	panel_menu_bar_append_actions_menu (menubar);
+	panel_menu_bar_append_help_menu (menubar);
 
 	panel_lockdown_notify_add (G_CALLBACK (panel_menu_bar_recreate_actions_menu),
 				   menubar);
Index: gnome-panel/panel-stock-icons.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-stock-icons.c,v
retrieving revision 1.19
diff -u -r1.19 panel-stock-icons.c
--- gnome-panel/panel-stock-icons.c	20 Jul 2004 07:25:20 -0000	1.19
+++ gnome-panel/panel-stock-icons.c	11 Aug 2004 12:10:33 -0000
@@ -88,6 +88,7 @@
 	{ PANEL_STOCK_DRAWER,              "panel-drawer" },
 	{ PANEL_STOCK_APPLETS,             "gnome-applets" },
 	{ PANEL_STOCK_DESKTOP,             "gnome-ccdesktop" },
+	{ PANEL_STOCK_REPORT_BUG,          "bug-buddy" }
 };
 
 static void
Index: gnome-panel/panel-stock-icons.h
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-stock-icons.h,v
retrieving revision 1.15
diff -u -r1.15 panel-stock-icons.h
--- gnome-panel/panel-stock-icons.h	20 Jul 2004 07:25:20 -0000	1.15
+++ gnome-panel/panel-stock-icons.h	11 Aug 2004 12:10:33 -0000
@@ -62,6 +62,7 @@
 #define PANEL_STOCK_DRAWER              "panel-drawer"
 #define PANEL_STOCK_APPLETS             "panel-applet"
 #define PANEL_STOCK_DESKTOP             "panel-desktop"
+#define PANEL_STOCK_REPORT_BUG          "panel-report-bug"
 
 /* stock items  - no point in theme the icons one these,
  * they use stock gtk icons and just modify the text
