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];