示例#1
0
LVAL iview_transformation(V)
{
  IVIEW_WINDOW w;
  LVAL m = NULL, object;
  int set = FALSE;
  int vars;
  
  object = xlgaobject();
  w = (IVIEW_WINDOW) get_iview_address(object);
  if (moreargs()) {
    set = TRUE;
    m = xlgetarg();
  }
  
  vars = IViewNumVariables(w);
  if (set) {
    if (m == NIL) IViewSetIdentityTransformation(w);
    else {
      set_internal_transformation(vars, m, NIL);
      IViewSetTransformation(w, transform);
    }
    check_redraw(object, TRUE, TRUE);
  }
  else m = (IViewIsTransformed(w))
         ? make_transformation(IViewTransformation(w), vars) : NIL;
  
  return(m);
}
示例#2
0
LVAL iview_std_adjust_screen(V)
{
  IVIEW_WINDOW w;
  
  w = (IVIEW_WINDOW) get_iview_address(xlgaobject());
  IViewStdAdjustScreen(w);
  return(NIL);
}
示例#3
0
LVAL iview_std_adjust_screen_point(V)
{
  LVAL object;
  int point;

  object = xlgaobject();
  point = getfixnum(xlgafixnum());
  xllastarg();

  IViewStdAdjustScreenPoint((IVIEW_WINDOW) get_iview_address(object), point);
  return(NIL);
}
LVAL iview_scaled_range()
{
  LVAL object = xlgaobject(), result;
  int set = (xlargc  > 1) ? TRUE : FALSE, draw;

  wind = get_iview_address(object);
  draw = draw_key_arg(TRUE);
  range_type = 'S';
  result = range();
  if (set) check_redraw(object, draw, FALSE);
  return(result);
}
示例#5
0
LVAL iview_std_mark_points_in_rect(V)
{
  IVIEW_WINDOW w;
  int left, top, width, height;

  w = (IVIEW_WINDOW) get_iview_address(xlgaobject());
  left = getfixnum(xlgafixnum());
  top = getfixnum(xlgafixnum());
  width = getfixnum(xlgafixnum());
  height = getfixnum(xlgafixnum());
  xllastarg();
  
  IViewStdMarkPointsInRect(w, left, top, width, height);
  return(NIL);
}
示例#6
0
LVAL iview_std_adjust_points_in_rect(V)
{
  IVIEW_WINDOW w;
  int left, top, width, height;
  PointState state;
  
  w = (IVIEW_WINDOW) get_iview_address(xlgaobject());
  left = getfixnum(xlgafixnum());
  top = getfixnum(xlgafixnum());
  width = getfixnum(xlgafixnum());
  height = getfixnum(xlgafixnum());
  state = decode_point_state(xlgetarg());
  xllastarg();
  
  IViewStdAdjustPointsInRect(w, left, top, width, height, state);
  return(NIL);
}
示例#7
0
LVAL iview_rotate_2(V)
{
  IVIEW_WINDOW w;
  int var1, var2;
  double alpha;
  LVAL object;
  
  object = xlgaobject();
  w = (IVIEW_WINDOW) get_iview_address(object);
  var1 = getfixnum(xlgafixnum());
  var2 = getfixnum(xlgafixnum());
  alpha = makefloat(xlgetarg());
  
  IViewRotate2(w, var1, var2, alpha);
  check_redraw(object, TRUE, TRUE);
  
  return(NIL);
}
示例#8
0
LVAL iview_apply_transformation(V)
{
  IVIEW_WINDOW w;
  LVAL m, b, object;
  int vars;

  object = xlgaobject();
  w = (IVIEW_WINDOW) get_iview_address(object);
  m = xlgamatrix();
  if (! xlgetkeyarg(sk_basis, &b)) b = NIL;

  vars = IViewNumVariables(w);
  set_internal_transformation(vars, m, b);
  IViewApplyTransformation(w, transform, inbasis);
  check_redraw(object, TRUE, TRUE);
  
  return(NIL);
}
示例#9
0
LVAL iview_range(V)
{
  LVAL object = xlgaobject(), result, *oldargv = NULL;
  int set = (xlargc  > 1) ? TRUE : FALSE, draw, oldargc = 0;

  wind = (IVIEW_WINDOW) get_iview_address(object);
  draw = draw_key_arg(TRUE);
  range_type = 'N';
  if (set) {
    oldargc = xlargc;
    oldargv = xlargv;
  }
  result = range();
  if (set) {
    xlargc = oldargc - 3;
    xlargv = oldargv + 3;
    check_redraw(object, draw, FALSE);
  }
  return(result);
}
示例#10
0
static LVAL draw_data P1C(int, which)
{
  IVIEW_WINDOW w;
  int var1, var2, m, n;
  
  w = (IVIEW_WINDOW) get_iview_address(xlgaobject());
  var1 = getfixnum(xlgafixnum());
  var2 = getfixnum(xlgafixnum());
  m = getfixnum(xlgafixnum());
  n = getfixnum(xlgafixnum());
  xllastarg();
  
  switch(which) {
  case 'P': IViewDrawDataPoints(w, var1, var2, m, n); break;
  case 'L': IViewDrawDataLines(w, var1, var2, m, n); break;
#ifdef USESTRINGS
  case 'S': IViewDrawDataStrings(w, var1, var2, m, n); break;
#endif /* USESTRINGS */
  }
  return(NIL);
}
示例#11
0
LVAL iview_variable_label(V)
{
  wind = (IVIEW_WINDOW) get_iview_address(xlgaobject());
  return(variable_label());
}
示例#12
0
LVAL iview_screen_range(V)
{
  wind = (IVIEW_WINDOW) get_iview_address(xlgaobject());
  return(screen_range());
}
LVAL iview_variable_label()
{
  wind = get_iview_address(xlgaobject());
  return(variable_label());
}
LVAL iview_screen_range()
{
  wind = get_iview_address(xlgaobject());
  return(screen_range());
}