|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2021 nono project ! 4: // Licensed under nono-license.txt ! 5: // ! 6: ! 7: #include "uimessage.h" ! 8: ! 9: /*static*/ UIMessage::Queue UIMessage::queue {}; ! 10: /*static*/ std::function<void(UIMessage::Queue&)> UIMessage::process {}; ! 11: ! 12: // コンストラクタ ! 13: UIMessage::UIMessage() ! 14: : UIMessage(ID::NONE, 0) ! 15: { ! 16: } ! 17: ! 18: // コンストラクタ (ID, argあり) ! 19: UIMessage::UIMessage(ID id_, int arg_) ! 20: { ! 21: id = id_; ! 22: arg = arg_; ! 23: } ! 24: ! 25: /*static*/ void ! 26: UIMessage::Attach(const std::function<void(Queue&)>& process_) ! 27: { ! 28: process = process_; ! 29: // 溜まっているものを処理する ! 30: process(queue); ! 31: } ! 32: ! 33: void ! 34: UIMessage::Post() ! 35: { ! 36: queue.EnqueueForce(*this); ! 37: if (process) { ! 38: process(queue); ! 39: } ! 40: } ! 41: ! 42: /*static*/ void ! 43: UIMessage::Post(ID id) ! 44: { ! 45: UIMessage(id, 0).Post(); ! 46: } ! 47: ! 48: /*static*/ void ! 49: UIMessage::Post(ID id, int arg) ! 50: { ! 51: UIMessage(id, arg).Post(); ! 52: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.