Added mouse panel, dummy device representation

This commit is contained in:
2023-09-12 21:59:13 +02:00
parent 10d037819e
commit ad5cef35d4
7 changed files with 105 additions and 3 deletions

16
src/device/device.c Normal file
View File

@@ -0,0 +1,16 @@
#include "device.h"
struct DEVICE
{
};
char* device_get_image(device_t* device)
{
return "/home/valentin/Documents/prjs/ginput/drivers/g-wolves/htx/htx_0.png";
}
char* device_get_name(device_t* device)
{
return "G-Wolves HTX 4K";
}

9
src/device/device.h Normal file
View File

@@ -0,0 +1,9 @@
#ifndef DEVICE_H
#define DEVICE_H
typedef struct DEVICE device_t;
char* device_get_image(device_t* device);
char* device_get_name(device_t* device);
#endif

View File

@@ -0,0 +1,42 @@
#include "mouse-panel.h"
struct _MousePanel
{
Panel parent_instance;
GtkImage* mouse_image;
GtkLabel* mouse_name;
};
G_DEFINE_TYPE (MousePanel, mouse_panel, panel_get_type())
static void
mouse_panel_class_init(MousePanelClass* klass)
{
GObjectClass* object_class = G_OBJECT_CLASS(klass);
GtkWidgetClass* widget_class = GTK_WIDGET_CLASS(klass);
PanelClass* panel_class = GINPUT_PANEL_CLASS(klass);
gtk_widget_class_set_template_from_resource(widget_class, "/v/ginput/panel-mouse.ui");
gtk_widget_class_bind_template_child(widget_class, MousePanel, mouse_image);
gtk_widget_class_bind_template_child(widget_class, MousePanel, mouse_name);
}
static void
mouse_panel_init(MousePanel* self)
{
gtk_widget_init_template(GTK_WIDGET(self));
}
Panel*
mouse_panel_new(void)
{
return g_object_new(mouse_panel_get_type(), NULL);
}
void mouse_panel_set_device(MousePanel* self, device_t* device)
{
gtk_image_set_from_file(self->mouse_image, device_get_image(device));
gtk_label_set_label(self->mouse_name, device_get_name(device));
}

View File

@@ -0,0 +1,15 @@
#pragma once
#include "ui/panel.h"
#include "device/device.h"
G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE(MousePanel, mouse_panel, GINPUT, MOUSE_PANEL, Panel)
G_END_DECLS
Panel* mouse_panel_new(void);
void mouse_panel_set_device(MousePanel* self, device_t* device);