src/windows/native/sun/windows/awt_TextField.cpp

Print this page




 183         if (GetStartSelectionPos() != -1 &&
 184             GetEndSelectionPos() != -1 &&
 185             lCurPos != GetLastSelectionPos()) {
 186 
 187             CHARRANGE cr;
 188 
 189             SetLastSelectionPos(lCurPos);
 190 
 191             cr.cpMin = GetStartSelectionPos();
 192             cr.cpMax = GetLastSelectionPos();
 193 
 194             EditSetSel(cr);
 195         }
 196 
 197         if (bScrollLeft == TRUE || bScrollRight == TRUE) {
 198             SCROLLINFO si;
 199             memset(&si, 0, sizeof(si));
 200             si.cbSize = sizeof(si);
 201             si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE;
 202 

 203             VERIFY(::GetScrollInfo(GetHWnd(), SB_HORZ, &si));


 204             if (bScrollLeft == TRUE) {
 205                 si.nPos = si.nPos - si.nPage / 2;
 206                 si.nPos = max(si.nMin, si.nPos);
 207             } else if (bScrollRight == TRUE) {
 208                 si.nPos = si.nPos + si.nPage / 2;
 209                 si.nPos = min(si.nPos, si.nMax);
 210             }
 211             /*
 212              * Okay to use 16-bit position since RichEdit control adjusts
 213              * its scrollbars so that their range is always 16-bit.
 214              */
 215             DASSERT(abs(si.nPos) < 0x8000);
 216             SendMessage(WM_HSCROLL,
 217                         MAKEWPARAM(SB_THUMBPOSITION, LOWORD(si.nPos)));
 218         }
 219         delete msg;
 220         return mrConsume;
 221     } else if (msg->message == WM_KEYDOWN) {
 222         UINT virtualKey = (UINT) msg->wParam;
 223 




 183         if (GetStartSelectionPos() != -1 &&
 184             GetEndSelectionPos() != -1 &&
 185             lCurPos != GetLastSelectionPos()) {
 186 
 187             CHARRANGE cr;
 188 
 189             SetLastSelectionPos(lCurPos);
 190 
 191             cr.cpMin = GetStartSelectionPos();
 192             cr.cpMax = GetLastSelectionPos();
 193 
 194             EditSetSel(cr);
 195         }
 196 
 197         if (bScrollLeft == TRUE || bScrollRight == TRUE) {
 198             SCROLLINFO si;
 199             memset(&si, 0, sizeof(si));
 200             si.cbSize = sizeof(si);
 201             si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE;
 202 
 203             SendMessage(EM_SHOWSCROLLBAR, SB_HORZ, TRUE);
 204             VERIFY(::GetScrollInfo(GetHWnd(), SB_HORZ, &si));
 205             SendMessage(EM_SHOWSCROLLBAR, SB_HORZ, FALSE);
 206 
 207             if (bScrollLeft == TRUE) {
 208                 si.nPos = si.nPos - si.nPage / 2;
 209                 si.nPos = max(si.nMin, si.nPos);
 210             } else if (bScrollRight == TRUE) {
 211                 si.nPos = si.nPos + si.nPage / 2;
 212                 si.nPos = min(si.nPos, si.nMax);
 213             }
 214             /*
 215              * Okay to use 16-bit position since RichEdit control adjusts
 216              * its scrollbars so that their range is always 16-bit.
 217              */
 218             DASSERT(abs(si.nPos) < 0x8000);
 219             SendMessage(WM_HSCROLL,
 220                         MAKEWPARAM(SB_THUMBPOSITION, LOWORD(si.nPos)));
 221         }
 222         delete msg;
 223         return mrConsume;
 224     } else if (msg->message == WM_KEYDOWN) {
 225         UINT virtualKey = (UINT) msg->wParam;
 226