2025-10-16 20:22:32 +02:00
|
|
|
|
2025-10-17 13:41:37 +02:00
|
|
|
/*
|
|
|
|
|
* Copyright (C) Artsiom D.
|
|
|
|
|
* Copyright (C) shit-co.de
|
|
|
|
|
*/
|
2025-10-16 20:22:32 +02:00
|
|
|
|
|
|
|
|
|
2025-10-17 13:41:37 +02:00
|
|
|
|
|
|
|
|
#pragma once
|
2025-10-16 20:22:32 +02:00
|
|
|
|
2025-10-18 19:21:22 +02:00
|
|
|
#include "chart.h"
|
2025-10-17 13:41:37 +02:00
|
|
|
#include "ui.h"
|
2025-10-16 20:22:32 +02:00
|
|
|
|
|
|
|
|
|
2025-10-17 13:41:37 +02:00
|
|
|
enum box_type {
|
|
|
|
|
BOX_VERTICAL,
|
|
|
|
|
BOX_HORIZONTAL,
|
2025-10-17 18:01:57 +02:00
|
|
|
BOX_CHART,
|
2025-10-17 13:41:37 +02:00
|
|
|
BOX_BUTTON,
|
|
|
|
|
};
|
2025-10-16 20:22:32 +02:00
|
|
|
|
2025-10-17 13:41:37 +02:00
|
|
|
struct box {
|
|
|
|
|
enum box_type type;
|
|
|
|
|
enum ui_color color;
|
2025-10-18 20:44:30 +02:00
|
|
|
unsigned int fills;
|
2025-10-17 13:41:37 +02:00
|
|
|
|
|
|
|
|
union {
|
2025-10-18 18:18:29 +02:00
|
|
|
/* button */
|
|
|
|
|
char *name;
|
|
|
|
|
|
2025-10-18 19:21:22 +02:00
|
|
|
/* chart */
|
|
|
|
|
struct chart *chart;
|
|
|
|
|
|
|
|
|
|
/* vertical/horizontal */
|
2025-10-18 18:18:29 +02:00
|
|
|
struct {
|
|
|
|
|
size_t length;
|
2025-10-18 19:21:22 +02:00
|
|
|
struct box **children;
|
2025-10-18 18:18:29 +02:00
|
|
|
};
|
2025-10-16 20:22:32 +02:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2025-10-17 13:41:37 +02:00
|
|
|
struct box *new_button_box(char *name);
|
|
|
|
|
struct box *new_vertical_box(void);
|
|
|
|
|
struct box *new_horizontal_box(void);
|
2025-10-18 19:21:22 +02:00
|
|
|
struct box *new_chart_box(struct chart *);
|
2025-10-17 18:01:57 +02:00
|
|
|
|
2025-10-18 18:18:29 +02:00
|
|
|
void append_box(struct box *parent, struct box *child);
|
2025-10-17 13:41:37 +02:00
|
|
|
|
2025-10-18 20:44:30 +02:00
|
|
|
void draw_box(struct box *, unsigned int x, unsigned int y, unsigned int width,
|
|
|
|
|
unsigned int height);
|