$NetBSD: patch-bc,v 1.4 2022/04/24 10:57:28 tnn Exp $ Handle always-on-top. Fix LP64 problems. --- tvmenu.c.orig 2001-02-12 21:19:33.000000000 +0000 +++ tvmenu.c @@ -103,7 +103,7 @@ typedef void XT_CB( Widget w, XtPointer /* ******************** Forward declarations ************** */ -static XT_CB QuitCB, FreezeCB, MuteCB, ZoomCB, InputCB, AfcCB, TModeCB, +static XT_CB QuitCB, FreezeCB, MuteCB, ZoomCB, InputCB, AfcCB, AotCB, TModeCB, ChanUpDnCB, AppearCB, AspectCB, AboutCB, ImgSavCB, ImgSavAsCB, AudSavAsCB, VidSavAsCB, FormatCB, AudInpCB, StationPopupCB; @@ -160,6 +160,7 @@ static TV_MENUITEM_DEF Menuitem_def[] = { TVMI( FORMAT,FORMAT_PALNCOMB ), "palncombFmt" , WC_mcmd , FormatCB }, { TVMI( OPTIONS,OPTIONS_ASPECT ), "aspectLockCmd" , WC_mcmd , AspectCB }, { TVMI( OPTIONS,OPTIONS_AFC ), "setAfcCmd", WC_mcmd , AfcCB }, + { TVMI( OPTIONS,OPTIONS_AOT ), "setAotCmd", WC_mcmd , AotCB }, { TV_MENU_OPTIONS, -1 , "line" , WC_mline, NULL }, /* { TVMI( OPTIONS,OPTIONS_SAVE ), "saveOptionsCmd", WC_mcmd , NULL }, @@ -396,6 +397,16 @@ static void AfcCB( Widget w, XtPointer c TVMENUSetSelectedAfcMode( p->afc_mode ); } +/* AotCB - Change the always on top mode */ +static void AotCB( Widget w, XtPointer cl, XtPointer cb ) +{ + TV_PREFS *p = &G_glob.prefs; + + p->aot_mode = !p->aot_mode; + XUTILSetAlwaysOnTop( p->aot_mode ); + TVMENUSetSelectedAotMode( p->aot_mode ); +} + void TVMENUSetSelectedInputFormat( TV_INPUT_FORMAT fmt ) { TV_MENUITEM_DEF *mi; @@ -896,7 +907,7 @@ void TVTOOLSSetToggleState( TV_TOOLITEM_ break; if ( i >= XtNumber( Toolitem_def ) ) { - fprintf( stderr, "TVTOOLSETSetToggleState: Bad key %ld\n", i ); + fprintf( stderr, "TVTOOLSETSetToggleState: Bad key %d\n", i ); exit(1); } @@ -1008,6 +1019,19 @@ void TVMENUSetSelectedAfcMode( TV_BOOL a NULL); } +void TVMENUSetSelectedAotMode( TV_BOOL aot ) +{ + TV_MENUITEM_DEF *item = LookupMenuItemByKey( TV_MENUITEM_OPTIONS_AOT ); + Pixmap pix; + + if ( Select_pixmap == None ) + TVMENULoadRadioPixmaps(); + + pix = aot ? Select_pixmap : Unselect_pixmap; + XtVaSetValues( item->wgt , XtNleftBitmap, pix, + NULL); +} + void TVMENUSetSelectedAspectLock( TV_BOOL aspect_lock ) { TV_MENUITEM_DEF *item = LookupMenuItemByKey( TV_MENUITEM_OPTIONS_ASPECT ); @@ -1043,6 +1067,7 @@ void TVMENUResync() TVMENUSetSelectedAudioInputDevice( aud_input ); TVMENUSetSelectedTunerMode ( p->tuner_mode ); TVMENUSetSelectedAfcMode ( p->afc_mode ); + TVMENUSetSelectedAotMode ( p->aot_mode ); } /* TVTOOLSSetStationText - Sets the channel text to the specified */ @@ -1134,7 +1159,7 @@ void TVTOOLSResync() strncat( chan_str, station->id, sizeof(chan_str)-1 ); } else if ( s.tuner_chan_active ) - sprintf( chan_str, "%ld", s.tuner_chan ); + sprintf( chan_str, "%d", s.tuner_chan ); else sprintf( chan_str, "f%.2f", s.tuner_freq );