initial commit
This commit is contained in:
commit
1c606d0274
36 changed files with 9908 additions and 0 deletions
49
include/layout.h
Normal file
49
include/layout.h
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/* SPDX-License-Identifier: GPL-3.0-only */
|
||||
/*
|
||||
* Keyboard layout management.
|
||||
*
|
||||
* Copyright (c) 2024, Richard Acayan. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef UFKBD_LAYOUT_H
|
||||
#define UFKBD_LAYOUT_H
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
struct ufkbd_key;
|
||||
|
||||
struct ufkbd_layout_column {
|
||||
double x1_unscaled, x2_unscaled;
|
||||
int x1, x2;
|
||||
|
||||
struct ufkbd_key *key;
|
||||
};
|
||||
|
||||
struct ufkbd_layout_row {
|
||||
double y1_unscaled, y2_unscaled;
|
||||
int y1, y2;
|
||||
|
||||
size_t n_cols;
|
||||
struct ufkbd_layout_column *cols;
|
||||
};
|
||||
|
||||
struct ufkbd_layout {
|
||||
size_t max_cols;
|
||||
|
||||
size_t n_rows;
|
||||
struct ufkbd_layout_row *rows;
|
||||
};
|
||||
|
||||
struct ufkbd_layout *ufkbd_layout_init(void);
|
||||
void ufkbd_layout_uninit(struct ufkbd_layout *layout);
|
||||
|
||||
struct ufkbd_key *ufkbd_layout_search(struct ufkbd_layout *layout, int x, int y,
|
||||
int *x1, int *y1, int *x2, int *y2);
|
||||
void ufkbd_layout_foreach(struct ufkbd_layout *layout,
|
||||
void (*func)(struct ufkbd_key *key,
|
||||
int x1, int y1, int x2, int y2,
|
||||
void *data),
|
||||
void *data);
|
||||
void ufkbd_layout_resize(struct ufkbd_layout *layout, int width, int height);
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue