Initial
This commit is contained in:
136
m68hc11/CMPDlg.cpp
Normal file
136
m68hc11/CMPDlg.cpp
Normal file
@@ -0,0 +1,136 @@
|
||||
#include <m68hc11/cmpdlg.hpp>
|
||||
#include <m68hc11/m68hc11.hpp>
|
||||
#include <m68hc11/opendir.hpp>
|
||||
#include <common/stdio.hpp>
|
||||
|
||||
CMPDlg::CMPDlg(void)
|
||||
{
|
||||
mInitHandler.setCallback(this,&CMPDlg::initHandler);
|
||||
mCreateHandler.setCallback(this,&CMPDlg::createHandler);
|
||||
mCloseHandler.setCallback(this,&CMPDlg::closeHandler);
|
||||
mDestroyHandler.setCallback(this,&CMPDlg::destroyHandler);
|
||||
mCommandHandler.setCallback(this,&CMPDlg::commandHandler);
|
||||
insertHandler(VectorHandler::InitDialogHandler,&mInitHandler);
|
||||
insertHandler(VectorHandler::CreateHandler,&mCreateHandler);
|
||||
insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
||||
insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
||||
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
||||
}
|
||||
|
||||
CMPDlg::CMPDlg(const CMPDlg &someCMPDlg)
|
||||
{ // private implementation
|
||||
*this=someCMPDlg;
|
||||
}
|
||||
|
||||
CMPDlg::~CMPDlg()
|
||||
{
|
||||
removeHandler(VectorHandler::InitDialogHandler,&mInitHandler);
|
||||
removeHandler(VectorHandler::CreateHandler,&mCreateHandler);
|
||||
removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
||||
removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
||||
removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
||||
}
|
||||
|
||||
CMPDlg &CMPDlg::operator=(const CMPDlg &someCMPDlg)
|
||||
{ // private implementation
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool CMPDlg::perform(GUIWindow &parentWindow)
|
||||
{
|
||||
return ::DialogBoxParam(processInstance(),(LPSTR)"CMPDLG",(HWND)parentWindow,DWindow::DlgProc,(LPARAM)(DWindow*)this);
|
||||
}
|
||||
|
||||
CallbackData::ReturnType CMPDlg::initHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
setItems();
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType CMPDlg::createHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType CMPDlg::closeHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType CMPDlg::destroyHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType CMPDlg::commandHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
switch(someCallbackData.wmCommandID())
|
||||
{
|
||||
case IDCANCEL :
|
||||
case CMPDLG_CANCEL :
|
||||
handleCancel();
|
||||
break;
|
||||
case CMPDLG_OK :
|
||||
handleOk();
|
||||
break;
|
||||
case CMPDLG_LIST :
|
||||
handleList(someCallbackData);
|
||||
break;
|
||||
case CMPDLG_BROWSE :
|
||||
handleBrowse();
|
||||
break;
|
||||
}
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
void CMPDlg::handleCancel(void)
|
||||
{
|
||||
endDialog(false);
|
||||
}
|
||||
|
||||
void CMPDlg::handleOk(void)
|
||||
{
|
||||
getItems();
|
||||
endDialog(true);
|
||||
}
|
||||
|
||||
void CMPDlg::handleList(CallbackData &cbData)
|
||||
{
|
||||
DWORD current;
|
||||
|
||||
switch(cbData.wmCommandCommand())
|
||||
{
|
||||
case LBN_DBLCLK :
|
||||
current=sendMessage(CMPDLG_LIST,LB_GETCURSEL,0,0L);
|
||||
sendMessage(CMPDLG_LIST,LB_DELETESTRING,current,0L);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CMPDlg::handleBrowse()
|
||||
{
|
||||
String strDirectory;
|
||||
OpenDirectory openDirectory;
|
||||
if(!openDirectory.getOpenDirectory(*this,"Choose Folder",".",strDirectory))return;
|
||||
sendMessage(CMPDLG_LIST,LB_INSERTSTRING,-1,(LPARAM)(LPCSTR)strDirectory);
|
||||
}
|
||||
|
||||
void CMPDlg::getItems(void)
|
||||
{
|
||||
String strItem;
|
||||
DWORD count;
|
||||
|
||||
mIncludePath.remove();
|
||||
count=sendMessage(CMPDLG_LIST,LB_GETCOUNT,0,0L);
|
||||
for(int index=0;index<count;index++)
|
||||
{
|
||||
sendMessage(CMPDLG_LIST,LB_GETTEXT,index,(LPARAM)(LPSTR)strItem);
|
||||
mIncludePath.insert(&strItem);
|
||||
}
|
||||
}
|
||||
|
||||
void CMPDlg::setItems(void)
|
||||
{
|
||||
for(int index=0;index<mIncludePath.size();index++)
|
||||
sendMessage(CMPDLG_LIST,LB_INSERTSTRING,-1,(LPARAM)(LPCSTR)mIncludePath[index]);
|
||||
}
|
||||
Reference in New Issue
Block a user