1 module armos.app.application;
2 
3 import armos.events;
4 import armos.utils.keytype;
5 /++
6 armosの中心となるクラスです.プロジェクトを作成する際はこのクラスを継承して処理を記述していきます.
7 +/
8 interface Application{
9     /++
10         事前処理を記述するメンバ関数です.initializerによる初期化が行われた後,一度だけ実行されます.
11     +/
12     void setup(ref SetupEvent arg);
13 
14     /++
15         毎フレーム実行されるメンバ関数です.
16     +/
17     void update(ref UpdateEvent arg);
18 
19     /++
20         毎フレーム実行されるメンバ関数です.updateの次に呼ばれます.描画処理を記述します.
21     +/
22     void draw(ref DrawEvent arg);
23 
24     /++
25         終了時に一度だけ呼ばれるメンバ関数です.
26     +/
27     void exit(ref ExitEvent arg);
28 
29     ///
30     void windowResized(ref WindowResizeEvent message);
31 
32     /++
33         キーボードを押した際に呼ばれるメンバ関数です.
34         Params:
35         message = キーボードの状態が格納されたメッセージです.
36     +/
37     void keyPressed(ref KeyPressedEvent message);
38 
39     /++
40         キーボードを離した際に呼ばれるメンバ関数です.
41         Params:
42         message = キーボードの状態が格納されたメッセージです.
43     +/
44     void keyReleased(ref KeyReleasedEvent message);
45     
46     ///
47     void unicodeInputted(ref UnicodeInputtedEvent message);
48 
49     /++
50         マウスが動いた際に呼ばれるメンバ関数です.
51         Params:
52         message = マウスの状態が格納されたメッセージです.
53     +/
54     void mouseMoved(ref MouseMovedEvent message);
55     /++
56         マウスがドラッグされた際に呼ばれるメンバ関数です.
57     +/
58     void mouseDragged(ref MouseDraggedEvent message);
59 
60     ///
61     void mouseScrolled(ref MouseScrolledEvent message);
62 
63     /++
64         マウスのボタンが離れた際に呼ばれるメンバ関数です.
65         Params:
66         message = マウスの状態が格納されたメッセージです.
67     +/
68     void mouseReleased(ref MouseReleasedEvent message);
69 
70     /++
71         マウスのボタンが押された際に呼ばれるメンバ関数です.
72         Params:
73         message = マウスの状態が格納されたメッセージです.
74     +/
75     void mousePressed(ref MousePressedEvent message);
76 
77     ///
78     bool hasPressedKey(in KeyType key)const;
79 
80     ///
81     bool hasHeldKey(in KeyType key)const;
82 
83     ///
84     bool hasReleasedKey(in KeyType key)const;
85 
86     ///
87     void exitApp();
88 
89     ///
90     bool shouldClose();
91 }
92