allgames/engine/src/scenes/nodes.h

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;
};
}