MIDI-XML

 view release on metacpan or  search on metacpan

lib/MIDI/XML/Editor.pm  view on Meta::CPAN

Create a new MIDI::XML::Document object.

=cut

sub new() {
  my $class = shift;
  $class = ref($class) || $class;
  
  my $self = {};
  bless $self,$class;
  
  $self->{'_status_msg'} = "";
  $self->{'_title'} = 'MIDI XML Editor';
  $self->{'_pretty'} = 1;
  $self->{'_format'} = 99;
  $self->{'_ticksPerBeat'} = 1384;
  $self->{'_trackCount'} = 99;
  $self->{'_timestampType'} ='Absolute_',
  
  my $main_w = MainWindow->new();
  $self->{'_main_w'} = $main_w;
#  $main_w->configure(-width => 600, -height => 800,);
  $main_w->title($self->{'_title'});

#-------------------------------------------------------------------------------
  my $menu_f = $main_w->Frame(
      -relief => 'groove',
      -bd => 2,
    )->grid(
      "-",
      -sticky => "nsew",
    );
    
#$menu_f->Button(-text => "Exit", -command => sub { exit; } )->
#    pack(-side => 'right');
#$menu_f->Button(-text => "Save", -command => \&save_file)->
#    pack(-side => 'right', -anchor => 'e');
#$menu_f->Button(-text => "Load", -command => \&load_file)->
#    pack(-side => 'right', -anchor => 'e');
    
my $file = $menu_f->Menubutton(qw/-text File -underline 0/,
    -menuitems => $self->_file_menuitems);
my $edit = $menu_f->Menubutton(qw/-text Edit -underline 0/,
    -menuitems => $self->_edit_menuitems);
my $insert = $menu_f->Menubutton(qw/-text Insert -underline 0/,
    -menuitems => $self->_insert_menuitems);
my $help = $menu_f->Menubutton(qw/-text Help -underline 0/, 
    -menuitems => $self->_help_menuitems);

# In Unix the Help menubutton is right justified.

$file->pack(qw/-side left/);
$edit->pack(qw/-side left/);
$insert->pack(qw/-side left/);
$help->pack(qw/-side right/);


#  my $menubar = $menu_f->Menu(-type => 'menubar');
#  $menu_f->configure(-menu => $menubar);

#  map {$menubar->cascade( -label => '~' . $_->[0], -menuitems => $_->[1] )}
#      ['File', _file_menuitems],
#      ['Edit', _edit_menuitems],
#      ['Help', _help_menuitems];

#  $self->{'_menu_f'} = $menu_f;
#  $menu_f->Label(
#      -textvariable => \$self->{'_status_msg'},
#    )->pack(
#      -side => 'bottom',
#      -fill => 'x'
#    );

#-------------------------------------------------------------------------------
  my $east_f = $main_w->Frame(
#      -relief => 'groove',
#      -bd => 2,
      -width => 480,
      -height => 600,
    );
  $self->{'_east_f'} = $east_f;

#-------------------------------------------------------------------------------
  my $tree_f = $main_w->Frame(
      -relief => 'groove',
      -bd => 2,
    )->grid(
      $east_f,
      -sticky => "nsew",
    );
  $self->{'_tree_f'} = $tree_f;

#-------------------------------------------------------------------------------
  my $status_f = $main_w->Frame(
      -relief => 'groove',
      -bd => 2,
    )->grid(
      "-",
      -sticky => "nsew",
    );
  $self->{'_status_f'} = $status_f;
  my $status_l = $status_f->Label(
      -textvariable => \$self->{'_status_msg'},
    )->pack(
      -side => 'left',
      -fill => 'x'
    );
  $self->{'_status_l'} = $status_l;
 
#-------------------------------------------------------------------------------
  my $object_f = $east_f->Frame(
      -relief => 'groove',
      -bd => 2,
      -width => 480,
      -height => 600,
    )->pack(
      -side => 'top',
      -fill => 'both',
      -expand => 1,
    );
  $self->{'_object_f'} = $object_f;
  



( run in 1.007 second using v1.01-cache-2.11-cpan-140bd7fdf52 )