home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / x / volume20 / xarchie / part24 < prev    next >
Encoding:
Text File  |  1993-06-14  |  19.6 KB  |  610 lines

  1. Newsgroups: comp.sources.x
  2. From: ferguson@cs.rochester.edu (George Ferguson)
  3. Subject: v20i052:  xarchie - An X browser interface to Archie, v2.0.6, Part24/24
  4. Message-ID: <1993Jun15.223607.2129@sparky.imd.sterling.com>
  5. X-Md4-Signature: 18db4c9979bc280fc78b9163d1dcb763
  6. Sender: chris@sparky.imd.sterling.com (Chris Olson)
  7. Organization: Sterling Software
  8. Date: Tue, 15 Jun 1993 22:36:07 GMT
  9. Approved: chris@sparky.imd.sterling.com
  10.  
  11. Submitted-by: ferguson@cs.rochester.edu (George Ferguson)
  12. Posting-number: Volume 20, Issue 52
  13. Archive-name: xarchie/part24
  14. Environment: X11
  15. Supersedes: xarchie: Volume 14, Issue 82-90
  16.  
  17. Submitted-by: ferguson@cs.rochester.edu
  18. Archive-name: xarchie-2.0.6/part24
  19.  
  20. #!/bin/sh
  21. # this is Part.24 (part 24 of xarchie-2.0.6)
  22. # do not concatenate these parts, unpack them in order with /bin/sh
  23. # file xarchie-2.0.6/FWF/MultiList/MultiList.man continued
  24. #
  25. if test ! -r _shar_seq_.tmp; then
  26.     echo 'Please unpack part 1 first!'
  27.     exit 1
  28. fi
  29. (read Scheck
  30.  if test "$Scheck" != 24; then
  31.     echo Please unpack part "$Scheck" next!
  32.     exit 1
  33.  else
  34.     exit 0
  35.  fi
  36. ) < _shar_seq_.tmp || exit 1
  37. if test ! -f _shar_wnt_.tmp; then
  38.     echo 'x - still skipping xarchie-2.0.6/FWF/MultiList/MultiList.man'
  39. else
  40. echo 'x - continuing file xarchie-2.0.6/FWF/MultiList/MultiList.man'
  41. sed 's/^X//' << 'SHAR_EOF' >> 'xarchie-2.0.6/FWF/MultiList/MultiList.man' &&
  42. .RE
  43. .sp
  44. .nf
  45. void XfwfMultiListHighlightAll(mlw)
  46. XXfwfMultiListWidget mlw;
  47. .fi
  48. .sp
  49. .RS 5
  50. This routine highlights all highlightable items in the MultiList
  51. widget <mlw>, up to the maximum number of allowed highlightable items;
  52. .RE
  53. .sp
  54. .nf
  55. void XfwfMultiListUnhighlightItem(mlw,item_index)
  56. XXfwfMultiListWidget mlw;
  57. int item_index;
  58. .fi
  59. .sp
  60. .RS 5
  61. This routine unselects the item with index <item_index> in the
  62. MultiList widget <mlw>.  If <item_index> doesn't correspond to a
  63. selected item, then nothing will happen.  Otherwise, the item is
  64. unselected and the selection array and count are updated.
  65. .RE
  66. .sp
  67. .nf
  68. void XfwfMultiListUnhighlightAll(mlw)
  69. XXfwfMultiListWidget mlw;
  70. .fi
  71. .sp
  72. .RS 5
  73. This routine unhighlights all items in the MultiList widget <mlw>.
  74. .RE
  75. .sp
  76. .nf
  77. int XfwfMultiListToggleItem(mlw,item_index)
  78. XXfwfMultiListWidget mlw;
  79. .fi
  80. .sp
  81. .RS 5
  82. This routine highlights the item with index <item_index> if it is
  83. unhighlighted and unhighlights it if it is already highlighted.  The
  84. action performed by the toggle is returned (XfwfMultiListActionHighlight
  85. or XfwfMultiListActionUnhighlight).
  86. .RE
  87. .sp
  88. .nf
  89. XXfwfMultiListReturnStruct *MultiListGetHighlighted(mlw)
  90. XXfwfMultiListWidget mlw;
  91. .fi
  92. .sp
  93. .RS 5
  94. This routine takes a MultiList widget <mlw> and returns a
  95. MultiListReturnStruct whose num_selected and selected_items fields
  96. contain the highlight information.  The action field is set to
  97. XXfwfMultiListActionStatus, and the item_index and string fields are
  98. invalid.
  99. .RE
  100. .sp
  101. .nf
  102. Boolean XfwfMultiListIsHighlighted(plw,item_index)
  103. XXfwfMultiListWidget mlw;
  104. int item_index;
  105. .fi
  106. .sp
  107. .RS 5
  108. This routine checks if the item with index <item_index> is highlighted
  109. and returns True or False depending.  If <item_index> is invalid,
  110. False is returned.
  111. .RE
  112. .sp
  113. .nf
  114. Boolean XfwfMultiListGetItemInfo(mlw,item_index,str_ptr,h_ptr,s_ptr)
  115. XXfwfMultiListWidget mlw;
  116. int item_index;
  117. String *str_ptr;
  118. Boolean *h_ptr,*s_ptr;
  119. .fi
  120. .sp
  121. .RS 5
  122. This routine returns the string, highlight status and sensitivity
  123. information for the item with index <item_index> via the pointers
  124. <str_ptr>, <h_ptr> and <s_ptr>.  If the item index is invalid, False
  125. is returned, else True is returned.
  126. .RE
  127. .sp
  128. .nf
  129. void XfwfMultiListSetNewData(mlw,list,nitems,longest,resize,sensitivity_array)
  130. MultiListWidget mlw;
  131. String *list;
  132. int nitems,longest;
  133. Boolean resize;
  134. Boolean *sensitivity_array;
  135. .fi
  136. .sp
  137. .RS 5
  138. This routine will set a new set of strings <list> into the MultiList
  139. widget <mlw>.  If <resize> is True, the MultiList widget will try to
  140. resize itself.
  141. .RE
  142. .sp
  143. .nf
  144. .ne 4
  145. .SH Restrictions
  146. .LP
  147. There are likely to be inadequacies in this code.  Specifically, I am
  148. not sure what the callback interface should look like when you can
  149. select and unselect multiple items.  This is the reason for the
  150. confusing return structure fields.  Please send bug reports and
  151. feature requests to the email address below.
  152. .SH Author
  153. .sp
  154. .nf
  155. Brian Totty, \fItotty@cs.uiuc.edu\fR
  156. Department of Computer Science,
  157. University of Illinois at Urbana-Champaign
  158. 1304 W. Springfield Avenue
  159. Urbana, IL 61801
  160. .fi
  161. SHAR_EOF
  162. echo 'File xarchie-2.0.6/FWF/MultiList/MultiList.man is complete' &&
  163. chmod 0644 xarchie-2.0.6/FWF/MultiList/MultiList.man ||
  164. echo 'restore of xarchie-2.0.6/FWF/MultiList/MultiList.man failed'
  165. Wc_c="`wc -c < 'xarchie-2.0.6/FWF/MultiList/MultiList.man'`"
  166. test 6206 -eq "$Wc_c" ||
  167.     echo 'xarchie-2.0.6/FWF/MultiList/MultiList.man: original size 6206, current size' "$Wc_c"
  168. rm -f _shar_wnt_.tmp
  169. fi
  170. # ============= xarchie-2.0.6/FWF/MultiList/MultiListP.h ==============
  171. if test -f 'xarchie-2.0.6/FWF/MultiList/MultiListP.h' -a X"$1" != X"-c"; then
  172.     echo 'x - skipping xarchie-2.0.6/FWF/MultiList/MultiListP.h (File already exists)'
  173.     rm -f _shar_wnt_.tmp
  174. else
  175. > _shar_wnt_.tmp
  176. echo 'x - extracting xarchie-2.0.6/FWF/MultiList/MultiListP.h (Text)'
  177. sed 's/^X//' << 'SHAR_EOF' > 'xarchie-2.0.6/FWF/MultiList/MultiListP.h' &&
  178. /****************************************************************************
  179. X
  180. X    MultiListP.h
  181. X
  182. X    This file is the private header file for the MultiList widget, an
  183. X    extension to the Athena List widget.
  184. X
  185. X    This code is loosely based on the Athena List source which
  186. X    is why the MIT copyright notice appears below.
  187. X
  188. X    The code was changed substantially in V3.4 to change the
  189. X    action/callback interface which was unnecessarily ugly.  Code
  190. X    using some features of the old interface may need to be changed.
  191. X    Hope the changes don't make people's lives too miserable.
  192. X
  193. X ****************************************************************************/
  194. X
  195. /*
  196. X * Author:
  197. X *     Brian Totty
  198. X *     Department of Computer Science
  199. X *     University Of Illinois at Urbana-Champaign
  200. X *    1304 West Springfield Avenue
  201. X *     Urbana, IL 61801
  202. X * 
  203. X *     totty@cs.uiuc.edu
  204. X *     
  205. X */ 
  206. X
  207. /*
  208. X * Copyright 1989 Massachusetts Institute of Technology
  209. X *
  210. X * Permission to use, copy, modify, distribute, and sell this software and its
  211. X * documentation for any purpose is hereby granted without fee, provided that
  212. X * the above copyright notice appear in all copies and that both that
  213. X * copyright notice and this permission notice appear in supporting
  214. X * documentation, and that the name of M.I.T. not be used in advertising or
  215. X * publicity pertaining to distribution of the software without specific,
  216. X * written prior permission.  M.I.T. makes no representations about the
  217. X * suitability of this software for any purpose.  It is provided "as is"
  218. X * without express or implied warranty.
  219. X *
  220. X * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  221. X * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
  222. X * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  223. X * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  224. X * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
  225. X * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  226. X *
  227. X * Original Athena Author:  Chris D. Peterson, MIT X Consortium
  228. X */
  229. X
  230. #ifndef _MULTILISTP_H_
  231. #define _MULTILISTP_H_
  232. X
  233. #include <X11/Xaw/SimpleP.h>
  234. #include <MultiList.h>
  235. X
  236. /*---------------------------------------------------------------------------*
  237. X
  238. X      L O C A L    D A T A    S T R U C T U R E    D E F I N I T I O N S
  239. X
  240. X *---------------------------------------------------------------------------*/
  241. X
  242. typedef    struct
  243. {
  244. X    Boolean        sensitive;
  245. X    Boolean        highlighted;
  246. X    String        string;
  247. } XfwfMultiListItem;
  248. X
  249. /*---------------------------------------------------------------------------*
  250. X
  251. X     W I D G E T    D A T A    S T R U C T U R E    D E F I N I T I O N S
  252. X
  253. X *---------------------------------------------------------------------------*/
  254. X
  255. typedef struct
  256. {
  257. X    int        foo;
  258. } XfwfMultiListClassPart;
  259. X
  260. typedef struct _XfwfMultiListClassRec
  261. {
  262. X    CoreClassPart        core_class;
  263. X    SimpleClassPart        simple_class;
  264. X    XfwfMultiListClassPart    multiList_class;
  265. } XfwfMultiListClassRec;
  266. X
  267. extern XfwfMultiListClassRec xfwfMultiListClassRec;
  268. X
  269. typedef struct
  270. {
  271. X    Pixel            foreground;
  272. X    Pixel            highlight_fg;
  273. X    Pixel            highlight_bg;
  274. X    Dimension        column_space;
  275. X    Dimension        row_space;
  276. X    int            default_cols;
  277. X    Boolean            force_cols;
  278. X    Boolean            paste;
  279. X    Boolean            row_major;
  280. X    int            longest;
  281. X    int            nitems;
  282. X    XFontStruct        *font;
  283. X    String            *list;
  284. X    Boolean            *sensitive_array;
  285. X    XtCallbackList      callback;
  286. X    int            max_selectable;
  287. X    Boolean            shade_surplus;
  288. X    Dimension        col_width;
  289. X    Dimension        row_height;
  290. X
  291. X    int            right_padding;
  292. X    int            bottom_padding;
  293. X    int            nrows;
  294. X    int            ncols;
  295. X    int            most_recent_clicked_item;
  296. X    int            most_recent_action;
  297. X    GC            erase_gc;
  298. X    GC            draw_gc;
  299. X    GC            highlight_bg_gc;
  300. X    GC            highlight_fg_gc;
  301. X    GC            gray_gc;
  302. X    XfwfMultiListItem    *item_array;
  303. X    int            num_selected;
  304. X    int            *sel_array;
  305. } XfwfMultiListPart;
  306. X
  307. typedef struct _XfwfMultiListRec
  308. {
  309. X    CorePart        core;
  310. X    SimplePart        simple;
  311. X    XfwfMultiListPart    multiList;
  312. } XfwfMultiListRec;
  313. X
  314. /*---------------------------------------------------------------------------*
  315. X
  316. X          D A T A    S T R U C T U R E    A C C E S S    M A C R O S
  317. X
  318. X *---------------------------------------------------------------------------*/
  319. X
  320. #define    MultiListItemSensitive(i)    ((i)->sensitive)
  321. #define    MultiListItemHighlighted(i)    ((i)->highlighted)
  322. #define    MultiListItemString(i)        ((i)->string)
  323. X
  324. #define    InstanceCore(w)            (&((w)->core))
  325. #define    InstanceSimple(w)        (&((w)->simple))
  326. #define    InstanceMultiList(w)        (&((w)->multiList))
  327. X
  328. #define    MultiListWidth(w)        (InstanceCore(w)->width)
  329. #define    MultiListHeight(w)        (InstanceCore(w)->height)
  330. #define    MultiListBG(w)            (InstanceCore(w)->background_pixel)
  331. #define    MultiListSensitive(w)        (InstanceCore(w)->sensitive)
  332. #define    MultiListAncesSensitive(w)    (InstanceCore(w)->ancestor_sensitive)
  333. #define    MultiListDepth(w)        (InstanceCore(w)->depth)
  334. X
  335. #define    MultiListFG(w)            (InstanceMultiList(w)->foreground)
  336. #define    MultiListHighlightFG(w)        (InstanceMultiList(w)->highlight_fg)
  337. #define    MultiListHighlightBG(w)        (InstanceMultiList(w)->highlight_bg)
  338. #define    MultiListColumnSpace(w)        (InstanceMultiList(w)->column_space)
  339. #define    MultiListRowSpace(w)        (InstanceMultiList(w)->row_space)
  340. #define    MultiListDefaultCols(w)        (InstanceMultiList(w)->default_cols)
  341. #define    MultiListForceCols(w)        (InstanceMultiList(w)->default_cols)
  342. #define    MultiListPaste(w)        (InstanceMultiList(w)->paste)
  343. #define    MultiListRowMajor(w)        (InstanceMultiList(w)->row_major)
  344. #define    MultiListLongest(w)        (InstanceMultiList(w)->longest)
  345. #define    MultiListNumItems(w)        (InstanceMultiList(w)->nitems)
  346. #define    MultiListFont(w)        (InstanceMultiList(w)->font)
  347. #define    MultiListList(w)        (InstanceMultiList(w)->list)
  348. #define    MultiListSensitiveArray(w)    (InstanceMultiList(w)->sensitive_array)
  349. #define    MultiListCallback(w)        (InstanceMultiList(w)->callback)
  350. #define    MultiListMaxSelectable(w)    (InstanceMultiList(w)->max_selectable)
  351. #define    MultiListShadeSurplus(w)    (InstanceMultiList(w)->shade_surplus)
  352. X
  353. #define    MultiListColWidth(w)        (InstanceMultiList(w)->col_width)
  354. #define    MultiListRowHeight(w)        (InstanceMultiList(w)->row_height)
  355. #define    MultiListRightPadding(w)    (InstanceMultiList(w)->right_padding)
  356. #define    MultiListBottomPadding(w)    (InstanceMultiList(w)->bottom_padding)
  357. #define    MultiListNumRows(w)        (InstanceMultiList(w)->nrows)
  358. #define    MultiListNumCols(w)        (InstanceMultiList(w)->ncols)
  359. #define    MultiListMostRecentItem(w)    (InstanceMultiList(w)->most_recent_clicked_item)
  360. #define    MultiListMostRecentAct(w)    (InstanceMultiList(w)->most_recent_action)
  361. #define    MultiListEraseGC(w)        (InstanceMultiList(w)->erase_gc)
  362. #define    MultiListDrawGC(w)        (InstanceMultiList(w)->draw_gc)
  363. #define    MultiListHighlightForeGC(w)    (InstanceMultiList(w)->highlight_fg_gc)
  364. #define    MultiListHighlightBackGC(w)    (InstanceMultiList(w)->highlight_bg_gc)
  365. #define    MultiListGrayGC(w)        (InstanceMultiList(w)->gray_gc)
  366. #define    MultiListItemArray(w)        (InstanceMultiList(w)->item_array)
  367. #define    MultiListNthItem(w,n)        (&(MultiListItemArray(w)[n]))
  368. #define    MultiListSelArray(w)        (InstanceMultiList(w)->sel_array)
  369. #define    MultiListNumSelected(w)        (InstanceMultiList(w)->num_selected)
  370. X
  371. #endif
  372. SHAR_EOF
  373. chmod 0644 xarchie-2.0.6/FWF/MultiList/MultiListP.h ||
  374. echo 'restore of xarchie-2.0.6/FWF/MultiList/MultiListP.h failed'
  375. Wc_c="`wc -c < 'xarchie-2.0.6/FWF/MultiList/MultiListP.h'`"
  376. test 7023 -eq "$Wc_c" ||
  377.     echo 'xarchie-2.0.6/FWF/MultiList/MultiListP.h: original size 7023, current size' "$Wc_c"
  378. rm -f _shar_wnt_.tmp
  379. fi
  380. # ============= xarchie-2.0.6/FWF/MultiList/MultiListT.c ==============
  381. if test -f 'xarchie-2.0.6/FWF/MultiList/MultiListT.c' -a X"$1" != X"-c"; then
  382.     echo 'x - skipping xarchie-2.0.6/FWF/MultiList/MultiListT.c (File already exists)'
  383.     rm -f _shar_wnt_.tmp
  384. else
  385. > _shar_wnt_.tmp
  386. echo 'x - extracting xarchie-2.0.6/FWF/MultiList/MultiListT.c (Text)'
  387. sed 's/^X//' << 'SHAR_EOF' > 'xarchie-2.0.6/FWF/MultiList/MultiListT.c' &&
  388. /*****************************************************************************
  389. X
  390. X    MultiList_test.c
  391. X
  392. X    This file contains the source for a very simple MultiList widget
  393. X    tester program.
  394. X
  395. X    July 1990, Brian Totty
  396. X
  397. X ****************************************************************************/
  398. X
  399. /*
  400. X * Author:
  401. X *     Brian Totty
  402. X *     Department of Computer Science
  403. X *     University Of Illinois at Urbana-Champaign
  404. X *    1304 West Springfield Avenue
  405. X *     Urbana, IL 61801
  406. X * 
  407. X *     totty@cs.uiuc.edu
  408. X *     
  409. X */ 
  410. X
  411. #include <X11/Xatom.h>
  412. #include <X11/Xlib.h>
  413. #include <X11/Intrinsic.h>
  414. #include <X11/StringDefs.h>
  415. #include <X11/Shell.h>
  416. #include <X11/Xaw/Box.h>
  417. X
  418. #include <Xfwf/MultiList.h>
  419. X
  420. /*---------------------------------------------------------------------------*
  421. X
  422. X    void CallbackHandler(w,client_data,rs)
  423. X
  424. X    This callback handler gets called when the MultiList widget gets a
  425. X    highlight or unhighlight action.
  426. X
  427. X *---------------------------------------------------------------------------*/
  428. X
  429. void CallbackHandler(w,client_data,rs)
  430. Widget w;
  431. caddr_t client_data;
  432. XXfwfMultiListReturnStruct *rs;
  433. {
  434. X    int i;
  435. X
  436. X    static char *multiList_action_names[] =
  437. X    {
  438. X        "MULTILIST_ACTION_NOTHING",
  439. X        "MULTILIST_ACTION_HIGHLIGHT",
  440. X        "MULTILIST_ACTION_UNHIGHLIGHT",
  441. X        "MULTILIST_ACTION_OPEN",
  442. X        "MULTILIST_ACTION_STATUS"
  443. X    };
  444. X
  445. X    printf("-----------------------------------\n");
  446. X    printf("Num Selected:        %d\n",rs->num_selected);
  447. X    printf("Selected Items:      ");
  448. X    printf("\n");
  449. X    printf("Most Recent Action:  %s\n",multiList_action_names[rs->action]);
  450. X    printf("Most Recent Item:    %d\n",rs->item);
  451. X    printf("Most Recent String:  '%s'\n",
  452. X           (rs->string == NULL ? "NULL" : rs->string));
  453. X    for (i = 0; i < rs->num_selected; i++)
  454. X    {
  455. X        printf("%d ",rs->selected_items[i]);
  456. X    }
  457. X    if (rs->num_selected == 0) printf("None");
  458. X    printf("\n");
  459. } /* End CallbackHandler */
  460. X
  461. X
  462. /*---------------------------------------------------------------------------*
  463. X
  464. X    main(argc,argv)
  465. X
  466. X    This is the main entry point of the scrolledList
  467. X    widget application program.
  468. X
  469. X *---------------------------------------------------------------------------*/
  470. X
  471. int main(argc,argv)
  472. int argc;
  473. char **argv;
  474. {
  475. X    Widget top,multiList;
  476. X    Arg args[10];
  477. X
  478. X    static char *strings[8] =
  479. X    {
  480. X        "Happy New Year",
  481. X        "To You",
  482. X        "Your Family",
  483. X        "And Friends",
  484. X        "Peace And Joy",
  485. X        "Best Wishes For 1993!",
  486. X        "(A Token Unsensitive String)",
  487. X        NULL
  488. X    };
  489. X
  490. X    static Boolean sensitivities[7] =
  491. X    {
  492. X        True,True,True,True,
  493. X        True,True,False
  494. X    };
  495. X
  496. X    top = XtInitialize("main","XMultiList",NULL,0,&argc,argv);
  497. X
  498. X    XtSetArg(args[0],XtNlist,strings);
  499. X    XtSetArg(args[1],XtNsensitiveArray,sensitivities);
  500. X    XtSetArg(args[2],XtNnumberStrings,0);
  501. X    XtSetArg(args[3],XtNdefaultColumns,2);
  502. X    XtSetArg(args[4],XtNborderWidth,0);
  503. X    XtSetArg(args[5],XtNx,1);
  504. X    XtSetArg(args[6],XtNy,1);
  505. X    XtSetArg(args[7],XtNmaxSelectable,3);
  506. X    multiList = XtCreateManagedWidget("multiList",
  507. X          xfwfMultiListWidgetClass,top,args,8);
  508. X
  509. X    XtAddCallback(multiList,XtNcallback,CallbackHandler,NULL);
  510. X
  511. X    XtRealizeWidget(top);
  512. X    XtMainLoop();
  513. X    return(1);
  514. } /* End main */
  515. X
  516. X
  517. X
  518. SHAR_EOF
  519. chmod 0644 xarchie-2.0.6/FWF/MultiList/MultiListT.c ||
  520. echo 'restore of xarchie-2.0.6/FWF/MultiList/MultiListT.c failed'
  521. Wc_c="`wc -c < 'xarchie-2.0.6/FWF/MultiList/MultiListT.c'`"
  522. test 3020 -eq "$Wc_c" ||
  523.     echo 'xarchie-2.0.6/FWF/MultiList/MultiListT.c: original size 3020, current size' "$Wc_c"
  524. rm -f _shar_wnt_.tmp
  525. fi
  526. # ============= xarchie-2.0.6/FWF/MultiList/MultiListT.man ==============
  527. if test -f 'xarchie-2.0.6/FWF/MultiList/MultiListT.man' -a X"$1" != X"-c"; then
  528.     echo 'x - skipping xarchie-2.0.6/FWF/MultiList/MultiListT.man (File already exists)'
  529.     rm -f _shar_wnt_.tmp
  530. else
  531. > _shar_wnt_.tmp
  532. echo 'x - extracting xarchie-2.0.6/FWF/MultiList/MultiListT.man (Text)'
  533. sed 's/^X//' << 'SHAR_EOF' > 'xarchie-2.0.6/FWF/MultiList/MultiListT.man' &&
  534. '\" t
  535. .TH "MultiListT" "1" "19 May 1992" "Version 3.0" "Free Widget Foundation"
  536. .SH NAME
  537. MultiListT \- Test Program For The MultiList Widget
  538. .SH DESCRIPTION
  539. .PP
  540. .I MultiListT
  541. is a simple program that creates and test a MultiList widget.  The
  542. source may be useful is seeing how the MultiList widget can be used.  The
  543. test program allows you to selected at most 3 items at a time.  This is done
  544. in the test code by setting the XtNmaxSelectable resource of the MultiList
  545. widget to 3.
  546. .SH AUTHOR
  547. .sp
  548. .nf
  549. Brian Totty, \fItotty@cs.uiuc.edu\fR
  550. Department of Computer Science,
  551. University of Illinois at Urbana-Champaign
  552. 1304 W. Springfield Avenue
  553. Urbana, IL 61801
  554. .fi
  555. SHAR_EOF
  556. chmod 0644 xarchie-2.0.6/FWF/MultiList/MultiListT.man ||
  557. echo 'restore of xarchie-2.0.6/FWF/MultiList/MultiListT.man failed'
  558. Wc_c="`wc -c < 'xarchie-2.0.6/FWF/MultiList/MultiListT.man'`"
  559. test 660 -eq "$Wc_c" ||
  560.     echo 'xarchie-2.0.6/FWF/MultiList/MultiListT.man: original size 660, current size' "$Wc_c"
  561. rm -f _shar_wnt_.tmp
  562. fi
  563. # ============= xarchie-2.0.6/FWF/MultiList/README ==============
  564. if test -f 'xarchie-2.0.6/FWF/MultiList/README' -a X"$1" != X"-c"; then
  565.     echo 'x - skipping xarchie-2.0.6/FWF/MultiList/README (File already exists)'
  566.     rm -f _shar_wnt_.tmp
  567. else
  568. > _shar_wnt_.tmp
  569. echo 'x - extracting xarchie-2.0.6/FWF/MultiList/README (Text)'
  570. sed 's/^X//' << 'SHAR_EOF' > 'xarchie-2.0.6/FWF/MultiList/README' &&
  571. X    This directory contains the C source for the MultiList widget, which
  572. X    is a widget, similar to the Athena List widget, but with the
  573. X    following significant differences:
  574. X
  575. X        * Multiple items can be selected at one time.
  576. X        * Colors can be specified for highlighting.
  577. X        * In addition to setting and unsetting items with the
  578. X          Set() and Unset() actions, MultiList also supports toggling
  579. X          (selected item becomes unselected, unselected item becomes
  580. X          selected) with Toggle() and opening of objects (e.g.
  581. X          might be used with a double-click) with Open().
  582. X        * The return structure is now more complicated, listing
  583. X          what type of operation generated the callback (highlighting
  584. X          an item, unhighlighting an item, opening an item, requesting
  585. X          the current status), what item was clicked on to produce this
  586. X          callback, and the list of what items are currently
  587. X          selected.
  588. X        * Items can be individually disabled, by setting the
  589. X          sensitivity array.
  590. X        * internalWidth and internalHeight resources have been
  591. X          removed.
  592. SHAR_EOF
  593. chmod 0644 xarchie-2.0.6/FWF/MultiList/README ||
  594. echo 'restore of xarchie-2.0.6/FWF/MultiList/README failed'
  595. Wc_c="`wc -c < 'xarchie-2.0.6/FWF/MultiList/README'`"
  596. test 1025 -eq "$Wc_c" ||
  597.     echo 'xarchie-2.0.6/FWF/MultiList/README: original size 1025, current size' "$Wc_c"
  598. rm -f _shar_wnt_.tmp
  599. fi
  600. rm -f _shar_seq_.tmp
  601. echo You have unpacked the last part
  602. exit 0
  603.  
  604. exit 0 # Just in case...
  605. -- 
  606.   // chris@IMD.Sterling.COM       | Send comp.sources.x submissions to:
  607. \X/  Amiga - The only way to fly! |    sources-x@imd.sterling.com
  608.  "It's intuitively obvious to the |
  609.   most casual observer..."        | GCS d+/-- p+ c++ l+ m+ s++/+ g+ w+ t+ r+ x+
  610.