OpenMoHAA 0.82.1
Loading...
Searching...
No Matches
uiwinman.h
1/*
2===========================================================================
3Copyright (C) 2015 the OpenMoHAA team
4
5This file is part of OpenMoHAA source code.
6
7OpenMoHAA source code is free software; you can redistribute it
8and/or modify it under the terms of the GNU General Public License as
9published by the Free Software Foundation; either version 2 of the License,
10or (at your option) any later version.
11
12OpenMoHAA source code is distributed in the hope that it will be
13useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with OpenMoHAA source code; if not, write to the Free Software
19Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20===========================================================================
21*/
22
23#pragma once
24
26{
27public:
28 str binding;
29 int key1;
30 int key2;
31};
32
33class UIWindowManager : public UIWidget
34{
35 unsigned int m_lastbuttons;
36 UIPoint2D m_oldpos;
37 SafePtr<UIWidget> m_oldview;
38 SafePtr<UIWidget> m_firstResponder;
39 class UIWidget *m_activeControl;
40 class UIWidget *m_backgroundwidget;
41 class UIReggedMaterial *m_cursor;
42 str m_cursorname;
43 bool m_showcursor;
44 Container<UIReggedMaterial *> m_materiallist;
45 bool m_amidead;
46 class UIWidget *m_bindactive;
47 Container<Binding *> bindings;
48
49public:
50 CLASS_PROTOTYPE(UIWindowManager);
51
52private:
53 void ViewEvent(UIWidget *view, Event& event, UIPoint2D& pos, int buttons);
54 UIWidget *getResponder(UIPoint2D& pos);
55
56public:
57 UIWindowManager();
58 ~UIWindowManager();
59
60 void Init(const UIRect2D& frame, const char *fontname);
61 void setBackgroundWidget(UIWidget *widget);
62 void UpdateViews(void);
63 void ServiceEvents(void);
64 void setFirstResponder(UIWidget *responder);
65 UIWidget *getFirstResponder(void);
66 UIWidget *ActiveControl(void);
67 void ActivateControl(UIWidget *control);
68 void DeactivateCurrentControl(void);
69 UIWidget *FindNextControl(UIWidget *control);
70 UIWidget *FindPrevControl(UIWidget *control);
71 void setCursor(const char *string);
72 void showCursor(bool show);
73 virtual void CharEvent(int ch) override;
74 virtual qboolean KeyEvent(int key, unsigned int time) override;
75 void CreateMenus(void);
76 UIReggedMaterial *RegisterShader(const str& name);
77 UIReggedMaterial *RefreshShader(const str& name);
78 void CleanupShadersFromList(void);
79 void RefreshShadersFromList(void);
80 void DeactivateCurrentSmart(void);
81 bool IsDead(void);
82 int AddBinding(str binding);
83 str GetKeyStringForCommand(str command, int index, qboolean alternate, int *key1, int *key2);
84 void BindKeyToCommand(str command, int key, int index, qboolean alternate);
85 UIWidget *BindActive(void);
86 void SetBindActive(UIWidget *w);
87 virtual void Shutdown(void) override;
88 void DeactiveFloatingWindows(void);
89 bool DialogExists(void);
90 void RemoveAllDialogBoxes(void);
91
92private:
93 // Added in OPM
94 void refreshCursor();
95};
96
97extern Event W_MouseExited;
98extern Event W_MouseEntered;
99extern Event W_LeftMouseDragged;
100extern Event W_RightMouseDragged;
101extern Event W_CenterMouseDragged;
102extern Event W_MouseMoved;
103extern Event W_LeftMouseDown;
104extern Event W_LeftMouseUp;
105extern Event W_RightMouseDown;
106extern Event W_RightMouseUp;
107extern Event W_CenterMouseDown;
108extern Event W_CenterMouseUp;
109extern Event W_AnyMouseDown;
110extern Event W_AnyMouseUp;
111
112extern UIWindowManager uWinMan;
Definition uiwinman.h:26
Definition container.h:85
Definition listener.h:246
Definition safeptr.h:160
Definition uipoint2d.h:26
Definition uirect2d.h:29
Definition uiwidget.h:36
Definition uiwinman.h:34
Definition str.h:77