Initial
This commit is contained in:
104
dialog/DYNDLG.CPP
Normal file
104
dialog/DYNDLG.CPP
Normal file
@@ -0,0 +1,104 @@
|
||||
#include <dialog/dyndlg.hpp>
|
||||
#include <common/widestr.hpp>
|
||||
|
||||
DynamicDialog::DynamicDialog(void)
|
||||
{
|
||||
mDestroyHandler.setCallback(this,&DynamicDialog::destroyHandler);
|
||||
mInitDialogHandler.setCallback(this,&DynamicDialog::initDialogHandler);
|
||||
mCloseHandler.setCallback(this,&DynamicDialog::closeHandler);
|
||||
mDialogCodeHandler.setCallback(this,&DynamicDialog::dialogCodeHandler);
|
||||
mCommandHandler.setCallback(this,&DynamicDialog::commandHandler);
|
||||
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
||||
insertHandler(VectorHandler::InitDialogHandler,&mInitDialogHandler);
|
||||
insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
||||
insertHandler(VectorHandler::DialogCodeHandler,&mDialogCodeHandler);
|
||||
insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
||||
}
|
||||
|
||||
DynamicDialog::DynamicDialog(const DynamicDialog &someDynamicDialog)
|
||||
{
|
||||
mDestroyHandler.setCallback(this,&DynamicDialog::destroyHandler);
|
||||
mInitDialogHandler.setCallback(this,&DynamicDialog::initDialogHandler);
|
||||
mCloseHandler.setCallback(this,&DynamicDialog::closeHandler);
|
||||
mDialogCodeHandler.setCallback(this,&DynamicDialog::dialogCodeHandler);
|
||||
mCommandHandler.setCallback(this,&DynamicDialog::commandHandler);
|
||||
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
||||
insertHandler(VectorHandler::InitDialogHandler,&mInitDialogHandler);
|
||||
insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
||||
insertHandler(VectorHandler::DialogCodeHandler,&mDialogCodeHandler);
|
||||
insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
||||
}
|
||||
|
||||
DynamicDialog::~DynamicDialog()
|
||||
{
|
||||
removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
||||
removeHandler(VectorHandler::InitDialogHandler,&mInitDialogHandler);
|
||||
removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
||||
removeHandler(VectorHandler::DialogCodeHandler,&mDialogCodeHandler);
|
||||
removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
||||
}
|
||||
|
||||
void DynamicDialog::createDialog(HWND hParent,DialogTemplate &someDialogTemplate,DialogType typeDialog)
|
||||
{
|
||||
HINSTANCE hInstance((HINSTANCE)::GetWindowLong(hParent,GWL_HINSTANCE));
|
||||
if(ModalDialog==typeDialog)::DialogBoxIndirectParam(hInstance,(DLGTEMPLATE*)someDialogTemplate,hParent,DWindow::DlgProc,(LONG)(LPSTR)(DWindow*)this);
|
||||
else if(!isValid())::CreateDialogIndirectParam(hInstance,(DLGTEMPLATE*)someDialogTemplate,hParent,DWindow::DlgProc,(LONG)(LPSTR)(DWindow*)this);
|
||||
}
|
||||
|
||||
void DynamicDialog::createDialog(DialogTemplate &someDialogTemplate,DialogType typeDialog)
|
||||
{
|
||||
if(ModalDialog==typeDialog)::DialogBoxIndirectParam(processInstance(),(DLGTEMPLATE*)someDialogTemplate,(HWND)0,DWindow::DlgProc,(LONG)(LPSTR)(DWindow*)this);
|
||||
else if(!isValid())::CreateDialogIndirectParam(processInstance(),(DLGTEMPLATE*)someDialogTemplate,(HWND)0,DWindow::DlgProc,(LONG)(LPSTR)(DWindow*)this);
|
||||
}
|
||||
|
||||
CallbackData::ReturnType DynamicDialog::closeHandler(CallbackData &/*someCallbackData*/)
|
||||
{
|
||||
destroy();
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType DynamicDialog::destroyHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
dlgDestroyDialog(someCallbackData);
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType DynamicDialog::initDialogHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
return dlgInitDialog(someCallbackData);
|
||||
}
|
||||
|
||||
CallbackData::ReturnType DynamicDialog::commandHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
WORD cmdReturn(dlgCommand(someCallbackData.wmCommandID(),someCallbackData));
|
||||
if(IDCANCEL==someCallbackData.wmCommandID()&&!cmdReturn)endDialog(FALSE);
|
||||
else if(IDOK==someCallbackData.wmCommandID()&&!cmdReturn)endDialog(TRUE);
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType DynamicDialog::dialogCodeHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
return dlgCode(someCallbackData);
|
||||
}
|
||||
|
||||
// *** virtuals
|
||||
|
||||
WORD DynamicDialog::dlgCommand(DWORD /*commandID*/,CallbackData &/*someCallbackData*/)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
WORD DynamicDialog::dlgCode(CallbackData &/*someCallbackData*/)
|
||||
{
|
||||
return DLGC_WANTTAB;
|
||||
}
|
||||
|
||||
BOOL DynamicDialog::dlgInitDialog(CallbackData &/*someCallbackData*/)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void DynamicDialog::dlgDestroyDialog(CallbackData &/*someCallbackData*/)
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user