void wmControl( HWND hwndDlg, USHORT idControl, USHORT usEvent ) { switch( idControl ) { case CHK_OVERRIDE_HSTRS: if( usEvent == BN_CLICKED ) { BOOL fChecked = WinQueryButtonCheckstate( hwndDlg, CHK_OVERRIDE_HSTRS ); WinEnableControl( hwndDlg, EF_CNR_NAME, fChecked ); WinEnableControl( hwndDlg, EF_SOURCE_NAME, fChecked ); WinEnableControl( hwndDlg, EF_TARGET_NAME, fChecked ); WinEnableControl( hwndDlg, ST_CNR_NAME, fChecked ); WinEnableControl( hwndDlg, ST_SOURCE_NAME, fChecked ); WinEnableControl( hwndDlg, ST_TARGET_NAME, fChecked ); } break; case CHK_OVERRIDE_ID: if( usEvent == BN_CLICKED ) { BOOL fChecked = WinQueryButtonCheckstate( hwndDlg, CHK_OVERRIDE_ID ); WinEnableControl( hwndDlg, EF_ITEMID, fChecked ); WinEnableControl( hwndDlg, ST_ITEMID, fChecked ); } break; } }
MRESULT EXPENTRY GameSettingsDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ) { ULONG OldLineStyle = InfoData.GetLineStyle(); switch( msg ){ case WM_INITDLG: (VOID)WinCheckButton( hwnd, (USHORT)IDC_DIAGONALS, InfoData.IsLineStyle(IDC_DIAGONALS) ); (VOID)WinCheckButton( hwnd, (USHORT)IDC_VERTICALS, InfoData.IsLineStyle(IDC_VERTICALS)); (VOID)WinCheckButton( hwnd, (USHORT)IDC_DIAGONALS_AND_VERTICALS, InfoData.IsLineStyle(IDC_DIAGONALS_AND_VERTICALS)); (VOID)WinCheckButton( hwnd, (USHORT)IDC_SOUND, InfoData.GetSound() ); (VOID)WinEnableControl( hwnd, (USHORT)IDC_SOUND, InfoData.IsSoundAvailable() ); break; case WM_COMMAND: switch( SHORT1FROMMP( mp1 ) ){ case DID_OK: if( WinQueryButtonCheckstate( hwnd, IDC_DIAGONALS ) ) InfoData.SetLineStyle(IDC_DIAGONALS); else if( WinQueryButtonCheckstate( hwnd, IDC_VERTICALS ) ) InfoData.SetLineStyle(IDC_VERTICALS); else InfoData.SetLineStyle(IDC_DIAGONALS_AND_VERTICALS); InfoData.SetSound( WinQueryButtonCheckstate(hwnd, IDC_SOUND) ); WinDismissDlg( hwnd, !InfoData.IsLineStyle(OldLineStyle) ); // TRUE => repaint because of new linestyle return (MRESULT)0; case DID_CANCEL: WinDismissDlg( hwnd, FALSE ); return (MRESULT)0; case IDC_GAMESETTINGSHELP: return (MRESULT)0; } } return WinDefDlgProc( hwnd, msg, mp1, mp2 ); }
void CPlugin::onInit(HWND hWnd, HWND hWndManual, HWND hWndAuto) { assert(hWnd != NULL); assert(hWndManual != NULL); assert(hWndAuto != NULL); m_hWnd = hWnd; m_hWndManual = hWndManual; m_hWndAuto = hWndAuto; pLogger->setShowImmediatelyFlag(WinQueryButtonCheckstate(m_hWnd, IDC_CHECK_SHOW_LOG) == BST_CHECKED); pLogger->setLogToFrameFlag(WinQueryButtonCheckstate(m_hWnd, IDC_CHECK_LOG_TO_FRAME) == BST_CHECKED); pLogger->setLogToFileFlag(WinQueryButtonCheckstate(m_hWnd, IDC_CHECK_LOG_TO_FILE) == BST_CHECKED); }
/*--------------------------------------------------------------------------- FindWndProc ---------------------------------------------------------------------------*/ MRESULT EXPENTRY FindWndProc( HWND wnd, ULONG msg, MPARAM mp1, MPARAM mp2 ) { MRESULT MRes; HWND entryfield; switch (msg) { case WM_INITDLG: PositionDialog( wnd ); entryfield = WinWindowFromID( wnd, ID_FINDENTRY ); WinSendMsg( entryfield, EM_SETTEXTLIMIT, MPFROMSHORT( sizeof FindDat.text - 1 ), 0 ); WinSetDlgItemText( wnd, ID_FINDENTRY, FindDat.text ); WinSendMsg( entryfield, EM_SETSEL, MPFROM2SHORT( 0, sizeof FindDat.text ), 0 ); MRes = MRFROMSHORT( FALSE ); break; case WM_CHAR: if (SHORT2FROMMP( mp2 ) == VK_NEWLINE) { WinQueryDlgItemText( wnd, ID_FINDENTRY, sizeof FindDat.text - 1, FindDat.text ); FindDat.sense = WinQueryButtonCheckstate( wnd, ID_FINDCHECK ); WinDismissDlg( wnd, 0 ); } default: MRes = WinDefDlgProc( wnd, msg, mp1, mp2 ); break; } return MRes; }
static MRESULT EXPENTRY PSOutputProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { PPRINTSETUP pPrintSetup = WinQueryWindowPtr(hwnd, QWL_USER); ULONG ulTemp; switch(msg) { case WM_INITDLG: pPrintSetup = (PPRINTSETUP) mp2; WinSetWindowPtr(hwnd, QWL_USER, pPrintSetup); if (pPrintSetup->ulOutput & OUTPUT_AREA) WinCheckButton(hwnd, IDD_PS_OUTPUT+2, TRUE); if (pPrintSetup->ulOutput & OUTPUT_DATE) WinCheckButton(hwnd, IDD_PS_OUTPUT+3, TRUE); if (pPrintSetup->ulOutput & OUTPUT_ATTRIB) WinCheckButton(hwnd, IDD_PS_OUTPUT+4, TRUE); if (pPrintSetup->ulOutput & OUTPUT_PAGENUM) WinCheckButton(hwnd, IDD_PS_OUTPUT+5, TRUE); break; case WM_COMMAND: return (MRESULT) FALSE; case WM_DESTROY: ulTemp = 0; if (WinQueryButtonCheckstate(hwnd, IDD_PS_OUTPUT+2)) ulTemp |= OUTPUT_AREA; if (WinQueryButtonCheckstate(hwnd, IDD_PS_OUTPUT+3)) ulTemp |= OUTPUT_DATE; if (WinQueryButtonCheckstate(hwnd, IDD_PS_OUTPUT+4)) ulTemp |= OUTPUT_ATTRIB; if (WinQueryButtonCheckstate(hwnd, IDD_PS_OUTPUT+5)) ulTemp |= OUTPUT_PAGENUM; if (pPrintSetup->ulOutput != ulTemp) { pPrintSetup->ulOutput = ulTemp; pPrintSetup->bDirty = TRUE; } break; default: break; } return WinDefDlgProc(hwnd, msg, mp1, mp2); }
static VOID MouseOptSetMptrMove2FocusDep(HWND hwnd, BOOL flag) { WinEnableControl(hwnd, TXT_MMTFSTEPS, flag); WinEnableControl(hwnd, SPIN_MMTFSTEPS, flag); WinEnableControl(hwnd, CHK_MMTFWINCREATE, flag); WinEnableControl(hwnd, CHK_MMTFWINDLG, flag); WinEnableControl(hwnd, CHK_MMTFXCLDLGNOBTN, flag && WinQueryButtonCheckstate(hwnd, CHK_MMTFWINDLG)); }
VOID MainWinControl(HWND hwnd, ULONG idCtl, ULONG ulEvent) { if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { switch (idCtl) { case CHK_MWUSESMWFONT: // check box "Use Smart Windows Font" p->po->dlg.font = p->ocur.dlg.font = WinQueryButtonCheckstate(hwnd, CHK_MWUSESMWFONT); EnableToolbarUndoBtn(1); MainWinSetMainDep(hwnd, p->po); break; case CHK_MWOVERRDPPS: // check box "Override PresParms" p->po->dlg.ovrPP = p->ocur.dlg.ovrPP = WinQueryButtonCheckstate(hwnd, CHK_MWOVERRDPPS); WinEnableControl(hwnd, CHK_MWIGNOREPP, p->po->dlg.font && p->po->dlg.ovrPP); EnableToolbarUndoBtn(1); break; } // end switch _stlrMsgPostAll(STLR_SETFRAMEFONT, 0); } // end if }
MRESULT EXPENTRY SelDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { static PPREF_SEL psel; switch (msg) { case WM_INITDLG: psel = (PPREF_SEL)PVOIDFROMMP(mp2); InitSelectionPage(hwnd, psel); break; case WM_CONTROL: if (SHORT1FROMMP(mp1) == CBOX_EXT_SEL && SHORT2FROMMP(mp1) == BN_CLICKED) { WinEnableControl(hwnd, CBOX_SEL_ALL_INDIR, WinQueryButtonCheckstate(hwnd, CBOX_EXT_SEL)); } else if (SHORT1FROMMP(mp1) == CBOX_FILE_WIN && SHORT2FROMMP(mp1) == BN_CLICKED) { WinEnableControl(hwnd, CBOX_ONLY_DIR, WinQueryButtonCheckstate(hwnd, CBOX_FILE_WIN)); } /* endif */ break; case WM_COMMAND: switch (LOUSHORT(mp1)) { case BTTN_UNDO: InitSelectionPage(hwnd, psel); break; case BTTN_DEFAULT: SetSelectionDefault(hwnd); break; default: break; } /* endswitch */ break; default: return WinDefDlgProc(hwnd, msg, mp1, mp2); break; } /* endswitch */ return (MRESULT) FALSE; }
MRESULT EXPENTRY GenDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { static PPREF_GEN pgen; switch (msg) { case WM_INITDLG: pgen = (PPREF_GEN)PVOIDFROMMP(mp2); InitGeneralPage(hwnd, pgen); break; case WM_CONTROL: if (SHORT1FROMMP(mp1) == CBOX_DEF_LEN && SHORT2FROMMP(mp1) == BN_CLICKED) WinEnableControl(hwnd, SPIN_SUBJ_LEN, !WinQueryButtonCheckstate(hwnd, CBOX_DEF_LEN)); break; case WM_COMMAND: switch (LOUSHORT(mp1)) { case BTN_FONT: { char achFont[FACESIZE]; // buffer usato per i dati del nuovo font if (ShowFontDlg(hwnd, achFont)) WinSetDlgItemText(hwnd, TXT_FONT, achFont); } break; case BTTN_UNDO: InitGeneralPage(hwnd, pgen); break; case BTTN_DEFAULT: SetGeneralDefault(hwnd, pgen); break; default: break; } /* endswitch */ break; default: return WinDefDlgProc(hwnd, msg, mp1, mp2); break; } /* endswitch */ return (MRESULT) FALSE; }
//========================================================================== // processa il messaggio WM_CONTROL // - se cambiato stato checkbox Enable abilita/disabilita altri controlli // parametri: // HWND hwnd: handle dialogo // ULONG idCtl: identit… controllo // ULONG ulEvent: identit… evento // valore restituito: // VOID //========================================================================== static VOID MouseOptControl(HWND hwnd, ULONG idCtl, ULONG ulEvent) { switch (idCtl) { // opzioni autofocus case CHK_MAUTFOCUS: // enable autofocus if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.focusAuto = p->ocur.mou.focusAuto = WinQueryButtonCheckstate(hwnd, CHK_MAUTFOCUS); MouseOptSetAutofocusDep(hwnd, p->ocur.mou.focusAuto); EnableToolbarUndoBtn(1); } // end if break; case SPIN_MAUTFOCUS: // delay autofocus if (ulEvent == SPBN_CHANGE) { LONG l; WinSendDlgItemMsg(hwnd, idCtl, SPBM_QUERYVALUE, (MPARAM)&l, MPFROM2SHORT(0, SPBQ_ALWAYSUPDATE)); if ((l *= 10) != p->ocur.mou.focusDelay) { p->ocur.mou.focusDelay = l; EnableToolbarUndoBtn(1); } /* endif */ } else if (ulEvent == SPBN_KILLFOCUS) { p->po->mou.focusDelay = p->ocur.mou.focusDelay; } /* endif */ break; case CHK_MAFIGNDESK: // ignore desktop if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.focusNoDesk = p->ocur.mou.focusNoDesk = WinQueryButtonCheckstate(hwnd, CHK_MAFIGNDESK); EnableToolbarUndoBtn(1); } // end if break; case CHK_MAFNOTOP: // don't bring to top if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.focusNoTop = p->ocur.mou.focusNoTop = WinQueryButtonCheckstate(hwnd, CHK_MAFNOTOP); EnableToolbarUndoBtn(1); } // end if break; case CHK_MAFIGNNEW: // ignore new windows if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.focusNoNew = p->ocur.mou.focusNoNew = WinQueryButtonCheckstate(hwnd, CHK_MAFIGNNEW); EnableToolbarUndoBtn(1); } // end if break; // opzioni pointer hiding case CHK_MPTRHIDE: // abilita pointer hiding if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.hide = p->ocur.mou.hide = WinQueryButtonCheckstate(hwnd, CHK_MPTRHIDE); MouseOptSetMptrHideDep(hwnd, p->ocur.mou.hide); EnableToolbarUndoBtn(1); } // end if break; case SPIN_MPTRHIDE: // ritardo pointer hiding if (ulEvent == SPBN_CHANGE) { LONG l; WinSendDlgItemMsg(hwnd, idCtl, SPBM_QUERYVALUE, (MPARAM)&l, MPFROM2SHORT(0, SPBQ_ALWAYSUPDATE)); if ((l *= 100) != p->ocur.mou.hideDelay) { p->ocur.mou.hideDelay = l; EnableToolbarUndoBtn(1); } /* endif */ } else if (ulEvent == SPBN_KILLFOCUS) { p->po->mou.hideDelay = p->ocur.mou.hideDelay; } /* endif */ break; case CHK_MPHXCLBTN: // exclude buttons if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.hideNotOnBtn = p->ocur.mou.hideNotOnBtn = WinQueryButtonCheckstate(hwnd, CHK_MPHXCLBTN); EnableToolbarUndoBtn(1); } // end if break; case CHK_MPHXCLMENU: // exclude menu if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.hideNotOnMenu = p->ocur.mou.hideNotOnMenu = WinQueryButtonCheckstate(hwnd, CHK_MPHXCLMENU); EnableToolbarUndoBtn(1); } // end if break; // opzione remap tasto 3 case CHK_MBTN3MAP: if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.btn3dblClk = p->ocur.mou.btn3dblClk = WinQueryButtonCheckstate(hwnd, CHK_MBTN3MAP); WinEnableControl(hwnd, CHK_MBTN3TBAR, p->ocur.mou.btn3dblClk && p->is.mou3btns); EnableToolbarUndoBtn(1); } // end if break; // opzione include titlebar case CHK_MBTN3TBAR: if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.btn3title = p->ocur.mou.btn3title = WinQueryButtonCheckstate(hwnd, CHK_MBTN3TBAR); EnableToolbarUndoBtn(1); } // end if break; // opzione move pointer to focus window case CHK_MMOVETOFOCUS: // move the pointer to the focus window if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.moveToFocus = p->ocur.mou.moveToFocus = WinQueryButtonCheckstate(hwnd, CHK_MMOVETOFOCUS); MouseOptSetMptrMove2FocusDep(hwnd, p->ocur.mou.moveToFocus); EnableToolbarUndoBtn(1); } // end if break; case SPIN_MMTFSTEPS: // ritardo pointer hiding if (ulEvent == SPBN_CHANGE) { LONG l; WinSendDlgItemMsg(hwnd, idCtl, SPBM_QUERYVALUE, (MPARAM)&l, MPFROM2SHORT(0, SPBQ_ALWAYSUPDATE)); if ((l) != p->ocur.mou.moveSteps) { p->ocur.mou.moveSteps = l; EnableToolbarUndoBtn(1); } /* endif */ } else if (ulEvent == SPBN_KILLFOCUS) { p->po->mou.moveSteps = p->ocur.mou.moveSteps; } /* endif */ break; case CHK_MMTFWINCREATE: // check box if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.moveToNew = p->ocur.mou.moveToNew = WinQueryButtonCheckstate(hwnd, CHK_MMTFWINCREATE); EnableToolbarUndoBtn(1); } // end if break; case CHK_MMTFWINDLG: if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.moveToDlg = p->ocur.mou.moveToDlg = WinQueryButtonCheckstate(hwnd, CHK_MMTFWINDLG); WinEnableControl(hwnd, CHK_MMTFXCLDLGNOBTN, p->ocur.mou.moveToDlg); EnableToolbarUndoBtn(1); } // end if break; case CHK_MMTFXCLDLGNOBTN: // check box if (ulEvent == BN_CLICKED || ulEvent == BN_DBLCLICKED) { p->po->mou.moveNotBtnles = p->ocur.mou.moveNotBtnles = WinQueryButtonCheckstate(hwnd, CHK_MMTFXCLDLGNOBTN); EnableToolbarUndoBtn(1); } // end if break; } /* endswitch */ }
//A Dlg procedure if the plugin has selectable settings. MRESULT EXPENTRY CBZPluginSetupDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { short sControlId; PLUGINSHARE *pPluginData; FILEDLG filedlg; HWND hwndDlg; static char chrBmpPath[CCHMAXPATH]={0}; switch (msg) { case WM_INITDLG: { if ((pPluginData = (PLUGINSHARE *) mp2) == NULL) { //Error msg.. WinDismissDlg(hwnd, DID_ERROR); return (MRFROMLONG(FALSE)); } WinSetWindowPtr(hwnd, QWL_USER, pPluginData); // store window words WinSendMsg(WinWindowFromID(hwnd, STID_ACTIVEIMAGE), EM_SETTEXTLIMIT, (MPARAM) CCHMAXPATH, (MPARAM) 0); WinSendMsg(WinWindowFromID(hwnd, STID_ACTIVEIMAGEMASK), EM_SETTEXTLIMIT, (MPARAM) CCHMAXPATH, (MPARAM) 0); WinSendMsg(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGE), EM_SETTEXTLIMIT, (MPARAM) CCHMAXPATH, (MPARAM) 0); WinSendMsg(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGEMASK), EM_SETTEXTLIMIT, (MPARAM) CCHMAXPATH, (MPARAM) 0); WinSetWindowText(WinWindowFromID(hwnd, STID_ACTIVEIMAGE), pPluginData->szActiveFile); WinSetWindowText(WinWindowFromID(hwnd, STID_ACTIVEIMAGEMASK), pPluginData->szActiveFileMask); WinSetWindowText(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGE), pPluginData->szSelectedActiveFile); WinSetWindowText(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGEMASK), pPluginData->szSelectedActiveFileMask); WinSendMsg(WinWindowFromID(hwnd, STID_INACTIVEIMAGE), EM_SETTEXTLIMIT, (MPARAM) CCHMAXPATH, (MPARAM) 0); WinSendMsg(WinWindowFromID(hwnd, STID_INACTIVEIMAGEMASK), EM_SETTEXTLIMIT, (MPARAM) CCHMAXPATH, (MPARAM) 0); WinSendMsg(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGE), EM_SETTEXTLIMIT, (MPARAM) CCHMAXPATH, (MPARAM) 0); WinSendMsg(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGEMASK), EM_SETTEXTLIMIT, (MPARAM) CCHMAXPATH, (MPARAM) 0); WinSetWindowText(WinWindowFromID(hwnd, STID_INACTIVEIMAGE), pPluginData->szInactiveFile); WinSetWindowText(WinWindowFromID(hwnd, STID_INACTIVEIMAGEMASK), pPluginData->szInactiveFileMask); WinSetWindowText(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGE), pPluginData->szSelectedInactiveFile); WinSetWindowText(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGEMASK), pPluginData->szSelectedInactiveFileMask); if (pPluginData->bActiveEnabled) { WinCheckButton(hwnd, CBID_ACTIVEENABLED, TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_ACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_ACTIVEIMAGEMASK), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEACTIVEIMAGEMASK), TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGEMASK), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDACTIVEIMAGEMASK), TRUE); } else { WinCheckButton(hwnd, CBID_ACTIVEENABLED, FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_ACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_ACTIVEIMAGEMASK), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEACTIVEIMAGEMASK), FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGEMASK), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDACTIVEIMAGEMASK), FALSE); } if (pPluginData->bInactiveEnabled) { WinCheckButton(hwnd, CBID_INACTIVEENABLED, TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_INACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_INACTIVEIMAGEMASK), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEINACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEINACTIVEIMAGEMASK), TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGEMASK), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDINACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDINACTIVEIMAGE), TRUE); } else { WinCheckButton(hwnd, CBID_INACTIVEENABLED, FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_INACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_INACTIVEIMAGEMASK), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEINACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEINACTIVEIMAGEMASK), FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGEMASK), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDINACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDINACTIVEIMAGEMASK), FALSE); } } break; case WM_COMMAND: { sControlId = COMMANDMSG(&msg)->cmd; switch (sControlId) { case PBID_CHANGEACTIVEIMAGE: case PBID_CHANGEACTIVEIMAGEMASK: case PBID_CHANGEINACTIVEIMAGE: case PBID_CHANGEINACTIVEIMAGEMASK: case PBID_CHANGESELECTEDACTIVEIMAGE: case PBID_CHANGESELECTEDACTIVEIMAGEMASK: case PBID_CHANGESELECTEDINACTIVEIMAGE: case PBID_CHANGESELECTEDINACTIVEIMAGEMASK: { //popup file change dialog! memset(&filedlg, 0, sizeof(FILEDLG)); // init filedlg struct filedlg.cbSize = sizeof(FILEDLG); filedlg.fl = FDS_OPEN_DIALOG; filedlg.pszTitle = "Choose an image"; if(strlen(chrBmpPath)) strcpy(filedlg.szFullFile, chrBmpPath); else strcpy(filedlg.szFullFile, "*.*"); if ((hwndDlg = WinFileDlg(HWND_DESKTOP, hwnd, &filedlg)) == NULLHANDLE) { return (FALSE); } if (filedlg.lReturn != DID_OK) // selected one { break; } if (sControlId == PBID_CHANGEACTIVEIMAGE) { WinSetWindowText(WinWindowFromID(hwnd, STID_ACTIVEIMAGE), filedlg.szFullFile); } else if (sControlId == PBID_CHANGEACTIVEIMAGEMASK) { WinSetWindowText(WinWindowFromID(hwnd, STID_ACTIVEIMAGEMASK), filedlg.szFullFile); } else if (sControlId == PBID_CHANGEINACTIVEIMAGE) { WinSetWindowText(WinWindowFromID(hwnd, STID_INACTIVEIMAGE), filedlg.szFullFile); } else if (sControlId == PBID_CHANGEINACTIVEIMAGEMASK) { WinSetWindowText(WinWindowFromID(hwnd, STID_INACTIVEIMAGEMASK), filedlg.szFullFile); } else if (sControlId == PBID_CHANGESELECTEDACTIVEIMAGE) { WinSetWindowText(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGE), filedlg.szFullFile); } else if (sControlId == PBID_CHANGESELECTEDACTIVEIMAGEMASK) { WinSetWindowText(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGEMASK), filedlg.szFullFile); } else if (sControlId == PBID_CHANGESELECTEDINACTIVEIMAGE) { WinSetWindowText(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGE), filedlg.szFullFile); } else if (sControlId == PBID_CHANGESELECTEDINACTIVEIMAGEMASK) { WinSetWindowText(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGEMASK), filedlg.szFullFile); } strcpy(chrBmpPath,filedlg.szFullFile); } break; case PBID_OK: { if ((pPluginData = (PLUGINSHARE *) WinQueryWindowPtr(hwnd, QWL_USER)) == NULL) { //error message.. break; } WinQueryWindowText(WinWindowFromID(hwnd, STID_ACTIVEIMAGE), CCHMAXPATH, pPluginData->szActiveFile); WinQueryWindowText(WinWindowFromID(hwnd, STID_ACTIVEIMAGEMASK), CCHMAXPATH, pPluginData->szActiveFileMask); WinQueryWindowText(WinWindowFromID(hwnd, STID_INACTIVEIMAGE), CCHMAXPATH, pPluginData->szInactiveFile); WinQueryWindowText(WinWindowFromID(hwnd, STID_INACTIVEIMAGEMASK), CCHMAXPATH, pPluginData->szInactiveFileMask); WinQueryWindowText(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGE), CCHMAXPATH, pPluginData->szSelectedActiveFile); WinQueryWindowText(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGEMASK), CCHMAXPATH, pPluginData->szSelectedActiveFileMask); WinQueryWindowText(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGE), CCHMAXPATH, pPluginData->szSelectedInactiveFile); WinQueryWindowText(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGEMASK), CCHMAXPATH, pPluginData->szSelectedInactiveFileMask); if ( WinQueryButtonCheckstate(hwnd, CBID_ACTIVEENABLED) ) pPluginData->bActiveEnabled = TRUE; else pPluginData->bActiveEnabled = FALSE; if ( WinQueryButtonCheckstate(hwnd, CBID_INACTIVEENABLED) ) pPluginData->bInactiveEnabled = TRUE; else pPluginData->bInactiveEnabled = FALSE; //update! WinDismissDlg(hwnd, PBID_OK); } break; case PBID_CANCEL: { //don't update shared Memory! WinDismissDlg(hwnd, PBID_CANCEL); } break; } return ((MPARAM) 0); } break; case WM_CONTROL: { switch (SHORT1FROMMP(mp1)) { case CBID_ACTIVEENABLED: { // if Enabled if (!WinQueryButtonCheckstate(hwnd, CBID_ACTIVEENABLED)) { // check button WinCheckButton(hwnd, CBID_ACTIVEENABLED, TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_ACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_ACTIVEIMAGEMASK), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEACTIVEIMAGEMASK), TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGEMASK), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDACTIVEIMAGEMASK), TRUE); } else { // uncheck button WinCheckButton(hwnd, CBID_ACTIVEENABLED, FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_ACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_ACTIVEIMAGEMASK), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEACTIVEIMAGEMASK), FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDACTIVEIMAGEMASK), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDACTIVEIMAGEMASK), FALSE); } } break; case CBID_INACTIVEENABLED: { // if Enabled if (!WinQueryButtonCheckstate(hwnd, CBID_INACTIVEENABLED)) { // check button WinCheckButton(hwnd, CBID_INACTIVEENABLED, TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_INACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_INACTIVEIMAGEMASK), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEINACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEINACTIVEIMAGEMASK), TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGEMASK), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDINACTIVEIMAGE), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDINACTIVEIMAGEMASK), TRUE); } else { // uncheck button WinCheckButton(hwnd, CBID_INACTIVEENABLED, FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_INACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_INACTIVEIMAGEMASK), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEINACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGEINACTIVEIMAGEMASK), FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, STID_SELECTEDINACTIVEIMAGEMASK), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDINACTIVEIMAGE), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_CHANGESELECTEDINACTIVEIMAGEMASK), FALSE); } } break; } return ((MRESULT) 0); } break; } return (WinDefDlgProc(hwnd, msg, mp1, mp2)); }
static MRESULT EXPENTRY pm_joystick(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { switch (msg) { case WM_INITDLG: { int joy1, joy2; // // disable controls of non existing joysticks // remark: I think this cannot change while runtime // if (!(number_joysticks & JOYDEV_HW1)) { WinEnableControl(hwnd, CB_JOY11, 0); WinEnableControl(hwnd, CB_JOY12, 0); } if (!(number_joysticks&JOYDEV_HW2)) { WinEnableControl(hwnd, CB_JOY21, 0); WinEnableControl(hwnd, CB_JOY22, 0); } if (number_joysticks == 0) { WinEnableControl(hwnd, ID_CALIBRATE, 0); } if (machine_class == VICE_MACHINE_VIC20) { WinEnableControl(hwnd, CB_JOY12, 0); WinEnableControl(hwnd, CB_JOY22, 0); WinEnableControl(hwnd, CB_NUMJOY2, 0); WinEnableControl(hwnd, CB_KS1JOY2, 0); WinEnableControl(hwnd, CB_KS2JOY2, 0); WinEnableControl(hwnd, ID_SWAP, 0); } resources_get_int("JoyDevice1", &joy1); resources_get_int("JoyDevice2", &joy2); WinSendMsg(hwnd, WM_SETCBS, (void*)joy1, (void*)joy2); } break; case WM_DESTROY: case WM_CLOSE: { if (WinIsWindowVisible(hwndCalibrate)) { WinSendMsg(hwndCalibrate, WM_CLOSE, 0, 0); } if (WinIsWindowVisible(hwndKeyset)) { WinSendMsg(hwndKeyset, WM_CLOSE, 0, 0); } } break; case WM_COMMAND: switch(LONGFROMMP(mp1)) { case DID_CLOSE: { if (WinIsWindowVisible(hwndCalibrate)) { WinSendMsg(hwndCalibrate, WM_CLOSE, 0, 0); } if (WinIsWindowVisible(hwndKeyset)) { WinSendMsg(hwndKeyset, WM_CLOSE, 0, 0); } } break; case ID_SWAP: { int joy1, joy2; resources_get_int("JoyDevice1", &joy1); resources_get_int("JoyDevice2", &joy2); resources_set_int("JoyDevice1", joy2); resources_set_int("JoyDevice2", joy1); WinSendMsg(hwnd, WM_SETCBS, (void*)joy2, (void*)joy1); } return FALSE; case ID_CALIBRATE: calibrate_dialog(hwnd); return FALSE; case ID_KEYSET: keyset_dialog(hwnd); return FALSE;; } break; case WM_CONTROL: { int button =SHORT1FROMMP(mp1); int state = WinQueryButtonCheckstate(hwnd, button); int port = button & JOY_PORT1; int joya, joyb; resources_get_int(port ? "JoyDevice1" : "JoyDevice2", &joya); resources_get_int(port ? "JoyDevice2" : "JoyDevice1", &joyb); if (state) { joya |= button & JOYDEV_ALL; } else { joya &= ~(button & JOYDEV_ALL); } resources_set_int(port ? "JoyDevice1" : "JoyDevice2", joya); WinSendMsg(hwnd, WM_SETDLGS, (void*)(port ? joya : joyb), (void*)(port ? joyb : joya)); } break; case WM_SETDLGS: { int joy1 = (int)mp1; int joy2 = (int)mp2; int joys = joy1 | joy2; if (WinIsWindowVisible(hwndCalibrate)) { WinSendMsg(hwndCalibrate, WM_SETJOY, (MPARAM)(joys & JOYDEV_HW1), (MPARAM)(joys & JOYDEV_HW2)); } if (WinIsWindowVisible(hwndKeyset)) { WinSendMsg(hwndKeyset, WM_SETKEY, (MPARAM)(joys&JOYDEV_KEYSET1), (MPARAM)(joys&JOYDEV_KEYSET2)); } } break; case WM_SETCBS: WinCheckButton(hwnd, CB_JOY11, (JOYDEV_HW1 & (int)mp1) ? 1 : 0); WinCheckButton(hwnd, CB_JOY12, (JOYDEV_HW1 & (int)mp2) ? 1 : 0); WinCheckButton(hwnd, CB_JOY21, (JOYDEV_HW2 & (int)mp1) ? 1 : 0); WinCheckButton(hwnd, CB_JOY22, (JOYDEV_HW2 & (int)mp2) ? 1 : 0); WinCheckButton(hwnd, CB_NUMJOY1, (JOYDEV_NUMPAD & (int)mp1) ? 1 : 0); WinCheckButton(hwnd, CB_NUMJOY2, (JOYDEV_NUMPAD & (int)mp2) ? 1 : 0); WinCheckButton(hwnd, CB_KS1JOY1, (JOYDEV_KEYSET1 & (int)mp1) ? 1 : 0); WinCheckButton(hwnd, CB_KS1JOY2, (JOYDEV_KEYSET1 & (int)mp2) ? 1 : 0); WinCheckButton(hwnd, CB_KS2JOY1, (JOYDEV_KEYSET2 & (int)mp1) ? 1 : 0); WinCheckButton(hwnd, CB_KS2JOY2, (JOYDEV_KEYSET2 & (int)mp2) ? 1 : 0); break; } return WinDefDlgProc (hwnd, msg, mp1, mp2); }
MRESULT EXPENTRY cdTypeOptionDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { CWDataFolder* thisPtr; ULONG ulFlags; LONG lSpinValue; static HWND hwndStatus; int a; char chrCD[4]; char text[CCHMAXPATH]; char title[CCHMAXPATH]; char text2[40]; ULONG rc; THISPTR thisPtrStruct; switch(msg) { case WM_INITDLG : WinSetWindowULong(hwnd, QWL_USER,(ULONG)PVOIDFROMMP(mp2));//Save object ptr. thisPtr=(CWDataFolder*)PVOIDFROMMP(mp2); if(somIsObj(thisPtr)) { ulFlags=((CWDataFolder*)PVOIDFROMMP(mp2))->cwQueryCDTypeFlags(); // enableCDTypeCntrls(hwnd,(CWDataFolder*)PVOIDFROMMP(mp2)); enableCDTypeCntrls(hwnd,ulFlags); /* if(ulFlags&IDCDT_FIXDISK) WinCheckButton(hwnd,IDCB_FIXDISK,1);*/ getMessage(title,IDSTRD_BOOTIMAGE,sizeof(title), hDataResource,hwnd); getMessage(text2,IDSTRD_BOOTIMAGENAME,sizeof(text2), hDataResource,hwnd); sprintf(text,title,text2); WinSetWindowText( WinWindowFromID(hwnd,IDST_BOOTIMAGE), text ); getMessage(title,IDSTRD_BOOTCATALOG,sizeof(title), hDataResource,hwnd); getMessage(text2,IDSTRD_BOOTCATALOGNAME,sizeof(text2), hDataResource,hwnd); sprintf(text,title,text2); WinSetWindowText( WinWindowFromID(hwnd,IDST_BOOTCATALOG), text ); } /* Move default buttons on Warp 4 */ cwMoveNotebookButtonsWarp4(hwnd, IDPB_CDTYPEHELP, 20); return (MRESULT) TRUE; /* This prevents switching the notebook page behind the open folder */ case WM_WINDOWPOSCHANGED: { MRESULT mr; if(WinQueryFocus(HWND_DESKTOP)!= WinQueryWindow(WinQueryWindow(hwnd, QW_PARENT), QW_PARENT)) { mp2=MPFROMLONG(LONGFROMMP(mp2)|0x80000);/*AWP_ACTIVATE 0x00080000L*/ mr=WinDefDlgProc(hwnd, msg, mp1, mp2); return mr; } break; } case WM_FOCUSCHANGE: { if(!SHORT1FROMMP(mp2)) { if(HWNDFROMMP(mp1)==hwnd) { MRESULT mr; mr=WinDefDlgProc(hwnd, msg, mp1, mp2); WinSendMsg(WinQueryWindow(WinQueryWindow(hwnd, QW_PARENT), QW_PARENT), WM_SETFOCUS, MPFROMHWND(hwnd), (MPARAM)TRUE); return mr; } } break; } #if 0 case WM_WINDOWPOSCHANGED: { /* This prevents switching the notebook page behind the open folder */ if(!(WinQueryWindowUShort(WinQueryWindow(hwnd, QW_PARENT), QWS_FLAGS) & FF_ACTIVE)) mp2=MPFROMLONG(0x80000); break; } #endif case WM_DESTROY: /* The notebook closes and gets destroyed */ /* Set focus to desktop to prevent PM freeze */ WinSetFocus(HWND_DESKTOP, HWND_DESKTOP); /* Let the WPS save the new instance data */ // thisPtr=(CWDataFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_CDTYPEUNDO),QWL_USER); thisPtr=(CWDataFolder*) WinQueryWindowULong(hwnd, QWL_USER); if(somIsObj(thisPtr)) { ulFlags=0; if(WinQueryButtonCheckstate(hwnd,IDRB_MULTISESSION)&1) { ulFlags|=IDCDT_MULTISESSION; } if(WinQueryButtonCheckstate(hwnd,IDRB_USERDEFINED)&1) ulFlags|=IDCDT_USERDEFINED; if(WinQueryButtonCheckstate(hwnd,IDRB_BOOTCD)&1) ulFlags|=IDCDT_BOOTCD; if(WinQueryButtonCheckstate(hwnd,IDRB_TRACKDATA)&1) ulFlags|=IDCDT_TRACKDATA; else if(WinQueryButtonCheckstate(hwnd,IDRB_TRACKMODE2)&1) ulFlags|=IDCDT_TRACKMODE2; else if(WinQueryButtonCheckstate(hwnd,IDRB_TRACKXA1)&1) ulFlags|=IDCDT_TRACKXA1; else if(WinQueryButtonCheckstate(hwnd,IDRB_TRACKXA2)&1) ulFlags|=IDCDT_TRACKXA2; else if(WinQueryButtonCheckstate(hwnd,IDRB_TRACKCDI)&1) ulFlags|=IDCDT_TRACKCDI; if(WinQueryButtonCheckstate(hwnd,IDCB_FIXDISK)&1) ulFlags|=IDCDT_FIXDISK; thisPtr->cwSetCDTypeFlags(ulFlags,CDT_ALLFLAGS); thisPtr->wpSaveImmediate(); } /* Setup is done */ bMultiSessionDone=TRUE; return (MRESULT) FALSE; case WM_CONTROL: // thisPtr=(CWDataFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_CDTYPEUNDO),QWL_USER); thisPtr=(CWDataFolder*) WinQueryWindowULong(hwnd,QWL_USER); if(!somIsObj(thisPtr)) return (MRESULT) TRUE; ulFlags=thisPtr->cwQueryCDTypeFlags();/* Get current flags */ ulFlags&=(IDCDT_ALLTRACKTYPES|IDCDT_FIXDISK);/* Keep the tracktype information */ switch(SHORT1FROMMP(mp1)) { case IDRB_SINGLESESSION: enableCDTypeCntrls(hwnd, ulFlags); break; case IDRB_MULTISESSION: ulFlags|=IDCDT_MULTISESSION; enableCDTypeCntrls(hwnd, ulFlags); break; case IDRB_BOOTCD: ulFlags|=IDCDT_BOOTCD; enableCDTypeCntrls(hwnd, ulFlags); break; case IDRB_USERDEFINED: ulFlags|=IDCDT_USERDEFINED; enableCDTypeCntrls(hwnd, ulFlags); break; #if 0 case IDRB_SINGLESESSION: _showMultiSessionCntrls(hwnd,FALSE); _showBootCDCntrls(hwnd, FALSE); _showTrackCntrls(hwnd, FALSE); _showSingleSessionCntrls(hwnd,TRUE); break; case IDRB_MULTISESSION: _showTrackCntrls(hwnd, FALSE); _showBootCDCntrls(hwnd, FALSE); _showMultiSessionCntrls(hwnd,TRUE); thisPtr->cwEnableMultiSessionCntrls(hwnd,FALSE); break; case IDRB_BOOTCD: _showTrackCntrls(hwnd, FALSE); _showMultiSessionCntrls(hwnd,FALSE); _showBootCDCntrls(hwnd, TRUE); break; case IDRB_USERDEFINED: _showMultiSessionCntrls(hwnd,FALSE); _showBootCDCntrls(hwnd, FALSE); _showTrackCntrls(hwnd, TRUE); break; #endif default: break; } break; case WM_COMMAND: switch(SHORT1FROMMP(mp1)) { case IDPB_BOOTCDCONFIGURE: //thisPtr=(CWDataFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_CDTYPEUNDO),QWL_USER); thisPtr=(CWDataFolder*) WinQueryWindowULong(hwnd,QWL_USER); if(!somIsObj(thisPtr)) return (MRESULT) TRUE; thisPtrStruct.usSize=sizeof(thisPtrStruct); thisPtrStruct.thisPtr=thisPtr; if( WinDlgBox( HWND_DESKTOP, NULLHANDLE, _bootCDOptionsDialogProc, hDataResource, IDDLG_BOOTCDOPTIONS, &thisPtrStruct) == DID_OK ) { getMessage(title,IDSTRD_BOOTIMAGE,sizeof(title), hDataResource,hwnd); sprintf(text,title,thisPtr->chrBootImage); WinSetWindowText( WinWindowFromID(hwnd,IDST_BOOTIMAGE), text ); getMessage(title,IDSTRD_BOOTCATALOG,sizeof(title), hDataResource,hwnd); sprintf(text,title,thisPtr->chrBootCatalog); WinSetWindowText( WinWindowFromID(hwnd,IDST_BOOTCATALOG), text ); } break; case IDPB_CDTYPEUNDO: // thisPtr=(CWDataFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_CDTYPEUNDO),QWL_USER); thisPtr=(CWDataFolder*) WinQueryWindowULong(hwnd,QWL_USER); /* User pressed the UNDO button */ if(somIsObj(thisPtr)) { //ulFlags=thisPtr->cwQueryCDTypeFlags(); /* Enable all multisesson controls */ // thisPtr->cwEnableMultiSessionCntrls(hwnd,TRUE); // enableCDTypeCntrls(hwnd,thisPtr); enableCDTypeCntrls(hwnd, thisPtr->cwQueryCDTypeFlags()); /* if(ulFlags&IDCDT_FIXDISK) WinCheckButton(hwnd,IDCB_FIXDISK,1); else WinCheckButton(hwnd,IDCB_FIXDISK,0);*/ } break; default: break; } return (MRESULT) TRUE; default: break; } return WinDefDlgProc(hwnd, msg, mp1, mp2); }
void DumpDlgInfo( HWND hwndDlg ) { char szToUl[ 50 ]; int i; SHORT sItemIndex; HWND hwndLB; WinQueryDlgItemText( hwndDlg, CB_OPERATION, sizeof szToUl, szToUl ); for( i = 0; i < cOperations; i++ ) if( strcmp( szToUl, dcOperation[ i ].szItem ) == 0 ) { dlgInfo.usOperation = dcOperation[ i ].iItem; break; } if( i == cOperations ) dlgInfo.usOperation = atol( szToUl ); hwndLB = WinWindowFromID( hwndDlg, LB_CONTROL ); dlgInfo.fsControl = 0; sItemIndex = LIT_FIRST; do { sItemIndex = SHORT1FROMMR( WinSendMsg( hwndLB, LM_QUERYSELECTION, MPFROMSHORT( sItemIndex ), NULL ) ); if( sItemIndex != LIT_NONE ) dlgInfo.fsControl |= dcControl[ sItemIndex ].iItem; } while( sItemIndex != LIT_NONE ); hwndLB = WinWindowFromID( hwndDlg, LB_SUPPORTEDOPS ); dlgInfo.fsSupportedOps = 0; sItemIndex = LIT_FIRST; do { sItemIndex = SHORT1FROMMR( WinSendMsg( hwndLB, LM_QUERYSELECTION, MPFROMSHORT( sItemIndex ), NULL ) ); if( sItemIndex != LIT_NONE ) dlgInfo.fsSupportedOps |= dcSupportedOp[ sItemIndex ].iItem; } while( sItemIndex != LIT_NONE ); WinQueryDlgItemText( hwndDlg, EF_ITEMID, sizeof szToUl, szToUl ); dlgInfo.ulItemID = atol( szToUl ); WinQueryDlgItemText( hwndDlg, CB_TYPE, sizeof dlgInfo.szType, dlgInfo.szType ); for( i = 0; i < cTypes; i++ ) { if( !stricmp( ntsType[ i ].szName, dlgInfo.szType ) ) strcpy( dlgInfo.szType, ntsType[ i ].szString ); } WinQueryDlgItemText( hwndDlg, EF_CNR_NAME, sizeof dlgInfo.szContainerName, dlgInfo.szContainerName ); WinQueryDlgItemText( hwndDlg, EF_SOURCE_NAME, sizeof dlgInfo.szSourceName, dlgInfo.szSourceName ); WinQueryDlgItemText( hwndDlg, EF_TARGET_NAME, sizeof dlgInfo.szTargetName, dlgInfo.szTargetName ); dlgInfo.fUseDlgItemID = WinQueryButtonCheckstate( hwndDlg,CHK_OVERRIDE_ID ); dlgInfo.fUseDlgDragNames = WinQueryButtonCheckstate( hwndDlg, CHK_OVERRIDE_HSTRS ); }
MRESULT EXPENTRY ViceFileDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { switch (msg) { case WM_INITDLG: { FILEDLG *fdlg = (FILEDLG*)WinQueryWindowPtr(hwnd, QWL_USER); int i; char *szpath; const int action = fdlg->ulUser; const int nact = (action >> 8) & 0xff; const int nsact = (action) & 0xff; FillABox(hwnd, action ? nact - 1 : 0); FillSBox(hwnd, action ? nsact - 1 : 0); FillFBox(hwnd); NewFilter(hwnd); for (i = 0; i < numfonts; i++) { WinDlgLboxInsertItem(hwnd, DID_FONTNAME_LB, fnames[i]); } WinDlgLboxSelectItem(hwnd, DID_FONTNAME_LB, 0); if (action) { WinEnableControl(hwnd, DID_ACTION_CB, FALSE); WinEnableControl(hwnd, DID_SUBACTION_CB, FALSE); } if (action || fdlg->fl & FDS_SAVEAS_DIALOG) { WinEnableControl(hwnd, DID_AUTOSTART_PB, FALSE); } szpath = util_concat(fdlg->pszIDrive, fdlg->szFullFile, NULL); *(strrchr(szpath, '\\') + 1) = '\0'; WinSetDlgItemText(hwnd, DID_DIR_SELECTED, szpath); lib_free(szpath); szpath = util_concat(archdep_boot_path(), "\\vice2.dll", NULL); if (!GpiLoadFonts(WinQueryAnchorBlock(hwnd), szpath)) { log_debug("dlg-fileio.c: GpiLoadFonts('%s') failed.", szpath); WinEnableControl(hwnd, DID_FONTNAME_LB, FALSE); } lib_free(szpath); } return FALSE; case WM_DESTROY: { char *szpath = util_concat(archdep_boot_path(), "\\vice2.dll", NULL); LboxFreeContents(WinWindowFromID(hwnd, DID_CONTENTS_LB)); if (!GpiUnloadFonts(WinQueryAnchorBlock(hwnd), szpath)) { log_debug("dlg-fileio.c: GpiUnloadFonts('%s') failed.", szpath); } lib_free (szpath); } break; case WM_CONTROL: switch (SHORT1FROMMP(mp1)) { case DID_ACTION_CB: if (SHORT2FROMMP(mp1) == CBN_ENTER) { FillSBox(hwnd, 0); } case DID_SUBACTION_CB: if (SHORT2FROMMP(mp1) == CBN_ENTER) { FillFBox(hwnd); } case DID_FFILTER_CB: if (SHORT2FROMMP(mp1) == CBN_ENTER) { NewFilter(hwnd); } return FALSE; case DID_DIRECTORY_LB: WinDefFileDlgProc(hwnd, msg, mp1, mp2); if (SHORT2FROMMP(mp1) == LN_SELECT || SHORT2FROMMP(mp1) == LN_ENTER) { char szpath[CCHMAXPATH]; const int nr = WinQueryLboxSelectedItem((HWND)mp2); if (nr < 0) { return FALSE; } if (SHORT2FROMMP(mp1) == LN_SELECT && WinQueryFocus(HWND_DESKTOP) == (HWND)mp2) { return FALSE; } if (!GetLboxPath((HWND)mp2, nr, szpath)) { return FALSE; } WinSetDlgItemText(hwnd, DID_DIR_SELECTED, szpath); } return FALSE; case DID_FILENAME_ED: if (WinQueryButtonCheckstate(hwnd, DID_CONTENTS_CB) && SHORT2FROMMP(mp1) == EN_CHANGE) { char szpath[CCHMAXPATH]; if (GetFullFile(hwnd, szpath)) { ShowContents(hwnd, szpath); } } break; case DID_CONTENTS_CB: { const int state = WinQueryButtonCheckstate(hwnd, DID_CONTENTS_CB); WinEnableControl(hwnd, DID_CONTENTS_LB, state); WinEnableControl(hwnd, DID_FONTNAME_LB, state); if (state) { ContentsUpdate(hwnd); } else { LboxFreeContents(WinWindowFromID(hwnd, DID_CONTENTS_LB)); } } return FALSE; case DID_FONTNAME_LB: if (SHORT2FROMMP(mp1) != CBN_ENTER) { break; } ContentsUpdate(hwnd); return FALSE; } break; case WM_COMMAND: switch (SHORT1FROMMP(mp1)) { case DID_DIRUP: { const HWND name = WinWindowFromID(hwnd, DID_FILENAME_ED); const int pos = WinDlgLboxSelectedItem(hwnd, DID_DIRECTORY_LB); char szpath[CCHMAXPATH]; char *cpos; int len; if (!pos) { return FALSE; } WinQueryDlgItemText(hwnd, DID_DIR_SELECTED, CCHMAXPATH - 1, szpath); if (strlen(szpath) < 4) { return FALSE; } *strrchr(szpath, '\\') = '\0'; cpos = strrchr(szpath,'\\') + 1; len = cpos - szpath + 2; if (len == CCHMAXPATH - 1) { return FALSE; } WinQueryDlgItemText(hwnd, DID_FILENAME_ED, CCHMAXPATH - len - 1, cpos); WinSetWindowText(name, szpath); *cpos = '\0'; WinSetDlgItemText(hwnd, DID_DIR_SELECTED, szpath); // // set focus to entry field and simulate an Apply // WinSetFocus(HWND_DESKTOP, name); WinDefFileDlgProc(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPFROM2SHORT(CMDSRC_PUSHBUTTON, TRUE)); } return FALSE; case DID_AUTOSTART_PB: { const int pos = WinDlgLboxSelectedItem(hwnd, DID_CONTENTS_LB); FILEDLG *fdlg = (FILEDLG*)WinQueryWindowPtr(hwnd, QWL_USER); size_t length; char szpath[CCHMAXPATH]; if (!GetFullFile(hwnd, szpath)) { return FALSE; } if (autostart_autodetect(szpath, NULL, pos < 0 ? 0 : pos, AUTOSTART_MODE_RUN)) { return FALSE; } length = strrchr(szpath, '\\') - szpath; fdlg->lReturn = DID_OK; if (length > 0) { fdlg->szFullFile[length] = 0; } } break; } break; case WM_MEASUREITEM: if (SHORT1FROMMP(mp1) == DID_CONTENTS_LB) { return MRFROM2SHORT(9, 9); } break; case WM_DRAWITEM: if (SHORT1FROMMP(mp1) == DID_CONTENTS_LB) { OWNERITEM *item = (OWNERITEM*)mp2; RECTL *rcl = &(item->rclItem); if (rcl->yTop-rcl->yBottom == 9) { image_contents_screencode_t *line = (image_contents_screencode_t *)WinLboxItemHandle(item->hwnd, item->idItem); if (line) { LboxDrawLine(hwnd, item, rcl, line); } item->fsState = item->fsStateOld = 0; } return (MRESULT)TRUE; } break; case FDM_VALIDATE: // mp1 = PSZ pszPathName // mp2 = USHORT Field name id // mr = TRUE -> Valid name { const int sact = WinDlgLboxSelectedItem(hwnd, DID_SUBACTION_CB); const int act = WinDlgLboxSelectedItem(hwnd, DID_ACTION_CB); const FILEDLG *fdlg = (FILEDLG*)WinQueryWindowPtr(hwnd, QWL_USER); char *szpath = (char*)mp1; int rc; char *slash; if (fdlg->fl & FDS_OPEN_DIALOG) { rc = FdmDoLoadAction(hwnd, szpath, act, sact); } else { rc = FdmDoSaveAction(hwnd, szpath, act, sact); } if (rc < 0) { const action_t *action = fdlg->fl & FDS_OPEN_DIALOG ? LoadAction : SaveAction; char *txt = util_concat("The following action couldn't be performed:\n", action[act].type, " ", action[act].subact[sact].action, NULL); HPOINTER hpt = WinLoadPointer(HWND_DESKTOP, NULLHANDLE, 0x101); #ifdef WATCOM_COMPILE struct _MB2D mbtemp; struct _MB2INFO mb; mb.cb = sizeof(MB2INFO); mb.hIcon = hpt; mb.cButtons = 1; mb.flStyle = MB_CUSTOMICON|WS_VISIBLE; mb.hwndNotify = NULLHANDLE; sprintf(mbtemp.achText," OK "); mbtemp.idButton = 0; mbtemp.flStyle = BS_DEFAULT; mb.mb2d[0] = mbtemp; #else MB2INFO mb = { sizeof(MB2INFO), hpt, 1, MB_CUSTOMICON | WS_VISIBLE, NULLHANDLE, " OK ", 0, BS_DEFAULT}; #endif WinMessageBox2(HWND_DESKTOP, hwnd, txt, "VICE/2 Error", 0, &mb); lib_free(txt); return FALSE; } // // FIXME! Better solution? // slash = strrchr(szpath, '\\'); if (slash) { *slash = '\0'; } chdir(szpath); } return (MRESULT)TRUE; } return WinDefFileDlgProc(hwnd, msg, mp1, mp2); }
static MRESULT EXPENTRY AreaMsgBaseProc(HWND parent, ULONG message, MPARAM mp1, MPARAM mp2) { extern AREALIST arealiste; extern HWND hwndhelp; static AREADEFLIST *pArea=NULL; char pchTemp[LEN_PATHNAME+1]; SHORT sTemp; switch(message) { case WM_INITDLG: pArea=((AREAPAR *)mp2)->pAreaDef; WinSubclassWindow(WinWindowFromID(parent, IDD_AS_MSGBASE+9), FileEntryProc); WinSendDlgItemMsg(parent, IDD_AS_MSGBASE+9, EM_SETTEXTLIMIT, MPFROMSHORT(LEN_PATHNAME), (MPARAM) NULL); if (pArea) { WinSetDlgItemText(parent, IDD_AS_MSGBASE+9, pArea->areadata.pathfile); switch(pArea->areadata.areaformat) { case AREAFORMAT_FTS: WinCheckButton(parent, IDD_AS_MSGBASE+2, TRUE); break; case AREAFORMAT_SQUISH: WinCheckButton(parent, IDD_AS_MSGBASE+3, TRUE); break; case AREAFORMAT_JAM: WinCheckButton(parent, IDD_AS_MSGBASE+4, TRUE); break; default: WinCheckButton(parent, IDD_AS_MSGBASE+2, TRUE); break; } switch(pArea->areadata.areatype) { case AREATYPE_NET: WinCheckButton(parent, IDD_AS_MSGBASE+6, TRUE); break; case AREATYPE_ECHO: WinCheckButton(parent, IDD_AS_MSGBASE+7, TRUE); break; case AREATYPE_LOCAL: WinCheckButton(parent, IDD_AS_MSGBASE+12, TRUE); break; } if (pArea->areadata.ulAreaOpt & AREAOPT_FROMCFG) { WinEnableControl(parent, IDD_AS_MSGBASE+2, FALSE); WinEnableControl(parent, IDD_AS_MSGBASE+3, FALSE); WinEnableControl(parent, IDD_AS_MSGBASE+4, FALSE); WinEnableControl(parent, IDD_AS_MSGBASE+6, FALSE); WinEnableControl(parent, IDD_AS_MSGBASE+7, FALSE); WinEnableControl(parent, IDD_AS_MSGBASE+12, FALSE); WinSendDlgItemMsg(parent, IDD_AS_MSGBASE+9, EM_SETREADONLY, (MPARAM)TRUE, (MPARAM) NULL); WinEnableControl(parent, IDD_AS_MSGBASE+10, FALSE); } } WinDefDlgProc(parent, message, mp1, mp2); SetFocusControl(parent, IDD_AS_MSGBASE+9); return (MRESULT) TRUE; case WM_CLOSE: case WM_DESTROY: if (!WinQueryWindowULong(parent, QWL_USER)) { WinQueryDlgItemText(parent, IDD_AS_MSGBASE+9, LEN_PATHNAME+1, pchTemp); if (strcmp(pArea->areadata.pathfile, pchTemp)) { strcpy(pArea->areadata.pathfile, pchTemp); arealiste.bDirty = TRUE; pArea->dirty=TRUE; } if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+2)) sTemp=AREAFORMAT_FTS; else if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+3)) sTemp=AREAFORMAT_SQUISH; else if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+4)) sTemp=AREAFORMAT_JAM; else sTemp=AREAFORMAT_FTS; if (sTemp!=pArea->areadata.areaformat) { pArea->areadata.areaformat=sTemp; arealiste.bDirty = TRUE; pArea->dirty=TRUE; } if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+6)) sTemp=AREATYPE_NET; else if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+7)) sTemp=AREATYPE_ECHO; else if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+12)) sTemp=AREATYPE_LOCAL; else sTemp=AREATYPE_NET; if (sTemp != pArea->areadata.areatype) { pArea->areadata.areatype=sTemp; arealiste.bDirty = TRUE; pArea->dirty=TRUE; } } break; case WM_COMMAND: if (SHORT1FROMMP(mp2)==CMDSRC_PUSHBUTTON) { if(SHORT1FROMMP(mp1)==IDD_AS_MSGBASE+10) { WinQueryDlgItemText(parent, IDD_AS_MSGBASE+9, LEN_PATHNAME+1, pchTemp); if (GetPathname(parent, pchTemp)==DID_OK) { char drive[_MAX_DRIVE]; char path[_MAX_DIR]; char name[_MAX_FNAME]; char ext[_MAX_EXT]; _splitpath(pchTemp, drive, path, name, ext); if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+3)) _makepath(pchTemp, drive, path, name, ""); else { _makepath(pchTemp, drive, path, "", ""); pchTemp[strlen(pchTemp)-1]='\0'; } WinSetDlgItemText(parent, IDD_AS_MSGBASE+9, pchTemp); arealiste.bDirty = TRUE; } } } return (MRESULT) FALSE; case APM_REQCLOSE: if (WinQueryDlgItemTextLength(parent, IDD_AS_MSGBASE+9)==0) { /* Fehler, kein Pfadname */ if (MessageBox(parent, IDST_MSG_NOPATHFILE, 0, IDD_NOPATHFILE, MB_RETRYCANCEL | MB_ERROR) == MBID_CANCEL) return (MRESULT) 2; else return (MRESULT) 1; } return (MRESULT) 0; case APM_CANCEL: WinSetWindowULong(parent, QWL_USER, 1); break; default: break; } return WinDefDlgProc(parent,message,mp1,mp2); }
MRESULT EXPENTRY O_CONFIGDlgProc(HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2) { PO_CONFIGFORMINFO pO_CONFIGFormInfo=(PO_CONFIGFORMINFO) WinQueryWindowULong(hwndDlg, QWL_USER); HWND hwndFrame = hwndDlg; /* ##START Form.37 Top of window procedure */ /* ##END Top of window procedure */ switch (msg) { /* Form event Opened WM_INITDLG */ case WM_INITDLG : if (mp2==0) mp2 = (MPARAM) malloc(sizeof(O_CONFIGFORMINFO)); HandleMessage(hwndFrame, hwndDlg, msg, mp1, mp2); pO_CONFIGFormInfo=(PO_CONFIGFORMINFO) WinQueryWindowULong(hwndDlg, QWL_USER); WinAssociateHelpInstance(pMainFormInfo->hwndHelpInstance, hwndFrame); { /* ##START Form.1 */ /* Event Opened - Form STICKY2\O_CONFIG */ CHAR aTextValue[255]="text"; LONG anIntegerValue=0; ULONG anUnsignedValue=0; c_cas = c_car = c_pop = c_aus = c_beep = c_mini = c_clr = 0; WinCheckButton(hwndDlg, SEND_CONFIG, CheckYes(gAfterSend)); WinCheckButton(hwndDlg, REPLY_CONFIG, CheckYes(gAfterReply)); WinCheckButton(hwndDlg, BACKGROUND_CONFIG, CheckYes(gPUS)); WinCheckButton(hwndDlg, SURE_CONFIG, CheckYes(gSure)); WinCheckButton(hwndDlg, MINI_CONFIG, CheckYes(gStickyIcon)); WinCheckButton(hwndDlg, BEEP_CONFIG, CheckYes(gBeep)); if (CheckNo(gBeep)) { WinEnableControl(hwndDlg, 1006, FALSE); WinEnableControl(hwndDlg, 1007, FALSE); WinEnableControl(hwndDlg, FREQUENCY_CONFIG, FALSE); WinEnableControl(hwndDlg, DURATION_CONFIG, FALSE); } /* end if */ /* Set range (numeric style) FREQUENCY_CONFIG Spin Button */ WinSendDlgItemMsg(hwndDlg, FREQUENCY_CONFIG, SPBM_SETLIMITS, MPFROMLONG(5000), /* Upper limit */ MPFROMLONG(10)); /* Lower limit */ WinSendDlgItemMsg(hwndDlg, DURATION_CONFIG, SPBM_SETLIMITS, MPFROMLONG(1000), /* Upper limit */ MPFROMLONG(10)); /* Lower limit */ WinSendDlgItemMsg(hwndDlg, FREQUENCY_CONFIG, SPBM_SETCURRENTVALUE, MPFROMLONG(atol(gFreq)), /* Value within range */ 0); WinSendDlgItemMsg(hwndDlg, DURATION_CONFIG, SPBM_SETCURRENTVALUE, MPFROMLONG(atol(gDur)), /* Value within range */ 0); /* Set range without update CLEAR_CONFIG Spin Button */ WinSendDlgItemMsg(hwndDlg, CLEAR_CONFIG, SPBM_OVERRIDESETLIMITS, MPFROMLONG(120), /* Upper limit */ MPFROMLONG(0)); /* Lower limit */ /* Set item value (numeric style) CLEAR_CONFIG Spin Button */ WinSendDlgItemMsg(hwndDlg, CLEAR_CONFIG, SPBM_SETCURRENTVALUE, MPFROMLONG(atol(gClearAuto)), /* Value within range */ 0); /* ##END */ } break; /* Form event Closed WM_CLOSE */ case WM_CLOSE : { /* ##START Form.2 */ /* Event Closed - Form STICKY2\O_CONFIG */ CHAR aTextValue[255]="text"; LONG anIntegerValue=0; ULONG anUnsignedValue=0; MsgLog("Closing O_CONFIG"); if (c_mini) { SWP swp; anUnsignedValue=(ULONG)WinQueryButtonCheckstate(hwndDlg,MINI_CONFIG); strcpy(gStickyIcon, anUnsignedValue ? gYes : gNo); PutString(S_StickyIcon, gStickyIcon); WinQueryWindowPos(gHwndFrame, &swp); if (swp.fl & SWP_RESTORE) { MsgLog("O_CONFIG - RESTORE"); WinPostMsg(gHwndFrame, WM_USER_RESTORE, 0, 0); } } /* end if */ if (c_cas) { anUnsignedValue=(ULONG)WinQueryButtonCheckstate(hwndDlg,SEND_CONFIG); strcpy(gAfterSend, anUnsignedValue ? gYes : gNo); PutString(S_CloseAfterSend, gAfterSend); } /* end if */ if (c_car) { anUnsignedValue=(ULONG)WinQueryButtonCheckstate(hwndDlg,REPLY_CONFIG); strcpy(gAfterReply, anUnsignedValue ? gYes: gNo ); PutString(S_CloseAfterReply, gAfterReply); } /* end if */ if (c_pop) { anUnsignedValue=(ULONG)WinQueryButtonCheckstate(hwndDlg,BACKGROUND_CONFIG); strcpy(gPUS, anUnsignedValue ? gYes: gNo ); PutString(S_PopUpSticky, gPUS); } /* end if */ if (c_aus) { anUnsignedValue=(ULONG)WinQueryButtonCheckstate(hwndDlg,SURE_CONFIG); strcpy(gSure, anUnsignedValue ? gYes : gNo ); PutString(S_AreYouSure, gSure ); } /* end if */ if (c_beep) { anUnsignedValue=(ULONG)WinQueryButtonCheckstate(hwndDlg,BEEP_CONFIG); PutString(S_Beep, anUnsignedValue ? gYes: gNo ); strcpy(gBeep, anUnsignedValue ? gYes : gNo); } /* end if */ /* Get item value (numeric style) FREQUENCY_CONFIG Spin Button */ WinSendDlgItemMsg(hwndDlg, FREQUENCY_CONFIG, SPBM_QUERYVALUE, MPFROMP(&anUnsignedValue), /* Buffer for value */ MPFROM2SHORT(0,SPBQ_ALWAYSUPDATE)); if (atol(gFreq) != anUnsignedValue) { sprintf(gFreq, "%d", anUnsignedValue); PutString(S_Frequency, gFreq); } /* end if */ /* Get item value (numeric style) DURATION_CONFIG Spin Button */ WinSendDlgItemMsg(hwndDlg, DURATION_CONFIG, SPBM_QUERYVALUE, MPFROMP(&anUnsignedValue), /* Buffer for value */ MPFROM2SHORT(0,SPBQ_ALWAYSUPDATE)); if (atol(gDur) != anUnsignedValue) { sprintf(gDur, "%d", anUnsignedValue); PutString(S_Duration, gDur); } /* end if */ /* Get item value (numeric style) DURATION_CONFIG Spin Button */ WinSendDlgItemMsg(hwndDlg, CLEAR_CONFIG, SPBM_QUERYVALUE, MPFROMP(&anUnsignedValue), /* Buffer for value */ MPFROM2SHORT(0,SPBQ_ALWAYSUPDATE)); if (atol(gClearAuto) != anUnsignedValue) { sprintf(gClearAuto, "%d", anUnsignedValue); PutString(S_ClearAuto, gClearAuto); } /* end if */ /* ##END */ } HandleMessage(hwndFrame, hwndDlg, msg, mp1, mp2); break; /* Form event Destroyed WM_DESTROY */ case WM_DESTROY : /* ##START Form.3 */ /* ##END */ /* Remove help instance */ WinAssociateHelpInstance((HWND) 0, hwndFrame); HandleMessage(hwndFrame, hwndDlg, msg, mp1, mp2); break; case WM_COMMAND : switch (SHORT1FROMMP(mp1)) { } /* end switch */ break; case WM_CONTROL : switch (SHORT1FROMMP(mp1)) { /* Check Box SEND_CONFIG Event Handlers */ case SEND_CONFIG: switch (SHORT2FROMMP(mp1)) { /* Clicked/Selected */ case BN_CLICKED: { /* ##START 1000.0 */ /* Event Clicked/Selected - Close window after Send SEND_CONFIG */ c_cas = 1; /* ##END */ } break; } /* end switch */ break; /* Check Box REPLY_CONFIG Event Handlers */ case REPLY_CONFIG: switch (SHORT2FROMMP(mp1)) { /* Clicked/Selected */ case BN_CLICKED: { /* ##START 1001.0 */ /* Event Clicked/Selected - Close Window after Reply REPLY_CONFIG */ c_car = 1; /* ##END */ } break; } /* end switch */ break; /* Check Box BACKGROUND_CONFIG Event Handlers */ case BACKGROUND_CONFIG: switch (SHORT2FROMMP(mp1)) { /* Clicked/Selected */ case BN_CLICKED: { /* ##START 1002.0 */ /* Event Clicked/Selected - Popup Sticky on Receive BACKGROUND_CONFIG */ c_pop = 1; /* ##END */ } break; } /* end switch */ break; /* Check Box BEEP_CONFIG Event Handlers */ case BEEP_CONFIG: switch (SHORT2FROMMP(mp1)) { /* Clicked/Selected */ case BN_CLICKED: { /* ##START 1003.0 */ /* Event Clicked/Selected - Beep BEEP_CONFIG */ ULONG anUnsignedValue; c_beep = 1; /* Is button selected? BEEP_CONFIG Check Box */ anUnsignedValue=(ULONG)WinQueryButtonCheckstate(hwndDlg,BEEP_CONFIG); WinEnableControl(hwndDlg, 1006, anUnsignedValue); WinEnableControl(hwndDlg, 1007, anUnsignedValue); WinEnableControl(hwndDlg, FREQUENCY_CONFIG, anUnsignedValue); WinEnableControl(hwndDlg, DURATION_CONFIG, anUnsignedValue); /* ##END */ } break; } /* end switch */ break; /* Check Box SURE_CONFIG Event Handlers */ case SURE_CONFIG: switch (SHORT2FROMMP(mp1)) { /* Clicked/Selected */ case BN_CLICKED: { /* ##START 1009.0 */ /* Event Clicked/Selected - Are You Sure Prompts SURE_CONFIG */ c_aus = 1; /* ##END */ } break; } /* end switch */ break; /* Check Box MINI_CONFIG Event Handlers */ case MINI_CONFIG: switch (SHORT2FROMMP(mp1)) { /* Clicked/Selected */ case BN_CLICKED: { /* ##START 1010.0 */ /* Event Clicked/Selected - Mini ICON when shrunk MINI_CONFIG */ CHAR aTextValue[255]="text"; LONG anIntegerValue=0; ULONG anUnsignedValue=0; c_mini = 1; /* ##END */ } break; } /* end switch */ break; } /* end switch */ break; /* ##START Form.38 User defined messages */ /* ##END User defined messages */ default : HandleMessage(hwndFrame, hwndDlg, msg, mp1, mp2); return WinDefDlgProc(hwndDlg,msg,mp1,mp2); } /* end switch for main msg dispatch */ return (MRESULT)FALSE; } /* end dialog procedure */
MRESULT EXPENTRY fnCacheNotebookPage( HWND hwnd, USHORT msg, MPARAM mp1, MPARAM mp2 ) { char sTemp[256]; int iTemp; int iCacheSize; switch (msg) { case WM_UPDATEVALUES: case WM_INITDLG: // Initialization of this page // Calculate full cache size iCacheSize = WaWEConfiguration.uiCachePageSize * WaWEConfiguration.uiNumOfCachePages; // Fill the entry fields // Set Cache page size WinSetDlgItemText(hwnd, EF_SIZEOFCACHEPAGE, (MPARAM) itoa(WaWEConfiguration.uiCachePageSize, sTemp, 10)); // Set num of cache pages WinSetDlgItemText(hwnd, EF_MAXNUMOFCACHEPAGES, (MPARAM) itoa(WaWEConfiguration.uiNumOfCachePages, sTemp, 10)); // Set full cache size WinSetDlgItemText(hwnd, EF_MAXIMUMCACHESIZEFORCHSET, (MPARAM) itoa(iCacheSize, sTemp, 10)); // Checkbox of use cache WinSendMsg(WinWindowFromID(hwnd, CB_USEREADCACHEFORCHANNELSETS), BM_SETCHECK, (MPARAM) (WaWEConfiguration.bUseCache), (MPARAM) (0)); break; case WM_CONTROL: // ------------------- WM_CONTROL messages --------------------------- switch SHORT1FROMMP(mp1) { case EF_SIZEOFCACHEPAGE: // - - - - - - - Message from SizeOfCachePage entry field - - - - - - - switch (SHORT2FROMMP(mp1)) { case EN_SETFOCUS: // Entered into entry field // Save old text from here: WinQueryDlgItemText(hwnd, SHORT1FROMMP(mp1), 1024, achTextUndoBuf); break; case EN_KILLFOCUS: // Leaving entry field { // Check the text there, and restore old one, if it's invalid! WinQueryDlgItemText(hwnd, SHORT1FROMMP(mp1), 256, sTemp); iTemp = atoi(sTemp); if ((iTemp>=MIN_ACCEPTABLE_CACHEPAGESIZE) && (iTemp<=MAX_ACCEPTABLE_CACHEPAGESIZE)) { WaWEConfiguration.uiCachePageSize = iTemp; WinSetDlgItemText(hwnd, SHORT1FROMMP(mp1), (MPARAM) itoa(iTemp, sTemp, 10)); iCacheSize = WaWEConfiguration.uiCachePageSize * WaWEConfiguration.uiNumOfCachePages; WinSetDlgItemText(hwnd, EF_MAXIMUMCACHESIZEFORCHSET, (MPARAM) itoa(iCacheSize, sTemp, 10)); } else WinSetDlgItemText(hwnd, SHORT1FROMMP(mp1), achTextUndoBuf); break; } default: break; } return (MPARAM) TRUE; break; // End of EF_* processing case EF_MAXNUMOFCACHEPAGES: // - - - - - - - Message from NumOfCachePages entry field - - - - - - - switch (SHORT2FROMMP(mp1)) { case EN_SETFOCUS: // Entered into entry field // Save old text from here: WinQueryDlgItemText(hwnd, SHORT1FROMMP(mp1), 1024, achTextUndoBuf); break; case EN_KILLFOCUS: // Leaving entry field { // Check the text there, and restore old one, if it's invalid! WinQueryDlgItemText(hwnd, SHORT1FROMMP(mp1), 256, sTemp); iTemp = atoi(sTemp); if ((iTemp>=MIN_ACCEPTABLE_NUMOFCACHEPAGES) && (iTemp<=MAX_ACCEPTABLE_NUMOFCACHEPAGES)) { WaWEConfiguration.uiNumOfCachePages = iTemp; WinSetDlgItemText(hwnd, SHORT1FROMMP(mp1), (MPARAM) itoa(iTemp, sTemp, 10)); iCacheSize = WaWEConfiguration.uiCachePageSize * WaWEConfiguration.uiNumOfCachePages; WinSetDlgItemText(hwnd, EF_MAXIMUMCACHESIZEFORCHSET, (MPARAM) itoa(iCacheSize, sTemp, 10)); } else WinSetDlgItemText(hwnd, SHORT1FROMMP(mp1), achTextUndoBuf); break; } default: break; } return (MPARAM) TRUE; break; // End of EF_* processing // -------------------------------- Checkboxes -------------------- case CB_USEREADCACHEFORCHANNELSETS: if (SHORT2FROMMP(mp1) == BN_CLICKED) { WaWEConfiguration.bUseCache = WinQueryButtonCheckstate(hwnd, SHORT1FROMMP(mp1)); } break; default: break; } // end of switch inside WM_CONTROL break; default: break; } // end of switch of msg // Call the default procedure if it has not been processed yet! return WinDefDlgProc(hwnd, msg, mp1, mp2); }
MRESULT EXPENTRY SETTINGSDlgProc(HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2) { HWND hwndFrame = hwndDlg; /* ##START Form.37 Top of window procedure */ /* Code sections - Top of window procedure */ /* ##END Top of window procedure */ switch (msg) { /* Form event Opened WM_INITDLG */ case WM_INITDLG : HandleMessage(hwndFrame, hwndDlg, msg, mp1, mp2); { /* ##START Form.1 */ /* Form events - Opened */ { ULONG dtHeight, dtWidth, lHeight, lWidth; SWP swp; dtHeight = WinQuerySysValue(HWND_DESKTOP,SV_CYSCREEN); dtWidth = WinQuerySysValue(HWND_DESKTOP,SV_CXSCREEN); WinQueryWindowPos(hwndDlg, (PSWP) &swp); lWidth = (dtWidth/2) - (swp.cx/2); lHeight = (dtHeight/2) - (swp.cy/2); WinSetWindowPos(hwndDlg, HWND_TOP, lWidth, lHeight, 0, 0, SWP_MOVE | SWP_SHOW | SWP_ACTIVATE); } queryNCSet(); if( pgmData[38] == 1 ) WinCheckButton(hwndDlg, 1024, 1); WinSetDlgItemText(hwndDlg, 1004, mailServer); WinSetDlgItemText(hwndDlg, 1005, userName); WinSetDlgItemText(hwndDlg, 1006, passWord); WinSetDlgItemText(hwndDlg, 1012, mailServer2); WinSetDlgItemText(hwndDlg, 1013, userName2); WinSetDlgItemText(hwndDlg, 1016, passWord2); WinSetDlgItemText(hwndDlg, 1007, nickName); WinSetDlgItemText(hwndDlg, 1017, rtema); WinSetDlgItemText(hwndDlg, 1018, rtname); /* ##END */ } break; /* Form event Closed WM_CLOSE */ case WM_CLOSE : /* ##START Form.2 */ /* ##END */ HandleMessage(hwndFrame, hwndDlg, msg, mp1, mp2); break; case WM_COMMAND : switch (SHORT1FROMMP(mp1)) { /* Button 1019 Clicked/Selected */ case 1019: { /* ##START 1019.0 */ /* Event Clicked/selected - ~OK 1019 */ WinQueryDlgItemText(hwndDlg, 1004, CCHMAXPATH, mailServer); WinQueryDlgItemText(hwndDlg, 1005, CCHMAXPATH, userName); WinQueryDlgItemText(hwndDlg, 1006, CCHMAXPATH, passWord); WinQueryDlgItemText(hwndDlg, 1012, CCHMAXPATH, mailServer2); WinQueryDlgItemText(hwndDlg, 1013, CCHMAXPATH, userName2); WinQueryDlgItemText(hwndDlg, 1016, CCHMAXPATH, passWord2); WinQueryDlgItemText(hwndDlg, 1007, CCHMAXPATH, nickName); WinQueryDlgItemText(hwndDlg, 1017, CCHMAXPATH, rtema); WinQueryDlgItemText(hwndDlg, 1018, CCHMAXPATH, rtname); if( WinQueryButtonCheckstate(hwndDlg,1024) ) pgmData[38] = 1; else pgmData[38] = 0; // bugem(hwndDlg); saveNCSet(); makeTBar(); WinPostMsg(hwndDlg, WM_CLOSE, 0, 0); /* ##END */ } break; /* Button 1020 Clicked/Selected */ case 1020: { /* ##START 1020.0 */ /* Event Clicked/selected - ~Cancel 1020 */ WinPostMsg(hwndDlg, WM_CLOSE, 0, 0); /* ##END */ } break; } /* end switch */ break; /* ##START Form.38 User defined messages */ /* Event Code sections, User defined messages */ /* ##END User defined messages */ default : HandleMessage(hwndFrame, hwndDlg, msg, mp1, mp2); return WinDefDlgProc(hwndDlg,msg,mp1,mp2); } /* end switch for main msg dispatch */ return (MRESULT)FALSE; } /* end dialog procedure */
MRESULT EXPENTRY specialOptionDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { CWDataFolder* thisPtr; ULONG ulFlags; LONG lSpinValue; static HWND hwndStatus; int a; char chrCD[4]; char text[CCHMAXPATH]; char title[CCHMAXPATH]; char text2[40]; ULONG rc; THISPTR thisPtrStruct; switch(msg) { case WM_INITDLG : WinSetWindowULong(hwnd, QWL_USER,(ULONG)PVOIDFROMMP(mp2));//Save object ptr. thisPtr=(CWDataFolder*)PVOIDFROMMP(mp2); if(somIsObj(thisPtr)) { ulFlags=((CWDataFolder*)PVOIDFROMMP(mp2))->cwQueryMkisofsFlags(); if(ulFlags & IDMK_SHADOWSINROOTONLY) { WinCheckButton(hwnd,IDRB_SHADOWSINROOTONLY,1); enableArchiveCntrls(hwnd, FALSE); } else { WinCheckButton(hwnd,IDRB_FOLLOWALLSHADOWS,1); enableArchiveCntrls(hwnd, TRUE); } /* Use archive bit */ if(ulFlags & IDMK_USEARCHIVEBIT) WinCheckButton(hwnd, IDCB_USEARCHIVEBIT, 1); else WinCheckButton(hwnd, IDCB_USEARCHIVEBIT, 0); /* Reset archive bit */ if(ulFlags & IDMK_RESETARCHIVEBIT) WinCheckButton(hwnd, IDCB_RESETARCHIVEBIT,1); else WinCheckButton(hwnd, IDCB_RESETARCHIVEBIT, 0); } /* Move default buttons on Warp 4 */ cwMoveNotebookButtonsWarp4(hwnd, IDPB_SPECIALHELP, 20); return (MRESULT) TRUE; /* This prevents switching the notebook page behind the open folder */ case WM_WINDOWPOSCHANGED: { MRESULT mr; if(WinQueryFocus(HWND_DESKTOP)!= WinQueryWindow(WinQueryWindow(hwnd, QW_PARENT), QW_PARENT)) { mp2=MPFROMLONG(LONGFROMMP(mp2)|0x80000);/*AWP_ACTIVATE 0x00080000L*/ mr=WinDefDlgProc(hwnd, msg, mp1, mp2); return mr; } break; } case WM_FOCUSCHANGE: { if(!SHORT1FROMMP(mp2)) { if(HWNDFROMMP(mp1)==hwnd) { MRESULT mr; mr=WinDefDlgProc(hwnd, msg, mp1, mp2); WinSendMsg(WinQueryWindow(WinQueryWindow(hwnd, QW_PARENT), QW_PARENT), WM_SETFOCUS, MPFROMHWND(hwnd), (MPARAM)TRUE); return mr; } } break; } case WM_DESTROY: /* The notebook closes and gets destroyed */ /* Set focus to desktop to prevent PM freeze */ WinSetFocus(HWND_DESKTOP, HWND_DESKTOP); /* Let the WPS save the new instance data */ // thisPtr=(CWDataFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_SPECIALUNDO),QWL_USER); thisPtr=(CWDataFolder*) WinQueryWindowULong(hwnd,QWL_USER); if(somIsObj(thisPtr)) { ulFlags=thisPtr->cwQueryMkisofsFlags(); if(WinQueryButtonCheckstate(hwnd,IDRB_SHADOWSINROOTONLY) & 1) { ulFlags|=IDMK_SHADOWSINROOTONLY; } else ulFlags&=~IDMK_SHADOWSINROOTONLY; /* Use archive bit */ if(WinQueryButtonCheckstate(hwnd, IDCB_USEARCHIVEBIT) & 1) { ulFlags|=IDMK_USEARCHIVEBIT; } else ulFlags&=~IDMK_USEARCHIVEBIT; /* Reset archive bit */ if(WinQueryButtonCheckstate(hwnd, IDCB_RESETARCHIVEBIT) & 1) { ulFlags|=IDMK_RESETARCHIVEBIT; } else ulFlags&=~IDMK_RESETARCHIVEBIT; thisPtr->cwSetMkisofsFlags(ulFlags,MK_ALLFLAGS); thisPtr->wpSaveImmediate(); } /* Setup is done */ return (MRESULT) FALSE; case WM_CONTROL: switch(SHORT1FROMMP(mp1)) { case IDRB_SHADOWSINROOTONLY: enableArchiveCntrls(hwnd, FALSE); break; case IDRB_FOLLOWALLSHADOWS: enableArchiveCntrls(hwnd, TRUE); break; default: break; } break; case WM_COMMAND: //thisPtr=(CWDataFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_SPECIALUNDO),QWL_USER); thisPtr=(CWDataFolder*) WinQueryWindowULong(hwnd,QWL_USER); if(!somIsObj(thisPtr)) return (MRESULT) TRUE; switch(SHORT1FROMMP(mp1)) { case IDPB_SPECIALUNDO: /* User pressed the UNDO button */ ulFlags=thisPtr->cwQueryMkisofsFlags(); if(ulFlags & IDMK_SHADOWSINROOTONLY) WinCheckButton(hwnd,IDRB_SHADOWSINROOTONLY,1); else WinCheckButton(hwnd, IDRB_FOLLOWALLSHADOWS,1); /* Use archive bit */ if(ulFlags & IDMK_USEARCHIVEBIT) WinCheckButton(hwnd, IDCB_USEARCHIVEBIT, 1); else WinCheckButton(hwnd, IDCB_USEARCHIVEBIT, 0); /* Reset archive bit */ if(ulFlags & IDMK_RESETARCHIVEBIT) WinCheckButton(hwnd, IDCB_RESETARCHIVEBIT,1); else WinCheckButton(hwnd, IDCB_RESETARCHIVEBIT, 0); break; case IDPB_SPECIALHELP: thisPtr->wpDisplayHelp(IDHLP_DATAFOLDERSPECIAL,AFHELPLIBRARY); break; case IDPB_RESETNOW: /* Text: "" Title: "" */ rc=messageBox( text, IDSTRD_RESETARCHIVEBITCONFIRM , sizeof(text), title, IDSTRD_RESETARCHIVEBITTITLE, sizeof(title), hDataResource, HWND_DESKTOP, MB_YESNO | MB_ICONQUESTION | MB_MOVEABLE | MB_DEFBUTTON2); if(rc==MBID_YES) DosBeep(5000,1000); break; default: break; } return (MRESULT) TRUE; default: break; } return WinDefDlgProc(hwnd, msg, mp1, mp2); }
/* This procedure handles the filename options page */ MRESULT EXPENTRY fileNameOptionDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { CWDataFolder* thisPtr; ULONG ulFlags; switch(msg) { case WM_INITDLG : WinSetWindowULong(hwnd, QWL_USER,(ULONG)PVOIDFROMMP(mp2));//Save object ptr. thisPtr=(CWDataFolder*)PVOIDFROMMP(mp2); if(!somIsObj(thisPtr)) return (MRESULT) TRUE; if(thisPtr->cwQueryMkisofsFlags()&IDMK_ALLOW32CHARS) { WinCheckButton(hwnd,IDRB_32CHARNAMES,1); WinCheckButton(hwnd,IDRB_DOSNAMES,0); } else { WinCheckButton(hwnd,IDRB_32CHARNAMES,0); WinCheckButton(hwnd,IDRB_DOSNAMES,1); } /* TRANS.TBL files */ if(thisPtr->cwQueryMkisofsFlags() & IDMK_TRANSTABLE) WinCheckButton(hwnd,IDCB_TRANSTABLE,1); else WinCheckButton(hwnd,IDCB_TRANSTABLE,0); if(((CWDataFolder*)PVOIDFROMMP(mp2))->cwQueryMkisofsFlags()&IDMK_JOLIET) WinCheckButton(hwnd,IDCB_JOLIET,1); WinShowWindow(WinWindowFromID(hwnd,IDCB_DEEPDIRECTORIES),FALSE); /* Move default buttons on Warp 4 */ cwMoveNotebookButtonsWarp4(hwnd, IDPB_FILENAMEHELP, 20); return (MRESULT) TRUE; /* case WM_HELP: thisPtr=(CWAudioFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_CDRECORDBROWSE),QWL_USER); if(!thisPtr) break; switch(WinQueryWindowUShort(WinQueryFocus(HWND_DESKTOP),QWS_ID)) { case IDEF_CDRECORDOPTIONS: return (MRESULT)thisPtr->wpDisplayHelp(IDEF_CDRECORDOPTIONS,AFHELPLIBRARY); case IDPB_WIDERRUFEN: return (MRESULT)thisPtr->wpDisplayHelp(IDPB_WIDERRUFEN,AFHELPLIBRARY); case IDPB_CDRECORDBROWSE: return (MRESULT)thisPtr->wpDisplayHelp(IDPB_CDRECORDBROWSE,AFHELPLIBRARY); case IDEF_CDRECORDPATH: return (MRESULT)thisPtr->wpDisplayHelp(IDEF_CDRECORDPATH,AFHELPLIBRARY); default: break; } return (MRESULT)thisPtr->wpDisplayHelp(IDDLG_CDRECORDSETUP,AFHELPLIBRARY); break;*/ /* This prevents switching the notebook page behind the open folder */ case WM_WINDOWPOSCHANGED: { MRESULT mr; if(WinQueryFocus(HWND_DESKTOP)!= WinQueryWindow(WinQueryWindow(hwnd, QW_PARENT), QW_PARENT)) { mp2=MPFROMLONG(LONGFROMMP(mp2)|0x80000);/*AWP_ACTIVATE 0x00080000L*/ mr=WinDefDlgProc(hwnd, msg, mp1, mp2); return mr; } break; } case WM_FOCUSCHANGE: { if(!SHORT1FROMMP(mp2)) { if(HWNDFROMMP(mp1)==hwnd) { MRESULT mr; mr=WinDefDlgProc(hwnd, msg, mp1, mp2); WinSendMsg(WinQueryWindow(WinQueryWindow(hwnd, QW_PARENT), QW_PARENT), WM_SETFOCUS, MPFROMHWND(hwnd), (MPARAM)TRUE); return mr; } } break; } #if 0 case WM_WINDOWPOSCHANGED: { /* This prevents switching the notebook page behind the open folder */ if(!(WinQueryWindowUShort(WinQueryWindow(hwnd, QW_PARENT), QWS_FLAGS) & FF_ACTIVE)) mp2=MPFROMLONG(0x80000); break; } #endif case WM_DESTROY: /* The notebook closes and gets destroyed */ /* Set focus to desktop to prevent PM freeze */ WinSetFocus(HWND_DESKTOP, HWND_DESKTOP); /* Let the WPS save the new instance data */ // thisPtr=(CWDataFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_FILENAMEUNDO),QWL_USER); thisPtr=(CWDataFolder*) WinQueryWindowULong(hwnd,QWL_USER); if(somIsObj(thisPtr)) { ulFlags=0; if(WinQueryButtonCheckstate(hwnd,IDCB_JOLIET) &1 ) ulFlags|=IDMK_JOLIET; if(WinQueryButtonCheckstate(hwnd,IDRB_32CHARNAMES) &1 ) ulFlags|=IDMK_ALLOW32CHARS; /* TRANS.TBL files */ if(WinQueryButtonCheckstate(hwnd,IDCB_TRANSTABLE) &1 ) ulFlags|=IDMK_TRANSTABLE; thisPtr->cwSetMkisofsFlags(ulFlags, IDMK_ALLOW32CHARS|IDMK_JOLIET| IDMK_TRANSTABLE); thisPtr->wpSaveImmediate(); } /* Setup is done */ return (MRESULT) TRUE; case WM_COMMAND: switch(SHORT1FROMMP(mp1)) { case IDPB_FILENAMEUNDO: /* User pressed the UNDO button */ //thisPtr=(CWDataFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_FILENAMEUNDO),QWL_USER); thisPtr=(CWDataFolder*) WinQueryWindowULong(hwnd,QWL_USER); if(somIsObj(thisPtr)) { ulFlags=thisPtr->cwQueryMkisofsFlags(); if(ulFlags&IDMK_ALLOW32CHARS) { WinCheckButton(hwnd,IDRB_32CHARNAMES,1); WinCheckButton(hwnd,IDRB_DOSNAMES,0); } else { WinCheckButton(hwnd,IDRB_32CHARNAMES,0); WinCheckButton(hwnd,IDRB_DOSNAMES,1); } if(ulFlags&IDMK_TRANSTABLE) WinCheckButton(hwnd,IDCB_TRANSTABLE,1); else WinCheckButton(hwnd,IDCB_TRANSTABLE,0); if(ulFlags&IDMK_JOLIET) WinCheckButton(hwnd,IDCB_JOLIET,1); else WinCheckButton(hwnd,IDCB_JOLIET,0); } break; default: break; } return (MRESULT) TRUE; default: break; } return WinDefDlgProc(hwnd, msg, mp1, mp2); }
MRESULT LoadWizard::DlgProc(ULONG msg, MPARAM mp1, MPARAM mp2) { switch (msg) {case WM_INITDLG: { MRESULT ret = IntrospectBase::DlgProc(msg, mp1, mp2); SetTitle(Title); if (Configuration.SourceServer) { ComboBox(+GetCtrl(CB_SERVER)).Text(Configuration.SourceServer); PostMsg(UM_CONNECT, 0, 0); } if (Configuration.Source) PMRASSERT(WinSetDlgItemText(GetHwnd(), CB_SINKSRC, Configuration.Source)); if (Configuration.SourcePort) PMRASSERT(WinSetDlgItemText(GetHwnd(), CB_PORT, Configuration.SourcePort)); // Init rate spin button { SpinButton sb(GetCtrl(SB_RATE)); sb.SetArray(SamplingRates, sizeof SamplingRates/sizeof *SamplingRates); size_t pos; if ( !binary_search<const char,const int>(Configuration.SourceRate, pos, &SamplingRates[0], sizeof SamplingRates/sizeof *SamplingRates, &SamplingRateCmp) && ( pos == sizeof SamplingRates/sizeof *SamplingRates || (pos && 2*Configuration.SourceRate < atoi(SamplingRates[pos]) + atoi(SamplingRates[pos-1])) )) --pos; sb.Value(pos); } WinCheckButton(GetHwnd(), Configuration.SourceChannels == 1 ? RB_MONO : RB_STEREO, TRUE); return ret; } case WM_COMMAND: DEBUGLOG(("LoadWizard::DlgProc:WM_COMMAND(%i,%i, %p)\n", SHORT1FROMMP(mp1), SHORT2FROMMP(mp1), mp2)); switch (SHORT1FROMMP(mp1)) {case DID_OK: { Configuration.SourceServer = WinQueryDlgItemXText(GetHwnd(), CB_SERVER); const xstring& source = WinQueryDlgItemXText(GetHwnd(), CB_SINKSRC); Configuration.Source = source.length() && !source.startsWithI("default") ? source : xstring(); const xstring& port = WinQueryDlgItemXText(GetHwnd(), CB_PORT); Configuration.SourcePort = port.length() && !port.startsWithI("default") ? port : xstring(); Configuration.SourceRate = atoi(SamplingRates[SpinButton(GetCtrl(SB_RATE)).Value()]); Configuration.SourceChannels = WinQueryButtonCheckstate(GetHwnd(), RB_MONO) ? 1 : 2; } break; } break; case UM_DISCOVER_SERVER: { DEBUGLOG(("LoadWizard::DlgProc:UM_DISCOVER_SERVER\n")); try { Context.GetServerInfo(ServerInfoOp); Sources.clear(); Context.GetSourceInfo(SourceInfoOp); } catch (const PAException& ex) { WinSetDlgItemText(GetHwnd(), ST_STATUS, ex.GetMessage()); } return 0; } case UM_UPDATE_SERVER: { int error = LONGFROMMP(mp1); DEBUGLOG(("LoadWizard::DlgProc:UM_UPDATE_SERVER %i\n", error)); if (error) { WinSetDlgItemText(GetHwnd(), ST_STATUS, PAConnectException(Context.GetContext(), error).GetMessage()); return 0; } WinSetDlgItemText(GetHwnd(), ST_STATUS, "Success"); ComboBox cb(GetCtrl(CB_SINKSRC)); // save old value const xstring& oldsink = cb.Text(); // delete old list cb.DeleteAll(); SelectedSource = -1; // insert new list and restore old value if reasonable. xstring def; def.sprintf("default (%s)", Server.default_sink_name.cdata()); cb.InsertItem(def); if (Sources.size() != 0) { int defsink = -1; for (unsigned i = 0; i < Sources.size(); ++i) { PASourceInfo& source = *Sources[i]; cb.InsertItem(source.name); if (SelectedSource < 0 && source.name.compareToI(oldsink) == 0) SelectedSource = i; if (defsink < 0 && source.name.compareToI(Server.default_sink_name) == 0) defsink = i; } cb.Select(SelectedSource+1); if (SelectedSource < 0) SelectedSource = defsink; } } case UM_UPDATE_PORT: { DEBUGLOG(("LoadWizard::DlgProc:UM_UPDATE_PORT %i\n", SelectedSource)); ComboBox cb(GetCtrl(CB_PORT)); // save old value const xstring& oldport = cb.Text(); // delete old list cb.DeleteAll(); // insert new list and restore old value if reasonable. xstring def; int selected = -1; if ((unsigned)SelectedSource < Sources.size()) { PASourceInfo& source = *Sources[SelectedSource]; if (source.active_port) def.sprintf("default (%s)", source.active_port->name.cdata()); for (unsigned i = 0; i < source.ports.size(); ++i) { PAPortInfo& port = source.ports[i]; cb.InsertItem(port.name); if (selected < 0 && port.name.compareToI(oldport) == 0) selected = i; } } cb.InsertItem(def ? def.cdata() : "default", 0); cb.Select(selected+1); return 0; } } return IntrospectBase::DlgProc(msg, mp1, mp2); }
static MRESULT EXPENTRY AreaGenSettProc(HWND parent, ULONG message, MPARAM mp1, MPARAM mp2) { HWND hwndList; extern USERDATAOPT userdaten; extern AREALIST arealiste; extern TEMPLATELIST templatelist; SHORT sItem=0, sSelect=0; static AREADEFLIST *pArea=NULL; char pchTemp[LEN_PATHNAME+1]; static HWND hwndSettingsFrame; PMSGTEMPLATE pTemplate; AREADEFLIST *pAreaTemp; switch(message) { case WM_INITDLG: pArea=((PAREAPAR)mp2)->pAreaDef; if (!((PAREAPAR)mp2)->bMultiple) { SendMsg(hwndSettingsFrame=WinQueryWindow(parent, QW_PARENT), APM_SETTITLE, pArea->areadata.areatag, NULL); WinSendDlgItemMsg(parent,IDD_AS_GENERAL+3, EM_SETTEXTLIMIT, MPFROMSHORT(LEN_AREATAG), (MPARAM) NULL); WinSendDlgItemMsg(parent,IDD_AS_GENERAL+5, EM_SETTEXTLIMIT, MPFROMSHORT(LEN_AREADESC), (MPARAM) NULL); } else { WinShowWindow(WinWindowFromID(parent, IDD_AS_GENERAL+2), FALSE); WinShowWindow(WinWindowFromID(parent, IDD_AS_GENERAL+3), FALSE); WinShowWindow(WinWindowFromID(parent, IDD_AS_GENERAL+4), FALSE); WinShowWindow(WinWindowFromID(parent, IDD_AS_GENERAL+5), FALSE); } /* Adressen eintragen */ hwndList=WinWindowFromID(parent, IDD_AS_GENERAL+9); SendMsg(hwndList, LM_DELETEALL, (MPARAM)0, (MPARAM)0); sItem=0; sSelect = LIT_NONE; while(sItem<MAX_ADDRESSES && userdaten.address[sItem][0]) { SendMsg(hwndList, LM_INSERTITEM, MPFROMSHORT(LIT_END), (MPARAM) userdaten.address[sItem]); if (pArea && !strcmp(pArea->areadata.address, userdaten.address[sItem])) sSelect = sItem; sItem++; } SendMsg(hwndList, LM_SELECTITEM, MPFROMSHORT(sSelect), (MPARAM) TRUE); /* Namen eintragen */ hwndList=WinWindowFromID(parent, IDD_AS_GENERAL+12); SendMsg(hwndList, LM_DELETEALL, (MPARAM)0, (MPARAM)0); sItem=0; sSelect = LIT_NONE; while(sItem<MAX_USERNAMES && userdaten.username[sItem][0]) { SendMsg(hwndList, LM_INSERTITEM, MPFROMSHORT(LIT_END), (MPARAM) userdaten.username[sItem]); if (pArea && !strcmp(pArea->areadata.username, userdaten.username[sItem])) sSelect = sItem; sItem++; } SendMsg(hwndList, LM_SELECTITEM, MPFROMSHORT(sSelect), (MPARAM) TRUE); if (pArea) { WinSetDlgItemText(parent, IDD_AS_GENERAL+3, pArea->areadata.areatag); WinSetDlgItemText(parent, IDD_AS_GENERAL+5, pArea->areadata.areadesc); if (pArea->areadata.ulAreaOpt & AREAOPT_FROMCFG) WinSendDlgItemMsg(parent, IDD_AS_GENERAL+3, EM_SETREADONLY, (MPARAM)TRUE, NULL); } /* Template-Namen eintragen */ pTemplate = templatelist.pTemplates; while (pTemplate) { sItem = (SHORT) WinSendDlgItemMsg(parent, IDD_AS_GENERAL+14, LM_INSERTITEM, MPFROMSHORT(LIT_SORTASCENDING), pTemplate->TName); WinSendDlgItemMsg(parent, IDD_AS_GENERAL+14, LM_SETITEMHANDLE, MPFROMSHORT(sItem), MPFROMLONG(pTemplate->ulID)); if (pArea && pTemplate->ulID == pArea->areadata.ulTemplateID) WinSendDlgItemMsg(parent, IDD_AS_GENERAL+14, LM_SELECTITEM, MPFROMSHORT(sItem), MPFROMSHORT(TRUE)); pTemplate = pTemplate->next; } break; case WM_CLOSE: case WM_DESTROY: if (!WinQueryWindowULong(parent, QWL_USER)) { WinQueryDlgItemText(parent, IDD_AS_GENERAL+3, LEN_AREATAG+1, pchTemp); if (strcmp(pArea->areadata.areatag, pchTemp)) { strcpy(pArea->areadata.areatag, pchTemp); arealiste.bDirty = TRUE; pArea->dirty=TRUE; } WinQueryDlgItemText(parent, IDD_AS_GENERAL+5, LEN_AREADESC+1, pchTemp); if (strcmp(pArea->areadata.areadesc, pchTemp)) { strcpy(pArea->areadata.areadesc, pchTemp); arealiste.bDirty = TRUE; pArea->dirty=TRUE; } WinQueryDlgItemText(parent, IDD_AS_GENERAL+9, LEN_5DADDRESS+1, pchTemp); if (strcmp(pArea->areadata.address, pchTemp)) { strcpy(pArea->areadata.address, pchTemp); arealiste.bDirty = TRUE; pArea->dirty=TRUE; } WinQueryDlgItemText(parent, IDD_AS_GENERAL+12, LEN_USERNAME+1, pchTemp); if (strcmp(pArea->areadata.username, pchTemp)) { strcpy(pArea->areadata.username, pchTemp); arealiste.bDirty = TRUE; pArea->dirty=TRUE; } sItem = (SHORT)WinSendDlgItemMsg(parent, IDD_AS_GENERAL+14, LM_QUERYSELECTION, MPFROMSHORT(LIT_FIRST), NULL); if (sItem >= 0) { ULONG ulID; ulID = (ULONG) WinSendDlgItemMsg(parent, IDD_AS_GENERAL+14, LM_QUERYITEMHANDLE, MPFROMSHORT(sItem), NULL); if (ulID != pArea->areadata.ulTemplateID) { pArea->areadata.ulTemplateID = ulID; arealiste.bDirty = TRUE; pArea->dirty=TRUE; } } } break; case WM_COMMAND: return (MRESULT) FALSE; case WM_CONTROL: if (SHORT1FROMMP(mp1)==IDD_AS_GENERAL+3) if (SHORT2FROMMP(mp1)==EN_KILLFOCUS) { char pchTempTag[LEN_AREATAG+1]; WinQueryDlgItemText(parent, IDD_AS_GENERAL+3, LEN_AREATAG+1, pchTempTag); SendMsg(hwndSettingsFrame, APM_SETTITLE, pchTempTag, NULL); } if (SHORT1FROMMP(mp1) == IDD_AS_GENERAL+15) if (SHORT2FROMMP(mp1) == BN_CLICKED || SHORT2FROMMP(mp1) == BN_DBLCLICKED) { if (WinQueryButtonCheckstate(parent, IDD_AS_GENERAL+15)) WinEnableControl(parent, IDD_AS_GENERAL+7, FALSE); else WinEnableControl(parent, IDD_AS_GENERAL+7, TRUE); } break; case APM_REQCLOSE: WinQueryDlgItemText(parent, IDD_AS_GENERAL+3, LEN_AREATAG+1, pchTemp); if (pchTemp[0] == 0) { /* Fehler, kein Area-Tag */ if (MessageBox(parent, IDST_MSG_NOAREATAG, 0, IDD_NOAREATAG, MB_RETRYCANCEL | MB_ERROR) == MBID_CANCEL) return (MRESULT) 2; else return (MRESULT) 1; } else { pAreaTemp = AM_FindArea(&arealiste, pchTemp); if (pAreaTemp && pAreaTemp != pArea) { /* Fehler, schon vorhanden */ if (MessageBox(parent, IDST_MSG_ALREADYHAVEAREA, 0, IDD_ALREADYHAVEAREA, MB_RETRYCANCEL | MB_ERROR) == MBID_CANCEL) return (MRESULT) 2; else return (MRESULT) 1; } } return (MRESULT) 0; case APM_CANCEL: WinSetWindowULong(parent, QWL_USER, 1); break; default: break; } return WinDefDlgProc(parent,message,mp1,mp2); }
/* ConfigureDlgProc This is the dialog procedure for the module configuration dialog. The dialog contains a check box for enabling/disabling the module and two push buttons ("OK" and "Cancel") to close/cancel the dialog. Since version 1.2, it contains a slider to set the animation speed; if you don't want this slider, change the '#if 0' line in the WM_INITDLG part of this dialog procedure. This is enough for simple saver modules, but can easily be expanded for more saver modules that need more settings. */ MRESULT EXPENTRY ConfigureDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { char buf[sizeof(modulename)+20]; static HWND hwndEnabled; static HWND hwndSpeed; /* $$$$$ insert code here $$$$$ If you need additional data for dialog processing, insert it here. $$$$$ for example $$$$$ static HWND hwndCount; */ switch(msg){ case WM_INITDLG: // set titlebar of the dialog window // to "MODULENAME configuration" strcpy(buf, modulename); strcat(buf, " configuration"); WinSetWindowText(hwnd, (PSZ)buf); // get window handles of the dialog controls // and set initial state of the controls hwndEnabled = WinWindowFromID(hwnd, IDC_ENABLED); WinSendMsg(hwndEnabled, BM_SETCHECK, MPFROMSHORT(configuration_data.enabled), MPVOID); hwndSpeed = WinWindowFromID(hwnd, IDC_SPEED); WinSendMsg(hwndSpeed, SLM_SETTICKSIZE, MPFROM2SHORT(SMA_SETALLTICKS, 3), MPVOID); WinSendMsg(hwndSpeed, SLM_SETSLIDERINFO, MPFROM2SHORT(SMA_SLIDERARMPOSITION, SMA_INCREMENTVALUE), MPFROMLONG(configuration_data.animation_speed)); WinSendMsg(hwndSpeed, SLM_SETSCALETEXT, MPFROMSHORT(0), MPFROMP("slow")); WinSendMsg(hwndSpeed, SLM_SETSCALETEXT, MPFROMSHORT(4), MPFROMP("fast")); /* $$$$$ insert code here $$$$$ Get window handles of your dialog controls. Set initial state of your controls. $$$$$ for example $$$$$ hwndCount = WinWindowFromID(hwnd, IDC_COUNT); WinSendMsg(hwndCount, SPBM_SETLIMITS, (MPARAM)CONFIGURATION_MAXIMUM_COUNT, (MPARAM)CONFIGURATION_MINIMUM_COUNT); WinSendMsg(hwndCount, SPBM_SETCURRENTVALUE, MPFROMLONG(configuration_data.count), MPVOID); */ (VOID)WinCheckButton( hwnd, (USHORT)IDC_DRUNKEN, configuration_data.drunken ); (VOID)WinCheckButton( hwnd, (USHORT)IDC_SOBER, !configuration_data.drunken ); // return FALSE since we did not change the focus return (MRESULT)FALSE; case WM_COMMAND: switch(SHORT1FROMMP(mp1)){ case IDC_OK: // OK button was pressed. query the control settings configuration_data.enabled = SHORT1FROMMR(WinSendMsg(hwndEnabled, BM_QUERYCHECK, MPVOID, MPVOID)); configuration_data.animation_speed = SHORT1FROMMR(WinSendMsg(hwndSpeed, SLM_QUERYSLIDERINFO, MPFROM2SHORT(SMA_SLIDERARMPOSITION, SMA_INCREMENTVALUE), MPVOID)); /* $$$$$ insert code here $$$$$ Query control settings of your controls. $$$$$ for example $$$$$ WinSendMsg(hwndCount, SPBM_QUERYVALUE, MPFROMP(&configuration_data.count), MPFROM2SHORT(0, SPBQ_DONOTUPDATE)); */ if( WinQueryButtonCheckstate( hwnd, IDC_DRUNKEN ) == 1) configuration_data.drunken = TRUE; else configuration_data.drunken = FALSE; // write all configuration data to INI-file PrfWriteProfileData(HINI_USER, (PSZ)application_name, (PSZ)modulename, (PSZ)&configuration_data, sizeof(configuration_data)); // end dialog WinDismissDlg(hwnd, TRUE); return (MRESULT)0; case IDC_CANCEL: // dialog was cancelled; end it WinDismissDlg(hwnd, FALSE); return (MRESULT)0; default: return (MRESULT)0; } } return WinDefDlgProc(hwnd, msg, mp1, mp2); }
static MRESULT EXPENTRY AreaAttribProc(HWND parent, ULONG message, MPARAM mp1, MPARAM mp2) { extern AREALIST arealiste; static AREADEFLIST *pArea=NULL; switch(message) { case WM_INITDLG: pArea=((AREAPAR *)mp2)->pAreaDef; if (pArea) { ULONG ulMask; WinCheckButton(parent, IDD_AS_ATTRIB+9, !!(pArea->areadata.ulAreaOpt & AREAOPT_HIGHASCII)); WinCheckButton(parent, IDD_AS_ATTRIB+10, !!(pArea->areadata.ulAreaOpt & AREAOPT_SEPARATOR)); WinCheckButton(parent, IDD_AS_ATTRIB+11, !!(pArea->areadata.ulAreaOpt & AREAOPT_NOHIGHLIGHT)); /* Message Attributes */ MSG_QueryAttribCaps(&arealiste, pArea->areadata.areatag, &ulMask); WinSendDlgItemMsg(parent, IDD_AS_ATTRIB+2, ATTSM_SETATTRIB, MPFROMLONG(pArea->areadata.ulDefAttrib), MPFROMLONG(ulMask)); } break; case WM_CLOSE: case WM_DESTROY: if (!WinQueryWindowULong(parent, QWL_USER)) { ULONG ulTemp = pArea->areadata.ulAreaOpt & AREAOPT_FROMCFG; if (WinQueryButtonCheckstate(parent, IDD_AS_ATTRIB+9)) ulTemp |= AREAOPT_HIGHASCII; if (WinQueryButtonCheckstate(parent, IDD_AS_ATTRIB+10)) ulTemp |= AREAOPT_SEPARATOR; if (WinQueryButtonCheckstate(parent, IDD_AS_ATTRIB+11)) ulTemp |= AREAOPT_NOHIGHLIGHT; if (pArea->areadata.ulAreaOpt != ulTemp) { pArea->areadata.ulAreaOpt = ulTemp; arealiste.bDirty = TRUE; pArea->dirty=TRUE; } ulTemp = (ULONG) WinSendDlgItemMsg(parent, IDD_AS_ATTRIB+2, ATTSM_QUERYATTRIB, NULL, NULL); if (pArea->areadata.ulDefAttrib != ulTemp) { pArea->areadata.ulDefAttrib = ulTemp; arealiste.bDirty = TRUE; pArea->dirty=TRUE; } } break; case WM_COMMAND: return (MRESULT) FALSE; case APM_REQCLOSE: return (MRESULT) 0; case APM_CANCEL: WinSetWindowULong(parent, QWL_USER, 1); break; default: break; } return WinDefDlgProc(parent,message,mp1,mp2); }
//A Dlg procedure if the plugin has selectable settings. MRESULT EXPENTRY CBZPluginSetupDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { short sControlId; PLUGINSHARE *pPluginData; HOBJECT hObject; switch (msg) { case WM_INITDLG: { short sInsertItem;/*to insert in ListBox*/ CHAR *szLineStyles [] = {"dotted","short-dashed","dash-dot", "double-dotted","long-dashed","dash-double-dot", "solid","invisible","alternate pels" }; if ((pPluginData = (PLUGINSHARE *) mp2) == NULL) { //Error message.. WinDismissDlg(hwnd, DID_ERROR); return (MRFROMLONG(FALSE)); } WinSetWindowPtr(hwnd, QWL_USER, pPluginData); // store window words WinSetPresParam(WinWindowFromID(hwnd, PBID_ACTIVELINECOLOR), PP_BACKGROUNDCOLOR, (ULONG) sizeof(pPluginData->lActiveLineColor), (PVOID) & (pPluginData->lActiveLineColor)); WinSetPresParam(WinWindowFromID(hwnd, PBID_ACTIVESHADOWCOLOR), PP_BACKGROUNDCOLOR, (ULONG) sizeof(pPluginData->lActiveShadowColor), (PVOID) & (pPluginData->lActiveShadowColor)); WinSetPresParam(WinWindowFromID(hwnd, PBID_INACTIVELINECOLOR), PP_BACKGROUNDCOLOR, (ULONG) sizeof(pPluginData->lInactiveLineColor), (PVOID) & (pPluginData->lInactiveLineColor)); WinSetPresParam(WinWindowFromID(hwnd, PBID_INACTIVESHADOWCOLOR), PP_BACKGROUNDCOLOR, (ULONG) sizeof(pPluginData->lInactiveShadowColor), (PVOID) & (pPluginData->lInactiveShadowColor)); if (pPluginData->bActiveEnabled) { WinCheckButton(hwnd, CBID_ACTIVEENABLED, TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_ACTIVELINECOLOR), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_ACTIVESHADOWCOLOR), TRUE); } else { WinCheckButton(hwnd, CBID_ACTIVEENABLED, FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_ACTIVELINECOLOR), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_ACTIVESHADOWCOLOR), FALSE); } if (pPluginData->bInactiveEnabled) { WinCheckButton(hwnd, CBID_INACTIVEENABLED, TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_INACTIVELINECOLOR), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_INACTIVESHADOWCOLOR), TRUE); } else { WinCheckButton(hwnd, CBID_INACTIVEENABLED, FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_INACTIVELINECOLOR), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_INACTIVESHADOWCOLOR), FALSE); } /*there are 9 line styles*/ for (sInsertItem=0; sInsertItem < 9; sInsertItem++) { WinSendDlgItemMsg (hwnd, LBID_LINESTYLE, LM_INSERTITEM, MPFROMSHORT (LIT_END), szLineStyles [sInsertItem]); } WinSendDlgItemMsg (hwnd, LBID_LINESTYLE, LM_SELECTITEM, MPFROMSHORT(pPluginData->lLineStyle-1), MPFROMSHORT(TRUE)); } break; case WM_COMMAND: { sControlId = COMMANDMSG(&msg)->cmd; switch (sControlId) { case PBID_ACTIVELINECOLOR: case PBID_ACTIVESHADOWCOLOR: case PBID_INACTIVELINECOLOR: case PBID_INACTIVESHADOWCOLOR: { // Open the colorpalette hObject=WinQueryObject("<WP_HIRESCLRPAL>"); if((hObject=WinQueryObject("<WP_HIRESCLRPAL>"))!=NULLHANDLE) { WinOpenObject(hObject, OPEN_DEFAULT ,TRUE); } else {//Error, can't open the palette /* Show an error msg. */ WinMessageBox(HWND_DESKTOP, hwnd, "Can't open color palette", "Gradient plugin", 12345, /* Window ID */ MB_OK | MB_MOVEABLE | MB_ICONEXCLAMATION | MB_DEFBUTTON1); /* Style */ } /* long lColor; if (sControlId == PBID_ACTIVELINECOLOR) { if (CBZGetColor(hwnd, &lColor)) { WinSetPresParam(WinWindowFromID(hwnd, PBID_ACTIVELINECOLOR), PP_BACKGROUNDCOLOR, (ULONG) sizeof(lColor), (PVOID) &lColor ); } } else if (sControlId == PBID_ACTIVESHADOWCOLOR) { if (CBZGetColor(hwnd, &lColor)) { WinSetPresParam(WinWindowFromID(hwnd, PBID_ACTIVESHADOWCOLOR), PP_BACKGROUNDCOLOR, (ULONG) sizeof(lColor), (PVOID) &lColor ); } } else if (sControlId == PBID_INACTIVELINECOLOR) { if (CBZGetColor(hwnd, &lColor)) { WinSetPresParam(WinWindowFromID(hwnd, PBID_INACTIVELINECOLOR), PP_BACKGROUNDCOLOR, (ULONG) sizeof(lColor), (PVOID) &lColor ); } } else if (sControlId == PBID_INACTIVESHADOWCOLOR) { if (CBZGetColor(hwnd, &lColor)) { WinSetPresParam(WinWindowFromID(hwnd, PBID_INACTIVESHADOWCOLOR), PP_BACKGROUNDCOLOR, (ULONG) sizeof(lColor), (PVOID) &lColor ); } }*/ } break; case PBID_OK: { ULONG attrFound; if ((pPluginData = (PLUGINSHARE *) WinQueryWindowPtr(hwnd, QWL_USER)) == NULL) { //error message here. break; } WinQueryPresParam(WinWindowFromID(hwnd, PBID_ACTIVELINECOLOR), PP_BACKGROUNDCOLOR, 0, &attrFound, sizeof(attrFound), &(pPluginData->lActiveLineColor), QPF_PURERGBCOLOR); WinQueryPresParam(WinWindowFromID(hwnd, PBID_ACTIVESHADOWCOLOR), PP_BACKGROUNDCOLOR, 0, &attrFound, sizeof(attrFound), &(pPluginData->lActiveShadowColor), QPF_PURERGBCOLOR); WinQueryPresParam(WinWindowFromID(hwnd, PBID_INACTIVELINECOLOR), PP_BACKGROUNDCOLOR, 0, &attrFound, sizeof(attrFound), &(pPluginData->lInactiveLineColor), QPF_PURERGBCOLOR); WinQueryPresParam(WinWindowFromID(hwnd, PBID_INACTIVESHADOWCOLOR), PP_BACKGROUNDCOLOR, 0, &attrFound, sizeof(attrFound), &(pPluginData->lInactiveShadowColor), QPF_PURERGBCOLOR); if ( WinQueryButtonCheckstate(hwnd, CBID_ACTIVEENABLED) ) pPluginData->bActiveEnabled = TRUE; else pPluginData->bActiveEnabled = FALSE; if ( WinQueryButtonCheckstate(hwnd, CBID_INACTIVEENABLED) ) pPluginData->bInactiveEnabled = TRUE; else pPluginData->bInactiveEnabled = FALSE; pPluginData->lLineStyle = 1 + (LONG) WinSendDlgItemMsg (hwnd, LBID_LINESTYLE, LM_QUERYSELECTION, (MPARAM) 0, NULL); //update! WinDismissDlg(hwnd, PBID_OK); } break; case PBID_CANCEL: { //don't update shared Memory! WinDismissDlg(hwnd, PBID_CANCEL); } break; } return ((MPARAM) 0); } break; case WM_CONTROL: { switch (SHORT1FROMMP(mp1)) { case CBID_ACTIVEENABLED: { // if Enabled if (!WinQueryButtonCheckstate(hwnd, CBID_ACTIVEENABLED)) { // check button WinCheckButton(hwnd, CBID_ACTIVEENABLED, TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_ACTIVELINECOLOR), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_ACTIVESHADOWCOLOR), TRUE); } else { // uncheck button WinCheckButton(hwnd, CBID_ACTIVEENABLED, FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_ACTIVELINECOLOR), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_ACTIVESHADOWCOLOR), FALSE); } } break; case CBID_INACTIVEENABLED: { // if Enabled if (!WinQueryButtonCheckstate(hwnd, CBID_INACTIVEENABLED)) { // check button WinCheckButton(hwnd, CBID_INACTIVEENABLED, TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_INACTIVELINECOLOR), TRUE); WinEnableWindow(WinWindowFromID(hwnd, PBID_INACTIVESHADOWCOLOR), TRUE); } else { // uncheck button WinCheckButton(hwnd, CBID_INACTIVEENABLED, FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_INACTIVELINECOLOR), FALSE); WinEnableWindow(WinWindowFromID(hwnd, PBID_INACTIVESHADOWCOLOR), FALSE); } } break; } return ((MRESULT) 0); } break; } return (WinDefDlgProc(hwnd, msg, mp1, mp2)); }
/* dialog procedure for the Styles page dialog procedure */ MRESULT EXPENTRY StyleDlgProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2 ) { SOMAny * somSelf = (SOMAny *)WinQueryWindowULong(hwndDlg, QWL_USER); ULONG ulStyle; ULONG ulStyleOld; BOOL bRecreate; PMYCDATA pCData; BOOL bCDataChanged; WNDPARAMS wndparams; MYCDATA cData; CHAR pszText[32]; switch (msg) { case WM_INITDLG: somSelf=(SOMAny *)PVOIDFROMMP(mp2); WinSetWindowULong(hwndDlg, QWL_USER, (ULONG)somSelf); _SetInitializedFlag(somSelf,FALSE); ulStyle = WinQueryWindowULong(_GetHwnd(somSelf), QWL_STYLE); /* set the limits for the spin buttons */ WinSendDlgItemMsg(hwndDlg,ID_HORZSB,SPBM_SETLIMITS, MPFROMLONG(1000),MPFROMLONG(-1000)); WinSendDlgItemMsg(hwndDlg,ID_VERTSB,SPBM_SETLIMITS, MPFROMLONG(1000),MPFROMLONG(-1000)); /* save for undoing */ _SetStyle(somSelf, ulStyle); WinSendMsg(hwndDlg,WM_VPRSETVALUES,0,0); break; case WM_VPRSETVALUES: ulStyle=_GetStyle(somSelf); pCData = (PMYCDATA)WinQueryWindowULong(_GetHwnd(somSelf), QWL_USER+4); if (ulStyle & WS_VISIBLE) { WinCheckButton(hwndDlg, ID_VISIBLE, 1); } else { WinCheckButton(hwndDlg, ID_VISIBLE, 0); } /* endif */ if (ulStyle & WS_DISABLED) { WinCheckButton(hwndDlg, ID_DISABLED, 1); } else { WinCheckButton(hwndDlg, ID_DISABLED, 0); } /* endif */ if (ulStyle & WS_GROUP) { WinCheckButton(hwndDlg, ID_GROUP, 1); } else { WinCheckButton(hwndDlg, ID_GROUP, 0); } /* endif */ if (ulStyle & WS_TABSTOP) { WinCheckButton(hwndDlg, ID_TABSTOP, 1); } else { WinCheckButton(hwndDlg, ID_TABSTOP, 0); } /* endif */ wndparams.fsStatus = WPM_CTLDATA; wndparams.pCtlData = (PVOID)&cData; wndparams.cbCtlData=sizeof(cData); WinSendMsg(_GetHwnd(somSelf),WM_QUERYWINDOWPARAMS, MPFROMP(&wndparams),0); WinSendDlgItemMsg(hwndDlg,ID_HORZSB,SPBM_SETCURRENTVALUE, MPFROMLONG(cData.gradient.x),0); WinSendDlgItemMsg(hwndDlg,ID_VERTSB,SPBM_SETCURRENTVALUE, MPFROMLONG(cData.gradient.y),0); _SetInitializedFlag(somSelf,TRUE); break; case WM_CONTROL: if (_GetInitializedFlag(somSelf)) { ulStyleOld = WinQueryWindowULong(_GetHwnd(somSelf),QWL_STYLE); ulStyle = ulStyleOld; bRecreate=FALSE; bCDataChanged=FALSE; switch ( SHORT1FROMMP( mp1 ) ) { case ID_VISIBLE: if (SHORT2FROMMP(mp1) == BN_CLICKED) { WinShowWindow(_GetHwnd(somSelf), WinQueryButtonCheckstate(hwndDlg,SHORT1FROMMP( mp1 ))); if (WinQueryButtonCheckstate(hwndDlg,SHORT1FROMMP( mp1 ))) { ulStyle |= WS_VISIBLE; } else { ulStyle &= ~WS_VISIBLE; } /* endif */ } /* endif */ break; case ID_TABSTOP: if (SHORT2FROMMP(mp1) == BN_CLICKED) { if (WinQueryButtonCheckstate(hwndDlg,SHORT1FROMMP( mp1 ))) { ulStyle |= WS_TABSTOP; } else { ulStyle &= ~WS_TABSTOP; } /* endif */ } /* endif */ break; case ID_DISABLED: if (SHORT2FROMMP(mp1) == BN_CLICKED) { if (WinQueryButtonCheckstate(hwndDlg,SHORT1FROMMP( mp1 ))) { ulStyle |= WS_DISABLED; } else { ulStyle &= ~WS_DISABLED; } /* endif */ } /* endif */ break; case ID_GROUP: if (SHORT2FROMMP(mp1) == BN_CLICKED) { if (WinQueryButtonCheckstate(hwndDlg,SHORT1FROMMP( mp1 ))) { ulStyle |= WS_GROUP; } else { ulStyle &= ~WS_GROUP; } /* endif */ } /* endif */ break; case ID_HORZSB: case ID_VERTSB: if ((SHORT2FROMMP(mp1) == SPBN_ENDSPIN) || (SHORT2FROMMP(mp1) == SPBN_KILLFOCUS)) { cData.cb=sizeof(cData); wndparams.fsStatus=WPM_CTLDATA; wndparams.cbCtlData=cData.cb; wndparams.pCtlData=(PBYTE)&cData; WinSendDlgItemMsg(hwndDlg,ID_VERTSB,SPBM_QUERYVALUE, MPFROMP(pszText), MPFROM2SHORT(sizeof(pszText),SPBQ_ALWAYSUPDATE)); cData.gradient.x=atol(pszText); WinSendDlgItemMsg(hwndDlg,ID_HORZSB,SPBM_QUERYVALUE, MPFROMP(pszText), MPFROM2SHORT(sizeof(pszText),SPBQ_ALWAYSUPDATE)); cData.gradient.y=atol(pszText); WinSendMsg(_GetHwnd(somSelf), WM_SETWINDOWPARAMS, MPFROMP(&wndparams),0); bCDataChanged=TRUE; } /* endif */ break; } /* endswitch */ if (ulStyle != ulStyleOld || bCDataChanged) { _IndicateChanged(somSelf); WinSetWindowULong(_GetHwnd(somSelf),QWL_STYLE,ulStyle); if (bRecreate) { _RecreateObject(somSelf); } else { _RedrawObject(somSelf); } /* endif */ } /* endif */ } /* endif */ break; case WM_COMMAND: switch (SHORT1FROMMP(mp1)) { case ID_RESET: /* flag the object as changed so VisPro/REXX will save it */ _IndicateChanged(somSelf); WinSendMsg(hwndDlg,WM_VPRSETVALUES,0,0); ulStyle=_GetStyle(somSelf); WinShowWindow(_GetHwnd(somSelf), ((ulStyle & WS_VISIBLE)!=0)); WinSetWindowULong(_GetHwnd(somSelf),QWL_STYLE,ulStyle); _RedrawObject(somSelf); break; } /* endswitch */ break; case WM_HELP: WinPostMsg(_QueryHelpInstance(_somGetClass(somSelf)), HM_DISPLAY_HELP, MPFROMLONG(110), HM_RESOURCEID); break; default : return WinDefDlgProc( hwndDlg, msg, mp1, mp2 ); } /* endswitch */ return FALSE; }
MRESULT EXPENTRY SETTINGS :: Page2Procedure (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { static PSETTINGS pset = NULL; switch (msg) { case WM_INITDLG: #ifdef _DOLOGDEBUG_ LogDebug( "Page1Procedure: start WM_INITDLG" ); #endif pset = PSETTINGS (mp2); #ifdef _DOLOGDEBUG_ LogDebug( "Page1Procedure: end WM_INITDLG" ); #endif return MRESULT (FALSE); case WM_COMMAND: if( SHORT1FROMMP( mp1 ) == DID_CANCEL ) WinPostMsg( g_hwndSettingsDialog, msg, mp1, mp2 ); return MRESULT( FALSE ); case UM_SETTINGS2DIALOG: #ifdef _DOLOGDEBUG_ LogDebug( "Page2Procedure: start UM_SETTINGS2DIALOG" ); #endif // set state of checkbuttons pset->AdjustButton (hwnd, WID_CB_SSWENABLE, pset->SnapshotWindow ()); pset->AdjustButton (hwnd, WID_CB_SSWHIDE, pset->SSWHide ()); pset->AdjustButton (hwnd, WID_CB_SSWALWAYSONTOP, pset->SSWAlwaysOnTop ()); switch (pset->QuerySSWCaptureType ()) { case CAP_WINDOWINT: WinSendDlgItemMsg (hwnd, WID_SSWWINDOWINT, BM_CLICK, MPFROMSHORT(TRUE), 0); break; case CAP_SCREENREGION: WinSendDlgItemMsg (hwnd, WID_SSWSCREENREGION, BM_CLICK, MPFROMSHORT(TRUE), 0); break; case CAP_WINDOW: WinSendDlgItemMsg (hwnd, WID_SSWWINDOW, BM_CLICK, MPFROMSHORT(TRUE), 0); break; default: WinSendDlgItemMsg (hwnd, WID_SSWSCREEN, BM_CLICK, MPFROMSHORT(TRUE), 0); break; } // show or hide snapshot window if (! WinSendDlgItemMsg (hwnd, WID_CB_SSWENABLE, BM_QUERYCHECK, 0, 0)) WinShowWindow (hwndSnapshot, FALSE); else WinShowWindow (hwndSnapshot, TRUE); #ifdef _DOLOGDEBUG_ LogDebug( "Page1Procedure: end UM_SETTINGS2DIALOG" ); #endif return MRESULT (FALSE); case UM_ADJUST: #ifdef _DOLOGDEBUG_ LogDebug( "Page2Procedure: start UM_ADJUST" ); #endif // query state of checkbuttons and set flags pset->SSWHide(WinQueryButtonCheckstate(hwnd, WID_CB_SSWHIDE)); #ifdef _DOLOGDEBUG_ LogDebug( "Page2Procedure: checkpoint 1" ); #endif pset->SnapshotWindow(WinQueryButtonCheckstate(hwnd, WID_CB_SSWENABLE)); pset->SSWAlwaysOnTop(WinQueryButtonCheckstate(hwnd, WID_CB_SSWALWAYSONTOP)); #ifdef _DOLOGDEBUG_ LogDebug( "Page2Procedure: checkpoint 2" ); #endif // get ssw capture type if (WinSendMsg (WinWindowFromID (hwnd, WID_SSWSCREENREGION), BM_QUERYCHECK, 0,0)) pset->SetSSWCaptureType (CAP_SCREENREGION); else if (WinSendMsg (WinWindowFromID (hwnd, WID_SSWWINDOW), BM_QUERYCHECK, 0,0)) pset->SetSSWCaptureType (CAP_WINDOW); else if (WinSendMsg (WinWindowFromID (hwnd, WID_SSWWINDOWINT), BM_QUERYCHECK, 0,0)) pset->SetSSWCaptureType (CAP_WINDOWINT); else pset->SetSSWCaptureType (CAP_SCREEN); #ifdef _DOLOGDEBUG_ LogDebug( "Page2Procedure: end UM_ADJUST" ); #endif break; case WM_CONTROL: switch (SHORT1FROMMP (mp1)) { case WID_CB_SSWENABLE: if (! WinSendDlgItemMsg (hwnd, WID_CB_SSWENABLE, BM_QUERYCHECK, 0, 0)) WinShowWindow (hwndSnapshot, FALSE); else WinShowWindow (hwndSnapshot, TRUE); break; } return MRESULT (FALSE); } return WinDefDlgProc (hwnd, msg, mp1, mp2); }
MRESULT EXPENTRY CDToolsDlgProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ) { HAB hab; char chrLoadError[CCHMAXPATH]; STARTDATA startData={0}; PSZ pszTitle="CDRecord/2"; APIRET rc; PID pid; ULONG ulSessionID=0; char chrParams[CCHMAXPATH]; char chrParams2[20]; switch( msg ) { case WM_INITDLG: { WinCheckButton(hwnd,RBID_FAST,TRUE); WinCheckButton(hwnd,RBID_LOADDISK,TRUE); WinCheckButton(hwnd,CBID_DUMMY,TRUE); WinCheckButton(hwnd,CBID_FIXDUMMY,TRUE); } return (MRESULT) TRUE; case WM_DESTROY: break; case WM_CLOSE: if(WinMessageBox( HWND_DESKTOP, hwnd, "Do you really want to quit?", "Question", 0UL, MB_OKCANCEL | MB_ICONQUESTION )==MBID_OK) WinPostMsg(hwnd,WM_QUIT,(MPARAM)0,(MPARAM)0); return 0; case WM_COMMAND: { memset(&startData,0,sizeof(startData)); startData.Length=sizeof(startData); startData.Related=SSF_RELATED_INDEPENDENT; startData.FgBg=SSF_FGBG_FORE; startData.TraceOpt=SSF_TRACEOPT_NONE; startData.PgmTitle=pszTitle; startData.PgmName=chrCDRecord; /* 13.Apr.2000: changed to SSF_INHERTOPT_PARENT so modified environment by a skript is inherited */ startData.InheritOpt=SSF_INHERTOPT_PARENT; startData.SessionType=SSF_TYPE_WINDOWABLEVIO; startData.PgmControl=SSF_CONTROL_VISIBLE|SSF_CONTROL_MAXIMIZE|SSF_CONTROL_NOAUTOCLOSE; startData.InitXPos=30; startData.InitYPos=30; startData.InitXSize=500; startData.InitYSize=400; startData.ObjectBuffer=chrLoadError; startData.ObjectBuffLen=(ULONG)sizeof(chrLoadError); switch( SHORT1FROMMP( mp1 ) ) { case PBID_BLANK: if(!WinQueryButtonCheckstate(hwnd,CBID_DUMMY)) { if(WinMessageBox( HWND_DESKTOP, hwnd, "Do you really want to perform a real write?", "Dummy is unchecked!", 0UL, MB_OKCANCEL | MB_ICONEXCLAMATION )==MBID_CANCEL)break; sprintf(chrParams2,"%s",""); } else sprintf(chrParams2,"%s","-dummy"); if(WinQueryButtonCheckstate(hwnd,RBID_FAST)) sprintf(chrParams,"%s %s %s",chrCDROptions,chrParams2,"-blank=fast -eject"); if(WinQueryButtonCheckstate(hwnd,RBID_ALL)) sprintf(chrParams,"%s %s %s",chrCDROptions,chrParams2,"-blank=all -eject"); if(WinQueryButtonCheckstate(hwnd,RBID_LASTSESSION)) sprintf(chrParams,"%s %s %s",chrCDROptions,chrParams2,"-blank=session -eject"); if(WinQueryButtonCheckstate(hwnd,RBID_UNCLOSE)) sprintf(chrParams,"%s %s %s",chrCDROptions,chrParams2,"-blank=unclose -eject"); startData.PgmInputs=chrParams; rc=DosStartSession(&startData,&ulSessionID,&pid); break; case PBID_FIX: if(!WinQueryButtonCheckstate(hwnd,CBID_FIXDUMMY)) { if(WinMessageBox( HWND_DESKTOP, hwnd, "Do you really want to perform a real write?", "Dummy is unchecked!", 0UL, MB_OKCANCEL | MB_ICONEXCLAMATION )==MBID_CANCEL)break; sprintf(chrParams,"%s %s",chrCDROptions," -fix"); } else sprintf(chrParams,"%s %s",chrCDROptions,"-dummy -fix"); startData.PgmInputs=chrParams; rc=DosStartSession(&startData,&ulSessionID,&pid); break; case PBID_MISC: if(WinQueryButtonCheckstate(hwnd,RBID_UNLOADDISK)) sprintf(chrParams,"%s %s",chrCDROptions,"-eject"); else if(WinQueryButtonCheckstate(hwnd,RBID_LOADDISK)) sprintf(chrParams,"%s %s",chrCDROptions,"-load"); else if(WinQueryButtonCheckstate(hwnd,RBID_RESETDEVICE)) sprintf(chrParams,"%s %s",chrCDROptions,"-reset"); else if(WinQueryButtonCheckstate(hwnd,RBID_SHOWTOC)) sprintf(chrParams,"%s %s",chrCDROptions,"-toc"); else if(WinQueryButtonCheckstate(hwnd,RBID_SHOWATIP)) sprintf(chrParams,"%s %s",chrCDROptions,"-atip"); startData.PgmInputs=chrParams; rc=DosStartSession(&startData,&ulSessionID,&pid); break; case PBID_EXIT: WinPostMsg(hwnd,WM_CLOSE,(MPARAM)0,(MPARAM)0); break; case PBID_SETTINGS: if( WinDlgBox( HWND_DESKTOP, hwnd, CDSettingsDlgProc, NULLHANDLE,DLGID_SETUP, 0 ) == DID_ERROR ) { WinMessageBox( HWND_DESKTOP, HWND_DESKTOP, "Warning! Cannot open Settings dialog!", "", 0UL, MB_OK | MB_ICONEXCLAMATION ); } break; default: break; } } return (MRESULT) TRUE; break; } return( WinDefDlgProc( hwnd, msg, mp1, mp2 ) ); }
MRESULT EXPENTRY SETTINGS :: Page3Procedure (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { static PSETTINGS pset = NULL; switch (msg) { case WM_INITDLG: #ifdef _DOLOGDEBUG_ LogDebug( "Page3Procedure: start WM_INITDLG" ); #endif pset = PSETTINGS (mp2); #ifdef _DOLOGDEBUG_ LogDebug( "Page3Procedure: end WM_INITDLG" ); #endif return MRESULT (FALSE); case WM_COMMAND: if( SHORT1FROMMP( mp1 ) == DID_CANCEL ) WinPostMsg( g_hwndSettingsDialog, msg, mp1, mp2 ); return MRESULT( FALSE ); case UM_SETTINGS2DIALOG: #ifdef _DOLOGDEBUG_ LogDebug( "Page3Procedure: start UM_SETTINGS2DIALOG" ); #endif // set state of checkbuttons pset->AdjustButton (hwnd, WID_CB_SERIALCAPTURE, pset->SerialCapture ()); pset->AdjustButton (hwnd, WID_CB_DELAYCOUNTDOWN, pset->DelayCountdown ()); pset->AdjustButton (hwnd, WID_CB_DOSOUND, pset->DoSound ()); pset->AdjustButton (hwnd, WID_CB_IDLEPRIORITY, pset->QueryFlag(SEI_IDLEPRIORITY)); // init delay time sb WinSendDlgItemMsg (hwnd, WID_SB_DELAYTIME, SPBM_SETLIMITS, MPFROMLONG (65536), MPFROMLONG (1)); WinSendDlgItemMsg (hwnd, WID_SB_DELAYTIME, SPBM_SETCURRENTVALUE, MPFROMLONG (pset->QueryDelayTime ()), 0); // init serial time sb WinSendDlgItemMsg (hwnd, WID_SB_SERIALTIME, SPBM_SETLIMITS, MPFROMLONG (65536), MPFROMLONG (1)); WinSendDlgItemMsg (hwnd, WID_SB_SERIALTIME, SPBM_SETCURRENTVALUE, MPFROMLONG (pset->QuerySerialTime ()), 0); #ifdef _DOLOGDEBUG_ LogDebug( "Page3Procedure: end UM_SETTINGS2DIALOG" ); #endif return MRESULT (FALSE); case UM_ADJUST: { #ifdef _DOLOGDEBUG_ LogDebug( "Page3Procedure: start UM_ADJUST" ); #endif // query state of checkbuttons and set flags pset->SerialCapture(WinQueryButtonCheckstate (hwnd, WID_CB_SERIALCAPTURE)); #ifdef _DOLOGDEBUG_ LogDebug( "Page3Procedure: checkpoint 1" ); #endif pset->DelayCountdown(WinQueryButtonCheckstate (hwnd, WID_CB_DELAYCOUNTDOWN)); pset->DoSound(WinQueryButtonCheckstate (hwnd, WID_CB_DOSOUND)); pset->SetFlag(SEI_IDLEPRIORITY, WinQueryButtonCheckstate (hwnd, WID_CB_IDLEPRIORITY)); #ifdef _DOLOGDEBUG_ LogDebug( "Page3Procedure: checkpoint 2" ); #endif // delay time ULONG ul; if (! BOOL (WinSendDlgItemMsg (hwnd, WID_SB_DELAYTIME, SPBM_QUERYVALUE, MPFROMP (&ul), MPFROM2SHORT (0, 0)))) ul = 5L; pset->SetDelayTime (ul); #ifdef _DOLOGDEBUG_ LogDebug( "Page3Procedure: checkpoint 3" ); #endif // serial time if (! BOOL (WinSendDlgItemMsg (hwnd, WID_SB_SERIALTIME, SPBM_QUERYVALUE, MPFROMP (&ul), MPFROM2SHORT (0, 0)))) ul = 10L; pset->SetSerialTime (ul); #ifdef _DOLOGDEBUG_ LogDebug( "Page3Procedure: end UM_ADJUST" ); #endif } break; case WM_CONTROL: switch (SHORT1FROMMP (mp1)) { case WID_CB_SERIALCAPTURE: { HWND hwndButton = WinWindowFromID (WinWindowFromID (hwndFrame, FID_CLIENT), WID_CB_DELAYEDCAPTURE); if (! WinSendDlgItemMsg (hwnd, WID_CB_SERIALCAPTURE, BM_QUERYCHECK, 0, 0)) WinEnableWindow (hwndButton, TRUE); else WinEnableWindow (hwndButton, FALSE); } break; } return MRESULT (FALSE); } return WinDefDlgProc (hwnd, msg, mp1, mp2); }