4041 4042 HIMC AwtComponent::ImmAssociateContext(HIMC himc) 4043 { 4044 return ::ImmAssociateContext(ImmGetHWnd(), himc); 4045 } 4046 4047 HWND AwtComponent::GetProxyFocusOwner() 4048 { 4049 AwtWindow *window = GetContainer(); 4050 if (window != 0) { 4051 AwtFrame *owner = window->GetOwningFrameOrDialog(); 4052 if (owner != 0) { 4053 return owner->GetProxyFocusOwner(); 4054 } else if (!window->IsSimpleWindow()) { // isn't an owned simple window 4055 return ((AwtFrame*)window)->GetProxyFocusOwner(); 4056 } 4057 } 4058 return (HWND)NULL; 4059 } 4060 4061 /* Call DefWindowProc for the focus proxy, if any */ 4062 void AwtComponent::CallProxyDefWindowProc(UINT message, WPARAM wParam, 4063 LPARAM lParam, LRESULT &retVal, MsgRouting &mr) 4064 { 4065 if (mr != mrConsume) { 4066 HWND proxy = GetProxyFocusOwner(); 4067 if (proxy != NULL && ::IsWindowEnabled(proxy)) { 4068 retVal = ComCtl32Util::GetInstance().DefWindowProc(NULL, proxy, message, wParam, lParam); 4069 mr = mrConsume; 4070 } 4071 } 4072 } 4073 4074 MsgRouting AwtComponent::WmCommand(UINT id, HWND hWndChild, UINT notifyCode) 4075 { 4076 /* Menu/Accelerator */ 4077 if (hWndChild == 0) { 4078 AwtObject* obj = AwtToolkit::GetInstance().LookupCmdID(id); 4079 if (obj == NULL) { 4080 return mrConsume; 4081 } 4082 DASSERT(((AwtMenuItem*)obj)->GetID() == id); 4083 obj->DoCommand(); 4084 return mrConsume; 4085 } 4086 /* Child id notification */ 4087 else { 4088 AwtComponent* child = AwtComponent::GetComponent(hWndChild); | 4041 4042 HIMC AwtComponent::ImmAssociateContext(HIMC himc) 4043 { 4044 return ::ImmAssociateContext(ImmGetHWnd(), himc); 4045 } 4046 4047 HWND AwtComponent::GetProxyFocusOwner() 4048 { 4049 AwtWindow *window = GetContainer(); 4050 if (window != 0) { 4051 AwtFrame *owner = window->GetOwningFrameOrDialog(); 4052 if (owner != 0) { 4053 return owner->GetProxyFocusOwner(); 4054 } else if (!window->IsSimpleWindow()) { // isn't an owned simple window 4055 return ((AwtFrame*)window)->GetProxyFocusOwner(); 4056 } 4057 } 4058 return (HWND)NULL; 4059 } 4060 4061 /* Redirects message to the focus proxy, if any */ 4062 void AwtComponent::CallProxyDefWindowProc(UINT message, WPARAM wParam, 4063 LPARAM lParam, LRESULT &retVal, MsgRouting &mr) 4064 { 4065 if (mr != mrConsume) { 4066 HWND proxy = GetProxyFocusOwner(); 4067 if (proxy != NULL && ::IsWindowEnabled(proxy)) { 4068 if (proxy != GetHWnd()) { 4069 retVal = ::SendMessage(proxy, message, wParam, lParam); 4070 } else { 4071 retVal = ComCtl32Util::GetInstance().DefWindowProc(NULL, 4072 proxy, message, wParam, lParam); 4073 } 4074 mr = mrConsume; 4075 } 4076 } 4077 } 4078 4079 MsgRouting AwtComponent::WmCommand(UINT id, HWND hWndChild, UINT notifyCode) 4080 { 4081 /* Menu/Accelerator */ 4082 if (hWndChild == 0) { 4083 AwtObject* obj = AwtToolkit::GetInstance().LookupCmdID(id); 4084 if (obj == NULL) { 4085 return mrConsume; 4086 } 4087 DASSERT(((AwtMenuItem*)obj)->GetID() == id); 4088 obj->DoCommand(); 4089 return mrConsume; 4090 } 4091 /* Child id notification */ 4092 else { 4093 AwtComponent* child = AwtComponent::GetComponent(hWndChild); |