Initial commit

Added basic UI
This commit is contained in:
2023-07-20 22:34:35 +02:00
commit d15fe49c71
16 changed files with 878 additions and 0 deletions

View File

@@ -0,0 +1,87 @@
#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);
}