Exemplo n.º 1
0
		public Menu CreateOptionsMenu ()
		{
			Menu menu = new Menu ();
			
			MenuItem searchInMenu = new MenuItem (GettextCatalog.GetString ("_Search in"));
			Menu sub = new Menu ();
			searchInMenu.Submenu = sub;
			Gtk.RadioMenuItem  original = null, translated = null, both = null;
			GLib.SList group = new GLib.SList (IntPtr.Zero);
			original = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Original"));
			group = original.Group;
			original.ButtonPressEvent += delegate { original.Activate (); };
			sub.Append (original);
			
			translated = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Translated"));
			translated.ButtonPressEvent += delegate { translated.Activate (); };
			group = translated.Group;
			sub.Append (translated);
			
			both = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Both"));
			both.ButtonPressEvent += delegate { both.Activate (); };
			sub.Append (both);
			switch (DoSearchIn) {
			case SearchIn.Both:
				both.Activate ();
				break;
			case SearchIn.Original:
				original.Activate ();
				break;
			case SearchIn.Translated:
				translated.Activate ();
				break;
			}
			menu.Append (searchInMenu);
			both.Activated += delegate {
				if (DoSearchIn != SearchIn.Both) {
					DoSearchIn = SearchIn.Both;
					UpdateFromCatalog ();
					menu.Destroy ();
				}
			};
			original.Activated += delegate {
				if (DoSearchIn != SearchIn.Original) {
					DoSearchIn = SearchIn.Original;
					UpdateFromCatalog ();
					menu.Destroy ();
				}
			};
			translated.Activated += delegate {
				if (DoSearchIn != SearchIn.Translated) {
					DoSearchIn = SearchIn.Translated;
					UpdateFromCatalog ();
					menu.Destroy ();
				}
			};
			
			Gtk.CheckMenuItem regexSearch = new Gtk.CheckMenuItem (MonoDevelop.Core.GettextCatalog.GetString ("_Regex search"));
			regexSearch.Active = RegexSearch;
			regexSearch.ButtonPressEvent += delegate { 
				RegexSearch = !RegexSearch;
				UpdateFromCatalog ();
			};
			menu.Append (regexSearch);
			
			Gtk.CheckMenuItem caseSensitive = new Gtk.CheckMenuItem (MonoDevelop.Core.GettextCatalog.GetString ("_Case sensitive"));
			caseSensitive.Active = IsCaseSensitive;
			caseSensitive.ButtonPressEvent += delegate { 
				IsCaseSensitive = !IsCaseSensitive;
				UpdateFromCatalog ();
			};
			menu.Append (caseSensitive);
			
			Gtk.CheckMenuItem wholeWordsOnly = new Gtk.CheckMenuItem (MonoDevelop.Core.GettextCatalog.GetString ("_Whole words only"));
			wholeWordsOnly.Active = IsWholeWordOnly;
			wholeWordsOnly.Sensitive = !RegexSearch;
			wholeWordsOnly.ButtonPressEvent += delegate {
				IsWholeWordOnly = !IsWholeWordOnly;
				UpdateFromCatalog ();
			};
			menu.Append (wholeWordsOnly);
			menu.ShowAll ();
			return menu;
		}
        // options menu for filterSearchEntry
        public Menu CreateOptionsMenu()
        {
            Menu menu = new Menu ();

            MenuItem searchInMenu = new MenuItem (GettextCatalog.GetString ("_Search in"));
            Menu sub = new Menu ();
            searchInMenu.Submenu = sub;

            Gtk.RadioMenuItem  name = null, baseValue = null, value =null, comment = null, all = null;
            GLib.SList group = new GLib.SList (IntPtr.Zero);

            name = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Name"));
            group = name.Group;
            name.ButtonPressEvent += delegate { name.Activate (); };
            sub.Append (name);

            baseValue = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Base Value"));
            baseValue.ButtonPressEvent += delegate { baseValue.Activate (); };
            group = baseValue.Group;
            sub.Append (baseValue);

            value = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Value"));
            value.ButtonPressEvent += delegate { value.Activate (); };
            group = value.Group;
            sub.Append (value);

            comment = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Comment"));
            comment.ButtonPressEvent += delegate { comment.Activate (); };
            group = comment.Group;
            sub.Append (comment);

            all = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_All"));
            all.ButtonPressEvent += delegate { all.Activate (); };
            sub.Append (all);

            switch (DoSearchIn) {
            case SearchIn.All:
                all.Activate ();
                break;
            case SearchIn.BaseValue:
                baseValue.Activate ();
                break;
            case SearchIn.Value:
                value.Activate ();
                break;
            case SearchIn.Name:
                name.Activate ();
                break;
            case SearchIn.Comment:
                comment.Activate ();
                break;
            }
            menu.Append (searchInMenu);
            all.Activated += delegate {
                if (DoSearchIn != SearchIn.All) {
                    DoSearchIn = SearchIn.All;
                    Refresh ();
                    menu.Destroy ();
                }
            };
            baseValue.Activated += delegate {
                if (DoSearchIn != SearchIn.BaseValue) {
                    DoSearchIn = SearchIn.BaseValue;
                    Refresh ();
                    menu.Destroy ();
                }
            };
            value.Activated += delegate {
                if (DoSearchIn != SearchIn.Value) {
                    DoSearchIn = SearchIn.Value;
                    Refresh ();
                    menu.Destroy ();
                }
            };
            name.Activated += delegate {
                if (DoSearchIn != SearchIn.Name) {
                    DoSearchIn = SearchIn.Name;
                    Refresh ();
                    menu.Destroy ();
                }
            };
            comment.Activated += delegate {
                if (DoSearchIn != SearchIn.Comment) {
                    DoSearchIn = SearchIn.Comment;
                    Refresh ();
                    menu.Destroy ();
                }
            };

            Gtk.CheckMenuItem regexSearch = new Gtk.CheckMenuItem (MonoDevelop.Core.GettextCatalog.GetString ("_Regex search"));
            regexSearch.Active = RegexSearch;
            regexSearch.ButtonPressEvent += delegate {
                RegexSearch = !RegexSearch;
                Refresh ();
            };
            menu.Append (regexSearch);

            Gtk.CheckMenuItem caseSensitive = new Gtk.CheckMenuItem (MonoDevelop.Core.GettextCatalog.GetString ("_Case sensitive"));
            caseSensitive.Active = IsCaseSensitive;
            caseSensitive.ButtonPressEvent += delegate {
                IsCaseSensitive = !IsCaseSensitive;
                Refresh ();
            };
            menu.Append (caseSensitive);

            Gtk.CheckMenuItem wholeWordsOnly = new Gtk.CheckMenuItem (MonoDevelop.Core.GettextCatalog.GetString ("_Whole words only"));
            wholeWordsOnly.Active = IsWholeWordOnly;
            wholeWordsOnly.Sensitive = !RegexSearch;
            wholeWordsOnly.ButtonPressEvent += delegate {
                IsWholeWordOnly = !IsWholeWordOnly;
                Refresh ();
            };
            menu.Append (wholeWordsOnly);
            menu.ShowAll ();
            return menu;
        }