- Timestamp:
- Jul 31, 2009, 3:39:08 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/plugins/org.eclipse.swt/Eclipse SWT/pm/org/eclipse/swt/widgets/Control.java
r119 r173 471 471 OS.WinSetWindowUShort (handle, OS.QWS_ID, (short)(handle & 0xFFFF)); 472 472 473 //@@TODO (dmik): debug code, remove when no more necessary 473 //@@TODO (dmik): debug code, remove when no more necessary 474 474 //System.out.println ( 475 475 // "Control.createHandle(): Window has been created:\n" + … … 519 519 releaseHandle (); 520 520 if (hwnd != 0) { 521 //@@TODO (dmik): debug code, remove when no more necessary 521 //@@TODO (dmik): debug code, remove when no more necessary 522 522 //System.out.println ( 523 523 // "Control.destroyWidget(): Window is being derstroyed:\n hwnd = " + … … 612 612 if (isFocusControl ()) return true; 613 613 shell.bringToTop (); 614 //@@TODO (dmik): does it relate to OS/2? 614 //@@TODO (dmik): does it relate to OS/2? 615 615 // /* 616 616 // * This code is intentionally commented. … … 780 780 String fontNameSize = len != 0 ? new PSZ (fontBytes).toString() : null; 781 781 Display display = getDisplay (); 782 FATTRS hFont = display.matchFont (fontNameSize); 782 FATTRS hFont = display.matchFont (fontNameSize); 783 783 return Font.pm_new (display, hFont); 784 784 } … … 1039 1039 hwnd, OS.PP_FONTNAMESIZE, 0, null, fontBytes.length, fontBytes, 0); 1040 1040 String fontNameSize = len >= 0 ? new PSZ (fontBytes).toString() : null; 1041 data.hFont = display.matchFont (fontNameSize); 1041 data.hFont = display.matchFont (fontNameSize); 1042 1042 data.hwnd = hwnd; 1043 1043 } … … 1208 1208 int bits = OS.WinQueryWindowULong (handle, OS.QWL_STYLE); 1209 1209 if ((bits & OS.WS_TABSTOP) != 0) return false; 1210 1210 1211 1211 int code = OS.WinSendMsg (handle, OS.WM_QUERYDLGCODE, 0, 0); 1212 1212 if ((code & OS.DLGC_STATIC) != 0) return false; … … 1479 1479 // } 1480 1480 toolTipText = null; 1481 //@@TODO(dmik) 1482 //if (menu != null && !menu.isDisposed ()) {1483 //menu.dispose ();1484 //}1485 //menu = null;1481 1482 if (menu != null && !menu.isDisposed ()) { 1483 menu.dispose (); 1484 } 1485 menu = null; 1486 1486 deregister (); 1487 1487 unsubclass (); … … 1720 1720 boolean sendKeyEvent (int type, int msg, int mp1, int mp2) { 1721 1721 Event event = new Event (); 1722 1722 1723 1723 switch (msg) { 1724 1724 case OS.WM_CHAR: { … … 1726 1726 short usch = OS.SHORT1FROMMP (mp2); 1727 1727 short usvk = OS.SHORT2FROMMP (mp2); 1728 1728 1729 1729 /* Ignore repeating modifier keys by testing key prev. down state */ 1730 1730 if ( … … 1736 1736 if ((fsflags & OS.KC_PREVDOWN) != 0) return true; 1737 1737 } 1738 //@@TODO (dmik): getting a character for DBCS charsets below will not work... 1739 /* Use the character encoding for the default locale */ 1738 //@@TODO (dmik): getting a character for DBCS charsets below will not work... 1739 /* Use the character encoding for the default locale */ 1740 1740 event.character = new String (new byte[] {(byte) usch}).charAt (0); 1741 1741 1742 1742 if ((fsflags & OS.KC_VIRTUALKEY) != 0) { 1743 1743 if (usvk == OS.VK_DELETE) { 1744 /* 1744 /* 1745 1745 * A special case: map VK_DELETE to an ASCII char (127) 1746 1746 * instead of treating it as a virtual key. … … 1749 1749 } else { 1750 1750 event.keyCode = Display.translateKey (usvk); 1751 /* 1751 /* 1752 1752 * Feature in OS/2. The character for cursor move, edit 1753 1753 * and some other virtual keys actually equals to … … 1766 1766 1767 1767 if (!setInputState (event, type)) return true; 1768 1768 1769 1769 return sendKeyEvent (type, msg, mp1, mp2, event); 1770 1770 } … … 2084 2084 String fontName = display.composeFontNameSize (display.systemFont()); 2085 2085 byte[] fontBytes = new PSZ (fontName).getBytes(); 2086 OS.WinSetPresParam (handle, OS.PP_FONTNAMESIZE, fontBytes.length, fontBytes); 2086 OS.WinSetPresParam (handle, OS.PP_FONTNAMESIZE, fontBytes.length, fontBytes); 2087 2087 } 2088 2088 … … 2164 2164 String fontName = display.composeFontNameSize (hFont); 2165 2165 byte[] fontBytes = new PSZ (fontName).getBytes(); 2166 OS.WinSetPresParam (handle, OS.PP_FONTNAMESIZE, fontBytes.length, fontBytes); 2166 OS.WinSetPresParam (handle, OS.PP_FONTNAMESIZE, fontBytes.length, fontBytes); 2167 2167 } 2168 2168 … … 2353 2353 // this won't be necessary when we will draw these types of buttons 2354 2354 // ourselves. 2355 if (index == OS.PP_BACKGROUNDCOLORINDEX) 2355 if (index == OS.PP_BACKGROUNDCOLORINDEX) 2356 2356 OS.WinSetPresParam (handle, OS.PP_BACKGROUNDCOLOR, 4, 2357 2357 new int[] {OS.WinQuerySysColor (OS.HWND_DESKTOP, value [0], 0)}); 2358 2358 2359 2359 index = index == OS.PP_BACKGROUNDCOLORINDEX ? 2360 2360 OS.PP_DISABLEDBACKGROUNDCOLORINDEX : OS.PP_DISABLEDBACKGROUNDCOLOR; … … 2586 2586 // POINT pt = new POINT (); 2587 2587 // pt.x = point.x; pt.y = point.y; 2588 // WinMapWindowPoints 2588 2589 // OS.ScreenToClient (handle, pt); 2589 2590 // return new Point (pt.x, pt.y); … … 2643 2644 if (shell.isVisible () && shell.isEnabled ()) { 2644 2645 short usch = OS.SHORT1FROMMP (qmsg.mp2); 2645 /* Use the character encoding for the default locale */ 2646 /* Use the character encoding for the default locale */ 2646 2647 char ch = new String (new byte[] {(byte) usch}).charAt (0); 2647 2648 return ch != 0 && shell.translateMnemonic (ch); … … 2656 2657 int detail = SWT.TRAVERSE_NONE; 2657 2658 boolean doit = true, all = false; 2658 int keyCode = 0; 2659 int keyCode = 0; 2659 2660 char character = 0; 2660 2661 int code = OS.WinSendMsg (hwnd, OS.WM_QUERYDLGCODE, 0, 0); … … 2684 2685 */ 2685 2686 character = '\t'; 2686 boolean next = (usvk == OS.VK_TAB) && ((fsflags & OS.KC_SHIFT) == 0); 2687 boolean next = (usvk == OS.VK_TAB) && ((fsflags & OS.KC_SHIFT) == 0); 2687 2688 if ((code & OS.DLGC_MLE) != 0) { 2688 2689 if (next && (fsflags & OS.KC_CTRL) == 0) … … 2946 2947 case OS.WM_CALCVALIDRECTS: result = WM_CALCVALIDRECTS (mp1, mp2); break; 2947 2948 case OS.WM_CHAR: result = WM_CHAR (mp1, mp2); break; 2948 //@@TODO (dmik): later 2949 //@@TODO (dmik): later 2949 2950 // case OS.WM_CLEAR: result = WM_CLEAR (wParam, lParam); break; 2950 2951 case OS.WM_CLOSE: result = WM_CLOSE (mp1, mp2); break; … … 2953 2954 case OS.WM_CONTEXTMENU: result = WM_CONTEXTMENU (mp1, mp2); break; 2954 2955 case OS.WM_CONTROL: result = WM_CONTROL (mp1, mp2); break; 2955 //@@TODO (dmik): later 2956 //@@TODO (dmik): later 2956 2957 // case OS.WM_CTLCOLORBTN: 2957 2958 // case OS.WM_CTLCOLORDLG: … … 3006 3007 // case OS.WM_SETCURSOR: result = WM_SETCURSOR (wParam, lParam); break; 3007 3008 case OS.WM_SETFOCUS: result = WM_SETFOCUS (mp1, mp2); break; 3008 //@@TODO (dmik): later 3009 //@@TODO (dmik): later 3009 3010 // case OS.WM_SETFONT: result = WM_SETFONT (wParam, lParam); break; 3010 3011 // case OS.WM_SETTINGCHANGE: result = WM_SETTINGCHANGE (wParam, lParam); break; … … 3012 3013 // case OS.WM_SHOWWINDOW: result = WM_SHOWWINDOW (wParam, lParam); break; 3013 3014 case OS.WM_SIZE: result = WM_SIZE (mp1, mp2); break; 3014 //@@TODO (dmik): later 3015 //@@TODO (dmik): later 3015 3016 // case OS.WM_SYSCHAR: result = WM_SYSCHAR (wParam, lParam); break; 3016 3017 // case OS.WM_SYSCOLORCHANGE: result = WM_SYSCOLORCHANGE (wParam, lParam); break; … … 3040 3041 MRESULT WM_CHAR (int mp1, int mp2) { 3041 3042 boolean keyUp = (OS.SHORT1FROMMP (mp1) & OS.KC_KEYUP) != 0; 3042 //@@TODO (dmik): debug, remove 3043 //@@TODO (dmik): debug, remove 3043 3044 //System.out.println("WM_CHAR ("+this+"): vk="+OS.SHORT2FROMMP (mp2)+" keyup="+keyUp); 3044 3045 sendKeyEvent (keyUp ? SWT.KeyUp : SWT.KeyDown, OS.WM_CHAR, mp1, mp2); … … 3101 3102 * have been destroyed but not removed from the control. 3102 3103 */ 3103 //@@TODO(lpino) First check if this validation applies to OS/2 implementation and then validate using the coordinates of the mouse 3104 //@@TODO(lpino) First check if this validation applies to OS/2 implementation and then validate using the coordinates of the mouse 3104 3105 // if (mp2 != handle) return null; 3105 3106 short flOptions = OS.PU_HCONSTRAIN | OS.PU_VCONSTRAIN | OS.PU_KEYBOARD | OS.PU_MOUSEBUTTON1; … … 3161 3162 if (item == null) return null; 3162 3163 return item.wmDrawChild (mp1, mp2); 3163 } 3164 } 3164 3165 // System.out.println("Control:WM_DRAWITEM - HANDLE ATOM TABLE = " + Integer.toHexString(OS.WinFindAtom(OS.WinQuerySystemAtomTable(), PSZ.getAtom (OS.WC_MENU)))); 3165 3166 return null; … … 3672 3673 int hrgn = OS.GpiCreateRegion (hps, 0, null); 3673 3674 OS.WinQueryUpdateRegion (handle, hrgn); 3674 3675 3675 3676 callWindowProc (OS.WM_PAINT, mp1, mp2); 3676 3677 … … 3690 3691 data.hps = hps; 3691 3692 GC gc = GC.pm_new (this, data); 3692 3693 3693 3694 /* Send the paint event */ 3694 3695 Event event = new Event (); … … 3783 3784 callWindowProc (OS.WM_SETFOCUS, mp1, mp2); 3784 3785 Shell shell = getShell (); 3785 3786 3786 3787 boolean gotFocus = OS.SHORT1FROMMP (mp2) > 0; 3787 3788 3788 3789 /* 3789 3790 * It is possible (but unlikely), that application … … 3797 3798 sendEvent (SWT.FocusOut); 3798 3799 // widget could be disposed at this point 3799 3800 3800 3801 /* 3801 3802 * It is possible that the shell may be … … 3815 3816 } 3816 3817 } 3817 3818 3818 3819 return MRESULT.ZERO; 3819 3820 } … … 4069 4070 } 4070 4071 4071 //@@TODO (dmik): 4072 //@@TODO (dmik): 4072 4073 //LRESULT wmMeasureChild (int wParam, int lParam) { 4073 4074 // return null;
Note:
See TracChangeset
for help on using the changeset viewer.