home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / elk-2_0.lha / elk-2.0 / lib / xaw / scrollbar.d < prev    next >
Encoding:
Text File  |  1991-09-25  |  925 b   |  34 lines

  1. ;;; -*-Scheme-*-
  2.  
  3. (define-widget-type 'scrollbar "Scrollbar.h")
  4.  
  5. (prolog
  6.  
  7. "static SYMDESCR Orientation_Syms[] = {
  8.     { \"horizontal\",  XtorientHorizontal },
  9.     { \"vertical\",    XtorientVertical },
  10.     { 0, 0 }
  11. };")
  12.  
  13. (define-widget-class 'scrollbar 'scrollbarWidgetClass)
  14.  
  15. (scheme->c 'scrollbar-orientation
  16. "   return (XtArgVal)Symbols_To_Bits (x, 0, Orientation_Syms);")
  17.  
  18. (c->scheme 'scrollbar-orientation
  19. "   return Bits_To_Symbols ((unsigned long)x, 0, Orientation_Syms);")
  20.  
  21. (define-callback 'scrollbar 'scrollProc #t)
  22. (define-callback 'scrollbar 'jumpProc #t)
  23.  
  24. (c->scheme 'scrollbar-scrollProc
  25. "    return Make_Integer ((int)x);")
  26.  
  27. (c->scheme 'scrollbar-jumpProc
  28. "    return Make_Reduced_Flonum ((double)*(float *)x);")
  29.  
  30. (define-primitive 'scrollbar-set-thumb! '(w t s)
  31. "   Check_Widget_Class (w, scrollbarWidgetClass);
  32.     XawScrollbarSetThumb (WIDGET(w)->widget, Get_Double (t), Get_Double (s));
  33.     return Void;")
  34.