Doxygen Source Code Documentation
afni_driver.c File Reference
#include "afni.h"#include <X11/keysym.h>#include "coxplot.h"Go to the source code of this file.
Typedef Documentation
|
|
Definition at line 67 of file afni_driver.c. |
Function Documentation
|
|
|
DEFINE_COLORSCALE name num=color num=color ... Definition at line 2075 of file afni_driver.c. References PBAR_define_bigmap().
02076 {
02077 return PBAR_define_bigmap( cmd ) ;
02078 }
|
|
|
ADD_OVERLAY_COLOR colordef colorlab -- 16 Jan 2003 -------------------------------------------------------------------------- Definition at line 1478 of file afni_driver.c. References AFNI_library_type::dc, DC_add_overlay_color(), ENTRY, GLOBAL_library, INIT_ncolovr, MAX_NCOLOVR, MCW_DC::ovc, OVC_mostest(), and RETURN.
01479 {
01480 char cdef[256]="\0" , clab[256]="\0" ;
01481 int ii ;
01482
01483 ENTRY("AFNI_drive_add_overlay_color") ;
01484
01485 sscanf( cmd , "%255s %255s" , cdef,clab ) ;
01486 if( cdef[0] == '\0' || clab[0] == '\0' ) RETURN(-1) ;
01487
01488 if( GLOBAL_library.dc == NULL ){ /* before X11 started */
01489 if( INIT_ncolovr < MAX_NCOLOVR ){
01490 ii = INIT_ncolovr++ ;
01491 INIT_labovr[ii] = XtNewString(cdef) ;
01492 INIT_colovr[ii] = XtNewString(clab) ;
01493 } else
01494 RETURN(-1) ;
01495 } else { /* after X11 started */
01496 ii = DC_add_overlay_color( GLOBAL_library.dc , cdef , clab ) ;
01497 if( ii < 0 ) RETURN(-1) ;
01498 OVC_mostest( GLOBAL_library.dc->ovc ) ;
01499 }
01500 RETURN(0) ;
01501 }
|
|
|
Definition at line 1417 of file afni_driver.c. References breakup_string(), calloc, ENTRY, find_graph_xy_name(), free, freeup_strings(), malloc, Graph_xy::mp, Graph_xy::ny, plot_strip_addto(), RETURN, strtod(), and tt.
01418 {
01419 int ig, ntok, nx, ny, ii,jj, tt, num_pt, ibot, nadd ;
01420 char **stok = NULL ;
01421 Graph_xy *gxy ;
01422 float **y ;
01423
01424 ENTRY("AFNI_drive_addto_graph_1D") ;
01425
01426 /* tokenize the command string */
01427
01428 ntok = breakup_string( cmd , &stok ) ;
01429 if( ntok <= 0 || stok == NULL ) RETURN(-1) ;
01430
01431 /* check if this graph name is already in use */
01432
01433 ig = find_graph_xy_name( stok[0] ) ;
01434 if( ig < 0 || Graph_xy_list[ig]->mp == NULL ){
01435 freeup_strings(ntok,stok) ; RETURN(-1) ;
01436 }
01437 gxy = Graph_xy_list[ig] ;
01438
01439 /* number of sub-graphs */
01440
01441 ny = gxy->ny ;
01442
01443 /* number of points to add to each sub-graph */
01444
01445 nadd = (ntok-1)/ny ;
01446 if( nadd < 1 ){ freeup_strings(ntok,stok); RETURN(-1); }
01447
01448 /* make space for incoming data */
01449
01450 y = (float **) malloc( sizeof(float *)*ny ) ;
01451 for( jj=0 ; jj < ny ; jj++ )
01452 y[jj] = (float *) calloc(nadd,sizeof(float)) ;
01453
01454 /* convert incoming tokens to numbers */
01455
01456 tt = 1 ; /* token index */
01457 for( ii=0 ; ii < nadd ; ii++ ){
01458 for( jj=0 ; jj < ny ; jj++ )
01459 y[jj][ii] = strtod( stok[tt++] , NULL ) ;
01460 }
01461
01462 /***** graphing! *****/
01463
01464 plot_strip_addto( gxy->mp , nadd , y ) ;
01465
01466 /* cleanup */
01467
01468 for( jj=0 ; jj < ny ; jj++ ) free(y[jj]) ;
01469 free(y) ; freeup_strings(ntok,stok) ;
01470
01471 RETURN(0) ;
01472 }
|
|
|
Definition at line 1188 of file afni_driver.c. References breakup_string(), calloc, ENTRY, find_graph_xy_name(), free, freeup_strings(), Graph_xy::last_x, Graph_xy::last_y, malloc, Graph_xy::mp, Graph_xy::num_pt, Graph_xy::ny, plot_ts_addto(), RETURN, strtod(), and tt.
01189 {
01190 int ig , ntok , nx , ny , ii,jj , tt , num_pt , ibot ;
01191 char **stok = NULL ;
01192 Graph_xy *gxy ;
01193 float *x , **y ;
01194
01195 ENTRY("AFNI_drive_addto_graph_xy") ;
01196
01197 /* tokenize the command string */
01198
01199 ntok = breakup_string( cmd , &stok ) ;
01200 if( ntok <= 0 || stok == NULL ) RETURN(-1) ;
01201
01202 /* check if this graph name is already in use */
01203
01204 ig = find_graph_xy_name( stok[0] ) ;
01205 if( ig < 0 || Graph_xy_list[ig]->mp == NULL ){
01206 freeup_strings(ntok,stok) ; RETURN(-1) ;
01207 }
01208 gxy = Graph_xy_list[ig] ;
01209
01210 /* number of sub-graphs */
01211
01212 ny = gxy->ny ;
01213
01214 /* number of points to add to each sub-graph */
01215
01216 nx = (ntok-1)/(ny+1) ;
01217 if( nx < 1 ){ freeup_strings(ntok,stok); RETURN(-1); }
01218
01219 /* attach to last_x and last_y? */
01220
01221 num_pt = gxy->num_pt ;
01222 if( num_pt > 0 ) nx++ ; /* need 1 extra place for last_x and last_y */
01223
01224 x = (float *) calloc(nx,sizeof(float)) ;
01225 y = (float **) malloc( sizeof(float *)*ny ) ;
01226 for( jj=0 ; jj < ny ; jj++ )
01227 y[jj] = (float *) calloc(nx,sizeof(float)) ;
01228
01229 /* put last_x and last_y into graphing data, if needed */
01230
01231 if( num_pt > 0 ){
01232 x[0] = gxy->last_x ;
01233 for( jj=0 ; jj < ny ; jj++ ) y[jj][0] = gxy->last_y[jj] ;
01234 ibot = 1 ;
01235 } else {
01236 ibot = 0 ;
01237 }
01238
01239 /* parse tokens into numbers for graphing */
01240
01241 tt = 1 ; /* token index */
01242 for( ii=ibot ; ii < nx ; ii++ ){
01243 x[ii] = strtod( stok[tt++] , NULL ) ;
01244 for( jj=0 ; jj < ny ; jj++ )
01245 y[jj][ii] = strtod( stok[tt++] , NULL ) ;
01246 }
01247
01248 /* save new last_x and last_y */
01249
01250 gxy->last_x = x[nx-1] ;
01251 for( jj=0 ; jj < ny ; jj++ ) gxy->last_y[jj] = y[jj][nx-1] ;
01252
01253 /**** graphing! ****/
01254
01255 plot_ts_addto( gxy->mp , nx , x , -ny , y ) ;
01256
01257 /* cleanup */
01258
01259 gxy->num_pt += nx ; /* number of points in each sub-graph so far */
01260
01261 for( jj=0 ; jj < ny ; jj++ ) free(y[jj]) ;
01262 free(y) ; free(x) ; freeup_strings(ntok,stok) ;
01263
01264 RETURN(0) ;
01265 }
|
|
|
Change working directory. Definition at line 247 of file afni_driver.c.
00248 {
00249 return chdir( cmd ) ;
00250 }
|
|
|
Definition at line 1388 of file afni_driver.c. References breakup_string(), ENTRY, find_graph_xy_name(), freeup_strings(), mp, Graph_xy::mp, plot_strip_clear(), and RETURN.
01389 {
01390 int ig , ntok , ii ;
01391 char **stok = NULL ;
01392
01393 ENTRY("AFNI_drive_clear_graph_1D") ;
01394
01395 /* tokenize the command string */
01396
01397 ntok = breakup_string( cmd , &stok ) ;
01398 if( ntok <= 0 || stok == NULL ) RETURN(-1) ;
01399
01400 /* check if this graph name is already in use */
01401
01402 ig = find_graph_xy_name( stok[0] ) ;
01403 freeup_strings(ntok,stok) ;
01404 if( ig < 0 || Graph_xy_list[ig]->mp == NULL ) RETURN(-1) ;
01405
01406 /* do the clearance work */
01407
01408 plot_strip_clear( Graph_xy_list[ig]->mp ) ; /* coxplot/plot_strip.c */
01409
01410 RETURN(0) ;
01411 }
|
|
|
Definition at line 1154 of file afni_driver.c. References breakup_string(), ENTRY, find_graph_xy_name(), freeup_strings(), MEM_topshell_data::mp, mp, Graph_xy::mp, Graph_xy::num_mpinit, Graph_xy::num_pt, redraw_topshell(), RETURN, and TRUNC_MEMPLOT.
01155 {
01156 int ig , ntok ;
01157 char **stok = NULL ;
01158
01159 ENTRY("AFNI_drive_clear_graph_xy") ;
01160
01161 /* tokenize the command string */
01162
01163 ntok = breakup_string( cmd , &stok ) ;
01164 if( ntok <= 0 || stok == NULL ) RETURN(-1) ;
01165
01166 /* check if this graph name is already in use */
01167
01168 ig = find_graph_xy_name( stok[0] ) ;
01169 freeup_strings(ntok,stok) ;
01170 if( ig < 0 || Graph_xy_list[ig]->mp == NULL ) RETURN(-1) ;
01171
01172 /* cut off the graph lines since the initial stuff */
01173
01174 TRUNC_MEMPLOT( Graph_xy_list[ig]->mp->mp ,
01175 Graph_xy_list[ig]->num_mpinit ) ;
01176
01177 /* show it again, Sam (but the data part will be gone) */
01178
01179 redraw_topshell( Graph_xy_list[ig]->mp ) ;
01180 Graph_xy_list[ig]->num_pt = 0 ; /* number of points plotted thus far */
01181 RETURN(0) ;
01182 }
|
|
|
Definition at line 1271 of file afni_driver.c. References AFNI_drive_close_graph_xy().
01272 {
01273 return AFNI_drive_close_graph_xy( cmd ) ;
01274 }
|
|
|
Definition at line 1128 of file afni_driver.c. References breakup_string(), ENTRY, find_graph_xy_name(), freeup_strings(), mp, Graph_xy::mp, plotkill_topshell(), and RETURN. Referenced by AFNI_drive_close_graph_1D().
01129 {
01130 int ig , ntok ;
01131 char **stok = NULL ;
01132
01133 ENTRY("AFNI_drive_close_graph_xy") ;
01134
01135 /* tokenize the command string */
01136
01137 ntok = breakup_string( cmd , &stok ) ;
01138 if( ntok <= 0 || stok == NULL ) RETURN(-1) ;
01139
01140 /* check if this graph name is already in use */
01141
01142 ig = find_graph_xy_name( stok[0] ) ;
01143 freeup_strings(ntok,stok) ;
01144 if( ig < 0 || Graph_xy_list[ig]->mp == NULL ) RETURN(-1) ;
01145
01146 plotkill_topshell( Graph_xy_list[ig]->mp ) ; /* will call kill_graph_xy */
01147 RETURN(0) ;
01148 }
|
|
|
Definition at line 730 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_count_controllers(), CLOSE_CONTROLLER, AFNI_library_type::controllers, drive_MCW_grapher(), drive_MCW_imseq(), ENTRY, Three_D_View::g123, Three_D_View::g231, Three_D_View::g312, GLOBAL_library, graDR_destroy, IM3D_OPEN, isqDR_destroy, RETURN, Three_D_View::s123, Three_D_View::s231, Three_D_View::s312, AFNI_widget_set::top_shell, and Three_D_View::vwid.
00731 {
00732 int ic ;
00733 Three_D_View *im3d ;
00734
00735 ENTRY("AFNI_drive_close_window") ;
00736
00737 /* make sure the controller itself is open */
00738
00739 ic = AFNI_controller_code_to_index( cmd ) ;
00740 if( ic < 0 ) ic = 0 ;
00741
00742 im3d = GLOBAL_library.controllers[ic] ;
00743 if( !IM3D_OPEN(im3d) ) RETURN(-1) ; /* that was easy */
00744
00745 if( strlen(cmd) < 3 ){ /* close the controller */
00746 if( AFNI_count_controllers() > 1 ){ /* but only if there is */
00747 CLOSE_CONTROLLER(im3d); RETURN(0); /* at least 1 more open */
00748 }
00749 RETURN(-1) ; /* can't close last controller */
00750 }
00751
00752 /* close a graph or image window */
00753
00754 if( strstr(cmd,"axialimage") != NULL )
00755 drive_MCW_imseq( im3d->s123 , isqDR_destroy , NULL ) ;
00756
00757 else if( strstr(cmd,"sagittalimage") != NULL )
00758 drive_MCW_imseq( im3d->s231 , isqDR_destroy , NULL ) ;
00759
00760 else if( strstr(cmd,"coronalimage") != NULL )
00761 drive_MCW_imseq( im3d->s312 , isqDR_destroy , NULL ) ;
00762
00763 else if( strstr(cmd,"axialgraph") != NULL )
00764 drive_MCW_grapher( im3d->g123 , graDR_destroy , NULL ) ;
00765
00766 else if( strstr(cmd,"sagittalgraph") != NULL )
00767 drive_MCW_grapher( im3d->g231 , graDR_destroy , NULL ) ;
00768
00769 else if( strstr(cmd,"coronalgraph") != NULL )
00770 drive_MCW_grapher( im3d->g312 , graDR_destroy , NULL ) ;
00771
00772 else
00773 RETURN(-1) ;
00774
00775 XmUpdateDisplay( im3d->vwid->top_shell ) ;
00776 RETURN(0) ;
00777 }
|
|
|
Definition at line 976 of file afni_driver.c. References AFNI_decode_geom(), breakup_string(), ENTRY, find_graph_xy_name(), freeup_strings(), Graph_xy::mp, RETURN, and MEM_topshell_data::top.
00977 {
00978 int ntok , ig ;
00979 char **stok=NULL ;
00980 char *gname , *cpt ;
00981 Graph_xy *gxy ;
00982 int gww=-1,ghh=-1,gxx=-1,gyy=-1 ;
00983
00984 ENTRY("AFNI_drive_geom_graph") ;
00985
00986 /* tokenize the command string */
00987
00988 ntok = breakup_string( cmd , &stok ) ;
00989 if( ntok <= 0 || stok == NULL ) RETURN(-1) ;
00990
00991 /* check if this graph name is already in use */
00992
00993 ig = find_graph_xy_name( stok[0] ) ;
00994 freeup_strings(ntok,stok) ;
00995 if( ig < 0 || Graph_xy_list[ig]->mp == NULL ) RETURN(-1) ;
00996 gxy = Graph_xy_list[ig] ;
00997
00998 cpt = strstr(cmd,"geom=") ;
00999 if( cpt == NULL ) cpt = strstr(cmd,"geom:") ;
01000 if( cpt == NULL || strlen(cpt) < 7 ) RETURN(-1) ;
01001
01002 AFNI_decode_geom( cpt+5 , &gww,&ghh,&gxx,&gyy ) ;
01003
01004 ig = -1 ;
01005 if( gxx >= 0 && gyy >= 0 ){
01006 XtVaSetValues( gxy->mp->top , XmNx,gxx , XmNy,gyy , NULL ); ig=0;
01007 }
01008 if( gww > 0 && ghh > 0 ){
01009 XtVaSetValues( gxy->mp->top , XmNwidth,gww, XmNheight,ghh, NULL ); ig=0;
01010 }
01011
01012 RETURN(ig) ;
01013 }
|
|
|
Definition at line 1281 of file afni_driver.c. References breakup_string(), calloc, AFNI_library_type::dc, MCW_DC::display, ENTRY, find_empty_graph_xy(), find_graph_xy_name(), free, freeup_strings(), GLOBAL_library, Graph_xy::gname, kill_graph_xy(), Graph_xy::last_y, malloc, MCW_strncpy, Graph_xy::mp, Graph_xy::num_pt, Graph_xy::ny, plot_strip_init(), RETURN, strtod(), THD_MAX_NAME, Graph_xy::xbot, Graph_xy::xtop, Graph_xy::ybot, and Graph_xy::ytop.
01282 {
01283 int ntok , ig , ii ;
01284 char **stok=NULL ;
01285
01286 char *gname , *toplabel=NULL , *xlabel=NULL , *ylabel=NULL ;
01287 int ny=1 , nx=500 ;
01288 float dx=1.0 , ybot=0.0,ytop=1.0 ;
01289 char **yname=NULL ;
01290
01291 Graph_xy *gxy ;
01292
01293 ENTRY("AFNI_drive_open_graph_1D") ;
01294
01295 /* tokenize the command string */
01296
01297 ntok = breakup_string( cmd , &stok ) ;
01298 if( ntok <= 0 || stok == NULL ) RETURN(-1) ;
01299
01300 /* check if this graph name is already in use */
01301
01302 gname = stok[0] ;
01303 ig = find_graph_xy_name( gname ) ;
01304 if( ig >= 0 ){
01305 freeup_strings(ntok,stok) ; RETURN(-1) ; /* already used = bad */
01306 }
01307
01308 #if 0
01309 { int qq ;
01310 fprintf(stderr,"AFNI_drive_open_graph_1D tokens:\n") ;
01311 for( qq=0 ; qq < ntok ; qq++ ) fprintf(stderr," %2d:%s\n",qq,stok[qq]); }
01312 #endif
01313
01314 /* create a graph */
01315
01316 ig = find_empty_graph_xy() ;
01317
01318 Graph_xy_list[ig] = gxy = (Graph_xy *) malloc(sizeof(Graph_xy)) ;
01319
01320 MCW_strncpy( gxy->gname , gname , THD_MAX_NAME ) ;
01321
01322 /* parse values out of the tokens */
01323
01324 if( ntok > 1 ) toplabel = stok[1] ;
01325
01326 if( ntok > 2 ){
01327 int qq = strtol(stok[2],NULL,10) ;
01328 if( qq >= 10 ) nx = qq ;
01329 }
01330
01331 if( ntok > 3 ){
01332 float qq = strtod(stok[3],NULL) ;
01333 if( qq > 0.0 ) dx = qq ;
01334 }
01335
01336 if( ntok > 4 ) xlabel = stok[4] ;
01337
01338 if( ntok > 5 ){
01339 int qq = strtol(stok[5],NULL,10) ;
01340 if( qq > 1 ) ny = qq ;
01341 }
01342
01343 if( ntok > 6 ) ybot = strtod(stok[6],NULL) ;
01344 if( ntok > 7 ) ytop = strtod(stok[7],NULL) ;
01345 if( ybot == ytop ) { ytop = ybot+1.0 ; }
01346 else if( ybot > ytop ){ float qq = ybot; ybot = ytop; ytop = qq ; }
01347
01348 if( ntok > 8 ) ylabel = stok[8] ;
01349
01350 if( ntok > 9 ){
01351 int qq ;
01352 yname = (char **) calloc( ny , sizeof(char *) ) ;
01353 for( qq=0 ; qq < ny && qq+9 < ntok ; qq++ ) yname[qq] = stok[qq+9] ;
01354 }
01355
01356 /* put values into graph struct */
01357
01358 gxy->xbot = 0.0 ; gxy->xtop = nx*dx ;
01359 gxy->ybot = ybot ; gxy->ytop = ytop ; gxy->ny = ny ;
01360
01361 gxy->num_pt = 0.0 ;
01362
01363 /* create the actual graph */
01364
01365 gxy->mp = plot_strip_init( GLOBAL_library.dc->display ,
01366 nx , dx ,
01367 -ny , ybot , ytop ,
01368 xlabel , ylabel ,
01369 toplabel , yname , kill_graph_xy ) ;
01370
01371 freeup_strings(ntok,stok) ;
01372 if( yname != NULL ) free(yname) ;
01373
01374 if( gxy->mp == NULL ){ /* should not happen */
01375 free(Graph_xy_list[ig]) ; Graph_xy_list[ig] = NULL ;
01376 RETURN(-1) ;
01377 }
01378
01379 gxy->last_y = NULL ; /* not used for this graph type */
01380
01381 RETURN(0) ;
01382 }
|
|
|
Definition at line 1020 of file afni_driver.c. References breakup_string(), calloc, AFNI_library_type::dc, MCW_DC::display, ENTRY, find_empty_graph_xy(), find_graph_xy_name(), free, freeup_strings(), GLOBAL_library, Graph_xy::gname, kill_graph_xy(), Graph_xy::last_y, MCW_strncpy, MEMPLOT_NLINE, MEM_topshell_data::mp, Graph_xy::mp, Graph_xy::num_mpinit, Graph_xy::num_pt, Graph_xy::ny, plot_ts_init(), RETURN, strtod(), THD_MAX_NAME, Graph_xy::xbot, Graph_xy::xtop, Graph_xy::ybot, and Graph_xy::ytop.
01021 {
01022 int ntok , ig ;
01023 char **stok=NULL ;
01024
01025 char *gname , *toplabel=NULL , *xlabel=NULL , *ylabel=NULL ;
01026 int ny=1 ;
01027 float xbot=0.0,xtop=1.0 , ybot=0.0,ytop=1.0 ;
01028 char **yname=NULL ;
01029
01030 Graph_xy *gxy ;
01031
01032 ENTRY("AFNI_drive_open_graph_xy") ;
01033
01034 /* tokenize the command string */
01035
01036 ntok = breakup_string( cmd , &stok ) ;
01037 if( ntok <= 0 || stok == NULL ) RETURN(-1) ;
01038
01039 /* check if this graph name is already in use */
01040
01041 gname = stok[0] ;
01042 ig = find_graph_xy_name( gname ) ;
01043 if( ig >= 0 ){
01044 freeup_strings(ntok,stok) ; RETURN(-1) ; /* already used = bad */
01045 }
01046
01047 /* create a graph */
01048
01049 ig = find_empty_graph_xy() ;
01050
01051 Graph_xy_list[ig] = gxy = (Graph_xy *) calloc(1,sizeof(Graph_xy)) ;
01052
01053 MCW_strncpy( gxy->gname , gname , THD_MAX_NAME ) ;
01054
01055 #if 0
01056 { int qq ;
01057 fprintf(stderr,"AFNI_drive_open_graph_xy tokens:\n") ;
01058 for( qq=0 ; qq < ntok ; qq++ ) fprintf(stderr," %2d:%s\n",qq,stok[qq]); }
01059 #endif
01060
01061 /* parse values out of the tokens */
01062
01063 if( ntok > 1 ) toplabel = stok[1] ;
01064
01065 if( ntok > 2 ) xbot = strtod(stok[2],NULL) ;
01066 if( ntok > 3 ) xtop = strtod(stok[3],NULL) ;
01067 if( xbot == xtop ) { xtop = xbot+1.0 ; }
01068 else if( xbot > xtop ){ float qq = xbot; xbot = xtop; xtop = qq ; }
01069
01070 if( ntok > 4 ) xlabel = stok[4] ;
01071
01072 if( ntok > 5 ){
01073 int qq = strtol(stok[5],NULL,10) ;
01074 if( qq > 1 ) ny = qq ;
01075 }
01076
01077 if( ntok > 6 ) ybot = strtod(stok[6],NULL) ;
01078 if( ntok > 7 ) ytop = strtod(stok[7],NULL) ;
01079 if( ybot == ytop ) { ytop = ybot+1.0 ; }
01080 else if( ybot > ytop ){ float qq = ybot; ybot = ytop; ytop = qq ; }
01081
01082 if( ntok > 8 ) ylabel = stok[8] ;
01083
01084 if( ntok > 9 ){
01085 int qq ;
01086 yname = (char **) calloc( ny , sizeof(char *) ) ;
01087 for( qq=0 ; qq < ny && qq+9 < ntok ; qq++ ) yname[qq] = stok[qq+9] ;
01088 }
01089
01090 /* put values into graph struct */
01091
01092 gxy->xbot = xbot ; gxy->xtop = xtop ;
01093 gxy->ybot = ybot ; gxy->ytop = ytop ; gxy->ny = ny ;
01094
01095 gxy->num_pt = 0 ; /* number of points plotted thus far */
01096
01097 /* create the actual graph */
01098
01099 gxy->mp = plot_ts_init( GLOBAL_library.dc->display ,
01100 xbot , xtop ,
01101 -ny , ybot , ytop ,
01102 xlabel , ylabel ,
01103 toplabel , yname , kill_graph_xy ) ;
01104
01105 freeup_strings(ntok,stok) ;
01106 if( yname != NULL ) free(yname) ;
01107
01108 if( gxy->mp == NULL ){ /* should not happen */
01109 free(Graph_xy_list[ig]) ; Graph_xy_list[ig] = NULL ;
01110 RETURN(-1) ;
01111 }
01112
01113 /* number of lines plotted so far (labels, etc.) */
01114
01115 gxy->num_mpinit = MEMPLOT_NLINE(gxy->mp->mp) ;
01116
01117 /* place to store last location plotted */
01118
01119 gxy->last_y = (float *) calloc(ny,sizeof(float)) ;
01120
01121 RETURN(0) ;
01122 }
|
|
|
Definition at line 784 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_decode_geom(), AFNI_library_type::controllers, ENTRY, GLOBAL_library, AFNI_widget_set::nplugbut, PLUG_startup_plugin_CB(), AFNI_widget_set::plugbut, AFNI_widget_set::plugint, AFNI_widget_set::pluglab, RETURN, AFNI_widget_set::top_shell, and Three_D_View::vwid. Referenced by AFNI_drive_open_window().
00785 {
00786 int ic , ipl , ll , pl , qq ;
00787 Three_D_View *im3d ;
00788 char *cpt ;
00789 int gww=-1,ghh=-1,gxx=-1,gyy=-1 ;
00790
00791 int npbut ; /* how many plugins */
00792 char ** pluglab ; /* their labels */
00793 PLUGIN_interface ** plugint ; /* their interfaces */
00794
00795 ENTRY("AFNI_drive_open_plugin") ;
00796
00797 /* the controller is always good,
00798 since we are called from a place that just made sure of that */
00799
00800 ic = AFNI_controller_code_to_index( cmd ) ;
00801 if( ic < 0 ) ic = 0 ;
00802 im3d = GLOBAL_library.controllers[ic] ;
00803
00804 cpt = strstr(cmd,"plugin.") ;
00805 if( cpt == NULL || strlen(cpt) < 9 ) RETURN(-1) ;
00806 cpt += 7 ; /* start of plugin name */
00807 pl = strlen(cpt) ;
00808
00809 /* get list of plugins */
00810
00811 npbut = im3d->vwid->nplugbut; if( npbut < 1 ) RETURN(-1) ;
00812 pluglab = im3d->vwid->pluglab ;
00813 plugint = im3d->vwid->plugint ;
00814
00815 /* check name after plugin. vs. list */
00816
00817 for( ipl=0 ; ipl < npbut ; ipl++ ){
00818 for( ll=strlen(pluglab[ipl]) ; /* truncate trailing blanks */
00819 ll >= 0 && isspace(pluglab[ipl][ll]) ; ll-- ) ; /* nada */
00820 if( ll < 0 ) continue ; /* all blanks?! ERROR */
00821 if( pl < ll ) continue ; /* too short to match */
00822 for( qq=0 ; qq < ll ; qq++ ) /* match each nonblank */
00823 if( !isspace(pluglab[ipl][qq]) && cpt[qq]!=pluglab[ipl][qq] ) break ;
00824 if( qq == ll ) break ; /* found a match */
00825 }
00826
00827 if( ipl >= npbut ) RETURN(-1) ; /* no plugin found with this name */
00828
00829 /* try to start the plugin (same callback as pressing the plugin's button) */
00830
00831 PLUG_startup_plugin_CB( im3d->vwid->plugbut[ipl] , plugint[ipl] , NULL ) ;
00832
00833 /* find geom=..., if present */
00834
00835 cpt = strstr(cmd,"geom=") ;
00836 if( cpt == NULL ) cpt = strstr(cmd,"geom:") ;
00837 if( cpt != NULL )
00838 AFNI_decode_geom( cpt+5 , &gww,&ghh,&gxx,&gyy ) ;
00839
00840 if( gxx >= 0 &&
00841 gyy >= 0 &&
00842 plugint[ipl]->wid != NULL &&
00843 plugint[ipl]->wid->shell != NULL ){
00844
00845 XtVaSetValues( plugint[ipl]->wid->shell,
00846 XmNx , gxx , XmNy , gyy , NULL ) ;
00847 }
00848
00849 XmUpdateDisplay( im3d->vwid->top_shell ) ;
00850 RETURN(0) ;
00851 }
|
|
|
Definition at line 460 of file afni_driver.c. References AFNI_controller_clonify(), AFNI_controller_code_to_index(), AFNI_decode_geom(), AFNI_drive_open_plugin(), AFNI_initialize_controller(), AFNI_initialize_view(), AFNI_make_controller(), AFNI_view_xyz_CB(), AFNI_library_type::controllers, MCW_grapher::dc, MCW_imseq::dc, Three_D_View::dc, DC_find_overlay_color(), drive_MCW_grapher(), drive_MCW_imseq(), ENTRY, MCW_grapher::fdw_graph, FRAC_MIN, Three_D_View::g123, Three_D_View::g231, Three_D_View::g312, GLOBAL_library, GRA_handle_keypress(), GRA_timer_stop(), graDR_setmatrix, graDR_setpinbot, graDR_setpinnum, AFNI_imaging_widgets::graph_xyz_pb, AFNI_imaging_widgets::graph_yzx_pb, AFNI_imaging_widgets::graph_zxy_pb, IM3D_OPEN, IM3D_VALID, AFNI_widget_set::imag, AFNI_imaging_widgets::image_xyz_pb, AFNI_imaging_widgets::image_yzx_pb, AFNI_imaging_widgets::image_zxy_pb, isq, ISQ_handle_keypress(), isqDR_setifrac, isqDR_setmontage, isqDR_setopacity, key, mat, MIN_PIN, MONT_NMAX, mp, OPEN_CONTROLLER, RETURN, Three_D_View::s123, Three_D_View::s231, Three_D_View::s312, MCW_DC::screen_num, strtod(), AFNI_widget_set::top_shell, Three_D_View::vwid, and MCW_imseq::wtop.
00461 {
00462 int ic ;
00463 Three_D_View *im3d ;
00464 char *cpt ;
00465 int gww=-1,ghh=-1,gxx=-1,gyy=-1 ;
00466 MCW_imseq *isq=NULL ;
00467 MCW_grapher *gra=NULL ;
00468
00469 ENTRY("AFNI_drive_open_window") ;
00470
00471 /* make sure the controller itself is open */
00472
00473 ic = AFNI_controller_code_to_index( cmd ) ;
00474 if( ic < 0 ) ic = 0 ;
00475
00476 im3d = GLOBAL_library.controllers[ic] ;
00477 if( !IM3D_VALID(im3d) ){ /* try to create it */
00478 AFNI_make_controller( ic ) ;
00479 im3d = GLOBAL_library.controllers[ic] ;
00480 if( !IM3D_VALID(im3d) ) RETURN(-1) ; /* should never happen */
00481 }
00482
00483 if( !IM3D_OPEN(im3d) ){ /* make sure is visible */
00484 OPEN_CONTROLLER(im3d) ;
00485 AFNI_initialize_controller( im3d ) ; /* decide what to see */
00486 AFNI_initialize_view( NULL , im3d ) ; /* set up to see it */
00487 AFNI_controller_clonify() ;
00488 }
00489
00490 if( strlen(cmd) < 3 ) RETURN(0) ; /* no commands? */
00491
00492 /* 13 Nov 2001: plugins are done in a separate function */
00493
00494 #ifdef ALLOW_PLUGINS
00495 if( strstr(cmd,"plugin.") != NULL ){
00496 ic = AFNI_drive_open_plugin( cmd ) ;
00497 RETURN(ic) ;
00498 }
00499 #endif
00500
00501 /* open a graph or image window */
00502
00503 if( strstr(cmd,"axialimage") != NULL ){
00504 AFNI_view_xyz_CB( im3d->vwid->imag->image_xyz_pb, im3d, NULL ) ;
00505 isq = im3d->s123 ;
00506
00507 } else if( strstr(cmd,"sagittalimage") != NULL ){
00508 AFNI_view_xyz_CB( im3d->vwid->imag->image_yzx_pb, im3d, NULL ) ;
00509 isq = im3d->s231 ;
00510
00511 } else if( strstr(cmd,"coronalimage") != NULL ){
00512 AFNI_view_xyz_CB( im3d->vwid->imag->image_zxy_pb, im3d, NULL ) ;
00513 isq = im3d->s312 ;
00514
00515 } else if( strstr(cmd,"axialgraph") != NULL ){
00516 AFNI_view_xyz_CB( im3d->vwid->imag->graph_xyz_pb, im3d, NULL ) ;
00517 gra = im3d->g123 ;
00518
00519 } else if( strstr(cmd,"sagittalgraph") != NULL ){
00520 AFNI_view_xyz_CB( im3d->vwid->imag->graph_yzx_pb, im3d, NULL ) ;
00521 gra = im3d->g231 ;
00522
00523 } else if( strstr(cmd,"coronalgraph") != NULL ){
00524 AFNI_view_xyz_CB( im3d->vwid->imag->graph_zxy_pb, im3d, NULL ) ;
00525 gra = im3d->g312 ;
00526 }
00527 XmUpdateDisplay( im3d->vwid->top_shell ) ;
00528
00529 /* find geom=..., if present */
00530
00531 cpt = strstr(cmd,"geom=") ;
00532 if( cpt == NULL ) cpt = strstr(cmd,"geom:") ;
00533 if( cpt != NULL )
00534 AFNI_decode_geom( cpt+5 , &gww,&ghh,&gxx,&gyy ) ;
00535
00536 /*--- opened an image viewer: maybe modify it ---*/
00537
00538 if( isq != NULL ){
00539
00540 /* geometry */
00541
00542 if( gxx >= 0 && gyy >= 0 )
00543 XtVaSetValues( isq->wtop, XmNx, gxx, XmNy, gyy, NULL ) ;
00544 if( gww > 0 && ghh > 0 )
00545 XtVaSetValues( isq->wtop, XmNwidth, gww, XmNheight, ghh, NULL ) ;
00546
00547 /* image fraction */
00548
00549 cpt = strstr(cmd,"ifrac=") ;
00550 if( cpt == NULL ) cpt = strstr(cmd,"ifrac:") ;
00551 if( cpt != NULL ){
00552 float ifrac = strtod( cpt+6 , NULL ) ;
00553 if( ifrac >= FRAC_MIN && ifrac <= 1.0 )
00554 drive_MCW_imseq( isq, isqDR_setifrac, (XtPointer)(&ifrac) ) ;
00555 }
00556
00557 /* montage */
00558
00559 cpt = strstr(cmd,"mont=") ;
00560 if( cpt == NULL ) cpt = strstr(cmd,"mont:") ;
00561 if( cpt != NULL ){
00562 int mww=-1 , mhh=-1 , msp=-1 , mgap=-1 , nn ;
00563 char mcol[128] = "\0" ;
00564
00565 nn = sscanf( cpt+5 , "%dx%d:%d:%d:%s" , &mww,&mhh,&msp,&mgap,mcol );
00566
00567 if( nn >= 2 && mww >= 1 && mww <= MONT_NMAX && mhh >= 1 && mhh <= MONT_NMAX ){
00568 int mp[5] ;
00569 mp[0] = mww ; mp[1] = mhh ; mp[2] = msp ; mp[3] = mgap ;
00570 mp[4] = DC_find_overlay_color(im3d->dc,mcol);
00571 drive_MCW_imseq( isq , isqDR_setmontage , (XtPointer)mp ) ;
00572 }
00573 }
00574
00575 /* iconify [06 Aug 2002] */
00576
00577 cpt = strstr(cmd,"iconi") ;
00578 if( cpt != NULL ){
00579 XIconifyWindow( XtDisplay(isq->wtop) ,
00580 XtWindow(isq->wtop) ,
00581 isq->dc->screen_num ) ;
00582 }
00583
00584 /* opacity [21 Jan 2003] */
00585
00586 cpt = strstr(cmd,"opacity=") ;
00587 if( cpt == NULL ) cpt = strstr(cmd,"opacity:") ;
00588 if( cpt != NULL ){
00589 int opaval = -1 ;
00590 sscanf( cpt+8 , "%d" , &opaval ) ;
00591 drive_MCW_imseq( isq , isqDR_setopacity , (XtPointer)opaval ) ;
00592 }
00593
00594 /* keypress [18 Feb 2005] */
00595
00596 cpt = strstr(cmd,"keypress=") ;
00597 if( cpt == NULL ) cpt = strstr(cmd,"keypress:") ;
00598 if( cpt != NULL ){
00599 unsigned long key ;
00600 cpt += 9 ;
00601 if( *cpt == '\'' || *cpt == '\"' ) cpt++ ;
00602 if( strncmp(cpt,"XK_Left" , 7) == 0 ) key = XK_Left ;
00603 else if( strncmp(cpt,"XK_Right" , 8) == 0 ) key = XK_Right ;
00604 else if( strncmp(cpt,"XK_Down" , 7) == 0 ) key = XK_Down ;
00605 else if( strncmp(cpt,"XK_Up" , 5) == 0 ) key = XK_Up ;
00606 else if( strncmp(cpt,"XK_Page_Up" ,10) == 0 ) key = XK_Page_Up ;
00607 else if( strncmp(cpt,"XK_Page_Down",12) == 0 ) key = XK_Page_Down;
00608 else if( strncmp(cpt,"XK_Delete" , 9) == 0 ) key = XK_Delete ;
00609 else if( strncmp(cpt,"XK_Home" , 7) == 0 ) key = XK_Home ;
00610 else if( strncmp(cpt,"XK_F2" , 5) == 0 ) key = XK_F2 ;
00611 else if( strncmp(cpt,"XK_F3" , 5) == 0 ) key = XK_F3 ;
00612 else if( strncmp(cpt,"XK_F4" , 5) == 0 ) key = XK_F4 ;
00613 else if( strncmp(cpt,"XK_F5" , 5) == 0 ) key = XK_F5 ;
00614 else if( strncmp(cpt,"XK_F6" , 5) == 0 ) key = XK_F6 ;
00615 else if( strncmp(cpt,"XK_F7" , 5) == 0 ) key = XK_F7 ;
00616 else if( strncmp(cpt,"XK_F8" , 5) == 0 ) key = XK_F8 ;
00617 else if( strncmp(cpt,"XK_F9" , 5) == 0 ) key = XK_F9 ;
00618 else if( strncmp(cpt,"XK_F10" , 6) == 0 ) key = XK_F10 ;
00619 else if( strncmp(cpt,"XK_F11" , 6) == 0 ) key = XK_F11 ;
00620 else if( strncmp(cpt,"XK_F12" , 6) == 0 ) key = XK_F12 ;
00621 else key = *cpt ;
00622 ISQ_handle_keypress( isq , key ) ;
00623 }
00624
00625 /*--- opened a graph viewer: maybe modify it ---*/
00626
00627 } else if( gra != NULL ){
00628
00629 /* geometry */
00630
00631 if( gxx >= 0 && gyy >= 0 )
00632 XtVaSetValues( gra->fdw_graph, XmNx, gxx, XmNy, gyy, NULL ) ;
00633 if( gww > 0 && ghh > 0 )
00634 XtVaSetValues( gra->fdw_graph, XmNwidth, gww, XmNheight, ghh, NULL ) ;
00635
00636 /* matrix */
00637
00638 cpt = strstr(cmd,"matrix=") ;
00639 if( cpt == NULL ) cpt = strstr(cmd,"matrix:") ;
00640 if( cpt != NULL ){
00641 int mat = (int) strtod( cpt+7 , NULL ) ;
00642 if( mat > 0 )
00643 drive_MCW_grapher( gra , graDR_setmatrix , (XtPointer)mat ) ;
00644 }
00645
00646 /* pinnum OR pintop */
00647
00648 cpt = strstr(cmd,"pinnum=") ;
00649 if( cpt == NULL ) cpt = strstr(cmd,"pinnum:") ;
00650 if( cpt == NULL ) cpt = strstr(cmd,"pintop=") ;
00651 if( cpt == NULL ) cpt = strstr(cmd,"pintop:") ;
00652 if( cpt != NULL ){
00653 int pn = (int) strtod( cpt+7 , NULL ) ;
00654 if( pn >= MIN_PIN )
00655 drive_MCW_grapher( gra, graDR_setpinnum, (XtPointer)pn ) ;
00656 }
00657
00658 /* pinbot [19 Mar 2004] */
00659
00660 cpt = strstr(cmd,"pinbot=") ;
00661 if( cpt == NULL ) cpt = strstr(cmd,"pinbot:") ;
00662 if( cpt != NULL ){
00663 int pn = (int) strtod( cpt+7 , NULL ) ;
00664 if( pn > 0 )
00665 drive_MCW_grapher( gra, graDR_setpinbot, (XtPointer)pn ) ;
00666 }
00667
00668 /* iconify [06 Aug 2002] */
00669
00670 cpt = strstr(cmd,"iconi") ;
00671 if( cpt != NULL ){
00672 XIconifyWindow( XtDisplay(gra->fdw_graph) ,
00673 XtWindow(gra->fdw_graph) ,
00674 gra->dc->screen_num ) ;
00675 }
00676
00677 /* keypress [18 Feb 2005] */
00678
00679 cpt = strstr(cmd,"keypress=") ;
00680 if( cpt == NULL ) cpt = strstr(cmd,"keypress:") ;
00681 if( cpt != NULL ){
00682 char buf[2] ;
00683 cpt += 9 ;
00684 if( *cpt == '\'' || *cpt == '\"' ) cpt++ ;
00685 if( strncmp(cpt,"XK_Left" ,7) == 0 ) buf[0] = '<' ;
00686 else if( strncmp(cpt,"XK_Right",8) == 0 ) buf[0] = '>' ;
00687 else if( strncmp(cpt,"XK_Down" ,7) == 0 ) buf[0] = 'Z' ;
00688 else if( strncmp(cpt,"XK_Up" ,5) == 0 ) buf[0] = 'z' ;
00689 else buf[0] = *cpt ;
00690 if( buf[0] == 'N' ) buf[0] = '\0' ; /* bad key for this */
00691 buf[1] = '\0' ;
00692 GRA_timer_stop( gra ) ;
00693 GRA_handle_keypress( gra , buf , NULL ) ;
00694 }
00695
00696
00697 /*--- opened the controller itself: maybe move it ---*/
00698
00699 } else {
00700
00701 /* geometry */
00702
00703 if( gxx >= 0 && gyy >= 0 )
00704 XtVaSetValues( im3d->vwid->top_shell, XmNx, gxx, XmNy, gyy, NULL ) ;
00705
00706 /* iconify [06 Aug 2002] */
00707
00708 cpt = strstr(cmd,"iconi") ;
00709 if( cpt != NULL ){
00710 XIconifyWindow( XtDisplay(im3d->vwid->top_shell) ,
00711 XtWindow(im3d->vwid->top_shell) ,
00712 im3d->dc->screen_num ) ;
00713 }
00714
00715 }
00716
00717 /*-- finito --*/
00718
00719 XmUpdateDisplay( im3d->vwid->top_shell ) ;
00720 RETURN(0) ;
00721 }
|
|
|
PBAR_ROTATE [c.]{+|-} "PBAR_ROTATE A.+" --------------------------------------------------------------------------- Definition at line 1833 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_library_type::controllers, ENTRY, AFNI_widget_set::func, GLOBAL_library, IM3D_OPEN, AFNI_function_widgets::inten_pbar, RETURN, rotate_MCW_pbar(), and Three_D_View::vwid.
01834 {
01835 int ic , dadd=2 , nn ;
01836 MCW_pbar *pbar ;
01837 Three_D_View *im3d ;
01838
01839 ENTRY("AFNI_drive_pbar_rotate") ;
01840
01841 if( cmd == NULL || strlen(cmd) < 1 ) RETURN(-1) ;
01842
01843 ic = AFNI_controller_code_to_index( cmd ) ;
01844 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
01845
01846 im3d = GLOBAL_library.controllers[ic] ;
01847 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
01848
01849 /* get sign */
01850
01851 switch( cmd[dadd] ){
01852 default: RETURN(-1) ;
01853 case '+': nn = 1 ; break ;
01854 case '-': nn = -1 ; break ;
01855 }
01856
01857 rotate_MCW_pbar( im3d->vwid->func->inten_pbar , nn ) ;
01858 RETURN(0) ;
01859 }
|
|
|
Purge named dataset or all datasets from memory. Definition at line 196 of file afni_driver.c. References AFNI_purge_dsets(), THD_slist_find::dset_index, ENTRY, FIND_IDCODE, FIND_PREFIX, GLOBAL_library, LAST_VIEW_TYPE, MCW_IDSIZE, MCW_strncpy, PURGE_DSET, RETURN, THD_slist_find::sess_index, THD_sessionlist::ssar, AFNI_library_type::sslist, MCW_idcode::str, THD_dset_in_sessionlist(), and THD_MAX_NAME.
00197 {
00198 char dname[THD_MAX_NAME] ;
00199 THD_slist_find slf ;
00200 int ic ;
00201
00202 ENTRY("AFNI_drive_purge_memory") ;
00203
00204 if( *cmd == '\0' ){ AFNI_purge_dsets(1); RETURN(0); }
00205
00206 /* get dataset name, truncate trailing blanks */
00207
00208 MCW_strncpy( dname , cmd , THD_MAX_NAME ) ;
00209 for( ic=strlen(dname)-1 ; ic >= 0 ; ic-- )
00210 if( isspace(dname[ic]) || iscntrl(dname[ic]) ) dname[ic] = '\0' ;
00211 else break ;
00212
00213 if( strlen(dname) == 0 ) RETURN(-1) ;
00214
00215 /* find this dataset in current session of this controller */
00216
00217 slf = THD_dset_in_sessionlist( FIND_PREFIX, dname, GLOBAL_library.sslist,-1 );
00218
00219 if( slf.dset_index < 0 ){ /* 18 Mar 2005 */
00220 MCW_idcode idcode ;
00221 MCW_strncpy( idcode.str , dname , MCW_IDSIZE ) ;
00222 slf = THD_dset_in_sessionlist( FIND_IDCODE, &idcode,
00223 GLOBAL_library.sslist,-1 );
00224 }
00225
00226 if( slf.sess_index >= 0 && slf.dset_index >= 0 ){
00227 THD_3dim_dataset **dss =
00228 GLOBAL_library.sslist->ssar[slf.sess_index]->dsset[slf.dset_index] ;
00229 for( ic=0 ; ic <= LAST_VIEW_TYPE ; ic++ ) PURGE_DSET( dss[ic] ) ;
00230 RETURN(0) ;
00231 }
00232
00233 RETURN(-1) ;
00234 }
|
|
|
Definition at line 856 of file afni_driver.c. References RWC_sleep().
00857 {
00858 int ii ;
00859 fprintf(stderr,"\n******* AFNI is commanded to quit! ") ; fflush(stderr) ;
00860 for( ii=0 ; ii < 7 ; ii++ ){ RWC_sleep(100); fprintf(stderr,"*"); fflush(stderr); }
00861 fprintf(stderr,"\n\n") ;
00862 exit(0) ;
00863 }
|
|
|
Definition at line 278 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_rescan_CB(), AFNI_library_type::controllers, ENTRY, GLOBAL_library, IM3D_OPEN, and RETURN.
00279 {
00280 int ic ;
00281 Three_D_View *im3d ;
00282
00283 ENTRY("AFNI_rescan_controller") ;
00284
00285 ic = AFNI_controller_code_to_index( code ) ;
00286 if( ic < 0 ) ic = 0 ; /* default = A */
00287
00288 im3d = GLOBAL_library.controllers[ic] ;
00289 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
00290
00291 /* same callback as Rescan This */
00292
00293 AFNI_rescan_CB( NULL , (XtPointer)im3d , NULL ) ;
00294 RETURN(0) ;
00295 }
|
|
|
SAVE_JPEG [c.]imagewindowname fname Definition at line 2118 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_library_type::controllers, drive_MCW_imseq(), ENTRY, ERROR_message(), Three_D_View::g123, Three_D_View::g231, Three_D_View::g312, GLOBAL_library, GRA_file_pixmap(), IM3D_OPEN, isq, isqDR_save_jpeg, RETURN, Three_D_View::s123, Three_D_View::s231, Three_D_View::s312, STRING_HAS_SUFFIX, AFNI_widget_set::top_shell, and Three_D_View::vwid.
02119 {
02120 int ic , dadd=2 ;
02121 Three_D_View *im3d ;
02122 char junk[256] , fname[288] ;
02123 MCW_imseq *isq=NULL ;
02124 MCW_grapher *gra=NULL ;
02125
02126 ENTRY("AFNI_drive_save_jpeg") ;
02127
02128 /* make sure the controller itself is open */
02129
02130 if( strlen(cmd) < 3 ) RETURN(-1) ;
02131
02132 ic = AFNI_controller_code_to_index( cmd ) ;
02133 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
02134
02135 im3d = GLOBAL_library.controllers[ic] ;
02136 if( !IM3D_OPEN(im3d) ){
02137 ERROR_message("SAVE_JPEG %s: controller not open",cmd); RETURN(-1);
02138 }
02139
02140 /* extract the filename to save into */
02141
02142 junk[0] = fname[0] = '\0' ;
02143 sscanf( cmd+dadd , "%255s%255s" , junk , fname ) ;
02144 if( junk[0] == '\0' || fname[0] == '\0' ){
02145 ERROR_message("SAVE_JPEG %s: something is missing",cmd); RETURN(-1);
02146 RETURN(-1) ;
02147 }
02148
02149 if( !STRING_HAS_SUFFIX(fname,".jpg") && !STRING_HAS_SUFFIX(fname,".JPG") )
02150 strcat(fname,".jpg") ;
02151
02152 /* find graph or image window */
02153
02154 if( strstr(cmd+dadd,"axialimage") != NULL ) isq = im3d->s123 ;
02155 else if( strstr(cmd+dadd,"sagittalimage") != NULL ) isq = im3d->s231 ;
02156 else if( strstr(cmd+dadd,"coronalimage") != NULL ) isq = im3d->s312 ;
02157 else if( strstr(cmd+dadd,"axialgraph") != NULL ) gra = im3d->g123 ;
02158 else if( strstr(cmd+dadd,"sagittalgraph") != NULL ) gra = im3d->g231 ;
02159 else if( strstr(cmd+dadd,"coronalgraph") != NULL ) gra = im3d->g312 ;
02160
02161 XmUpdateDisplay( im3d->vwid->top_shell ) ;
02162
02163 if( isq != NULL ){
02164 drive_MCW_imseq( isq, isqDR_save_jpeg , (XtPointer)fname ) ;
02165 } else if( gra != NULL ){
02166 GRA_file_pixmap( gra , fname ) ;
02167 } else {
02168 ERROR_message("SAVE_JPEG %s: don't understand windowname",cmd) ;
02169 RETURN(-1) ;
02170 }
02171
02172 RETURN(0) ;
02173 }
|
|
|
SET_DICOM_XYZ [c.] x y z Definition at line 2206 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_jumpto_dicom(), AFNI_library_type::controllers, GLOBAL_library, and IM3D_OPEN.
02207 {
02208 int ic , dadd=2 ;
02209 Three_D_View *im3d ;
02210 float x,y,z ;
02211
02212 if( strlen(cmd) < 3 ) return -1;
02213
02214 ic = AFNI_controller_code_to_index( cmd ) ;
02215 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
02216 im3d = GLOBAL_library.controllers[ic] ;
02217 if( !IM3D_OPEN(im3d) ) return -1 ;
02218
02219 ic = sscanf( cmd+dadd , "%f%f%f" , &x,&y,&z ) ;
02220 if( ic < 3 ) return -1 ;
02221 AFNI_jumpto_dicom( im3d , x,y,z ) ;
02222 return 0 ;
02223 }
|
|
|
SET_IJK [c.] i j k Definition at line 2250 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_set_viewpoint(), AFNI_library_type::controllers, GLOBAL_library, i, IM3D_OPEN, and REDISPLAY_ALL.
02251 {
02252 int ic , dadd=2 ;
02253 Three_D_View *im3d ;
02254 int i,j,k ;
02255
02256 if( strlen(cmd) < 3 ) return -1;
02257
02258 ic = AFNI_controller_code_to_index( cmd ) ;
02259 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
02260 im3d = GLOBAL_library.controllers[ic] ;
02261 if( !IM3D_OPEN(im3d) ) return -1 ;
02262
02263 ic = sscanf( cmd+dadd , "%d%d%d" , &i,&j,&k ) ;
02264 if( ic < 3 ) return -1 ;
02265 AFNI_set_viewpoint( im3d , i,j,k , REDISPLAY_ALL ) ;
02266 return 0 ;
02267 }
|
|
|
SET_PBAR_ALL [c.]{+|-}num val=color val=color ... "SET_PBAR_ALL A.+5 1.0=yellow 0.5=red 0.05=none -0.05=blue -0.50=cyan" "SET_PBAR_ALL A.+99 topval colorscale_name FLIP ROTA=n" --------------------------------------------------------------------------- Definition at line 1718 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_hintize_pbar(), AFNI_inten_pbar_CB(), alter_MCW_pbar(), AV_assign_ival(), MCW_pbar::bigmode, MCW_pbar::bigset, AFNI_library_type::controllers, AFNI_library_type::dc, DC_find_overlay_color(), ENTRY, AFNI_view_info::fim_autorange, AFNI_view_info::fim_range, FIX_SCALE_SIZE, flip(), AFNI_widget_set::func, GLOBAL_library, HIDE_SCALE, IM3D_OPEN, AFNI_function_widgets::inten_av, AFNI_function_widgets::inten_bbox, AFNI_function_widgets::inten_pbar, MCW_set_bbox(), MCW_pbar::mode, NORMAL_cursorize, NPANE_MAX, NPANE_MIN, MCW_pbar::ov_index, MCW_pbar::ovin_save, MCW_pbar::panew, PBAR_flip(), PBAR_set_bigmap(), PBAR_set_bigmode(), PBAR_set_panecolor(), pmax, pmin, POPUP_cursorize, RETURN, rotate_MCW_pbar(), AFNI_view_info::use_posfunc, Three_D_View::vinfo, and Three_D_View::vwid.
01719 {
01720 int ic , dadd=2 , npan=0 , pos , nn , ii,jj ;
01721 float pval[NPANE_MAX+1] , val ;
01722 int pcol[NPANE_MAX] , col , flip=0 , rota=0 ;
01723 char str[256] , *cpt ;
01724 MCW_pbar *pbar ;
01725 Three_D_View *im3d ;
01726
01727 ENTRY("AFNI_drive_set_pbar_all") ;
01728
01729 if( cmd == NULL || strlen(cmd) < 4 ) RETURN(-1) ;
01730
01731 ic = AFNI_controller_code_to_index( cmd ) ;
01732 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
01733
01734 im3d = GLOBAL_library.controllers[ic] ;
01735 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
01736
01737 /* get sign */
01738
01739 switch( cmd[dadd] ){
01740 default: RETURN(-1) ;
01741 case '+': pos = 1 ; break ;
01742 case '-': pos = 0 ; break ;
01743 }
01744 dadd++ ;
01745
01746 /* get number of panes */
01747
01748 sscanf( cmd+dadd , "%d%n" , &npan , &nn ) ;
01749 if( npan < NPANE_MIN ) RETURN(-1) ;
01750 if( npan > NPANE_MAX ) npan = NPANE_MAX+1 ;
01751 dadd += nn ;
01752
01753 pbar = im3d->vwid->func->inten_pbar ;
01754
01755 if( npan <= NPANE_MAX ){ /* discrete panes: get value=colorname array */
01756
01757 for( ii=0 ; ii < npan ; ii++ ){
01758 str[0] = '\0' ; nn = 0 ;
01759 sscanf( cmd+dadd , "%f=%255s%n" , &val,str,&nn ) ;
01760 if( str[0] == '\0' || nn == 0 ) RETURN(-1) ; /* can't parse */
01761
01762 col = DC_find_overlay_color( GLOBAL_library.dc , str ) ;
01763 if( col < 0 ) RETURN(-1) ; /* bad color name */
01764
01765 for( jj=0 ; jj < ii ; jj++ ) /* check ordering */
01766 if( pval[jj] <= val ) RETURN(-1) ;
01767
01768 if( ii > 0 ){ /* check size */
01769 if( fabs(val) >= pval[0] ) RETURN(-1) ;
01770 if( pos && val <= 0.0 ) RETURN(-1) ;
01771 } else {
01772 if( val <= 0.0 ) RETURN(-1) ;
01773 }
01774
01775 pval[ii] = val ; pcol[ii] = col ;
01776 dadd += nn ;
01777 }
01778 if( pos ) pval[npan] = 0.0 ; /* set bottom level */
01779 else pval[npan] = -pval[0] ;
01780
01781 } else { /* 03 Feb 2003: get topval and colorscale_name */
01782
01783 str[0] = '\0' ; val = 0.0 ;
01784 sscanf( cmd+dadd , "%f %s" , &val, str ) ;
01785 if( val <= 0.0 ) RETURN(-1) ;
01786
01787 flip = ( strstr(cmd+dadd,"FLIP") != NULL ) ;
01788
01789 cpt = strstr(cmd+dadd,"ROTA=") ;
01790 if( cpt == NULL ) cpt = strstr(cmd+dadd,"ROTA:") ;
01791 if( cpt != NULL ) sscanf(cpt+5,"%d",&rota) ;
01792 }
01793
01794 /* now set pbar values (and other widgets) */
01795
01796 im3d->vinfo->use_posfunc = pbar->mode = pos ;
01797 MCW_set_bbox( im3d->vwid->func->inten_bbox , pos ) ;
01798 AV_assign_ival( im3d->vwid->func->inten_av , npan ) ;
01799
01800 HIDE_SCALE(im3d) ;
01801 if( npan <= NPANE_MAX ){ /* set discrete panels */
01802 for( ii=0 ; ii < npan ; ii++ ){
01803 pbar->ov_index[ii] = pbar->ovin_save[npan][ii][pos] = pcol[ii] ;
01804 PBAR_set_panecolor( pbar , ii , pcol[ii] ) ;
01805 }
01806 pbar->bigmode = 0 ;
01807 alter_MCW_pbar( pbar , npan , pval ) ;
01808 AFNI_hintize_pbar( pbar , (im3d->vinfo->fim_range != 0.0)
01809 ? im3d->vinfo->fim_range
01810 : im3d->vinfo->fim_autorange ) ;
01811 NORMAL_cursorize( pbar->panew ) ; /* 08 Apr 2005 */
01812 } else { /* set the colorscale */
01813 float pmax, pmin ;
01814 pbar->bigset = 0 ;
01815 pmax = val ; pmin = (pbar->mode) ? 0.0 : -pmax ;
01816 PBAR_set_bigmode( pbar , 1 , pmin,pmax ) ;
01817 PBAR_set_bigmap( pbar , str ) ;
01818 rotate_MCW_pbar( pbar , rota ) ; /* 07 Feb 2004 */
01819 if( flip ) PBAR_flip( pbar ) ; /* 07 Feb 2004 */
01820 AFNI_inten_pbar_CB( pbar , im3d , 0 ) ;
01821 POPUP_cursorize( pbar->panew ) ; /* 08 Apr 2005 */
01822 }
01823 FIX_SCALE_SIZE(im3d) ;
01824
01825 RETURN(0) ;
01826 }
|
|
|
SET_PBAR_NUMBER [c.]num as in "SET_PBAR_NUMBER A.3" use a large number (99, say) to turn on colorscale mode -------------------------------------------------------------------------- Definition at line 1631 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_inten_pbar_CB(), alter_MCW_pbar(), AV_assign_ival(), MCW_pbar::bigmode, AFNI_library_type::controllers, ENTRY, FIX_SCALE_SIZE, AFNI_widget_set::func, GLOBAL_library, HIDE_SCALE, IM3D_OPEN, AFNI_function_widgets::inten_av, AFNI_function_widgets::inten_pbar, MCW_pbar::mode, NORMAL_cursorize, NPANE_MAX, NPANE_MIN, MCW_pbar::num_panes, MCW_pbar::panew, PBAR_set_bigmode(), pmax, pmin, POPUP_cursorize, MCW_pbar::pval_save, RETURN, strtod(), and Three_D_View::vwid.
01632 {
01633 int ic , dadd=2 , num=-1 ;
01634 Three_D_View *im3d ;
01635 MCW_pbar *pbar ;
01636
01637 ENTRY("AFNI_drive_set_pbar_number") ;
01638
01639 if( cmd == NULL || strlen(cmd) < 1 ) RETURN(-1) ;
01640
01641 ic = AFNI_controller_code_to_index( cmd ) ;
01642 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
01643 if( !isdigit(cmd[dadd]) ) RETURN(-1) ;
01644
01645 im3d = GLOBAL_library.controllers[ic] ;
01646 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
01647
01648 pbar = im3d->vwid->func->inten_pbar ;
01649
01650 num = (int) strtod( cmd+dadd , NULL ) ;
01651 if( num < NPANE_MIN ) RETURN(-1) ;
01652 if( num > NPANE_MAX ) num = NPANE_MAX+1 ;
01653 AV_assign_ival( im3d->vwid->func->inten_av , num ) ;
01654
01655 HIDE_SCALE(im3d) ;
01656 if( num <= NPANE_MAX ){
01657 pbar->bigmode = 0 ;
01658 alter_MCW_pbar( pbar , num , NULL ) ;
01659 NORMAL_cursorize( pbar->panew ) ; /* 08 Apr 2005 */
01660 } else {
01661 int npane=pbar->num_panes , jm=pbar->mode ;
01662 float pmax=pbar->pval_save[npane][0][jm] ,
01663 pmin=pbar->pval_save[npane][npane][jm] ;
01664 PBAR_set_bigmode( pbar , 1 , pmin,pmax ) ;
01665 AFNI_inten_pbar_CB( pbar , im3d , 0 ) ;
01666 POPUP_cursorize( pbar->panew ) ; /* 08 Apr 2005 */
01667 }
01668 FIX_SCALE_SIZE(im3d) ;
01669
01670 RETURN(0) ;
01671 }
|
|
|
SET_PBAR_SIGN [c.]+ OR [c.]- as in "SET_PBAR_SIGN A.+" -------------------------------------------------------------------------- Definition at line 1678 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_inten_bbox_CB(), AFNI_library_type::controllers, ENTRY, AFNI_widget_set::func, GLOBAL_library, IM3D_OPEN, AFNI_function_widgets::inten_bbox, MCW_set_bbox(), PBAR_MODEBUT, RETURN, Three_D_View::vwid, and MCW_bbox::wbut.
01679 {
01680 int ic , dadd=2 , val ;
01681 Three_D_View *im3d ;
01682
01683 ENTRY("AFNI_drive_set_pbar_sign") ;
01684
01685 if( cmd == NULL || strlen(cmd) < 1 ) RETURN(-1) ;
01686
01687 ic = AFNI_controller_code_to_index( cmd ) ;
01688 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
01689
01690 im3d = GLOBAL_library.controllers[ic] ;
01691 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
01692
01693 switch( cmd[dadd] ){
01694 default: RETURN(-1) ;
01695
01696 case 'p':
01697 case 'P':
01698 case '+': val = 1 ; break ;
01699
01700 case 's':
01701 case 'S':
01702 case '-': val = 0 ; break ;
01703 }
01704
01705 MCW_set_bbox( im3d->vwid->func->inten_bbox , val ) ;
01706
01707 AFNI_inten_bbox_CB( im3d->vwid->func->inten_bbox->wbut[PBAR_MODEBUT] ,
01708 (XtPointer)im3d , NULL ) ;
01709 RETURN(0) ;
01710 }
|
|
|
SET_SPM_XYZ [c.] x y z Definition at line 2228 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_jumpto_dicom(), AFNI_library_type::controllers, GLOBAL_library, and IM3D_OPEN.
02229 {
02230 int ic , dadd=2 ;
02231 Three_D_View *im3d ;
02232 float x,y,z ;
02233
02234 if( strlen(cmd) < 3 ) return -1;
02235
02236 ic = AFNI_controller_code_to_index( cmd ) ;
02237 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
02238 im3d = GLOBAL_library.controllers[ic] ;
02239 if( !IM3D_OPEN(im3d) ) return -1 ;
02240
02241 ic = sscanf( cmd+dadd , "%f%f%f" , &x,&y,&z ) ;
02242 if( ic < 3 ) return -1 ;
02243 AFNI_jumpto_dicom( im3d , -x,-y,z ) ;
02244 return 0 ;
02245 }
|
|
|
SET_THRESHNEW [c].val [**] -- 06 Feb 2004 as in "SET_THRESHNEW A.0.372" or "SET_THRESHNEW 0.372 **" (the "**" means to set the range too) -------------------------------------------------------------------------- Definition at line 1554 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_set_thresh_top(), AFNI_thr_scale_CB(), AFNI_library_type::controllers, DSET_BRICK_STATAUX, DSET_BRICK_STATCODE, ENTRY, Three_D_View::fim_now, AFNI_widget_set::func, AFNI_view_info::func_thresh_top, GLOBAL_library, IM3D_OPEN, RETURN, strtod(), THD_pval_to_stat(), THR_FACTOR, AFNI_view_info::thr_index, AFNI_function_widgets::thr_scale, THR_TOP_EXPON, THR_TOP_VALUE, Three_D_View::vinfo, and Three_D_View::vwid.
01555 {
01556 int ic,dadd , olddec,newdec , ival,smax,id,stop , dopval,dostar;
01557 Three_D_View *im3d ;
01558 float val , pval ;
01559 char *cpt ;
01560 static float tval[9] = { 1.0 , 10.0 , 100.0 , 1000.0 , 10000.0 ,
01561 100000.0 , 1000000.0 , 10000000.0 , 100000000.0 } ;
01562
01563 ENTRY("AFNI_drive_set_threshnew") ;
01564
01565 if( cmd == NULL || *cmd == '\0' ) RETURN(-1) ;
01566
01567 ic = AFNI_controller_code_to_index( cmd ) ;
01568 if( ic < 0 ){
01569 ic = 0 ; dadd = 0 ;
01570 } else {
01571 if( cmd[1] == '\0' ) RETURN(-1) ; /* no value following? */
01572 dadd = 2 ; /* skip period following controller */
01573 }
01574
01575 im3d = GLOBAL_library.controllers[ic] ;
01576 if( !IM3D_OPEN(im3d) ) RETURN(-1) ; /* stupid user */
01577
01578 /* get val from command line */
01579
01580 val = strtod( cmd+dadd , &cpt ) ;
01581 if( val < 0.0 || val > THR_TOP_VALUE ) RETURN(-1) ; /* stupid user */
01582
01583 /* get current scale decimal setting */
01584
01585 olddec = (int)rint( log10(im3d->vinfo->func_thresh_top) ) ;
01586 if( olddec < 0 ) olddec = 0 ;
01587 else if( olddec > THR_TOP_EXPON ) olddec = THR_TOP_EXPON ;
01588 newdec = olddec ;
01589
01590 smax = (int)rint( pow(10.0,THR_TOP_EXPON) ) ;
01591 stop = smax - 1 ; /* max slider value */
01592
01593 dopval = (val >= 0.0) && (val <= 1.0) && (strchr(cpt,'p') != NULL) &&
01594 (DSET_BRICK_STATCODE(im3d->fim_now,im3d->vinfo->thr_index) > 0) ;
01595
01596 dostar = (val > 0.0) && (strchr(cpt,'*') != NULL) ;
01597
01598 if( dopval ){
01599 pval = THD_pval_to_stat( val ,
01600 DSET_BRICK_STATCODE(im3d->fim_now,im3d->vinfo->thr_index) ,
01601 DSET_BRICK_STATAUX (im3d->fim_now,im3d->vinfo->thr_index) ) ;
01602 if( pval >= 0.0 ) val = pval ;
01603 }
01604
01605 if( val >= im3d->vinfo->func_thresh_top || dostar ){ /* reset scale range */
01606
01607 newdec = (int)( log10(val) + 1.0 ) ;
01608 if( newdec < 0 ) newdec = 0 ;
01609 else if( newdec > THR_TOP_EXPON ) newdec = THR_TOP_EXPON ;
01610 }
01611
01612 if( newdec != olddec )
01613 AFNI_set_thresh_top( im3d , tval[newdec] ) ;
01614
01615 ival = rint( val/(THR_FACTOR*tval[newdec]) ) ;
01616 if( ival < 0 ) ival = 0 ;
01617 else if( ival > stop ) ival = stop ;
01618
01619 XmScaleSetValue( im3d->vwid->func->thr_scale , ival ) ;
01620
01621 AFNI_thr_scale_CB( im3d->vwid->func->thr_scale, (XtPointer)im3d, NULL ) ;
01622 RETURN(0) ;
01623 }
|
|
|
SET_THRESHOLD [c].val [dec] -- 16 Jan 2003 as in "SET_THRESHOLD A.3327 2" or "SET_THRESHOLD .9932 2" -------------------------------------------------------------------------- Definition at line 1509 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_set_thresh_top(), AFNI_thr_scale_CB(), AFNI_library_type::controllers, ENTRY, AFNI_widget_set::func, GLOBAL_library, IM3D_OPEN, RETURN, strtod(), THR_FACTOR, AFNI_function_widgets::thr_scale, THR_TOP_EXPON, and Three_D_View::vwid.
01510 {
01511 int ic , dadd=1 , dec=-1 , ival , smax ;
01512 Three_D_View *im3d ;
01513 float val ;
01514 char *cpt ;
01515 static float tval[9] = { 1.0 , 10.0 , 100.0 , 1000.0 , 10000.0 ,
01516 100000.0 , 1000000.0 , 10000000.0 , 100000000.0 } ;
01517
01518 ENTRY("AFNI_drive_set_threshold") ;
01519
01520 if( cmd == NULL || strlen(cmd) < 3 ) RETURN(-1) ;
01521
01522 ic = AFNI_controller_code_to_index( cmd ) ;
01523 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
01524
01525 im3d = GLOBAL_library.controllers[ic] ;
01526 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
01527
01528 /* get val and set scale */
01529
01530 if( cmd[dadd] != '.' ) RETURN(-1) ;
01531 val = strtod( cmd+dadd , &cpt ) ;
01532 ival = rint(val/THR_FACTOR) ;
01533 smax = (int)( pow(10.0,THR_TOP_EXPON) + 0.001 ) - 1 ;
01534 if( ival < 0 || ival > smax ) RETURN(-1) ;
01535 XmScaleSetValue( im3d->vwid->func->thr_scale , ival ) ;
01536
01537 /* get dec, if present, and apply it */
01538
01539 sscanf(cpt,"%d",&dec) ;
01540
01541 if( dec >= 0 && dec <= THR_TOP_EXPON )
01542 AFNI_set_thresh_top( im3d , tval[dec] ) ;
01543
01544 AFNI_thr_scale_CB( im3d->vwid->func->thr_scale, (XtPointer)im3d, NULL ) ;
01545 RETURN(0) ;
01546 }
|
|
|
SET_VIEW [c.]viewname Definition at line 2178 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_switchview_CB(), AFNI_library_type::controllers, GLOBAL_library, IM3D_OPEN, MCW_set_bbox(), AFNI_widget_set::view, VIEW_ACPCALIGNED_TYPE, AFNI_viewing_widgets::view_bbox, VIEW_ORIGINAL_TYPE, VIEW_TALAIRACH_TYPE, AFNI_view_info::view_type, Three_D_View::vinfo, Three_D_View::vwid, and MCW_bbox::wbut.
02179 {
02180 int ic , vv=-1 ;
02181 Three_D_View *im3d ;
02182
02183 if( strlen(cmd) < 3 ) return -1;
02184
02185 ic = AFNI_controller_code_to_index( cmd ) ;
02186 if( ic < 0 ) ic = 0 ;
02187 im3d = GLOBAL_library.controllers[ic] ;
02188 if( !IM3D_OPEN(im3d) ) return -1 ;
02189
02190 if( strstr(cmd,"orig") != NULL ) vv = VIEW_ORIGINAL_TYPE ;
02191 else if( strstr(cmd,"acpc") != NULL ) vv = VIEW_ACPCALIGNED_TYPE ;
02192 else if( strstr(cmd,"tlrc") != NULL ) vv = VIEW_TALAIRACH_TYPE ;
02193 else return -1 ;
02194
02195 if( vv == im3d->vinfo->view_type ) return 0 ; /* nothing to do */
02196 if( !XtIsSensitive(im3d->vwid->view->view_bbox->wbut[vv]) ) return -1 ;
02197
02198 MCW_set_bbox( im3d->vwid->view->view_bbox , 1 << vv ) ;
02199 AFNI_switchview_CB( NULL , (XtPointer)im3d , NULL ) ;
02200 return 0 ;
02201 }
|
|
|
SET_XHAIRS [c.]code Definition at line 2272 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_crosshair_visible_CB(), AV_assign_ival(), AFNI_library_type::controllers, AFNI_imaging_widgets::crosshair_av, GLOBAL_library, i, IM3D_OPEN, AFNI_widget_set::imag, and Three_D_View::vwid.
02273 {
02274 int ic , dadd=2 , hh=-1 ;
02275 Three_D_View *im3d ;
02276 int i,j,k ;
02277
02278 if( strlen(cmd) < 3 ) return -1;
02279
02280 ic = AFNI_controller_code_to_index( cmd ) ;
02281 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
02282 im3d = GLOBAL_library.controllers[ic] ;
02283 if( !IM3D_OPEN(im3d) ) return -1 ;
02284
02285 if( strstr(cmd,"OFF") != NULL ) hh = 0 ;
02286 else if( strstr(cmd,"SINGLE") != NULL ) hh = 1 ;
02287 else if( strstr(cmd,"MULTI") != NULL ) hh = 2 ;
02288 else if( strstr(cmd,"LR_AP") != NULL ) hh = 3 ;
02289 else if( strstr(cmd,"LR_IS") != NULL ) hh = 4 ;
02290 else if( strstr(cmd,"AP_IS") != NULL ) hh = 5 ;
02291 else if( strstr(cmd,"LR") != NULL ) hh = 6 ;
02292 else if( strstr(cmd,"AP") != NULL ) hh = 7 ;
02293 else if( strstr(cmd,"IS") != NULL ) hh = 8 ;
02294 else return -1 ;
02295
02296 AV_assign_ival( im3d->vwid->imag->crosshair_av, hh ) ;
02297 AFNI_crosshair_visible_CB( im3d->vwid->imag->crosshair_av, (XtPointer)im3d );
02298 return 0 ;
02299 }
|
|
|
Definition at line 351 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_finalize_dataset_CB(), AFNI_viewing_widgets::choose_anat_pb, AFNI_library_type::controllers, THD_slist_find::dset_index, ENTRY, FIND_IDCODE, FIND_PREFIX, GLOBAL_library, IM3D_OPEN, MCW_choose_cbs::ival, MCW_IDSIZE, MCW_strncpy, RETURN, Three_D_View::ss_now, MCW_idcode::str, THD_dset_in_session(), THD_MAX_NAME, AFNI_widget_set::view, and Three_D_View::vwid.
00352 {
00353 int ic , dadd=2 ;
00354 Three_D_View *im3d ;
00355 char dname[THD_MAX_NAME] ;
00356 MCW_choose_cbs cbs ;
00357 THD_slist_find slf ;
00358
00359 ENTRY("AFNI_switch_anatomy") ;
00360
00361 if( cmd == NULL || strlen(cmd) < 3 ) RETURN(-1) ;
00362
00363 ic = AFNI_controller_code_to_index( cmd ) ;
00364 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
00365
00366 im3d = GLOBAL_library.controllers[ic] ;
00367 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
00368
00369 /* get dataset name, truncate trailing blanks */
00370
00371 MCW_strncpy( dname , cmd+dadd , THD_MAX_NAME ) ;
00372 for( ic=strlen(dname)-1 ; ic >= 0 ; ic-- )
00373 if( isspace(dname[ic]) || iscntrl(dname[ic]) ) dname[ic] = '\0' ;
00374 else break ;
00375
00376 if( strlen(dname) == 0 ) RETURN(-1) ;
00377
00378 /* find this dataset in current session of this controller */
00379
00380 slf = THD_dset_in_session( FIND_PREFIX , dname , im3d->ss_now ) ;
00381
00382 if( slf.dset_index < 0 ){ /* 18 Mar 2005 */
00383 MCW_idcode idcode ;
00384 MCW_strncpy( idcode.str , dname , MCW_IDSIZE ) ;
00385 slf = THD_dset_in_session( FIND_IDCODE , &idcode , im3d->ss_now ) ;
00386 }
00387
00388 if( slf.dset_index < 0 ) RETURN(-1) ;
00389
00390 cbs.ival = slf.dset_index ;
00391
00392 /* same callback as Switch Anatomy */
00393
00394 AFNI_finalize_dataset_CB( im3d->vwid->view->choose_anat_pb ,
00395 (XtPointer)im3d , &cbs ) ;
00396
00397 RETURN(0) ;
00398 }
|
|
|
Definition at line 405 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_finalize_dataset_CB(), AFNI_viewing_widgets::choose_func_pb, AFNI_library_type::controllers, THD_slist_find::dset_index, ENTRY, FIND_IDCODE, FIND_PREFIX, GLOBAL_library, IM3D_OPEN, MCW_choose_cbs::ival, MCW_IDSIZE, MCW_strncpy, RETURN, Three_D_View::ss_now, MCW_idcode::str, THD_dset_in_session(), THD_MAX_NAME, AFNI_widget_set::view, and Three_D_View::vwid.
00406 {
00407 int ic , dadd=2 ;
00408 Three_D_View *im3d ;
00409 char dname[THD_MAX_NAME] ;
00410 MCW_choose_cbs cbs ;
00411 THD_slist_find slf ;
00412
00413 ENTRY("AFNI_switch_function") ;
00414
00415 if( cmd == NULL || strlen(cmd) < 3 ) RETURN(-1) ;
00416
00417 ic = AFNI_controller_code_to_index( cmd ) ;
00418 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
00419
00420 im3d = GLOBAL_library.controllers[ic] ;
00421 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
00422
00423 /* get dataset name, truncate trailing blanks */
00424
00425 MCW_strncpy( dname , cmd+dadd , THD_MAX_NAME ) ;
00426 for( ic=strlen(dname)-1 ; ic >= 0 ; ic-- )
00427 if( isspace(dname[ic]) || iscntrl(dname[ic]) ) dname[ic] = '\0' ;
00428 else break ;
00429
00430 if( strlen(dname) == 0 ) RETURN(-1) ;
00431
00432 /* find this dataset in current session of this controller */
00433
00434 slf = THD_dset_in_session( FIND_PREFIX , dname , im3d->ss_now ) ;
00435
00436 if( slf.dset_index < 0 ){ /* 18 Mar 2005 */
00437 MCW_idcode idcode ;
00438 MCW_strncpy( idcode.str , dname , MCW_IDSIZE ) ;
00439 slf = THD_dset_in_session( FIND_IDCODE , &idcode , im3d->ss_now ) ;
00440 }
00441
00442 if( slf.dset_index < 0 ) RETURN(-1) ;
00443
00444 cbs.ival = slf.dset_index ;
00445
00446 /* same callback as Switch Function */
00447
00448 AFNI_finalize_dataset_CB( im3d->vwid->view->choose_func_pb ,
00449 (XtPointer)im3d , &cbs ) ;
00450
00451 RETURN(0) ;
00452 }
|
|
|
Definition at line 303 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_finalize_dataset_CB(), AFNI_viewing_widgets::choose_sess_pb, AFNI_library_type::controllers, ENTRY, GLOBAL_library, IM3D_OPEN, MCW_choose_cbs::ival, MCW_strncpy, THD_sessionlist::num_sess, RETURN, THD_session::sessname, THD_sessionlist::ssar, AFNI_library_type::sslist, THD_MAX_NAME, AFNI_widget_set::view, and Three_D_View::vwid.
00304 {
00305 int ic , dadd=2 ;
00306 Three_D_View *im3d ;
00307 char dname[THD_MAX_NAME] ;
00308 MCW_choose_cbs cbs ;
00309
00310 ENTRY("AFNI_switch_session") ;
00311
00312 if( cmd == NULL || strlen(cmd) < 3 ) RETURN(-1) ;
00313
00314 ic = AFNI_controller_code_to_index( cmd ) ;
00315 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
00316
00317 im3d = GLOBAL_library.controllers[ic] ;
00318 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
00319
00320 /* get session name, truncate trailing blanks */
00321
00322 MCW_strncpy( dname , cmd+dadd , THD_MAX_NAME ) ;
00323 for( ic=strlen(dname)-1 ; ic >= 0 ; ic-- )
00324 if( isspace(dname[ic]) || iscntrl(dname[ic]) ) dname[ic] = '\0' ;
00325 else break ;
00326
00327 if( strlen(dname) == 0 ) RETURN(-1) ;
00328
00329 /* find session name in list of sessions (sloppy compare) */
00330
00331 for( ic=0 ; ic < GLOBAL_library.sslist->num_sess ; ic++ )
00332 if( strstr(GLOBAL_library.sslist->ssar[ic]->sessname,dname) != NULL ) break;
00333
00334 if( ic == GLOBAL_library.sslist->num_sess ) RETURN(-1) ;
00335
00336 /* do the switcheroo: same callback as Switch Session */
00337
00338 cbs.ival = ic ;
00339
00340 AFNI_finalize_dataset_CB( im3d->vwid->view->choose_sess_pb ,
00341 (XtPointer)im3d , &cbs ) ;
00342
00343 RETURN(0) ;
00344 }
|
|
|
Run a system() command. Definition at line 239 of file afni_driver.c.
00240 {
00241 return system( cmd ) ;
00242 }
|
|
|
Definition at line 147 of file afni_driver.c. References ENTRY, free, AFNI_driver_pair::fun, AFNI_driver_pair::nam, and RETURN. Referenced by AFNI_equate_pbars(), AFNI_imag_pop_CB(), AFNI_niml_driver(), AFNI_niml_workproc(), AFNI_process_plugout(), AFNI_range_lock_carryout(), AFNI_startup_script_CB(), AFNI_startup_timeout_CB(), AFNI_thresh_lock_carryout(), and RT_process_info().
00148 {
00149 int clen , rval , ii , dd , dlen ;
00150 char *cmd , *dmd ;
00151
00152 ENTRY("AFNI_driver") ;
00153
00154 if( cmdd == NULL || *cmdd == '\0' ) RETURN(-1) ; /* bad */
00155
00156 dmd = cmd = strdup(cmdd) ; clen = strlen(cmd) ;
00157
00158 /* skip leading blanks */
00159
00160 for( ii=0 ; ii < clen ; ii++ )
00161 if( !isspace(cmd[ii]) ) break ;
00162
00163 if( ii == clen ){ free(dmd); RETURN(-1); } /* all blanks? */
00164
00165 cmd += ii ; clen = strlen(cmd) ;
00166
00167 /* 19 Dec 2002: trim trailing blanks */
00168
00169 for( ii=clen-1 ; ii > 0 && isspace(cmd[ii]) ; ii-- )
00170 cmd[ii] = '\0' ;
00171
00172 clen = strlen(cmd) ;
00173
00174 /* scan dpair list for command */
00175
00176 for( dd=0 ; dpair[dd].nam != NULL ; dd++ ){
00177
00178 dlen = strlen(dpair[dd].nam) ;
00179 if( clen >= dlen &&
00180 strncmp(cmd,dpair[dd].nam,dlen) == 0 ){ /* found it */
00181
00182 for( ii=dlen ; ii < clen ; ii++ ) /* skip blanks */
00183 if( !isspace(cmd[ii]) ) break ; /* after command name */
00184
00185 rval = dpair[dd].fun( cmd+ii ) ; /* execute command */
00186 free(dmd) ; RETURN(rval) ;
00187 }
00188 }
00189
00190 free(dmd) ; RETURN(-1) ; /* not in the list */
00191 }
|
|
|
OPEN_PANEL [c.]Define_Function, etc. Definition at line 2083 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_define_CB(), AFNI_library_type::controllers, AFNI_viewing_widgets::define_dmode_pb, AFNI_viewing_widgets::define_func_pb, AFNI_viewing_widgets::define_marks_pb, AFNI_widget_set::dmode, ENTRY, AFNI_marks_widgets::frame, AFNI_datamode_widgets::frame, AFNI_function_widgets::frame, AFNI_widget_set::func, GLOBAL_library, IM3D_OPEN, AFNI_widget_set::marks, RETURN, AFNI_widget_set::view, and Three_D_View::vwid.
02084 {
02085 int ic , dadd=2 , fr=-1 , tr=-1 ;
02086 Three_D_View *im3d ;
02087
02088 ENTRY("AFNI_open_panel") ;
02089
02090 if( cmd == NULL || strlen(cmd) < 2 ) RETURN(-1) ;
02091
02092 ic = AFNI_controller_code_to_index( cmd ) ;
02093 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
02094
02095 im3d = GLOBAL_library.controllers[ic] ;
02096 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
02097
02098 /* do the right thing (simulate a button press) */
02099
02100 if( strcmp(cmd+dadd,"Define_Function") == 0 || strcmp(cmd+dadd,"Define_Overlay") == 0 ){
02101 if( !XtIsManaged(im3d->vwid->func->frame) )
02102 AFNI_define_CB( im3d->vwid->view->define_func_pb, im3d, NULL ) ;
02103 } else if( strcmp(cmd+dadd,"Define_Datamode") == 0 ){
02104 if( !XtIsManaged(im3d->vwid->dmode->frame) )
02105 AFNI_define_CB( im3d->vwid->view->define_dmode_pb, im3d, NULL ) ;
02106 } else if( strcmp(cmd+dadd,"Define_Markers") == 0 ){
02107 if( !XtIsManaged(im3d->vwid->marks->frame) )
02108 AFNI_define_CB( im3d->vwid->view->define_marks_pb, im3d, NULL ) ;
02109 } else {
02110 RETURN(-1) ;
02111 }
02112 RETURN(0) ;
02113 }
|
|
|
REDISPLAY Definition at line 2059 of file afni_driver.c. References AFNI_set_viewpoint(), AFNI_library_type::controllers, GLOBAL_library, IM3D_OPEN, MAX_CONTROLLERS, and REDISPLAY_OVERLAY.
02060 {
02061 int cc ;
02062 Three_D_View *qq3d ;
02063
02064 for( cc=0 ; cc < MAX_CONTROLLERS ; cc++ ){
02065 qq3d = GLOBAL_library.controllers[cc] ;
02066 if( ! IM3D_OPEN(qq3d) ) continue ;
02067 AFNI_set_viewpoint( qq3d , -1,-1,-1 , REDISPLAY_OVERLAY ) ;
02068 }
02069 return(0) ;
02070 }
|
|
|
SET_FUNC_AUTORANGE [c.]{+|-} "SET_FUNC_AUTORANGE A.+" --------------------------------------------------------------------------- Definition at line 1866 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_range_bbox_CB(), AFNI_library_type::controllers, ENTRY, AFNI_widget_set::func, GLOBAL_library, IM3D_OPEN, MCW_set_bbox(), RANGE_AUTOBUT, AFNI_function_widgets::range_bbox, RETURN, Three_D_View::vwid, and MCW_bbox::wbut. Referenced by AFNI_set_func_range().
01867 {
01868 int ic , dadd=2 , nn ;
01869 Three_D_View *im3d ;
01870
01871 ENTRY("AFNI_set_func_autorange") ;
01872
01873 if( cmd == NULL || strlen(cmd) < 1 ) RETURN(-1) ;
01874
01875 ic = AFNI_controller_code_to_index( cmd ) ;
01876 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
01877
01878 im3d = GLOBAL_library.controllers[ic] ;
01879 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
01880
01881 switch( cmd[dadd] ){
01882 default: RETURN(-1) ;
01883 case '+': nn = 1 ; break ;
01884 case '-': nn = 0 ; break ;
01885 }
01886
01887 MCW_set_bbox( im3d->vwid->func->range_bbox , nn ) ;
01888 AFNI_range_bbox_CB( im3d->vwid->func->range_bbox->wbut[RANGE_AUTOBUT] ,
01889 im3d , NULL ) ;
01890 RETURN(0) ;
01891 }
|
|
|
SET_FUNC_RANGE [c.]value "SET_FUNC_RANGE A.0.3333" --------------------------------------------------------------------------- Definition at line 1898 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_range_av_CB(), AFNI_set_func_autorange(), AV_assign_fval(), AV_SENSITIZE, AFNI_library_type::controllers, ENTRY, AFNI_widget_set::func, GLOBAL_library, IM3D_OPEN, MCW_set_bbox(), AFNI_function_widgets::range_av, AFNI_function_widgets::range_bbox, RETURN, strtod(), AFNI_view_info::use_autorange, Three_D_View::vinfo, and Three_D_View::vwid.
01899 {
01900 int ic , dadd=2 ;
01901 Three_D_View *im3d ;
01902 float val ;
01903
01904 ENTRY("AFNI_set_func_range") ;
01905
01906 if( cmd == NULL || strlen(cmd) < 1 ) RETURN(-1) ;
01907
01908 ic = AFNI_controller_code_to_index( cmd ) ;
01909 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
01910
01911 im3d = GLOBAL_library.controllers[ic] ;
01912 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
01913
01914 val = strtod( cmd+dadd , NULL ) ;
01915 if( val < 0.0 ) RETURN(-1) ;
01916
01917 if( val == 0.0 ){
01918 char clabel[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
01919 char str[8] ;
01920 sprintf(str,"%c.+",clabel[ic]) ;
01921 RETURN( AFNI_set_func_autorange(str) ) ;
01922 }
01923
01924 MCW_set_bbox( im3d->vwid->func->range_bbox , 0 ) ; /* autoRange box off */
01925 im3d->vinfo->use_autorange = 0 ;
01926
01927 AV_SENSITIZE( im3d->vwid->func->range_av , 1 ) ;
01928 AV_assign_fval( im3d->vwid->func->range_av , val ) ;
01929 AFNI_range_av_CB( im3d->vwid->func->range_av , im3d ) ;
01930 RETURN(0) ;
01931 }
|
|
|
SET_FUNC_RESAM [c.]{NN|Li|Cu|Bk}.{NN|Li|Cu|Bk} "SET_FUNC_RESAM A.Li.Li" --------------------------------------------------------------------------- Definition at line 1969 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_resam_av_CB(), AV_assign_ival(), Three_D_View::b123_fim, Three_D_View::b231_fim, Three_D_View::b312_fim, AFNI_library_type::controllers, AFNI_widget_set::dmode, ENTRY, AFNI_datamode_widgets::func_resam_av, AFNI_view_info::func_resam_mode, GLOBAL_library, IM3D_OPEN, FD_brick::resam_code, RETURN, AFNI_datamode_widgets::thr_resam_av, FD_brick::thr_resam_code, AFNI_view_info::thr_resam_mode, Three_D_View::vinfo, and Three_D_View::vwid.
01970 {
01971 int ic , dadd=2 , fr=-1 , tr=-1 ;
01972 Three_D_View *im3d ;
01973
01974 ENTRY("AFNI_set_func_resam") ;
01975
01976 if( cmd == NULL || strlen(cmd) < 2 ) RETURN(-1) ;
01977
01978 ic = AFNI_controller_code_to_index( cmd ) ;
01979 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
01980
01981 im3d = GLOBAL_library.controllers[ic] ;
01982 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
01983
01984 if( cmd[dadd] == 'N' && cmd[dadd+1] == 'N' ) fr = 0 ;
01985 else if( cmd[dadd] == 'L' && cmd[dadd+1] == 'i' ) fr = 1 ;
01986 else if( cmd[dadd] == 'C' && cmd[dadd+1] == 'u' ) fr = 2 ;
01987 else if( cmd[dadd] == 'B' && cmd[dadd+1] == 'k' ) fr = 2 ;
01988 else RETURN(-1);
01989
01990 if( cmd[dadd+2] == '.' ){
01991 dadd += 3 ;
01992 if( cmd[dadd] == 'N' && cmd[dadd+1] == 'N' ) tr = 0 ;
01993 else if( cmd[dadd] == 'L' && cmd[dadd+1] == 'i' ) tr = 1 ;
01994 else if( cmd[dadd] == 'C' && cmd[dadd+1] == 'u' ) tr = 2 ;
01995 else if( cmd[dadd] == 'B' && cmd[dadd+1] == 'k' ) tr = 2 ;
01996 else RETURN(-1);
01997 }
01998
01999 AV_assign_ival( im3d->vwid->dmode->func_resam_av , fr ) ;
02000 im3d->vinfo->func_resam_mode = fr ;
02001 if( im3d->b123_fim != NULL )
02002 im3d->b123_fim->resam_code =
02003 im3d->b231_fim->resam_code =
02004 im3d->b312_fim->resam_code = im3d->vinfo->func_resam_mode ;
02005
02006 if( tr >= 0 ){
02007 AV_assign_ival( im3d->vwid->dmode->thr_resam_av , fr ) ;
02008 im3d->vinfo->thr_resam_mode = tr ;
02009 if( im3d->b123_fim != NULL )
02010 im3d->b123_fim->thr_resam_code =
02011 im3d->b231_fim->thr_resam_code =
02012 im3d->b312_fim->thr_resam_code = im3d->vinfo->thr_resam_mode ;
02013 }
02014
02015 AFNI_resam_av_CB( NULL , im3d ) ;
02016 RETURN(0) ;
02017 }
|
|
|
SET_FUNC_VISIBLE [c.]{+|-} "SET_FUNC_VISIBLE A.+" --------------------------------------------------------------------------- Definition at line 1938 of file afni_driver.c. References AFNI_controller_code_to_index(), AFNI_see_func_CB(), AFNI_library_type::controllers, ENTRY, GLOBAL_library, IM3D_OPEN, MCW_set_bbox(), RETURN, AFNI_viewing_widgets::see_func_bbox, AFNI_widget_set::view, and Three_D_View::vwid.
01939 {
01940 int ic , dadd=2 , nn ;
01941 Three_D_View *im3d ;
01942
01943 ENTRY("AFNI_set_func_visible") ;
01944
01945 if( cmd == NULL || strlen(cmd) < 1 ) RETURN(-1) ;
01946
01947 ic = AFNI_controller_code_to_index( cmd ) ;
01948 if( ic < 0 ){ ic = 0 ; dadd = 0 ; }
01949
01950 im3d = GLOBAL_library.controllers[ic] ;
01951 if( !IM3D_OPEN(im3d) ) RETURN(-1) ;
01952
01953 switch( cmd[dadd] ){
01954 default: RETURN(-1) ;
01955 case '+': nn = 1 ; break ;
01956 case '-': nn = 0 ; break ;
01957 }
01958
01959 MCW_set_bbox( im3d->vwid->view->see_func_bbox , nn ) ;
01960 AFNI_see_func_CB( NULL , im3d , NULL ) ;
01961 RETURN(0) ;
01962 }
|
|
|
SLEEP msec Definition at line 2022 of file afni_driver.c. References RWC_sleep().
02023 {
02024 int ms=-1 ;
02025 if( cmd == NULL || strlen(cmd) < 1 ) return(-1) ;
02026 sscanf( cmd , "%d" , &ms ) ;
02027 if( ms > 0 ) RWC_sleep( ms ) ;
02028 return(0) ;
02029 }
|
|
|
Definition at line 917 of file afni_driver.c. References malloc, num_Graph_xy, and realloc. Referenced by AFNI_drive_open_graph_1D(), and AFNI_drive_open_graph_xy().
00918 {
00919 int ii ;
00920
00921 /* nothing in list ==> make a new list */
00922
00923 if( Graph_xy_list == NULL ){
00924 Graph_xy_list = (Graph_xy **) malloc(sizeof(Graph_xy *)) ;
00925 Graph_xy_list[0] = NULL ;
00926 num_Graph_xy = 1 ;
00927 return 0 ;
00928 }
00929
00930 /* search list for an empty element */
00931
00932 for( ii=0 ; ii < num_Graph_xy ; ii++ )
00933 if( Graph_xy_list[ii] == NULL ) return ii ;
00934
00935 /* add empty element to list */
00936
00937 Graph_xy_list = (Graph_xy **) realloc( Graph_xy_list ,
00938 sizeof(Graph_xy *)*(num_Graph_xy+1) ) ;
00939 Graph_xy_list[num_Graph_xy] = NULL ;
00940 num_Graph_xy++ ;
00941 return (num_Graph_xy-1) ;
00942 }
|
|
|
Definition at line 899 of file afni_driver.c. References name, and num_Graph_xy. Referenced by AFNI_drive_addto_graph_1D(), AFNI_drive_addto_graph_xy(), AFNI_drive_clear_graph_1D(), AFNI_drive_clear_graph_xy(), AFNI_drive_close_graph_xy(), AFNI_drive_geom_graph(), AFNI_drive_open_graph_1D(), and AFNI_drive_open_graph_xy().
00900 {
00901 int ii ;
00902
00903 if( name == NULL || name[0] == '\0' ) return -1 ;
00904
00905 for( ii=0 ; ii < num_Graph_xy ; ii++ )
00906 if( Graph_xy_list[ii] != NULL &&
00907 strcmp(Graph_xy_list[ii]->gname,name) == 0 ) return ii ;
00908
00909 return -1 ;
00910 }
|
|
|
Definition at line 948 of file afni_driver.c. References free, Graph_xy::last_y, Graph_xy::mp, mp, num_Graph_xy, and MEM_topshell_data::userdata. Referenced by AFNI_drive_open_graph_1D(), and AFNI_drive_open_graph_xy().
00949 {
00950 int ii ;
00951
00952 if( mp == NULL || Graph_xy_list == NULL ) return ;
00953
00954 /* find this graph in the list */
00955
00956 for( ii=0 ; ii < num_Graph_xy ; ii++ )
00957 if( Graph_xy_list[ii] != NULL &&
00958 Graph_xy_list[ii]->mp == mp ) break ;
00959
00960 if( ii >= num_Graph_xy ) return ; /* should not happen */
00961
00962 /* free data from this graph */
00963
00964 if( Graph_xy_list[ii]->last_y != NULL )
00965 free( Graph_xy_list[ii]->last_y ) ;
00966
00967 if( mp->userdata != NULL ) free(mp->userdata) ;
00968
00969 free( Graph_xy_list[ii] ) ; Graph_xy_list[ii] = NULL ; return ;
00970 }
|
Variable Documentation
|
|
Definition at line 73 of file afni_driver.c. |
|
|
Definition at line 893 of file afni_driver.c. |
|
|
Definition at line 892 of file afni_driver.c. Referenced by find_empty_graph_xy(), find_graph_xy_name(), and kill_graph_xy(). |