Angle snap added to UI and driver support

This commit is contained in:
2023-09-30 23:56:47 +02:00
parent 22cb968b64
commit aa3567d1e8
3 changed files with 37 additions and 13 deletions
+8 -2
View File
@@ -10,6 +10,7 @@ struct _MousePanel
AdwPreferencesGroup* dpi_preference_group;
AdwButtonContent* dpi_stage_add_button;
AdwSwitchRow* motion_sync_switchrow;
AdwSwitchRow* angle_snap_switchrow;
};
G_DEFINE_TYPE (MousePanel, mouse_panel, panel_get_type())
@@ -27,6 +28,7 @@ mouse_panel_class_init(MousePanelClass* klass)
gtk_widget_class_bind_template_child(widget_class, MousePanel, dpi_preference_group);
gtk_widget_class_bind_template_child(widget_class, MousePanel, dpi_stage_add_button);
gtk_widget_class_bind_template_child(widget_class, MousePanel, motion_sync_switchrow);
gtk_widget_class_bind_template_child(widget_class, MousePanel, angle_snap_switchrow);
}
static void
@@ -103,8 +105,12 @@ void mouse_panel_set_device(MousePanel* self, device_t* device)
int (*driver_mouse_motion_sync_get)(void*, bool*) = dlsym(device_driver(device), "driver_mouse_motion_sync_get");
int motionsync_res = driver_mouse_motion_sync_get(device_handle(device), &motion_sync);
if(!motionsync_res)
{
adw_switch_row_set_active(self->motion_sync_switchrow, motion_sync);
}
// Set mouse 'angle snap' feature
bool angle_snap = false;
int (*driver_mouse_angle_snap_get)(void*, bool*) = dlsym(device_driver(device), "driver_mouse_angle_snap_get");
int anglesnap_res = driver_mouse_angle_snap_get(device_handle(device), &angle_snap);
if(!anglesnap_res)
adw_switch_row_set_active(self->angle_snap_switchrow, angle_snap);
}