Annotation of os232sdk/toolkt20/c/samples/iniedit/dlgproc.c, revision 1.1.1.1

1.1       root        1: /******************************* Module Header ******************************\
                      2: * Module Name: DlgProc.c
                      3: *
                      4: * Created by Microsoft, IBM Corporation 1990
                      5: *
                      6: *
                      7: * System Test Application
                      8: *
                      9: *
                     10: \***************************************************************************/
                     11: 
                     12: 
                     13: #define LINT_ARGS                           // Include needed parts of PM
                     14: #define INCL_WININPUT                       //    definitions
                     15: #define INCL_WINSYS
                     16: #define INCL_WINMESSAGEMGR
                     17: #define INCL_WINBUTTONS
                     18: #define INCL_WINPOINTERS
                     19: #define INCL_WINHEAP
                     20: #define INCL_WINSHELLDATA
                     21: #define INCL_WINMENUS
                     22: #define INCL_WINFRAMEMGR
                     23: #define INCL_WINLISTBOXES
                     24: #define INCL_WINENTRYFIELDS
                     25: #define INCL_WINDIALOGS
                     26: #define INCL_GPIBITMAPS
                     27: #define INCL_GPIREGIONS
                     28: #define INCL_GPILCIDS
                     29: #define INCL_GPIPRIMITIVES
                     30: #define INCL_DEV
                     31: 
                     32: #include <string.h>
                     33: #include <stdio.h>
                     34: 
                     35: #include <os2.h>
                     36: 
                     37: #include "IniEdit.h"
                     38: 
                     39: 
                     40: /******************************* Constants *********************************/
                     41: 
                     42: #define BUF_SIZE 132
                     43: 
                     44: 
                     45: /******************************** Globals **********************************/
                     46: 
                     47: static CHAR   szSearch[BUF_SIZE] = { 0 };           // Current search string
                     48: static USHORT usLastIndex = 0;                      // Last Searched Item
                     49: 
                     50: /******************************* Externals *********************************/
                     51: 
                     52: extern USHORT        cAppNames;                     // see iniedit.c
                     53: extern HWND          hwndList;
                     54: extern PGROUPSTRUCT  pGroups;
                     55: extern HAB           habIniEdit;
                     56: extern HWND          FocusWindow;
                     57: 
                     58: 
                     59: /****************************** Function Header ****************************\
                     60: *
                     61: * SearchWndProc
                     62: *
                     63: *
                     64: * Handles the Search Dialog Box messages
                     65: *
                     66: \***************************************************************************/
                     67: 
                     68: MRESULT EXPENTRY SearchWndProc(HWND hwndDialog, USHORT msg,
                     69:         MPARAM mp1, MPARAM mp2)
                     70: {
                     71:     HWND   hwndText;                            // Current Text Window
                     72: 
                     73: 
                     74:     switch (msg)
                     75:         {
                     76: 
                     77:         case WM_INITDLG:
                     78:             hwndText = WinWindowFromID( hwndDialog, IDDI_SEARCH_TEXT );
                     79:             WinSetWindowText(hwndText, szSearch);
                     80:             WinSendMsg( hwndText, EM_SETSEL,
                     81:                     MPFROM2SHORT(0, strlen(szSearch)), (MPARAM)0 );
                     82: 
                     83:             break;
                     84: 
                     85:         case WM_COMMAND:
                     86:             switch( LOUSHORT( mp1 ) )
                     87:                 {
                     88: 
                     89:                 case IDDI_SEARCH_OK:
                     90:                     hwndText = WinWindowFromID( hwndDialog, IDDI_SEARCH_TEXT );
                     91:                     WinQueryWindowText( hwndText, BUF_SIZE, szSearch );
                     92:                     WinDismissDlg( hwndDialog, 0 );
                     93: 
                     94:                     if( (usLastIndex = (INT)WinSendMsg( hwndList, LM_SEARCHSTRING,
                     95:                             MPFROM2SHORT( LSS_SUBSTRING, LIT_FIRST),
                     96:                             MPFROMP( szSearch )) ) != LIT_NONE )
                     97:                         {
                     98:                         WinSendMsg( hwndList, LM_SELECTITEM,
                     99:                                 MPFROM2SHORT( (usLastIndex), NULL),
                    100:                                 MPFROM2SHORT( TRUE, NULL ) );
                    101:                         }
                    102:                     else  /* not found */
                    103:                         {
                    104:                         usLastIndex = LIT_FIRST;
                    105:                         WinAlarm( HWND_DESKTOP, 0);
                    106:                         }
                    107:                     break;
                    108: 
                    109:                 case IDDI_SEARCH_NEXT:
                    110:                     FindNext();
                    111:                     break;
                    112: 
                    113:                 default:
                    114:                     return WinDefDlgProc(hwndDialog, msg, mp1, mp2);
                    115:                     break;
                    116:                 }
                    117: 
                    118:         default:
                    119:             return WinDefDlgProc(hwndDialog, msg, mp1, mp2);
                    120:             break;
                    121:         }
                    122: 
                    123:     return 0L;
                    124: 
                    125: }  /* SearchWndProc */
                    126: 
                    127: 
                    128: /****************************** Function Header ****************************\
                    129: *
                    130: * FindNext
                    131: *
                    132: *
                    133: * Finds the next instance of the current search string starting from the
                    134: * Last searched position
                    135: *
                    136: \***************************************************************************/
                    137: 
                    138: VOID FindNext()
                    139: {
                    140:    if( (usLastIndex = (INT)WinSendMsg( hwndList, LM_SEARCHSTRING,
                    141:            MPFROM2SHORT( LSS_SUBSTRING, usLastIndex),
                    142:            MPFROMP( szSearch )) ) != LIT_NONE )
                    143:        {
                    144:        WinSendMsg( hwndList, LM_SELECTITEM,
                    145:                MPFROM2SHORT( (usLastIndex), NULL),
                    146:                MPFROM2SHORT( TRUE, NULL ) );
                    147:        }
                    148:    else   /* alarm if not found */
                    149:        WinAlarm( HWND_DESKTOP, 0);
                    150: 
                    151: }  /* FindNext */
                    152: 
                    153: 
                    154: /****************************** Function Header ****************************\
                    155: *
                    156: * AddKeyWndProc
                    157: *
                    158: *
                    159: * Handles the AddKey Dialog Box messages
                    160: * Will facilitate adding new keys for a given App Name
                    161: *
                    162: \***************************************************************************/
                    163: 
                    164: MRESULT EXPENTRY AddKeyWndProc(HWND hwndDialog, USHORT msg,
                    165:         MPARAM mp1, MPARAM mp2)
                    166: {
                    167:     HWND   hwndTextApp;                         // Handle for App Text Window
                    168:     HWND   hwndTextKey;
                    169:     HWND   hwndTextValue;
                    170:     CHAR   szApp[BUF_SIZE];                     // String Contents
                    171:     CHAR   szKey[BUF_SIZE];
                    172:     CHAR   szValue[BUF_SIZE];
                    173: 
                    174: 
                    175:     switch (msg)
                    176:         {
                    177:         case WM_INITDLG:
                    178:             WinSendDlgItemMsg(hwndDialog, IDDI_ADD_KEY_TEXT_APP, EM_SETTEXTLIMIT,
                    179:                     MPFROMSHORT(MAX_STRING_LEN), 0L);
                    180:             WinSendDlgItemMsg(hwndDialog, IDDI_ADD_KEY_TEXT_KEY, EM_SETTEXTLIMIT,
                    181:                     MPFROMSHORT(MAX_STRING_LEN), 0L);
                    182:             WinSendDlgItemMsg(hwndDialog, IDDI_ADD_KEY_TEXT_VAL, EM_SETTEXTLIMIT,
                    183:                     MPFROMSHORT(MAX_STRING_LEN), 0L);
                    184:             break;
                    185:         case WM_COMMAND:
                    186:             switch( LOUSHORT( mp1 ) )
                    187:                 {
                    188: 
                    189:                 case IDDI_ADD_KEY_OK:
                    190:                     hwndTextApp = WinWindowFromID( hwndDialog, IDDI_ADD_KEY_TEXT_APP );
                    191:                     WinQueryWindowText( hwndTextApp, BUF_SIZE, szApp );
                    192: 
                    193:                     hwndTextKey = WinWindowFromID( hwndDialog, IDDI_ADD_KEY_TEXT_KEY );
                    194:                     WinQueryWindowText( hwndTextKey, BUF_SIZE, szKey );
                    195: 
                    196:                     hwndTextValue = WinWindowFromID( hwndDialog, IDDI_ADD_KEY_TEXT_VAL );
                    197:                     WinQueryWindowText( hwndTextValue, BUF_SIZE, szValue );
                    198: 
                    199:                     WinDismissDlg( hwndDialog, 0 );
                    200: 
                    201:                     /* if the App is NULL forget it */
                    202:                     if( *szApp == (CHAR)0 )
                    203:                         {
                    204:                         break;
                    205:                         }
                    206: 
                    207:                     /* if the Key is NULL forget it */
                    208:                     if( *szKey == (CHAR)0 )
                    209:                         {
                    210:                         break;
                    211:                         }
                    212: 
                    213:                     /* if the Value is NULL forget it */
                    214:                     if( *szValue == (CHAR)0 )
                    215:                         {
                    216:                         break;
                    217:                         }
                    218: 
                    219:                    if( !PrfWriteProfileString( HINI_USERPROFILE, szApp, szKey, szValue ) )
                    220:                         ;
                    221:                     break;
                    222: 
                    223:                 default:
                    224:                     return WinDefDlgProc(hwndDialog, msg, mp1, mp2);
                    225:                     break;
                    226:                 }
                    227: 
                    228:         default:
                    229:             return WinDefDlgProc(hwndDialog, msg, mp1, mp2);
                    230:             break;
                    231:         }
                    232: 
                    233:     return 0L;
                    234: 
                    235: }  /* AddKeyWndProc */
                    236: 
                    237: 
                    238: /****************************** Function Header ****************************\
                    239: *
                    240: * ChangeKeyWndProc
                    241: *
                    242: *
                    243: * Handles the ChangeKey Dialog Box messages
                    244: * Will facilitate changing a key's value given an app, key and new value
                    245: *
                    246: \***************************************************************************/
                    247: 
                    248: MRESULT EXPENTRY ChangeKeyWndProc(HWND hwndDialog, USHORT msg,
                    249:         MPARAM mp1, MPARAM mp2)
                    250: {
                    251:     HWND     hwndTextApp;                       // Handle for App Text Window
                    252:     HWND     hwndTextKey;
                    253:     HWND     hwndTextVal;
                    254:     CHAR     szApp[BUF_SIZE];                   // String Contents
                    255:     CHAR     szKey[BUF_SIZE];
                    256:     CHAR     szVal[BUF_SIZE];
                    257: 
                    258: 
                    259:     switch (msg)
                    260:         {
                    261:         case WM_INITDLG:
                    262:             if( FocusWindow )
                    263:                 {
                    264: 
                    265:                 FocusWindow = WinWindowFromID( hwndDialog, IDDI_CHANGE_KEY_TEXT_VAL );
                    266:                 WinSetFocus( HWND_DESKTOP, FocusWindow);
                    267:                 WinQueryWindowText( FocusWindow, BUF_SIZE, szVal );
                    268: 
                    269:                 FocusWindow = (HWND)NULL;
                    270: 
                    271:                 return( (MRESULT)TRUE );
                    272:                 } else {
                    273:                 WinSendDlgItemMsg(hwndDialog, IDDI_CHANGE_KEY_TEXT_APP, EM_SETTEXTLIMIT,
                    274:                         MPFROMSHORT(MAX_STRING_LEN), 0L);
                    275:                 WinSendDlgItemMsg(hwndDialog, IDDI_CHANGE_KEY_TEXT_KEY, EM_SETTEXTLIMIT,
                    276:                         MPFROMSHORT(MAX_STRING_LEN), 0L);
                    277:                 WinSendDlgItemMsg(hwndDialog, IDDI_CHANGE_KEY_TEXT_VAL, EM_SETTEXTLIMIT,
                    278:                         MPFROMSHORT(MAX_STRING_LEN), 0L);
                    279:                 }
                    280:             break;
                    281: 
                    282:         case WM_COMMAND:
                    283:             switch( LOUSHORT( mp1 ) )
                    284:                 {
                    285: 
                    286:                 case IDDI_CHANGE_KEY_OK:
                    287:                     hwndTextApp = WinWindowFromID( hwndDialog, IDDI_CHANGE_KEY_TEXT_APP );
                    288:                     WinQueryWindowText( hwndTextApp, BUF_SIZE, szApp );
                    289: 
                    290:                     hwndTextKey = WinWindowFromID( hwndDialog, IDDI_CHANGE_KEY_TEXT_KEY );
                    291:                     WinQueryWindowText( hwndTextKey, BUF_SIZE, szKey );
                    292: 
                    293:                     hwndTextVal = WinWindowFromID( hwndDialog, IDDI_CHANGE_KEY_TEXT_VAL );
                    294:                     WinQueryWindowText( hwndTextVal, BUF_SIZE, szVal );
                    295: 
                    296: 
                    297:                     WinDismissDlg( hwndDialog, IDDI_CHANGE_KEY_OK );
                    298: 
                    299:                     /* if the App is NULL forget it */
                    300:                     if( *szApp == (CHAR)0 )
                    301:                         {
                    302:                         break;
                    303:                         }
                    304: 
                    305:                     /* if the Key is NULL forget it */
                    306:                     if( *szKey == (CHAR)0 )
                    307:                         {
                    308:                         break;
                    309:                         }
                    310: 
                    311:                     /* if the Value is NULL forget it */
                    312:                     if( *szVal == (CHAR)0 )
                    313:                         {
                    314:                         break;
                    315:                         }
                    316: 
                    317: 
                    318:                    if( !PrfWriteProfileString( HINI_USERPROFILE, szApp, szKey, szVal ) )
                    319: 
                    320:                     break;
                    321: 
                    322:                 default:
                    323:                     return WinDefDlgProc(hwndDialog, msg, mp1, mp2);
                    324:                     break;
                    325:                 }
                    326: 
                    327:         default:
                    328:             return WinDefDlgProc(hwndDialog, msg, mp1, mp2);
                    329:             break;
                    330:         }
                    331: 
                    332:     return 0L;
                    333: 
                    334: }  /* ChangeKeyWndProc */
                    335: 
                    336: 
                    337: /****************************** Function Header ****************************\
                    338: *
                    339: * DelKeyWndProc
                    340: *
                    341: *
                    342: * Handles the DelKey Dialog Box messages
                    343: * Will facilitate deleting a key value given an app and the key
                    344: *
                    345: \***************************************************************************/
                    346: 
                    347: MRESULT EXPENTRY DelKeyWndProc(HWND hwndDialog, USHORT msg,
                    348:         MPARAM mp1, MPARAM mp2)
                    349: {
                    350:     HWND   hwndTextApp;                         // Handle for App Text Window
                    351:     HWND   hwndTextKey;
                    352:     CHAR   szApp[BUF_SIZE];                     // String Contents
                    353:     CHAR   szKey[BUF_SIZE];
                    354: 
                    355: 
                    356:     switch (msg)
                    357:         {
                    358:         case WM_INITDLG:
                    359:             WinSendDlgItemMsg(hwndDialog, IDDI_DEL_KEY_TEXT_APP, EM_SETTEXTLIMIT,
                    360:                     MPFROMSHORT(MAX_STRING_LEN), 0L);
                    361:             WinSendDlgItemMsg(hwndDialog, IDDI_DEL_KEY_TEXT_KEY, EM_SETTEXTLIMIT,
                    362:                     MPFROMSHORT(MAX_STRING_LEN), 0L);
                    363:             break;
                    364:         case WM_COMMAND:
                    365:             switch( LOUSHORT( mp1 ) )
                    366:                 {
                    367: 
                    368:                 case IDDI_DEL_KEY_OK:
                    369:                     hwndTextApp = WinWindowFromID( hwndDialog, IDDI_DEL_KEY_TEXT_APP );
                    370:                     WinQueryWindowText( hwndTextApp, BUF_SIZE, szApp );
                    371: 
                    372:                     hwndTextKey = WinWindowFromID( hwndDialog, IDDI_DEL_KEY_TEXT_KEY );
                    373:                     WinQueryWindowText( hwndTextKey, BUF_SIZE, szKey );
                    374: 
                    375: 
                    376:                     WinDismissDlg( hwndDialog, 0 );
                    377: 
                    378:                     /* if the App is NULL forget it */
                    379:                     if( *szApp == (CHAR)0 )
                    380:                         {
                    381:                         break;
                    382:                         }
                    383: 
                    384:                     /* if the Key is NULL forget it */
                    385:                     if( *szKey == (CHAR)0 )
                    386:                         {
                    387:                         break;
                    388:                         }
                    389: 
                    390: 
                    391:                    if( !PrfWriteProfileString( HINI_USERPROFILE, szApp, szKey, (PCHAR)NULL ) )
                    392:                         ;
                    393:                     break;
                    394: 
                    395:                 default:
                    396:                     return WinDefDlgProc(hwndDialog, msg, mp1, mp2);
                    397:                     break;
                    398:                 }
                    399: 
                    400:         default:
                    401:             return WinDefDlgProc(hwndDialog, msg, mp1, mp2);
                    402:             break;
                    403:         }
                    404: 
                    405:     return 0L;
                    406: 
                    407: }  /* DelKeyProc */
                    408: 
                    409: 
                    410: /****************************** Function Header ****************************\
                    411: *
                    412: * DelAppWndProc
                    413: *
                    414: *
                    415: * Handles the DelApp Dialog Box messages
                    416: * Will facilitate deleting all keys from a given app name
                    417: *
                    418: \***************************************************************************/
                    419: 
                    420: MRESULT EXPENTRY DelAppWndProc(HWND hwndDialog, USHORT msg,
                    421:         MPARAM mp1, MPARAM mp2)
                    422: {
                    423:     HWND   hwndTextApp;                         // App Name Window
                    424:     CHAR   szApp[BUF_SIZE];                     // String Contents of Window
                    425: 
                    426: 
                    427:     switch (msg)
                    428:         {
                    429:         case WM_INITDLG:
                    430:             WinSendDlgItemMsg(hwndDialog, IDDI_DEL_APP_TEXT_APP, EM_SETTEXTLIMIT,
                    431:                     MPFROMSHORT(MAX_STRING_LEN), 0L);
                    432:             break;
                    433: 
                    434:         case WM_COMMAND:
                    435:             switch( LOUSHORT( mp1 ) )
                    436:                 {
                    437: 
                    438:                 case IDDI_DEL_APP_OK:
                    439:                     hwndTextApp = WinWindowFromID( hwndDialog, IDDI_DEL_APP_TEXT_APP );
                    440:                     WinQueryWindowText( hwndTextApp, BUF_SIZE, szApp );
                    441: 
                    442:                     WinDismissDlg( hwndDialog, 0 );
                    443: 
                    444:                     /* if the App is NULL forget it */
                    445:                     if( *szApp == (CHAR)0 )
                    446:                         {
                    447:                         break;
                    448:                         }
                    449: 
                    450:                    if( !PrfWriteProfileString( HINI_USERPROFILE, szApp, (PCHAR)NULL, (PCHAR)NULL ) )
                    451:                         ;
                    452: 
                    453:                     break;
                    454: 
                    455:                 default:
                    456:                     return WinDefDlgProc(hwndDialog, msg, mp1, mp2);
                    457:                     break;
                    458:                 }
                    459: 
                    460:         default:
                    461:             return WinDefDlgProc(hwndDialog, msg, mp1, mp2);
                    462:             break;
                    463:         }
                    464: 
                    465:     return 0L;
                    466: 
                    467: }  /* DelAppWndProc */
                    468: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.