Annotation of mstools/ole20/samples/gizmobar/paint.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * PAINT.C
        !             3:  * GizmoBar Version 1.00, March 1993
        !             4:  *
        !             5:  * Contains any code related to GizmoBar visuals, primarily
        !             6:  * the WM_PAINT handler.
        !             7:  *
        !             8:  * Copyright (c)1992 Microsoft Corporation, All Rights Reserved
        !             9:  *
        !            10:  * Kraig Brockschmidt, Software Design Engineer
        !            11:  * Microsoft Systems Developer Relations
        !            12:  *
        !            13:  * Internet  :  [email protected]
        !            14:  * Compuserve:  >INTERNET:[email protected]
        !            15:  */
        !            16: 
        !            17: #ifdef WIN32
        !            18: #define _INC_OLE
        !            19: #define __RPC_H__
        !            20: #endif
        !            21: 
        !            22: 
        !            23: #define STRICT
        !            24: #include <windows.h>
        !            25: #include "gizmoint.h"
        !            26: 
        !            27: 
        !            28: //In GIZMO.C
        !            29: extern TOOLDISPLAYDATA tdd;
        !            30: 
        !            31: 
        !            32: /*
        !            33:  * GizmoBarPaint
        !            34:  *
        !            35:  * Purpose:
        !            36:  *  Handles all WM_PAINT messages for the control and paints either the
        !            37:  *  entire thing or just one GizmoBar button if pGB->pGizmoPaint is non-NULL.
        !            38:  *
        !            39:  * Parameters:
        !            40:  *  hWnd            HWND Handle to the control.
        !            41:  *  pGB             PGIZMOBAR control data pointer.
        !            42:  *
        !            43:  * Return Value:
        !            44:  *  None
        !            45:  */
        !            46: 
        !            47: void GizmoBarPaint(HWND hWnd, PGIZMOBAR pGB)
        !            48:     {
        !            49:     PAINTSTRUCT ps;
        !            50:     RECT        rc;
        !            51:     HDC         hDC;
        !            52:     HBRUSH      hBr=NULL;
        !            53:     HPEN        hPen=NULL;
        !            54: 
        !            55: 
        !            56:     hDC=BeginPaint(hWnd, &ps);
        !            57:     GetClientRect(hWnd, &rc);
        !            58: 
        !            59:     /*
        !            60:      * The only part of the frame we need to draw is the bottom line,
        !            61:      * so we inflate the rectangle such that all other parts are outside
        !            62:      * the visible region.
        !            63:      */
        !            64:     hBr =CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
        !            65: 
        !            66:     if (NULL!=hBr)
        !            67:         SelectObject(hDC, hBr);
        !            68: 
        !            69:     hPen=CreatePen(PS_SOLID, 1, GetSysColor(COLOR_WINDOWFRAME));
        !            70: 
        !            71:     if (NULL!=hPen)
        !            72:         SelectObject(hDC, hPen);
        !            73: 
        !            74:     Rectangle(hDC, rc.left-1, rc.top-1, rc.right+1, rc.bottom);
        !            75: 
        !            76: 
        !            77:     /*
        !            78:      * All that we have to do to draw the controls is start through the
        !            79:      * list, ignoring anything but buttons, and calling BTTNCUR's
        !            80:      * UIToolButtonDraw for buttons.  Since we don't even have to track
        !            81:      * positions of things, we can just use an enum.
        !            82:      */
        !            83:     GizmoPEnum(&pGB->pGizmos, FEnumPaintGizmos, (DWORD)(LPSTR)&ps);
        !            84: 
        !            85:     //Clean up
        !            86:     EndPaint(hWnd, &ps);
        !            87: 
        !            88:     if (NULL!=hBr)
        !            89:         DeleteObject(hBr);
        !            90: 
        !            91:     if (NULL!=hPen)
        !            92:         DeleteObject(hPen);
        !            93: 
        !            94:     return;
        !            95:     }
        !            96: 
        !            97: 
        !            98: 
        !            99: 
        !           100: 
        !           101: /*
        !           102:  * FEnumPaintGizmos
        !           103:  *
        !           104:  * Purpose:
        !           105:  *  Enumeration callback for all the gizmos we know about in order to
        !           106:  *  draw them.
        !           107:  *
        !           108:  * Parameters:
        !           109:  *  pGizmo          PGIZMO to draw.
        !           110:  *  iGizmo          UINT index on the GizmoBar of this gizmo.
        !           111:  *  dw              DWORD extra data passed to GizmoPEnum, in our case
        !           112:  *                  a pointer to the PAINTSTRUCT.
        !           113:  *
        !           114:  * Return Value:
        !           115:  *  BOOL            TRUE to continue the enumeration, FALSE otherwise.
        !           116:  */
        !           117: 
        !           118: BOOL FAR PASCAL FEnumPaintGizmos(PGIZMO pGizmo, UINT iGizmo, DWORD dw)
        !           119:     {
        !           120:     LPPAINTSTRUCT   pps=(LPPAINTSTRUCT)dw;
        !           121:     RECT            rc, rcI;
        !           122: 
        !           123:     //Only draw those marked for repaint.
        !           124:     if ((GIZMOTYPE_DRAWN & pGizmo->iType))
        !           125:         {
        !           126:         SetRect(&rc, pGizmo->x, pGizmo->y, pGizmo->x+pGizmo->dx, pGizmo->y+pGizmo->dy);
        !           127: 
        !           128:         //Only draw gizmos in the repaint area
        !           129:         if (IntersectRect(&rcI, &rc, &pps->rcPaint))
        !           130:             {
        !           131:             UIToolButtonDrawTDD(pps->hdc, pGizmo->x, pGizmo->y
        !           132:                 , pGizmo->dx, pGizmo->dy, pGizmo->hBmp, pGizmo->cxImage
        !           133:                 , pGizmo->cyImage, pGizmo->iBmp, (UINT)pGizmo->uState, &tdd);
        !           134:             }
        !           135:         }
        !           136: 
        !           137:     return TRUE;
        !           138:     }

unix.superglobalmegacorp.com

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