Files
Work/ddraw/MAINWND.HPP
2024-08-07 09:16:27 -04:00

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