亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? titlebarbutton.java

?? Eclipse編程技術與實例一書配套的光盤代碼全部內容
?? JAVA
字號:
package org.test.custom.internal;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;

import org.test.custom.shell.InternalShell;

public class TitleBarButton extends CustomDrawnButton {
	private final Color highlightShadowColor, lightShadowColor,
			normalShadowColor, darkShadowColor;

	private final Color gradEndColor, inactiveGradEndColor,
			widgetBackgroundColor, widgetForegroundColor;

	private final int style;

	private final Shell shell;

	private final Display display;

	private final InternalShell ishell;

	private int leftOff, rightOff;

	public TitleBarButton(InternalShell parent, int style) {
		super(parent, SWT.NO_FOCUS | SWT.NO_BACKGROUND);
		this.style = style;
		this.shell = getShell();
		this.display = getDisplay();
		this.ishell = parent;

		// 獲得控件在不同情況下的顏色
		highlightShadowColor = display
				.getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
		lightShadowColor = display
				.getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW);
		normalShadowColor = display
				.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
		darkShadowColor = display.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW);
		gradEndColor = display
				.getSystemColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT);
		inactiveGradEndColor = display
				.getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT);
		widgetBackgroundColor = display
				.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
		widgetForegroundColor = display
				.getSystemColor(SWT.COLOR_WIDGET_FOREGROUND);

		if ((style & (SWT.CLOSE | SWT.MAX)) != 0)
			rightOff = 2;
		else
			leftOff = 2;

		// 注冊事件偵聽器
		final Listener activateListener = new Listener() {
			public void handleEvent(Event event) {
				redraw();
			}
		};
		final Listener deactivateListener = new Listener() {
			public void handleEvent(Event event) {
				redraw();
			}
		};
		shell.addListener(SWT.Activate, activateListener);
		shell.addListener(SWT.Deactivate, deactivateListener);

		addListener(SWT.Dispose, new Listener() {
			public void handleEvent(Event event) {
				shell.removeListener(SWT.Activate, activateListener);
				shell.removeListener(SWT.Deactivate, deactivateListener);
			}
		});
	}

	// 返回控件樣式
	public int getStyle() {
		return style;
	}

	// 實現父類的抽象方法
	protected void onPaint(Event event, boolean pressed) {
		Point size = getSize();
		boolean active = (shell == display.getActiveShell() && ishell
				.isActiveShell());
		GC gc = event.gc;

		// 設置背景顏色
		gc.setBackground(active ? gradEndColor : inactiveGradEndColor);
		gc.fillRectangle(0, 0, size.x, size.y);
		gc.setBackground(widgetBackgroundColor);
		gc.fillRectangle(2, 4, size.x - 4, size.y - 6);

		Color tloColor, tliColor, broColor, briColor;
		int pOff;

		// 根據按鈕的狀態設置它的顏色
		if (pressed) {
			tloColor = darkShadowColor;
			tliColor = normalShadowColor;
			broColor = highlightShadowColor;
			briColor = lightShadowColor;
			pOff = 1;
		} else {
			tloColor = highlightShadowColor;
			tliColor = lightShadowColor;
			broColor = darkShadowColor;
			briColor = normalShadowColor;
			pOff = 0;
		}

		drawBevelRect(gc, leftOff, 2, size.x - 1 - leftOff - rightOff,
				size.y - 5, tloColor, broColor);
		drawBevelRect(gc, 1 + leftOff, 3, size.x - 3 - leftOff - rightOff,
				size.y - 7, tliColor, briColor);

		// 根據控件是否能用設置它的顏色
		if (isEnabled()) {
			gc.setForeground(widgetForegroundColor);
			drawImage(gc, size, pOff);
		} else {
			gc.setForeground(highlightShadowColor);
			drawImage(gc, size, 1);
			gc.setForeground(normalShadowColor);
			drawImage(gc, size, 0);
		}
	}

	// 畫出圖形按鈕
	private void drawImage(GC gc, Point size, int pOff) {
		if ((style & SWT.CLOSE) != 0)
			drawCloseImage(gc, size, pOff);
		else if ((style & SWT.MAX) != 0) {
			if (ishell.getMaximized())
				drawRestoreImage(gc, size, pOff);
			else
				drawMaximizeImage(gc, size, pOff);
		} else if ((style & SWT.MIN) != 0)
			drawMinimizeImage(gc, size, pOff);
	}

	private static void drawBevelRect(GC gc, int x, int y, int w, int h,
			Color topleft, Color bottomright) {
		gc.setForeground(bottomright);
		gc.drawLine(x + w, y, x + w, y + h);
		gc.drawLine(x, y + h, x + w, y + h);

		gc.setForeground(topleft);
		gc.drawLine(x, y, x + w - 1, y);
		gc.drawLine(x, y, x, y + h - 1);
	}

	// 畫出關閉按鈕的圖形
	private void drawCloseImage(GC gc, Point size, int pOff) {
		gc.drawLine(pOff + leftOff + 4, pOff + 5, pOff + size.x - leftOff
				- rightOff - 6, pOff + size.y - 7);
		gc.drawLine(pOff + leftOff + 5, pOff + 5, pOff + size.x - leftOff
				- rightOff - 5, pOff + size.y - 7);
		gc.drawLine(pOff + leftOff + 4, pOff + size.y - 7, pOff + size.x
				- leftOff - rightOff - 6, pOff + 5);
		gc.drawLine(pOff + leftOff + 5, pOff + size.y - 7, pOff + size.x
				- leftOff - rightOff - 5, pOff + 5);
	}

	// 畫出恢復按鈕的圖形
	private void drawRestoreImage(GC gc, Point size, int pOff) {
		gc.drawRectangle(pOff + leftOff + 3, pOff + 7, size.x - leftOff
				- rightOff - 11, size.y - 13);
		gc.drawLine(pOff + leftOff + 4, pOff + 8, pOff + size.x - leftOff
				- rightOff - 9, pOff + 8);
		gc.drawLine(pOff + leftOff + 6, pOff + 5, pOff + size.x - leftOff
				- rightOff - 7, pOff + 5);
		gc.drawLine(pOff + leftOff + 5, pOff + 4, pOff + size.x - leftOff
				- rightOff - 6, pOff + 4);
		gc.drawLine(pOff + size.x - leftOff - rightOff - 7, pOff + size.y - 9,
				pOff + size.x - leftOff - rightOff - 6, pOff + size.y - 9);
		gc.drawLine(pOff + size.x - leftOff - rightOff - 6, pOff + size.y - 10,
				pOff + size.x - leftOff - rightOff - 6, pOff + 5);
		gc.drawLine(pOff + leftOff + 5, pOff + 5, pOff + leftOff + 5, pOff + 6);
	}

	// 畫出最大化按鈕的圖形
	private void drawMaximizeImage(GC gc, Point size, int pOff) {
		gc.drawRectangle(pOff + leftOff + 3, pOff + 4, size.x - leftOff
				- rightOff - 8, size.y - 10);
		gc.drawLine(pOff + leftOff + 4, pOff + 5, pOff + size.x - leftOff
				- rightOff - 6, pOff + 5);
	}

	// 畫出最小化按鈕的圖形
	private void drawMinimizeImage(GC gc, Point size, int pOff) {
		gc.drawLine(pOff + leftOff + 4, pOff + size.y - 6, pOff + size.x
				- leftOff - rightOff - 5, pOff + size.y - 6);
		gc.drawLine(pOff + leftOff + 4, pOff + size.y - 7, pOff + size.x
				- leftOff - rightOff - 5, pOff + size.y - 7);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色视频一区| 国产日韩欧美精品在线| 久久久亚洲综合| 午夜伦欧美伦电影理论片| 成人av中文字幕| 精品福利二区三区| 午夜伊人狠狠久久| eeuss鲁片一区二区三区在线看| 精品日韩一区二区| 日韩激情一区二区| 色哟哟在线观看一区二区三区| 久久亚洲精精品中文字幕早川悠里 | 国产精品自拍在线| 欧美精品亚洲一区二区在线播放| 中文字幕高清一区| 国产高清亚洲一区| 久久综合色综合88| 日本不卡1234视频| 91精品国产免费久久综合| 亚洲一区二区三区四区在线| 色综合久久久久综合体| 中文字幕一区av| 不卡的电视剧免费网站有什么| 久久蜜桃av一区精品变态类天堂 | 在线精品视频免费观看| 亚洲欧美日韩系列| 99久久99久久精品国产片果冻| 国产精品美女久久久久久| 国产成人夜色高潮福利影视| 久久久久久久久免费| 国产福利一区二区| 国产精品日日摸夜夜摸av| av电影天堂一区二区在线观看| 国产性色一区二区| 成人午夜av影视| 国产精品久久久久久福利一牛影视 | 91精品国产aⅴ一区二区| 亚洲成国产人片在线观看| 欧美久久久久久蜜桃| 丝袜脚交一区二区| 日韩欧美一二三区| 国产一区二区精品久久91| 国产拍揄自揄精品视频麻豆| 丁香网亚洲国际| 中文字幕一区二区三区不卡在线| 成人av片在线观看| 一区二区三区免费网站| 欧美浪妇xxxx高跟鞋交| 久久er99精品| 日本一区二区动态图| 97超碰欧美中文字幕| 91热门视频在线观看| 精品国产91洋老外米糕| 成人综合婷婷国产精品久久 | 色婷婷av一区二区三区gif| 亚洲成av人在线观看| 精品99久久久久久| 菠萝蜜视频在线观看一区| 亚洲午夜久久久久| 欧美xxx久久| 一本一道久久a久久精品综合蜜臀| 香蕉加勒比综合久久| 久久久久久久网| 欧美网站一区二区| 国产精品一区二区三区乱码| 亚洲区小说区图片区qvod| 欧美xxxx老人做受| 色吧成人激情小说| 国产精品一二三在| 亚洲成人午夜影院| 国产精品久久久久久久久晋中| 7777精品伊人久久久大香线蕉的 | 亚洲精品国产a| 日韩欧美国产综合| 91福利资源站| 国产91在线|亚洲| 日韩电影免费在线| 亚洲精品高清在线| 国产欧美一区二区精品性| 欧美伦理影视网| 99re这里只有精品首页| 国产精品一级二级三级| 日韩av电影免费观看高清完整版| 国产精品久99| 2023国产一二三区日本精品2022| 欧美艳星brazzers| 不卡欧美aaaaa| 国产精品996| 国产一区二区调教| 亚洲444eee在线观看| 亚洲精品乱码久久久久久久久 | 欧美成人性福生活免费看| 日本道免费精品一区二区三区| 国产精品中文欧美| 久久国产精品色| 美女脱光内衣内裤视频久久影院| 亚洲激情综合网| 亚洲欧美视频一区| 最新热久久免费视频| 国产欧美视频在线观看| 久久一日本道色综合| 精品国产髙清在线看国产毛片| 欧美日韩精品一区二区天天拍小说 | 久久综合资源网| 日韩美女视频一区二区在线观看| 337p亚洲精品色噜噜狠狠| 欧美无砖砖区免费| 欧美色爱综合网| 欧美色中文字幕| 欧美日韩免费观看一区三区| 欧美日韩国产高清一区二区三区 | 久久综合色天天久久综合图片| 日韩视频一区二区三区| 欧美一区二区啪啪| 欧美成人精品高清在线播放| 精品成人a区在线观看| 久久九九全国免费| 欧美激情在线看| 成人免费一区二区三区在线观看 | 国产精品视频一二三区| 国产精品初高中害羞小美女文| 国产精品国产三级国产| 亚洲毛片av在线| 亚洲国产精品一区二区久久恐怖片| 亚洲一区二区3| 免费成人你懂的| 国产精品小仙女| 岛国一区二区三区| 色婷婷亚洲精品| 91精品国产aⅴ一区二区| 久久久高清一区二区三区| 中文字幕亚洲视频| 亚洲高清免费在线| 精彩视频一区二区| 丁香婷婷综合激情五月色| 91免费视频网址| 精品1区2区3区| 亚洲精品在线电影| 亚洲天堂精品在线观看| 午夜精品爽啪视频| 国产乱码精品一区二区三区忘忧草 | 热久久久久久久| 国产主播一区二区| 91网站视频在线观看| 欧美一区二区三级| 亚洲天堂精品视频| 免费xxxx性欧美18vr| 国产成a人无v码亚洲福利| 欧美性色综合网| 久久久99久久精品欧美| 亚洲成av人片在线| 国产成人欧美日韩在线电影| 欧美亚洲综合久久| 中文字幕av一区二区三区高| 午夜精品久久一牛影视| 成人av动漫网站| 欧美一区二区三区性视频| 中文字幕一区二区三区色视频| 全国精品久久少妇| 日本精品一级二级| 国产精品日日摸夜夜摸av| 蜜臀a∨国产成人精品| 91福利视频网站| 国产精品网站在线| 精品一区二区三区免费毛片爱| 在线欧美日韩精品| 中国av一区二区三区| 精品一区二区三区免费视频| 欧美体内she精高潮| 日韩毛片在线免费观看| 国产成人免费av在线| 欧美一级爆毛片| 五月天精品一区二区三区| 色综合久久中文字幕| 国产精品色噜噜| 国产精品乡下勾搭老头1| 欧美一区2区视频在线观看| 亚洲国产精品天堂| 在线区一区二视频| 亚洲视频免费观看| 99精品视频在线观看| 国产精品人成在线观看免费| 激情五月婷婷综合| 日韩片之四级片| 麻豆精品一区二区综合av| 精品视频123区在线观看| 亚洲综合成人在线视频| 91丨porny丨首页| 亚洲精品综合在线| 99精品国产一区二区三区不卡| 欧美高清在线精品一区| 国产 欧美在线| 国产欧美精品一区二区色综合朱莉| 久久精品理论片| 欧美不卡激情三级在线观看| 欧美aaaaaa午夜精品| 欧美大片免费久久精品三p| 久久er99热精品一区二区| 26uuu国产电影一区二区| 国产精品一二三区|