mirror of https://github.com/fairyglade/ly
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.1 KiB
C
55 lines
1.1 KiB
C
#ifndef H_LY_INPUTS
|
|
#define H_LY_INPUTS
|
|
|
|
#include "termbox.h"
|
|
#include "ctypes.h"
|
|
|
|
enum display_server {DS_WAYLAND, DS_SHELL, DS_XINITRC, DS_XORG};
|
|
|
|
struct text
|
|
{
|
|
char* text;
|
|
char* end;
|
|
i64 len;
|
|
char* cur;
|
|
char* visible_start;
|
|
u16 visible_len;
|
|
|
|
u16 x;
|
|
u16 y;
|
|
};
|
|
|
|
struct desktop
|
|
{
|
|
char** list;
|
|
char** cmd;
|
|
enum display_server* display_server;
|
|
|
|
u16 cur;
|
|
u16 len;
|
|
u16 visible_len;
|
|
u16 x;
|
|
u16 y;
|
|
};
|
|
|
|
void handle_desktop(void* input_struct, struct tb_event* event);
|
|
void handle_text(void* input_struct, struct tb_event* event);
|
|
void input_desktop(struct desktop* target);
|
|
void input_text(struct text* target, u64 len);
|
|
void input_desktop_free(struct desktop* target);
|
|
void input_text_free(struct text* target);
|
|
void input_desktop_right(struct desktop* target);
|
|
void input_desktop_left(struct desktop* target);
|
|
void input_desktop_add(
|
|
struct desktop* target,
|
|
char* name,
|
|
char* cmd,
|
|
enum display_server display_server);
|
|
void input_text_right(struct text* target);
|
|
void input_text_left(struct text* target);
|
|
void input_text_write(struct text* target, char ascii);
|
|
void input_text_delete(struct text* target);
|
|
void input_text_backspace(struct text* target);
|
|
|
|
#endif
|