static Viewer * mk_new_viewer(QSP_ARG_DECL int viewer_type) { const char *s; char name[256]; int dx,dy; Viewer *vp; s=NAMEOF("viewer name"); strcpy(name,s); dx=(int)HOW_MANY("width"); dy=(int)HOW_MANY("height"); if( viewer_name_in_use(QSP_ARG name) ) return NO_VIEWER; if( dx <= 0 || dy <= 0 ){ WARN("viewer sizes must be positive"); return NO_VIEWER; } vp = viewer_init(QSP_ARG name,dx,dy,viewer_type); if( vp == NO_VIEWER ) return NO_VIEWER; #ifdef HAVE_X11 default_cmap(QSP_ARG VW_DPYABLE(vp) ); #endif /* HAVE_X11 */ #ifndef BUILD_FOR_IOS /* default state is to be shown, * but in IOS we can only see one at a time, so * we leave them on the bottom until we ask. */ show_viewer(QSP_ARG vp); #endif /* ! BUILD_FOR_IOS */ select_viewer(QSP_ARG vp); return vp; }
static COMMAND_FUNC( do_default_cmap ) { CHECK_DPYP("do_default_cmap") #ifdef HAVE_X11 default_cmap(current_dpyp); #endif }
static void x_play_movie(QSP_ARG_DECL Movie *mvip) { Data_Obj *dp; Viewer *vp; dp = (Data_Obj *)mvip->mvi_data; /* longlist(dp); */ vp = vwr_of(QSP_ARG MOVIE_VIEWER_NAME); mk_win: if( vp == NO_VIEWER ){ vp = viewer_init(QSP_ARG MOVIE_VIEWER_NAME,OBJ_COLS(dp),OBJ_ROWS(dp),0); if( vp == NO_VIEWER ){ WARN("couldn't create viewer"); return; } default_cmap(QSP_ARG VW_DPYABLE(vp) ); show_viewer(QSP_ARG vp); /* default state is to be shown */ select_viewer(QSP_ARG vp); } else { if( vp->vw_width != OBJ_COLS(dp) || vp->vw_height != OBJ_ROWS(dp) ){ sprintf(ERROR_STRING, "Resizing movie viewer for movie %s", OBJ_NAME(dp)); advise(ERROR_STRING); delete_viewer(QSP_ARG vp); vp=NO_VIEWER; goto mk_win; } } /* load_viewer got rewritten, no longer show all frames!? */ old_load_viewer(QSP_ARG vp,dp); }