Files
Work/dialog/DYNDLG.HPP
2024-08-07 09:16:27 -04:00

47 lines
1.7 KiB
C++

#ifndef _DIALOG_DYNAMICDIALOG_HPP_
#define _DIALOG_DYNAMICDIALOG_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_DWINDOW_HPP_
#include <common/dwindow.hpp>
#endif
#ifndef _COMMON_CALLBACK_HPP_
#include <common/callback.hpp>
#endif
#ifndef _DIALOG_DIALOGITEMTEMPLATE_HPP_
#include <dialog/dlgitem.hpp>
#endif
#ifndef _DIALOG_DIALOGTEMPLATE_HPP_
#include <dialog/dlgtmpl.hpp>
#endif
class DynamicDialog : public DWindow
{
public:
enum DialogType{ModalDialog,ModelessDialog};
DynamicDialog(void);
virtual ~DynamicDialog();
void createDialog(HWND hParentWnd,DialogTemplate &someDialogTemplate,DialogType typeDialog=ModalDialog);
void createDialog(DialogTemplate &someDialogTemplate,DialogType typeDialog=ModalDialog);
protected:
virtual WORD dlgCommand(DWORD commandID,CallbackData &someCallbackData);
virtual WORD dlgCode(CallbackData &someCallbackData);
virtual BOOL dlgInitDialog(CallbackData &someCallbackData);
virtual void dlgDestroyDialog(CallbackData &someCallbackData);
private:
DynamicDialog(const DynamicDialog &someDynamicDialog);
CallbackData::ReturnType initDialogHandler(CallbackData &someCallbackData);
CallbackData::ReturnType closeHandler(CallbackData &someCallbackData);
CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData);
CallbackData::ReturnType dialogCodeHandler(CallbackData &someCallbackData);
CallbackData::ReturnType commandHandler(CallbackData &someCallbackData);
Callback<DynamicDialog> mInitDialogHandler;
Callback<DynamicDialog> mCloseHandler;
Callback<DynamicDialog> mDestroyHandler;
Callback<DynamicDialog> mDialogCodeHandler;
Callback<DynamicDialog> mCommandHandler;
};
#endif