suggestion picker: a persistent layer to complement virtual keyboards like wvkbd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef __DRW_H
#define __DRW_H

#include <pango/pangocairo.h>
#include <stdbool.h>

struct drw;
struct drwsurf;
struct kbd;

void drwsurf_resize(struct drwsurf *ds, uint32_t w, uint32_t h, uint32_t s);
void drwsurf_flip(struct drwsurf *ds);

typedef union {
	uint8_t bgra[4];
	uint32_t color;
} Color;

void
drw_fill_rectangle(struct drwsurf *d, Color color, uint32_t x, uint32_t y,
	uint32_t w, uint32_t h);

void
drw_draw_text(struct drwsurf *d, Color color,
	uint32_t x, uint32_t y,
	uint32_t w, uint32_t h,
	const char *label);

uint32_t
setup_buffer(struct drwsurf *drwsurf);

struct drw {
	struct wl_shm *shm;
	PangoFontDescription *font_description;
};

struct drwsurf {
	uint32_t width, height, scale, size;
	bool dirty;

	struct drw *ctx;
	struct wl_surface *surf;
	struct wl_buffer *buf;
	struct wl_shm *shm;
	unsigned char *pool_data;

	cairo_t *cairo;
	PangoLayout *layout;
};

#endif