Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 5a4518517fa2df85a2e4e2ea8ba07f710cde7513 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/**********************************************************************
Copyright (c) 2000, 2002 IBM Corp. and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Common Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/cpl-v10.html

Contributors:
    IBM Corporation - Initial implementation
**********************************************************************/

package org.eclipse.jface.text;


import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Point;


/**
 * Interface of a control presenting information. The information is given
 * in textual form. It can either be the content itself or a description
 * of the content. This specification is left to the implementers of this interface.<p>
 * The information control may not grap focus when made visible  using
 * <code>setVisible(true)</code>.
 * 
 * @since 2.0
 */
public interface IInformationControl {

	/**
	 * Sets the information to be presented in this information control.
	 * 
	 * @param information the information to be presented
	 */
	void setInformation(String information);
	
	/**
	 * Sets the information control's size constraints. A constraint value of
	 * <code>-1</code> indicates no constraint. This method is called before 
	 * <code>computeSizeHint</code> is called.
	 * 
	 * @param maxWidth the maximal width of the control  to present the information, or <code>-1</code> for not constraint
	 * @param maxHeight the maximal height of the control to present the information, or <code>-1</code> for not constraint
	 */
	void setSizeConstraints(int maxWidth, int maxHeight);
	
	/**
	 * Computes and returns a proposal for the size of this information control depending
	 * on the information to present. The method tries to honor known size constraints but might 
	 * returns a size that exceeds them. 
	 * 
	 * @return the computed size hint
	 */
	Point computeSizeHint();
	
	/**
	 * Controls the visibility of this information control.
	 * 
	 * @param visible <code>true</code> if the control should be visible
	 */
	void setVisible(boolean visible);
	
	/**
	 * Sets the size of this information control.
	 * 
	 * @param width the width of the control
	 * @param height the height of the control
	 */
	void setSize(int width, int height);
	
	/**
	 * Sets the location of this information control.
	 * 
	 * @param location the location
	 */
	void setLocation(Point location);
	
	/**
	 * Disposes this information control.
	 */
	void dispose();
	
	/**
	 * Adds the given listener to the list of dispose listeners. 
	 * If the listener is already registered it is not registered again.
	 * 
	 * @param listener the listener to be added
	 */
	void addDisposeListener(DisposeListener listener);
	
	/**
	 * Removes the given listeners from the list of dispose listeners.
	 * If the listener is not registered this call has no affect.
	 * 
	 * @param listener the listener to be removed 
	 */
	void removeDisposeListener(DisposeListener listener);
	
	/**
	 * Sets the foreground color of this information control.
	 * 
	 * @param foreground the foreground color of this information control
	 */
	void setForegroundColor(Color foreground);
	
	/**
	 * Sets the background color of this information control.
	 * 
	 * @param background the background color of this information control
	 */
	void setBackgroundColor(Color background);
	
	/**
	 * Returns whether this information control has the focus.
	 * 
	 * @return <code>true</code> when the information control has the focus otherwise <code>false</code>
	 */
	boolean isFocusControl();
	
	/**
	 * Sets the keyboard focus to this information control.
	 */
	void setFocus();
	
	/**
	 * Adds the given listener to the list of focus listeners. 
	 * If the listener is already registered it is not registered again.
	 * 
	 * @param listener the listener to be added
	 */
	void addFocusListener(FocusListener listener);
	
	/**
	 * Removes the given listeners from the list of focus listeners.
	 * If the listener is not registered this call has no affect.
	 * 
	 * @param listener the listener to be removed 
	 */
	void removeFocusListener(FocusListener listener);
}

Back to the top