src/windows/native/sun/windows/awt_Component.cpp

Print this page




1532 
1533               // When the window is deactivated, send WM_IME_ENDCOMPOSITION
1534               // message to deactivate the composition window so that
1535               // it won't receive keyboard input focus.
1536               HIMC hIMC;
1537               HWND hwnd = ImmGetHWnd();
1538               if ((hIMC = ImmGetContext(hwnd)) != NULL) {
1539                   ImmReleaseContext(hwnd, hIMC);
1540                   DefWindowProc(WM_IME_ENDCOMPOSITION, 0, 0);
1541               }
1542           }
1543           break;
1544       }
1545       case WM_MOUSEACTIVATE: {
1546           AwtWindow *window = GetContainer();
1547           if (window && window->IsFocusableWindow()) {
1548               // AWT/Swing will later request focus to a proper component
1549               // on handling the Java mouse event. Anyway, we have to
1550               // activate the window here as it works both for AWT & Swing.
1551               // Do it in our own fassion,
1552               window->AwtSetActiveWindow(TRUE, LOWORD(lParam)/*hittest*/);
1553           }
1554           mr = mrConsume;
1555           retValue = MA_NOACTIVATE;
1556           break;
1557       }
1558       case WM_CTLCOLORMSGBOX:
1559       case WM_CTLCOLOREDIT:
1560       case WM_CTLCOLORLISTBOX:
1561       case WM_CTLCOLORBTN:
1562       case WM_CTLCOLORDLG:
1563       case WM_CTLCOLORSCROLLBAR:
1564       case WM_CTLCOLORSTATIC:
1565           mr = WmCtlColor((HDC)wParam, (HWND)lParam,
1566                           message-WM_CTLCOLORMSGBOX+CTLCOLOR_MSGBOX,
1567                           *(HBRUSH*)&retValue);
1568           break;
1569       case WM_HSCROLL:
1570           mr = WmHScroll(LOWORD(wParam), HIWORD(wParam), (HWND)lParam);
1571           break;
1572       case WM_VSCROLL:


1905            * there.
1906            */
1907       case WM_AWT_COMPONENT_SHOW:
1908           Show();
1909           mr = mrConsume;
1910           break;
1911       case WM_AWT_COMPONENT_HIDE:
1912           Hide();
1913           mr = mrConsume;
1914           break;
1915 
1916       case WM_AWT_COMPONENT_SETFOCUS:
1917           if ((BOOL)wParam) {
1918               retValue = SynthesizeWmSetFocus(GetHWnd(), NULL);
1919           } else {
1920               retValue = SynthesizeWmKillFocus(GetHWnd(), NULL);
1921           }
1922           mr = mrConsume;
1923           break;
1924       case WM_AWT_WINDOW_SETACTIVE:
1925           retValue = (LRESULT)((AwtWindow*)this)->AwtSetActiveWindow((BOOL)wParam);
1926           mr = mrConsume;
1927           break;
1928 
1929       case WM_AWT_SET_SCROLL_INFO: {
1930           SCROLLINFO *si = (SCROLLINFO *) lParam;
1931           ::SetScrollInfo(GetHWnd(), (int) wParam, si, TRUE);
1932           delete si;
1933           mr = mrConsume;
1934           break;
1935       }
1936       case WM_AWT_CREATE_PRINTED_PIXELS: {
1937           CreatePrintedPixelsStruct* cpps = (CreatePrintedPixelsStruct*)wParam;
1938           SIZE loc = { cpps->srcx, cpps->srcy };
1939           SIZE size = { cpps->srcw, cpps->srch };
1940           retValue = (LRESULT)CreatePrintedPixels(loc, size, cpps->alpha);
1941           mr = mrConsume;
1942           break;
1943       }
1944       case WM_UNDOCUMENTED_CLICKMENUBAR:
1945       {




1532 
1533               // When the window is deactivated, send WM_IME_ENDCOMPOSITION
1534               // message to deactivate the composition window so that
1535               // it won't receive keyboard input focus.
1536               HIMC hIMC;
1537               HWND hwnd = ImmGetHWnd();
1538               if ((hIMC = ImmGetContext(hwnd)) != NULL) {
1539                   ImmReleaseContext(hwnd, hIMC);
1540                   DefWindowProc(WM_IME_ENDCOMPOSITION, 0, 0);
1541               }
1542           }
1543           break;
1544       }
1545       case WM_MOUSEACTIVATE: {
1546           AwtWindow *window = GetContainer();
1547           if (window && window->IsFocusableWindow()) {
1548               // AWT/Swing will later request focus to a proper component
1549               // on handling the Java mouse event. Anyway, we have to
1550               // activate the window here as it works both for AWT & Swing.
1551               // Do it in our own fassion,
1552               window->AwtSetActiveWindow(LOWORD(lParam)/*hittest*/);
1553           }
1554           mr = mrConsume;
1555           retValue = MA_NOACTIVATE;
1556           break;
1557       }
1558       case WM_CTLCOLORMSGBOX:
1559       case WM_CTLCOLOREDIT:
1560       case WM_CTLCOLORLISTBOX:
1561       case WM_CTLCOLORBTN:
1562       case WM_CTLCOLORDLG:
1563       case WM_CTLCOLORSCROLLBAR:
1564       case WM_CTLCOLORSTATIC:
1565           mr = WmCtlColor((HDC)wParam, (HWND)lParam,
1566                           message-WM_CTLCOLORMSGBOX+CTLCOLOR_MSGBOX,
1567                           *(HBRUSH*)&retValue);
1568           break;
1569       case WM_HSCROLL:
1570           mr = WmHScroll(LOWORD(wParam), HIWORD(wParam), (HWND)lParam);
1571           break;
1572       case WM_VSCROLL:


1905            * there.
1906            */
1907       case WM_AWT_COMPONENT_SHOW:
1908           Show();
1909           mr = mrConsume;
1910           break;
1911       case WM_AWT_COMPONENT_HIDE:
1912           Hide();
1913           mr = mrConsume;
1914           break;
1915 
1916       case WM_AWT_COMPONENT_SETFOCUS:
1917           if ((BOOL)wParam) {
1918               retValue = SynthesizeWmSetFocus(GetHWnd(), NULL);
1919           } else {
1920               retValue = SynthesizeWmKillFocus(GetHWnd(), NULL);
1921           }
1922           mr = mrConsume;
1923           break;
1924       case WM_AWT_WINDOW_SETACTIVE:
1925           retValue = (LRESULT)((AwtWindow*)this)->AwtSetActiveWindow();
1926           mr = mrConsume;
1927           break;
1928 
1929       case WM_AWT_SET_SCROLL_INFO: {
1930           SCROLLINFO *si = (SCROLLINFO *) lParam;
1931           ::SetScrollInfo(GetHWnd(), (int) wParam, si, TRUE);
1932           delete si;
1933           mr = mrConsume;
1934           break;
1935       }
1936       case WM_AWT_CREATE_PRINTED_PIXELS: {
1937           CreatePrintedPixelsStruct* cpps = (CreatePrintedPixelsStruct*)wParam;
1938           SIZE loc = { cpps->srcx, cpps->srcy };
1939           SIZE size = { cpps->srcw, cpps->srch };
1940           retValue = (LRESULT)CreatePrintedPixels(loc, size, cpps->alpha);
1941           mr = mrConsume;
1942           break;
1943       }
1944       case WM_UNDOCUMENTED_CLICKMENUBAR:
1945       {