nuclear@15: #include nuclear@9: #include nuclear@9: #include "screen.h" nuclear@15: #include "rbtree.h" nuclear@15: #include "logger.h" nuclear@15: nuclear@15: MsgAtom message_atom(const char *str) nuclear@15: { nuclear@15: static struct rbtree *atoms; nuclear@15: static MsgAtom last_atom; nuclear@15: struct rbnode *node; nuclear@15: MsgAtom atom; nuclear@15: nuclear@15: if(!atoms) { nuclear@15: if(!(atoms = rb_create(RB_KEY_STRING))) { nuclear@15: printlog("fatal: message_atom failed to create symbol table\n"); nuclear@15: abort(); nuclear@15: } nuclear@15: } nuclear@15: nuclear@15: if((node = rb_find(atoms, (void*)str))) { nuclear@15: return *(MsgAtom*)&node->data; nuclear@15: } nuclear@15: nuclear@15: atom = ++last_atom; nuclear@15: if(rb_insert(atoms, (void*)str, (void*)atom) == -1) { nuclear@15: printlog("message_atom failed to insert new atom\n"); nuclear@15: --last_atom; nuclear@15: return -1; nuclear@15: } nuclear@15: return atom; nuclear@15: } nuclear@9: nuclear@9: Screen::Screen() nuclear@9: { nuclear@9: name = 0; nuclear@9: } nuclear@9: nuclear@9: Screen::~Screen() nuclear@9: { nuclear@9: delete [] name; nuclear@9: } nuclear@9: nuclear@9: bool Screen::init() nuclear@9: { nuclear@9: return true; nuclear@9: } nuclear@9: nuclear@9: void Screen::shutdown() nuclear@9: { nuclear@9: } nuclear@9: nuclear@9: void Screen::set_name(const char *name) nuclear@9: { nuclear@9: delete [] this->name; nuclear@9: this->name = new char[strlen(name) + 1]; nuclear@9: strcpy(this->name, name); nuclear@9: } nuclear@9: nuclear@9: const char *Screen::get_name() const nuclear@9: { nuclear@9: return name ? name : ""; nuclear@9: } nuclear@9: nuclear@9: void Screen::update() nuclear@9: { nuclear@9: } nuclear@9: nuclear@9: void Screen::handle_keyboard(int key, bool press) nuclear@9: { nuclear@9: } nuclear@9: nuclear@9: void Screen::handle_mbutton(int bn, bool press, int x, int y) nuclear@9: { nuclear@9: } nuclear@9: nuclear@9: void Screen::handle_mmotion(int x, int y) nuclear@9: { nuclear@9: } nuclear@15: nuclear@17: void Screen::message(MsgAtom msg, ...) nuclear@15: { nuclear@15: }