Extending the Greeter¶
When the user starts Builder, they are greeted by the
This is a window containing a series of
Ide.Surface’s to display various options for opening a project.
In the following image, you can see the
Ide.GreeterSurface showing personal projects as well as suggested new projects.
Along the bottom of the window are buttons providing various ways to open an existing project.
Adding a Surface¶
Ide.Workspace API provides a method to add an additional
Ide.Surface for your extension.
class MyWorkspaceAddin(GObject.Object, Ide.WorkspaceAddin): def do_load(self, workspace): if type(workspace) != Ide.GreeterWorkspace: return my_surface = MySurface() workspace.add_surface(my_surface) workspace.set_visible_surface(my_surface)
Performing Long Running Actions¶
If you need to perform a long-running action, such as cloning a repository or expanding a template, then you should notify the workspace.
Surround your long running operation with calls to
This will cause the workspace to prevent certain changes by the user.
Adding Project Sections¶
The list of projects in the greeter are broken into sections.
You can add a section to the greeter using
The section should implement
Ide.GreeterSection so that it can respond to user input and selections.