@Override public void getLocation (AccessibleControlEvent e) { Rectangle rect = display.map (getParent (), null, getBounds ()); e.x = rect.x; e.y = rect.y; e.width = rect.width; e.height = rect.height; }
@Override public void getLocation (AccessibleControlEvent e) { Rectangle rect = display.map (getParent (), null, getBounds ()); e.x = rect.x; e.y = rect.y; e.width = rect.width; e.height = rect.height; }
@Override public void getLocation (AccessibleControlEvent e) { Rectangle rect = display.map (getParent (), null, getBounds ()); e.x = rect.x; e.y = rect.y; e.width = rect.width; e.height = rect.height; }
void popupShellEvent (Event event) { switch (event.type) { case SWT.Paint: /* Draw black rectangle around popupCalendar */ Rectangle bounds = popupCalendar.getBounds (); Color black = getDisplay ().getSystemColor (SWT.COLOR_BLACK); event.gc.setForeground (black); event.gc.drawRectangle (0, 0, bounds.width + 1, bounds.height + 1); break; case SWT.Close: event.doit = false; dropDownCalendar (false); break; case SWT.MouseUp: dropDownCalendar (false); break; } }
void popupShellEvent (Event event) { switch (event.type) { case SWT.Paint: /* Draw black rectangle around popupCalendar */ Rectangle bounds = popupCalendar.getBounds (); Color black = getDisplay ().getSystemColor (SWT.COLOR_BLACK); event.gc.setForeground (black); event.gc.drawRectangle (0, 0, bounds.width + 1, bounds.height + 1); break; case SWT.Close: event.doit = false; dropDownCalendar (false); break; case SWT.MouseUp: dropDownCalendar (false); break; } }
void popupShellEvent (Event event) { switch (event.type) { case SWT.Paint: /* Draw black rectangle around popupCalendar */ Rectangle bounds = popupCalendar.getBounds (); Color black = getDisplay ().getSystemColor (SWT.COLOR_BLACK); event.gc.setForeground (black); event.gc.drawRectangle (0, 0, bounds.width + 1, bounds.height + 1); break; case SWT.Close: event.doit = false; dropDownCalendar (false); break; case SWT.MouseUp: dropDownCalendar (false); break; } }
void showCalendar() { if (isDropped ()) return; savedYear = getYear (); savedMonth = getMonth (); savedDay = getDay (); if (getShell() != popupShell.getParent ()) { disposePopupShell(); createPopupShell (savedYear, savedMonth, savedDay); } Point dateBounds = getSize (); Point calendarSize = popupCalendar.computeSize (SWT.DEFAULT, SWT.DEFAULT, false); popupCalendar.setBounds (1, 1, Math.max (dateBounds.x - 2, calendarSize.x), calendarSize.y); popupCalendar.setDate(savedYear, savedMonth, savedDay); Rectangle parentRect = display.map (getParent (), null, getBounds ()); Rectangle displayRect = getMonitor ().getClientArea (); int width = Math.max (dateBounds.x, calendarSize.x + 2); int height = calendarSize.y + 2; int x = parentRect.x; int y = parentRect.y + dateBounds.y; if (y + height > displayRect.y + displayRect.height) y = parentRect.y - height; if (x + width > displayRect.x + displayRect.width) x = displayRect.x + displayRect.width - calendarSize.x; popupShell.setBounds (x, y, width, height); popupShell.setVisible (true); if (isFocusControl()) popupCalendar.setFocus (); display.addFilter(SWT.MouseDown, clickListener); }