PgColor t colors[5] = {Pg BLACK, Pg YELLOW,
Pg MAGENTA, Pg CYAN,
Pg DGREEN};
int base clr = -1;
extern int win ctr;
extern PtWidget t *win[5];
int
color change( PtWidget t *widget, ApInfo t *apinfo,
PtCallbackInfo t *cbinfo )
{
int i, prev;
PtWidget t *this window;
widget = widget, apinfo = apinfo, cbinfo = cbinfo;
/* Get a pointer to the current window. */
this window = ApGetInstance( widget );
if ( ApName( widget ) == ABN btn red ) {
PtSetResource(
ApGetWidgetPtr( this window, ABN color rect ),
Pt ARG FILL COLOR, Pg RED, 0 );
} else if ( ApName( widget ) == ABN btn green ) {
PtSetResource(
ApGetWidgetPtr( this window, ABN color rect ),
Pt ARG FILL COLOR, Pg GREEN, 0 );
} else if ( ApName( widget ) == ABN btn blue ) {
PtSetResource(
ApGetWidgetPtr( this window, ABN color rect ),
Pt ARG FILL COLOR, Pg BLUE, 0 );
} else if ( ApName( widget ) == ABN btn prev ) {
prev = -1;
for ( i = 0; i < win ctr; i++ ) {
if ( win[i] == this window ) {
prev = i - 1;
break;
}
}
/* If the window still exists, update its background
color */
if ( prev != -1 && win[prev] ) {
base clr++;
if (base clr >= 5) {
base clr = 0;
}
PtSetResource( win[prev], Pt ARG FILL COLOR,
colors[base clr], 0 );
}
}
return( Pt CONTINUE );
}





Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.