LRESULT CALLBACK ExToolsEditProc(HWND hwnd, UINT iMessage, WPARAM wParam, LPARAM lParam) { static TOOL *item = NULL; char buf[4096]; switch (iMessage) { case WM_INITDIALOG: { item = (TOOL *)lParam; SetDlgItemText(hwnd, IDC_EXT_NAME, item->name); SetDlgItemText(hwnd, IDC_EXT_COMMAND, item->cmd); SetDlgItemText(hwnd, IDC_EXT_ARG, item->args); SetDlgItemText(hwnd, IDC_EXT_WD, item->wd); CheckDlgButton(hwnd, IDC_EXT_CW, item->CommandWindow ? BST_CHECKED : BST_UNCHECKED); break; } case WM_COMMAND: { switch(LOWORD(wParam)) { case IDOK: GetDlgItemText(hwnd, IDC_EXT_NAME, buf, sizeof(buf)); if (buf[0]) { free(item->name); item->name = strdup(buf); } GetDlgItemText(hwnd, IDC_EXT_COMMAND, buf, sizeof(buf)); free(item->cmd); item->cmd = strdup(buf); GetDlgItemText(hwnd, IDC_EXT_ARG, buf, sizeof(buf)); free(item->args); item->args = strdup(buf); GetDlgItemText(hwnd, IDC_EXT_WD, buf, sizeof(buf)); free(item->wd); item->wd = strdup(buf); item->CommandWindow = IsDlgButtonChecked(hwnd, IDC_EXT_CW) == BST_CHECKED; EndDialog(hwnd, 0); break; case IDCANCEL: EndDialog(hwnd, 0); break; case IDHELP: ContextHelp(IDH_CUSTOM_TOOLS_EDITOR); break; } } break; } return 0; }
static int FAR PASCAL hbpDlgProc(HWND hwnd, UINT wmsg, WPARAM wParam, LPARAM lParam) { NMHDR *nmhead; int disable_state; switch (wmsg) { case WM_INITDIALOG: //NewFocus(hwnd,IDC_BPSSENABLE); CenterWindow(hwnd); SetHDWEDBFields(hwnd, IDC_BPEDIT1, 0); SetHDWEDBFields(hwnd, IDC_BPEDIT2, 1); SetHDWEDBFields(hwnd, IDC_BPEDIT3, 2); SetHDWEDBFields(hwnd, IDC_BPEDIT4, 3); // SetCBField(hwnd,IDC_BPSSENABLE,!!(workProj.buildFlags & BF_HWBP)) ; break; case WM_COMMAND: if (wParam == IDOK) { GetHDWEDBFields(hwnd, IDC_BPEDIT1, 0); GetHDWEDBFields(hwnd, IDC_BPEDIT2, 1); GetHDWEDBFields(hwnd, IDC_BPEDIT3, 2); GetHDWEDBFields(hwnd, IDC_BPEDIT4, 3); #ifdef XXXXX if (GetCBField(hwnd, IDC_BPSSENABLE)) workProj.buildFlags |= BF_HWBP; else workProj.buildFlags &= ~BF_HWBP; #endif SendDIDMessage(DID_BREAKWND, WM_RESTACK, 0, 0); EndDialog(hwnd, 1); } else if (wParam == IDCANCEL) { EndDialog(hwnd, 0); break; } else if (wParam == IDHELP) { ContextHelp(IDH_HARDWARE_BREAKPOINTS_DIALOG); break; } break; case WM_CLOSE: EndDialog(hwnd, 0); break; } return 0; }
long APIENTRY NewFileProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: if (!CreateNewFileData(hwnd)) { EndDialog(hwnd, 1); } else { CenterWindow(hwnd); } return 1; case WM_NOTIFY: if (((LPNMHDR)lParam)->code == NM_CUSTOMDRAW) { SetWindowLong(hwnd, DWL_MSGRESULT, CustomDrawNewFile(hwnd, (LPNMLVCUSTOMDRAW)lParam)); return TRUE; } else if (((LPNMHDR)lParam)->code == LVN_KEYDOWN) { switch (((LPNMLVKEYDOWN)lParam)->wVKey) { case VK_INSERT: if (GetKeyState(VK_CONTROL) & 0x80000000) { HWND hwndLV = GetDlgItem(hwnd, IDC_LVNEWFILE); ListView_SetSelectionMark(hwndLV, -1); } else { HWND hwndLV = GetDlgItem(hwnd, IDC_LVNEWFILE); int i = ListView_GetSelectionMark(hwndLV); ListView_SetSelectionMark(hwndLV, i); ListView_SetItemState(hwndLV, i, LVIS_SELECTED, LVIS_SELECTED); } break; } } return 0; case WM_COMMAND: switch (wParam &0xffff) { case IDOK: if (ParseNewFileData(hwnd)) EndDialog(hwnd, IDOK); break; case IDCANCEL: EndDialog(hwnd, IDCANCEL); break; case IDHELP: ContextHelp(IDH_NEW_FILE_DIALOG); break; } break; case WM_CLOSE: PostMessage(hwnd, WM_COMMAND, IDCANCEL, 0); break; } return 0; }
long APIENTRY FileChangeProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: if (!CreateFileSaveData(hwnd, TRUE)) EndDialog(hwnd, 1); else CenterWindow(hwnd); return 1; case WM_NOTIFY: if (((LPNMHDR)lParam)->code == NM_CUSTOMDRAW) { SetWindowLong(hwnd, DWL_MSGRESULT, CustomDraw(hwnd, (LPNMLVCUSTOMDRAW)lParam)); return TRUE; } else if (((LPNMHDR)lParam)->code == LVN_KEYDOWN) { switch (((LPNMLVKEYDOWN)lParam)->wVKey) { case VK_INSERT: if (GetKeyState(VK_CONTROL) & 0x80000000) { HWND hwndLV = GetDlgItem(hwnd, IDC_FILELIST); ListView_SetCheckState(hwndLV, -1, TRUE); SetOKText(hwnd, "Reload"); } else { HWND hwndLV = GetDlgItem(hwnd, IDC_FILELIST); int i = ListView_GetSelectionMark(hwndLV); ListView_SetCheckState(hwndLV, i, TRUE); } break; case VK_DELETE: if (GetKeyState(VK_CONTROL) & 0x80000000) { HWND hwndLV = GetDlgItem(hwnd, IDC_FILELIST); ListView_SetCheckState(hwndLV, -1, FALSE); SetOKText(hwnd, "Reload"); } else { HWND hwndLV = GetDlgItem(hwnd, IDC_FILELIST); int i = ListView_GetSelectionMark(hwndLV); ListView_SetCheckState(hwndLV, i, FALSE); } break; } } if (wParam == IDC_FILELIST) { if (((LPNMHDR)lParam)->code == LVN_GETDISPINFO) { LV_DISPINFO *plvdi = (LV_DISPINFO*)lParam; struct saveData *sd; plvdi->item.mask |= LVIF_TEXT | LVIF_DI_SETITEM; plvdi->item.mask &= ~LVIF_STATE; switch (plvdi->item.iSubItem) { case 2: sd = (struct saveData *)plvdi->item.lParam; if (sd->asProject) { PROJECTITEM *pj = sd->data; plvdi->item.pszText = pj->displayName; } else { DWINFO *ptr = sd->data; plvdi->item.pszText = ptr->dwTitle; } break; } } else if (((LPNMHDR)lParam)->code == LVN_ITEMCHANGED) { SetOKText(hwnd, "Reload"); } } break; case WM_COMMAND: switch (wParam &0xffff) { case IDOK: ParseFileSaveData(hwnd, TRUE); EndDialog(hwnd, IDOK); break; case IDCANCEL: EndDialog(hwnd, IDCANCEL); break; case IDC_SELECTALL: { HWND hwndLV = GetDlgItem(hwnd, IDC_FILELIST); ListView_SetCheckState(hwndLV, -1, TRUE); SetOKText(hwnd, "Reload"); } break; case IDC_DESELECTALL: { HWND hwndLV = GetDlgItem(hwnd, IDC_FILELIST); ListView_SetCheckState(hwndLV, -1, FALSE); SetOKText(hwnd, "Reload"); } break; case IDHELP: ContextHelp(IDH_RELOAD_FILE_DIALOG); break; } break; case WM_CLOSE: PostMessage(hwnd, WM_COMMAND, IDCANCEL, 0); break; } return 0; }
LRESULT CALLBACK ProjectDependsProc(HWND hwnd, UINT iMessage, WPARAM wParam, LPARAM lParam) { static PROJECTITEM *proj; static BOOLEAN showingBuildOrder; PROJECTITEM *temp; int id; switch (iMessage) { case WM_INITDIALOG: // IDC_DEPENDENCIESLABEL, IDC_DEPENDS, IDC_SELECTPROJECT proj = (PROJECTITEM *)lParam; // go through project list and add to combo temp=workArea->children; while (temp) { id = SendDlgItemMessage(hwnd, IDC_SELECTPROJECT, CB_ADDSTRING, 0, (LPARAM)temp->displayName); SendDlgItemMessage(hwnd, IDC_SELECTPROJECT, CB_SETITEMDATA, id, (LPARAM)temp); temp = temp->next; } SelectProject(hwnd, proj); PopulateProject(hwnd, proj); CenterWindow(hwnd); return TRUE; case WM_NOTIFY: if (((LPNMHDR)lParam)->code == NM_CUSTOMDRAW) { SetWindowLong(hwnd, DWL_MSGRESULT, CustomDraw(hwnd, showingBuildOrder, proj, (LPNMLVCUSTOMDRAW)lParam)); return TRUE; } else { ModifyProjectDepends(hwnd, showingBuildOrder, proj, (LV_DISPINFO*)lParam); } break; case WM_COMMAND: switch(LOWORD(wParam)) { case IDC_SELECTPROJECT: if (HIWORD(wParam) == CBN_SELCHANGE) { id = SendDlgItemMessage(hwnd, IDC_SELECTPROJECT, CB_GETCURSEL, 0, 0); proj = (PROJECTITEM *)SendDlgItemMessage(hwnd, IDC_SELECTPROJECT, CB_GETITEMDATA, id, 0); PopulateProject(hwnd, proj); } break; case IDOK: case IDCANCEL: EndDialog(hwnd, 0); showingBuildOrder = FALSE; break; case IDHELP: ContextHelp(IDH_PROJECT_DEPENDENCIES_DIALOG); break; case IDC_BUILDORDER: showingBuildOrder = !showingBuildOrder; if (showingBuildOrder) { SendDlgItemMessage(hwnd, IDC_SELECTPROJECT, CB_SETCURSEL, -1, 0); PopulateBuildOrder(hwnd); SetWindowText(GetDlgItem(hwnd, IDC_DEPENDENCIESLABEL), "Calculated Build Order:"); SetWindowText(GetDlgItem(hwnd, IDC_BUILDORDER), "View Dependencies"); EnableWindow(GetDlgItem(hwnd, IDC_SELECTPROJECT), FALSE); } else { SelectProject(hwnd, proj); PopulateProject(hwnd, proj); SetWindowText(GetDlgItem(hwnd, IDC_DEPENDENCIESLABEL), "Select Dependencies: "); SetWindowText(GetDlgItem(hwnd, IDC_BUILDORDER), "View Build Order"); EnableWindow(GetDlgItem(hwnd, IDC_SELECTPROJECT), TRUE); } break; } break; } return 0; }
LRESULT CALLBACK DataBpProc(HWND hwnd, UINT iMessage, WPARAM wParam, LPARAM lParam) { switch (iMessage) { case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: SendDIDMessage(DID_BREAKWND, WM_RESTACK, 0, 0); EndDialog(hwnd, 0); break; case IDC_REMOVEDATABP: RemoveDataBp(hwnd); break; case IDC_ADDDATABP: AddDataBp(hwnd); break; case IDHELP: ContextHelp(IDH_DATA_BREAKPOINTS_DIALOG); break; } break; case WM_CLOSE: EndDialog(hwnd, 0); break; case WM_INITDIALOG: LoadDataBreakpoints(hwnd); CenterWindow(hwnd); break; case WM_NOTIFY: if (((LPNMHDR)lParam)->code == LVN_KEYDOWN) { switch (((LPNMLVKEYDOWN)lParam)->wVKey) { case VK_INSERT: if (GetKeyState(VK_CONTROL) & 0x80000000) { HWND hwndLV = GetDlgItem(hwnd, IDC_BPLIST); ListView_SetCheckState(hwndLV, -1, TRUE); } else { HWND hwndLV = GetDlgItem(hwnd, IDC_BPLIST); int i = ListView_GetSelectionMark(hwndLV); ListView_SetCheckState(hwndLV, i, TRUE); } break; case VK_DELETE: if (GetKeyState(VK_CONTROL) & 0x80000000) { HWND hwndLV = GetDlgItem(hwnd, IDC_BPLIST); ListView_SetCheckState(hwndLV, -1, FALSE); } else { HWND hwndLV = GetDlgItem(hwnd, IDC_BPLIST); int i = ListView_GetSelectionMark(hwndLV); ListView_SetCheckState(hwndLV, i, FALSE); } break; } } if (wParam == IDC_BPLIST) { if (((LPNMHDR)lParam)->code == LVN_GETDISPINFO) { LV_DISPINFO *plvdi = (LV_DISPINFO*)lParam; DWINFO *ptr; plvdi->item.mask |= LVIF_TEXT | LVIF_DI_SETITEM; plvdi->item.mask &= ~LVIF_STATE; switch (plvdi->item.iSubItem) { case 2: plvdi->item.pszText = ((DATABREAK *)plvdi->item.lParam)->name; break; default: plvdi->item.pszText = ""; break; } } else if (((LPNMHDR)lParam)->code == LVN_ITEMCHANGED) { LPNMLISTVIEW lpnmListView = (LPNMLISTVIEW)lParam; HWND hwndLV = GetDlgItem(hwnd, IDC_BPLIST); ((DATABREAK *)lpnmListView->lParam)->disable = !(((DATABREAK *)lpnmListView->lParam)->active = ListView_GetCheckState(hwndLV, lpnmListView->iItem)); } } break; } return 0; }
LRESULT CALLBACK ExToolsCustomizeProc(HWND hwnd, UINT iMessage, WPARAM wParam, LPARAM lParam) { static int oldCount; static TOOL **oldOrder; switch (iMessage) { case WM_NOTIFY: if (wParam == IDC_EXTOOLCUSTOM) { if (((LPNMHDR)lParam)->code == LVN_GETDISPINFO) { LV_DISPINFO *plvdi = (LV_DISPINFO*)lParam; plvdi->item.mask |= LVIF_TEXT | LVIF_DI_SETITEM; plvdi->item.mask &= ~LVIF_STATE; switch (plvdi->item.iSubItem) { TOOL *curTools; int i; case 2: curTools = tools; for (i = plvdi->item.iItem; curTools && (i || curTools->removing); curTools = curTools->next) if (!curTools->removing) i--; if (curTools) plvdi->item.pszText = curTools->name; break; default: plvdi->item.pszText = ""; break; } } else if (((LPNMHDR)lParam)->code == LVN_ITEMCHANGED) { if (!start) { LPNMLISTVIEW lp = (LPNMLISTVIEW)lParam; TOOL *curTools = tools; int i; for (i = lp->iItem; curTools && (i || curTools->removing); curTools = curTools->next) if (!curTools->removing) i--; if (curTools) curTools->enabled = ListView_GetCheckState(GetDlgItem(hwnd, IDC_EXTOOLCUSTOM), lp->iItem) ? 1 : 0; } } else if (((LPNMHDR)lParam)->code == LVN_KEYDOWN) { switch (((LPNMLVKEYDOWN)lParam)->wVKey) { case VK_INSERT: if (GetKeyState(VK_CONTROL) & 0x80000000) { HWND hwndLV = GetDlgItem(hwnd, IDC_EXTOOLCUSTOM); ListView_SetCheckState(hwndLV, -1, TRUE); } else { HWND hwndLV = GetDlgItem(hwnd, IDC_EXTOOLCUSTOM); int i = ListView_GetSelectionMark(hwndLV); ListView_SetCheckState(hwndLV, i, TRUE); } break; case VK_DELETE: if (GetKeyState(VK_CONTROL) & 0x80000000) { HWND hwndLV = GetDlgItem(hwnd, IDC_EXTOOLCUSTOM); ListView_SetCheckState(hwndLV, -1, FALSE); } else { HWND hwndLV = GetDlgItem(hwnd, IDC_EXTOOLCUSTOM); int i = ListView_GetSelectionMark(hwndLV); ListView_SetCheckState(hwndLV, i, FALSE); } break; } } } return 0; case WM_COMMAND: switch (wParam & 0xffff) { case IDC_EXTOOLSADD: PopulateExToolsView(hwnd, CreateNewExTool(hwnd), FALSE); EnableWindow(GetDlgItem(hwnd, IDOK), TRUE); EnableWindow(GetDlgItem(hwnd, IDC_EXTOOLSEDIT), TRUE); EnableWindow(GetDlgItem(hwnd, IDC_EXTOOLSREMOVE), TRUE); EnableWindow(GetDlgItem(hwnd, IDC_EXTOOLSMOVEUP), TRUE); EnableWindow(GetDlgItem(hwnd, IDC_EXTOOLSMOVEDOWN), TRUE); SendMessage(hwnd, WM_COMMAND, IDC_EXTOOLSEDIT, 0); break; case IDC_EXTOOLSEDIT: Edit(hwnd); PopulateExToolsView(hwnd, GetSelected(hwnd), FALSE); EnableWindow(GetDlgItem(hwnd, IDOK), TRUE); break; case IDC_EXTOOLSREMOVE: PopulateExToolsView(hwnd, RemoveExTool(hwnd), FALSE); EnableWindow(GetDlgItem(hwnd, IDOK), TRUE); if (!ListView_GetItemCount(GetDlgItem(hwnd, IDC_EXTOOLCUSTOM))) { EnableWindow(GetDlgItem(hwnd, IDC_EXTOOLSEDIT), FALSE); EnableWindow(GetDlgItem(hwnd, IDC_EXTOOLSREMOVE), FALSE); EnableWindow(GetDlgItem(hwnd, IDC_EXTOOLSMOVEUP), FALSE); EnableWindow(GetDlgItem(hwnd, IDC_EXTOOLSMOVEDOWN), FALSE); } break; case IDC_EXTOOLSMOVEUP: PopulateExToolsView(hwnd, MoveExTool(hwnd, TRUE), FALSE); EnableWindow(GetDlgItem(hwnd, IDOK), TRUE); break; case IDC_EXTOOLSMOVEDOWN: PopulateExToolsView(hwnd, MoveExTool(hwnd, FALSE), FALSE); EnableWindow(GetDlgItem(hwnd, IDOK), TRUE); break; case IDOK: { TOOL **curTools = &tools; while (*curTools) { (*curTools)->adding = FALSE; if ((*curTools)->removing) { TOOL *cur = *curTools; TOOL *next = cur->next; free(cur->args); free(cur->cmd); free(cur->name); free(cur->wd); free(cur); *curTools = next; } else { curTools = &(*curTools)->next; } } free(oldOrder); ExternalToolsToMenu(); EndDialog(hwnd, IDOK); break; } case IDCANCEL: { int i; TOOL **curTools = &tools; while (*curTools) { (*curTools)->removing = FALSE; if ((*curTools)->adding) { TOOL *cur = *curTools; TOOL *next = cur->next; free(cur->args); free(cur->cmd); free(cur->name); free(cur->wd); free(cur); *curTools = next; } else { curTools = &(*curTools)->next; } } curTools = &tools; for (i=0; i < oldCount ;i++) { *curTools = oldOrder[i]; (*curTools)->next = NULL; curTools = &((*curTools)->next); } EndDialog(hwnd, IDCANCEL); break; } case IDHELP: ContextHelp(IDH_CUSTOM_TOOLS_DIALOG); break; } break; case WM_CLOSE: PostMessage(hwnd, WM_COMMAND, IDCANCEL, 0); break; case WM_INITDIALOG: { TOOL *curTools = tools; HWND hwndLV = GetDlgItem(hwnd, IDC_EXTOOLCUSTOM); oldCount = 0; for (oldCount = 0; curTools; curTools=curTools->next, oldCount++); if (oldCount) { oldOrder = calloc(oldCount, sizeof(TOOL *)); oldCount = 0; for (curTools = tools; curTools; curTools= curTools->next, oldCount++) { oldOrder[oldCount] = curTools; } } else { oldOrder = NULL; EnableWindow(GetDlgItem(hwnd, IDOK), FALSE); EnableWindow(GetDlgItem(hwnd, IDC_EXTOOLSEDIT), FALSE); EnableWindow(GetDlgItem(hwnd, IDC_EXTOOLSREMOVE), FALSE); EnableWindow(GetDlgItem(hwnd, IDC_EXTOOLSMOVEUP), FALSE); EnableWindow(GetDlgItem(hwnd, IDC_EXTOOLSMOVEDOWN), FALSE); } CenterWindow(hwnd); PopulateExToolsView(hwnd,0, TRUE); break; } } return 0; }