Esempio n. 1
0
 LRESULT WM_MOUSEMOVE(int /*long*/ wParam, int /*long*/ lParam) {
   LRESULT result = super.WM_MOUSEMOVE(wParam, lParam);
   if (OS.COMCTL32_MAJOR < 6) {
     int x = OS.GET_X_LPARAM(lParam);
     int y = OS.GET_Y_LPARAM(lParam);
     if (OS.GetKeyState(OS.VK_LBUTTON) < 0) {
       int oldSelection = selection.y;
       selection.y = layout.getOffset(x, y, null);
       if (selection.y != oldSelection) {
         int newSelection = selection.y;
         if (oldSelection > newSelection) {
           int temp = oldSelection;
           oldSelection = newSelection;
           newSelection = temp;
         }
         Rectangle rect = layout.getBounds(oldSelection, newSelection);
         redraw(rect.x, rect.y, rect.width, rect.height, false);
       }
     } else {
       for (int j = 0; j < offsets.length; j++) {
         Rectangle[] rects = getRectangles(j);
         for (int i = 0; i < rects.length; i++) {
           Rectangle rect = rects[i];
           if (rect.contains(x, y)) {
             setCursor(display.getSystemCursor(SWT.CURSOR_HAND));
             return result;
           }
         }
       }
       setCursor(null);
     }
   }
   return result;
 }
Esempio n. 2
0
 void resizeControl() {
   if (control != null && !control.isDisposed()) {
     /*
      * Set the size and location of the control
      * separately to minimize flashing in the
      * case where the control does not resize
      * to the size that was requested.  This
      * case can occur when the control is a
      * combo box.
      */
     Rectangle itemRect = getBounds();
     control.setSize(itemRect.width, itemRect.height);
     Rectangle rect = control.getBounds();
     rect.x = itemRect.x + (itemRect.width - rect.width) / 2;
     rect.y = itemRect.y + (itemRect.height - rect.height) / 2;
     control.setLocation(rect.x, rect.y);
   }
 }
Esempio n. 3
0
 LRESULT WM_LBUTTONUP(int /*long*/ wParam, int /*long*/ lParam) {
   LRESULT result = super.WM_LBUTTONUP(wParam, lParam);
   if (result == LRESULT.ZERO) return result;
   if (OS.COMCTL32_MAJOR < 6) {
     if (mouseDownIndex == -1) return result;
     int x = OS.GET_X_LPARAM(lParam);
     int y = OS.GET_Y_LPARAM(lParam);
     Rectangle[] rects = getRectangles(mouseDownIndex);
     for (int i = 0; i < rects.length; i++) {
       Rectangle rect = rects[i];
       if (rect.contains(x, y)) {
         Event event = new Event();
         event.text = ids[mouseDownIndex];
         sendSelectionEvent(SWT.Selection, event, true);
         break;
       }
     }
   }
   mouseDownIndex = -1;
   return result;
 }
Esempio n. 4
0
 LRESULT WM_LBUTTONDOWN(int /*long*/ wParam, int /*long*/ lParam) {
   LRESULT result = super.WM_LBUTTONDOWN(wParam, lParam);
   if (result == LRESULT.ZERO) return result;
   if (OS.COMCTL32_MAJOR < 6) {
     if (focusIndex != -1) setFocus();
     int x = OS.GET_X_LPARAM(lParam);
     int y = OS.GET_Y_LPARAM(lParam);
     int offset = layout.getOffset(x, y, null);
     int oldSelectionX = selection.x;
     int oldSelectionY = selection.y;
     selection.x = offset;
     selection.y = -1;
     if (oldSelectionX != -1 && oldSelectionY != -1) {
       if (oldSelectionX > oldSelectionY) {
         int temp = oldSelectionX;
         oldSelectionX = oldSelectionY;
         oldSelectionY = temp;
       }
       Rectangle rect = layout.getBounds(oldSelectionX, oldSelectionY);
       redraw(rect.x, rect.y, rect.width, rect.height, false);
     }
     for (int j = 0; j < offsets.length; j++) {
       Rectangle[] rects = getRectangles(j);
       for (int i = 0; i < rects.length; i++) {
         Rectangle rect = rects[i];
         if (rect.contains(x, y)) {
           if (j != focusIndex) {
             redraw();
           }
           focusIndex = mouseDownIndex = j;
           return result;
         }
       }
     }
   }
   return result;
 }
 @Override
 int hit(Theme theme, Point position, Rectangle bounds) {
   return bounds.contains(position) ? DrawData.WIDGET_WHOLE : DrawData.WIDGET_NOWHERE;
 }