Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
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);
}