Ejemplo n.º 1
0
 public override void OnNoteOpened()
 {
     item = new Gtk.ImageMenuItem (Catalog.GetString("Email"));
     item.Activated += OnImageMenuItemActivated;
     item.AddAccelerator ("activate", Window.AccelGroup,
         (uint) Gdk.Key.e, Gdk.ModifierType.ControlMask,
         Gtk.AccelFlags.Visible);
     item.Show ();
     AddPluginMenuItem (item);
 }
Ejemplo n.º 2
0
Archivo: Utils.cs Proyecto: GNOME/blam
        public static void AppendMenuItem(Gtk.Menu menu, string label,
					   string image_name, EventHandler e,
					   bool enabled)
        {
            Gtk.ImageMenuItem i = new Gtk.ImageMenuItem (label);
                i.Activated += e;
                i.Sensitive = enabled;
                i.Image = new Gtk.Image (image_name, Gtk.IconSize.Menu);

                menu.Append (i);
                i.Show ();
        }
Ejemplo n.º 3
0
		public override void OnNoteOpened ()
		{
			// Adding menu item when note is opened and window created
			item = new Gtk.ImageMenuItem (Catalog.GetString ("Remove broken links"));
			item.Image = new Gtk.Image (Gtk.Stock.Clear, Gtk.IconSize.Menu);
			item.AddAccelerator ("activate", Window.AccelGroup,
				(uint) Gdk.Key.r, Gdk.ModifierType.ControlMask,
				Gtk.AccelFlags.Visible);
			item.Activated += OnMenuItemActivated;
			item.Show ();
			AddPluginMenuItem (item);
		}
Ejemplo n.º 4
0
 public override void OnNoteOpened()
 {
     // Adding menu item when note is opened and window created
     item       = new Gtk.ImageMenuItem(Catalog.GetString("Remove broken links"));
     item.Image = new Gtk.Image(Gtk.Stock.Clear, Gtk.IconSize.Menu);
     item.AddAccelerator("activate", Window.AccelGroup,
                         (uint)Gdk.Key.r, Gdk.ModifierType.ControlMask,
                         Gtk.AccelFlags.Visible);
     item.Activated += OnMenuItemActivated;
     item.Show();
     AddPluginMenuItem(item);
 }
Ejemplo n.º 5
0
    public static Gtk.MenuItem MakeMenuItem(Gtk.Menu menu, string label, string image_name, EventHandler e, bool enabled)
    {
        Gtk.ImageMenuItem i = new Gtk.ImageMenuItem(label);
        i.Activated += e;
        i.Sensitive  = enabled;
        i.Image      = new Gtk.Image(image_name, Gtk.IconSize.Menu);

        menu.Append(i);
        i.Show();

        return(i);
    }
Ejemplo n.º 6
0
        public SearchEntry ()
        {
            BuildSearchEntry ();

            InterfaceActionService uia = ServiceManager.Get<InterfaceActionService> ();
            if (uia != null) {
                Gtk.Action action = uia.GlobalActions["WikiSearchHelpAction"];
                if (action != null) {
                    MenuItem item = new SeparatorMenuItem ();
                    item.Show ();
                    Menu.Append (item);

                    item = new ImageMenuItem (Stock.Help, null);
                    item.Activated += delegate { action.Activate (); };
                    item.Show ();
                    Menu.Append (item);
                }
            }

            SearchSensitive = true;
            Show ();
        }
Ejemplo n.º 7
0
    public ColorToolButton(Color color, string name) :
        base(new ColorBlockWidget(color), name)
    {
        Menu = new Menu();

        SeparatorMenuItem sep = new SeparatorMenuItem();
        (Menu as Menu).Append(sep);
        sep.Show();

        // TODO: Figure out how to replace "new AccelGroup()"
        ImageMenuItem colors = new ImageMenuItem(Stock.ColorPicker,
            new AccelGroup());
        if(colors.Child is Label) (colors.Child as Label).Text =
            "More Colors...";
        colors.Activated += MoreColorsActivated;
        (Menu as Menu).Append(colors);
        colors.Show();

        SetMainColor(AddColor(color, name));

        numCustomItems = 0;
    }
Ejemplo n.º 8
0
        private void DoPopUp()
        {
            Menu popup = new Menu();

            ImageMenuItem newItem = new ImageMenuItem (Stock.New, new Gtk.AccelGroup(IntPtr.Zero));
            newItem.Activated += new EventHandler (OnNewEntryActivate);
            newItem.Show ();
            popup.Append (newItem);

            MenuItem renameItem = new MenuItem ("Rename...");
            renameItem.Activated += new EventHandler (OnRenameActivate);
            renameItem.Show ();

            popup.Append (renameItem);

            MenuItem exportItem = new MenuItem ("Export...");
            exportItem.Activated += new EventHandler (OnExportActivate);
            exportItem.Show ();

            popup.Append (exportItem);

            ImageMenuItem deleteItem = new ImageMenuItem (Stock.Delete, new Gtk.AccelGroup(IntPtr.Zero));
            deleteItem.Activated += new EventHandler (OnDeleteActivate);
            deleteItem.Show ();

            popup.Append (deleteItem);

            popup.Popup(null, null, null, 3,
                    Gtk.Global.CurrentEventTime);
        }
Ejemplo n.º 9
0
		// FIXME: Tags applied to a word should hold over the space
		// between the next word, as thats where you'll start typeing.
		// Tags are only active -after- a character with that tag.  This
		// is different from the way gtk-textbuffer applies tags.

		//
		// Text menu
		//
		// Menu for font style and size, and set the active radio
		// menuitem depending on the cursor poition.
		//

		public NoteTextMenu (Gtk.AccelGroup accel_group,
		                     NoteBuffer     buffer,
		                     UndoManager    undo_manager)
			: base ()
		{
			this.buffer = buffer;
			this.undo_manager = undo_manager;

			if (undo_manager != null) {
				undo = new Gtk.ImageMenuItem (Gtk.Stock.Undo, accel_group);
				undo.Activated += UndoClicked;
				undo.AddAccelerator ("activate",
				                     accel_group,
				                     (uint) Gdk.Key.z,
				                     Gdk.ModifierType.ControlMask,
				                     Gtk.AccelFlags.Visible);
				undo.Show ();
				Append (undo);

				redo = new Gtk.ImageMenuItem (Gtk.Stock.Redo, accel_group);
				redo.Activated += RedoClicked;
				redo.AddAccelerator ("activate",
				                     accel_group,
				                     (uint) Gdk.Key.z,
				                     (Gdk.ModifierType.ControlMask |
				                      Gdk.ModifierType.ShiftMask),
				                     Gtk.AccelFlags.Visible);
				redo.Show ();
				Append (redo);

				Gtk.SeparatorMenuItem undo_spacer = new Gtk.SeparatorMenuItem ();
				Append (undo_spacer);

				// Listen to events so we can sensitize and
				// enable keybinding
				undo_manager.UndoChanged += UndoChanged;
			}

			bold = new Gtk.CheckMenuItem ("<b>" +
			                              Catalog.GetString ("_Bold") +
			                              "</b>");
			MarkupLabel (bold);
			bold.Data ["Tag"] = "bold";
			bold.Activated += FontStyleClicked;
			bold.AddAccelerator ("activate",
			                     accel_group,
			                     (uint) Gdk.Key.b,
			                     Gdk.ModifierType.ControlMask,
			                     Gtk.AccelFlags.Visible);

			italic = new Gtk.CheckMenuItem ("<i>" +
			                                Catalog.GetString ("_Italic") +
			                                "</i>");
			MarkupLabel (italic);
			italic.Data ["Tag"] = "italic";
			italic.Activated += FontStyleClicked;
			italic.AddAccelerator ("activate",
			                       accel_group,
			                       (uint) Gdk.Key.i,
			                       Gdk.ModifierType.ControlMask,
			                       Gtk.AccelFlags.Visible);

			strikeout = new Gtk.CheckMenuItem ("<s>" +
			                                   Catalog.GetString ("_Strikeout") +
			                                   "</s>");
			MarkupLabel (strikeout);
			strikeout.Data ["Tag"] = "strikethrough";
			strikeout.Activated += FontStyleClicked;
			strikeout.AddAccelerator ("activate",
			                          accel_group,
			                          (uint) Gdk.Key.s,
			                          Gdk.ModifierType.ControlMask,
			                          Gtk.AccelFlags.Visible);

			highlight = new Gtk.CheckMenuItem ("<span background='yellow'>" +
			                                   Catalog.GetString ("_Highlight") +
			                                   "</span>");
			MarkupLabel (highlight);
			highlight.Data ["Tag"] = "highlight";
			highlight.Activated += FontStyleClicked;
			highlight.AddAccelerator ("activate",
			                          accel_group,
			                          (uint) Gdk.Key.h,
			                          Gdk.ModifierType.ControlMask,
			                          Gtk.AccelFlags.Visible);

			Gtk.SeparatorMenuItem spacer1 = new Gtk.SeparatorMenuItem ();

			Gtk.MenuItem font_size = new Gtk.MenuItem (Catalog.GetString ("Font Size"));
			font_size.Sensitive = false;

			normal = new Gtk.RadioMenuItem (Catalog.GetString ("_Normal"));
			MarkupLabel (normal);
			normal.Active = true;
			normal.AddAccelerator ("activate",
						accel_group,
						(uint) Gdk.Key.Key_0,
						Gdk.ModifierType.ControlMask,
						Gtk.AccelFlags.Visible);
			normal.AddAccelerator ("activate",
						accel_group,
						(uint) Gdk.Key.KP_0,
						Gdk.ModifierType.ControlMask,
						Gtk.AccelFlags.Visible);
			normal.Activated += FontSizeActivated;

			huge = new Gtk.RadioMenuItem (normal.Group,
			                              "<span size=\"x-large\">" +
			                              Catalog.GetString ("Hu_ge") +
			                              "</span>");
			MarkupLabel (huge);
			huge.Data ["Tag"] = "size:huge";
			huge.Activated += FontSizeActivated;

			large = new Gtk.RadioMenuItem (huge.Group,
			                               "<span size=\"large\">" +
			                               Catalog.GetString ("_Large") +
			                               "</span>");
			MarkupLabel (large);
			large.Data ["Tag"] = "size:large";
			large.Activated += FontSizeActivated;

			small = new Gtk.RadioMenuItem (large.Group,
			                               "<span size=\"small\">" +
			                               Catalog.GetString ("S_mall") +
			                               "</span>");
			MarkupLabel (small);
			small.Data ["Tag"] = "size:small";
			small.Activated += FontSizeActivated;

			hidden_no_size = new Gtk.RadioMenuItem (small.Group, string.Empty);
			hidden_no_size.Hide ();

			increase_font = new Gtk.MenuItem (Catalog.GetString ("Increase Font Size"));
			increase_font.AddAccelerator ("activate",
						accel_group,
						(uint) Gdk.Key.plus,
						Gdk.ModifierType.ControlMask,
						Gtk.AccelFlags.Visible);
			increase_font.AddAccelerator ("activate",
						accel_group,
						(uint) Gdk.Key.KP_Add,
						Gdk.ModifierType.ControlMask,
						Gtk.AccelFlags.Visible);
			increase_font.AddAccelerator ("activate",
						accel_group,
						(uint) Gdk.Key.equal,
						Gdk.ModifierType.ControlMask,
						Gtk.AccelFlags.Visible);
			increase_font.Activated += IncreaseFontClicked;

			decrease_font = new Gtk.MenuItem (Catalog.GetString ("Decrease Font Size"));
			decrease_font.AddAccelerator ("activate",
						accel_group,
						(uint) Gdk.Key.minus,
						Gdk.ModifierType.ControlMask,
						Gtk.AccelFlags.Visible);
			decrease_font.AddAccelerator ("activate",
						accel_group,
						(uint) Gdk.Key.KP_Subtract,
						Gdk.ModifierType.ControlMask,
						Gtk.AccelFlags.Visible);
			decrease_font.AddAccelerator ("activate",
						accel_group,
						(uint) Gdk.Key.underscore,
						Gdk.ModifierType.ControlMask,
						Gtk.AccelFlags.Visible);
			decrease_font.Activated += DecreaseFontClicked;

			Gtk.SeparatorMenuItem spacer2 = new Gtk.SeparatorMenuItem ();

			bullets = new Gtk.CheckMenuItem (Catalog.GetString ("Bullets"));
			bullets.Activated += ToggleBulletsClicked;

			increase_indent = new Gtk.ImageMenuItem (Gtk.Stock.Indent, accel_group);
			increase_indent.AddAccelerator ("activate",
						accel_group,
						(uint) Gdk.Key.Right,
						Gdk.ModifierType.Mod1Mask,
						Gtk.AccelFlags.Visible);
			increase_indent.Activated += IncreaseIndentClicked;
			increase_indent.Show ();

			decrease_indent = new Gtk.ImageMenuItem (Gtk.Stock.Unindent, accel_group);
			decrease_indent.AddAccelerator ("activate",
						accel_group,
						(uint) Gdk.Key.Left,
						Gdk.ModifierType.Mod1Mask,
						Gtk.AccelFlags.Visible);
			decrease_indent.Activated += DecreaseIndentClicked;
			decrease_indent.Show ();

			RefreshState ();

			Append (bold);
			Append (italic);
			Append (strikeout);
			Append (highlight);
			Append (spacer1);
			Append (font_size);
			Append (small);
			Append (normal);
			Append (large);
			Append (huge);
			Append (increase_font);
			Append (decrease_font);
			Append (spacer2);
			Append (bullets);
			Append (increase_indent);
			Append (decrease_indent);
			ShowAll ();

			theme_hack_menu = new Menu ();
			theme_hack_menu.Realize ();
			theme_hack_menu.StyleSet += delegate {
				ModifyBg (StateType.Normal, theme_hack_menu.Style.Background (StateType.Normal));
			};
		}
Ejemplo n.º 10
0
        private void BuildHeader ()
        {
            source_actions_align = new Gtk.Alignment (0f, .5f, 1f, 0f) {
                RightPadding = 0,
                LeftPadding = 0,
                NoShowAll = true
            };

            if (Hyena.PlatformDetection.IsMeeGo) {
                source_actions_align.RightPadding = 5;
                source_actions_align.TopPadding = 5;
            }

            footer = new VBox ();

            source_actions_box = new EventBox () { Visible = true };

            BuildSearchEntry ();

            InterfaceActionService uia = ServiceManager.Get<InterfaceActionService> ();
            if (uia != null) {
                Gtk.Action action = uia.GlobalActions["WikiSearchHelpAction"];
                if (action != null) {
                    MenuItem item = new SeparatorMenuItem ();
                    item.Show ();
                    search_entry.Menu.Append (item);

                    item = new ImageMenuItem (Stock.Help, null);
                    item.Activated += delegate { action.Activate (); };
                    item.Show ();
                    search_entry.Menu.Append (item);
                }
            }

            source_actions_box.ShowAll ();
            source_actions_align.Add (source_actions_box);
            source_actions_align.Hide ();
            search_entry.Show ();


            context_pane = new Banshee.ContextPane.ContextPane ();
            context_pane.ExpandHandler = b => {
                SetChildPacking (content.Widget, !b, true, 0, PackType.Start);
                SetChildPacking (context_pane, b, b, 0, PackType.End);
            };

            // Top to bottom, their order is reverse of this:
            PackEnd (footer, false, false, 0);
            PackEnd (context_pane, false, false, 0);
            PackEnd (source_actions_align, false, false, 0);
            PackEnd (new ConnectedMessageBar (), false, true, 0);
        }
        public override void OnNoteOpened()
        {
            insertLocalImageMenuItem = new Gtk.ImageMenuItem (
                Catalog.GetString ("Insert Local Image"));
            insertLocalImageMenuItem.Image = new Gtk.Image (Gtk.Stock.Harddisk, Gtk.IconSize.Menu);
            insertLocalImageMenuItem.Activated += OnInsertLocalImage;
            insertLocalImageMenuItem.AddAccelerator ("activate", Window.AccelGroup,
                (uint)Gdk.Key.l, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask,
                Gtk.AccelFlags.Visible);
            insertLocalImageMenuItem.Show ();
            AddPluginMenuItem (insertLocalImageMenuItem);

            insertWebImageMenuItem = new Gtk.ImageMenuItem (
                Catalog.GetString ("Insert Web Image"));
            insertWebImageMenuItem.Image = new Gtk.Image (Gtk.Stock.Network, Gtk.IconSize.Menu);
            insertWebImageMenuItem.Activated += OnInsertWebImage;
            insertWebImageMenuItem.AddAccelerator ("activate", Window.AccelGroup,
                (uint)Gdk.Key.w, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask,
                Gtk.AccelFlags.Visible);
            insertWebImageMenuItem.Show ();
            AddPluginMenuItem (insertWebImageMenuItem);

            LoadImageBoxes ();

            Note.Saved += OnNoteSaved;
            Buffer.DeleteRange += new DeleteRangeHandler (Buffer_DeleteRange);
        }
Ejemplo n.º 12
0
        void DoPopUp()
        {
            popup = new Menu();

            ImageMenuItem newItem = new ImageMenuItem ("New");
            Gtk.Image newImage = new Gtk.Image (Stock.New, IconSize.Menu);
            newItem.Image = newImage;
            newItem.Activated += new EventHandler (OnNewEntryActivate);
            newItem.Show ();

            popup.Append (newItem);

            Gdk.Pixbuf pb = Gdk.Pixbuf.LoadFromResource ("document-save.png");
            ImageMenuItem exportItem = new ImageMenuItem ("Export");
            exportItem.Image = new Gtk.Image (pb);
            exportItem.Activated += new EventHandler (OnExportActivate);
            exportItem.Show ();

            popup.Append (exportItem);

            ImageMenuItem deleteItem = new ImageMenuItem ("Delete");
            Gtk.Image deleteImage = new Gtk.Image (Stock.Delete, IconSize.Menu);
            deleteItem.Image = deleteImage;
            deleteItem.Activated += new EventHandler (OnDeleteActivate);
            deleteItem.Show ();

            popup.Append (deleteItem);

            ImageMenuItem propItem = new ImageMenuItem ("Properties");
            Gtk.Image propImage = new Gtk.Image (Stock.Properties, IconSize.Menu);
            propItem.Image = propImage;
            propItem.Activated += new EventHandler (OnEditActivate);
            propItem.Show ();

            popup.Append (propItem);

            bool users = false;
            if (viewPlugin.Name.ToLower() == "users") {

                SeparatorMenuItem sm = new SeparatorMenuItem ();
                sm.Show ();
                popup.Append (sm);

                Gdk.Pixbuf pwdImage = Gdk.Pixbuf.LoadFromResource ("locked16x16.png");
                ImageMenuItem pwdItem = new ImageMenuItem ("Change password");
                pwdItem.Image = new Gtk.Image (pwdImage);
                pwdItem.Activated += new EventHandler (OnPwdActivate);
                pwdItem.Show ();

                popup.Append (pwdItem);
                users = true;
            }

            if (users || viewPlugin.Name.ToLower() == "contacts") {

                if (!users) {
                    SeparatorMenuItem sm = new SeparatorMenuItem ();
                    sm.Show ();
                    popup.Append (sm);
                }

                pb = Gdk.Pixbuf.LoadFromResource ("mail-message-new.png");
                ImageMenuItem mailItem = new ImageMenuItem ("Send email");
                mailItem.Image = new Gtk.Image (pb);
                mailItem.Activated += new EventHandler (OnEmailActivate);
                mailItem.Show ();

                popup.Append (mailItem);

                Gdk.Pixbuf wwwImage = Gdk.Pixbuf.LoadFromResource ("go-home.png");
                ImageMenuItem wwwItem = new ImageMenuItem ("Open home page");
                wwwItem.Image = new Gtk.Image (wwwImage);
                wwwItem.Activated += new EventHandler (OnWWWActivate);
                wwwItem.Show ();

                popup.Append (wwwItem);
            }

            popup.Popup(null, null, null, 3, Gtk.Global.CurrentEventTime);
        }
Ejemplo n.º 13
0
		void OnPopulatePopup (object sender, Gtk.PopulatePopupArgs args)
		{
			args.Menu.AccelGroup = accel_group;

			Logger.Debug ("Populating context menu...");

			// Remove the lame-o gigantic Insert Unicode Control
			// Characters menu item.
			Gtk.Widget lame_unicode;
			lame_unicode = (Gtk.Widget)
			               args.Menu.Children [args.Menu.Children.Length - 1];
			args.Menu.Remove (lame_unicode);

			Gtk.MenuItem spacer1 = new Gtk.SeparatorMenuItem ();
			spacer1.Show ();

			Gtk.ImageMenuItem search = new Gtk.ImageMenuItem (
			        Catalog.GetString ("_Search All Notes"));
			search.Image = new Gtk.Image (Gtk.Stock.Find, Gtk.IconSize.Menu);
			search.Activated += SearchActivate;
			search.AddAccelerator ("activate",
			                       accel_group,
			                       (uint) Gdk.Key.f,
			                       (Gdk.ModifierType.ControlMask |
			                        Gdk.ModifierType.ShiftMask),
			                       Gtk.AccelFlags.Visible);
			search.Show ();

			Gtk.ImageMenuItem link =
			        new Gtk.ImageMenuItem (Catalog.GetString ("_Link to New Note"));
			link.Image = new Gtk.Image (Gtk.Stock.JumpTo, Gtk.IconSize.Menu);
			link.Sensitive = (note.Buffer.Selection != null);
			link.Activated += LinkToNoteActivate;
			link.AddAccelerator ("activate",
			                     accel_group,
			                     (uint) Gdk.Key.l,
			                     Gdk.ModifierType.ControlMask,
			                     Gtk.AccelFlags.Visible);
			link.Show ();

			Gtk.ImageMenuItem text_item =
			        new Gtk.ImageMenuItem (Catalog.GetString ("Te_xt"));
			text_item.Image = new Gtk.Image (Gtk.Stock.SelectFont, Gtk.IconSize.Menu);
			text_item.Submenu = new NoteTextMenu (accel_group,
			                                      note.Buffer,
			                                      note.Buffer.Undoer);
			text_item.Show ();

			Gtk.ImageMenuItem find_item =
			        new Gtk.ImageMenuItem (Catalog.GetString ("_Find in This Note"));
			find_item.Image = new Gtk.Image (Gtk.Stock.Find, Gtk.IconSize.Menu);
			find_item.Submenu = MakeFindMenu ();
			find_item.Show ();

			Gtk.MenuItem spacer2 = new Gtk.SeparatorMenuItem ();
			spacer2.Show ();

			args.Menu.Prepend (spacer1);
			args.Menu.Prepend (text_item);
			args.Menu.Prepend (find_item);
			args.Menu.Prepend (link);
			args.Menu.Prepend (search);

			Gtk.MenuItem close_all =
			        new Gtk.MenuItem (Catalog.GetString ("Clos_e All Notes"));
			close_all.Activated += CloseAllWindowsHandler;
			close_all.AddAccelerator ("activate",
			                          accel_group,
			                          (uint) Gdk.Key.q,
			                          Gdk.ModifierType.ControlMask,
			                          Gtk.AccelFlags.Visible);
			close_all.Show ();

			Gtk.ImageMenuItem close_window =
			        new Gtk.ImageMenuItem (Catalog.GetString ("_Close"));
			close_window.Image = new Gtk.Image (Gtk.Stock.Close, Gtk.IconSize.Menu);
			close_window.Activated += CloseWindowHandler;
			close_window.AddAccelerator ("activate",
			                             accel_group,
			                             (uint) Gdk.Key.w,
			                             Gdk.ModifierType.ControlMask,
			                             Gtk.AccelFlags.Visible);
			close_window.Show ();

			args.Menu.Append (close_all);
			args.Menu.Append (close_window);
		}
Ejemplo n.º 14
0
		//
		// Construct a window to display a note
		//
		// Currently a toolbar with Link, Search, Text, Delete buttons
		// and a Gtk.TextView as the body.
		//

		public NoteWindow (Note note)
			: base (note.Title)
		{
			this.note = note;
			this.IconName = "tomboy";
			this.SetDefaultSize (450, 360);
			Resizable = true;

			accel_group = new Gtk.AccelGroup ();
			AddAccelGroup (accel_group);

			text_menu = new NoteTextMenu (accel_group, note.Buffer, note.Buffer.Undoer);

			// Add the Find menu item to the toolbar Text menu.  It
			// should only show up in the toplevel Text menu, since
			// the context menu already has a Find submenu.

			Gtk.SeparatorMenuItem spacer = new Gtk.SeparatorMenuItem ();
			spacer.Show ();
			text_menu.Append (spacer);

			Gtk.ImageMenuItem find_item =
			        new Gtk.ImageMenuItem (Catalog.GetString("Find in This Note"));
			find_item.Image = new Gtk.Image (Gtk.Stock.Find, Gtk.IconSize.Menu);
			find_item.Activated += FindActivate;
			find_item.AddAccelerator ("activate",
			                          accel_group,
			                          (uint) Gdk.Key.f,
			                          Gdk.ModifierType.ControlMask,
			                          Gtk.AccelFlags.Visible);
			find_item.Show ();
			text_menu.Append (find_item);

			plugin_menu = MakePluginMenu ();

			toolbar = MakeToolbar ();
			toolbar.Show ();


			template_widget = MakeTemplateBar ();

			// The main editor widget
			editor = new NoteEditor (note.Buffer);
			editor.PopulatePopup += OnPopulatePopup;
			editor.Show ();

			// Sensitize the Link toolbar button on text selection
			mark_set_timeout = new InterruptableTimeout();
			mark_set_timeout.Timeout += UpdateLinkButtonSensitivity;
			note.Buffer.MarkSet += OnSelectionMarkSet;

			// FIXME: I think it would be really nice to let the
			//        window get bigger up till it grows more than
			//        60% of the screen, and then show scrollbars.
			editor_window = new Gtk.ScrolledWindow ();
			editor_window.HscrollbarPolicy = Gtk.PolicyType.Automatic;
			editor_window.VscrollbarPolicy = Gtk.PolicyType.Automatic;
			editor_window.Add (editor);
			editor_window.Show ();

			FocusChild = editor;

			find_bar = new NoteFindBar (note);
			find_bar.Visible = false;
			find_bar.NoShowAll = true;
			find_bar.Hidden += FindBarHidden;

			Gtk.VBox box = new Gtk.VBox (false, 2);
			box.PackStart (toolbar, false, false, 0);
			box.PackStart (template_widget, false, false, 0);
			box.PackStart (editor_window, true, true, 0);
			box.PackStart (find_bar, false, false, 0);

			box.Show ();

			// Don't set up Ctrl-W or Ctrl-N if Emacs is in use
			bool using_emacs = false;
			string gtk_key_theme = (string)
				Preferences.Get ("/desktop/gnome/interface/gtk_key_theme");
			if (gtk_key_theme != null && gtk_key_theme.CompareTo ("Emacs") == 0)
				using_emacs = true;

			// NOTE: Since some of our keybindings are only
			// available in the context menu, and the context menu
			// is created on demand, register them with the
			// global keybinder
			global_keys = new GlobalKeybinder (accel_group);

			// Close window (Ctrl-W)
			if (!using_emacs)
				global_keys.AddAccelerator (new EventHandler (CloseWindowHandler),
				                            (uint) Gdk.Key.w,
				                            Gdk.ModifierType.ControlMask,
				                            Gtk.AccelFlags.Visible);

			// Escape has been moved to be handled by a KeyPress Handler so that
			// Escape can be used to close the FindBar.

			// Close all windows on current Desktop (Ctrl-Q)
			global_keys.AddAccelerator (new EventHandler (CloseAllWindowsHandler),
			                            (uint) Gdk.Key.q,
			                            Gdk.ModifierType.ControlMask,
			                            Gtk.AccelFlags.Visible);

			// Find Next (Ctrl-G)
			global_keys.AddAccelerator (new EventHandler (FindNextActivate),
			                            (uint) Gdk.Key.g,
			                            Gdk.ModifierType.ControlMask,
			                            Gtk.AccelFlags.Visible);

			// Find Previous (Ctrl-Shift-G)
			global_keys.AddAccelerator (new EventHandler (FindPreviousActivate),
			                            (uint) Gdk.Key.g,
			                            (Gdk.ModifierType.ControlMask |
			                             Gdk.ModifierType.ShiftMask),
			                            Gtk.AccelFlags.Visible);

			// Open Help (F1)
			global_keys.AddAccelerator (new EventHandler (OpenHelpActivate),
			                            (uint) Gdk.Key.F1,
			                            0,
			                            0);

			// Create a new note
			if (!using_emacs)
				global_keys.AddAccelerator (new EventHandler (CreateNewNote),
				                            (uint) Gdk.Key.n,
				                            Gdk.ModifierType.ControlMask,
				                            Gtk.AccelFlags.Visible);

			// Have Esc key close the find bar or note window
			KeyPressEvent += KeyPressed;

			// Increase Indent
			global_keys.AddAccelerator (new EventHandler (ChangeDepthRightHandler),
			                            (uint) Gdk.Key.Right,
			                            Gdk.ModifierType.Mod1Mask,
			                            Gtk.AccelFlags.Visible);

			// Decrease Indent
			global_keys.AddAccelerator (new EventHandler (ChangeDepthLeftHandler),
			                            (uint) Gdk.Key.Left,
			                            Gdk.ModifierType.Mod1Mask,
			                            Gtk.AccelFlags.Visible);

			this.Add (box);
		}
Ejemplo n.º 15
0
        void DoPopUp()
        {
            Menu popup = new Menu();

            ImageMenuItem addBinaryValueItem = new ImageMenuItem ("Add binary value...");
            addBinaryValueItem.Image = new Gtk.Image (Stock.Open, IconSize.Menu);
            addBinaryValueItem.Activated += new EventHandler (OnAddBinaryValueActivate);
            addBinaryValueItem.Show ();
            popup.Append (addBinaryValueItem);

            ImageMenuItem newObjectClassItem = new ImageMenuItem ("Add object class(es)...");
            newObjectClassItem.Image = new Gtk.Image (Stock.Add, IconSize.Menu);
            newObjectClassItem.Activated += new EventHandler (OnAddObjectClassActivate);
            newObjectClassItem.Show ();
            popup.Append (newObjectClassItem);

            ImageMenuItem deleteItem = new ImageMenuItem ("Delete attribute");
            deleteItem.Image = new Gtk.Image (Stock.Delete, IconSize.Menu);
            deleteItem.Activated += new EventHandler (OnDeleteActivate);
            deleteItem.Show ();
            popup.Append (deleteItem);

            ImageMenuItem newItem = new ImageMenuItem ("Insert attribute");
            newItem.Image = new Gtk.Image (Stock.New, IconSize.Menu);
            newItem.Activated += new EventHandler (OnInsertActivate);
            newItem.Show ();
            popup.Append (newItem);

            ImageMenuItem saveBinaryValueItem = new ImageMenuItem ("Save binary value...");
            saveBinaryValueItem.Image = new Gtk.Image (Stock.Save, IconSize.Menu);
            saveBinaryValueItem.Activated += new EventHandler (OnSaveBinaryValueActivate);
            saveBinaryValueItem.Show ();
            popup.Append (saveBinaryValueItem);

            popup.Popup(null, null, null, 3, Gtk.Global.CurrentEventTime);
        }
Ejemplo n.º 16
0
		//
		// Toolbar
		//
		// Add Link button, Font menu, Delete button to the window's
		// toolbar.
		//

		Gtk.Toolbar MakeToolbar ()
		{
			Gtk.Toolbar tb = new Gtk.Toolbar ();
			tb.Tooltips = true;

			toolbar_tips = new Gtk.Tooltips ();

			Gtk.ToolButton search = new Gtk.ToolButton (
				new Gtk.Image (Gtk.Stock.Find, tb.IconSize),
				Catalog.GetString ("Search"));
			search.IsImportant = true;
			search.Clicked += SearchActivate;
			// TODO: If we ever add a way to customize internal keybindings, this will need to change
			toolbar_tips.SetTip (search, Catalog.GetString ("Search your notes") + " (Ctrl-Shift-F)", null);
			search.AddAccelerator ("clicked",
			                       accel_group,
			                       (uint) Gdk.Key.f,
			                       (Gdk.ModifierType.ControlMask |
			                        Gdk.ModifierType.ShiftMask),
			                       Gtk.AccelFlags.Visible);
			search.ShowAll ();
			tb.Insert (search, -1);

			link_button = new Gtk.ToolButton (
				new Gtk.Image (Gtk.Stock.JumpTo, tb.IconSize),
				Catalog.GetString ("Link"));
			link_button.IsImportant = true;
			link_button.Sensitive = (note.Buffer.Selection != null);
			link_button.Clicked += LinkToNoteActivate;
			// TODO: If we ever add a way to customize internal keybindings, this will need to change
			toolbar_tips.SetTip (
				link_button,
				Catalog.GetString ("Link selected text to a new note") + " (Ctrl-L)",
				null);
			link_button.AddAccelerator ("clicked",
			                            accel_group,
			                            (uint) Gdk.Key.l,
			                            Gdk.ModifierType.ControlMask,
			                            Gtk.AccelFlags.Visible);
			link_button.ShowAll ();
			tb.Insert (link_button, -1);

			ToolMenuButton text_button =
			        new ToolMenuButton (tb,
			                            Gtk.Stock.SelectFont,
			                            Catalog.GetString ("_Text"),
			                            text_menu);
			text_button.IsImportant = true;
			text_button.ShowAll ();
			tb.Insert (text_button, -1);
			toolbar_tips.SetTip (text_button, Catalog.GetString ("Set properties of text"), null);

			ToolMenuButton plugin_button =
			        new ToolMenuButton (tb,
			                            Gtk.Stock.Execute,
			                            Catalog.GetString ("T_ools"),
			                            plugin_menu);
			plugin_button.ShowAll ();
			tb.Insert (plugin_button, -1);
			toolbar_tips.SetTip (plugin_button, Catalog.GetString ("Use tools on this note"), null);

			tb.Insert (new Gtk.SeparatorToolItem (), -1);

			delete = new Gtk.ToolButton (Gtk.Stock.Delete);
			delete.Clicked += OnDeleteButtonClicked;
			delete.ShowAll ();
			tb.Insert (delete, -1);
			toolbar_tips.SetTip (delete, Catalog.GetString ("Delete this note"), null);

			// Don't allow deleting the "Start Here" note...
			if (note.IsSpecial)
				delete.Sensitive = false;

			tb.Insert (new Gtk.SeparatorToolItem (), -1);

			sync_menu_item = new Gtk.ImageMenuItem (Catalog.GetString ("Synchronize Notes"));
			sync_menu_item.Image = new Gtk.Image (Gtk.Stock.Convert, Gtk.IconSize.Menu);
			sync_menu_item.Activated += SyncItemSelected;
			sync_menu_item.Show ();
			PluginMenu.Add (sync_menu_item);

			// We might want to know when various settings are altered.
			Preferences.SettingChanged += Preferences_SettingChanged;

			// Update items based on configuration.
			UpdateMenuItems ();

			tb.ShowAll ();
			return tb;
		}
        //Checks prefs and sets up system
        private void setUp()
        {
            bool auto;
            try {
                auto = (bool) Preferences.Get(CalculatorAddin.CALCULATOR_AUTOMATIC_MODE);
            } catch (Exception e) {
                Logger.Debug(e.Message);
                auto = false;				//Defaults to manual if no preference is set.
            }

            if (!auto) {
                //Clean up automatic listeners in case a switch has been made with the note open
                if (buffer != null) buffer.InsertText -= OnInsertText;

                //Sets up a menu item and listener
                item = new Gtk.ImageMenuItem (Catalog.GetString ("Calculate Answer"));
                item.Activated += OnMenuItemActivated;
                item.AddAccelerator ("activate", Window.AccelGroup,
                    (uint) Gdk.Key.e, Gdk.ModifierType.ControlMask,
                    Gtk.AccelFlags.Visible);
                item.Image = new Gtk.Image (Gtk.Stock.Execute, Gtk.IconSize.Menu);
                item.Show ();
                AddPluginMenuItem (item);
            } else {
                //Clean up manual listeners in case a switch has been made with the note open
                if (item != null){
                    item.Activated -= OnMenuItemActivated;
                    item.Hide();
                }
                //Add listener to check for braces being typed in
                buffer.InsertText += OnInsertText;
                Logger.Debug("CalcAddin: Listening for equation brackets");
                equation_ends = new List<TextMark>();
                equation_starts = new List<TextMark>();

                //TODO: Set up a watcher that notes when braces are deleted and removes the marks.

                //TODO: Set up a method to search through for existing brackets at startup

            }
        }
Ejemplo n.º 18
0
        public AppMenuBar()
            : base()
        {
            /* File menu */
            fileMenuItem =
                new MenuItem (Catalog.GetString ("_File"));
            Append (fileMenuItem);

            Menu menu = new Menu ();
              fileMenuItem.Submenu = menu;
              menu.Append (new SeparatorMenuItem ());
            ImageMenuItem item =
                new ImageMenuItem (Catalog.
                           GetString ("_Quit"));
              item.Image = new Image (Stock.Quit, IconSize.Menu);
              item.Activated += OnQuit;
              quitMenuItem = item;

              menu.Append (item);

            /* Edit menu */
              editMenuItem =
                new MenuItem (Catalog.GetString ("_Edit"));
              editMenuItem.Submenu = new Menu ();
              Append (editMenuItem);

            /* View menu */
              viewMenuItem =
                new MenuItem (Catalog.GetString ("_View"));
              viewMenuItem.Submenu = new Menu ();
              Append (viewMenuItem);

              menu = new Menu ();
              viewMenuItem.Submenu = menu;

              fullscreenMenuItem = item =
                new ImageMenuItem (Catalog.
                           GetString ("_Fullscreen"));
              item.Activated += OnFullscreenActivated;
              item.Image =
                new Image (Stock.Fullscreen, IconSize.Menu);
              menu.Append (item);

              unfullscreenMenuItem = item =
                new ImageMenuItem (Catalog.
                           GetString
                           ("_Leave Fullscreen"));
              item.Activated += OnUnfullscreenActivated;
              item.Image =
                new Image (Stock.LeaveFullscreen,
                       IconSize.Menu);
              item.Show ();
            //menu.Append(item);

            /* Help menu */
              helpMenuItem =
                new MenuItem (Catalog.GetString ("_Help"));
              Append (helpMenuItem);

              menu = new Menu ();
              helpMenuItem.Submenu = menu;

              item = new ImageMenuItem (Catalog.
                            GetString ("_About"));
              item.Image = new Image (Stock.About, IconSize.Menu);
              item.Activated += OnAbout;
              menu.Append (item);

              item = new ImageMenuItem (Catalog.
                            GetString ("_Contents"));
              item.Activated += OnContents;
              item.Image = new Image (Stock.Help, IconSize.Menu);
              menu.Append (item);

              ShowAll ();

              CsBoardApp.Instance.Window.WindowStateEvent +=
                OnWindowStateEvent;
              accel = new AccelGroup ();
              set_accel_group (accel);
        }
Ejemplo n.º 19
0
		//
		// Find context menu
		//
		// Find, Find Next, Find Previous menu items.  Next nd previous
		// are only sensitized when there are search results for this
		// buffer to iterate.
		//

		Gtk.Menu MakeFindMenu ()
		{
			Gtk.Menu menu = new Gtk.Menu ();
			menu.AccelGroup = accel_group;

			Gtk.ImageMenuItem find =
			        new Gtk.ImageMenuItem (Catalog.GetString ("_Find..."));
			find.Image = new Gtk.Image (Gtk.Stock.Find, Gtk.IconSize.Menu);
			find.Activated += FindActivate;
			find.AddAccelerator ("activate",
			                     accel_group,
			                     (uint) Gdk.Key.f,
			                     Gdk.ModifierType.ControlMask,
			                     Gtk.AccelFlags.Visible);
			find.Show ();

			Gtk.ImageMenuItem find_next =
			        new Gtk.ImageMenuItem (Catalog.GetString ("Find _Next"));
			find_next.Image = new Gtk.Image (Gtk.Stock.GoForward, Gtk.IconSize.Menu);
			find_next.Sensitive = Find.FindNextButton.Sensitive;

			find_next.Activated += FindNextActivate;
			find_next.AddAccelerator ("activate",
			                          accel_group,
			                          (uint) Gdk.Key.g,
			                          Gdk.ModifierType.ControlMask,
			                          Gtk.AccelFlags.Visible);
			find_next.Show ();

			Gtk.ImageMenuItem find_previous =
			        new Gtk.ImageMenuItem (Catalog.GetString ("Find _Previous"));
			find_previous.Image = new Gtk.Image (Gtk.Stock.GoBack, Gtk.IconSize.Menu);
			find_previous.Sensitive = Find.FindPreviousButton.Sensitive;

			find_previous.Activated += FindPreviousActivate;
			find_previous.AddAccelerator ("activate",
			                              accel_group,
			                              (uint) Gdk.Key.g,
			                              (Gdk.ModifierType.ControlMask |
			                               Gdk.ModifierType.ShiftMask),
			                              Gtk.AccelFlags.Visible);
			find_previous.Show ();

			menu.Append (find);
			menu.Append (find_next);
			menu.Append (find_previous);

			return menu;
		}
Ejemplo n.º 20
0
        void MiniScreenSettings()
        {
            Console.WriteLine("Right Click");

            Gtk.Menu     menu_settings = new Gtk.Menu();
            Gtk.MenuItem menuitem1     = new Gtk.MenuItem(Mono.Unix.Catalog.GetString("MiniScreen Resolution"));
            menu_settings.Append(menuitem1);
            // Submenu 1
            Gtk.Menu     menu_dim    = new Gtk.Menu();
            Gtk.MenuItem menuitem1_0 = new Gtk.MenuItem("300 x 240 (5:4)");
            menu_dim.Append(menuitem1_0);
            menuitem1_0.Show();
            menuitem1.Submenu = menu_dim;

            Gtk.MenuItem menuitem1_1 = new Gtk.MenuItem("400 x 320 (5:4)");
            menu_dim.Append(menuitem1_1);
            menuitem1_1.Show();

            Gtk.MenuItem menuitem1_6 = new Gtk.MenuItem("400 x 235 (16:9)");
            menu_dim.Append(menuitem1_6);
            menuitem1_6.Show();

            Gtk.MenuItem menuitem1_7 = new Gtk.MenuItem("300 x 176 (16:9)");
            menu_dim.Append(menuitem1_7);
            menuitem1_7.Show();

            Gtk.MenuItem menuitem1_2 = new Gtk.MenuItem("300 x 225 (4:3)");
            menu_dim.Append(menuitem1_2);
            menuitem1_2.Show();

            Gtk.MenuItem menuitem1_3 = new Gtk.MenuItem("200 x 150 (4:3)");
            menu_dim.Append(menuitem1_3);
            menuitem1_3.Show();

            Gtk.MenuItem menuitem1_4 = new Gtk.MenuItem("300 x 166 (9:5)");
            menu_dim.Append(menuitem1_4);
            menuitem1_4.Show();

            Gtk.MenuItem menuitem1_5 = new Gtk.MenuItem("200 x 111 (9:5)");
            menu_dim.Append(menuitem1_5);
            menuitem1_5.Show();


            // Opcio refreshRate

            Gtk.MenuItem menuitemRefreshRate = new Gtk.MenuItem(Mono.Unix.Catalog.GetString("Set Refresh Rate"));
            menu_settings.Append(menuitemRefreshRate);

            Gtk.Menu     menu_ref_rate    = new Gtk.Menu();
            Gtk.MenuItem menuitem_ref_500 = new Gtk.MenuItem(Mono.Unix.Catalog.GetString("500 ms (high refresh rate)"));
            menu_ref_rate.Append(menuitem_ref_500);
            menuitem_ref_500.Show();
            menuitemRefreshRate.Submenu = menu_ref_rate;

            Gtk.MenuItem menuitem_ref_750 = new Gtk.MenuItem(Mono.Unix.Catalog.GetString("750 ms"));
            menu_ref_rate.Append(menuitem_ref_750);
            menuitem_ref_750.Show();

            Gtk.MenuItem menuitem_ref_1000 = new Gtk.MenuItem(Mono.Unix.Catalog.GetString("1000 ms"));
            menu_ref_rate.Append(menuitem_ref_1000);
            menuitem_ref_1000.Show();

            Gtk.MenuItem menuitem_ref_1500 = new Gtk.MenuItem(Mono.Unix.Catalog.GetString("1500 ms"));
            menu_ref_rate.Append(menuitem_ref_1500);
            menuitem_ref_1500.Show();

            Gtk.MenuItem menuitem_ref_2000 = new Gtk.MenuItem(Mono.Unix.Catalog.GetString("2000 ms (low refresh rate)"));
            menu_ref_rate.Append(menuitem_ref_2000);
            menuitem_ref_2000.Show();



            // Opció 2

            Gtk.MenuItem menuitem2 = new Gtk.MenuItem(Mono.Unix.Catalog.GetString("Set path color"));
            menu_settings.Append(menuitem2);


            // Opció 3 - Submenú posició


            Gtk.Menu     menu_position = new Gtk.Menu();
            Gtk.MenuItem menuitem3     = new Gtk.MenuItem(Mono.Unix.Catalog.GetString("Window position"));
            menu_settings.Append(menuitem3);

            // Submenu 3
            Gtk.MenuItem menuitem3_0 = new Gtk.MenuItem(Mono.Unix.Catalog.GetString("Left"));
            menu_position.Append(menuitem3_0);
            menuitem3_0.Show();
            menuitem3.Submenu = menu_position;

            Gtk.MenuItem menuitem3_1 = new Gtk.MenuItem(Mono.Unix.Catalog.GetString("Right"));
            menu_position.Append(menuitem3_1);
            menuitem3_1.Show();

            // Opció 4 - Eixir
            Gtk.ImageMenuItem menuitem4 = new Gtk.ImageMenuItem(Stock.Quit, grup);
            menuitem4.RenderIcon(Stock.Quit, IconSize.Menu, Mono.Unix.Catalog.GetString("Exit from MiniScreen"));
            menu_settings.Append(menuitem4);

            // Opció 5 - About


            //Gtk.MenuItem menuitem5=new Gtk.MenuItem(Mono.Unix.Catalog.GetString("About"));
            //Gtk.ImageMenuItem menuitem5=new Gtk.MenuItem((Mono.Unix.Catalog.GetString("About"));


            Gtk.ImageMenuItem menuitem5 = new Gtk.ImageMenuItem(Stock.About, grup);
            menuitem5.RenderIcon(Stock.About, IconSize.Menu, Mono.Unix.Catalog.GetString("About LliureX MiniScreen"));
            menu_settings.Append(menuitem5);

            menuitem1.Show();
            menuitemRefreshRate.Show();
            menuitem2.Show();
            menuitem3.Show();
            menuitem4.Show();
            menuitem5.ShowAll();
            menuitem5.Show();

            menu_settings.Popup();

            menuitem1_0.ButtonPressEvent += HandleMenuitem1ButtonPressEvent;
            menuitem1_1.ButtonPressEvent += HandleMenuitem1ButtonPressEvent;
            menuitem1_2.ButtonPressEvent += HandleMenuitem1ButtonPressEvent;
            menuitem1_3.ButtonPressEvent += HandleMenuitem1ButtonPressEvent;
            menuitem1_4.ButtonPressEvent += HandleMenuitem1ButtonPressEvent;
            menuitem1_5.ButtonPressEvent += HandleMenuitem1ButtonPressEvent;
            menuitem1_6.ButtonPressEvent += HandleMenuitem1ButtonPressEvent;
            menuitem1_7.ButtonPressEvent += HandleMenuitem1ButtonPressEvent;


            menuitem_ref_500.ButtonPressEvent  += HandleMenuitem_ref_500ButtonPressEvent;
            menuitem_ref_750.ButtonPressEvent  += HandleMenuitem_ref_750ButtonPressEvent;
            menuitem_ref_1000.ButtonPressEvent += HandleMenuitem_ref_1000ButtonPressEvent;
            menuitem_ref_1500.ButtonPressEvent += HandleMenuitem_ref_1500ButtonPressEvent;
            menuitem_ref_2000.ButtonPressEvent += HandleMenuitem_ref_2000ButtonPressEvent;



            menuitem2.ButtonPressEvent += HandleMenuitem2ButtonPressEvent;

            menuitem3_0.ButtonPressEvent += HandleMenuitem3_0ButtonPressEvent;
            menuitem3_1.ButtonPressEvent += HandleMenuitem3_1ButtonPressEvent;
            menuitem4.ButtonPressEvent   += HandleMenuitem4ButtonPressEvent;
            menuitem5.ButtonPressEvent   += HandleMenuitem5ButtonPressEvent;
        }
Ejemplo n.º 21
0
		protected override bool OnPopupMenu ()
		{
			Stetic.Wrapper.Widget selection = SelectedWrapper;

			if (selection != null) {
				Menu m = new ContextMenu (selection);
				if (selection.IsTopLevel) {
					// Allow deleting top levels from the project view
					ImageMenuItem item = new ImageMenuItem (Gtk.Stock.Delete, null);
					item.Activated += delegate (object obj, EventArgs args) {
						selection.Delete ();
					};
					item.Show ();
					m.Add (item);
				}
				m.Popup ();
				return true;
			} else
				return base.OnPopupMenu ();
		}
Ejemplo n.º 22
0
        void OnPopulatePopup(object o, PopulatePopupArgs args)
        {
            Gtk.MenuItem spacer = new Gtk.SeparatorMenuItem ();
            spacer.Show ();

            Gtk.CheckMenuItem edit = new Gtk.CheckMenuItem (
                Catalog.GetString ("Edit Code Snippet"));
            MarkupLabel (edit);
            edit.Activated += OnEditActivate;
            edit.Show ();

            Gtk.ImageMenuItem lang_select = new Gtk.ImageMenuItem (
                        Catalog.GetString ("Select Language"));
            lang_select.Image = new Gtk.Image (Gtk.Stock.Find, Gtk.IconSize.Menu);
            lang_select .Show ();
            Gtk.Menu langs_menu = new Gtk.Menu ();

            //default language should be setted
            Gtk.RadioMenuItem pre_item = new Gtk.RadioMenuItem (Language);

            MarkupLabel (pre_item);
            pre_item.Active = true;
            langs_menu.Append (pre_item);
            pre_item.Activated += OnLanguageSelected;
            pre_item.Show ();

            string [] langs = manager.LanguageIds;
            ArrayList lang_array = new ArrayList (langs);
            lang_array.Sort ();
            foreach (String lang in lang_array) {
                if (lang.Equals (Language))
                    continue;
                Gtk.RadioMenuItem tmp = new Gtk.RadioMenuItem (
                        pre_item.Group, Catalog.GetString (lang));
                MarkupLabel (tmp);
                langs_menu.Append (tmp);
                tmp.Activated += OnLanguageSelected;
                tmp.Show ();
                pre_item = tmp;
            }
            lang_select.Submenu = langs_menu;
            args.Menu.Prepend (spacer);
            args.Menu.Prepend (edit);
            args.Menu.Prepend (lang_select);
        }
        private void BuildHeader ()
        {
            header_align = new Alignment (0.0f, 0.5f, 1.0f, 1.0f);
            if (Hyena.PlatformDetection.IsMeeGo) {
                header_align.RightPadding = 5;
                header_align.TopPadding = 5;
            }

            header = new HBox ();
            footer = new VBox ();

            default_title_box = new EventBox ();
            title_label = new Label ();
            title_label.Xalign = 0.0f;
            title_label.Ellipsize = Pango.EllipsizeMode.End;

            default_title_box.Add (title_label);

            // Show the source context menu when the title is right clicked
            default_title_box.PopupMenu += delegate {
                ServiceManager.Get<InterfaceActionService> ().SourceActions ["SourceContextMenuAction"].Activate ();
            };

            default_title_box.ButtonPressEvent += delegate (object o, ButtonPressEventArgs press) {
                if (press.Event.Button == 3) {
                    ServiceManager.Get<InterfaceActionService> ().SourceActions ["SourceContextMenuAction"].Activate ();
                }
            };

            header_box = new EventBox ();

            custom_title_box = new HBox () { Visible = false };

            BuildSearchEntry ();

            header.PackStart (default_title_box, true, true, 0);
            header.PackStart (custom_title_box, true, true, 0);
            header.PackStart (header_box, false, false, 0);
            header.PackStart (search_entry, false, false, 0);

            InterfaceActionService uia = ServiceManager.Get<InterfaceActionService> ();
            if (uia != null) {
                Gtk.Action action = uia.GlobalActions["WikiSearchHelpAction"];
                if (action != null) {
                    MenuItem item = new SeparatorMenuItem ();
                    item.Show ();
                    search_entry.Menu.Append (item);

                    item = new ImageMenuItem (Stock.Help, null);
                    item.Activated += delegate { action.Activate (); };
                    item.Show ();
                    search_entry.Menu.Append (item);
                }
            }

            header_align.Add (header);
            header_align.ShowAll ();
            search_entry.Show ();

            PackStart (header_align, false, false, 0);
            PackEnd (footer, false, false, 0);

            context_pane = new Banshee.ContextPane.ContextPane ();
            context_pane.ExpandHandler = b => {
                SetChildPacking (content.Widget, !b, true, 0, PackType.Start);
                SetChildPacking (context_pane, b, b, 0, PackType.End);
            };
            PackEnd (context_pane, false, false, 0);

            PackEnd (new ConnectedMessageBar (), false, true, 0);
        }