Пример #1
0
  public Thing handlecmd(Interp ip, Object target, String subcmd, Thing[] argv, int startat)
      throws HeclException {
    HeclCanvas c = (HeclCanvas) target;

    if (subcmd.equals(WidgetInfo.NREPAINT)) {
      c.repaint();
      return null;
    }
    if (subcmd.equals("servicerepaints")) {
      c.serviceRepaints();
      return null;
    }
    if (subcmd.equals("flush")) {
      if (argv.length == startat) {
        // Simple case, flush whole buffer
        c.flushGraphics();
        return null;
      }

      // x, y, w, h
      if (startat + 4 != argv.length)
        throw HeclException.createWrongNumArgsException(argv, startat, "x y w h");

      c.flushGraphics(
          IntThing.get(argv[startat]),
          IntThing.get(argv[startat + 1]),
          IntThing.get(argv[startat + 2]),
          IntThing.get(argv[startat + 3]));
      return null;
    }
    if (subcmd.equals("graphics")) return ObjectThing.create(c.getDrawable());
    return super.handlecmd(ip, target, subcmd, argv, startat);
  }