コード例 #1
0
        void ShowMenu()
        {
            Gtk.Menu menu = CreateMenu();

            if (menu != null)
            {
                isOpen = true;

                //make sure the button looks depressed
                Gtk.ReliefStyle oldRelief = Widget.Relief;
                Widget.Relief = Gtk.ReliefStyle.Normal;
                Widget.SetStateActive();

                //clean up after the menu's done
                menu.Hidden += delegate {
                    Widget.Relief = oldRelief;
                    isOpen        = false;
                    Widget.SetStateNormal();

                    //FIXME: for some reason the menu's children don't get activated if we destroy
                    //directly here, so use a timeout to delay it
                    GLib.Timeout.Add(100, delegate {
                        //menu.Destroy ();
                        return(false);
                    });
                };
                menu.Popup(null, null, PositionFunc, 1, Gtk.Global.CurrentEventTime);
            }
        }
コード例 #2
0
        protected override void OnClicked()
        {
            base.OnClicked();

            if (creator != null)
            {
                Gtk.Menu menu = creator(this);

                if (menu != null)
                {
                    isOpen = true;

                    //make sure the button looks depressed
                    Gtk.ReliefStyle oldRelief = this.Relief;
                    this.Relief = Gtk.ReliefStyle.Normal;

                    //clean up after the menu's done
                    menu.Hidden += delegate {
                        this.Relief = oldRelief;
                        isOpen      = false;
                        this.State  = Gtk.StateType.Normal;

                        //FIXME: for some reason the menu's children don't get activated if we destroy
                        //directly here, so use a timeout to delay it
                        GLib.Timeout.Add(100, delegate {
                            //menu.Destroy ();
                            return(false);
                        });
                    };
                    menu.Popup(null, null, PositionFunc, 0, Gtk.Global.CurrentEventTime);
                }
            }
        }
コード例 #3
0
        public void ShowQuickInsertMenu(object sender, EventArgs args)
        {
            var menu = manager.CreateMenu(entrySet);

            //FIXME: taken from MonoDevelop.Components.MenuButton. should share this.

            isOpen = true;

            //make sure the button looks depressed
            Gtk.ReliefStyle oldRelief = button.Relief;
            button.Relief = Gtk.ReliefStyle.Normal;

            //clean up after the menu's done
            menu.Hidden += delegate {
                button.Relief = oldRelief;
                isOpen        = false;
                button.State  = Gtk.StateType.Normal;

                //FIXME: for some reason the menu's children don't get activated if we destroy
                //directly here, so use a timeout to delay it
                GLib.Timeout.Add(100, delegate {
                    menu.Destroy();
                    return(false);
                });
            };
            menu.Popup(null, null, PositionFunc, 0, Gtk.Global.CurrentEventTime);
        }
コード例 #4
0
ファイル: MenuButtonBackend.cs プロジェクト: d5nguyenvan/xwt
        void HandleClicked(object sender, Gtk.ButtonPressEventArgs e)
        {
            if (e.Event.Button != 1)
            {
                return;
            }

            Gtk.Menu menu = CreateMenu();

            if (menu != null)
            {
                isOpen = true;

                //make sure the button looks depressed
                Gtk.ReliefStyle oldRelief = Widget.Relief;
                Widget.Relief = Gtk.ReliefStyle.Normal;

                //clean up after the menu's done
                menu.Hidden += delegate {
                    Widget.Relief = oldRelief;
                    isOpen        = false;
                    ((Gtk.Widget)Widget).State = Gtk.StateType.Normal;

                    //FIXME: for some reason the menu's children don't get activated if we destroy
                    //directly here, so use a timeout to delay it
                    GLib.Timeout.Add(100, delegate {
                        //menu.Destroy ();
                        return(false);
                    });
                };
                menu.Popup(null, null, PositionFunc, 1, Gtk.Global.CurrentEventTime);
            }
        }