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 / grip.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-11-22  |  805 b   |  30 lines

  1. #include "../xt/xt.h"
  2. #include <X11/Xaw/Grip.h>
  3.  
  4. static Object S_Grip_Callback (x) XtArgVal x; {
  5.    Object args, ret, t;
  6.     register i;
  7.     GripCallData p = (GripCallData)x;
  8.     GC_Node3;
  9.  
  10.     args = ret = t = Null;
  11.     GC_Link3 (args, ret, t);
  12.     args = Get_Event_Args (p->event);
  13.     ret = Cons (Copy_List (args), Null);
  14.     Destroy_Event_Args (args);
  15.     t = P_Make_List (Make_Fixnum (p->num_params), Null);
  16.     for (i = 0, Cdr (ret) = t; i < p->num_params; i++, t = Cdr (t)) {
  17.     Object s = Make_String (p->params[i], strlen (p->params[i]));
  18.     Car (t) = s;
  19.     }
  20.     GC_Unlink;
  21.     return ret;
  22. }
  23.  
  24. init_grip () {
  25.     XtResourceList r = 0;
  26.     Define_Class ("grip", gripWidgetClass, r, 0);
  27.     Define_Callback ("grip", "callback", 1);
  28.     Define_Converter_To_Scheme ("grip-callback", S_Grip_Callback);
  29. }
  30.