|
|
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.