1<TITLE>iwidgets::disjointlistbox - Create and manipulate a disjointlistbox widget</TITLE>
2<H1>iwidgets::disjointlistbox - Create and manipulate a disjointlistbox widget</H1>
3
4</pre><H2>SYNOPSIS</H2>
5<B>iwidgets::disjointlistbox<I> <I>pathName </I>?<I>options</I>?
6</pre><H2>INHERITANCE</H2>
7itk::Widget &lt;- iwidgets::Disjointlistbox
8</pre><H2>STANDARD OPTIONS</H2>
9<P>
10<table cellpadding=5>
11<td valign=top>
12<B><br>
13activeForeground<br>
14buttonPlacement<br>
15highlightColor<br>
16</td>
17<td valign=top>
18activeBackground<br>
19activeRelief<br>
20clientData<br>
21highlightThickness<br>
22</td>
23<td valign=top>
24selectBorderWidth<br>
25background<br>
26cursor<br>
27disabledForeground<br>
28</td>
29<td valign=top>
30selectForeground<br>
31borderWidth<br>
32foreground<br>
33elementBorderWidth</B></I><br>
34</td>
35</table>
36<P>
37See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
38</pre><H2>ASSOCIATED OPTIONS</H2>
39<P>
40<table cellpadding=5>
41<td valign=top>
42<B>lhsButtonLabel</B><br>
43</td>
44<td valign=top>
45<B>rhsButtonLabel</B><br>
46</td>
47<td valign=top>
48</td>
49<td valign=top>
50</td>
51</table>
52<P>
53See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/button.n.html"> "button" </A> widget manual entry for details on the above
54associated options.
55<P>
56<table cellpadding=5>
57<td valign=top>
58<B>labelFont</B><br>
59</td>
60<td valign=top>
61<B>lhsLabelText</B><br>
62</td>
63<td valign=top>
64<B>rhsLabelText</B><br>
65</td>
66<td valign=top>
67</td>
68</table>
69<P>
70See the "label" widget manual entry for details on the above
71associated options.
72<P>
73<table cellpadding=5>
74<td valign=top>
75<B>jump</B><br>
76</td>
77<td valign=top>
78<B>troughColor</B><br>
79</td>
80<td valign=top>
81</td>
82<td valign=top>
83</td>
84</table>
85<P>
86See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget class manual entry for details on the above
87associated options.
88<P>
89<table cellpadding=5>
90<td valign=top>
91<B>textBackground</B><br>
92</td>
93<td valign=top>
94<B>textFont</B><br>
95</td>
96<td valign=top>
97<B>lhsItems</B><br>
98</td>
99<td valign=top>
100<B>rhsItems</B><br>
101</td>
102</table>
103<P>
104See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the above
105associated options.
106</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
107<P>
108<pre>
109Name:                   <B>buttonPlacement</B>
110Class:                  <B>ButtonPlacement</B>
111Command-Line Switch:	<B>-buttonplacement</B>
112</pre>
113<UL>
114Specifies the placement of the insertion and removal buttons relative to the
115scrolledlistbox widgets<B>n</B>, 
116<B>bottom</B>, or <B>center</B>.  The default is bottom.
117</UL>
118<P>
119<pre>
120Name:                   <B>lhsLabelText</B>
121Class:                  <B>LabelText</B>
122Command-Line Switch:	<B>-lhslabeltext</B>
123</pre>
124<UL>
125Specifies the text for the label of the lhs scrolledlistbox.
126The default is "Available".
127</UL>
128<P>
129<pre>
130Name:                   <B>rhsLabelText</B>
131Class:                  <B>LabelText</B>
132Command-Line Switch:	<B>-rhslabeltext</B>
133</pre>
134<UL>
135Specifies the text for the label of the rhs scrolledlistbox.
136The default is "Available".
137</UL>
138<P>
139<pre>
140Name:                   <B>lhsButtonLabel</B>
141Class:                  <B>LabelText</B>
142Command-Line Switch:	<B>-lhsbuttonlabel</B>
143</pre>
144<UL>
145Specifies the text for the button of the lhs scrolledlistbox.
146The default is "Insert &gt;&gt;".
147</UL>
148<P>
149<pre>
150Name:                   <B>rhsButtonLabel</B>
151Class:                  <B>LabelText</B>
152Command-Line Switch:	<B>-rhsbuttonlabel</B>
153</pre>
154<UL>
155Specifies the text for the button of the rhs scrolledlistbox.
156The default is "&lt;&lt; Remove".
157</UL>
158<P>
159<pre>
160Name:                   <B>lhsSortOption</B>
161Class:                  <B>LhsSortOption</B>
162Command-Line Switch:	<B>-lhssortoption</B>
163</pre>
164<UL>
165Specifies the sort function to be applied to the lhs scrolledlistbox
166after items are inserted. Accepts the same sort options as the scrolledlistbox
167sort method (Tcl's lsort command). If "none" is specified, the inserted
168items are appended to the end of the list, and no sorting is performed.
169The default is "increasing".
170</UL>
171<P>
172<pre>
173Name:                   <B>rhsSortOption</B>
174Class:                  <B>RhsSortOption</B>
175Command-Line Switch:	<B>-rhssortoption</B>
176</pre>
177<UL>
178Specifies the sort function to be applied to the rhs scrolledlistbox
179after items are inserted. Accepts the same sort options as the scrolledlistbox
180sort method (Tcl's lsort command). If "none" is specified, the inserted
181items are appended to the end of the list, and no sorting is performed.
182The default is "increasing".
183</UL>
184<P>
185</pre><HR>
186</pre><H2>DESCRIPTION</H2>
187<P>
188The <B>iwidgets::disjointlistbox</B> command creates a disjoint pair of listboxs
189similar to the OSF/Motif "Book" printing dialog of the "FrameMaker"
190program.  It is implementation constists of a two Scrolledlistboxs,
1912 buttons, and 2 labels.
192
193The disjoint behavior of this widget exists between the interaction of
194the two Scrolledlistboxes with one another.  That is, a given instance
195of a Disjointlistbox will never exist, without the aid of a hack magician,
196which has Scrolledlistbox widgets with items in common.  That means the
197relationship between the two is maintained similar to that of disjoint sets.
198
199Users may transfer items between the two Listbox widgets using the
200the two buttons.
201
202Options exists which include the ability to configure the "items" displayed by
203the 2 Scrolledlistboxes and to control the placement of the insertion and
204removal buttons.
205</pre><H2>METHODS</H2>
206<P>
207The <B>iwidgets::disjointlistbox</B> command creates a new Tcl command whose
208name is <I>pathName</I>.  This command may be used to invoke various
209operations on the widget.  It has the following general form:
210<pre>
211<I>pathName option </I>?<I>arg arg ...</I>?
212</pre>
213<I>Option</I> and the <I>arg</I>s
214determine the exact behavior of the command.  The following
215commands are possible for disjointlistbox widgets:
216
217</pre><H2>WIDGET-SPECIFIC METHODS</H2>
218<DL>
219<DT> <I>pathName <B>cget</B> <I>option</I>
220</I></B>
221<DD> Returns the current value of the configuration option given
222by <I>option</I>.
223<I>Option</I> may have any of the values accepted by the <B>iwidgets::disjointlistbox</B>
224command.
225</DL>
226<DL>
227<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
228</I></B>
229<DD> Query or modify the configuration options of the widget.
230If no <I>option</I> is specified, returns a list describing all of
231the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
232information on the format of this list).  If <I>option</I> is specified
233with no <I>value</I>, then the command returns a list describing the
234one named option (this list will be identical to the corresponding
235sublist of the value returned if no <I>option</I> is specified).  If
236one or more <I>option-value</I> pairs are specified, then the command
237modifies the given widget option(s) to have the given value(s);  in
238this case the command returns an empty string.
239<I>Option</I> may have any of the values accepted by the <B>iwidgets::disjointlistbox</B>
240command.
241</DL>
242<DL>
243<DT> <I>pathName <B>setlhs</B>
244</I></B>
245<DD> Set the current contents of the left-most Scrolledlistbox with the input list
246of items.  Removes all (if any) items from the right-most Scrolledlistbox
247which exist in the input list option to maintain the disjoint property
248between the two
249</DL>
250<DL>
251<DT> <I>pathName <B>setrhs</B>
252</I></B>
253<DD> Set the current contents of the right-most Scrolledlistbox with the input list
254of items.  Removes all (if any) items from the left-most Scrolledlistbox
255which exist in the input list option to maintain the disjoint property
256between the two
257</DL>
258<DL>
259<DT> <I>pathName <B>getlhs</B>
260</I></B>
261<DD> Returns the current contents of the left-most Scrolledlistbox
262</DL>
263<DL>
264<DT> <I>pathName <B>getrhs</B>
265</I></B>
266<DD> Returns the current contents of the right-most Scrolledlistbox
267</DL>
268<DL>
269<DT> <I>pathName <B>insertlhs</B>
270</I></B>
271<DD> Add the input list of items to the current contents of the left-most
272Scrolledlistbox.  Removes all (if any) items from the right-most Scrolledlistbox
273which exist in the input list option to maintain the disjoint property
274between the two
275</DL>
276<DL>
277<DT> <I>pathName <B>insertrhs</B>
278</I></B>
279<DD> Add the input list of items to the current contents of the right-most
280Scrolledlistbox.  Removes all (if any) items from the left-most Scrolledlistbox
281which exist in the input list option to maintain the disjoint property
282between the two.
283</DL>
284<DL>
285</DL>
286</pre><H2>COMPONENTS</H2>
287<P>
288<pre>
289Name:                   <B>lhs</B>
290Class:                  <B>Scrolledlistbox</B>
291</pre>
292<UL>
293The lhs component is the scrolledlistbox for the rhs button.
294See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the lhs 
295component item.
296</UL>
297<P>
298<pre>
299Name:                   <B>rhs</B>
300Class:                  <B>Scrolledlistbox</B>
301</pre>
302<UL>
303The rhs component is the scrolledlistbox for the rhs button.
304See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the rhs
305component item.
306</UL>
307<P>
308<pre>
309Name:                   <B>lhsbutton</B>
310Class:                  <B>utton</B>
311</pre>
312<UL>
313The lhsbutton component is the button for users to remove selected items
314from the lhs Scrolledlistbox.
315See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/button.n.html"> "button" </A> widget manual entry for details  on the lhs button component.
316</UL>
317<P>
318<pre>
319Name:                   <B>rhsbutton</B>
320Class:                  <B>Button</B>
321</pre>
322<UL>
323The rhsbutton component is the button for users to remove selected items
324from the rhs Scrolledlistbox.
325See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/button.n.html"> "button" </A> widget manual entry for details  on the rhs button component.
326</UL>
327<P>
328<pre>
329Name:                   <B>lhsCount</B>
330Class:                  <B>Label</B>
331</pre>
332<UL>
333The lhsCount component is the label for displaying a count of the current items in
334the Scrolledlistbox.
335See the "Label" widget manual entry for details  on the lhsCount label component.
336</UL>
337<P>
338<pre>
339Name:                   <B>rhsCount</B>
340Class:                  <B>Label</B>
341</pre>
342<UL>
343The rhsCount component is the label for displaying a count of the current items in
344the Scrolledlistbox.
345See the "Label" widget manual entry for details  on the rhsCount label component.
346</UL>
347</table>
348<UL>
349</UL>
350</pre><H2>EXAMPLE</H2>
351<pre>
352package require Iwidgets 4.0
353iwidgets::disjointlistbox .dlb
354pack .dlb -padx 10 -pady 10 -fill both -expand yes 
355</pre>
356</pre><H2>AUTHOR(S)</H2>
357John A. Tucker
358</pre>
359Anthony Parent
360</pre><H2>KEYWORDS</H2>
361disjointlistbox, widget
362