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 EventArg arg);
13 
14     /++
15         毎フレーム実行されるメンバ関数です.
16     +/
17     void update(ref EventArg arg);
18 
19     /++
20         毎フレーム実行されるメンバ関数です.updateの次に呼ばれます.描画処理を記述します.
21     +/
22     void draw(ref EventArg arg);
23 
24     /++
25         終了時に一度だけ呼ばれるメンバ関数です.
26     +/
27     void exit(ref EventArg arg);
28 
29     ///
30     void windowResized(ref WindowResizeEventArg message);
31 
32     /++
33         キーボードを押した際に呼ばれるメンバ関数です.
34         Params:
35         message = キーボードの状態が格納されたメッセージです.
36     +/
37     void keyPressed(ref KeyPressedEventArg message);
38 
39     /++
40         キーボードを離した際に呼ばれるメンバ関数です.
41         Params:
42         message = キーボードの状態が格納されたメッセージです.
43     +/
44     void keyReleased(ref KeyReleasedEventArg message);
45     
46     ///
47     void unicodeInputted(ref UnicodeInputtedEventArg message);
48 
49     /++
50         マウスが動いた際に呼ばれるメンバ関数です.
51         Params:
52         message = マウスの状態が格納されたメッセージです.
53     +/
54     void mouseMoved(ref MouseMovedEventArg message);
55     /++
56         マウスがドラッグされた際に呼ばれるメンバ関数です.
57         Deprecated: 現在動作しません.
58     +/
59     void mouseDragged(ref MouseDraggedEventArg message);
60 
61 
62     /++
63         マウスのボタンが離れた際に呼ばれるメンバ関数です.
64         Params:
65         message = マウスの状態が格納されたメッセージです.
66     +/
67     void mouseReleased(ref MouseReleasedEventArg message);
68 
69     /++
70         マウスのボタンが押された際に呼ばれるメンバ関数です.
71         Params:
72         message = マウスの状態が格納されたメッセージです.
73     +/
74     void mousePressed(ref MousePressedEventArg message);
75 
76     ///
77     bool hasPressedKey(in KeyType key)const;
78 
79     ///
80     bool hasHeldKey(in KeyType key)const;
81 
82     ///
83     bool hasReleasedKey(in KeyType key)const;
84 
85     ///
86     void exitApp();
87 
88     ///
89     bool shouldClose();
90 }
91