#include #include /* 色選択関数 */ unsigned long mycolor(Display *display, char *color){ Colormap cmap; XColor c0,c1; cmap = DefaultColormap(display,0); XAllocNamedColor(display,cmap,color,&c1,&c0); return c1.pixel; } int main(int argc, char *argv[]){ Display *display; Window window; Window pen_window[5]; Window color_window[5]; GC gc; char title[] = "Paint"; char icon_title[] = "Paint"; unsigned long background; unsigned long foreground; int button_size=40; char *colors[]={ "rgb:00/00/00", "rgb:ff/00/00", "rgb:00/ff/00", "rgb:00/00/ff", "rgb:ff/ff/00", }; int current_pen=2; unsigned long current_color=0; int x0, y0, x1, y1; int i; display = XOpenDisplay(NULL); background = WhitePixel(display, 0); foreground = BlackPixel(display, 0); window = XCreateSimpleWindow(display, DefaultRootWindow(display), 0, 0, 500, 400, 0, 0, background); XSetStandardProperties(display, window, title, icon_title, None, argv, argc, NULL); /* GC を生成し、各種設定を行う */ gc = XCreateGC(display, window, 0, 0); XSetBackground(display, gc, background); XSetForeground(display, gc, current_color); XSetLineAttributes(display, gc, current_pen, LineSolid, CapRound, JoinMiter); /* メインウィンドウのイベントマスクを設定 */ XSelectInput(display, window, ExposureMask | ButtonPressMask | ButtonMotionMask); /* ペンサイズ・色選択ウィンドウを作成 */ for ( i=0 ; i