Mercurial > projects > dwt-linux
annotate dwt/custom/CTabItem.d @ 255:5a30aa9820f3
removed tango.stdc.stringz imports and allow null for arrays and string arguments.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 15 Jun 2008 22:32:20 +0200 |
parents | ce446666f5a2 |
children | c0d810de7093 |
rev | line source |
---|---|
115
52b32f5cb1e0
many file checked for switch default
Frank Benoit <benoit@tionex.de>
parents:
108
diff
changeset
|
1 /******************************************************************************* |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2 * Copyright (c) 2000, 2007 IBM Corporation and others. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3 * All rights reserved. This program and the accompanying materials |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4 * are made available under the terms of the Eclipse Public License v1.0 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5 * which accompanies this distribution, and is available at |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6 * http://www.eclipse.org/legal/epl-v10.html |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
8 * Contributors: |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
9 * IBM Corporation - initial API and implementation |
108 | 10 * Port to the D programming language: |
11 * Frank Benoit <benoit@tionex.de> | |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
12 *******************************************************************************/ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
13 module dwt.custom.CTabItem; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
14 |
238 | 15 import dwt.dwthelper.utils; |
16 | |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
17 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
18 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
19 import dwt.DWT; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
20 import dwt.DWTException; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
21 import dwt.graphics.Color; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
22 import dwt.graphics.Font; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
23 import dwt.graphics.GC; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
24 import dwt.graphics.Image; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
25 import dwt.graphics.Point; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
26 import dwt.graphics.RGB; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
27 import dwt.graphics.Rectangle; |
240 | 28 import dwt.graphics.TextLayout; |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
29 import dwt.widgets.Control; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
30 import dwt.widgets.Display; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
31 import dwt.widgets.Item; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
32 import dwt.widgets.Widget; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
33 import dwt.custom.CTabFolder; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
34 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
35 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
36 * Instances of this class represent a selectable user interface object |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
37 * that represent a page in a notebook widget. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
38 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
39 * <dl> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
40 * <dt><b>Styles:</b></dt> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
41 * <dd>DWT.CLOSE</dd> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
42 * <dt><b>Events:</b></dt> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
43 * <dd>(none)</dd> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
44 * </dl> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
45 * <p> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
46 * IMPORTANT: This class is <em>not</em> intended to be subclassed. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
47 * </p> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
48 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
49 public class CTabItem : Item { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
50 CTabFolder parent; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
51 int x,y,width,height = 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
52 Control control; // the tab page |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
53 |
238 | 54 String toolTipText; |
55 String shortenedText; | |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
56 int shortenedTextWidth; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
57 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
58 // Appearance |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
59 Font font; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
60 Image disabledImage; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
61 |
103 | 62 Rectangle closeRect; |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
63 int closeImageState = CTabFolder.NONE; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
64 bool showClose = false; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
65 bool showing = false; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
66 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
67 // internal constants |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
68 static final int TOP_MARGIN = 2; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
69 static final int BOTTOM_MARGIN = 2; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
70 static final int LEFT_MARGIN = 4; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
71 static final int RIGHT_MARGIN = 4; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
72 static final int INTERNAL_SPACING = 4; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
73 static final int FLAGS = DWT.DRAW_TRANSPARENT | DWT.DRAW_MNEMONIC; |
238 | 74 static final String ELLIPSIS = "..."; //$NON-NLS-1$ // could use the ellipsis glyph on some platforms "\u2026" |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
75 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
76 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
77 * Constructs a new instance of this class given its parent |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
78 * (which must be a <code>CTabFolder</code>) and a style value |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
79 * describing its behavior and appearance. The item is added |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
80 * to the end of the items maintained by its parent. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
81 * <p> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
82 * The style value is either one of the style constants defined in |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
83 * class <code>DWT</code> which is applicable to instances of this |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
84 * class, or must be built by <em>bitwise OR</em>'ing together |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
85 * (that is, using the <code>int</code> "|" operator) two or more |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
86 * of those <code>DWT</code> style constants. The class description |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
87 * lists the style constants that are applicable to the class. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
88 * Style bits are also inherited from superclasses. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
89 * </p> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
90 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
91 * @param parent a CTabFolder which will be the parent of the new instance (cannot be null) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
92 * @param style the style of control to construct |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
93 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
94 * @exception IllegalArgumentException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
95 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
96 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
97 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
98 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
99 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
100 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
101 * @see DWT |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
102 * @see Widget#getStyle() |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
103 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
104 public this (CTabFolder parent, int style) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
105 this(parent, style, parent.getItemCount()); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
106 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
107 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
108 * Constructs a new instance of this class given its parent |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
109 * (which must be a <code>CTabFolder</code>), a style value |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
110 * describing its behavior and appearance, and the index |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
111 * at which to place it in the items maintained by its parent. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
112 * <p> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
113 * The style value is either one of the style constants defined in |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
114 * class <code>DWT</code> which is applicable to instances of this |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
115 * class, or must be built by <em>bitwise OR</em>'ing together |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
116 * (that is, using the <code>int</code> "|" operator) two or more |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
117 * of those <code>DWT</code> style constants. The class description |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
118 * lists the style constants that are applicable to the class. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
119 * Style bits are also inherited from superclasses. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
120 * </p> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
121 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
122 * @param parent a CTabFolder which will be the parent of the new instance (cannot be null) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
123 * @param style the style of control to construct |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
124 * @param index the zero-relative index to store the receiver in its parent |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
125 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
126 * @exception IllegalArgumentException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
127 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
128 * <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the parent (inclusive)</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
129 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
130 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
131 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
132 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
133 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
134 * @see DWT |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
135 * @see Widget#getStyle() |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
136 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
137 public this (CTabFolder parent, int style, int index) { |
103 | 138 closeRect = new Rectangle(0, 0, 0, 0); |
240 | 139 super (parent, style); |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
140 showClose = (style & DWT.CLOSE) !is 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
141 parent.createItem (this, index); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
142 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
143 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
144 /* |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
145 * Return whether to use ellipses or just truncate labels |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
146 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
147 bool useEllipses() { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
148 return parent.simple; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
149 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
150 |
238 | 151 String shortenText(GC gc, String text, int width) { |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
152 return useEllipses() |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
153 ? shortenText(gc, text, width, ELLIPSIS) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
154 : shortenText(gc, text, width, ""); //$NON-NLS-1$ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
155 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
156 |
238 | 157 String shortenText(GC gc, String text, int width, String ellipses) { |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
158 if (gc.textExtent(text, FLAGS).x <= width) return text; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
159 int ellipseWidth = gc.textExtent(ellipses, FLAGS).x; |
103 | 160 int length = text.length; |
240 | 161 TextLayout layout = new TextLayout(getDisplay()); |
162 layout.setText(text); | |
163 int end = layout.getPreviousOffset(length, DWT.MOVEMENT_CLUSTER); | |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
164 while (end > 0) { |
103 | 165 text = text[ 0 .. end ]; |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
166 int l = gc.textExtent(text, FLAGS).x; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
167 if (l + ellipseWidth <= width) { |
240 | 168 break; |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
169 } |
240 | 170 end = layout.getPreviousOffset(end, DWT.MOVEMENT_CLUSTER); |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
171 } |
240 | 172 layout.dispose(); |
173 return end is 0 ? text.substring(0, 1) : text ~ ellipses; | |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
174 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
175 |
150
f2e04420fd6c
reworked overrides and superclass aliases
Frank Benoit <benoit@tionex.de>
parents:
115
diff
changeset
|
176 public override void dispose() { |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
177 if (isDisposed ()) return; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
178 //if (!isValidThread ()) error (DWT.ERROR_THREAD_INVALID_ACCESS); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
179 parent.destroyItem(this); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
180 super.dispose(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
181 parent = null; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
182 control = null; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
183 toolTipText = null; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
184 shortenedText = null; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
185 font = null; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
186 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
187 void drawClose(GC gc) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
188 if (closeRect.width is 0 || closeRect.height is 0) return; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
189 Display display = getDisplay(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
190 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
191 // draw X 9x9 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
192 int indent = Math.max(1, (CTabFolder.BUTTON_SIZE-9)/2); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
193 int x = closeRect.x + indent; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
194 int y = closeRect.y + indent; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
195 y += parent.onBottom ? -1 : 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
196 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
197 Color closeBorder = display.getSystemColor(CTabFolder.BUTTON_BORDER); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
198 switch (closeImageState) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
199 case CTabFolder.NORMAL: { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
200 int[] shape = [x,y, x+2,y, x+4,y+2, x+5,y+2, x+7,y, x+9,y, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
201 x+9,y+2, x+7,y+4, x+7,y+5, x+9,y+7, x+9,y+9, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
202 x+7,y+9, x+5,y+7, x+4,y+7, x+2,y+9, x,y+9, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
203 x,y+7, x+2,y+5, x+2,y+4, x,y+2]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
204 gc.setBackground(display.getSystemColor(CTabFolder.BUTTON_FILL)); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
205 gc.fillPolygon(shape); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
206 gc.setForeground(closeBorder); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
207 gc.drawPolygon(shape); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
208 break; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
209 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
210 case CTabFolder.HOT: { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
211 int[] shape = [x,y, x+2,y, x+4,y+2, x+5,y+2, x+7,y, x+9,y, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
212 x+9,y+2, x+7,y+4, x+7,y+5, x+9,y+7, x+9,y+9, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
213 x+7,y+9, x+5,y+7, x+4,y+7, x+2,y+9, x,y+9, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
214 x,y+7, x+2,y+5, x+2,y+4, x,y+2]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
215 Color fill = new Color(display, CTabFolder.CLOSE_FILL); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
216 gc.setBackground(fill); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
217 gc.fillPolygon(shape); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
218 fill.dispose(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
219 gc.setForeground(closeBorder); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
220 gc.drawPolygon(shape); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
221 break; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
222 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
223 case CTabFolder.SELECTED: { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
224 int[] shape = [x+1,y+1, x+3,y+1, x+5,y+3, x+6,y+3, x+8,y+1, x+10,y+1, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
225 x+10,y+3, x+8,y+5, x+8,y+6, x+10,y+8, x+10,y+10, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
226 x+8,y+10, x+6,y+8, x+5,y+8, x+3,y+10, x+1,y+10, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
227 x+1,y+8, x+3,y+6, x+3,y+5, x+1,y+3]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
228 Color fill = new Color(display, CTabFolder.CLOSE_FILL); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
229 gc.setBackground(fill); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
230 gc.fillPolygon(shape); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
231 fill.dispose(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
232 gc.setForeground(closeBorder); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
233 gc.drawPolygon(shape); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
234 break; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
235 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
236 case CTabFolder.NONE: { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
237 int[] shape = [x,y, x+10,y, x+10,y+10, x,y+10]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
238 if (parent.gradientColors !is null && !parent.gradientVertical) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
239 parent.drawBackground(gc, shape, false); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
240 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
241 Color defaultBackground = parent.getBackground(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
242 Image image = parent.bgImage; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
243 Color[] colors = parent.gradientColors; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
244 int[] percents = parent.gradientPercents; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
245 bool vertical = parent.gradientVertical; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
246 parent.drawBackground(gc, shape, x, y, 10, 10, defaultBackground, image, colors, percents, vertical); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
247 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
248 break; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
249 } |
115
52b32f5cb1e0
many file checked for switch default
Frank Benoit <benoit@tionex.de>
parents:
108
diff
changeset
|
250 default: |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
251 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
252 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
253 void drawSelected(GC gc ) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
254 Point size = parent.getSize(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
255 int rightEdge = Math.min (x + width, parent.getRightItemEdge()); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
256 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
257 // Draw selection border across all tabs |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
258 int xx = parent.borderLeft; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
259 int yy = parent.onBottom ? size.y - parent.borderBottom - parent.tabHeight - parent.highlight_header : parent.borderTop + parent.tabHeight + 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
260 int ww = size.x - parent.borderLeft - parent.borderRight; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
261 int hh = parent.highlight_header - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
262 int[] shape = [xx,yy, xx+ww,yy, xx+ww,yy+hh, xx,yy+hh]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
263 if (parent.selectionGradientColors !is null && !parent.selectionGradientVertical) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
264 parent.drawBackground(gc, shape, true); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
265 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
266 gc.setBackground(parent.selectionBackground); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
267 gc.fillRectangle(xx, yy, ww, hh); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
268 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
269 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
270 if (parent.single) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
271 if (!showing) return; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
272 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
273 // if selected tab scrolled out of view or partially out of view |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
274 // just draw bottom line |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
275 if (!showing){ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
276 int x1 = Math.max(0, parent.borderLeft - 1); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
277 int y1 = (parent.onBottom) ? y - 1 : y + height; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
278 int x2 = size.x - parent.borderRight; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
279 gc.setForeground(CTabFolder.borderColor); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
280 gc.drawLine(x1, y1, x2, y1); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
281 return; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
282 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
283 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
284 // draw selected tab background and outline |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
285 shape = null; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
286 if (this.parent.onBottom) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
287 int[] left = parent.simple ? CTabFolder.SIMPLE_BOTTOM_LEFT_CORNER : CTabFolder.BOTTOM_LEFT_CORNER; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
288 int[] right = parent.simple ? CTabFolder.SIMPLE_BOTTOM_RIGHT_CORNER : parent.curve; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
289 if (parent.borderLeft is 0 && parent.indexOf(this) is parent.firstIndex) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
290 left = [x, y+height]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
291 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
292 shape = new int[left.length+right.length+8]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
293 int index = 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
294 shape[index++] = x; // first point repeated here because below we reuse shape to draw outline |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
295 shape[index++] = y - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
296 shape[index++] = x; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
297 shape[index++] = y - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
298 for (int i = 0; i < left.length/2; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
299 shape[index++] = x + left[2*i]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
300 shape[index++] = y + height + left[2*i+1] - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
301 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
302 for (int i = 0; i < right.length/2; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
303 shape[index++] = parent.simple ? rightEdge - 1 + right[2*i] : rightEdge - parent.curveIndent + right[2*i]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
304 shape[index++] = parent.simple ? y + height + right[2*i+1] - 1 : y + right[2*i+1] - 2; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
305 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
306 shape[index++] = parent.simple ? rightEdge - 1 : rightEdge + parent.curveWidth - parent.curveIndent; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
307 shape[index++] = y - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
308 shape[index++] = parent.simple ? rightEdge - 1 : rightEdge + parent.curveWidth - parent.curveIndent; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
309 shape[index++] = y - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
310 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
311 int[] left = parent.simple ? CTabFolder.SIMPLE_TOP_LEFT_CORNER : CTabFolder.TOP_LEFT_CORNER; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
312 int[] right = parent.simple ? CTabFolder.SIMPLE_TOP_RIGHT_CORNER : parent.curve; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
313 if (parent.borderLeft is 0 && parent.indexOf(this) is parent.firstIndex) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
314 left = [x, y]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
315 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
316 shape = new int[left.length+right.length+8]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
317 int index = 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
318 shape[index++] = x; // first point repeated here because below we reuse shape to draw outline |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
319 shape[index++] = y + height + 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
320 shape[index++] = x; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
321 shape[index++] = y + height + 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
322 for (int i = 0; i < left.length/2; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
323 shape[index++] = x + left[2*i]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
324 shape[index++] = y + left[2*i+1]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
325 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
326 for (int i = 0; i < right.length/2; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
327 shape[index++] = parent.simple ? rightEdge - 1 + right[2*i] : rightEdge - parent.curveIndent + right[2*i]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
328 shape[index++] = y + right[2*i+1]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
329 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
330 shape[index++] = parent.simple ? rightEdge - 1 : rightEdge + parent.curveWidth - parent.curveIndent; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
331 shape[index++] = y + height + 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
332 shape[index++] = parent.simple ? rightEdge - 1 : rightEdge + parent.curveWidth - parent.curveIndent; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
333 shape[index++] = y + height + 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
334 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
335 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
336 Rectangle clipping = gc.getClipping(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
337 Rectangle bounds = getBounds(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
338 bounds.height += 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
339 if (parent.onBottom) bounds.y -= 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
340 bool tabInPaint = clipping.intersects(bounds); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
341 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
342 if (tabInPaint) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
343 // fill in tab background |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
344 if (parent.selectionGradientColors !is null && !parent.selectionGradientVertical) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
345 parent.drawBackground(gc, shape, true); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
346 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
347 Color defaultBackground = parent.selectionBackground; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
348 Image image = parent.selectionBgImage; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
349 Color[] colors = parent.selectionGradientColors; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
350 int[] percents = parent.selectionGradientPercents; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
351 bool vertical = parent.selectionGradientVertical; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
352 xx = x; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
353 yy = parent.onBottom ? y -1 : y + 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
354 ww = width; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
355 hh = height; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
356 if (!parent.single && !parent.simple) ww += parent.curveWidth - parent.curveIndent; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
357 parent.drawBackground(gc, shape, xx, yy, ww, hh, defaultBackground, image, colors, percents, vertical); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
358 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
359 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
360 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
361 //Highlight MUST be drawn before the outline so that outline can cover it in the right spots (start of swoop) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
362 //otherwise the curve looks jagged |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
363 drawHighlight(gc, rightEdge); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
364 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
365 // draw outline |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
366 shape[0] = Math.max(0, parent.borderLeft - 1); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
367 if (parent.borderLeft is 0 && parent.indexOf(this) is parent.firstIndex) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
368 shape[1] = parent.onBottom ? y + height - 1 : y; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
369 shape[5] = shape[3] = shape[1]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
370 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
371 shape[shape.length - 2] = size.x - parent.borderRight + 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
372 for (int i = 0; i < shape.length/2; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
373 if (shape[2*i + 1] is y + height + 1) shape[2*i + 1] -= 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
374 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
375 RGB inside = parent.selectionBackground.getRGB(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
376 if (parent.selectionBgImage !is null || |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
377 (parent.selectionGradientColors !is null && parent.selectionGradientColors.length > 1)) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
378 inside = null; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
379 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
380 RGB outside = parent.getBackground().getRGB(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
381 if (parent.bgImage !is null || |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
382 (parent.gradientColors !is null && parent.gradientColors.length > 1)) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
383 outside = null; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
384 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
385 parent.antialias(shape, CTabFolder.borderColor.getRGB(), inside, outside, gc); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
386 gc.setForeground(CTabFolder.borderColor); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
387 gc.drawPolyline(shape); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
388 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
389 if (!tabInPaint) return; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
390 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
391 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
392 // draw Image |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
393 int xDraw = x + LEFT_MARGIN; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
394 if (parent.single && (parent.showClose || showClose)) xDraw += CTabFolder.BUTTON_SIZE; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
395 Image image = getImage(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
396 if (image !is null) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
397 Rectangle imageBounds = image.getBounds(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
398 // only draw image if it won't overlap with close button |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
399 int maxImageWidth = rightEdge - xDraw - RIGHT_MARGIN; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
400 if (!parent.single && closeRect.width > 0) maxImageWidth -= closeRect.width + INTERNAL_SPACING; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
401 if (imageBounds.width < maxImageWidth) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
402 int imageX = xDraw; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
403 int imageY = y + (height - imageBounds.height) / 2; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
404 imageY += parent.onBottom ? -1 : 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
405 gc.drawImage(image, imageX, imageY); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
406 xDraw += imageBounds.width + INTERNAL_SPACING; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
407 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
408 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
409 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
410 // draw Text |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
411 int textWidth = rightEdge - xDraw - RIGHT_MARGIN; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
412 if (!parent.single && closeRect.width > 0) textWidth -= closeRect.width + INTERNAL_SPACING; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
413 if (textWidth > 0) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
414 Font gcFont = gc.getFont(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
415 gc.setFont(font is null ? parent.getFont() : font); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
416 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
417 if (shortenedText is null || shortenedTextWidth !is textWidth) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
418 shortenedText = shortenText(gc, getText(), textWidth); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
419 shortenedTextWidth = textWidth; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
420 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
421 Point extent = gc.textExtent(shortenedText, FLAGS); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
422 int textY = y + (height - extent.y) / 2; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
423 textY += parent.onBottom ? -1 : 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
424 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
425 gc.setForeground(parent.selectionForeground); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
426 gc.drawText(shortenedText, xDraw, textY, FLAGS); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
427 gc.setFont(gcFont); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
428 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
429 // draw a Focus rectangle |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
430 if (parent.isFocusControl()) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
431 Display display = getDisplay(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
432 if (parent.simple || parent.single) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
433 gc.setBackground(display.getSystemColor(DWT.COLOR_BLACK)); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
434 gc.setForeground(display.getSystemColor(DWT.COLOR_WHITE)); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
435 gc.drawFocus(xDraw-1, textY-1, extent.x+2, extent.y+2); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
436 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
437 gc.setForeground(display.getSystemColor(CTabFolder.BUTTON_BORDER)); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
438 gc.drawLine(xDraw, textY+extent.y+1, xDraw+extent.x+1, textY+extent.y+1); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
439 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
440 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
441 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
442 if (parent.showClose || showClose) drawClose(gc); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
443 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
444 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
445 /* |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
446 * Draw a highlight effect along the left, top, and right edges of the tab. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
447 * Only for curved tabs, on top. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
448 * Do not draw if insufficient colors. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
449 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
450 void drawHighlight(GC gc, int rightEdge) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
451 //only draw for curvy tabs and only draw for top tabs |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
452 if(parent.simple || this.parent.onBottom) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
453 return; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
454 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
455 if(parent.selectionHighlightGradientBegin is null) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
456 return; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
457 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
458 Color[] gradients = parent.selectionHighlightGradientColorsCache; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
459 if(gradients is null) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
460 return; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
461 int gradientsSize = gradients.length; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
462 if(gradientsSize is 0) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
463 return; //shouldn't happen but just to be tidy |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
464 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
465 gc.setForeground(gradients[0]); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
466 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
467 //draw top horizontal line |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
468 gc.drawLine( |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
469 CTabFolder.TOP_LEFT_CORNER_HILITE[0] + x + 1, //rely on fact that first pair is top/right of curve |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
470 1 + y, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
471 rightEdge - parent.curveIndent, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
472 1 + y); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
473 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
474 int[] leftHighlightCurve = CTabFolder.TOP_LEFT_CORNER_HILITE; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
475 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
476 int d = parent.tabHeight - parent.topCurveHighlightEnd.length /2; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
477 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
478 int lastX = 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
479 int lastY = 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
480 int lastColorIndex = 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
481 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
482 //draw upper left curve highlight |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
483 for (int i = 0; i < leftHighlightCurve.length /2; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
484 int rawX = leftHighlightCurve[i * 2]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
485 int rawY = leftHighlightCurve[i * 2 + 1]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
486 lastX = rawX + x; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
487 lastY = rawY + y; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
488 lastColorIndex = rawY - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
489 gc.setForeground(gradients[lastColorIndex]); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
490 gc.drawPoint(lastX, lastY); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
491 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
492 //draw left vertical line highlight |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
493 for(int i = lastColorIndex; i < gradientsSize; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
494 gc.setForeground(gradients[i]); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
495 gc.drawPoint(lastX, 1 + lastY++); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
496 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
497 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
498 int rightEdgeOffset = rightEdge - parent.curveIndent; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
499 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
500 //draw right swoop highlight up to diagonal portion |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
501 for (int i = 0; i < parent.topCurveHighlightStart.length /2; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
502 int rawX = parent.topCurveHighlightStart[i * 2]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
503 int rawY = parent.topCurveHighlightStart[i * 2 + 1]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
504 lastX = rawX + rightEdgeOffset; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
505 lastY = rawY + y; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
506 lastColorIndex = rawY - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
507 if(lastColorIndex >= gradientsSize) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
508 break; //can happen if tabs are unusually short and cut off the curve |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
509 gc.setForeground(gradients[lastColorIndex]); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
510 gc.drawPoint(lastX, lastY); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
511 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
512 //draw right diagonal line highlight |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
513 for(int i = lastColorIndex; i < lastColorIndex + d; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
514 if(i >= gradientsSize) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
515 break; //can happen if tabs are unusually short and cut off the curve |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
516 gc.setForeground(gradients[i]); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
517 gc.drawPoint(1 + lastX++, 1 + lastY++); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
518 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
519 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
520 //draw right swoop highlight from diagonal portion to end |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
521 for (int i = 0; i < parent.topCurveHighlightEnd.length /2; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
522 int rawX = parent.topCurveHighlightEnd[i * 2]; //d is already encoded in this value |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
523 int rawY = parent.topCurveHighlightEnd[i * 2 + 1]; //d already encoded |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
524 lastX = rawX + rightEdgeOffset; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
525 lastY = rawY + y; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
526 lastColorIndex = rawY - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
527 if(lastColorIndex >= gradientsSize) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
528 break; //can happen if tabs are unusually short and cut off the curve |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
529 gc.setForeground(gradients[lastColorIndex]); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
530 gc.drawPoint(lastX, lastY); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
531 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
532 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
533 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
534 /* |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
535 * Draw the unselected border for the receiver on the right. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
536 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
537 * @param gc |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
538 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
539 void drawRightUnselectedBorder(GC gc) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
540 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
541 int[] shape = null; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
542 int startX = x + width - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
543 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
544 if (this.parent.onBottom) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
545 int[] right = parent.simple |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
546 ? CTabFolder.SIMPLE_UNSELECTED_INNER_CORNER |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
547 : CTabFolder.BOTTOM_RIGHT_CORNER; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
548 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
549 shape = new int[right.length + 2]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
550 int index = 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
551 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
552 for (int i = 0; i < right.length / 2; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
553 shape[index++] = startX + right[2 * i]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
554 shape[index++] = y + height + right[2 * i + 1] - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
555 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
556 shape[index++] = startX; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
557 shape[index++] = y - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
558 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
559 int[] right = parent.simple |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
560 ? CTabFolder.SIMPLE_UNSELECTED_INNER_CORNER |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
561 : CTabFolder.TOP_RIGHT_CORNER; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
562 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
563 shape = new int[right.length + 2]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
564 int index = 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
565 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
566 for (int i = 0; i < right.length / 2; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
567 shape[index++] = startX + right[2 * i]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
568 shape[index++] = y + right[2 * i + 1]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
569 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
570 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
571 shape[index++] = startX; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
572 shape[index++] = y + height; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
573 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
574 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
575 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
576 drawBorder(gc, shape); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
577 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
578 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
579 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
580 /* |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
581 * Draw the border of the tab |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
582 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
583 * @param gc |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
584 * @param shape |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
585 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
586 void drawBorder(GC gc, int[] shape) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
587 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
588 gc.setForeground(CTabFolder.borderColor); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
589 gc.drawPolyline(shape); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
590 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
591 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
592 /* |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
593 * Draw the unselected border for the receiver on the left. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
594 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
595 * @param gc |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
596 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
597 void drawLeftUnselectedBorder(GC gc) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
598 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
599 int[] shape = null; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
600 if (this.parent.onBottom) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
601 int[] left = parent.simple |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
602 ? CTabFolder.SIMPLE_UNSELECTED_INNER_CORNER |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
603 : CTabFolder.BOTTOM_LEFT_CORNER; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
604 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
605 shape = new int[left.length + 2]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
606 int index = 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
607 shape[index++] = x; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
608 shape[index++] = y - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
609 for (int i = 0; i < left.length / 2; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
610 shape[index++] = x + left[2 * i]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
611 shape[index++] = y + height + left[2 * i + 1] - 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
612 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
613 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
614 int[] left = parent.simple |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
615 ? CTabFolder.SIMPLE_UNSELECTED_INNER_CORNER |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
616 : CTabFolder.TOP_LEFT_CORNER; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
617 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
618 shape = new int[left.length + 2]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
619 int index = 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
620 shape[index++] = x; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
621 shape[index++] = y + height; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
622 for (int i = 0; i < left.length / 2; i++) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
623 shape[index++] = x + left[2 * i]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
624 shape[index++] = y + left[2 * i + 1]; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
625 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
626 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
627 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
628 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
629 drawBorder(gc, shape); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
630 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
631 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
632 void drawUnselected(GC gc) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
633 // Do not draw partial items |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
634 if (!showing) return; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
635 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
636 Rectangle clipping = gc.getClipping(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
637 Rectangle bounds = getBounds(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
638 if (!clipping.intersects(bounds)) return; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
639 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
640 // draw border |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
641 int index = parent.indexOf(this); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
642 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
643 if (index > 0 && index < parent.selectedIndex) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
644 drawLeftUnselectedBorder(gc); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
645 // If it is the last one then draw a line |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
646 if (index > parent.selectedIndex) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
647 drawRightUnselectedBorder(gc); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
648 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
649 // draw Image |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
650 int xDraw = x + LEFT_MARGIN; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
651 Image image = getImage(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
652 if (image !is null && parent.showUnselectedImage) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
653 Rectangle imageBounds = image.getBounds(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
654 // only draw image if it won't overlap with close button |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
655 int maxImageWidth = x + width - xDraw - RIGHT_MARGIN; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
656 if (parent.showUnselectedClose && (parent.showClose || showClose)) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
657 maxImageWidth -= closeRect.width + INTERNAL_SPACING; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
658 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
659 if (imageBounds.width < maxImageWidth) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
660 int imageX = xDraw; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
661 int imageHeight = imageBounds.height; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
662 int imageY = y + (height - imageHeight) / 2; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
663 imageY += parent.onBottom ? -1 : 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
664 int imageWidth = imageBounds.width * imageHeight / imageBounds.height; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
665 gc.drawImage(image, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
666 imageBounds.x, imageBounds.y, imageBounds.width, imageBounds.height, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
667 imageX, imageY, imageWidth, imageHeight); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
668 xDraw += imageWidth + INTERNAL_SPACING; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
669 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
670 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
671 // draw Text |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
672 int textWidth = x + width - xDraw - RIGHT_MARGIN; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
673 if (parent.showUnselectedClose && (parent.showClose || showClose)) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
674 textWidth -= closeRect.width + INTERNAL_SPACING; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
675 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
676 if (textWidth > 0) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
677 Font gcFont = gc.getFont(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
678 gc.setFont(font is null ? parent.getFont() : font); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
679 if (shortenedText is null || shortenedTextWidth !is textWidth) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
680 shortenedText = shortenText(gc, getText(), textWidth); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
681 shortenedTextWidth = textWidth; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
682 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
683 Point extent = gc.textExtent(shortenedText, FLAGS); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
684 int textY = y + (height - extent.y) / 2; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
685 textY += parent.onBottom ? -1 : 1; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
686 gc.setForeground(parent.getForeground()); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
687 gc.drawText(shortenedText, xDraw, textY, FLAGS); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
688 gc.setFont(gcFont); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
689 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
690 // draw close |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
691 if (parent.showUnselectedClose && (parent.showClose || showClose)) drawClose(gc); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
692 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
693 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
694 * Returns a rectangle describing the receiver's size and location |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
695 * relative to its parent. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
696 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
697 * @return the receiver's bounding column rectangle |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
698 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
699 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
700 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
701 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
702 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
703 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
704 public Rectangle getBounds () { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
705 //checkWidget(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
706 int w = width; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
707 if (!parent.simple && !parent.single && parent.indexOf(this) is parent.selectedIndex) w += parent.curveWidth - parent.curveIndent; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
708 return new Rectangle(x, y, w, height); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
709 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
710 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
711 * Gets the control that is displayed in the content area of the tab item. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
712 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
713 * @return the control |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
714 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
715 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
716 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
717 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
718 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
719 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
720 public Control getControl () { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
721 checkWidget(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
722 return control; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
723 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
724 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
725 * Get the image displayed in the tab if the tab is disabled. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
726 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
727 * @return the disabled image or null |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
728 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
729 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
730 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
731 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
732 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
733 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
734 * @deprecated the disabled image is not used |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
735 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
736 public Image getDisabledImage(){ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
737 checkWidget(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
738 return disabledImage; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
739 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
740 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
741 * Returns the font that the receiver will use to paint textual information. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
742 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
743 * @return the receiver's font |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
744 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
745 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
746 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
747 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
748 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
749 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
750 * @since 3.0 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
751 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
752 public Font getFont() { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
753 checkWidget(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
754 if (font !is null) return font; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
755 return parent.getFont(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
756 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
757 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
758 * Returns the receiver's parent, which must be a <code>CTabFolder</code>. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
759 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
760 * @return the receiver's parent |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
761 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
762 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
763 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
764 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
765 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
766 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
767 public CTabFolder getParent () { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
768 //checkWidget(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
769 return parent; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
770 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
771 /** |
240 | 772 * Returns <code>true</code> to indicate that the receiver's close button should be shown. |
773 * Otherwise return <code>false</code>. The initial value is defined by the style (DWT.CLOSE) | |
774 * that was used to create the receiver. | |
255
5a30aa9820f3
removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents:
240
diff
changeset
|
775 * |
240 | 776 * @return <code>true</code> if the close button should be shown |
777 * | |
778 * @exception DWTException <ul> | |
779 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> | |
780 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> | |
781 * </ul> | |
255
5a30aa9820f3
removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents:
240
diff
changeset
|
782 * |
240 | 783 * @since 3.4 |
784 */ | |
785 public bool getShowClose() { | |
786 checkWidget(); | |
787 return showClose; | |
788 } | |
789 /** | |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
790 * Returns the receiver's tool tip text, or null if it has |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
791 * not been set. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
792 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
793 * @return the receiver's tool tip text |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
794 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
795 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
796 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
797 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
798 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
799 */ |
238 | 800 public String getToolTipText () { |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
801 checkWidget(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
802 if (toolTipText is null && shortenedText !is null) { |
238 | 803 String text = getText(); |
103 | 804 if (shortenedText!=text) return text; |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
805 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
806 return toolTipText; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
807 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
808 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
809 * Returns <code>true</code> if the item will be rendered in the visible area of the CTabFolder. Returns false otherwise. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
810 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
811 * @return <code>true</code> if the item will be rendered in the visible area of the CTabFolder. Returns false otherwise. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
812 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
813 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
814 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
815 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
816 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
817 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
818 * @since 3.0 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
819 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
820 public bool isShowing () { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
821 checkWidget(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
822 return showing; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
823 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
824 void onPaint(GC gc, bool isSelected) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
825 if (width is 0 || height is 0) return; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
826 if (isSelected) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
827 drawSelected(gc); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
828 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
829 drawUnselected(gc); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
830 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
831 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
832 int preferredHeight(GC gc) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
833 Image image = getImage(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
834 int h = (image is null) ? 0 : image.getBounds().height; |
238 | 835 String text = getText(); |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
836 if (font is null) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
837 h = Math.max(h, gc.textExtent(text, FLAGS).y); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
838 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
839 Font gcFont = gc.getFont(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
840 gc.setFont(font); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
841 h = Math.max(h, gc.textExtent(text, FLAGS).y); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
842 gc.setFont(gcFont); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
843 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
844 return h + TOP_MARGIN + BOTTOM_MARGIN; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
845 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
846 int preferredWidth(GC gc, bool isSelected, bool minimum) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
847 // NOTE: preferred width does not include the "dead space" caused |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
848 // by the curve. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
849 if (isDisposed()) return 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
850 int w = 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
851 Image image = getImage(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
852 if (image !is null && (isSelected || parent.showUnselectedImage)) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
853 w += image.getBounds().width; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
854 } |
238 | 855 String text = null; |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
856 if (minimum) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
857 int minChars = parent.minChars; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
858 text = minChars is 0 ? null : getText(); |
103 | 859 if (text !is null && text.length > minChars) { |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
860 if (useEllipses()) { |
103 | 861 int end = minChars < ELLIPSIS.length + 1 ? minChars : minChars - ELLIPSIS.length; |
862 text = text[ 0 .. end ]; | |
863 if (minChars > ELLIPSIS.length + 1) text ~= ELLIPSIS; | |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
864 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
865 int end = minChars; |
103 | 866 text = text[ 0 .. end ]; |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
867 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
868 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
869 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
870 text = getText(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
871 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
872 if (text !is null) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
873 if (w > 0) w += INTERNAL_SPACING; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
874 if (font is null) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
875 w += gc.textExtent(text, FLAGS).x; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
876 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
877 Font gcFont = gc.getFont(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
878 gc.setFont(font); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
879 w += gc.textExtent(text, FLAGS).x; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
880 gc.setFont(gcFont); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
881 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
882 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
883 if (parent.showClose || showClose) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
884 if (isSelected || parent.showUnselectedClose) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
885 if (w > 0) w += INTERNAL_SPACING; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
886 w += CTabFolder.BUTTON_SIZE; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
887 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
888 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
889 return w + LEFT_MARGIN + RIGHT_MARGIN; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
890 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
891 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
892 * Sets the control that is used to fill the client area of |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
893 * the tab folder when the user selects the tab item. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
894 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
895 * @param control the new control (or null) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
896 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
897 * @exception IllegalArgumentException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
898 * <li>ERROR_INVALID_ARGUMENT - if the control has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
899 * <li>ERROR_INVALID_PARENT - if the control is not in the same widget tree</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
900 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
901 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
902 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
903 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
904 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
905 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
906 public void setControl (Control control) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
907 checkWidget(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
908 if (control !is null) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
909 if (control.isDisposed()) DWT.error (DWT.ERROR_INVALID_ARGUMENT); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
910 if (control.getParent() !is parent) DWT.error (DWT.ERROR_INVALID_PARENT); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
911 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
912 if (this.control !is null && !this.control.isDisposed()) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
913 this.control.setVisible(false); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
914 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
915 this.control = control; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
916 if (this.control !is null) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
917 int index = parent.indexOf (this); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
918 if (index is parent.getSelectionIndex ()){ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
919 this.control.setBounds(parent.getClientArea ()); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
920 this.control.setVisible(true); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
921 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
922 this.control.setVisible(false); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
923 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
924 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
925 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
926 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
927 * Sets the image that is displayed if the tab item is disabled. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
928 * Null will clear the image. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
929 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
930 * @param image the image to be displayed when the item is disabled or null |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
931 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
932 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
933 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
934 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
935 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
936 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
937 * @deprecated This image is not used |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
938 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
939 public void setDisabledImage (Image image) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
940 checkWidget(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
941 if (image !is null && image.isDisposed ()) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
942 DWT.error(DWT.ERROR_INVALID_ARGUMENT); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
943 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
944 this.disabledImage = image; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
945 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
946 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
947 * Sets the font that the receiver will use to paint textual information |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
948 * for this item to the font specified by the argument, or to the default font |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
949 * for that kind of control if the argument is null. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
950 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
951 * @param font the new font (or null) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
952 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
953 * @exception IllegalArgumentException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
954 * <li>ERROR_INVALID_ARGUMENT - if the argument has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
955 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
956 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
957 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
958 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
959 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
960 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
961 * @since 3.0 |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
962 */ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
963 public void setFont (Font font){ |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
964 checkWidget(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
965 if (font !is null && font.isDisposed ()) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
966 DWT.error(DWT.ERROR_INVALID_ARGUMENT); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
967 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
968 if (font is null && this.font is null) return; |
103 | 969 if (font !is null && font==this.font) return; |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
970 this.font = font; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
971 if (!parent.updateTabHeight(false)) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
972 parent.updateItems(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
973 parent.redrawTabs(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
974 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
975 } |
150
f2e04420fd6c
reworked overrides and superclass aliases
Frank Benoit <benoit@tionex.de>
parents:
115
diff
changeset
|
976 public override void setImage (Image image) { |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
977 checkWidget(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
978 if (image !is null && image.isDisposed ()) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
979 DWT.error(DWT.ERROR_INVALID_ARGUMENT); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
980 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
981 Image oldImage = getImage(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
982 if (image is null && oldImage is null) return; |
103 | 983 if (image !is null && image==oldImage) return; |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
984 super.setImage(image); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
985 if (!parent.updateTabHeight(false)) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
986 // If image is the same size as before, |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
987 // redraw only the image |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
988 if (oldImage !is null && image !is null) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
989 Rectangle oldBounds = oldImage.getBounds(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
990 Rectangle bounds = image.getBounds(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
991 if (bounds.width is oldBounds.width && bounds.height is oldBounds.height) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
992 if (showing) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
993 bool selected = parent.indexOf(this) is parent.selectedIndex; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
994 if (selected || parent.showUnselectedImage) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
995 int imageX = x + LEFT_MARGIN, maxImageWidth; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
996 if (selected) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
997 if (parent.single && (parent.showClose || showClose)) imageX += CTabFolder.BUTTON_SIZE; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
998 int rightEdge = Math.min (x + width, parent.getRightItemEdge()); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
999 maxImageWidth = rightEdge - imageX - RIGHT_MARGIN; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1000 if (!parent.single && closeRect.width > 0) maxImageWidth -= closeRect.width + INTERNAL_SPACING; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1001 } else { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1002 maxImageWidth = x + width - imageX - RIGHT_MARGIN; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1003 if (parent.showUnselectedClose && (parent.showClose || showClose)) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1004 maxImageWidth -= closeRect.width + INTERNAL_SPACING; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1005 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1006 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1007 if (bounds.width < maxImageWidth) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1008 int imageY = y + (height - bounds.height) / 2 + (parent.onBottom ? -1 : 1); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1009 parent.redraw(imageX, imageY, bounds.width, bounds.height, false); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1010 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1011 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1012 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1013 return; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1014 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1015 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1016 parent.updateItems(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1017 parent.redrawTabs(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1018 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1019 } |
240 | 1020 /** |
1021 * Sets to <code>true</code> to indicate that the receiver's close button should be shown. | |
1022 * If the parent (CTabFolder) was created with DWT.CLOSE style, changing this value has | |
1023 * no effect. | |
255
5a30aa9820f3
removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents:
240
diff
changeset
|
1024 * |
240 | 1025 * @param close the new state of the close button |
1026 * | |
1027 * @exception DWTException <ul> | |
1028 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> | |
1029 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> | |
1030 * </ul> | |
255
5a30aa9820f3
removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents:
240
diff
changeset
|
1031 * |
240 | 1032 * @since 3.4 |
1033 */ | |
1034 public void setShowClose(bool close) { | |
1035 checkWidget(); | |
1036 if (showClose is close) return; | |
1037 showClose = close; | |
1038 parent.updateItems(); | |
1039 parent.redrawTabs(); | |
1040 } | |
238 | 1041 public override void setText (String string) { |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1042 checkWidget(); |
255
5a30aa9820f3
removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents:
240
diff
changeset
|
1043 // DWT extension: allow null for zero length string |
5a30aa9820f3
removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents:
240
diff
changeset
|
1044 //if (string is null) DWT.error (DWT.ERROR_NULL_ARGUMENT); |
5a30aa9820f3
removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents:
240
diff
changeset
|
1045 if (string.equals (getText())) return; |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1046 super.setText(string); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1047 shortenedText = null; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1048 shortenedTextWidth = 0; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1049 if (!parent.updateTabHeight(false)) { |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1050 parent.updateItems(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1051 parent.redrawTabs(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1052 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1053 } |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1054 /** |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1055 * Sets the receiver's tool tip text to the argument, which |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1056 * may be null indicating that no tool tip text should be shown. |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1057 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1058 * @param string the new tool tip text (or null) |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1059 * |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1060 * @exception DWTException <ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1061 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1062 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1063 * </ul> |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1064 */ |
238 | 1065 public void setToolTipText (String string) { |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1066 checkWidget(); |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1067 toolTipText = string; |
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1068 } |
240 | 1069 |
102
12e3e0e477cd
package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1070 } |