|  |  | @@ -17,14 +17,14 @@ | 
		
	
		
			
			|  |  |  | /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | 
		
	
		
			
			|  |  |  | /*******************************************************************************/ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | #include "settings.H" | 
		
	
		
			
			|  |  |  | #include "Fl_Menu_Settings.H" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | #include <string.h> | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | /* code to dump and restore (portions of) an Fl_Menu_ */ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | void | 
		
	
		
			
			|  |  |  | remove_ampersands ( char *str, int n ) | 
		
	
		
			
			|  |  |  | Fl_Menu_Settings::remove_ampersands ( char *str, int n ) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | char *d = str; | 
		
	
		
			
			|  |  |  | char *s = str; | 
		
	
	
		
			
				|  |  | @@ -43,24 +43,24 @@ remove_ampersands ( char *str, int n ) | 
		
	
		
			
			|  |  |  | *d = '\0'; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | int | 
		
	
		
			
			|  |  |  | item_pathname_x ( Fl_Menu_ *menu, char *path, int n, Fl_Menu_Item *item ) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | menu->item_pathname( path, n, item ); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | remove_ampersands( path, n ); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | void | 
		
	
		
			
			|  |  |  | indent ( FILE *fp, int n ) | 
		
	
		
			
			|  |  |  | Fl_Menu_Settings::indent ( FILE *fp, int n ) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | while ( n-- ) | 
		
	
		
			
			|  |  |  | fprintf( fp, "\t" ); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | int | 
		
	
		
			
			|  |  |  | Fl_Menu_Settings::item_pathname_x ( char *path, int n, Fl_Menu_Item *item ) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | Fl_Menu_::item_pathname( path, n, item ); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | remove_ampersands( path, n ); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | /** dump options from submenu /menu/ of menubar /bar/ to file /fp/ */ | 
		
	
		
			
			|  |  |  | Fl_Menu_Item * | 
		
	
		
			
			|  |  |  | dump ( Fl_Menu_Bar *bar, Fl_Menu_Item *menu, FILE *fp, int depth ) | 
		
	
		
			
			|  |  |  | Fl_Menu_Settings::dump ( Fl_Menu_ *bar, Fl_Menu_Item *menu, FILE *fp, int depth ) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | static char path[256]; | 
		
	
		
			
			|  |  |  | Fl_Menu_Item *m = menu; | 
		
	
	
		
			
				|  |  | @@ -86,7 +86,7 @@ dump ( Fl_Menu_Bar *bar, Fl_Menu_Item *menu, FILE *fp, int depth ) | 
		
	
		
			
			|  |  |  | is_radio = true; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | //        bar->item_pathname( path, sizeof( path ) - 1, m ); | 
		
	
		
			
			|  |  |  | item_pathname_x( bar, path, sizeof( path ) - 1, m ); | 
		
	
		
			
			|  |  |  | item_pathname_x( path, sizeof( path ) - 1, m ); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if ( m->flags & FL_MENU_TOGGLE || m->flags & FL_MENU_RADIO ) | 
		
	
	
		
			
				|  |  | @@ -119,13 +119,18 @@ dump ( Fl_Menu_Bar *bar, Fl_Menu_Item *menu, FILE *fp, int depth ) | 
		
	
		
			
			|  |  |  | return m; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | void | 
		
	
		
			
			|  |  |  | dump_to_file ( Fl_Menu_Bar *bar, Fl_Menu_Item *menu, const char *name ) | 
		
	
		
			
			|  |  |  | int | 
		
	
		
			
			|  |  |  | Fl_Menu_Settings::dump ( Fl_Menu_Item *item, const char *name ) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | FILE *fp = fopen( name, "w" ); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | dump( bar, menu, fp, 0 ); | 
		
	
		
			
			|  |  |  | if ( ! fp ) | 
		
	
		
			
			|  |  |  | return false; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | dump( this, item, fp, 0 ); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | fclose( fp ); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | return true; | 
		
	
		
			
			|  |  |  | } |