int d_aphoton_check_proc(int msg, DIALOG *d, int c) { if (msg == MSG_DRAW) { draw_base(screen, d); photon_container(screen, d->x+3, d->y+d->h/2-7, 14, 14); rectfillwh(screen, d->x+5, d->y+d->h/2-5, 10, 10, white); if (d->flags & D_SELECTED) { /* shadow */ line(screen, d->x+6, d->y+d->h/2-3, d->x+12, d->y+d->h/2+3, check_gray1); line(screen, d->x+7, d->y+d->h/2-4, d->x+13, d->y+d->h/2+2, check_gray1); line(screen, d->x+6, d->y+d->h/2+2, d->x+12, d->y+d->h/2-4, check_gray1); line(screen, d->x+7, d->y+d->h/2+3, d->x+13, d->y+d->h/2-3, check_gray1); /* cross */ line(screen, d->x+6, d->y+d->h/2-4, d->x+13, d->y+d->h/2+3, check_black); line(screen, d->x+6, d->y+d->h/2+3, d->x+13, d->y+d->h/2-4, check_black); } else { rect(screen, d->x+6, d->y+d->h/2-4, d->x+13, d->y+d->h/2+3, check_gray2); } if (d->dp) photon_textout(screen, (char *)d->dp, d->x+20, d->y+d->h/2-text_height(font)/2, d->flags, FALSE); return D_O_K; } return d_button_proc(msg, d, c); }
static void gtk_box(BITMAP *bmp, int x, int y, int w, int h, int state, int border) { if (border) { rect(bmp, x, y, x+w-1, y+h-1, black); x++, y++, w -= 2, h -= 2; } switch (state) { case 0: /* normal */ rectfillwh(bmp, x+1, y+1, w-1, h-1, normal); break; case 1: /* highlight */ rectfillwh(bmp, x+1, y+1, w-1, h-1, highlight); break; case 2: /* pressed */ rectfillwh(bmp, x+2, y+2, w-2, h-2, pressed); break; } gtk_bevel(bmp, x, y, w, h, state); }
int d_aphoton_slider_proc(int msg, DIALOG *d, int c) { if (msg == MSG_DRAW) { int vert = TRUE; /* flag: is slider vertical? */ int slp; /* slider position */ int irange, inmark, ismark, i; fixed slratio, slmax, slpos; /* check for slider direction */ if (d->h < d->w) vert = FALSE; irange = (vert ? d->h-2 : d->w-2); inmark = irange/MSPACE; ismark = irange/inmark; slmax = itofix(irange - HHEIGHT); slratio = slmax / (d->d1); slpos = slratio * d->d2; slp = 1+fixtoi(slpos); rectfillwh(screen, d->x, d->y, d->w, d->h, normal); if (vert) { vline(screen, d->x+d->w/2-3, d->y+1, d->y+d->h-2, check_gray2); vline(screen, d->x+d->w/2-2, d->y+1, d->y+d->h-2, slider_gray2); vline(screen, d->x+d->w/2-1, d->y+1, d->y+d->h-2, slider_gray1); vline(screen, d->x+d->w/2+0, d->y+1, d->y+d->h-2, container_black); vline(screen, d->x+d->w/2+1, d->y+1, d->y+d->h-2, slider_white1); hline(screen, d->x+d->w/2-1, d->y, d->x+d->w/2+0, slider_gray2); hline(screen, d->x+d->w/2-1, d->y+d->h-1, d->x+d->w/2+0, slider_gray2); /* marks */ for (i=0; i<inmark; i++) photon_slider_mark(screen, d->x+d->w-3, d->y+1 + i*ismark); photon_slider_mark(screen, d->x+d->w-3, d->y+d->h-2); photon_slider_cursor(screen, d->x, d->y+d->h-slp-HHEIGHT, d->w, HHEIGHT, TRUE); } else { /* support */ hline(screen, d->x+1, d->y+d->h/2-3, d->x+d->w-2, check_gray2); hline(screen, d->x+1, d->y+d->h/2-2, d->x+d->w-2, slider_gray2); hline(screen, d->x+1, d->y+d->h/2-1, d->x+d->w-2, slider_gray1); hline(screen, d->x+1, d->y+d->h/2+0, d->x+d->w-2, container_black); hline(screen, d->x+1, d->y+d->h/2+1, d->x+d->w-2, slider_white1); vline(screen, d->x, d->y+d->h/2-1, d->y+d->h/2+0, slider_gray2); vline(screen, d->x+d->w-1, d->y+d->h/2-1, d->y+d->h/2+0, slider_gray2); /* marks */ for (i=0; i<inmark; i++) photon_slider_mark(screen, d->x+1 + i*ismark, d->y+d->h-3); photon_slider_mark(screen, d->x+d->w-2, d->y+d->h-3); photon_slider_cursor(screen, d->x+slp, d->y, HHEIGHT, d->h, FALSE); } return D_O_K; } return d_slider_proc(msg, d, c); }