Mercurial > dwindows
comparison os2/dw.c @ 529:82a203664aa9
Fixed dw_window_set_pointer() for OS/2.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Tue, 23 Mar 2004 20:12:31 +0000 |
parents | e0ea29c3d1eb |
children | 27533e1ccaf5 |
comparison
equal
deleted
inserted
replaced
528:d78f476c40f5 | 529:82a203664aa9 |
---|---|
31 #include "dw.h" | 31 #include "dw.h" |
32 | 32 |
33 #define QWP_USER 0 | 33 #define QWP_USER 0 |
34 | 34 |
35 MRESULT EXPENTRY _run_event(HWND hWnd, ULONG msg, MPARAM mp1, MPARAM mp2); | 35 MRESULT EXPENTRY _run_event(HWND hWnd, ULONG msg, MPARAM mp1, MPARAM mp2); |
36 MRESULT EXPENTRY _wndproc(HWND hWnd, ULONG msg, MPARAM mp1, MPARAM mp2); | |
36 void _do_resize(Box *thisbox, int x, int y); | 37 void _do_resize(Box *thisbox, int x, int y); |
37 void _handle_splitbar_resize(HWND hwnd, float percent, int type, int x, int y); | 38 void _handle_splitbar_resize(HWND hwnd, float percent, int type, int x, int y); |
38 int _load_bitmap_file(char *file, HWND handle, HBITMAP *hbm, HDC *hdc, HPS *hps, unsigned long *width, unsigned long *height); | 39 int _load_bitmap_file(char *file, HWND handle, HBITMAP *hbm, HDC *hdc, HPS *hps, unsigned long *width, unsigned long *height); |
39 void _dw_box_pack_start(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad, char *functionname); | 40 void _dw_box_pack_start(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad, char *functionname); |
40 void _dw_box_pack_end(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad, char *functionname); | 41 void _dw_box_pack_end(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad, char *functionname); |
1435 /* This procedure handles drawing of a status border */ | 1436 /* This procedure handles drawing of a status border */ |
1436 MRESULT EXPENTRY _statusproc(HWND hWnd, ULONG msg, MPARAM mp1, MPARAM mp2) | 1437 MRESULT EXPENTRY _statusproc(HWND hWnd, ULONG msg, MPARAM mp1, MPARAM mp2) |
1437 { | 1438 { |
1438 PFNWP *blah = WinQueryWindowPtr(hWnd, QWP_USER); | 1439 PFNWP *blah = WinQueryWindowPtr(hWnd, QWP_USER); |
1439 | 1440 |
1441 if(msg == WM_MOUSEMOVE) | |
1442 return _wndproc(hWnd, msg, mp1, mp2); | |
1443 | |
1440 if(blah && *blah) | 1444 if(blah && *blah) |
1441 { | 1445 { |
1442 PFNWP myfunc = *blah; | 1446 PFNWP myfunc = *blah; |
1443 | 1447 |
1444 switch(msg) | 1448 switch(msg) |
1673 { | 1677 { |
1674 int pos = (int)dw_window_get_data(hWnd, "_dw_slider_value"); | 1678 int pos = (int)dw_window_get_data(hWnd, "_dw_slider_value"); |
1675 WinSendMsg(hWnd, SLM_SETSLIDERINFO, MPFROM2SHORT(SMA_SLIDERARMPOSITION, SMA_INCREMENTVALUE), (MPARAM)pos); | 1679 WinSendMsg(hWnd, SLM_SETSLIDERINFO, MPFROM2SHORT(SMA_SLIDERARMPOSITION, SMA_INCREMENTVALUE), (MPARAM)pos); |
1676 } | 1680 } |
1677 break; | 1681 break; |
1682 case WM_MOUSEMOVE: | |
1683 return _wndproc(hWnd, msg, mp1, mp2); | |
1678 } | 1684 } |
1679 | 1685 |
1680 if(oldproc) | 1686 if(oldproc) |
1681 return oldproc(hWnd, msg, mp1, mp2); | 1687 return oldproc(hWnd, msg, mp1, mp2); |
1682 | 1688 |
1688 { | 1694 { |
1689 WindowData *blah = (WindowData *)WinQueryWindowPtr(hWnd, QWP_USER); | 1695 WindowData *blah = (WindowData *)WinQueryWindowPtr(hWnd, QWP_USER); |
1690 | 1696 |
1691 switch(msg) | 1697 switch(msg) |
1692 { | 1698 { |
1699 case WM_MOUSEMOVE: | |
1700 return _wndproc(hWnd, msg, mp1, mp2); | |
1693 case WM_CONTEXTMENU: | 1701 case WM_CONTEXTMENU: |
1694 case WM_COMMAND: | 1702 case WM_COMMAND: |
1695 return _entryproc(hWnd, msg, mp1, mp2); | 1703 return _entryproc(hWnd, msg, mp1, mp2); |
1696 case WM_SETFOCUS: | 1704 case WM_SETFOCUS: |
1697 _run_event(hWnd, msg, mp1, mp2); | 1705 _run_event(hWnd, msg, mp1, mp2); |
1737 if(blah) | 1745 if(blah) |
1738 oldproc = blah->oldproc; | 1746 oldproc = blah->oldproc; |
1739 | 1747 |
1740 switch(msg) | 1748 switch(msg) |
1741 { | 1749 { |
1750 case WM_MOUSEMOVE: | |
1751 return _wndproc(hWnd, msg, mp1, mp2); | |
1742 case WM_CONTEXTMENU: | 1752 case WM_CONTEXTMENU: |
1743 case WM_COMMAND: | 1753 case WM_COMMAND: |
1744 return _entryproc(hWnd, msg, mp1, mp2); | 1754 return _entryproc(hWnd, msg, mp1, mp2); |
1745 } | 1755 } |
1746 | 1756 |
1782 if(blah) | 1792 if(blah) |
1783 oldproc = blah->oldproc; | 1793 oldproc = blah->oldproc; |
1784 | 1794 |
1785 switch(msg) | 1795 switch(msg) |
1786 { | 1796 { |
1797 case WM_MOUSEMOVE: | |
1798 return _wndproc(hWnd, msg, mp1, mp2); | |
1787 case WM_SIZE: | 1799 case WM_SIZE: |
1788 WinPostMsg(hWnd, WM_USER+7, 0, 0); | 1800 WinPostMsg(hWnd, WM_USER+7, 0, 0); |
1789 break; | 1801 break; |
1790 case WM_USER+7: | 1802 case WM_USER+7: |
1791 WinSendMsg(hWnd, SLM_SETSLIDERINFO, MPFROM2SHORT(SMA_SLIDERARMPOSITION,SMA_RANGEVALUE), (MPARAM)_dw_int_pos(hWnd)); | 1803 WinSendMsg(hWnd, SLM_SETSLIDERINFO, MPFROM2SHORT(SMA_SLIDERARMPOSITION,SMA_RANGEVALUE), (MPARAM)_dw_int_pos(hWnd)); |
1809 if(blah) | 1821 if(blah) |
1810 oldproc = blah->oldproc; | 1822 oldproc = blah->oldproc; |
1811 | 1823 |
1812 switch(msg) | 1824 switch(msg) |
1813 { | 1825 { |
1826 case WM_MOUSEMOVE: | |
1827 return _wndproc(hWnd, msg, mp1, mp2); | |
1814 case WM_CHAR: | 1828 case WM_CHAR: |
1815 if(SHORT1FROMMP(mp2) == '\t') | 1829 if(SHORT1FROMMP(mp2) == '\t') |
1816 { | 1830 { |
1817 if(CHARMSG(&msg)->fs & KC_SHIFT) | 1831 if(CHARMSG(&msg)->fs & KC_SHIFT) |
1818 _shift_focus_back(hWnd); | 1832 _shift_focus_back(hWnd); |
2497 { | 2511 { |
2498 Box *blah = WinQueryWindowPtr(hWnd, QWP_USER); | 2512 Box *blah = WinQueryWindowPtr(hWnd, QWP_USER); |
2499 | 2513 |
2500 switch(msg) | 2514 switch(msg) |
2501 { | 2515 { |
2516 case WM_MOUSEMOVE: | |
2517 return _wndproc(hWnd, msg, mp1, mp2); | |
2502 case WM_VSCROLL: | 2518 case WM_VSCROLL: |
2503 case WM_HSCROLL: | 2519 case WM_HSCROLL: |
2504 if(_run_event(hWnd, msg, mp1, mp2)) | 2520 if(_run_event(hWnd, msg, mp1, mp2)) |
2505 { | 2521 { |
2506 HWND window = WinWindowFromID(hWnd, (ULONG)mp1); | 2522 HWND window = WinWindowFromID(hWnd, (ULONG)mp1); |
2653 return (MRESULT)TRUE; | 2669 return (MRESULT)TRUE; |
2654 } | 2670 } |
2655 break; | 2671 break; |
2656 case WM_MOUSEMOVE: | 2672 case WM_MOUSEMOVE: |
2657 { | 2673 { |
2658 HPOINTER ptr = (HPOINTER)dw_window_get_data(hWnd, "_dw_pointer"); | 2674 HPOINTER pointer; |
2659 | 2675 |
2660 if(ptr) | 2676 if((pointer = (HPOINTER)dw_window_get_data(hWnd, "_dw_pointer")) || |
2661 WinSetPointer(HWND_DESKTOP, ptr); | 2677 (pointer = (HPOINTER)dw_window_get_data(_toplevel_window(hWnd), "_dw_pointer"))) |
2662 } | 2678 { |
2663 break; | 2679 WinSetPointer(HWND_DESKTOP, pointer); |
2680 } | |
2681 } | |
2682 return MRFROMSHORT(FALSE); | |
2664 case WM_USER: | 2683 case WM_USER: |
2665 windowfunc = (void (* API)(void *))mp1; | 2684 windowfunc = (void (* API)(void *))mp1; |
2666 | 2685 |
2667 if(windowfunc) | 2686 if(windowfunc) |
2668 windowfunc((void *)mp2); | 2687 windowfunc((void *)mp2); |
3007 | 3026 |
3008 oldproc = bubble->pOldProc; | 3027 oldproc = bubble->pOldProc; |
3009 | 3028 |
3010 switch(msg) | 3029 switch(msg) |
3011 { | 3030 { |
3031 case WM_MOUSEMOVE: | |
3032 return _wndproc(hwnd, msg, mp1, mp2); | |
3012 case WM_PAINT: | 3033 case WM_PAINT: |
3013 return _button_draw(hwnd, msg, mp1, mp2, oldproc, 0); | 3034 return _button_draw(hwnd, msg, mp1, mp2, oldproc, 0); |
3014 case BM_SETHILITE: | 3035 case BM_SETHILITE: |
3015 return _button_draw(hwnd, msg, mp1, mp2, oldproc, (int)mp1); | 3036 return _button_draw(hwnd, msg, mp1, mp2, oldproc, (int)mp1); |
3016 case WM_SETFOCUS: | 3037 case WM_SETFOCUS: |
3217 { | 3238 { |
3218 int res = 0; | 3239 int res = 0; |
3219 res = (int)_run_event(hwnd, msg, mp1, mp2); | 3240 res = (int)_run_event(hwnd, msg, mp1, mp2); |
3220 switch(msg) | 3241 switch(msg) |
3221 { | 3242 { |
3243 case WM_MOUSEMOVE: | |
3244 return _wndproc(hwnd, msg, mp1, mp2); | |
3222 case WM_BUTTON1DOWN: | 3245 case WM_BUTTON1DOWN: |
3223 case WM_BUTTON2DOWN: | 3246 case WM_BUTTON2DOWN: |
3224 case WM_BUTTON3DOWN: | 3247 case WM_BUTTON3DOWN: |
3225 if(res == -1) | 3248 if(res == -1) |
3226 WinSetFocus(HWND_DESKTOP, hwnd); | 3249 WinSetFocus(HWND_DESKTOP, hwnd); |
3238 if(blah) | 3261 if(blah) |
3239 oldproc = blah->oldproc; | 3262 oldproc = blah->oldproc; |
3240 | 3263 |
3241 switch(msg) | 3264 switch(msg) |
3242 { | 3265 { |
3266 case WM_MOUSEMOVE: | |
3267 return _wndproc(hwnd, msg, mp1, mp2); | |
3243 case WM_PAINT: | 3268 case WM_PAINT: |
3244 { | 3269 { |
3245 HPS hps; | 3270 HPS hps; |
3246 RECTL rcl; | 3271 RECTL rcl; |
3247 POINTL ptl[2]; | 3272 POINTL ptl[2]; |