diff -rBu xforms-1.2.4/demos/flclock.c xforms-1.2.4-new/demos/flclock.c --- xforms-1.2.4/demos/flclock.c 2013-12-10 11:58:03.000000000 -0500 +++ xforms-1.2.4-new/demos/flclock.c 2017-08-14 18:02:30.743048348 -0400 @@ -62,12 +62,16 @@ fl_set_object_color( obj, FL_COL1,FL_BLACK ); fl_set_object_lsize( obj, FL_MEDIUM_SIZE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); + fl_set_clock_ampm( obj, 1); + fl_set_clock_hide_seconds( obj, 0); obj = fl_add_clock( FL_ANALOG_CLOCK, 30, 70, 220, 200, "" ); fl_set_object_boxtype( obj, FL_UP_BOX ); obj = fl_add_clock( FL_ANALOG_CLOCK, 260, 70, 220, 200, "" ); fl_set_object_boxtype( obj, FL_OVAL3D_UPBOX ); + fl_set_clock_ampm( obj, 1); + fl_set_clock_hide_seconds( obj, 1); obj = fl_add_button( FL_NORMAL_BUTTON, 375, 300, 110, 35, "Exit" ); fl_set_object_callback( obj, exit_cb, 0 ); diff -rBu xforms-1.2.4/lib/clock.c xforms-1.2.4-new/lib/clock.c --- xforms-1.2.4/lib/clock.c 2014-06-28 16:34:29.000000000 -0400 +++ xforms-1.2.4-new/lib/clock.c 2017-08-14 18:01:18.484069270 -0400 @@ -44,6 +44,7 @@ long offset; int nstep; int am_pm; /* 12hr clock */ + int hide_seconds; } SPEC; @@ -129,7 +130,8 @@ FL_Coord w, FL_Coord h, FL_COLOR fcolor, - FL_COLOR bcolor ) + FL_COLOR bcolor, + int hide_seconds ) { double ra; double fact = - M_PI / 180.0; @@ -140,8 +142,10 @@ ra = fact * ( 180 + 6 * minutes + seconds / 10 ); draw_hand( x, y, w, h, minhand, ra, fcolor, bcolor ); - ra = fact * ( 180 + 6 * seconds ); - draw_hand( x, y, w, h, sechand, ra, fcolor, bcolor ); + if ( !hide_seconds ) { + ra = fact * ( 180 + 6 * seconds ); + draw_hand( x, y, w, h, sechand, ra, fcolor, bcolor ); + } } @@ -149,7 +153,7 @@ ***************************************/ static void -draw_clock( int type FL_UNUSED_ARG, +draw_clock( int type, FL_Coord x, FL_Coord y, FL_Coord w, @@ -187,8 +191,8 @@ } show_hands( x + 2 + 0.02 * w, y + 2 + 0.02 * h, - w, h, FL_RIGHT_BCOL, FL_RIGHT_BCOL ); - show_hands( x, y, w, h, col2, FL_LEFT_BCOL ); + w, h, FL_RIGHT_BCOL, FL_RIGHT_BCOL, type ); + show_hands( x, y, w, h, col2, FL_LEFT_BCOL, type ); } @@ -201,11 +205,18 @@ char buf[ 12 ]; SPEC *sp = ob->spec; - if ( sp->am_pm ) - sprintf( buf, "%d:%02d:%02d %s", hours > 12 ? hours - 12 : hours, - minutes, seconds, hours > 12 ? "pm" : "am" ); + if ( !sp->hide_seconds) + if ( sp->am_pm ) + sprintf( buf, "%d:%02d:%02d %s", hours > 12 ? hours - 12 : hours, + minutes, seconds, hours > 12 ? "pm" : "am" ); + else + sprintf( buf, "%d:%02d:%02d", hours, minutes, seconds ); else - sprintf( buf, "%d:%02d:%02d", hours, minutes, seconds ); + if ( sp->am_pm ) + sprintf( buf, "%d:%02d %s", hours > 12 ? hours - 12 : hours, + minutes, hours > 12 ? "pm" : "am" ); + else + sprintf( buf, "%d:%02d", hours, minutes ); fl_draw_text( FL_ALIGN_CENTER, ob->x, ob->y, ob->w, ob->h, ob->col2, ob->lstyle, ob->lsize, buf ); @@ -240,7 +251,7 @@ if ( ob->type == FL_DIGITAL_CLOCK ) draw_digitalclock( ob ); else - draw_clock( ob->type, ob->x, ob->y, ob->w, ob->h, + draw_clock( sp->hide_seconds, ob->x, ob->y, ob->w, ob->h, ob->col1, ob->col2 ); /* fall through */ @@ -384,6 +395,23 @@ fl_redraw_object( ob ); } } + + +/*************************************** + ***************************************/ + +void +fl_set_clock_hide_seconds( FL_OBJECT * ob, + int hide ) +{ + SPEC *sp = ob->spec; + + if ( sp->hide_seconds != hide ) + { + sp->hide_seconds = hide; + fl_redraw_object( ob ); + } +} /* diff -rBu xforms-1.2.4/lib/include/clock.h xforms-1.2.4-new/lib/include/clock.h --- xforms-1.2.4/lib/include/clock.h 2014-06-28 16:34:29.000000000 -0400 +++ xforms-1.2.4-new/lib/include/clock.h 2017-08-14 18:06:36.081789358 -0400 @@ -62,4 +62,7 @@ FL_EXPORT void fl_set_clock_ampm( FL_OBJECT * ob, int y ); +FL_EXPORT void fl_set_clock_hide_seconds( FL_OBJECT * ob, + int y ); + #endif /* ! defined FL_CLOCK_H */