home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / windows / x / 21004 < prev    next >
Encoding:
Internet Message Format  |  1993-01-11  |  2.4 KB

  1. Path: sparky!uunet!pipex!bnr.co.uk!uknet!lsl!snail
  2. From: snail@lsl.co.uk
  3. Newsgroups: comp.windows.x
  4. Subject: Re: Help with XmCreateScrolledText
  5. Message-ID: <1993Jan11.181327.2918@lsl.co.uk>
  6. Date: 11 Jan 93 18:13:27 GMT
  7. References: <1993Jan8.213117.12635@b8.b8.ingr.com>
  8. Organization: Laser-Scan Ltd., Cambridge
  9. Lines: 47
  10.  
  11. In article <1993Jan8.213117.12635@b8.b8.ingr.com>, paries@b8.b8.ingr.com (Randy Paries) writes:
  12. >     My problem is that I can't seem to stop/force the user
  13. >     to 60 chars lines.
  14. >     My Goal is at 60 chars to either ring a bell so that they 
  15. >     have to hit <CR> or even better have it wrap.
  16. >     At present with the resources above I can make the TextWidget
  17. >     apprear with 60 columns and not change widths, but they can 
  18. >     continue to Type for ever.
  19.  
  20. Okay, right first thing, do what you want with your resources, it'll make not
  21. a lot of difference, really.
  22.  
  23. You need to add an XmNmodifyVerifyCallback to your text widget.
  24.  
  25. static XtCallbackProc callback_func(Widget                     w,
  26.                                     XtPointer                  client_data,
  27.                                     XmTextVerifyCallbackStruct str)
  28. This callback
  29. can then check the length of the existing text and incoming text and decide
  30. wether it should break the incoming text up, or disallow the incoming text.
  31. A delete is detected by looking for inserted text of length zero, the 
  32. str->text->ptr and str->text->length fields of the callback structure will be
  33. NULL and zero. You can in general ignore the str->text->format field.
  34.  
  35. For instance you can set the str->doit field to FALSE if the text is too long
  36. (remember that deleting from one line across a \n may cause a line to be too
  37. long). If you set the XmNverifyBell resource to TRUE, the bell will
  38. automatically sound if the user tries to do something which results in you
  39. setting str->doit to false.
  40.  
  41. See the XmText man page.
  42.  
  43. This works, I've done similar stuff this way. You could also implement enough
  44. stuff to remember how to do an undo/redo function, although I haven't had the
  45. need to do this yet.
  46.  
  47. You can also use XmNvalueChangedCallback, except this gets called after the
  48. event. I wouldn't recommend this.
  49. -- 
  50. snail@lsl.co.uk      
  51.  
  52. "Washing one's hands of the conflict between the powerful and the powerless
  53.  means to side with the powerful, not to be Neutral."
  54.                                                      Quote by Freire.
  55.                                                      Poster by OXFAM.
  56.