Annotation of pmsdk/samples/clock/dialogs.c, revision 1.1

1.1     ! root        1: /*
        !             2:     dialogs.c          Dialog procedures for PM Clock Application
        !             3: 
        !             4:     Created by Microsoft Corporation, 1989
        !             5: */
        !             6: #define INCL_WINDIALOGS
        !             7: #define INCL_WINBUTTONS
        !             8: #define INCL_WINSYS
        !             9: #include <os2def.h>
        !            10: #include <pmwin.h>
        !            11: #include "dialogs.h"
        !            12: 
        !            13: /* defined in paint.c */
        !            14: extern USHORT usMajorTickPref ;
        !            15: extern USHORT usMinorTickPref ;
        !            16: extern LONG clrBackground ;
        !            17: extern LONG clrFace ;
        !            18: extern LONG clrHourHand ;
        !            19: extern LONG clrMinuteHand ;
        !            20: 
        !            21: /* defined in clock.c */
        !            22: extern HWND hwndFrame ;
        !            23: 
        !            24: /*
        !            25:     ClkAboutDlgProc()          "About..." dialog
        !            26: 
        !            27:     Returns:   MRESULT, 0 or return value from WinDefDlgProc
        !            28: */
        !            29: MRESULT CALLBACK ClkAboutDlgProc ( HWND hwnd , USHORT usMsg ,
        !            30:                                   MPARAM mp1 , MPARAM mp2 )
        !            31: {
        !            32:     if ( usMsg == WM_COMMAND ) {
        !            33:        WinDismissDlg ( hwnd , TRUE ) ;
        !            34:        return 0L ;
        !            35:     }
        !            36:     else return WinDefDlgProc ( hwnd , usMsg , mp1 , mp2 ) ;
        !            37: }
        !            38: 
        !            39: 
        !            40: /*
        !            41:     ClkTicksDlgProc()          "Ticks..." dialog
        !            42: 
        !            43:     Returns: MRESULT, 0 or return value from WinDefDlgProc
        !            44: */
        !            45: MRESULT CALLBACK ClkTicksDlgProc ( HWND hwnd , USHORT usMsg ,
        !            46:                                   MPARAM mp1 , MPARAM mp2 )
        !            47: {
        !            48:     static USHORT usMajorTickSel ;
        !            49:     static USHORT usMinorTickSel ;
        !            50:     USHORT usButtonID ;
        !            51: 
        !            52:     switch ( usMsg ) {
        !            53: 
        !            54:        case WM_INITDLG :
        !            55: 
        !            56:            /* show the current major tick preference */
        !            57:            WinSendMsg ( WinWindowFromID ( hwnd ,
        !            58:                                           CLKTM_MAJOR | usMajorTickPref ) ,
        !            59:                         BM_SETCHECK , MPFROM2SHORT ( TRUE , NULL ) , NULL ) ;
        !            60: 
        !            61:            /* show the current minor tick preference */
        !            62:            WinSendMsg ( WinWindowFromID ( hwnd ,
        !            63:                                           CLKTM_MINOR | usMinorTickPref ) ,
        !            64:                         BM_SETCHECK , MPFROM2SHORT ( TRUE , NULL ) , NULL ) ;
        !            65: 
        !            66:            /* load the selection values from the preferences */
        !            67:            usMajorTickSel = usMajorTickPref ;
        !            68:            usMinorTickSel = usMinorTickPref ;
        !            69: 
        !            70:            /* let the default dialog procedure handle anything else */
        !            71:            break ;
        !            72: 
        !            73:        case WM_COMMAND :
        !            74: 
        !            75:            switch ( LOUSHORT ( mp1 ) ) {
        !            76: 
        !            77:                case DID_OK :
        !            78: 
        !            79:                    /* store away selections as preferences */
        !            80:                    usMajorTickPref = usMajorTickSel ;
        !            81:                    usMinorTickPref = usMinorTickSel ;
        !            82: 
        !            83:                    /* repaint with the new preferences */
        !            84:                    WinInvalidateRect ( hwndFrame , NULL, TRUE ) ;
        !            85: 
        !            86:                case DID_CANCEL :
        !            87:                    WinDismissDlg ( hwnd , TRUE ) ;
        !            88:            }
        !            89: 
        !            90:            return NULL ;
        !            91: 
        !            92:        case WM_CONTROL :
        !            93: 
        !            94:            if ( SHORT2FROMMP ( mp1 ) == BN_CLICKED ) {
        !            95: 
        !            96:                usButtonID = SHORT1FROMMP ( mp1 ) ;
        !            97: 
        !            98:                switch ( usButtonID & 0xff00 ) {
        !            99: 
        !           100:                    case CLKTM_MAJOR :
        !           101:                        usMajorTickSel = LOBYTE ( usButtonID ) ;
        !           102:                        break ;
        !           103: 
        !           104:                    case CLKTM_MINOR :
        !           105:                        usMinorTickSel = LOBYTE ( usButtonID ) ;
        !           106:                        break ;
        !           107:                }
        !           108:            }
        !           109: 
        !           110:            /* fall through to the default control processing */
        !           111:     }
        !           112: 
        !           113:     return WinDefDlgProc ( hwnd , usMsg , mp1 , mp2 ) ;
        !           114: }
        !           115: 
        !           116: 
        !           117: /*
        !           118:     ClkColorsDlgProc()         "Clock Color Preferences" Dialog
        !           119: 
        !           120:     Returns: MRESULT, 0 or return value from WinDefDlgProc
        !           121: */
        !           122: MRESULT CALLBACK ClkColorsDlgProc ( HWND hwnd , USHORT usMsg ,
        !           123:                                   MPARAM mp1 , MPARAM mp2 )
        !           124: {
        !           125:     USHORT usButtonID ;
        !           126:     static USHORT usCheckedButtonID ;
        !           127:     HWND hwndButton ;
        !           128:     RECTL rclButton , rclButtonInterior ;
        !           129:     static LONG clrBackgroundNew ;
        !           130:     static LONG clrFaceNew ;
        !           131:     static LONG clrHourHandNew ;
        !           132:     static LONG clrMinuteHandNew ;
        !           133:     static LONG * pclrNew ;
        !           134: 
        !           135:     switch ( usMsg ) {
        !           136: 
        !           137:        case WM_INITDLG :
        !           138: 
        !           139:            /* load the new values from the current ones */
        !           140:            clrBackgroundNew = clrBackground ;
        !           141:            clrFaceNew = clrFace ;
        !           142:            clrHourHandNew = clrHourHand ;
        !           143:            clrMinuteHandNew = clrMinuteHand ;
        !           144: 
        !           145:            /* click the "Background" radio button */
        !           146:            WinSendMsg ( WinWindowFromID ( hwnd , CLKCLR_BACKGROUND ) ,
        !           147:                         BM_CLICK , MPFROMSHORT ( TRUE ) , NULL ) ;
        !           148: 
        !           149:            /* let the default dialog procedure handle anything else */
        !           150:            break ;
        !           151: 
        !           152:        case WM_COMMAND :
        !           153: 
        !           154:            switch ( LOUSHORT ( mp1 ) ) {
        !           155:                case DID_OK :
        !           156: 
        !           157:                    /* store the new values */
        !           158:                    clrBackground = clrBackgroundNew ;
        !           159:                    clrFace = clrFaceNew ;
        !           160:                    clrHourHand = clrHourHandNew ;
        !           161:                    clrMinuteHand = clrMinuteHandNew ;
        !           162: 
        !           163:                    /* repaint with the new colors */
        !           164:                    WinInvalidateRect ( hwndFrame , NULL, TRUE ) ;
        !           165: 
        !           166:                case DID_CANCEL :
        !           167: 
        !           168:                    WinDismissDlg ( hwnd , TRUE ) ;
        !           169:            }
        !           170:            return NULL ;
        !           171: 
        !           172:        case WM_CONTROL :
        !           173: 
        !           174:            usButtonID = SHORT1FROMMP ( mp1 ) ;
        !           175: 
        !           176:            /* selecting a new object */
        !           177:            if ( usButtonID & CLKCLR_OBJECTS ) {
        !           178: 
        !           179:                switch ( usButtonID ) {
        !           180:                    case CLKCLR_BACKGROUND :
        !           181:                        pclrNew = & clrBackgroundNew ;
        !           182:                        break ;
        !           183:                    case CLKCLR_FACE :
        !           184:                        pclrNew = & clrFaceNew ;
        !           185:                        break ;
        !           186:                    case CLKCLR_HOURHAND :
        !           187:                        pclrNew = & clrHourHandNew ;
        !           188:                        break ;
        !           189:                    case CLKCLR_MINUTEHAND :
        !           190:                        pclrNew = & clrMinuteHandNew ;
        !           191:                }
        !           192: 
        !           193:                /* click the button for the new object's current color */
        !           194:                WinSendMsg (
        !           195:                    WinWindowFromID ( hwnd ,
        !           196:                        CLKCLR_BUTTONSHIFT + ( USHORT ) * pclrNew ) ,
        !           197:                    BM_CLICK , MPFROMSHORT ( TRUE ) , NULL ) ;
        !           198: 
        !           199:                break ;
        !           200:            }
        !           201: 
        !           202:            switch ( SHORT2FROMMP ( mp1 ) ) {
        !           203: 
        !           204:                case BN_CLICKED :
        !           205: 
        !           206:                    * pclrNew = ( LONG ) usButtonID - CLKCLR_BUTTONSHIFT ;
        !           207: 
        !           208:                    /* turn off the check state of the previously checked
        !           209:                     * button and turn on the check state of the button
        !           210:                     * just clicked */
        !           211: 
        !           212:                    WinSendMsg ( WinWindowFromID ( hwnd , usCheckedButtonID ) ,
        !           213:                                 BM_SETCHECK , MPFROM2SHORT ( FALSE , NULL ) ,
        !           214:                                 NULL ) ;
        !           215:                    WinSendMsg ( WinWindowFromID ( hwnd , usButtonID ) ,
        !           216:                                 BM_SETCHECK , MPFROM2SHORT ( TRUE , NULL ) ,
        !           217:                                 NULL ) ;
        !           218: 
        !           219:                    usCheckedButtonID = usButtonID ;
        !           220: 
        !           221:                    break ;
        !           222: 
        !           223:                case BN_PAINT :
        !           224: 
        !           225:                    /* fill only the interior of the button, so we don't
        !           226:                     * conflict with the focus indicator */
        !           227: 
        !           228:                    hwndButton = ( ( PUSERBUTTON ) mp2 ) -> hwnd ;
        !           229:                    WinQueryWindowRect ( hwndButton , & rclButton ) ;
        !           230:                    rclButton . xLeft ++ ;
        !           231:                    rclButton . yBottom ++ ;
        !           232:                    rclButton . xRight -- ;
        !           233:                    rclButton . yTop -- ;
        !           234:                    WinFillRect ( ( ( PUSERBUTTON ) mp2 ) -> hps ,
        !           235:                                  & rclButton ,
        !           236:                                  ( LONG ) usButtonID - CLKCLR_BUTTONSHIFT ) ;
        !           237: 
        !           238:                    /* hollow out those buttons which aren't checked */
        !           239:                    if ( ! WinSendMsg ( WinWindowFromID ( hwnd , usButtonID ) ,
        !           240:                                      BM_QUERYCHECK , NULL , NULL ) ) {
        !           241:                        rclButtonInterior . xLeft = rclButton . xLeft + 4 ;
        !           242:                        rclButtonInterior . yBottom = rclButton . yBottom + 4 ;
        !           243:                        rclButtonInterior . xRight = rclButton . xRight - 4 ;
        !           244:                        rclButtonInterior . yTop = rclButton . yTop - 4 ;
        !           245:                        WinFillRect ( ( ( PUSERBUTTON ) mp2 ) -> hps ,
        !           246:                                      & rclButtonInterior , SYSCLR_WINDOW ) ;
        !           247:                    }
        !           248: 
        !           249:                    break ;
        !           250:            }
        !           251: 
        !           252:            /* fall through to the default control processing */
        !           253:     }
        !           254: 
        !           255:     return WinDefDlgProc ( hwnd , usMsg , mp1 , mp2 ) ;
        !           256: }

unix.superglobalmegacorp.com

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