📄 scale.java
字号:
* @return the page increment * * @exception SWTException <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public int getPageIncrement () { checkWidget (); return OS.SendMessage (handle, OS.TBM_GETPAGESIZE, 0, 0);}/** * Returns the single <em>selection</em> that is the receiver's position. * * @return the selection * * @exception SWTException <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public int getSelection () { checkWidget (); return OS.SendMessage (handle, OS.TBM_GETPOS, 0, 0);}/** * Removes the listener from the collection of listeners who will * be notified when the receiver's value changes. * * @param listener the listener which should no longer be notified * * @exception IllegalArgumentException <ul> * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> * </ul> * @exception SWTException <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> * * @see SelectionListener * @see #addSelectionListener */public void removeSelectionListener(SelectionListener listener) { checkWidget (); if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); if (eventTable == null) return; eventTable.unhook (SWT.Selection, listener); eventTable.unhook (SWT.DefaultSelection,listener); }void setBackgroundPixel (int pixel) { if (background == pixel) return; super.setBackgroundPixel (pixel); /* * Bug in Windows. Changing the background color of the Scale * widget and calling InvalidateRect still draws with the old color. * The fix is to post a fake WM_SETFOCUS event to cause it to redraw * with the new background color. * * Note. This WM_SETFOCUS message causes recursion when * setBackground is called from within the focus event listener. */ OS.PostMessage (handle, OS.WM_SETFOCUS, 0, 0);}/** * Sets the amount that the receiver's value will be * modified by when the up/down (or right/left) arrows * are pressed to the argument, which must be at least * one. * * @param increment the new increment (must be greater than zero) * * @exception SWTException <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public void setIncrement (int increment) { checkWidget (); if (increment < 1) return; int minimum = OS.SendMessage (handle, OS.TBM_GETRANGEMIN, 0, 0); int maximum = OS.SendMessage (handle, OS.TBM_GETRANGEMAX, 0, 0); if (increment > maximum - minimum) return; OS.SendMessage (handle, OS.TBM_SETLINESIZE, 0, increment);}/** * Sets the maximum value that the receiver will allow. This new * value will be ignored if it is not greater than the receiver's current * minimum value. If the new maximum is applied then the receiver's * selection value will be adjusted if necessary to fall within its new range. * * @param value the new maximum, which must be greater than the current minimum * * @exception SWTException <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public void setMaximum (int value) { checkWidget (); int minimum = OS.SendMessage (handle, OS.TBM_GETRANGEMIN, 0, 0); if (0 <= minimum && minimum < value) { OS.SendMessage (handle, OS.TBM_SETRANGEMAX, 1, value); }}/** * Sets the minimum value that the receiver will allow. This new * value will be ignored if it is negative or is not less than the receiver's * current maximum value. If the new minimum is applied then the receiver's * selection value will be adjusted if necessary to fall within its new range. * * @param value the new minimum, which must be nonnegative and less than the current maximum * * @exception SWTException <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public void setMinimum (int value) { checkWidget (); int maximum = OS.SendMessage (handle, OS.TBM_GETRANGEMAX, 0, 0); if (0 <= value && value < maximum) { OS.SendMessage (handle, OS.TBM_SETRANGEMIN, 1, value); }}/** * Sets the amount that the receiver's value will be * modified by when the page increment/decrement areas * are selected to the argument, which must be at least * one. * * @param pageIncrement the page increment (must be greater than zero) * * @exception SWTException <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public void setPageIncrement (int pageIncrement) { checkWidget (); if (pageIncrement < 1) return; int minimum = OS.SendMessage (handle, OS.TBM_GETRANGEMIN, 0, 0); int maximum = OS.SendMessage (handle, OS.TBM_GETRANGEMAX, 0, 0); if (pageIncrement > maximum - minimum) return; OS.SendMessage (handle, OS.TBM_SETPAGESIZE, 0, pageIncrement); OS.SendMessage (handle, OS.TBM_SETTICFREQ, pageIncrement, 0);}/** * Sets the single <em>selection</em> that is the receiver's * value to the argument which must be greater than or equal * to zero. * * @param value the new selection (must be zero or greater) * * @exception SWTException <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public void setSelection (int value) { checkWidget (); OS.SendMessage (handle, OS.TBM_SETPOS, 1, value);}int widgetStyle () { int bits = super.widgetStyle () | OS.WS_TABSTOP | OS.TBS_BOTH | OS.TBS_AUTOTICKS; if ((style & SWT.HORIZONTAL) != 0) return bits | OS.TBS_HORZ; return bits | OS.TBS_VERT;}TCHAR windowClass () { return TrackBarClass;}int windowProc () { return TrackBarProc;}LRESULT wmScrollChild (int wParam, int lParam) { /* Do nothing when scrolling is ending */ int code = wParam & 0xFFFF; if (code == OS.TB_ENDTRACK) return null; /* * This code is intentionally commented. The event * detail field is not currently supported on all * platforms. */ Event event = new Event ();// switch (code) {// /*// * This line is intentionally commented. Do not set the detail// * field to DRAG to indicate that the dragging has ended when the// * scroll bar is finally positioned in TB_THUMBPOSITION.// *///// case OS.TB_THUMBPOSITION: break;// case OS.TB_THUMBTRACK: event.detail = SWT.DRAG; break;// case OS.TB_TOP: event.detail = SWT.HOME; break;// case OS.TB_BOTTOM: event.detail = SWT.END; break;// case OS.TB_LINEDOWN: event.detail = SWT.ARROW_DOWN; break;// case OS.TB_LINEUP: event.detail = SWT.ARROW_UP; break;// case OS.TB_PAGEDOWN: event.detail = SWT.PAGE_DOWN; break;// case OS.TB_PAGEUP: event.detail = SWT.PAGE_UP; break;// } /* * Send the event because WM_HSCROLL and WM_VSCROLL * are sent from a modal message loop in windows that * is active when the user is scrolling. */ sendEvent (SWT.Selection, event); // widget could be disposed at this point return null;}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -