next up previous
Next: 3.1 ヘッダファイルへの登録 Up: ソフトウェア第三 講義資料 Lisp, リスト処理,集合 Previous: 2 Xlispの組込み関数の追加法

3 例題:Xwindow操作機能の追加

Xlispにグラフィック機能を追加する 方法としてXwindowの基本関数を用いた 例を示す.

Window win;
Display *display;
GC grac;
XImage *ximage;
int curx, cury;

LVAL xinitgraph()
{
  int screen;

  xllastarg();
  if (!opened) 
    {
      display = XOpenDisplay(0);
      screen = XDefaultScreen(display);
      win = XCreateSimpleWindow(display,
              XRootWindow(display,screen),
              0, 0, 640, 400, 0,
              XBlackPixel(display, screen),
              XWhitePixel(display, screen));
      printf("after XCreateSimpleWindow\n");
      grac = XDefaultGC(display, screen);
      XSetForeground(display,
         grac, XBlackPixel(display, screen));
      XMapWindow(display, win);
      XFlush(display);
      opened = 1;
    }
  return( true );
}
LVAL xclosegraph()
{
  xllastarg();
  if (opened) 
    {
      opened=0;
      XFreeGC(display, grac);
      XCloseDisplay(display);
      return(true);
    }
  else return(NIL);    
}




generated through LaTeX2HTML. M.Inaba 平成18年5月7日