88 lines
2.5 KiB
C
88 lines
2.5 KiB
C
#include "ginput-application.h"
|
|
#include "ui/main-window.h"
|
|
|
|
struct _GinputApplication
|
|
{
|
|
AdwApplication parent;
|
|
|
|
MainWindow* window;
|
|
};
|
|
|
|
G_DEFINE_TYPE(GinputApplication, ginput_application, ADW_TYPE_APPLICATION)
|
|
|
|
/*
|
|
* Special 'activate' trigger of the application, called when the application is launched
|
|
* This shows the main window
|
|
*/
|
|
static void
|
|
ginput_application_activate(GApplication* application)
|
|
{
|
|
GinputApplication* self = GINPUT_APPLICATION(application);
|
|
gtk_window_present(GTK_WINDOW(self->window));
|
|
}
|
|
|
|
static void
|
|
ginput_application_startup(GApplication* application)
|
|
{
|
|
GinputApplication* self = GINPUT_APPLICATION(application);
|
|
|
|
G_APPLICATION_CLASS(ginput_application_parent_class)->startup(application);
|
|
|
|
self->window = main_window_new(ADW_APPLICATION(application));
|
|
|
|
GtkCssProvider* provider = gtk_css_provider_new();
|
|
gtk_css_provider_load_from_resource(provider, "/v/ginput/style.css");
|
|
gtk_style_context_add_provider_for_display(gdk_display_get_default(),
|
|
GTK_STYLE_PROVIDER(provider),
|
|
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
|
|
}
|
|
|
|
static void
|
|
ginput_application_finalize(GObject* object)
|
|
{
|
|
G_OBJECT_CLASS(ginput_application_parent_class)->finalize(object);
|
|
}
|
|
|
|
static GObject*
|
|
ginput_application_constructor(GType type, guint n_construct_params, GObjectConstructParam* construct_params)
|
|
{
|
|
static GObject* self = NULL;
|
|
|
|
if(self == NULL)
|
|
{
|
|
self = G_OBJECT_CLASS(ginput_application_parent_class)->constructor(type, n_construct_params, construct_params);
|
|
g_object_add_weak_pointer(self, (gpointer) &self);
|
|
return self;
|
|
}
|
|
|
|
return g_object_ref(self);
|
|
}
|
|
|
|
static void
|
|
ginput_application_class_init(GinputApplicationClass* klass)
|
|
{
|
|
GObjectClass* object_class = G_OBJECT_CLASS(klass);
|
|
GApplicationClass* application_class = G_APPLICATION_CLASS(klass);
|
|
|
|
object_class->finalize = ginput_application_finalize;
|
|
object_class->constructor = ginput_application_constructor;
|
|
application_class->activate = ginput_application_activate;
|
|
application_class->startup = ginput_application_startup;
|
|
// application_class->command_line = ginput_application_command_line;
|
|
// application_class->handle_local_options = ginput_application_handle_local_options;
|
|
}
|
|
|
|
static void
|
|
ginput_application_init(GinputApplication* self)
|
|
{
|
|
}
|
|
|
|
AdwApplication*
|
|
ginput_application_new(void)
|
|
{
|
|
return g_object_new(ginput_application_get_type(),
|
|
"application-id", "v.ginput",
|
|
"flags", G_APPLICATION_DEFAULT_FLAGS,
|
|
NULL);
|
|
}
|