Changeset 181 for trunk/dll/input.c
- Timestamp:
- May 28, 2005, 7:47:10 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/input.c
r2 r181 1 2 /*********************************************************************** 3 4 $Id$ 5 6 Input dialog procecedure 7 8 Copyright (c) 1993-98 M. Kimes 9 Copyright (c) 2005 Steven H. Levine 10 11 28 May 05 SHL Use saymsg 12 13 ***********************************************************************/ 14 1 15 #define INCL_DOS 2 16 #define INCL_WIN 17 #include <os2.h> 3 18 4 #include <os2.h>5 19 #include <stdlib.h> 6 20 #include <stdio.h> 7 21 #include <string.h> 22 8 23 #include "fm3dll.h" 9 24 #include "fm3dlg.h" … … 12 27 #pragma alloc_text(FMINPUT,InputDlgProc) 13 28 29 MRESULT EXPENTRY InputDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) 30 { 31 // mp2 points at a structure of type STRINGINPARMS 32 STRINGINPARMS *psip; 33 PSZ psz; 14 34 15 MRESULT EXPENTRY InputDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) { 16 17 /* 18 * mp2 should point at a structure of type STRINGINPARMS 19 */ 20 21 STRINGINPARMS *ret; 22 23 switch(msg) { 35 switch(msg) 36 { 24 37 case WM_INITDLG: 25 if(!mp2) { 26 WinDismissDlg(hwnd,0); 27 break; 38 if (!mp2) 39 { 40 WinDismissDlg(hwnd,0); 41 break; 28 42 } 29 43 WinSetWindowPtr(hwnd,0,(PVOID)mp2); 30 ret = (STRINGINPARMS *)mp2; 31 if(!(BOOL)WinSendDlgItemMsg(hwnd,STR_INPUT,EM_SETTEXTLIMIT, 32 MPFROM2SHORT(ret->inputlen,0),MPVOID)) { 33 DosBeep(50,100); 34 WinDismissDlg(hwnd,0); 35 break; 44 psip = (STRINGINPARMS *)mp2; 45 if (!(BOOL)WinSendDlgItemMsg(hwnd,STR_INPUT,EM_SETTEXTLIMIT, 46 MPFROM2SHORT(psip->inputlen,0),MPVOID)) 47 { 48 DosBeep(50,100); 49 WinDismissDlg(hwnd,0); 50 break; 36 51 } 37 if(ret->prompt && *ret->prompt) 38 WinSetDlgItemText(hwnd,STR_PROMPT,ret->prompt); 39 if(ret->ret && *ret->ret) { 40 WinSetDlgItemText(hwnd,STR_INPUT,ret->ret); 41 WinSendDlgItemMsg(hwnd,STR_INPUT,EM_SETSEL, 42 MPFROM2SHORT(0,strlen(ret->ret)),MPVOID); 52 if (psip->prompt && *psip->prompt) 53 WinSetDlgItemText(hwnd,STR_PROMPT,psip->prompt); 54 if (psip->ret && *psip->ret) 55 { 56 WinSetDlgItemText(hwnd,STR_INPUT,psip->ret); 57 WinSendDlgItemMsg(hwnd,STR_INPUT,EM_SETSEL, 58 MPFROM2SHORT(0,strlen(psip->ret)),MPVOID); 43 59 } 44 * ret->ret = 0;45 if (ret->title && *ret->title)46 WinSetWindowText(hwnd,ret->title);60 *psip->ret = 0; 61 if (psip->title && *psip->title) 62 WinSetWindowText(hwnd,psip->title); 47 63 break; 48 64 49 case WM_CONTROL: /* don't care */65 case WM_CONTROL: // don't care 50 66 return 0; 51 67 52 68 case WM_COMMAND: 53 switch(SHORT1FROMMP(mp1)) { 54 case DID_OK: 55 ret = WinQueryWindowPtr(hwnd,0); 56 WinQueryDlgItemText(hwnd,STR_INPUT,ret->inputlen,ret->ret); 57 WinDismissDlg(hwnd,1); 58 break; 69 switch(SHORT1FROMMP(mp1)) 70 { 71 case DID_OK: 72 psip = WinQueryWindowPtr(hwnd,0); 73 WinQueryDlgItemText(hwnd,STR_INPUT,psip->inputlen,psip->ret); 74 WinDismissDlg(hwnd,1); 75 break; 59 76 60 case IDM_HELP: 61 ret = WinQueryWindowPtr(hwnd,0); 62 if(ret->help && *ret->help) 63 WinMessageBox(HWND_DESKTOP,hwnd,ret->help, 64 GetPString(IDS_HELPTEXT), 65 0,MB_ENTER | MB_ICONASTERISK | MB_MOVEABLE); 66 else 67 WinMessageBox(HWND_DESKTOP,hwnd, 68 GetPString(IDS_ENTERTEXTHELPTEXT), 69 GetPString(IDS_HELPTEXT), 70 0,MB_ENTER | MB_ICONASTERISK | MB_MOVEABLE); 71 break; 77 case IDM_HELP: 78 psip = WinQueryWindowPtr(hwnd,0); 79 psz = psip->help && *psip->help ? 80 psip->help : GetPString(IDS_ENTERTEXTHELPTEXT); 72 81 73 case DID_CANCEL: 74 WinDismissDlg(hwnd,0); 75 break; 82 saymsg(MB_ENTER | MB_ICONASTERISK, 83 hwnd, 84 GetPString(IDS_HELPTEXT), 85 psz); 86 break; 87 88 case DID_CANCEL: 89 WinDismissDlg(hwnd,0); 90 break; 76 91 } 77 92 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.