示例#1
0
        public void ReloadButtons()
        {
            var negativeButtons = Widget.NegativeButtons;
            var positiveButtons = Widget.PositiveButtons;

            if (negativeButtons.Count + positiveButtons.Count > 0)
            {
                if (!Helper.UseHeaderBar)
                {
                    Control.ActionArea.NoShowAll = false;

                    for (int i = negativeButtons.Count - 1; i >= 0; i--)
                    {
                        Control.ActionArea.PackStart(negativeButtons[i].ToNative(), false, true, 1);
                    }

                    foreach (var button in positiveButtons)
                    {
                        Control.ActionArea.PackStart(button.ToNative(), false, true, 1);
                    }
                }
#if GTK3
                else
                {
                    for (int i = positiveButtons.Count - 1; i >= 0; i--)
                    {
                        NativeMethods.gtk_header_bar_pack_end(btcontainer.Handle, positiveButtons[i].ToNative().Handle);
                    }

                    for (int i = negativeButtons.Count - 1; i >= 0; i--)
                    {
                        NativeMethods.gtk_header_bar_pack_start(btcontainer.Handle, negativeButtons[i].ToNative().Handle);
                    }
                }

                NativeMethods.gtk_header_bar_set_show_close_button(btcontainer.Handle, false);
#endif

                btcontainer.ShowAll();
            }
            else
            {
                Control.ActionArea.NoShowAll = true;
                if (!Helper.UseHeaderBar)
                {
                    btcontainer.Hide();
                }
#if GTK3
                else
                {
                    NativeMethods.gtk_header_bar_set_show_close_button(btcontainer.Handle, true);
                }
#endif
            }
        }