Doxygen Source Code Documentation
plug_notes.c File Reference
#include "afni.h"
Go to the source code of this file.
Data Structures | |
struct | NOTE_wind |
Defines | |
#define | TWIDTH 75 |
#define | newstring(str) strcpy(malloc(strlen(str)+1),str) |
#define | THEIGHT 9 |
#define | NUM_DH 10 |
#define | NACT 6 |
Functions | |
char * | NOTES_main (PLUGIN_interface *) |
void | NOTES_make_widgets (void) |
void | NOTES_done_CB (Widget, XtPointer, XtPointer) |
void | NOTES_help_CB (Widget, XtPointer, XtPointer) |
void | NOTES_quit_CB (Widget, XtPointer, XtPointer) |
void | NOTES_save_CB (Widget, XtPointer, XtPointer) |
void | NOTES_choose_CB (Widget, XtPointer, XtPointer) |
void | NOTES_add_CB (Widget, XtPointer, XtPointer) |
void | NOTES_delete_CB (Widget, XtPointer, XtPointer) |
void | NOTES_restore_CB (Widget, XtPointer, XtPointer) |
void | NOTES_refit_CB (Widget, XtPointer, XtPointer) |
void | NOTES_finalize_dset_CB (Widget, XtPointer, MCW_choose_cbs *) |
int | line_count (char *) |
DEFINE_PLUGIN_PROTOTYPE PLUGIN_interface * | PLUGIN_init (int ncall) |
NOTE_wind * | NOTES_make_note (void) |
void | scroll_topbot (Widget, int) |
Variables | |
PLUGIN_interface * | plint = NULL |
int | max_tlines = 0 |
Widget | shell = NULL |
Widget | topman |
Widget | info_lab |
Widget | choose_pb |
Widget | done_pb |
Widget | help_pb |
Widget | quit_pb |
Widget | save_pb |
Widget | add_pb |
Widget | notesw |
Widget | noterc |
Widget | refit_pb |
int | text_width = 0 |
int | text_height = 0 |
NOTE_wind ** | notar = NULL |
int | notar_num = 0 |
int | num_notes = 0 |
MCW_DC * | dc |
Three_D_View * | im3d |
THD_3dim_dataset * | dset |
MCW_idcode | dset_idc |
int | editor_open = 0 |
char * | default_history [NUM_DH] |
char * | empty_note = "-- Empty Note Text --" |
char * | no_date = "no date" |
MCW_action_item | NOTES_actor [NACT] |
int | ndsl = 0 |
PLUGIN_dataset_link * | dsl = NULL |
Define Documentation
|
Definition at line 224 of file plug_notes.c. Referenced by NOTES_make_widgets(). |
|
Definition at line 40 of file plug_notes.c. Referenced by NOTES_add_CB(), NOTES_finalize_dset_CB(), NOTES_save_CB(), SUMA_StringAppend(), and SUMA_StringAppend_va(). |
|
Definition at line 104 of file plug_notes.c. Referenced by NOTES_finalize_dset_CB(). |
|
Definition at line 43 of file plug_notes.c. Referenced by NOTES_make_widgets(). |
|
Definition at line 39 of file plug_notes.c. Referenced by NOTES_finalize_dset_CB(), NOTES_make_note(), and NOTES_make_widgets(). |
Function Documentation
|
Definition at line 560 of file plug_notes.c. Referenced by NOTES_add_CB(), NOTES_delete_CB(), NOTES_finalize_dset_CB(), and NOTES_refit_CB().
00561 { 00562 char * cpt ; int nlin ; 00563 if( msg == NULL ) return 0 ; 00564 for( nlin=1,cpt=msg ; *cpt != '\0' ; cpt++ ) if( *cpt == '\n' ) nlin++ ; 00565 return nlin ; 00566 } |
|
Definition at line 953 of file plug_notes.c. References add_pb, client_data, MCW_DC::display, empty_note, MCW_DC::height, line_count(), MAX_DSET_NOTES, max_tlines, MCW_popup_message(), MCW_TIMER_KILL, MCW_USER_KILL, MCW_widget_geom(), newstring, no_date, notar_num, noterc, NOTES_make_note(), notesw, num_notes, qh, realloc, scroll_topbot(), tross_Add_Note(), tross_Get_Note(), and tross_Get_Notedate().
00954 { 00955 int nl , hh , ii , qh ; 00956 char str[256] ; 00957 XmString xstr ; 00958 00959 if( dset == NULL ){ XBell(dc->display,100) ; return ; } 00960 00961 if( num_notes >= MAX_DSET_NOTES ){ 00962 (void) MCW_popup_message( add_pb , 00963 " \n" 00964 " Max number of notes\n" 00965 " would be exceeded!\n " , 00966 MCW_USER_KILL | MCW_TIMER_KILL ) ; 00967 XBell(dc->display,100) ; return ; 00968 } 00969 00970 tross_Add_Note( dset , empty_note ) ; 00971 00972 num_notes ++ ; 00973 00974 if( notar_num < num_notes + 1 ){ 00975 notar = (NOTE_wind **) realloc( notar, sizeof(NOTE_wind *)*(num_notes+1) ) ; 00976 for( ii=notar_num ; ii <= num_notes ; ii++ ) 00977 notar[ii] = NOTES_make_note() ; 00978 notar_num = num_notes + 1 ; 00979 } 00980 00981 notar[num_notes]->note_orig = tross_Get_Note ( dset , num_notes ) ; 00982 notar[num_notes]->date_orig = tross_Get_Notedate( dset , num_notes ) ; 00983 00984 if( notar[num_notes]->note_orig == NULL ) 00985 notar[num_notes]->note_orig = newstring( empty_note ) ; 00986 00987 if( notar[num_notes]->date_orig == NULL ) 00988 notar[num_notes]->date_orig = newstring( no_date ) ; 00989 00990 sprintf(str,"----- NOTE %d [%s] -----",num_notes,notar[num_notes]->date_orig) ; 00991 xstr = XmStringCreateLtoR( str , XmFONTLIST_DEFAULT_TAG ) ; 00992 XtVaSetValues( notar[num_notes]->note_label , XmNlabelString , xstr , NULL ) ; 00993 XmStringFree(xstr) ; 00994 XmTextSetString( notar[num_notes]->textw , notar[num_notes]->note_orig ) ; 00995 00996 nl = line_count( notar[num_notes]->note_orig ) ; 00997 if( nl > max_tlines ) nl = max_tlines ; 00998 XtVaSetValues( notar[num_notes]->textw , XmNrows , nl , NULL ) ; 00999 01000 XtManageChild( notar[num_notes]->frame ) ; 01001 01002 /* set size of scrolling area for notes */ 01003 01004 MCW_widget_geom( noterc , NULL,&hh , NULL,NULL ) ; hh +=4 ; qh = hh ; 01005 if( hh > dc->height- 128 ) hh = dc->height- 128 ; 01006 01007 XtVaSetValues( notesw , XmNheight,hh , NULL ) ; 01008 01009 if( qh > hh ) scroll_topbot( notesw , 1 ) ; 01010 return ; 01011 } |
|
Definition at line 723 of file plug_notes.c. References choose_pb, client_data, MCW_DC::display, DSET_COMPRESSED, DSET_NUM_TIMES, DSET_NVALS, dsl, THD_session::dsset, THD_3dim_dataset::func_type, ISANAT, ISANATBUCKET, ISFUNCBUCKET, ISVALID_DSET, make_PLUGIN_dataset_link(), MAX, MCW_choose_strlist(), MCW_popup_message(), MCW_TIMER_KILL, MCW_USER_KILL, ndsl, NOTES_finalize_dset_CB(), THD_session::num_dsset, PLUTO_find_dset(), POPDOWN_strlist_chooser, Three_D_View::ss_now, THD_MAX_NAME, AFNI_view_info::view_type, Three_D_View::vinfo, and XtRealloc. Referenced by NOTES_make_widgets().
00724 { 00725 THD_session * ss = im3d->ss_now ; /* current session */ 00726 int vv = im3d->vinfo->view_type ; /* view type */ 00727 THD_3dim_dataset * qset ; 00728 int id , ltop , llen ; 00729 char qnam[THD_MAX_NAME] , label[THD_MAX_NAME] ; 00730 static char ** strlist = NULL ; 00731 00732 /* initialize */ 00733 00734 ndsl = 0 ; 00735 00736 /* scan datasets */ 00737 00738 for( id=0 ; id < ss->num_dsset ; id++ ){ 00739 qset = ss->dsset[id][vv] ; 00740 00741 if( ! ISVALID_DSET (qset) ) continue ; /* skip */ 00742 00743 ndsl++ ; 00744 dsl = (PLUGIN_dataset_link *) 00745 XtRealloc( (char *) dsl , sizeof(PLUGIN_dataset_link)*ndsl ) ; 00746 00747 make_PLUGIN_dataset_link( qset , dsl + (ndsl-1) ) ; 00748 } 00749 00750 /* found nothing? exit */ 00751 00752 if( ndsl < 1 ){ 00753 (void) MCW_popup_message( choose_pb , 00754 "Didn't find any\ndatasets to edit!" , 00755 MCW_USER_KILL | MCW_TIMER_KILL ) ; 00756 XBell( dc->display , 100 ) ; 00757 return ; 00758 } 00759 00760 /*--- 23 Nov 1996: loop over dataset links and patch their titles 00761 to include an indicator of the dataset type ---*/ 00762 00763 ltop = 4 ; 00764 for( id=0 ; id < ndsl ; id++ ){ 00765 llen = strlen(dsl[id].title) ; 00766 ltop = MAX(ltop,llen) ; 00767 } 00768 00769 for( id=0 ; id < ndsl ; id++ ){ 00770 qset = PLUTO_find_dset( &(dsl[id].idcode) ) ; 00771 if( ! ISVALID_DSET(qset) ) continue ; 00772 if( ISANAT(qset) ){ 00773 if( ISANATBUCKET(qset) ) /* 30 Nov 1997 */ 00774 sprintf(qnam,"%-*s [%s:%d]" , 00775 ltop,dsl[id].title , 00776 ANAT_prefixstr[qset->func_type] , DSET_NVALS(qset) ) ; 00777 00778 else if( DSET_NUM_TIMES(qset) == 1 ) 00779 sprintf(qnam,"%-*s [%s]" , 00780 ltop,dsl[id].title , 00781 ANAT_prefixstr[qset->func_type] ) ; 00782 00783 else 00784 sprintf(qnam,"%-*s [%s:3D+t:%d]" , 00785 ltop,dsl[id].title , 00786 ANAT_prefixstr[qset->func_type] , DSET_NUM_TIMES(qset) ) ; 00787 00788 } else { 00789 if( ISFUNCBUCKET(qset) ) /* 30 Nov 1997 */ 00790 sprintf(qnam,"%-*s [%s:%d]" , 00791 ltop,dsl[id].title , 00792 FUNC_prefixstr[qset->func_type] , DSET_NVALS(qset) ) ; 00793 00794 else if( DSET_NUM_TIMES(qset) == 1 ) 00795 sprintf(qnam,"%-*s [%s]" , 00796 ltop,dsl[id].title , 00797 FUNC_prefixstr[qset->func_type] ) ; 00798 00799 else 00800 sprintf(qnam,"%-*s [%s:3D+t:%d]" , 00801 ltop,dsl[id].title , 00802 FUNC_prefixstr[qset->func_type] , DSET_NVALS(qset) ) ; 00803 } 00804 00805 if( DSET_COMPRESSED(qset) ) strcat(qnam,"z") ; 00806 00807 strcpy( dsl[id].title , qnam ) ; 00808 } 00809 00810 /*--- make a popup chooser for the user to browse ---*/ 00811 00812 POPDOWN_strlist_chooser ; 00813 00814 strlist = (char **) XtRealloc( (char *)strlist , sizeof(char *)*ndsl ) ; 00815 for( id=0 ; id < ndsl ; id++ ) strlist[id] = dsl[id].title ; 00816 00817 sprintf( label , "AFNI Dataset from\nthe %s" , VIEW_typestr[vv] ) ; 00818 00819 MCW_choose_strlist( w , label , ndsl , -1 , strlist , 00820 NOTES_finalize_dset_CB , NULL ) ; 00821 00822 return ; 00823 } |
|
Definition at line 1040 of file plug_notes.c. References client_data, NOTE_wind::date_orig, NOTE_wind::delete_pb, free, MCW_DC::height, line_count(), max_tlines, MCW_widget_geom(), NOTE_wind::note_orig, noterc, notesw, num_notes, tross_Delete_Note(), and XtFree. Referenced by NOTES_make_note().
01041 { 01042 int ii , kk , hh , nl ; 01043 char str[256] , * ts ; 01044 XmString xstr ; 01045 01046 if( dset == NULL ) return ; /* should never happen */ 01047 01048 for( kk=1 ; kk <= num_notes ; kk++ ) 01049 if( w == notar[kk]->delete_pb ) break ; 01050 01051 if( kk > num_notes ) return ; /* should never happen */ 01052 01053 tross_Delete_Note( dset , kk ) ; /* delete it in the dataset */ 01054 01055 /* erase the info in the kk-th Note window */ 01056 01057 free( notar[kk]->note_orig ) ; /* this is history */ 01058 free( notar[kk]->date_orig ) ; 01059 01060 /* move the info in the Note windows above kk down to the previous window */ 01061 01062 for( ii=kk+1 ; ii <= num_notes ; ii++ ){ 01063 notar[ii-1]->note_orig = notar[ii]->note_orig ; /* move the orig */ 01064 notar[ii-1]->date_orig = notar[ii]->date_orig ; /* stuff down */ 01065 01066 ts = XmTextGetString( notar[ii]->textw ) ; /* move the text */ 01067 XmTextSetString( notar[ii-1]->textw , ts ) ; /* in the window */ 01068 nl = line_count( ts ) ; 01069 if( nl > max_tlines ) nl = max_tlines ; 01070 XtVaSetValues( notar[ii-1]->textw , XmNrows , nl , NULL ) ; 01071 XtFree(ts) ; 01072 01073 sprintf(str,"----- NOTE %d [%s] -----",ii-1,notar[ii-1]->date_orig) ; 01074 xstr = XmStringCreateLtoR( str , XmFONTLIST_DEFAULT_TAG ) ; 01075 XtVaSetValues( notar[ii-1]->note_label , XmNlabelString , xstr , NULL ) ; 01076 XmStringFree(xstr) ; 01077 } 01078 01079 notar[num_notes]->note_orig = NULL ; 01080 notar[num_notes]->date_orig = NULL ; 01081 XmTextSetString( notar[num_notes]->textw , "\0" ) ; 01082 XtUnmanageChild( notar[num_notes]->frame ) ; 01083 num_notes-- ; 01084 01085 MCW_widget_geom( noterc , NULL,&hh , NULL,NULL ) ; 01086 if( hh > dc->height- 128 ) hh = dc->height- 128 ; 01087 XtVaSetValues( notesw , XmNheight,hh , NULL ) ; 01088 01089 return ; 01090 } |
|
Definition at line 572 of file plug_notes.c. References client_data, NOTES_quit_CB(), NOTES_save_CB(), and num_notes.
00573 { 00574 if( dset != NULL && num_notes > 0 ) NOTES_save_CB(NULL,NULL,NULL) ; 00575 NOTES_quit_CB(NULL,NULL,NULL) ; 00576 return ; 00577 } |
|
Definition at line 827 of file plug_notes.c. References NOTE_wind::date_orig, default_history, MCW_DC::display, dsl, editor_open, empty_note, fd, free, MCW_DC::height, THD_3dim_dataset::idcode, info_lab, MCW_choose_cbs::ival, line_count(), max_tlines, MCW_widget_geom(), ndsl, newstring, no_date, notar_num, NOTE_wind::note_orig, noterc, NOTES_make_note(), notesw, NUM_DH, num_notes, PLUTO_find_dset(), POPDOWN_strlist_chooser, qh, realloc, scroll_topbot(), text_width, tross_breakup_string(), tross_Get_History(), tross_Get_Note(), tross_Get_Notecount(), tross_Get_Notedate(), TWIDTH, and MCW_DC::width. Referenced by NOTES_choose_CB().
00828 { 00829 int id = cbs->ival ; 00830 THD_3dim_dataset * qset ; 00831 XmString xstr ; 00832 char str[256] , * his ; 00833 int ii , nl , nltot , ww,hh,qh ; 00834 00835 /* check for errors */ 00836 00837 if( ! editor_open ){ POPDOWN_strlist_chooser; XBell(dc->display,100); return; } 00838 00839 if( id < 0 || id >= ndsl ){ XBell(dc->display,100) ; return ; } 00840 00841 qset = PLUTO_find_dset( &(dsl[id].idcode) ) ; /* the new dataset? */ 00842 00843 if( qset == NULL ){ XBell(dc->display,100) ; return ; } 00844 00845 /* accept this dataset */ 00846 00847 dset = qset ; 00848 dset_idc = qset->idcode ; /* 31 Mar 1999 */ 00849 00850 /* write the informational label */ 00851 00852 strcpy(str,dsl[id].title) ; 00853 xstr = XmStringCreateLtoR( str , XmFONTLIST_DEFAULT_TAG ) ; 00854 XtVaSetValues( info_lab , XmNlabelString , xstr , NULL ) ; 00855 XmStringFree(xstr) ; 00856 00857 /* clear any existing notes windows */ 00858 00859 XtUnmanageChild( notesw ) ; 00860 XtUnmanageChild( noterc ) ; 00861 for( ii=0 ; ii < notar_num ; ii++ ){ 00862 XtUnmanageChild( notar[ii]->frame ) ; 00863 00864 if( notar[ii]->note_orig != NULL ){ 00865 free(notar[ii]->note_orig) ; notar[ii]->note_orig = NULL ; 00866 } 00867 00868 if( notar[ii]->date_orig != NULL ){ 00869 free(notar[ii]->date_orig) ; notar[ii]->date_orig = NULL ; 00870 } 00871 } 00872 00873 /* make new Notes windows, if necessary */ 00874 00875 num_notes = tross_Get_Notecount( dset ) ; 00876 00877 if( notar_num < num_notes + 1 ){ 00878 notar = (NOTE_wind **) realloc( notar, sizeof(NOTE_wind *)*(num_notes+1) ) ; 00879 for( ii=notar_num ; ii <= num_notes ; ii++ ) 00880 notar[ii] = NOTES_make_note() ; 00881 notar_num = num_notes + 1 ; 00882 } 00883 00884 /* get and set Notes text for each window */ 00885 00886 his = tross_Get_History( dset ) ; 00887 if( his == NULL ){ 00888 ii = ( lrand48() >> 8) % NUM_DH ; 00889 notar[0]->note_orig = newstring(default_history[ii]) ; 00890 xstr = XmStringCreateLtoR( "----- EDIFYING TEXT -----" , XmFONTLIST_DEFAULT_TAG ) ; 00891 } else { 00892 notar[0]->note_orig = tross_breakup_string( his , 2*TWIDTH/3 , TWIDTH-1 ) ; 00893 free(his) ; 00894 xstr = XmStringCreateLtoR( "----- HISTORY -----" , XmFONTLIST_DEFAULT_TAG ) ; 00895 } 00896 notar[0]->date_orig = NULL ; 00897 00898 XtVaSetValues( notar[0]->note_label , XmNlabelString , xstr , NULL ) ; 00899 XmStringFree(xstr) ; 00900 XmTextSetString( notar[0]->textw , notar[0]->note_orig ) ; 00901 00902 nl = line_count( notar[0]->note_orig ) ; 00903 if( nl > max_tlines ) nl = max_tlines ; 00904 XtVaSetValues( notar[0]->textw , XmNrows , nl , NULL ) ; 00905 nltot = nl ; 00906 00907 XtManageChild( notar[0]->frame ) ; 00908 00909 for( ii=1 ; ii <= num_notes ; ii++ ){ 00910 notar[ii]->note_orig = tross_Get_Note ( dset , ii ) ; 00911 notar[ii]->date_orig = tross_Get_Notedate( dset , ii ) ; 00912 00913 if( notar[ii]->note_orig == NULL ) 00914 notar[ii]->note_orig = newstring( empty_note ) ; 00915 00916 if( notar[ii]->date_orig == NULL ) 00917 notar[ii]->date_orig = newstring( no_date ) ; 00918 00919 sprintf(str,"----- NOTE %d [%s] -----",ii,notar[ii]->date_orig) ; 00920 xstr = XmStringCreateLtoR( str , XmFONTLIST_DEFAULT_TAG ) ; 00921 XtVaSetValues( notar[ii]->note_label , XmNlabelString , xstr , NULL ) ; 00922 XmStringFree(xstr) ; 00923 XmTextSetString( notar[ii]->textw , notar[ii]->note_orig ) ; 00924 00925 nl = line_count( notar[ii]->note_orig ) ; 00926 if( nl > max_tlines ) nl = max_tlines ; 00927 XtVaSetValues( notar[ii]->textw , XmNrows , nl , NULL ) ; 00928 nltot += nl ; 00929 00930 XtManageChild( notar[ii]->frame ) ; 00931 } 00932 00933 XtVaSetValues( notar[0]->scrollw , XmNwidth , text_width , NULL ) ; 00934 00935 XtManageChild( noterc ) ; 00936 XtManageChild( notesw ) ; 00937 00938 /* set size of scrolling area for notes */ 00939 00940 MCW_widget_geom( noterc , &ww,&hh , NULL,NULL ) ; 00941 ww += 4 ; hh += 4 ; qh = hh ; 00942 if( ww > dc->width - 128 ) ww = dc->width - 128 ; 00943 if( hh > dc->height- 128 ) hh = dc->height- 128 ; 00944 00945 XtVaSetValues( notesw , XmNwidth,ww , XmNheight,hh , NULL ) ; 00946 00947 if( qh > hh ) scroll_topbot( notesw , 0 ) ; 00948 return ; 00949 } |
|
Definition at line 659 of file plug_notes.c. References choose_pb, client_data, new_MCW_textwin(), and TEXT_READONLY.
00660 { 00661 (void ) new_MCW_textwin( choose_pb , 00662 00663 " \n" 00664 "This plugin is used to view and edit the Notes attached to a dataset.\n" 00665 "---------------------------------------------------------------------\n" 00666 "The buttons at the top perform the following functions:\n" 00667 "\n" 00668 " Choose Dataset: Use this to select a dataset to deal with.\n" 00669 "\n" 00670 " Quit: Exit the plugin without saving any edits to Notes\n" 00671 " made since the last 'Save' button press.\n" 00672 "\n" 00673 " Help: I hope you already got the idea for this widget.\n" 00674 "\n" 00675 " Add: Add a new Note at the end of the existing notes.\n" 00676 "\n" 00677 " Refit: Resize all Notes' sub-windows to fit the number of\n" 00678 " lines of text in each Note. The maximum line count\n" 00679 " for each sub-window is set by the Unix environment\n" 00680 " variable AFNI_NOTES_DLINES; if this is not defined,\n" 00681 " the default maximum is 9.\n" 00682 "\n" 00683 " Save: Save the current Notes to the dataset .HEAD file.\n" 00684 "\n" 00685 " Done: Save then Quit.\n" 00686 "-------------------------------------------------------------------------- \n" 00687 "Below these buttons are the Notes sub-windows.\n" 00688 "\n" 00689 "The first Note sub-window shows the dataset History Note. This Note can't\n" 00690 "be edited by the user - it is created by each AFNI program as a record of\n" 00691 "the actions that led to this dataset. If no History Note is present in the\n" 00692 "dataset .HEAD file, some edifying text will be shown here instead.\n" 00693 "\n" 00694 "Each other Note sub-window shows the Note number, the date of the Note's\n" 00695 "creation (or last change), and the Note itself. These windows are\n" 00696 "editable. If you want to remove a Note from the dataset, use the\n" 00697 "Delete button for that Note. (This operation is NOT reversible - using\n" 00698 "the Quit button will not get a deleted Note back!) If you edit a note\n" 00699 "badly and want to restore it to the value saved in the dataset header,\n" 00700 "use the Restore button.\n" 00701 "\n" 00702 "Notes can also be viewed with the program 3dinfo, and with the Info\n" 00703 "buttons from the Datamode/Misc menu. The command line program 3dNotes\n" 00704 "lets you create dataset Notes in a batch script file.\n" 00705 "\n" 00706 "--- Bob Cox - September 1999\n" 00707 " (Based on ideas and some code from Tom Ross of MCW)\n" 00708 00709 , TEXT_READONLY ) ; 00710 00711 return ; 00712 } |
|
Definition at line 157 of file plug_notes.c. References AFNI_controller_label(), Three_D_View::dc, editor_open, IM3D_OPEN, info_lab, notar_num, noterc, NOTES_make_widgets(), notesw, num_notes, plint, PLUTO_cursorize, PLUTO_set_topshell(), RWC_visibilize_widget(), and shell. Referenced by PLUGIN_init().
00158 { 00159 XmString xstr ; 00160 int ii ; 00161 00162 /*-- sanity checks --*/ 00163 00164 if( ! IM3D_OPEN(plint->im3d) ) return "AFNI Controller\nnot opened?!" ; 00165 00166 if( editor_open ){ 00167 XtMapWidget(shell) ; 00168 XRaiseWindow( XtDisplay(shell) , XtWindow(shell) ) ; 00169 return NULL ; 00170 } 00171 00172 im3d = plint->im3d ; /* save for local use */ 00173 00174 /*-- create widgets, first time through --*/ 00175 00176 if( shell == NULL ){ 00177 dc = im3d->dc ; /* save this too */ 00178 NOTES_make_widgets() ; 00179 PLUTO_set_topshell( plint , shell ) ; /* 22 Sep 2000 */ 00180 RWC_visibilize_widget( shell ) ; /* 27 Sep 2000 */ 00181 } 00182 00183 /*-- unmanage all notes sub-windows --*/ 00184 00185 XtUnmanageChild( notesw ) ; 00186 XtUnmanageChild( noterc ) ; 00187 for( ii=0 ; ii < notar_num ; ii++ ) 00188 XtUnmanageChild( notar[ii]->frame ) ; 00189 00190 /*-- set titlebar --*/ 00191 00192 { char ttl[32] ; 00193 sprintf( ttl , "AFNI Notes %s" , AFNI_controller_label(im3d) ) ; 00194 XtVaSetValues( shell , XmNtitle , ttl , NULL ) ; 00195 } 00196 00197 /*-- set the info label --*/ 00198 00199 xstr = XmStringCreateLtoR( "[No dataset]" , 00200 XmFONTLIST_DEFAULT_TAG ) ; 00201 XtVaSetValues( info_lab , XmNlabelString , xstr , NULL ) ; 00202 XmStringFree(xstr) ; 00203 00204 /*-- pop the widget up --*/ 00205 00206 XtMapWidget(shell) ; 00207 PLUTO_cursorize(shell) ; 00208 00209 /*-- misc initialization --*/ 00210 00211 dset = NULL ; /* not editing anything */ 00212 editor_open = 1 ; /* editor is now open for business */ 00213 num_notes = 0 ; /* don't have any notes now */ 00214 00215 return NULL ; 00216 } |
|
Definition at line 455 of file plug_notes.c. References calloc, NOTE_wind::date_orig, NOTE_wind::delete_pb, NOTE_wind::frame, NOTE_wind::horz_rc, MCW_register_help(), MCW_register_hint(), NOTE_wind::note_label, NOTE_wind::note_orig, noterc, NOTES_delete_CB(), NOTES_restore_CB(), NOTE_wind::restore_pb, NOTE_wind::scrollw, NOTE_wind::textw, TWIDTH, and NOTE_wind::vert_rc. Referenced by NOTES_add_CB(), NOTES_finalize_dset_CB(), and NOTES_make_widgets().
00456 { 00457 NOTE_wind * nw ; 00458 XmString xstr ; 00459 00460 nw = (NOTE_wind *) calloc( 1 , sizeof(NOTE_wind) ) ; 00461 00462 nw->frame = XtVaCreateWidget( 00463 "AFNI" , xmFrameWidgetClass , noterc , 00464 XmNshadowType , XmSHADOW_IN , 00465 XmNshadowThickness , 1 , 00466 XmNtraversalOn , False , 00467 NULL ) ; 00468 00469 nw->vert_rc = XtVaCreateWidget( 00470 "AFNI" , xmRowColumnWidgetClass , nw->frame , 00471 XmNpacking , XmPACK_TIGHT , 00472 XmNorientation , XmVERTICAL , 00473 XmNtraversalOn , False , 00474 XmNmarginHeight, 0 , 00475 XmNmarginWidth , 0 , 00476 NULL ) ; 00477 00478 nw->horz_rc = XtVaCreateWidget( 00479 "AFNI" , xmRowColumnWidgetClass , nw->vert_rc , 00480 XmNpacking , XmPACK_TIGHT , 00481 XmNorientation , XmHORIZONTAL , 00482 XmNtraversalOn , False , 00483 XmNmarginHeight, 0 , 00484 XmNmarginWidth , 0 , 00485 NULL ) ; 00486 00487 nw->note_label = XtVaCreateManagedWidget( 00488 "AFNI" , xmLabelWidgetClass , nw->horz_rc , 00489 XmNmarginHeight, 0 , 00490 XmNmarginWidth , 0 , 00491 NULL ) ; 00492 00493 xstr = XmStringCreateLtoR( "Delete" , XmFONTLIST_DEFAULT_TAG ) ; 00494 nw->delete_pb = XtVaCreateManagedWidget( 00495 "AFNI" , xmPushButtonWidgetClass , nw->horz_rc , 00496 XmNlabelString , xstr , 00497 XmNtraversalOn , False , 00498 XmNmarginHeight, 0 , 00499 XmNmarginWidth , 0 , 00500 NULL ) ; 00501 XmStringFree(xstr) ; 00502 XtAddCallback( nw->delete_pb, XmNactivateCallback, NOTES_delete_CB, NULL ) ; 00503 MCW_register_help( nw->delete_pb , 00504 "Use this button to delete\n" 00505 "this Note from the dataset." 00506 ) ; 00507 MCW_register_hint( nw->delete_pb , "Delete this Note" ) ; 00508 00509 xstr = XmStringCreateLtoR( "Restore" , XmFONTLIST_DEFAULT_TAG ) ; 00510 nw->restore_pb = XtVaCreateManagedWidget( 00511 "AFNI" , xmPushButtonWidgetClass , nw->horz_rc , 00512 XmNlabelString , xstr , 00513 XmNtraversalOn , False , 00514 XmNmarginHeight, 0 , 00515 XmNmarginWidth , 0 , 00516 NULL ) ; 00517 XmStringFree(xstr) ; 00518 XtAddCallback( nw->restore_pb, XmNactivateCallback, NOTES_restore_CB, NULL ) ; 00519 MCW_register_help( nw->restore_pb , 00520 "Use this button to restore\n" 00521 "this Note to its original\n" 00522 "value (i.e., as it currently\n" 00523 "stored on in the HEAD file)." 00524 ) ; 00525 MCW_register_hint( nw->restore_pb , "Restore Note from disk" ) ; 00526 00527 XtManageChild(nw->horz_rc) ; 00528 00529 (void) XtVaCreateManagedWidget( 00530 "AFNI" , xmSeparatorWidgetClass , nw->vert_rc , 00531 XmNseparatorType , XmSINGLE_LINE , 00532 NULL ) ; 00533 00534 nw->scrollw = XtVaCreateManagedWidget( 00535 "AFNI" , xmScrolledWindowWidgetClass , nw->vert_rc , 00536 XmNscrollingPolicy , XmAPPLICATION_DEFINED , 00537 XmNvisualPolicy , XmVARIABLE , 00538 XmNshadowThickness , 0 , 00539 NULL ) ; 00540 00541 nw->textw = XtVaCreateManagedWidget( 00542 "AFNI" , xmTextWidgetClass , nw->scrollw , 00543 XmNeditMode , XmMULTI_LINE_EDIT , 00544 XmNautoShowCursorPosition , True , 00545 XmNeditable , True , 00546 XmNcursorPositionVisible , True , 00547 XmNcolumns , TWIDTH , 00548 XmNrows , 1 , 00549 XmNwordWrap , True , 00550 NULL ) ; 00551 00552 XtManageChild(nw->vert_rc) ; /* we DON'T manage the frame */ 00553 00554 nw->note_orig = nw->date_orig = NULL ; 00555 return nw ; 00556 } |
|
Definition at line 248 of file plug_notes.c. References add_pb, cbuf, choose_pb, MCW_action_item::data, DC_yokify(), MCW_DC::display, done_pb, help_pb, info_lab, malloc, max_tlines, MCW_action_area(), MCW_register_help(), MCW_register_hint(), my_getenv(), NACT, notar_num, noterc, NOTES_choose_CB(), NOTES_make_note(), NOTES_quit_CB(), notesw, plint, quit_pb, refit_pb, save_pb, shell, text_height, text_width, THEIGHT, topman, and TWIDTH. Referenced by NOTES_main().
00249 { 00250 XmString xstr ; 00251 Widget twid , tsep ; 00252 00253 /*** get max # of text lines ***/ 00254 00255 if( max_tlines < 1 ){ 00256 char * cc = my_getenv("AFNI_NOTES_DLINES") ; 00257 if( cc != NULL ) max_tlines = strtol( cc , NULL , 10 ) ; 00258 00259 if( max_tlines < 1 ) max_tlines = THEIGHT ; 00260 else if( max_tlines > 99 ) max_tlines = 99 ; /* 15 Sep 1999 */ 00261 } 00262 00263 /*** top level shell for window manager ***/ 00264 00265 shell = 00266 XtVaAppCreateShell( 00267 "AFNI" , "AFNI" , topLevelShellWidgetClass , dc->display , 00268 00269 XmNtitle , "Notes Editor" , /* top of window */ 00270 XmNiconName , "Notes" , /* label on icon */ 00271 XmNdeleteResponse , XmDO_NOTHING , /* deletion handled below */ 00272 XmNallowShellResize , True , /* let code resize shell? */ 00273 XmNmappedWhenManaged , False , /* must map it manually */ 00274 NULL ) ; 00275 00276 DC_yokify( shell , dc ) ; 00277 00278 if( afni48_good ) /* set icon pixmap */ 00279 XtVaSetValues( shell , 00280 XmNiconPixmap , afni48_pixmap , 00281 NULL ) ; 00282 00283 XmAddWMProtocolCallback( /* make "Close" window menu work */ 00284 shell , 00285 XmInternAtom( dc->display , "WM_DELETE_WINDOW" , False ) , 00286 NOTES_quit_CB , (XtPointer) plint ) ; 00287 00288 /*** Form widget to hold all user interface stuff ***/ 00289 00290 topman = XtVaCreateWidget( 00291 "AFNI" , xmFormWidgetClass , shell , 00292 XmNborderWidth , 0 , 00293 XmNborderColor , 0 , 00294 XmNtraversalOn , False , 00295 NULL ) ; 00296 00297 /*** horizontal rowcol to hold top row of controls ***/ 00298 00299 twid = XtVaCreateWidget( 00300 "AFNI" , xmRowColumnWidgetClass , topman , 00301 XmNpacking , XmPACK_TIGHT , 00302 XmNorientation , XmHORIZONTAL , 00303 XmNtraversalOn , False , 00304 XmNleftAttachment , XmATTACH_FORM , 00305 XmNrightAttachment, XmATTACH_FORM , 00306 XmNtopAttachment , XmATTACH_FORM , 00307 XmNtopOffset , 1 , 00308 NULL ) ; 00309 00310 /*** button to let user choose dataset to edit ***/ 00311 00312 xstr = XmStringCreateLtoR( "Choose Dataset" , XmFONTLIST_DEFAULT_TAG ) ; 00313 choose_pb = XtVaCreateManagedWidget( 00314 "AFNI" , xmPushButtonWidgetClass , twid , 00315 XmNlabelString , xstr , 00316 XmNtraversalOn , False , 00317 NULL ) ; 00318 XmStringFree(xstr) ; 00319 XtAddCallback( choose_pb, XmNactivateCallback, NOTES_choose_CB, NULL ) ; 00320 MCW_register_help( choose_pb , 00321 "Use this to popup a\n" 00322 "'chooser' that lets\n" 00323 "you select which\n" 00324 "dataset to edit." 00325 ) ; 00326 MCW_register_hint( choose_pb , "Popup a dataset chooser" ) ; 00327 00328 /*** label at top to let user know who we are ***/ 00329 00330 xstr = XmStringCreateLtoR( "[No dataset]" , XmFONTLIST_DEFAULT_TAG ) ; 00331 info_lab = XtVaCreateManagedWidget( 00332 "AFNI" , xmLabelWidgetClass , twid , 00333 XmNlabelString , xstr , 00334 NULL ) ; 00335 XmStringFree(xstr) ; 00336 MCW_register_help( info_lab , "Shows dataset being edited" ) ; 00337 MCW_register_hint( info_lab , "Dataset being edited" ) ; 00338 00339 XtManageChild(twid) ; /*** end of top row ***/ 00340 00341 /*** separator for visual neatness ***/ 00342 00343 tsep = XtVaCreateManagedWidget( 00344 "AFNI" , xmSeparatorWidgetClass , topman , 00345 XmNseparatorType , XmSINGLE_LINE , 00346 XmNleftAttachment , XmATTACH_FORM , 00347 XmNrightAttachment , XmATTACH_FORM , 00348 XmNtopAttachment , XmATTACH_WIDGET , 00349 XmNtopWidget , info_lab , 00350 XmNtopOffset , 1 , 00351 NULL ) ; 00352 00353 /*** a set of action buttons below the line ***/ 00354 00355 twid = MCW_action_area( topman , NOTES_actor , NACT ) ; 00356 00357 XtVaSetValues( twid , 00358 XmNleftAttachment , XmATTACH_FORM , 00359 XmNrightAttachment, XmATTACH_FORM , 00360 XmNtopAttachment , XmATTACH_WIDGET , 00361 XmNtopWidget , tsep , 00362 XmNtopOffset , 1 , 00363 NULL ) ; 00364 00365 quit_pb = (Widget) NOTES_actor[0].data ; 00366 help_pb = (Widget) NOTES_actor[1].data ; 00367 add_pb = (Widget) NOTES_actor[2].data ; 00368 refit_pb = (Widget) NOTES_actor[3].data ; 00369 save_pb = (Widget) NOTES_actor[4].data ; 00370 done_pb = (Widget) NOTES_actor[5].data ; 00371 00372 /*** separator for visual neatness ***/ 00373 00374 tsep = XtVaCreateManagedWidget( 00375 "AFNI" , xmSeparatorWidgetClass , topman , 00376 XmNseparatorType , XmSINGLE_LINE , 00377 XmNleftAttachment , XmATTACH_FORM , 00378 XmNrightAttachment , XmATTACH_FORM , 00379 XmNtopAttachment , XmATTACH_WIDGET , 00380 XmNtopWidget , twid , 00381 XmNtopOffset , 1 , 00382 NULL ) ; 00383 00384 /*** a scrolled window + rowcol to hold all the Notes windows ***/ 00385 00386 notesw = XtVaCreateWidget( 00387 "AFNI" , xmScrolledWindowWidgetClass , topman , 00388 XmNscrollingPolicy , XmAUTOMATIC , 00389 XmNvisualPolicy , XmCONSTANT , 00390 XmNshadowThickness , 0 , 00391 XmNscrollBarDisplayPolicy , XmAS_NEEDED , 00392 XmNscrollBarPlacement , XmTOP_LEFT , 00393 XmNleftAttachment , XmATTACH_FORM , 00394 XmNrightAttachment , XmATTACH_FORM , 00395 XmNbottomAttachment, XmATTACH_FORM , 00396 XmNtopAttachment , XmATTACH_WIDGET , 00397 XmNtopWidget , tsep , 00398 XmNtopOffset , 1 , 00399 NULL ) ; 00400 00401 noterc = XtVaCreateWidget( 00402 "AFNI" , xmRowColumnWidgetClass , notesw , 00403 XmNpacking , XmPACK_TIGHT , 00404 XmNorientation , XmVERTICAL , 00405 XmNmarginHeight, 0 , 00406 XmNmarginWidth , 0 , 00407 XmNtraversalOn , False , 00408 NULL ) ; 00409 00410 /**** make an initial Note window 00411 and modify it to be readonly - for the History ****/ 00412 00413 notar = (NOTE_wind **) malloc( sizeof(NOTE_wind *) ) ; 00414 notar[0] = NOTES_make_note() ; 00415 notar_num = 1 ; 00416 00417 XtUnmanageChild( notar[0]->delete_pb ) ; /* these actions not */ 00418 XtUnmanageChild( notar[0]->restore_pb ) ; /* allowed for History */ 00419 XtVaSetValues( notar[0]->textw , 00420 XmNautoShowCursorPosition , False , 00421 XmNeditable , False , 00422 XmNcursorPositionVisible , False , 00423 NULL ) ; 00424 xstr = XmStringCreateLtoR( "----- History -----" , XmFONTLIST_DEFAULT_TAG ) ; 00425 XtVaSetValues( notar[0]->note_label , XmNlabelString , xstr , NULL ) ; 00426 MCW_register_hint( notar[0]->textw , "Dataset History; or Edifying Text" ) ; 00427 00428 /*** compute width of popup window ***/ 00429 00430 { char cbuf[TWIDTH+8] ; int ii ; 00431 XmFontList xflist ; 00432 00433 for( ii=0; ii < TWIDTH+3; ii++ ) cbuf[ii] = 'x' ; cbuf[ii] = '\0' ; 00434 xstr = XmStringCreateLtoR( cbuf , XmFONTLIST_DEFAULT_TAG ) ; 00435 XtVaGetValues( notar[0]->textw , XmNfontList , &xflist , NULL ) ; 00436 text_width = XmStringWidth ( xflist , xstr ) + 14 ; 00437 text_height = XmStringHeight( xflist , xstr ) ; 00438 XmStringFree( xstr ) ; 00439 ii = WidthOfScreen(XtScreen(shell)) - 128 ; 00440 if( text_width > ii ) text_width = ii ; 00441 } 00442 00443 /*** done ***/ 00444 00445 XtManageChild(topman) ; 00446 XtRealizeWidget(shell) ; /* will not be mapped */ 00447 00448 return ; 00449 } |
|
Definition at line 583 of file plug_notes.c. References client_data, NOTE_wind::date_orig, editor_open, free, notar_num, NOTE_wind::note_orig, noterc, notesw, and shell. Referenced by NOTES_done_CB(), and NOTES_make_widgets().
00584 { 00585 int ii ; 00586 00587 XtUnmapWidget( shell ) ; editor_open = 0 ; dset = NULL ; 00588 00589 XtUnmanageChild( notesw ) ; 00590 XtUnmanageChild( noterc ) ; 00591 for( ii=0 ; ii < notar_num ; ii++ ){ 00592 XtUnmanageChild( notar[ii]->frame ) ; 00593 00594 if( notar[ii]->note_orig != NULL ){ 00595 free(notar[ii]->note_orig) ; notar[ii]->note_orig = NULL ; 00596 } 00597 00598 if( notar[ii]->date_orig != NULL ){ 00599 free(notar[ii]->date_orig) ; notar[ii]->date_orig = NULL ; 00600 } 00601 00602 XmTextSetString( notar[ii]->textw , "\0" ) ; /* to save some space */ 00603 } 00604 00605 return ; 00606 } |
|
Definition at line 1015 of file plug_notes.c. References client_data, MCW_DC::display, MCW_DC::height, line_count(), max_tlines, MCW_widget_geom(), noterc, notesw, num_notes, qh, and XtFree.
01016 { 01017 int ii , hh , nl , qh ; 01018 char * ts ; 01019 01020 if( dset == NULL ){ XBell(dc->display,100) ; return ; } 01021 01022 for( ii=0 ; ii <= num_notes ; ii++ ){ 01023 ts = XmTextGetString( notar[ii]->textw ) ; /* get text in window */ 01024 nl = line_count( ts ) ; XtFree( ts ) ; /* count lines */ 01025 if( nl > max_tlines ) nl = max_tlines ; 01026 XtVaSetValues( notar[ii]->textw , XmNrows , nl , NULL ) ; 01027 } 01028 01029 /* set size of scrolling area for notes */ 01030 01031 MCW_widget_geom( noterc , NULL,&hh , NULL,NULL ) ; hh += 4 ; qh = hh ; 01032 if( hh > dc->height- 128 ) hh = dc->height- 128 ; 01033 01034 XtVaSetValues( notesw , XmNheight,hh , NULL ) ; 01035 return ; 01036 } |
|
Definition at line 1094 of file plug_notes.c. References client_data, num_notes, and NOTE_wind::restore_pb. Referenced by NOTES_make_note().
01095 { 01096 int kk ; 01097 01098 if( dset == NULL ) return ; /* should never happen */ 01099 01100 for( kk=1 ; kk <= num_notes ; kk++ ) 01101 if( w == notar[kk]->restore_pb ) break ; 01102 01103 if( kk > num_notes ) return ; /* should never happen */ 01104 01105 XmTextSetString( notar[kk]->textw , notar[kk]->note_orig ) ; 01106 return ; 01107 } |
|
Definition at line 612 of file plug_notes.c. References client_data, NOTE_wind::date_orig, MCW_DC::display, DSET_write_header, free, MCW_invert_widget(), MCW_popup_message(), MCW_TIMER_KILL, MCW_USER_KILL, newstring, NOTE_wind::note_orig, num_notes, save_pb, tross_Get_Notedate(), tross_Store_Note(), and XtFree. Referenced by NOTES_done_CB().
00613 { 00614 int ii , nnew ; 00615 char * nstr , str[256] ; 00616 XmString xstr ; 00617 00618 if( dset == NULL || num_notes == 0 ){ XBell(dc->display,100); return; } 00619 00620 MCW_invert_widget(save_pb) ; 00621 00622 /* copy notes in windows into dataset, if they are changed */ 00623 00624 for( nnew=0,ii=1 ; ii <= num_notes ; ii++ ){ 00625 nstr = XmTextGetString( notar[ii]->textw ) ; /* get text in window */ 00626 if( strcmp(nstr,notar[ii]->note_orig) != 0 ){ /* compare to original */ 00627 00628 tross_Store_Note( dset , ii , nstr ) ; nnew++ ; /* save it */ 00629 free( notar[ii]->note_orig ) ; /* make new copy */ 00630 notar[ii]->note_orig = newstring(nstr) ; 00631 free( notar[ii]->date_orig ) ; /* re-fetch date */ 00632 notar[ii]->date_orig = tross_Get_Notedate( dset , ii ) ; 00633 00634 sprintf(str,"----- NOTE %d [%s] -----",ii,notar[ii]->date_orig) ; 00635 xstr = XmStringCreateLtoR( str , XmFONTLIST_DEFAULT_TAG ) ; 00636 XtVaSetValues( notar[ii]->note_label , XmNlabelString , xstr , NULL ) ; 00637 XmStringFree(xstr) ; 00638 } 00639 XtFree(nstr) ; 00640 } 00641 00642 /* now save notes */ 00643 00644 if( nnew > 0 ) 00645 DSET_write_header(dset) ; 00646 else if( w != NULL ) 00647 (void) MCW_popup_message( save_pb , 00648 " \n Nothing has changed! \n " , 00649 MCW_USER_KILL | MCW_TIMER_KILL ) ; 00650 00651 MCW_invert_widget(save_pb) ; 00652 return ; 00653 } |
|
Definition at line 56 of file plug_notes.c. References NOTES_main(), plint, PLUTO_add_hint(), and PLUTO_set_sequence().
00057 { 00058 00059 if( ncall > 0 ) return NULL ; /* only one interface */ 00060 00061 plint = PLUTO_new_interface( "Dataset NOTES" , NULL , NULL , 00062 PLUGIN_CALL_IMMEDIATELY , NOTES_main ) ; 00063 00064 PLUTO_add_hint( plint , "Edit/View Notes attached to dataset" ) ; 00065 00066 PLUTO_set_sequence( plint , "A:olddset:notes" ) ; 00067 00068 return plint ; 00069 } |
|
Definition at line 1111 of file plug_notes.c. References sb. Referenced by NOTES_add_CB(), and NOTES_finalize_dset_CB().
01112 { 01113 Widget sb=NULL ; 01114 int val,siz,inc,pag , smin,smax ; 01115 01116 if( sw == NULL ) return ; 01117 01118 XtVaGetValues( sw , 01119 XmNverticalScrollBar , &sb , 01120 XmNmaximum , &smax , 01121 XmNminimum , &smin , 01122 NULL ) ; 01123 if( sb == NULL ) return ; 01124 01125 XmScrollBarGetValues( sb , &val,&siz,&inc,&pag ) ; 01126 01127 if( where == 0 ) val = smin ; /* to top */ 01128 else val = smax ; /* to bot */ 01129 01130 XmScrollBarSetValues( sb , val,siz,inc,pag , True ) ; 01131 return ; 01132 } |
Variable Documentation
|
Definition at line 87 of file plug_notes.c. Referenced by NOTES_add_CB(), and NOTES_make_widgets(). |
|
Definition at line 86 of file plug_notes.c. Referenced by NOTES_choose_CB(), NOTES_help_CB(), and NOTES_make_widgets(). |
|
Definition at line 97 of file plug_notes.c. |
|
Definition at line 105 of file plug_notes.c. Referenced by NOTES_finalize_dset_CB(). |
|
Definition at line 87 of file plug_notes.c. Referenced by NOTES_make_widgets(). |
|
Definition at line 99 of file plug_notes.c. |
|
Definition at line 100 of file plug_notes.c. |
|
Definition at line 721 of file plug_notes.c. Referenced by NOTES_choose_CB(), and NOTES_finalize_dset_CB(). |
|
Definition at line 102 of file plug_notes.c. Referenced by NOTES_finalize_dset_CB(), NOTES_main(), and NOTES_quit_CB(). |
|
Definition at line 152 of file plug_notes.c. Referenced by NOTES_add_CB(), and NOTES_finalize_dset_CB(). |
|
Definition at line 87 of file plug_notes.c. Referenced by NOTES_make_widgets(). |
|
Definition at line 98 of file plug_notes.c. |
|
Definition at line 86 of file plug_notes.c. Referenced by NOTES_finalize_dset_CB(), NOTES_main(), and NOTES_make_widgets(). |
|
Definition at line 44 of file plug_notes.c. Referenced by NOTES_add_CB(), NOTES_delete_CB(), NOTES_finalize_dset_CB(), NOTES_make_widgets(), and NOTES_refit_CB(). |
|
Definition at line 720 of file plug_notes.c. Referenced by NOTES_choose_CB(), and NOTES_finalize_dset_CB(). |
|
Definition at line 153 of file plug_notes.c. Referenced by NOTES_add_CB(), and NOTES_finalize_dset_CB(). |
|
Definition at line 93 of file plug_notes.c. |
|
Definition at line 94 of file plug_notes.c. Referenced by NOTES_add_CB(), NOTES_finalize_dset_CB(), NOTES_main(), NOTES_make_widgets(), and NOTES_quit_CB(). |
|
Definition at line 88 of file plug_notes.c. Referenced by NOTES_add_CB(), NOTES_delete_CB(), NOTES_finalize_dset_CB(), NOTES_main(), NOTES_make_note(), NOTES_make_widgets(), NOTES_quit_CB(), and NOTES_refit_CB(). |
|
Initial value: { {"Quit",NOTES_quit_CB,NULL, "Discard edits since last\nSave and close Editor" , "Discard edits and close",0} , {"Help",NOTES_help_CB,NULL, "Displays more help" , "Displays more help",0} , {"Add",NOTES_add_CB,NULL, "Add a new Note to the\nlist (at the end)", "Add a new Note" , 0 } , {"Refit",NOTES_refit_CB,NULL, "Resize the Notes' sub-windows\nto fit the Notes' texts." , "Resize Notes sub-windows" , 0 } , {"Save",NOTES_save_CB,NULL, "Save edits to disk\nand continue" , "Save to disk; continue",0} , {"Done",NOTES_done_CB,NULL, "Save edits to disk\nand close Editor" , "Save and Quit",1} } Definition at line 226 of file plug_notes.c. |
|
Definition at line 88 of file plug_notes.c. Referenced by NOTES_add_CB(), NOTES_delete_CB(), NOTES_finalize_dset_CB(), NOTES_main(), NOTES_make_widgets(), NOTES_quit_CB(), and NOTES_refit_CB(). |
|
Definition at line 95 of file plug_notes.c. Referenced by NOTES_add_CB(), NOTES_delete_CB(), NOTES_done_CB(), NOTES_finalize_dset_CB(), NOTES_main(), NOTES_refit_CB(), NOTES_restore_CB(), and NOTES_save_CB(). |
|
Definition at line 37 of file plug_notes.c. Referenced by NOTES_main(), NOTES_make_widgets(), and PLUGIN_init(). |
|
Definition at line 87 of file plug_notes.c. Referenced by NOTES_make_widgets(). |
|
Definition at line 88 of file plug_notes.c. Referenced by NOTES_make_widgets(). |
|
Definition at line 87 of file plug_notes.c. Referenced by NOTES_make_widgets(), and NOTES_save_CB(). |
|
Definition at line 86 of file plug_notes.c. Referenced by NOTES_main(), NOTES_make_widgets(), and NOTES_quit_CB(). |
|
Definition at line 91 of file plug_notes.c. Referenced by NOTES_make_widgets(). |
|
Definition at line 90 of file plug_notes.c. Referenced by NOTES_finalize_dset_CB(), and NOTES_make_widgets(). |
|
Definition at line 86 of file plug_notes.c. Referenced by NOTES_make_widgets(). |