Support drawing a node with connection that can be modified by user
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
|
||||
#include "aliases/aliases.h"
|
||||
#include "ui.h"
|
||||
#include "window.h"
|
||||
|
||||
#define MAX_NODES 1024
|
||||
|
||||
@@ -25,7 +24,7 @@ union node_data {
|
||||
};
|
||||
|
||||
struct node {
|
||||
rect rec;
|
||||
ui_node_elem node;
|
||||
ui_elem_colours colours;
|
||||
node_type type;
|
||||
node_data data;
|
||||
|
||||
18
include/ui.h
18
include/ui.h
@@ -14,11 +14,11 @@
|
||||
#define NODE_WIDTH 70
|
||||
#define NODE_HEIGHT 20
|
||||
|
||||
typedef enum ui_elemype ui_elemype;
|
||||
typedef enum ui_elem_type ui_elem_type;
|
||||
typedef struct ui_elem ui_elem;
|
||||
typedef struct ui_ctx ui_ctx;
|
||||
|
||||
enum ui_elemype {
|
||||
enum ui_elem_type {
|
||||
UI_ELEM_NODE,
|
||||
UI_ELEM_BUTTON,
|
||||
|
||||
@@ -28,7 +28,7 @@ enum ui_elemype {
|
||||
struct ui_elem {
|
||||
u64 id;
|
||||
rect rect;
|
||||
ui_elemype type;
|
||||
ui_elem_type type;
|
||||
};
|
||||
|
||||
typedef struct ui_elem_colours ui_elem_colours;
|
||||
@@ -37,6 +37,12 @@ struct ui_elem_colours {
|
||||
colour border;
|
||||
};
|
||||
|
||||
typedef struct ui_node_elem ui_node_elem;
|
||||
struct ui_node_elem {
|
||||
line noodle;
|
||||
rect rec;
|
||||
};
|
||||
|
||||
struct ui_ctx {
|
||||
u64 count;
|
||||
i64 hovered;
|
||||
@@ -55,9 +61,7 @@ void reset_ui_ctx(ui_ctx *ctx);
|
||||
void handle_ui_events(const window *wnd, ui_ctx *ctx, const SDL_Event *event);
|
||||
bool ui_button(const window *wnd, ui_ctx *ctx, rect rect,
|
||||
ui_elem_colours colours);
|
||||
rect ui_node(const window *wnd, ui_ctx *ctx, rect rect,
|
||||
ui_elem_colours colours);
|
||||
line ui_noodle(const window *wnd, ui_ctx *ctx, line ln,
|
||||
ui_elem_colours colours);
|
||||
ui_node_elem ui_node(const window *wnd, ui_ctx *ctx, ui_node_elem node,
|
||||
ui_elem_colours colours);
|
||||
|
||||
#endif // !UI_H
|
||||
|
||||
Reference in New Issue
Block a user