Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #pragma once
00024
00025 #include <windows.h>
00026 #undef min
00027 #undef max
00028
00029 #include "cinder/app/AppImplMsw.h"
00030 #include "cinder/app/AppImplMswRenderer.h"
00031 #include "cinder/Display.h"
00032
00033 namespace cinder { namespace app {
00034
00035 extern "C" LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
00036
00037 class AppImplMswBasic : public AppImplMsw {
00038 public:
00039 AppImplMswBasic( class AppBasic *aApp );
00040 void run();
00041
00042 class AppBasic* getApp() { return mApp; }
00043
00044 void quit() { mShouldQuit = true; }
00045
00046 void setWindowPos( const Vec2i &aWindowPos );
00047 void setWindowWidth( int aWindowWidth );
00048 void setWindowHeight( int aWindowHeight );
00049 void setWindowSize( int aWindowWidth, int aWindowHeight );
00050 float setFrameRate( float aFrameRate );
00051 void toggleFullScreen();
00052 void setBorderless( bool borderless );
00053 void setAlwaysOnTop( bool alwaysOnTop );
00054
00055 std::string getAppPath() const;
00056
00057 Display* getDisplay() { return mDisplay; }
00058
00059 protected:
00060 void sleep( double seconds );
00061
00062 bool createWindow( int *width, int *height );
00063 void killWindow( bool wasFullScreen );
00064 void enableMultiTouch();
00065 void getScreenSize( int clientWidth, int clientHeight, int *resultWidth, int *resultHeight );
00066 void onTouch( HWND hWnd, WPARAM wParam, LPARAM lParam );
00067
00068 bool mShouldQuit;
00069 bool mIsDragging;
00070 bool mHasBeenInitialized;
00071 class AppBasic *mApp;
00072
00073
00074 HWND mWnd;
00075 HDC mDC;
00076 HINSTANCE mInstance;
00077 DWORD mWindowStyle, mWindowExStyle;
00078 Vec2i mWindowedPos;
00079 double mNextFrameTime;
00080 Display *mDisplay;
00081 std::map<DWORD,Vec2f> mMultiTouchPrev;
00082
00083 friend LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
00084 };
00085
00086 } }