home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / windows / openloo / 3515 < prev    next >
Encoding:
Text File  |  1992-08-19  |  3.3 KB  |  110 lines

  1. Path: sparky!uunet!paladin.american.edu!darwin.sura.net!mips!sdd.hp.com!cs.utexas.edu!uwm.edu!ogicse!decwrl!oracle!pyramid!infmx!sdavid
  2. From: sdavid@.informix.com (David Sherrick)
  3. Newsgroups: comp.windows.open-look
  4. Subject: Deleting list items in OLIT 2.0
  5. Message-ID: <1992Aug20.000616.2647@informix.com>
  6. Date: 20 Aug 92 00:06:16 GMT
  7. Article-I.D.: informix.1992Aug20.000616.2647
  8. Sender: news@informix.com (Usenet News)
  9. Organization: Informix Software, Inc.
  10. Lines: 97
  11. Originator: sdavid@jupiter
  12.  
  13.  
  14. I am having a problem with deleting items from a scrolling list in
  15. OLIT 2.0 (on Sun 4/470).  I have included sample code below that
  16. demonstrates the problem.  Deleting items from the scrolling list
  17. works fine except when I delete the last item in the scrolling list. When
  18. I delete the last item in the scrolling list I get warnings:
  19. OPEN LOOK Toolkit Warning in application "test1":
  20.     Scrollbar - Bad sliderMin resource value, set to default
  21. OPEN LOOK Toolkit Warning in application "test1":
  22.     Scrollbar - Bad proportionLength resource value, set to default
  23.  
  24. Furthermore, if I the item I am deleting is currently selected I
  25. will get a core dump when trying to select items from another
  26. scrolling list.  Any help would be greatly appreciated.
  27.  
  28. Thanks,
  29. David Sherrick
  30.  
  31. #include <X11/Intrinsic.h>
  32. #include <X11/StringDefs.h>
  33. #include <X11/Shell.h>
  34. #include <Xol/OpenLook.h>
  35. #include <Xol/OblongButt.h>
  36. #include <Xol/Form.h>
  37. #include <Xol/ScrollingL.h>
  38.  
  39. Widget    sendList;
  40.  
  41. OlListToken (*add_item)();
  42. OlListToken (*add_item2)();
  43. void (*delete_item2)();
  44.  
  45. OlListToken mytoken;
  46. OlListItem userlist[] =
  47. {
  48.     {OL_STRING, "One", NULL, 0, 0}
  49. };
  50.  
  51. void RemoveCallback(widget, clientData, callData)
  52. Widget widget;
  53. caddr_t clientData, callData;
  54. {
  55.     OlListItem *item;
  56.  
  57.     item = OlListItemPointer(mytoken);
  58.     (*delete_item2)(sendList, mytoken);
  59. }
  60.  
  61. int main(argc, argv)
  62. int argc;
  63. char **argv;
  64. {
  65.     Widget    toplevel, form, userList, removeButton;
  66.     Arg    args[20];
  67.     int    i, n;
  68.  
  69.     toplevel = OlInitialize("top","Top", NULL, 0, &argc, argv);
  70.     form = XtCreateManagedWidget("form",
  71.                 formWidgetClass, toplevel, NULL, 0);
  72.  
  73.     n = 0;
  74.     XtSetArg(args[n], XtNyAddHeight, (XtArgVal) TRUE);    n++;
  75.     XtSetArg(args[n], XtNviewHeight, (XtArgVal) 7); n++;
  76.     userList = XtCreateManagedWidget("userlist",
  77.             scrollingListWidgetClass, form, args, n);
  78.     n = 0;
  79.     XtSetArg(args[n], XtNapplAddItem, (XtArgVal) &add_item); n++;
  80.     XtGetValues(userList, args, n);
  81.  
  82.     (*add_item) (userList, NULL, NULL, userlist[0]);
  83.  
  84.     n = 0;
  85.     XtSetArg(args[n], XtNxRefWidget, userList);    n++;
  86.     XtSetArg(args[n], XtNlabel, "Remove");    n++;
  87.     XtSetArg(args[n], XtNxAddWidth, (XtArgVal) TRUE);    n++;
  88.     removeButton = XtCreateManagedWidget("button",
  89.                 oblongButtonWidgetClass, form, args, n);
  90.  
  91.     n = 0;
  92.     XtSetArg(args[n], XtNxRefWidget, removeButton);    n++;
  93.     XtSetArg(args[n], XtNxAddWidth, (XtArgVal) TRUE);    n++;
  94.     XtSetArg(args[n], XtNviewHeight, (XtArgVal) 7); n++;
  95.     sendList = XtCreateManagedWidget("sendlist",
  96.             scrollingListWidgetClass, form, args, n);
  97.     n = 0;
  98.     XtSetArg(args[n], XtNapplAddItem, (XtArgVal) &add_item2); n++;
  99.     XtSetArg(args[n], XtNapplDeleteItem, (XtArgVal) &delete_item2); n++;
  100.     XtGetValues(sendList, args, n);
  101.  
  102.     mytoken = (*add_item2) (sendList, NULL, NULL, userlist[0]);
  103.  
  104. /* Widget Callbacks */
  105.     XtAddCallback(removeButton, XtNselect, RemoveCallback, NULL);
  106.  
  107.     XtRealizeWidget(toplevel);
  108.     XtMainLoop();
  109. }
  110.