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

unix.superglobalmegacorp.com

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