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 } }