⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 viewform.java

📁 源码为Eclipse开源开发平台桌面开发工具SWT的源代码,
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	int minTopWidth = leftSize.x + centerSize.x + rightSize.x + 2*marginWidth + 2*highlight;	int count = -1;	if (leftSize.x > 0) count++;	if (centerSize.x > 0) count++;	if (rightSize.x > 0) count++;	if (count > 0) minTopWidth += count * horizontalSpacing;			int x = rect.x + rect.width - marginWidth - highlight;	int y = rect.y + marginHeight + highlight;		boolean top = false;	if (separateTopCenter || minTopWidth > rect.width) {		int topHeight = Math.max(rightSize.y, leftSize.y);		if (topRight != null && !topRight.isDisposed()) {			top = true;			x -= rightSize.x;			topRight.setBounds(x, y, rightSize.x, topHeight);			x -= horizontalSpacing;		}		if (topLeft != null && !topLeft.isDisposed()) {			top = true;			leftSize = topLeft.computeSize(x - rect.x - marginWidth - highlight, SWT.DEFAULT);			topLeft.setBounds(rect.x + marginWidth + highlight, y, leftSize.x, topHeight);		}		if (top) y += topHeight + verticalSpacing;		if (topCenter != null && !topCenter.isDisposed()) {			top = true;			int w = rect.width - 2*marginWidth - 2*highlight;			int trim = topCenter.computeSize(w, SWT.DEFAULT).x - w;			centerSize = topCenter.computeSize(w - trim, SWT.DEFAULT);			topCenter.setBounds(rect.x + rect.width - marginWidth - highlight - centerSize.x, y, centerSize.x, centerSize.y);			y += centerSize.y + verticalSpacing;		}			} else {		int topHeight = Math.max(rightSize.y, Math.max(centerSize.y, leftSize.y));		if (topRight != null && !topRight.isDisposed()) {			top = true;			x -= rightSize.x;			topRight.setBounds(x, y, rightSize.x, topHeight);			x -= horizontalSpacing;		}		if (topCenter != null && !topCenter.isDisposed()) {			top = true;			x -= centerSize.x;			topCenter.setBounds(x, y, centerSize.x, topHeight);			x -= horizontalSpacing;		}		if (topLeft != null && !topLeft.isDisposed()) {			top = true;			leftSize = topLeft.computeSize(x - rect.x - marginWidth - highlight, topHeight);			topLeft.setBounds(rect.x + marginWidth + highlight, y, leftSize.x, topHeight);		}		if (top)y += topHeight + verticalSpacing;	}	int oldSeperator = separator;	separator = -1;	if (content != null && !content.isDisposed()) {		if (topLeft != null || topRight!= null || topCenter != null){			separator = y;			y++;		}		 content.setBounds(rect.x + marginWidth + highlight, y, rect.width - 2 * marginWidth - 2*highlight, rect.y + rect.height - y - marginHeight - highlight);	}	if (oldSeperator != -1 && separator != -1) {		int t = Math.min(separator, oldSeperator);		int b = Math.max(separator, oldSeperator);		redraw(borderLeft, t, getSize().x - borderLeft - borderRight, b - t, false);	}}void onDispose() {	topLeft = null;	topCenter = null;	topRight = null;	content = null;	oldArea = null;	selectionBackground = null;}void onPaint(GC gc) {	Color gcForeground = gc.getForeground();	Point size = getSize();	Color border = getDisplay().getSystemColor(BORDER1_COLOR);	if (showBorder) {		gc.setForeground(border);		gc.drawRectangle(0, 0, size.x - 1, size.y - 1);		if (highlight > 0) {			int x1 = 1;			int y1 = 1;			int x2 = size.x - 1;			int y2 = size.y - 1;			int[] shape = new int[] {x1,y1, x2,y1, x2,y2, x1,y2, x1,y1+highlight,					           x1+highlight,y1+highlight, x1+highlight,y2-highlight, 							   x2-highlight,y2-highlight, x2-highlight,y1+highlight, x1,y1+highlight};			Color highlightColor = getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION);			gc.setBackground(highlightColor);			gc.fillPolygon(shape);		}	}	if (separator > -1) {		gc.setForeground(border);		gc.drawLine(borderLeft + highlight, separator, size.x - borderLeft - borderRight - highlight, separator);	}	gc.setForeground(gcForeground);}void onResize() {	layout();		Rectangle area = super.getClientArea();	if (oldArea == null || oldArea.width == 0 || oldArea.height == 0) {		redraw();	} else {		int width = 0;		if (oldArea.width < area.width) {			width = area.width - oldArea.width + borderRight + highlight;		} else if (oldArea.width > area.width) {			width = borderRight + highlight;					}		redraw(area.x + area.width - width, area.y, width, area.height, false);				int height = 0;		if (oldArea.height < area.height) {			height = area.height - oldArea.height + borderBottom + highlight;				}		if (oldArea.height > area.height) {			height = borderBottom + highlight;				}		redraw(area.x, area.y + area.height - height, area.width, height, false);	}	oldArea = area;}/*** Sets the content.* Setting the content to null will remove it from * the pane - however, the creator of the content must dispose of the content.* * @param content the control to be displayed in the content area or null* * @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>*    <li>ERROR_INVALID_ARGUMENT - if the control is not a child of this ViewForm</li>* </ul>*/public void setContent(Control content) {	checkWidget();	if (content != null && content.getParent() != this) {		SWT.error(SWT.ERROR_INVALID_ARGUMENT);	}	if (this.content != null && !this.content.isDisposed()) {		this.content.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);	}	this.content = content;	layout();}public void setFont(Font f) {	super.setFont(f);	if (topLeft != null && !topLeft.isDisposed()) topLeft.setFont(f);	if (topCenter != null && !topCenter.isDisposed()) topCenter.setFont(f);	if (topRight != null && !topRight.isDisposed()) topRight.setFont(f);	layout();}/** * Sets the layout which is associated with the receiver to be * the argument which may be null. * <p> * Note : ViewForm does not use a layout class to size and position its children. * </p> * * @param layout the receiver's new layout or null * * @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 setLayout (Layout layout) {	checkWidget();	return;}void setSelectionBackground (Color color) {	checkWidget();	if (selectionBackground == color) return;	if (color == null) color = getDisplay().getSystemColor(SELECTION_BACKGROUND);	selectionBackground = color;	redraw();}/*** Set the control that appears in the top center of the pane.* Typically this is a toolbar.* The topCenter is optional.  Setting the topCenter to null will remove it from * the pane - however, the creator of the topCenter must dispose of the topCenter.* * @param topCenter the control to be displayed in the top center or null* * @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>*    <li>ERROR_INVALID_ARGUMENT - if the control is not a child of this ViewForm</li>* </ul>*/public void setTopCenter(Control topCenter) {	checkWidget();	if (topCenter != null && topCenter.getParent() != this) {		SWT.error(SWT.ERROR_INVALID_ARGUMENT);	}	if (this.topCenter != null && !this.topCenter.isDisposed()) {		Point size = this.topCenter.getSize();		this.topCenter.setLocation(OFFSCREEN - size.x, OFFSCREEN - size.y);	}	this.topCenter = topCenter;	layout();}/*** Set the control that appears in the top left corner of the pane.* Typically this is a label such as CLabel.* The topLeft is optional.  Setting the top left control to null will remove it from * the pane - however, the creator of the control must dispose of the control.* * @param c the control to be displayed in the top left corner or null* * @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>*    <li>ERROR_INVALID_ARGUMENT - if the control is not a child of this ViewForm</li>* </ul>*/public void setTopLeft(Control c) {	checkWidget();	if (c != null && c.getParent() != this) {		SWT.error(SWT.ERROR_INVALID_ARGUMENT);	}	if (this.topLeft != null && !this.topLeft.isDisposed()) {		Point size = this.topLeft.getSize();		this.topLeft.setLocation(OFFSCREEN - size.x, OFFSCREEN - size.y);	}	this.topLeft = c;	layout();}/*** Set the control that appears in the top right corner of the pane.* Typically this is a Close button or a composite with a Menu and Close button.* The topRight is optional.  Setting the top right control to null will remove it from * the pane - however, the creator of the control must dispose of the control.* * @param c the control to be displayed in the top right corner or null* * @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>*    <li>ERROR_INVALID_ARGUMENT - if the control is not a child of this ViewForm</li>* </ul>*/public void setTopRight(Control c) {	checkWidget();	if (c != null && c.getParent() != this) {		SWT.error(SWT.ERROR_INVALID_ARGUMENT);	}	if (this.topRight != null && !this.topRight.isDisposed()) {		Point size = this.topRight.getSize();		this.topRight.setLocation(OFFSCREEN - size.x, OFFSCREEN - size.y);	}	this.topRight = c;	layout();}/*** Specify whether the border should be displayed or not.* * @param show true if the border should be displayed* * @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 setBorderVisible(boolean show) {	checkWidget();	if (showBorder == show) return;		showBorder = show;	if (showBorder) {		borderLeft = borderTop = borderRight = borderBottom = 1;		if ((getStyle() & SWT.FLAT)== 0) highlight = 2;	} else {		borderBottom = borderTop = borderLeft = borderRight = 0;		highlight = 0;	}	layout();	redraw();}/*** If true, the topCenter will always appear on a separate line by itself, otherwise the * topCenter will appear in the top row if there is room and will be moved to the second row if* required.* * @param show true if the topCenter will always appear on a separate line by itself* * @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 setTopCenterSeparate(boolean show) {	checkWidget();	separateTopCenter = show;	layout();}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -