Example #1
0
// Create new application
func NewApplication(id string, flags GApplicationFlags) *Application {
	cid := gobject.GString(id)
	defer cid.Free()
	app := C.gtk_application_new((*C.gchar)(cid.GetPtr()), C.GApplicationFlags(flags))

	C.g_application_register(C.to_GApplication(app), nil, nil)
	//C.g_application_activate(C.to_GApplication(app))
	gtkapp := &Application{app}
	gtkapp.Connect("activate", func() {})

	return gtkapp
}
Example #2
0
//Attempts registration of the application.
//This is the point at which the application discovers if it is the primary instance or merely acting as a remote for an already-existing primary instance. This is implemented by attempting to acquire the application identifier as a unique bus name on the session bus using GDBus.
//If there is no application ID or if G_APPLICATION_NON_UNIQUE was given, then this process will always become the primary instance.
//Due to the internal architecture of GDBus, method calls can be dispatched at any time (even if a main loop is not running). For this reason, you must ensure that any object paths that you wish to register are registered before calling this function.
//If the application has already been registered then TRUE is returned with no work performed.
//The “startup” signal is emitted if registration succeeds and application is the primary instance (including the non-unique case).
//In the event of an error (such as cancellable being cancelled, or a failure to connect to the session bus), FALSE is returned and error is set appropriately.
//Note: the return value of this function is not an indicator that this instance is or is not the primary instance of the application. See g_application_get_is_remote() for that.
func (v *Application) Register(cancellable *Cancellable) bool {
	var gerror **C.GError
	c := C.g_application_register(v.native(), cancellable.native(), gerror)
	return gobool(c)
}