Adding Widgets to the Header Bar

You might want to add a button to the workbench header bar. To do this, use an Ide.WorkbenchAddin and fetch the header bar using Ide.Workbench.get_headerbar(). You can attach your widget to either the left or the right side of the Ide.OmniBar in the center of the header bar. Additionally, by specifying a Gtk.PackType, you can align the button within the left or right of the header bar.

We suggest using Gio.SimpleAction to attach an action to the workbench and then activating the action using the Gtk.Button:action-name property.

Adding a button to the workbench header bar
import gi

from gi.repository import GObject
from gi.repository import Ide

class MyWorkbenchAddin(GObject.Object, Ide.WorkbenchAddin):

    def do_load(self, workbench):
        headerbar = workbench.get_headerbar()

        # Add button to top-center-left
        self.button = Gtk.Button(label='Click', action_name='win.hello', visible=True)
        headerbar.insert_left(self.button, Gtk.PackType.PACK_END, 0)

    def do_unload(self, workbench):
        # remove the button we added
        self.button.destroy()
        self.button = None