#include #include #include #include #include #include #include #include ViewSelect::ViewSelect(HWND hParent) : mhParent(hParent) { } ViewSelect::~ViewSelect() { } WORD ViewSelect::selectView(Block &viewContainer,WORD &itemIndex,WORD width,WORD height) { HINSTANCE hInstance; WORD returnCode; if(!copyBlock(viewContainer))return FALSE; mWidth=width; mHeight=height; #if defined(__FLAT__) hInstance=(HINSTANCE)::GetWindowLong(mhParent,GWL_HINSTANCE); #else hInstance=(HINSTANCE)::GetWindowWord(mhParent,GWW_HINSTANCE); #endif if(0!=(returnCode=::DialogBoxParam(hInstance,(LPSTR)"ViewSelect",mhParent,(DLGPROC)DWindow::DialogProcedure,(LONG)((DWindow*)this)))) itemIndex=mItemIndex; return returnCode; } int ViewSelect::DlgProc(UINT message,WPARAM wParam,LPARAM lParam) { switch(message) { case WM_INITDIALOG : Main::smhBitmap.associate(IDCANCEL, String(STRING_BITMAPCAFOCUSUP,Main::processInstance()), String(STRING_BITMAPCANOFUP,Main::processInstance()), String(STRING_BITMAPCAFOCUSDN,Main::processInstance()), OwnerDraw::NOFOCUS); loadItemData(); return TRUE; case WM_DRAWITEM : switch(((LPDRAWITEMSTRUCT)lParam)->CtlID) { case IDCANCEL : Main::smhBitmap.handleOwnerButton(IDCANCEL,lParam); break; } return TRUE; case WM_COMMAND : switch(GET_WM_COMMAND_ID(wParam,lParam)) { case VIEWSEL_LIST : if(handleListBoxEvent(lParam)) { Main::smhBitmap.freeButton(IDCANCEL); ::EndDialog(GetHandle(),TRUE); } break; case IDCANCEL : Main::smhBitmap.freeButton(IDCANCEL); ::EndDialog(GetHandle(),FALSE); return TRUE; } } return FALSE; } WORD ViewSelect::copyBlock(Block &viewContainer) { size_t size((int)viewContainer.size()); if(!size)return FALSE; mViewContainer.remove(); for(int i=0;ihandle(),tempString,String::MaxString-1); iniProfile.makeFileName(tempString); for(int i=0;i