BOOL FAR PASCAL OpenHook(HWND hwnd, UINT wm, WPARAM wParam, LPARAM lParam) { switch (wm) { #ifndef AUTOSUBCLAS // NOTNEEDED because we call Ctl3dAutoSubclass #ifdef WIN32 case WM_CTLCOLORMSGBOX: case WM_CTLCOLOREDIT: case WM_CTLCOLORLISTBOX: case WM_CTLCOLORBTN: case WM_CTLCOLORDLG: case WM_CTLCOLORSCROLLBAR: case WM_CTLCOLORSTATIC: #else case WM_CTLCOLOR: #endif // WIN32 return (BOOL) Ctl3dCtlColorEx(wm, wParam, lParam); #endif case WM_INITDIALOG: // We must call this to subclass the directory listbox even // if the app calls Ctl3dAutoSubclass (commdlg bug) Ctl3dSubclassDlg(hwnd, CTL3D_ALL); break; } return FALSE; }
HBRUSH _DLLFAR _CB_Ctl3dCtlColorEx(UINT wm, WPARAM wp, LPARAM lp ) { #if 0 return( Ctl3dCtlColorEx( wm, wp, lp ) ); #else return( NULL ); #endif }
BOOL FAR PASCAL DialogProc(HWND hdlg, UINT wm, WPARAM wParam, LPARAM lParam) { BOOL fResult; void FileOpen(); switch(wm) { default: return FALSE; case WM_COMMAND: if(wParam == IDOK) { EndDialog(hdlg, fResult); } else if (wParam == 1000) { MessageBox(hdlg, TEXT( "asdf" ),TEXT( "asdf" ), MB_OK); FileOpen(hdlg); } else { HWND hwndT; hwndT = GetDlgItem(hdlg, wParam-1000); // hwndT = GetDlgItem(hdlg, wParam); if (hwndT != NULL) { // ShowWindow(hwndT, IsWindowVisible(hwndT) ? SW_HIDE : SW_SHOW);// EnableWindow(hwndT, !IsWindowEnabled(hwndT)); } } break; #ifndef AUTOSUBCLASS // NOTNEEDED because we call Ctl3dAutoSubclass #ifdef WIN32 case WM_CTLCOLORMSGBOX: case WM_CTLCOLOREDIT: case WM_CTLCOLORLISTBOX: case WM_CTLCOLORBTN: case WM_CTLCOLORDLG: case WM_CTLCOLORSCROLLBAR: case WM_CTLCOLORSTATIC: #else case WM_CTLCOLOR: #endif // WIN32 return (BOOL) Ctl3dCtlColorEx(wm, wParam, lParam); case WM_INITDIALOG: fResult = Ctl3dEnabled(); fResult = Ctl3dSubclassDlg(hdlg, CTL3D_ALL); break; case WM_SYSCOLORCHANGE: Ctl3dColorChange(); #endif } return TRUE; }
BOOL EXPORT MultiSelectionDlg(HWND hWnd, unsigned msg, WORD wParam, long lParam) { #ifdef INPUTFORM switch (msg) { case WM_INITDIALOG: #ifdef CTL3D if (Kpp3dCtrls()) Ctl3dSubclassDlg(hWnd, CTL3D_ALL); #endif SetProp(hWnd, (LPSTR) piList, idMultiInputList); LoadMultiSelectionDlg(hWnd, idMultiInputList, idMultiTitle); KppInitDialogFont(hWnd, TRUE); SendMessage(GetDlgItem (hWnd, ID_LISTBOX), LB_SETSEL, 1, 0L); idMultiInputList = NULLID; KppCenterPopupWindow(hWnd); return TRUE; #ifdef CTL3D case WM_CTLCOLOR: if (Kpp3dCtrls()) return Ctl3dCtlColorEx(hWnd, wParam, lParam); break; #endif case WM_COMMAND: switch (wParam) { case IDOK: { LISTID idInputList = GetProp(hWnd, (LPSTR) piList); LISTID idList = SaveMultiSelectionDlg(hWnd, idInputList); RemoveProp(hWnd, (LPSTR) piList); EndDialog(hWnd, idList); return TRUE; } case IDCANCEL: RemoveProp(hWnd, (LPSTR) piList); EndDialog(hWnd, NULLID); return TRUE; default: break; } break; default: return FALSE; } #endif return TRUE; }
BOOL EXPORT LBMenuSelectionDlg(HWND hWnd, unsigned msg, WORD wParam, long lParam) { #ifdef INPUTFORM switch (msg) { case WM_INITDIALOG: #ifdef CTL3D if (Kpp3dCtrls()) Ctl3dSubclassDlg(hWnd, CTL3D_ALL); #endif LoadMultiSelectionDlg(hWnd, idLBMenuInputList, idLBMenuTitle); KppInitDialogFont(hWnd, TRUE); SendMessage(GetDlgItem(hWnd, ID_LISTBOX), LB_SETCURSEL, 0, 0L); KppCenterPopupWindow(hWnd); if (wPosSet) SetWindowPos(hWnd, NULL, sMenuXPos, sMenuYPos, 0, 0, SWP_NOSIZE | SWP_NOZORDER); return TRUE; #ifdef CTL3D case WM_CTLCOLOR: if (Kpp3dCtrls()) return Ctl3dCtlColorEx(hWnd, wParam, lParam); break; #endif case WM_COMMAND: switch (wParam) { case ID_LISTBOX: if (HIWORD(lParam) != LBN_DBLCLK) return TRUE; case IDOK: EndDialog(hWnd, SaveLBMenu(hWnd)); return TRUE; case IDCANCEL: EndDialog(hWnd, NULLID); return TRUE; default: break; } break; default: return FALSE; } #endif return TRUE; }
BOOL EXPORT SearchObjDlg(HWND hWnd, WORD msg, WORD wParam, long lParam) { switch (msg) { case WM_INITDIALOG: KppInitDialogFont(hWnd, TRUE); #ifdef CTL3D if (Kpp3dCtrls()) Ctl3dSubclassDlg(hWnd, CTL3D_ALL); #endif hFind = GetDlgItem(hWnd, IDD_FINDTEXT); hName = GetDlgItem(hWnd, IDD_NAME); lpOrigEditProc = (FARPROC) GetWindowLong(hFind, GWL_WNDPROC); SetWindowLong(hFind, GWL_WNDPROC, (long) (FARPROC) FindObjProc); SetWindowLong(hName, GWL_WNDPROC, (long) (FARPROC) FindObjProc); SendMessage(hFind, EM_LIMITTEXT, NAME_LEN, 0L); SendMessage(hName, EM_LIMITTEXT, NAME_LEN, 0L); cCount = 0; SearchedObject = NULLID; SetFocus(hFind); break; #ifdef CTL3D case WM_CTLCOLOR: if (Kpp3dCtrls()) return Ctl3dCtlColorEx(hWnd, wParam, lParam); break; #endif case WM_COMMAND: switch (wParam) { case IDOK: EndDialog(hWnd, TRUE); return TRUE; case IDCANCEL: SearchedObject = NULLID; EndDialog(hWnd, FALSE); return TRUE; } } return FALSE; }
BOOL W_CALLBACK KappaEditObjectDlg(HWND hWndDlg, UINT message, WPARAM wParam, LPARAM lParam) { short sRes, bRet; GLOBALHANDLE hObj = NULL; switch (message) { case WM_INITDIALOG: KppInitDialogFont(hWndDlg, TRUE); #ifdef CTL3D if (Kpp3dCtrls()) Ctl3dSubclassDlg(hWndDlg, CTL3D_ALL); #endif InitEditDlg(hWndDlg, OBJECT); break; case WM_CTLCOLOR: #ifdef CTL3D if (Kpp3dCtrls()) return Ctl3dCtlColorEx(hWndDlg, wParam, lParam); #endif SetBkColor(wParam, GetSysColor(COLOR_WINDOW)); return KppGetBrush(FALSE); case WM_ACTIVATE: if (!wParam || wParam == 2) hEditActive = NULL; else hEditActive = hWndDlg; break; case WM_LBUTTONDOWN: if (hEditActive == hWndDlg) EditParent(hWndDlg, lParam); else hEditActive = hWndDlg; break; case WM_SETFOCUS: { ATOM aFocus = AddAtom("Focus"); HWND hFocus = GetProp(hWndDlg, (LPSTR) aFocus); if (hFocus) { SetFocus(hFocus); return TRUE; } } break; case WM_INITMENUPOPUP: #ifdef OS2_COMP MenuOptions(hWndDlg, (HMENU) wParam, GetDlgItem(hWndDlg, IDDINFO)); PrepareDlgSelection(hWndDlg, (HMENU) wParam); #else if (LOWORD(lParam) == 1) EditMenuOptions(hWndDlg, GetDlgItem(hWndDlg, IDDINFO)); else if ((LOWORD(lParam) == 2) || (LOWORD(lParam) == 3)) PrepareDlgSelection(hWndDlg); #endif break; case WM_SIZE: if (wParam != SIZEICONIC) SetProp(hWndDlg, pIconized, FALSE); else { SetProp(hWndDlg, pIconized, TRUE); SendMessage(hWndDlg, WM_PAINT, 0, 0L); } break; case WM_PAINT: #if WINVER < 0x030a case WM_PAINTICON: #endif if (GetProp(hWndDlg, pIconized)) { PAINTSTRUCT ps; HDC hDC = BeginPaint(hWndDlg, &ps); HBRUSH hBrush = CreateSolidBrush(GetSysColor(COLOR_BACKGROUND)); RECT rect; GetClientRect(hWndDlg, &rect); SelectObject(hDC, hBrush); PatBlt(hDC, 0, 0, rect.right - rect.left, rect.bottom - rect.top, PATCOPY); DrawIcon(hDC, 2, 2, objectIcon); EndPaint(hWndDlg, &ps); DeleteObject(hBrush); return TRUE; } return FALSE; case WM_QUERYDRAGICON: return objectIcon; case WM_COMMAND: hObj = GetProp(hWndDlg, (LPSTR) "hObj"); switch (wParam) { /* OPEN EXISTING OBJECT (USER SELECTED) */ case IDM_OPEN: /* OPEN EXISTING OBJECT (FROM ANOTHER FUNCTION) */ case IDG_AUTOOPEN: /* START A NEW OBJECT */ case IDM_NEW: return OpenObjectClassEditor(hWndDlg, OBJECT, hObj, wParam, lParam); #ifndef RUNTIME case IDM_HELP: KppDoWindowHelp(hWndDlg, "e_instance"); break; #endif case IDG_IMAGE_AUTOOPEN: { HMENU hMenu; /* OPEN EXISTING OBJECT (FROM ANOTHER FUNCTION) */ bRet = OpenObjectClassEditor(hWndDlg, OBJECT, hObj, wParam, lParam); hMenu = GetMenu(hWndDlg); EnableMenuItem(hMenu, IDM_SAVEAS, MF_GRAYED); EnableMenuItem(hMenu, IDM_NEW, MF_GRAYED); EnableMenuItem(hMenu, IDM_OPEN, MF_GRAYED); return bRet; } case IDM_CUT: case IDM_COPY: case IDM_PASTE: case IDM_CLEAR: KpeHandleEditMenu(GetFocus(), wParam); if (wParam != IDM_COPY) MARK_AS_MODIFIED(hWndDlg); break; /* SAVE OBJECT */ case IDM_SAVE: EditorSaveItem(hWndDlg, OBJECT, hObj, SAVE); break; /* SAVE AS */ case IDM_SAVEAS: EditorSaveAs(hWndDlg, OBJECT, hObj, wParam); break; /* Rename the object or class */ case IDM_RENAME: return RenameObjectClassItem(hWndDlg, OBJECT, hObj); /* EXIT IS SELECTED FROM MENU (save and proceed with ABORT) */ case IDM_EXIT: case IDCANCEL: sRes = ExitObjectClassEditor(hWndDlg, OBJECT, hObj); if (sRes == TRUE) DestroyWindow(hWndDlg); return TRUE; case IDDSLOTS: if (HIWORD(lParam) != LBN_DBLCLK) break; return ModifyMethSlot(hWndDlg, SLOT, hObj, IDM_EDIT, OBJECT); case IDM_IMAGE_EDIT: /* from ^E accelerator */ SendMessage(GetFocus(), WM_CHAR, 'E' - 0x40, 0L); return TRUE; case IDM_OPTIONSLAYOUTMODE: /* from ^L accelerator */ SendMessage(GetFocus(), WM_CHAR, 'L' - 0x40, 0L); return TRUE; case IDM_WIDGETCUSTOM: /* from ^G accelerator */ SendMessage(GetFocus(), WM_CHAR, 'G' - 0x40, 0L); return TRUE; case IDM_EDITSLOT: return ModifyMethSlot(hWndDlg, SLOT, hObj, IDM_EDIT, OBJECT); case IDM_DELETESLOT: return ModifyMethSlot(hWndDlg, SLOT, hObj, IDM_DELETE, OBJECT); case IDM_RENAMESLOT: return ModifyMethSlot(hWndDlg, SLOT, hObj, IDM_RENAME, OBJECT); case IDM_MAKELOCALSLOT: return ModifyMethSlot(hWndDlg, SLOT, hObj, IDM_MAKELOCAL, OBJECT); case IDM_EDITMETHODOWNER: return ModifyMethSlot(hWndDlg, METHOD, hObj, IDM_EDITOWNER, OBJECT); case IDM_EDITSLOTOWNER: return ModifyMethSlot(hWndDlg, SLOT, hObj, IDM_EDITOWNER, OBJECT); case IDM_NEWSLOT: if (AddNewSlotMethod(hWndDlg, OBJECT, hObj, SLOT) == TRUE) MARK_AS_MODIFIED(hWndDlg); break; case IDG_CLOSESLOT: return CloseMethSlot(hWndDlg, SLOT, lParam); case IDDMETHODS: if (HIWORD(lParam) != LBN_DBLCLK) break; return ModifyMethSlot(hWndDlg, METHOD, hObj, IDM_EDIT, OBJECT); case IDM_EDITMETHOD: return ModifyMethSlot(hWndDlg, METHOD, hObj, IDM_EDIT, OBJECT); case IDM_DELETEMETHOD: return ModifyMethSlot(hWndDlg, METHOD, hObj, IDM_DELETE, OBJECT); case IDM_RENAMEMETHOD: return ModifyMethSlot(hWndDlg, METHOD, hObj, IDM_RENAME, OBJECT); case IDM_MAKELOCALMETHOD: return ModifyMethSlot(hWndDlg, METHOD, hObj, IDM_MAKELOCAL, OBJECT); case IDM_NEWMETHOD: if (AddNewSlotMethod(hWndDlg, OBJECT, hObj, METHOD) == TRUE) MARK_AS_MODIFIED(hWndDlg); /* SK */ break; /* A METHOD EDITOR IS CLOSING */ case IDG_CLOSEMETHOD: return CloseMethSlot(hWndDlg, METHOD, lParam); case IDDINFO: if (HIWORD(lParam) == EN_CHANGE) MARK_AS_MODIFIED(hWndDlg); break; default: return FALSE; } break; default: return FALSE; } return TRUE; }
/***** * Main window dialog box procedure *****/ long FAR PASCAL _export WndProc(HWND hwnd, UINT message, UINT wParam, LONG lParam) { HBRUSH hbrush; switch (message) { case WM_CREATE: file_sel_changed = 0; /* attach keyboard interface */ if((myhookproc = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, hInst, GetCurrentTask())) == NULL) ErrHandler(NULL, R_ERROR, RB_OK1, "Winfflow " "Error: failed to set keyboard hook.\n" "Keyboard interface not installed."); return FALSE; /* following four cases ctl3d specific */ case WM_SYSCOLORCHANGE: Ctl3dColorChange(); return FALSE; case WM_SETTEXT: case WM_NCPAINT: case WM_NCACTIVATE: SetWindowLong(hwnd, DWL_MSGRESULT, Ctl3dDlgFramePaint(hwnd, message, wParam, lParam)); return TRUE; /* * paint window background with a brush provided by the response * to the WM_CTLCOLOR message */ case WM_ERASEBKGND: { RECT lprc; HDC hdc = (HDC)wParam; if(hwnd != hWndMain) return TRUE; if(!background_brush) return TRUE; UnrealizeObject(background_brush); GetClientRect(hwnd, &lprc); SetBrushOrg(hdc, 0, 0); SelectObject(hdc, background_brush); FillRect(hdc, &lprc, background_brush); return TRUE; } case WM_SIZE: switch(wParam) { case SIZE_MAXIMIZED: case SIZE_RESTORED: if(!block_resize) DoResize(hwnd, 0); return FALSE; default: break; } break; case WM_COMMAND: switch(GET_COMMAND_ID) { case IDC_MAIN_ABOUT: DisplayDialog(hwnd, hInst,WINFFLOW_ABOUT_DIALOG, AboutProc); break; /* add files to the listbox */ case IDC_MAIN_ADD: get_fortran_files(hwnd); break; /* double click will edit selected file */ case IDC_MAIN_LISTBOX: if(GET_COMMAND_CMD == LBN_DBLCLK) get_selected_file(hwnd, IDC_MAIN_LISTBOX); break; /* remove/edit selected file */ case IDC_MAIN_EDIT: case IDC_MAIN_REMOVE: get_selected_file(hwnd, GET_COMMAND_ID); break; case IDC_MAIN_REMOVE_ALL: SendDlgItemMessage(hwnd, IDC_MAIN_LISTBOX, LB_RESETCONTENT, 0, 0L); destroy_filelist(); break; /* settings */ case IDC_MAIN_SETTINGS: DisplayDialog(hwnd, hInst, WINFFLOW_SETTINGS_DIALOG, (FARPROC)SettingsProc); break; /* scan the files */ case IDOK: /* * scan the files when the selection has changed, * there is no current flowgraph or when the * previous scan has been aborted */ if(file_sel_changed || flow == NULL || yylex_abort) { /* pick up files */ if(!get_files_to_scan(hwnd)) break; generate_flowgraph(); } /* hide main window */ ShowWindow(hWndMain, SW_HIDE); /* display selector dialog box */ DisplayDialog(hwnd, hInst, WINFFLOW_OUTPUTSELECTOR_DIALOG, (FARPROC)SelectorProc); /* display main window again */ ShowWindow(hWndMain, SW_RESTORE); break; case IDCANCEL: /* save the filelist */ save_ini_file_data(hwnd); SendMessage(hWndMain, WM_CLOSE, 0, 0L); break; case IDHELP: WinHelp(hWndMain, "winfflow.hlp", HELP_CONTEXT, WINFFLOW_MAIN_DIALOG); break; } return(FALSE); case WM_SYSCOMMAND: if(GET_COMMAND_ID == SC_CLOSE) /* Get the close item */ { SendMessage(hWndMain, WM_CLOSE, 0, 0L); return FALSE; } break; case WM_CLOSE: UnregisterResize(hwnd); DestroyWindow(hwnd); return FALSE; case WM_DESTROY: PostQuitMessage (0) ; return FALSE; /* Ctl3d specific code */ #ifdef WIN32 case WM_CTLCOLORBTN: case WM_CTLCOLORDLG: case WM_CTLCOLOREDIT: case WM_CTLCOLORLISTBOX: case WM_CTLCOLORMSGBOX: case WM_CTLCOLORSCROLLBAR: case WM_CTLCOLORSTATIC: #else case WM_CTLCOLOR: #endif hbrush = Ctl3dCtlColorEx(message, wParam, lParam); if (hbrush != (HBRUSH) FALSE) { /* save this brush */ background_brush = hbrush; return hbrush; } /* fall through */ default: break; } return (DefWindowProc (hwnd, message, wParam, lParam)); }