Browse Source

Make menu loader work for radio buttons.

tags/non-daw-v1.1.0
Jonathan Moore Liles 17 years ago
parent
commit
031f279eb2
1 changed files with 18 additions and 11 deletions
  1. +18
    -11
      Timeline/Fl_Menu_Settings.C

+ 18
- 11
Timeline/Fl_Menu_Settings.C View File

@@ -105,13 +105,9 @@ Fl_Menu_Settings::dump ( Fl_Menu_ *bar, Fl_Menu_Item *menu, FILE *fp, int depth
}
else if ( m->flags & FL_MENU_VALUE )
{
indent( fp, depth );

*rindex( path, '/' ) = '\0';

fprintf( fp, "%s\n", rindex( path, '/' ) + 1 );

indent( fp, depth + 1 );
indent( fp, depth );

fprintf( fp, "%s\n", path + strlen( path ) + 1 );
}
@@ -266,18 +262,29 @@ Fl_Menu_Settings::load ( Fl_Menu_ *bar, Fl_Menu_Item *item, FILE *fp, int depth,

// path_pop( path );
*rindex( path, '/' ) = '\0';
*rindex( path, '/' ) = '\0';

printf( "%s = %s\n", path, path + strlen( path ) + 1 );
// printf( "%s = %s\n", path, path + strlen( path ) + 1 );

const Fl_Menu_Item *it = find_item_x( path, item + 1 );

if ( it )
if ( it && it->radio() ) /* radio button */
{
bar->picked( it );

path_pop( path );
}
else /* toggle */
{
int v = 0 == strcasecmp( "true", (path + strlen( path ) + 1 ) );
*rindex( path, '/' ) = '\0';

if ( ( it = find_item_x( path, item + 1 ) ) && it->checkbox() )
{
int v = 0 == strcasecmp( "true", (path + strlen( path ) + 1 ) );

if ( v != ( it->value() != 0 ) /* grr, FLTK */ )
bar->picked( it );
}

if ( v != ( it->value() != 0 ) )
bar->picked( it );
}

while ( ld < depth )


Loading…
Cancel
Save