/* 画面サイズ */

#define Scr_width 640
#define Scr_height 480


/* obj_t型変数の変数の定義（オブジェクトデータを格納） */

struct obj_t_ {
  struct obj_t_ *prev;
  struct obj_t_ *next;
  int length;
  XPoint *data;
};

typedef struct obj_t_ obj_t;

/* page_t型変数の定義（ページデータを格納）*/

struct page_t_ {
  struct page_t_ *prev;
  struct page_t_ *next;
  struct obj_t_ data_head;
};

typedef struct page_t_ page_t;

/* option_t型変数の定義（環境設定を格納）*/

typedef struct {
  int color;         /* カラーディスプレイ使用？ */
  int see_prev;      /* 前ページ表示？           */
  int see_next;      /* 次ページ表示？           */
  int fps;           /* フレーム／秒             */
  int play_only;     /* 再生のみか？             */
  int page;          /* 現在ののページナンバー   */
  int page_max;      /* 最終ページナンバー       */
  int changed;       /* 更新フラグ               */
  char *file;        /* セーブファイル名         */
} option_t;



extern Display *Disp;
extern Window Scr_w;
extern Pixmap Scr_p;
extern GC Gc,Gc_fg,Gc_bg,Gc_prev,Gc_next,Gc_xor;

extern page_t Head_page;
extern page_t *Cur_page;
extern option_t Option;


/* main.c */

void number_page(void );
void set_fps( void );
void error( char *msg, ... );

/* draw.c */

void draw_obj( obj_t *data );
void draw_page( page_t *data );
void clear_scr( void );
void flush_scr( void );


/* edit.c */

void clrear_page( void );
void draw_xor( int x, int y );
void del_xor( void );
void set_point( int x, int y );
void next_point( int x, int y );
int  prev_point( void );
void cut_point( void );
void del_obj( void );
void change_page( void );
void del_page( void );
void ins_page( void );
void add_page( void );
void prev_page( void );
void next_page( void );

