- Timestamp:
- Jun 19, 2008, 1:02:02 AM (17 years ago)
- Location:
- trunk/src/plugins/org.eclipse.swt/Eclipse SWT/pm/org/eclipse/swt/widgets
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/plugins/org.eclipse.swt/Eclipse SWT/pm/org/eclipse/swt/widgets/Control.java
r101 r103 13 13 */ 14 14 15 import java.util.MissingResourceException; 15 16 import org.eclipse.swt.internal.pm.*; 16 17 import org.eclipse.swt.graphics.*; … … 2942 2943 switch (msg) { 2943 2944 // case OS.WM_ADJUSTWINDOWPOS: result = WM_ADJUSTWINDOWPOS (mp1, mp2); break; 2945 // case OS.WM_BUTTON2DBLCLK: result = WM_BUTTON2DBLCLK (mp1, mp2); break; 2944 2946 case OS.WM_CALCVALIDRECTS: result = WM_CALCVALIDRECTS (mp1, mp2); break; 2945 2947 case OS.WM_CHAR: result = WM_CHAR (mp1, mp2); break; … … 2964 2966 // case OS.WM_ENDSESSION: result = WM_ENDSESSION (wParam, lParam); break; 2965 2967 case OS.WM_ERASEBACKGROUND: result = WM_ERASEBACKGROUND (mp1, mp2); break; 2968 case OS.WM_FOCUSCHANGE: result = WM_FOCUSCHANGE (mp1, mp2); break; 2966 2969 case OS.WM_QUERYDLGCODE: result = WM_QUERYDLGCODE (mp1, mp2); break; 2967 2970 // case OS.WM_HELP: result = WM_HELP (wParam, lParam); break; … … 3028 3031 return null; 3029 3032 } 3030 3033 //MRESULT OS.WM_BUTTON2DBLCLK (int mp1, int mp2) { 3034 // return null; 3035 //} 3031 3036 MRESULT WM_CALCVALIDRECTS (int mp1, int mp2) { 3032 3037 return null; … … 3051 3056 3052 3057 MRESULT WM_COMMAND (int mp1, int mp2) { 3053 //@@TODO(dmik): do we need this?3054 // /*3055 // * When the WM_COMMAND message is sent from a3056 // * menu, the HWND parameter in LPARAM is zero.3057 // */3058 // if (lParam == 0) {3059 // Decorations shell = menuShell ();3060 // if (shell.isEnabled ()) {3061 // int id = wParam & 0xFFFF;3062 // MenuItem item = shell.findMenuItem (id);3063 // if (item != null && item.isEnabled ()) {3064 // return item.wmCommandChild (wParam, lParam);3065 // }3066 // }3067 // return null;3068 // }3069 // Control control = WidgetTable.get (lParam);3070 // if (control == null) return null;3071 // return control.wmCommandChild (wParam, lParam);3072 3058 switch (OS.SHORT1FROMMP (mp2)) { 3073 //@@TODO(dmik)3074 3059 case OS.CMDSRC_MENU: 3075 System.out.println("Control:WM_COMMAND - CMDSRC_MENU"); 3060 Decorations shell = menuShell (); 3061 if (shell.isEnabled ()) { 3062 int id = mp1; 3063 MenuItem item = shell.findMenuItem (id); 3064 if (item != null && item.isEnabled ()) { 3065 return item.wmCommandChild (mp1, mp2); 3066 } 3067 } 3076 3068 break; 3077 3069 // return null; … … 3086 3078 //case OS.CMDSRC_PRINTDLG: 3087 3079 } 3088 System.out.println("Control:WM_COMMAND - Calling wmCommandChild");3089 3080 int hwndChild = OS.WinWindowFromID (handle, OS.SHORT1FROMMP (mp1)); 3090 3081 Control control = WidgetTable.get (hwndChild); 3091 System.out.println("Control:WM_COMMAND - Control handle = " + Integer.toHexString (handle));3092 System.out.println("Control:WM_COMMAND - Child handle = " + Integer.toHexString (hwndChild));3093 // System.out.println("Control:WM_COMMAND - Menu handle = " + Integer.toHexString (menu.handle));3094 3082 if (control == null) return null; 3095 3083 return control.wmCommandChild (mp1, mp2); … … 3105 3093 */ 3106 3094 // if (mp2 != handle) return null; 3107 boolean bIsWaiting = true; 3108 System.out.println("Control:WM_CONTEXTMENU - PARENT HANDLE = " + Integer.toHexString (handle)); 3095 int parentHandle = OS.WinQueryWindow(menu.handle, OS.QW_PARENT); 3109 3096 int hab = parent.getDisplay ().hab; 3110 3097 //@@TODO(lpino) Remove debug msg 3111 System.out.println("Control:WM_CONTEXTMENU - MENU HANDLE = " + Integer.toHexString (menu.handle)); 3112 short flOptions = OS.PU_HCONSTRAIN | OS.PU_VCONSTRAIN | OS.PU_MOUSEBUTTON1DOWN | OS.PU_KEYBOARD | OS.PU_MOUSEBUTTON1; 3113 boolean rc = OS.WinPopupMenu(handle, handle, menu.handle, 0, OS.SHORT1FROMMP(mp1), OS.SHORT2FROMMP(mp1), flOptions); 3098 // System.out.println("Control:WM_CONTEXTMENU - PARENT HANDLE = " + Integer.toHexString (parentHandle)); 3099 // System.out.println("Control:WM_CONTEXTMENU - MENU HANDLE = " + Integer.toHexString (menu.handle)); 3100 short flOptions = OS.PU_HCONSTRAIN | OS.PU_VCONSTRAIN | OS.PU_KEYBOARD | OS.PU_MOUSEBUTTON1; 3101 boolean rc = OS.WinPopupMenu(parentHandle, parentHandle, menu.handle, 0, OS.SHORT1FROMMP(mp1), OS.SHORT2FROMMP(mp1), flOptions); 3114 3102 // if (menu != null && !menu.isDisposed ()) { 3115 3103 // menu.setVisible (true); 3116 3104 // } 3117 // while(bIsWaiting){3118 // QMSG qmsg = new QMSG ();3119 //3120 // OS.WinGetMsg(hab,qmsg, 0, 0, 0);3121 // if (qmsg.msg == OS.WM_COMMAND)3122 // bIsWaiting = false;3123 // OS.WinDispatchMsg(hab, qmsg);3124 // System.out.println("Control:WM_CONTEXTMENU");3125 // }3126 System.out.println("Control:WM_CONTEXTMENU - ABOUT TO RETURN" );3127 3105 return MRESULT.TRUE; 3128 3106 } … … 3256 3234 3257 3235 /* Ignore WM_INITMENU for an accelerator */ 3258 System.out.println("Control:WM_INITMENU " + OS.WinIsWindowVisible(mp2));3236 System.out.println("Control:WM_INITMENU - MENU HANDLE = " + Integer.toHexString (mp2)); 3259 3237 Display display = getDisplay (); 3260 3238 if (display.accelKeyHit) return null; … … 3294 3272 } 3295 3273 } 3296 System.out.println("Control:WM_INITMENU " + menu); 3274 if(menu == null) 3275 System.out.println("Control:WM_INITMENU " + menu); 3276 else 3277 System.out.println("Control:WM_INITMENU " + Integer.toHexString (menu.handle)); 3297 3278 // 3298 3279 // /* … … 3491 3472 // 3492 3473 MRESULT WM_MENUSELECT (int mp1, int mp2) { 3493 System.out.println("Control:WM_MENUSELECT"); 3474 System.out.println("Control:WM_MENUSELECT - MP1 SHORT 1= " + OS.SHORT1FROMMP(mp1)); 3475 System.out.println("Control:WM_MENUSELECT - MP1 SHORT 2= " + OS.SHORT2FROMMP(mp1)); 3476 if(OS.SHORT2FROMMP(mp1) == 0) return MRESULT.FALSE; 3494 3477 // int code = wParam >> 16; 3495 //Shell shell = getShell ();3478 Shell shell = getShell (); 3496 3479 // if (code == -1 && lParam == 0) { 3497 3480 // Menu menu = shell.activeMenu; … … 3573 3556 // if (item != null) item.sendEvent (SWT.Arm); 3574 3557 // } 3575 return null; 3558 // int parentHandle = OS.WinQueryWindow(menu.handle, OS.QW_PARENT); 3559 // boolean bIsWaiting = true; 3560 // int hab = 0; 3561 // if(parent == null) 3562 // hab = getDisplay().hab; 3563 // else 3564 // hab = parent.getDisplay ().hab; 3565 // while(bIsWaiting){ 3566 // QMSG qmsg = new QMSG (); 3567 // 3568 // OS.WinGetMsg(hab,qmsg, 0, 0, 0); 3569 // if (qmsg.msg == OS.WM_COMMAND || qmsg.msg == OS.WM_MENUSELECT) 3570 // bIsWaiting = false; 3571 // OS.WinDispatchMsg(hab, qmsg); 3572 // System.out.println("Control:WM_CONTEXTMENU"); 3573 // } 3574 return MRESULT.TRUE; 3576 3575 } 3577 3576 // … … 4040 4039 return new MRESULT (result); 4041 4040 } 4042 4041 MRESULT WM_FOCUSCHANGE (int mp1, int mp2) { 4042 System.out.println("Control:WM_FOCUSCHANGE - HANDLE = " + Integer.toHexString (mp1)); 4043 callWindowProc (OS.WM_FOCUSCHANGE, mp1, mp2); 4044 return MRESULT.ZERO; 4045 } 4043 4046 //MRESULT WM_ADJUSTWINDOWPOS (int mp1, int mp2) { 4044 4047 // System.out.println("Control:WM_ADJUSTWINDOWPOS"); -
trunk/src/plugins/org.eclipse.swt/Eclipse SWT/pm/org/eclipse/swt/widgets/Menu.java
r98 r103 241 241 ); 242 242 } else if ((style & SWT.POP_UP) != 0) { 243 // short flOptions = OS.PU_MOUSEBUTTON1DOWN | OS.PU_KEYBOARD | OS.PU_MOUSEBUTTON1; 244 handle = OS.WinCreateWindow (OS.HWND_DESKTOP, /* parent window */ 243 handle = OS.WinCreateWindow (parent.handle, /* parent window */ 245 244 PSZ.getAtom (OS.WC_MENU), /* class name */ 246 null, 247 0, 248 0, 0, 0, 0, /* size and position */249 OS.NULLHANDLE,/* owner window */250 OS.HWND_TOP, /* sibling window */251 0, 252 OS.NULLHANDLE, 253 0 245 null, /* window text */ 246 0, /* window style */ 247 0, 0, 0, 0, /* size and position */ 248 parent.handle, /* owner window */ 249 OS.HWND_TOP, /* sibling window */ 250 0, /* ID */ 251 OS.NULLHANDLE, /* control data */ 252 0 /* presentation parameters */ 254 253 ); 255 // boolean rc = OS.WinPopupMenu(OS.HWND_DESKTOP, OS.HWND_DESKTOP, handle, 0, 0, 0, flOptions);256 254 System.out.println ( 257 255 "Menu.createHandle(): POPUP menu window has been created:\n" + -
trunk/src/plugins/org.eclipse.swt/Eclipse SWT/pm/org/eclipse/swt/widgets/MenuItem.java
r91 r103 633 633 if(rc == OS.MIT_ERROR || rc == OS.MIT_MEMERROR) 634 634 error (SWT.ERROR_CANNOT_SET_MENU); 635 //parent.destroyAcceleratorTable ();635 parent.destroyAcceleratorTable (); 636 636 } 637 637 … … 683 683 684 684 MRESULT wmCommandChild (int mp1, int mp2) { 685 System.out.println("MenuItem:wmCommandChild");686 685 if ((style & (SWT.CHECK | SWT.RADIO)) != 0) { 687 686 setSelection (!getSelection ()); -
trunk/src/plugins/org.eclipse.swt/Eclipse SWT/pm/org/eclipse/swt/widgets/Shell.java
r101 r103 102 102 public class Shell extends Decorations { 103 103 Display display; 104 //@@TODO(dmik)105 104 Menu activeMenu; 106 105 // int hIMC; … … 1249 1248 // return result; 1250 1249 //} 1251 //MRESULT WM_CONTEXTMENU (int mp1, int mp2) { 1252 // System.out.println("Shell:WM_CONTEXTMENU - PARENT HANDLE = " + Integer.toHexString (handle)); 1253 // System.out.println("Control:WM_CONTEXTMENU - MENU HANDLE = " + Integer.toHexString (activeMenu.handle)); 1254 // return MRESULT.TRUE; 1255 //} 1256 } 1250 }
Note:
See TracChangeset
for help on using the changeset viewer.