98 lines
2.8 KiB
C++
98 lines
2.8 KiB
C++
#ifndef _DDRAW_MAINWINDOW_HPP_
|
|
#define _DDRAW_MAINWINDOW_HPP_
|
|
#ifndef _COMMON_WINDOW_HPP_
|
|
#include <common/window.hpp>
|
|
#endif
|
|
#ifndef _COMMON_STRING_HPP_
|
|
#include <common/string.hpp>
|
|
#endif
|
|
#ifndef _COMMON_SMARTPOINTER_HPP_
|
|
#include <common/pointer.hpp>
|
|
#endif
|
|
#ifndef _COMMON_DIBITMAP_HPP_
|
|
#include <common/dib.hpp>
|
|
#endif
|
|
#ifndef _COMMON_BITMAP_HPP_
|
|
#include <common/bitmap.hpp>
|
|
#endif
|
|
#ifndef _DDRAW_DRAWINGSURFACE_HPP_
|
|
#include <ddraw/drawsfc.hpp>
|
|
#endif
|
|
#ifndef _DDRAW_DIRECT3D_HPP_
|
|
#include <ddraw/direct3d.hpp>
|
|
#endif
|
|
#ifndef _DDRAW_DEVICE3D_HPP_
|
|
#include <ddraw/device3d.hpp>
|
|
#endif
|
|
#ifndef _DDRAW_DIRECTPALETTE_HPP_
|
|
#include <ddraw/palette.hpp>
|
|
#endif
|
|
|
|
class DirectDraw;
|
|
class Device3D;
|
|
|
|
class MainWindow : public Window
|
|
{
|
|
public:
|
|
MainWindow(void);
|
|
virtual ~MainWindow();
|
|
static String className(void);
|
|
private:
|
|
enum {MaxRotate=360,MinRotate=-360};
|
|
enum {ThetaDelta=10,ViewDelta=5,TurnDelta=20};
|
|
enum {inKey=0x49,outKey=0x4F};
|
|
enum{DisplayWidth=640,DisplayHeight=480,DisplayBPP=8};
|
|
CallbackData::ReturnType paintHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType commandHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType keyDownHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType keyUpHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType sizeHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType timerHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType createHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType activateAppHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType displayChangeHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType dialogCodeHandler(CallbackData &someCallbackData);
|
|
|
|
WORD shiftKeyPressed(void)const;
|
|
WORD handleUpArrow(void);
|
|
WORD handleDownArrow(void);
|
|
WORD handleLeftArrow(void);
|
|
WORD handleRightArrow(void);
|
|
void registerClass(void)const;
|
|
void insertHandlers(void);
|
|
void removeHandlers(void);
|
|
|
|
Callback<MainWindow> mActivateAppHandler;
|
|
Callback<MainWindow> mDisplayChangeHandler;
|
|
Callback<MainWindow> mPaintHandler;
|
|
Callback<MainWindow> mDestroyHandler;
|
|
Callback<MainWindow> mCommandHandler;
|
|
Callback<MainWindow> mKeyDownHandler;
|
|
Callback<MainWindow> mSizeHandler;
|
|
Callback<MainWindow> mTimerHandler;
|
|
Callback<MainWindow> mCreateHandler;
|
|
Callback<MainWindow> mKeyUpHandler;
|
|
Callback<MainWindow> mDialogCodeHandler;
|
|
static char szClassName[];
|
|
static char szMenuName[];
|
|
SmartPointer<DirectDraw> mDirectDraw;
|
|
DrawingSurface mPrimarySurface;
|
|
Direct3D mDirect3D;
|
|
DirectDevice3D mDirectDevice3D;
|
|
DirectPalette mDirectPalette;
|
|
SmartPointer<Device3D> mDevice3D;
|
|
SmartPointer<DIBitmap> mDIBitmap;
|
|
Bitmap mTextureBitmap;
|
|
PurePalette mPalette;
|
|
};
|
|
|
|
inline
|
|
String MainWindow::className(void)
|
|
{
|
|
return String(szClassName);
|
|
}
|
|
#endif
|
|
|
|
|