01: /*
02: * (C) Copyright IBM Corp. 1998-2004. All Rights Reserved.
03: *
04: * The program is provided "as is" without any warranty express or
05: * implied, including the warranty of non-infringement and the implied
06: * warranties of merchantibility and fitness for a particular purpose.
07: * IBM will not be liable for any damages suffered by you as a result
08: * of using the Program. In no event will IBM be liable for any
09: * special, indirect or consequential damages or lost profits even if
10: * IBM has been advised of the possibility of their occurrence. IBM
11: * will not be liable for any third party claims against you.
12: */
13: package com.ibm.richtext.awtui;
14:
15: import java.awt.Color;
16: import com.ibm.richtext.styledtext.MTabRuler;
17: import com.ibm.richtext.textpanel.MTextPanel;
18:
19: /**
20: * MTabRulerComponent is implemented by components which provide a tab-ruler
21: * interface for interacting with an MTextPanel.
22: * <p>
23: * Users interact with MTabRulerComponent implementations as follows:
24: * <ul>
25: * <li>The leading margin can be set by dragging the bottom half
26: * of the leftmost triangle. The first-line indent will "stick" with
27: * the leading margin.</li>
28: * <li>The first-line indent can be set by dragging the top half of the
29: * leftmost triangle. The first-line indent applies to the first line of
30: * a paragraph.</li>
31: * <li>The trailing margin can be set by dragging the rightmost triangle.</li>
32: * <li>Tabs can be added to the ruler by clicking the mouse on the ruler with the
33: * control key pressed. Four kinds of tabs are provided: leading, trailing, center,
34: * and decimal. The type of a tab can be changed by double-clicking the tab.</li>
35: * <li>Tabs can be repositioned by dragging them with the mouse.</li>
36: * </ul>
37: * <p>
38: * MTabRulerComponent's appearance will reflect the paragraph styles in the
39: * first selected paragraph. Style changes performed with an
40: * MTabRulerComponent will apply to all selected paragraphs.
41: */
42: public interface MTabRulerComponent {
43:
44: static final String COPYRIGHT = "(C) Copyright IBM Corp. 1998-1999 - All Rights Reserved";
45:
46: /**
47: * Listen to the given MTextPanel and reflect its changes,
48: * and update its paragraph styles when TabRuler is
49: * manipulated.
50: * @param textPanel the MTextPanel to listen to
51: */
52: public void listenToTextPanel(MTextPanel textPanel);
53:
54: /**
55: * Return the background color of this TabRuler.
56: * @return the background color of this TabRuler
57: */
58: public Color getBackColor();
59:
60: /**
61: * Set the background color of this TabRuler.
62: * @param backColor the new background color of this TabRuler
63: */
64: public void setBackColor(Color backColor);
65:
66: /**
67: * Return the MTabRuler represented by this TabRuler.
68: * @return the MTabRuler represented by this TabRuler
69: */
70: public MTabRuler getRuler();
71:
72: /**
73: * Return the leading margin of this TabRuler.
74: * @return the leading margin of this TabRuler
75: */
76: public int getLeadingMargin();
77:
78: /**
79: * Return the first line indent of this TabRuler.
80: * @return the first line indent of this TabRuler
81: */
82: public int getFirstLineIndent();
83:
84: /**
85: * Return the trailing margin of this TabRuler.
86: * @return the trailing margin of this TabRuler
87: */
88: public int getTrailingMargin();
89: }
|