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

73 lines
2.3 KiB
C++

#ifndef _PROTO_MAINWINDOW_HPP_
#define _PROTO_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 _TWAIN_TWAIN_HPP_
#include <twain/twain.hpp>
#endif
#ifndef _STATBAR_STATUSBAREX_HPP_
#include <statbar/statbarx.hpp>
#endif
class MainWindow : public Window, private Twain
{
public:
MainWindow(HINSTANCE hInstance);
virtual ~MainWindow();
static String className(void);
protected:
virtual void dibReceived(HGLOBAL hDib);
virtual int negotiateCapabilities(void);
virtual void twainError(TW_ERR error);
// void xferReady(LPMSG lpmsg);
private:
enum{InitialWidth=640,InitialHeight=480};
CallbackData::ReturnType paintHandler(CallbackData &someCallbackData);
CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData);
CallbackData::ReturnType commandHandler(CallbackData &someCallbackData);
CallbackData::ReturnType keyDownHandler(CallbackData &someCallbackData);
CallbackData::ReturnType sizeHandler(CallbackData &someCallbackData);
CallbackData::ReturnType createHandler(CallbackData &someCallbackData);
CallbackData::ReturnType timerHandler(CallbackData &someCallbackData);
CallbackData::ReturnType setFocusHandler(CallbackData &someCallbackData);
CallbackData::ReturnType lineHandler(CallbackData &someCallbackData);
CallbackData::ReturnType closeHandler(CallbackData &someCallbackData);
CallbackData::ReturnType completionHandler(CallbackData &someCallbackData);
void message(const String &messageString);
void message(Block<String> &messageStrings);
void registerClass(void)const;
void insertHandlers(void);
void removeHandlers(void);
int message(String message,int retCode);
Callback<MainWindow> mPaintHandler;
Callback<MainWindow> mDestroyHandler;
Callback<MainWindow> mCommandHandler;
Callback<MainWindow> mKeyDownHandler;
Callback<MainWindow> mSizeHandler;
Callback<MainWindow> mCreateHandler;
Callback<MainWindow> mTimerHandler;
Callback<MainWindow> mSetFocusHandler;
Callback<MainWindow> mCloseHandler;
static char szClassName[];
static char szMenuName[];
HINSTANCE mhInstance;
SmartPointer<StatusBarEx> mStatusBar;
SmartPointer<Control> mControlWnd;
};
inline
String MainWindow::className(void)
{
return String(szClassName);
}
#endif