You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
5.0 KiB
130 lines
5.0 KiB
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//============================================================================= |
|
|
|
#ifndef VGUI_APP_H |
|
#define VGUI_APP_H |
|
|
|
#include<VGUI.h> |
|
#include<VGUI_MouseCode.h> |
|
#include<VGUI_KeyCode.h> |
|
#include<VGUI_Dar.h> |
|
#include<VGUI_Cursor.h> |
|
|
|
namespace vgui |
|
{ |
|
|
|
class Panel; |
|
class TickSignal; |
|
class Scheme; |
|
class TickSignal; |
|
class SurfaceBase; |
|
|
|
class VGUIAPI App |
|
{ |
|
public: |
|
App() {} |
|
App(bool externalMain) {} |
|
public: |
|
static App* getInstance() {return 0;} |
|
//TODO: the public and public bullshit are all messed up, need to organize |
|
//TODO: actually all of the access needs to be properly thought out while you are at it |
|
public: |
|
virtual void start() {} |
|
virtual void stop() {} |
|
virtual void externalTick() {} |
|
virtual bool wasMousePressed(MouseCode code,Panel* panel) {return false;} |
|
virtual bool wasMouseDoublePressed(MouseCode code,Panel* panel) {return false;} |
|
virtual bool isMouseDown(MouseCode code,Panel* panel) {return false;} |
|
virtual bool wasMouseReleased(MouseCode code,Panel* panel) {return false;} |
|
virtual bool wasKeyPressed(KeyCode code,Panel* panel) {return false;} |
|
virtual bool isKeyDown(KeyCode code,Panel* panel) {return false;} |
|
virtual bool wasKeyTyped(KeyCode code,Panel* panel) {return false;} |
|
virtual bool wasKeyReleased(KeyCode code,Panel* panel) {return false;} |
|
virtual void addTickSignal(TickSignal* s) {} |
|
virtual void setCursorPos(int x,int y) {} |
|
virtual void getCursorPos(int& x,int& y) {} |
|
virtual void setMouseCapture(Panel* panel) {} |
|
virtual void setMouseArena(int x0,int y0,int x1,int y1,bool enabled) {} |
|
virtual void setMouseArena(Panel* panel) {} |
|
virtual void requestFocus(Panel* panel) {} |
|
virtual Panel* getFocus() {return 0;} |
|
virtual void repaintAll() {} |
|
virtual void setScheme(Scheme* scheme) {} |
|
virtual Scheme* getScheme() {return 0;} |
|
virtual void enableBuildMode() {} |
|
virtual long getTimeMillis() {return 0;} |
|
virtual char getKeyCodeChar(KeyCode code,bool shifted) {return '\0';} |
|
virtual void getKeyCodeText(KeyCode code,char* buf,int buflen) {} |
|
virtual int getClipboardTextCount() {return 0;} |
|
virtual void setClipboardText(const char* text,int textLen) {} |
|
virtual int getClipboardText(int offset,char* buf,int bufLen) {return 0;} |
|
virtual void reset() {} |
|
virtual void internalSetMouseArena(int x0,int y0,int x1,int y1,bool enabled) {} |
|
virtual bool setRegistryString(const char* key,const char* value) {return false;} |
|
virtual bool getRegistryString(const char* key,char* value,int valueLen) {return false;} |
|
virtual bool setRegistryInteger(const char* key,int value) {return false;} |
|
virtual bool getRegistryInteger(const char* key,int& value) {return false;} |
|
virtual void setCursorOveride(Cursor* cursor) {} |
|
virtual Cursor* getCursorOveride() {return 0;} |
|
virtual void setMinimumTickMillisInterval(int interval) {} |
|
public: //bullshit public stuff |
|
virtual void main(int argc,char* argv[])=0; |
|
virtual void run() {} |
|
virtual void internalCursorMoved(int x,int y,SurfaceBase* surfaceBase) {} //expects input in surface space |
|
virtual void internalMousePressed(MouseCode code,SurfaceBase* surfaceBase) {} |
|
virtual void internalMouseDoublePressed(MouseCode code,SurfaceBase* surfaceBase) {} |
|
virtual void internalMouseReleased(MouseCode code,SurfaceBase* surfaceBase) {} |
|
virtual void internalMouseWheeled(int delta,SurfaceBase* surfaceBase) {} |
|
virtual void internalKeyPressed(KeyCode code,SurfaceBase* surfaceBase) {} |
|
virtual void internalKeyTyped(KeyCode code,SurfaceBase* surfaceBase) {} |
|
virtual void internalKeyReleased(KeyCode code,SurfaceBase* surfaceBase) {} |
|
private: |
|
virtual void init() {} |
|
virtual void updateMouseFocus(int x,int y,SurfaceBase* surfaceBase) {} |
|
virtual void setMouseFocus(Panel* newMouseFocus) {} |
|
protected: |
|
virtual void surfaceBaseCreated(SurfaceBase* surfaceBase) {} |
|
virtual void surfaceBaseDeleted(SurfaceBase* surfaceBase) {} |
|
virtual void platTick() {} |
|
virtual void internalTick() {} |
|
protected: |
|
static App* _instance; |
|
protected: |
|
bool _running; |
|
bool _externalMain; |
|
Dar<SurfaceBase*> _surfaceBaseDar; |
|
Panel* _keyFocus; |
|
Panel* _oldMouseFocus; |
|
Panel* _mouseFocus; |
|
Panel* _mouseCapture; |
|
Panel* _wantedKeyFocus; |
|
bool _mousePressed[MOUSE_LAST]; |
|
bool _mouseDoublePressed[MOUSE_LAST]; |
|
bool _mouseDown[MOUSE_LAST]; |
|
bool _mouseReleased[MOUSE_LAST]; |
|
bool _keyPressed[KEY_LAST]; |
|
bool _keyTyped[KEY_LAST]; |
|
bool _keyDown[KEY_LAST]; |
|
bool _keyReleased[KEY_LAST]; |
|
Dar<TickSignal*> _tickSignalDar; |
|
Scheme* _scheme; |
|
bool _buildMode; |
|
bool _wantedBuildMode; |
|
Panel* _mouseArenaPanel; |
|
Cursor* _cursor[Cursor::dc_last]; |
|
Cursor* _cursorOveride; |
|
private: |
|
long _nextTickMillis; |
|
long _minimumTickMillisInterval; |
|
friend class SurfaceBase; |
|
}; |
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
|