SDXFrameWork  0.13
SDXFrameWork
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
Mouse.h
1 //Copyright © 2014 SDXFramework
2 //[License]GNU Affero General Public License, version 3
3 //[Contact]http://sourceforge.jp/projects/dxframework/
4 #pragma once
5 #include <Multimedia/SDX.h>
6 #include <Multimedia/Key.h>
7 #include <Framework/Shape.h>
8 #include <Multimedia/Window.h>
9 #include <Utility/EnumArray.h>
10 
11 namespace SDX
12 {
14  enum class MouseCode
15  {
16  Left,
17  Right,
18  Middle,
19  _4,
20  _5,
21  _6,
22  _7,
23  _8,
24 
25  COUNT,
26  };
27 
30  class Mouse
31  {
32  friend class Input;
33  private:
34  MONO_STATE(Mouse)
35 
36  int xBuffer;
37  int yBuffer;
38 
40  public:
41 
42  int x = 0;
43  int y = 0;
44 
45  int moveX = 0;
46  int moveY = 0;
47 
48  int Whell = 0;
49 
53 
59 
61  void Reset()
62  {
63  x = 0;
64  y = 0;
65  moveX = 0;
66  moveY = 0;
67  Left.Reset();
68  Right.Reset();
69  Middle.Reset();
70  Button4.Reset();
71  Button5.Reset();
72  Button6.Reset();
73  Button7.Reset();
74  Button8.Reset();
75  Whell = 0;
76  }
77 
79  void Update()
80  {
81  Left.Update(press[MouseCode::Left]);
82  Right.Update(press[MouseCode::Right]);
83  Middle.Update(press[MouseCode::Middle]);
84 
85  Button4.Update(press[MouseCode::_4]);
86  Button5.Update(press[MouseCode::_5]);
87  Button6.Update(press[MouseCode::_6]);
88  Button7.Update(press[MouseCode::_7]);
89  Button8.Update(press[MouseCode::_8]);
90 
91  moveX = xBuffer - x;
92  moveY = yBuffer - y;
93 
94  x = xBuffer;
95  y = yBuffer;
96 
97  Whell = 0;
98  }
99 
101  bool SetVisible(bool 表示フラグ)
102  {
103  if (表示フラグ)
104  {
105  SDL_ShowCursor( 1 );
106  }
107  else
108  {
109  SDL_ShowCursor( 0 );
110  }
111 
112  return true;
113  }
114 
116  bool SetPoint(int 移動先X, int 移動先Y)
117  {
118  SDL_WarpMouseInWindow(Window::activeWindow->handle, x, y);
119  return true;
120  }
121 
124  {
125  return {x,y};
126  }
127 
131  {
132  switch (index)
133  {
134  case MouseCode::Left:return Left;
135  case MouseCode::Right:return Right;
136  case MouseCode::Middle:return Middle;
137  case MouseCode::_4:return Button4;
138  case MouseCode::_5:return Button5;
139  case MouseCode::_6:return Button6;
140  case MouseCode::_7:return Button7;
141  case MouseCode::_8:return Button8;
142  default: return Left;
143  }
144  }
145  };
146 }
Key Middle
マウスホイールクリック
Definition: Mouse.h:52
マウスの状態を表すクラス.
Definition: Mouse.h:30
Key Button4
4ボタン
Definition: Mouse.h:54
Key & operator[](MouseCode index)
MouseCodeでアクセス.
Definition: Mouse.h:130
Key Button5
5ボタン
Definition: Mouse.h:55
Key Button6
6ボタン
Definition: Mouse.h:56
点を表す図形クラス.
Definition: Point.h:22
Key Right
右クリック
Definition: Mouse.h:51
MouseCode
マウスボタンコード.
Definition: Mouse.h:14
int moveY
直前の座標からの移動量
Definition: Mouse.h:46
int x
現在座標
Definition: Mouse.h:42
void Reset()
キーのリセット.
Definition: Key.h:20
Key Button7
7ボタン
Definition: Mouse.h:57
void Reset()
状態のリセット.
Definition: Mouse.h:61
bool SetVisible(bool 表示フラグ)
カーソルの表示設定.
Definition: Mouse.h:101
int moveX
直前の座標からの移動量
Definition: Mouse.h:45
int y
現在座標
Definition: Mouse.h:43
キーやマウスによる入力をまとめて管理するクラス.
Definition: Input.h:17
Key Left
左クリック
Definition: Mouse.h:50
bool SetPoint(int 移動先X, int 移動先Y)
カーソル位置を移動.
Definition: Mouse.h:116
Key Button8
8ボタン
Definition: Mouse.h:58
void Update(bool 押下フラグ)
押下状態の更新.
Definition: Key.h:29
void Update()
状態の更新.
Definition: Mouse.h:79
各ボタンとキーを表すクラス.
Definition: Key.h:11
static SubWindow * activeWindow
現在アクティブなウィンドウ
Definition: Window.h:24
Point GetPoint()
カーソル位置を取得.
Definition: Mouse.h:123
int Whell
マウスの回転量
Definition: Mouse.h:48