Annotation of os232sdk/toolkt20/c/samples/jigsaw/jigsaw.h, revision 1.1

1.1     ! root        1: #define INCL_BITMAPFILEFORMAT
        !             2:  
        !             3: #define INCL_DOSMEMMGR
        !             4: #define INCL_DOSINFOSEG
        !             5: #define INCL_DOSPROCESS
        !             6: #define INCL_DOSSEMAPHORES
        !             7: 
        !             8: #define INCL_DEV
        !             9: #define INCL_BASE
        !            10: 
        !            11: #define INCL_WINSYS
        !            12: #define INCL_WININPUT
        !            13: #define INCL_WINMENUS
        !            14: #define INCL_WINDIALOGS
        !            15: #define INCL_WINFRAMEMGR
        !            16: #define INCL_WINPOINTERS
        !            17: #define INCL_WINWINDOWMGR
        !            18: #define INCL_WINMESSAGEMGR
        !            19: #define INCL_WINRECTANGLES
        !            20: #define INCL_WINSCROLLBARS
        !            21: #define INCL_WINSWITCHLIST
        !            22: #define INCL_WINENTRYFIELDS
        !            23: 
        !            24: 
        !            25: #define INCL_GPIPATHS
        !            26: #define INCL_GPILCIDS
        !            27: #define INCL_GPIREGIONS
        !            28: #define INCL_GPICONTROL
        !            29: #define INCL_GPIBITMAPS
        !            30: #define INCL_GPIPRIMITIVES
        !            31: #define INCL_GPITRANSFORMS
        !            32:  
        !            33: #define INCL_ERRORS
        !            34: 
        !            35: #include <os2.h>
        !            36: 
        !            37: #define CALLBACK EXPENTRY
        !            38: 
        !            39: #define APPMENU             1   /* app menu */
        !            40: #define APPTABLE            1   /* app accel table */
        !            41: #define APPICON             1
        !            42: 
        !            43: #define SM_EXIT             1   /* menu item ids */
        !            44: #define SM_ZOOM             10
        !            45: #define SM_HELP             20
        !            46: #define SM_FILE            30
        !            47: #define MENU_RESUME         2
        !            48: #define MENU_EXIT           3
        !            49: #define MENU_PRINT          11
        !            50: #define MENU_STATUS         12
        !            51: #define MENU_SHOW           13
        !            52: #define MENU_HIDE           14
        !            53: #define MENU_ZOOMIN         15
        !            54: #define MENU_ZOOMOUT       16
        !            55: #define MENU_BYTEALIGN     17
        !            56: #define MENU_HELP_EXTENDED  21
        !            57: #define MENU_HELP_INDEX     22
        !            58: #define MENU_HELP_KEYS     23
        !            59: #define MENU_LOAD           31
        !            60: #define MENU_JUMBLE        40
        !            61: #define MENU_DUMMY          9999
        !            62:  
        !            63:  
        !            64: #define TITLEBAR            1    /* string table ids */
        !            65: #define TERMINATE           2
        !            66: #define XFORMFAIL           3
        !            67: #define HELP_EXTENDED       4
        !            68: #define HELP_INDEX          5
        !            69: #define HELP_KEYS           6
        !            70: 
        !            71: #define IDD_OPEN            256
        !            72: #define IDD_STATUS          257
        !            73: #define IDD_NULL            0
        !            74: 
        !            75: #define EID_NAME            258
        !            76: 
        !            77: #define SID_ZOOMFACT        259
        !            78: #define SID_STATUS          260
        !            79: 
        !            80: #define HID_ZOOM            261
        !            81: 
        !            82: #define ADD_HEAD_SEG        1
        !            83: #define ADD_TAIL_SEG        2
        !            84: #define DEL_SEG             3
        !            85: #define MAKE_TAIL_SEG       4
        !            86: #define MAKE_HEAD_SEG       5
        !            87: #define PICTURE_CREATE     0
        !            88: #define PICTURE_UPDATE     1
        !            89: #define ZOOM_MAX            8
        !            90: #define ZOOM_IN             1
        !            91: #define ZOOM_OUT            -1
        !            92: #define UNITY              65536L
        !            93: #define STACKSIZE           4096         /* async thread stack size          */
        !            94: 
        !            95: 
        !            96: /*----------------------- helper macros --------------------------------------*/
        !            97: 
        !            98: #define ROUND_DOWN_MOD( arg, mod)          \
        !            99:     {                                      \
        !           100:        if( arg < 0)                        \
        !           101:        {                                   \
        !           102:            arg -= mod - 1;                 \
        !           103:            arg += arg % mod;               \
        !           104:        } else                              \
        !           105:            arg -= arg % mod;               \
        !           106:     }
        !           107: 
        !           108: #define ROUND_UP_MOD( arg, mod)            \
        !           109:     {                                      \
        !           110:        if( arg < 0)                        \
        !           111:        {                                   \
        !           112:            arg -= arg % mod;               \
        !           113:        } else                              \
        !           114:        {                                   \
        !           115:            arg += mod - 1;                 \
        !           116:            arg -= arg % mod;               \
        !           117:        }                                   \
        !           118:     }
        !           119: 
        !           120: /*
        !           121:  * macro will convert BITMAPFILEHEADER2 to BITMAPFILEHEADER
        !           122:  */
        !           123: #define PBFH1(A)           ((PBITMAPFILEHEADER) (A))
        !           124: /*
        !           125:  * macro will convert BITMAPINFOHEADER2 to BITMAPINFOHEADER
        !           126:  */
        !           127: #define PBMP1(A)           ((PBITMAPINFOHEADER) (A))
        !           128: 
        !           129: /* macro will adjust structure type depending on wiether old or new
        !           130:  * BITMAPINFOHEADER is read in from a BMP file.
        !           131:  */
        !           132: #define ADJUSTED_PBMP(A)    (((A)->cbFix == sizeof(BITMAPINFOHEADER)) \
        !           133:                                     ? PBMP1(A) : (PVOID)(A))
        !           134: 
        !           135: 
        !           136: 
        !           137: 
        !           138: #define STATUS_SHOW(A)                                           \
        !           139: {                                                                \
        !           140:     if (A) {                                                     \
        !           141:         WinSendMsg( hwndStatusOption,                            \
        !           142:                     MM_SETITEMATTR,                              \
        !           143:                     MPFROM2SHORT( MENU_SHOW, TRUE),              \
        !           144:                     MPFROM2SHORT( MIA_DISABLED, ~MIA_DISABLED)); \
        !           145:         }                                                        \
        !           146:     else {                                                       \
        !           147:         WinSendMsg( hwndStatusOption,                            \
        !           148:                     MM_SETITEMATTR,                              \
        !           149:                     MPFROM2SHORT( MENU_SHOW, TRUE),              \
        !           150:                     MPFROM2SHORT( MIA_DISABLED, MIA_DISABLED));  \
        !           151:         }                                                        \
        !           152: }
        !           153: 
        !           154: 
        !           155: #define STATUS_HIDE(A)                                           \
        !           156: {                                                                \
        !           157:     if (A) {                                                     \
        !           158:         WinSendMsg( hwndStatusOption,                            \
        !           159:                     MM_SETITEMATTR,                              \
        !           160:                     MPFROM2SHORT( MENU_HIDE, TRUE),              \
        !           161:                     MPFROM2SHORT( MIA_DISABLED, ~MIA_DISABLED)); \
        !           162:         }                                                        \
        !           163:     else {                                                       \
        !           164:         WinSendMsg( hwndStatusOption,                            \
        !           165:                     MM_SETITEMATTR,                              \
        !           166:                     MPFROM2SHORT( MENU_HIDE, TRUE),              \
        !           167:                     MPFROM2SHORT( MIA_DISABLED, MIA_DISABLED));  \
        !           168:         }                                                        \
        !           169: }
        !           170: 
        !           171: /*----------------------- inter-thread messages ------------------------------*/
        !           172:  
        !           173: #define UM_DIE       WM_USER+1        /* instruct async thread to terminate  */
        !           174: #define UM_DRAW       WM_USER+2        /* draw the current picture           */
        !           175: #define UM_VSCROLL    WM_USER+3        /* perform scroll by recalculating the */
        !           176:                                        /* default viewing transform           */
        !           177: #define UM_HSCROLL    WM_USER+4        /* perform scroll by recalculating the */
        !           178:                                        /* default viewing transform           */
        !           179: #define UM_SIZING     WM_USER+5        /* perform sizing by recalculating the */
        !           180:                                        /* default viewing transform           */
        !           181: #define UM_ZOOM       WM_USER+6        /* zoom the picture by recalculating   */
        !           182:                                        /* the default viewing transform       */
        !           183: #define UM_REDRAW     WM_USER+8        /* redraw the entire client window     */
        !           184: #define UM_JUMBLE     WM_USER+9        /* scatter the pieces on the window    */
        !           185: #define UM_LOAD       WM_USER+10       /* load a bitmap from disk            */
        !           186: #define UM_LEFTDOWN   WM_USER+11       /* correlate and prepare to drag       */
        !           187: #define UM_MOUSEMOVE  WM_USER+12       /* remove, reposition, and redraw      */
        !           188: #define UM_LEFTUP     WM_USER+13       /* stop dragging                      */
        !           189: #define UM_CHAR       WM_USER+14       /* a keyboard key                     */
        !           190: #define UM_LAST       WM_USER+15
        !           191:  
        !           192:  
        !           193: /*------------------------- correlation parameters ---------------------------*/
        !           194:  
        !           195: #define HITS   1L                     /* maximum number of hits to return    */
        !           196: #define DEPTH  2L                     /* max depth of seg calls to return    */
        !           197:  
        !           198: /*-------------------------- old-style bitmap header -------------------------*/
        !           199: 
        !           200: typedef struct {
        !           201:     USHORT    wType;
        !           202:     ULONG     dwSize;
        !           203:     int       xHotspot;
        !           204:     int       yHotspot;
        !           205:     ULONG     dwBitsOffset;
        !           206:     USHORT    bmWidth;
        !           207:     USHORT    bmHeight;
        !           208:     USHORT    bmPlanes;
        !           209:     USHORT    bmBitcount;
        !           210: } RCBITMAP;
        !           211: typedef RCBITMAP FAR *PRCBITMAP;
        !           212: 
        !           213: /*-------------------------- bitmap-related data -----------------------------*/
        !           214: typedef struct _LOADINFO {            /* li                                  */
        !           215:     HFILE   hf;
        !           216:     CHAR    szFileName[CCHMAXPATH];
        !           217: } LOADINFO, FAR *PLOADINFO;       /* pli                                     */
        !           218: 
        !           219: 
        !           220: 
        !           221: /*-------------------------- segment list ------------------------------------*/
        !           222: 
        !           223: typedef struct _SEGLIST {             /* sl                                  */
        !           224:   LONG                 lSegId;
        !           225:   struct _SEGLIST FAR * pslPrev;
        !           226:   struct _SEGLIST FAR * pslNext;
        !           227:   POINTL               ptlLocation;   /* piece location, world coordinates   */
        !           228:   RECTL                rclCurrent;    /* segment bounding box, model coords  */
        !           229:   RECTL                rclBitBlt;     /* segment bounding box, world coords  */
        !           230:   POINTL               aptlBitBlt[4]; /* BitBlt parameters                   */
        !           231:   LONG                 lAdjacent[8];  /* adjacent segments in original pict  */
        !           232:   struct _SEGLIST FAR * pslNextIsland; /* next member in island list         */
        !           233:   BOOL                 fIslandMark;   /* used for marking island members     */
        !           234:   POINTL               aptlSides[12]; /* control points for piece outline    */
        !           235:   HDC                  hdcHole;       /* used to punch hole in target        */
        !           236:   HPS                  hpsHole;
        !           237:   HBITMAP              hbmHole;
        !           238:   HDC                  hdcFill;       /* used to fill hole                   */
        !           239:   HPS                  hpsFill;
        !           240:   HBITMAP              hbmFill;
        !           241:   POINTL               ptlModelXlate; /* lM31 and lM31 for piece             */
        !           242:   BOOL                 fVisible;      /* TRUE iff should be drawn            */
        !           243: } SEGLIST ;
        !           244: typedef SEGLIST FAR *PSEGLIST;        /* psl                                 */
        !           245: typedef PSEGLIST FAR *PPSEGLIST;       /* ppsl                               */
        !           246: 
        !           247: 
        !           248: /*------------------------- Function Prototypes ------------------------------*/
        !           249: 
        !           250: extern VOID             CalcBounds( VOID);
        !           251: extern VOID              CalcSize( MPARAM mp1, MPARAM mp2);
        !           252: extern VOID              CalcTransform( HWND hwnd);
        !           253: extern VOID              CheckPsl( PSEGLIST psl);
        !           254: extern MRESULT EXPENTRY  ClientWndProc( HWND hwnd, USHORT msg, MPARAM mp1,
        !           255:                                  MPARAM  mp2);
        !           256: extern PSEGLIST          Correlate( PPOINTL pptl);
        !           257: extern BOOL              CreateBitmapHdcHps( PHDC phdc, PHPS phps);
        !           258: extern BOOL              CreatePicture( SHORT sUpdate);
        !           259: extern BOOL              DoDraw( HPS hps, HRGN hrgn, BOOL fPaint);
        !           260: extern VOID              DoHorzScroll( VOID);
        !           261: extern VOID              DoVertScroll( VOID);
        !           262: extern VOID              DrawPiece( HPS hps, PSEGLIST psl, BOOL fFill);
        !           263: extern BOOL              DumpPicture( VOID);
        !           264: extern VOID              Finalize( VOID);
        !           265: extern BOOL              Initialize( VOID);
        !           266: extern VOID              Jumble( VOID);
        !           267: extern VOID              LeftDown( MPARAM mp);
        !           268: extern VOID              LeftUp( VOID);
        !           269: extern VOID              Load( PLOADINFO pli);
        !           270: extern VOID cdecl        main( VOID);
        !           271: extern VOID              MarkIsland( PSEGLIST pslMark, BOOL fMark);
        !           272: /*
        !           273: VOID              MessageInt( HWND, INT, PCH);
        !           274: */
        !           275: extern VOID              MouseMove( MPARAM mp);
        !           276: extern VOID              MyMessageBox( HWND hWnd, PSZ psz);
        !           277: extern VOID FAR          NewThread( VOID);
        !           278: extern BOOL              PrepareBitmap( VOID);
        !           279: extern BOOL              ReadBitmap( HFILE hfile);
        !           280: extern VOID              Redraw( VOID);
        !           281: extern VOID              ReportError( HAB hab);
        !           282: extern VOID              ResetScrollBars( VOID);
        !           283: extern BOOL              SegListCheck( INT iLoc);
        !           284: extern PSEGLIST          SegListGet( LONG lSeg);
        !           285: extern PSEGLIST          SegListUpdate( USHORT usOperation, PSEGLIST pslUpdate);
        !           286: extern BOOL              SendCommand( USHORT usCommand, MPARAM mp1, MPARAM mp2);
        !           287: extern VOID              SetDVTransform( FIXED fx11, FIXED fx12, FIXED fx21,
        !           288:                                  FIXED fx22,
        !           289:                          FIXED l31,FIXED l32, FIXED lType);
        !           290: extern VOID              SetRect( PSEGLIST psl);
        !           291: extern VOID              ToBottom( PSEGLIST pslDown);
        !           292: extern VOID              ToggleMenuItem( USHORT usMenuMajor, USHORT usMenuMinor,
        !           293:                          PBOOL pfFlag);
        !           294: extern VOID              DisplayZoomFactor(LONG lScaleFactor);
        !           295: extern MRESULT           WndProcCommand( HWND hwnd, USHORT msg, MPARAM mp1,
        !           296:                                  MPARAM mp2);
        !           297: extern MRESULT           WndProcCreate( HWND hwnd);
        !           298: extern MRESULT           WndProcPaint( VOID);
        !           299: /*
        !           300: MRESULT           WndProcSize( MPARAM, MPARAM);
        !           301: */
        !           302: extern VOID              Zoom(VOID);
        !           303: extern MRESULT EXPENTRY  CheapWndProc(HWND hwnd, USHORT  msg, MPARAM  mp1,
        !           304:                                  MPARAM mp2);
        !           305: extern MRESULT EXPENTRY  CheapWndProc(HWND hwnd, USHORT msg, MPARAM mp1,
        !           306:                                  MPARAM mp2);
        !           307: extern MRESULT EXPENTRY  StatusDlgProc(HWND hwnd, USHORT msg, MPARAM mp1,
        !           308:                                  MPARAM mp2);

unix.superglobalmegacorp.com

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