45 lines
1 KiB
C++
45 lines
1 KiB
C++
#pragma once
|
|
#include <vector>
|
|
|
|
#include "../gr.h"
|
|
#include "../aud.h"
|
|
#include "../net.h"
|
|
#include<tiny/term.h>
|
|
|
|
namespace enginend {
|
|
struct theme;
|
|
|
|
namespace nodes {
|
|
struct node{
|
|
public:
|
|
enginend::theme* theme;
|
|
virtual void boot()=0;
|
|
virtual void tick()=0;
|
|
virtual void draw()=0;
|
|
virtual void exit()=0;
|
|
};
|
|
}
|
|
struct group : public virtual enginend::nodes::node {
|
|
std::vector<node*> children;
|
|
|
|
explicit group(std::vector<enginend::nodes::node *> nodes):children(nodes){};
|
|
|
|
void boot(){for (node* n: children){n->boot();}}
|
|
void tick(){for (node* n: children){n->tick();}}
|
|
void draw(){for (node* n: children){n->draw();}}
|
|
void exit(){for (node* n: children){n->exit();}}
|
|
};
|
|
|
|
struct theme {
|
|
// in case if its a boolean button, it will use booleanbutton
|
|
Color booleanbutton[6],button[3],booleantext[6],buttontext[3],text,buttonborder[3],booleanborder[6],border,background
|
|
,textfieldbg
|
|
;
|
|
|
|
Font font;
|
|
|
|
Image slider,handle, checkbox,checkboxchecked;
|
|
|
|
Color tint;
|
|
};
|
|
}
|