#include #include #include #include #include #include #include #include using namespace raleigh; label *kmem; label *umem; void refresh(window &w) { char *const kstr = format("kernel memory free: %uk", _kernel_dynamic_area_left() * 4); char *const ustr = format("userspace memory free: %uk / %uk", _total_userspace_left() * 4, _total_userspace_size() * 4); kmem->change_value(kstr); umem->change_value(ustr); free_block(kstr); free_block(ustr); } void main() { kmem = new label(""); umem = new label(""); label msg("press Alt+F4 to quit, or F5 to refresh"); padding pkmem(*kmem, 1); padding pumem(*umem, 1); padding pmsg(msg, 1); dllist ll; ll.add_front(pmsg); ll.add_front(pumem); ll.add_front(pkmem); vbox box(ll); padding pbox(box, 3); window w(pbox, RGB(bf, bf, bf), (bool (*)(window &))&__pcrt_quit); w.add_keybind((struct key_packet){.key_id = key_packet::KEY_F5, .modifiers = key_packet::NO_MODS}, &refresh); refresh(w); w.show(); start_runtime(); }