Mercurial > projects > dwt-addons
annotate dwtx/novocode/ishell/internal/TitleBarButton.d @ 190:df4e66472aff
novocode line endings, indention
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 26 Oct 2008 15:04:41 +0100 |
parents | 71ca5bcf2307 |
children |
rev | line source |
---|---|
190
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
1 /******************************************************************************* |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
2 * Copyright (c) 2005 Stefan Zeiger and others. |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
3 * All rights reserved. This program and the accompanying materials |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
4 * are made available under the terms of the Eclipse Public License v1.0 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
5 * which accompanies this distribution, and is available at |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
6 * http://www.novocode.com/legal/epl-v10.html |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
7 * |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
8 * Contributors: |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
9 * Stefan Zeiger (szeiger@novocode.com) - initial API and implementation |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
10 *******************************************************************************/ |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
11 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
12 module dwtx.novocode.ishell.internal.TitleBarButton; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
13 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
14 import dwt.DWT; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
15 import dwt.graphics.Color; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
16 import dwt.graphics.GC; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
17 import dwt.graphics.Point; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
18 import dwt.widgets.Display; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
19 import dwt.widgets.Event; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
20 import dwt.widgets.Listener; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
21 import dwt.widgets.Shell; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
22 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
23 import dwtx.novocode.ishell.InternalShell; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
24 import dwtx.novocode.ishell.internal.CustomDrawnButton; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
25 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
26 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
27 /** |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
28 * A title bar button for an InternalShell. |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
29 * |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
30 * @author Stefan Zeiger (szeiger@novocode.com) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
31 * @since Jan 30, 2005 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
32 * @version $Id: TitleBarButton.java 322 2005-02-26 20:31:26 +0000 (Sat, 26 Feb 2005) szeiger $ |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
33 */ |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
34 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
35 class TitleBarButton : CustomDrawnButton |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
36 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
37 private Color highlightShadowColor, lightShadowColor, normalShadowColor, darkShadowColor; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
38 private Color gradEndColor, inactiveGradEndColor, widgetBackgroundColor, widgetForegroundColor; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
39 private int style; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
40 private Shell shell; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
41 private Display display; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
42 private InternalShell ishell; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
43 private int leftOff, rightOff; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
44 private Listener activateListener, deactivateListener; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
45 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
46 this(InternalShell parent, int style) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
47 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
48 super(parent, DWT.NO_FOCUS | DWT.NO_BACKGROUND); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
49 this.style = style; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
50 this.shell = getShell(); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
51 this.display = getDisplay(); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
52 this.ishell = parent; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
53 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
54 highlightShadowColor = display.getSystemColor(DWT.COLOR_WIDGET_HIGHLIGHT_SHADOW); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
55 lightShadowColor = display.getSystemColor(DWT.COLOR_WIDGET_LIGHT_SHADOW); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
56 normalShadowColor = display.getSystemColor(DWT.COLOR_WIDGET_NORMAL_SHADOW); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
57 darkShadowColor = display.getSystemColor(DWT.COLOR_WIDGET_DARK_SHADOW); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
58 gradEndColor = display.getSystemColor(DWT.COLOR_TITLE_BACKGROUND_GRADIENT); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
59 inactiveGradEndColor = display.getSystemColor(DWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
60 widgetBackgroundColor = display.getSystemColor(DWT.COLOR_WIDGET_BACKGROUND); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
61 widgetForegroundColor = display.getSystemColor(DWT.COLOR_WIDGET_FOREGROUND); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
62 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
63 if((style & (DWT.CLOSE | DWT.MAX)) !is 0) rightOff = 2; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
64 else leftOff = 2; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
65 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
66 activateListener = dgListener(&onActivateListener); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
67 deactivateListener = dgListener(&onDeactivateListener); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
68 shell.addListener(DWT.Activate, activateListener); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
69 shell.addListener(DWT.Deactivate, deactivateListener); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
70 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
71 addListener(DWT.Dispose, dgListener(&onDispose)); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
72 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
73 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
74 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
75 private void onActivateListener(Event event) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
76 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
77 redraw(); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
78 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
79 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
80 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
81 private void onDeactivateListener(Event event) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
82 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
83 redraw(); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
84 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
85 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
86 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
87 private void onDispose(Event event) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
88 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
89 shell.removeListener(DWT.Activate, activateListener); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
90 shell.removeListener(DWT.Deactivate, deactivateListener); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
91 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
92 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
93 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
94 public int getStyle() |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
95 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
96 return style; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
97 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
98 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
99 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
100 protected void onPaint(Event event, bool pressed) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
101 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
102 Point size = getSize(); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
103 bool active = (shell is display.getActiveShell() && ishell.isActiveShell()); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
104 GC gc = event.gc; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
105 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
106 gc.setBackground(active ? gradEndColor : inactiveGradEndColor); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
107 gc.fillRectangle(0, 0, size.x, size.y); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
108 gc.setBackground(widgetBackgroundColor); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
109 gc.fillRectangle(2, 4, size.x-4, size.y-6); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
110 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
111 Color tloColor, tliColor, broColor, briColor; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
112 int pOff; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
113 if(pressed) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
114 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
115 tloColor = darkShadowColor; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
116 tliColor = normalShadowColor; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
117 broColor = highlightShadowColor; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
118 briColor = lightShadowColor; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
119 pOff = 1; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
120 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
121 else |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
122 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
123 tloColor = highlightShadowColor; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
124 tliColor = lightShadowColor; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
125 broColor = darkShadowColor; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
126 briColor = normalShadowColor; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
127 pOff = 0; |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
128 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
129 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
130 drawBevelRect(gc, leftOff, 2, size.x-1-leftOff-rightOff, size.y-5, tloColor, broColor); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
131 drawBevelRect(gc, 1+leftOff, 3, size.x-3-leftOff-rightOff, size.y-7, tliColor, briColor); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
132 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
133 if(isEnabled()) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
134 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
135 gc.setForeground(widgetForegroundColor); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
136 drawImage(gc, size, pOff); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
137 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
138 else |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
139 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
140 gc.setForeground(highlightShadowColor); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
141 drawImage(gc, size, 1); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
142 gc.setForeground(normalShadowColor); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
143 drawImage(gc, size, 0); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
144 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
145 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
146 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
147 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
148 private void drawImage(GC gc, Point size, int pOff) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
149 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
150 if((style & DWT.CLOSE) !is 0) drawCloseImage(gc, size, pOff); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
151 else if((style & DWT.MAX) !is 0) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
152 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
153 if(ishell.getMaximized()) drawRestoreImage(gc, size, pOff); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
154 else drawMaximizeImage(gc, size, pOff); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
155 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
156 else if((style & DWT.MIN) !is 0) drawMinimizeImage(gc, size, pOff); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
157 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
158 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
159 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
160 private static void drawBevelRect(GC gc, int x, int y, int w, int h, Color topleft, Color bottomright) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
161 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
162 gc.setForeground(bottomright); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
163 gc.drawLine(x + w, y, x + w, y + h); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
164 gc.drawLine(x, y + h, x + w, y + h); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
165 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
166 gc.setForeground(topleft); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
167 gc.drawLine(x, y, x + w - 1, y); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
168 gc.drawLine(x, y, x, y + h - 1); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
169 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
170 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
171 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
172 private void drawCloseImage(GC gc, Point size, int pOff) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
173 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
174 gc.drawLine(pOff+leftOff+4, pOff+5, pOff+size.x-leftOff-rightOff-6, pOff+size.y-7); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
175 gc.drawLine(pOff+leftOff+5, pOff+5, pOff+size.x-leftOff-rightOff-5, pOff+size.y-7); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
176 gc.drawLine(pOff+leftOff+4, pOff+size.y-7, pOff+size.x-leftOff-rightOff-6, pOff+5); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
177 gc.drawLine(pOff+leftOff+5, pOff+size.y-7, pOff+size.x-leftOff-rightOff-5, pOff+5); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
178 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
179 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
180 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
181 private void drawRestoreImage(GC gc, Point size, int pOff) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
182 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
183 gc.drawRectangle(pOff+leftOff+3, pOff+7, size.x-leftOff-rightOff-11, size.y-13); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
184 gc.drawLine(pOff+leftOff+4, pOff+8, pOff+size.x-leftOff-rightOff-9, pOff+8); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
185 gc.drawLine(pOff+leftOff+6, pOff+5, pOff+size.x-leftOff-rightOff-7, pOff+5); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
186 gc.drawLine(pOff+leftOff+5, pOff+4, pOff+size.x-leftOff-rightOff-6, pOff+4); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
187 gc.drawLine(pOff+size.x-leftOff-rightOff-7, pOff+size.y-9, pOff+size.x-leftOff-rightOff-6, pOff+size.y-9); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
188 gc.drawLine(pOff+size.x-leftOff-rightOff-6, pOff+size.y-10, pOff+size.x-leftOff-rightOff-6, pOff+5); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
189 gc.drawLine(pOff+leftOff+5, pOff+5, pOff+leftOff+5, pOff+6); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
190 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
191 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
192 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
193 private void drawMaximizeImage(GC gc, Point size, int pOff) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
194 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
195 gc.drawRectangle(pOff+leftOff+3, pOff+4, size.x-leftOff-rightOff-8, size.y-10); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
196 gc.drawLine(pOff+leftOff+4, pOff+5, pOff+size.x-leftOff-rightOff-6, pOff+5); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
197 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
198 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
199 |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
200 private void drawMinimizeImage(GC gc, Point size, int pOff) |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
201 { |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
202 gc.drawLine(pOff+leftOff+4, pOff+size.y-6, pOff+size.x-leftOff-rightOff-5, pOff+size.y-6); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
203 gc.drawLine(pOff+leftOff+4, pOff+size.y-7, pOff+size.x-leftOff-rightOff-5, pOff+size.y-7); |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
204 } |
df4e66472aff
novocode line endings, indention
Frank Benoit <benoit@tionex.de>
parents:
189
diff
changeset
|
205 } |