App-SeismicUnixGui

 view release on metacpan or  search on metacpan

lib/App/SeismicUnixGui/script/L_SU.pl  view on Meta::CPAN

my $user_built          = $flow_type->{_user_built};
my $pre_built_superflow = $flow_type->{_pre_built_superflow};
my $no_color            = 'no_color';

=head2 Default Tk settings

=cut

my $main_href = $gui_history->get_defaults();

=head2  Create Main Window 

L_SU Window contains

 a top menu frame 
 a middle menu titles frame
 and a
 bottom  work_frame
 font is made to be arial normal 14
 border width is defaulted too
 gui focus automatically changes to
 where mouse is located 
 
 classes may require Main window widget to display
 error messages
 
The Main window is needed for messages in subclasses
because we can easily control to location of the message
widgets from the main program

=cut

( $main_href->{_mw} ) = MainWindow->new;
( $main_href->{_mw} )->optionAdd( '*font', 'Arial' );
( $main_href->{_mw} )->title( $var->{_program_title} );
( $main_href->{_mw} )->geometry( $var->{_main_window_geometry} );
( $main_href->{_mw} )->resizable( 1, 1 )
  ;    # resizable in either width or height
( $main_href->{_mw} )->focusFollowsMouse;

=head2 Define 
  
  fonts to use in the menu

=cut

my $garamond = ( $main_href->{_mw} )->fontCreate(
	'garamond',
	-family => 'garamond',
	-weight => 'normal',
	-size   => -14
);

my $arial_14 = ( $main_href->{_mw} )->fontCreate(
	'arial_14',
	-family => 'arial',
	-weight => 'normal',
	-size   => -14
);

my $arial_14_bold = ( $main_href->{_mw} )->fontCreate(
	'arial_14_bold',
	-family => 'arial',
	-weight => 'bold',
	-size   => -14
);

my $arial_16 = ( $main_href->{_mw} )->fontCreate(
	'arial_16',
	-family => 'arial',
	-weight => 'normal',
	-size   => -16
);

my $arial_notebooks = $arial_14;

my $arial_18 = ( $main_href->{_mw} )->fontCreate(
	'arial_18',
	-family => 'arial',
	-weight => 'normal',
	-size   => -18
);

my $arial_12 = ( $main_href->{_mw} )->fontCreate(
	'arial_12',
	-family => 'arial',
	-weight => 'normal',
	-size   => -12
);

my $arial_italic_18 = ( $main_href->{_mw} )->fontCreate(
	'arial_italic_18',
	-family => 'arial',
	-weight => 'normal',
	-slant  => 'italic',
	-size   => -18
);

my $arial_18_bold = ( $main_href->{_mw} )->fontCreate(
	'arial_18_bold',
	-family => 'arial',
	-weight => 'bold',
	-size   => -18
);

my $arial_italic_large = $arial_italic_18;

my $arial_italic_12 = ( $main_href->{_mw} )->fontCreate(
	'arial_italic_small',
	-family => 'arial',
	-weight => 'normal',
	-slant  => 'italic',
	-size   => -12
);
my $arial_italic_medium = $arial_italic_12;

my $arial_italic_very_small = ( $main_href->{_mw} )->fontCreate(
	'arial_italic_very_small',
	-family => 'arial',
	-slant  => 'italic',
	-weight => 'normal',
	-size   => -9
);

my $small_garamond = ( $main_href->{_mw} )->fontCreate(
	'small_garamond',
	-family => 'garamond',
	-weight => 'normal',
	-size   => -9
);

$top_menu_frame = ( $main_href->{_mw} )->Frame(
	-borderwidth => $var->{_no_borderwidth},
	-background  => $var->{_my_purple},
	-relief      => 'groove',
);

=head2 message box

Is withdrawn temporarily while filling
with widgets. Dialog box is iconified in
subclasses.
A Toplevel widget is required to define geometry.

=cut 

$main_href->{_message_box_w} =
  ( $main_href->{_mw} )->Toplevel( -background => $var->{_my_yellow}, );
$main_href->{_message_box_w}->geometry( $var->{_message_box_geometry} );
$main_href->{_message_box_w}->withdraw;

$main_href->{_message_upper_frame} = $main_href->{_message_box_w}->Frame(
	-borderwidth => $var->{_no_borderwidth},
	-background  => $var->{_my_yellow},
);
$main_href->{_message_lower_frame} = $main_href->{_message_box_w}->Frame(
	-borderwidth => $var->{_no_borderwidth},
	-background  => $var->{_my_yellow},
	-height      => '10',
);
$main_href->{_message_label_w} = $main_href->{_message_upper_frame}->Label(
	-background => $var->{_my_yellow},
	-font       => $arial_14_bold,
	-justify    => 'left',
);

$main_href->{_message_ok_button} = $main_href->{_message_box_w}->Button(
	-text => "ok",
	-font => $arial_14_bold,

	#	-command => sub {
	#		$main_href->{_message_box_w}->grabRelease;
	#		$main_href->{_message_box_w}->withdraw;
	#	},
);

$side_menu_frame = ( $main_href->{_mw} )->Frame(
	-borderwidth => $var->{_no_borderwidth},
	-background  => $var->{_my_purple},
	-relief      => 'groove'
);

=head2 my dialog box

is withdrawn temporarily while filling
with widgets. 
Dialog box is iconified in subclasses.
A Toplevel widget is required to define geometry.

=cut 

$main_href->{_my_dialog_box_w} =
  ( $main_href->{_mw} )->Toplevel( -background => $var->{_my_yellow}, );
$main_href->{_my_dialog_box_w}->geometry( $var->{_my_dialog_box_geometry} );
$main_href->{_my_dialog_box_w}->withdraw;

$main_href->{_my_dialog_upper_frame} = $main_href->{_my_dialog_box_w}->Frame(
	-borderwidth => $var->{_no_borderwidth},
	-background  => $var->{_my_yellow},
);
$main_href->{_my_dialog_lower_frame} = $main_href->{_my_dialog_box_w}->Frame(
	-borderwidth => $var->{_no_borderwidth},
	-background  => $var->{_my_yellow},
	-height      => '10',
);
$main_href->{_my_dialog_label_w} = $main_href->{_my_dialog_upper_frame}->Label(
	-background => $var->{_my_yellow},
	-font       => $arial_14_bold,
	-justify    => 'left',
);
$main_href->{_my_dialog_ok_button} = $main_href->{_my_dialog_box_w}->Button(
	-text => "ok",
	-font => $arial_14_bold,
);
$main_href->{_my_dialog_cancel_button} =
  $main_href->{_my_dialog_box_w}->Button(
	-text => "cancel",
	-font => $arial_14_bold,
  );

# set up interactive message widgets to configure
# buttons in my_dialog_box
my $ok_button     = $main_href->{_my_dialog_ok_button};
my $label         = $main_href->{_my_dialog_label_w};
my $cancel_button = $main_href->{_my_dialog_cancel_button};
my $top_level     = $main_href->{_my_dialog_box_w};
$L_SU->initialize_my_dialogs( $ok_button, $label, $cancel_button, $top_level );

$main_href->{_blank_button_spacer_center} =
  $main_href->{_my_dialog_box_w}->Button(
	-text                => " ",
	-relief              => 'flat',
	-highlightbackground => $var->{_my_yellow},
	-background          => $var->{_my_yellow},
	-state               => "disabled",
  );
$main_href->{_blank_button_spacer_left} =
  $main_href->{_my_dialog_box_w}->Button(
	-text                => "",
	-relief              => 'flat',
	-highlightbackground => $var->{_my_yellow},
	-background          => $var->{_my_yellow},
	-state               => "disabled",
  );
$main_href->{_blank_button_spacer_right} =
  $main_href->{_my_dialog_box_w}->Button(
	-text                => "",
	-relief              => 'flat',
	-highlightbackground => $var->{_my_yellow},
	-background          => $var->{_my_yellow},
	-state               => "disabled",
  );

=head2 Frame for the left-side menu in main gui

=cut

$side_menu_frame = ( $main_href->{_mw} )->Frame(
	-borderwidth => $var->{_no_borderwidth},
	-background  => $var->{_my_purple},
	-relief      => 'groove'
);

=head2 load images
Button bitmaps and pixmaps
XXX_cartoon image is used to delete
a seismic unix program from the flow

=cut

my $cross_cartoon = ( $main_href->{_mw} )
  ->Pixmap( -file => $global_libs->{_images} . 'cross.xpm', );
my $minus_cartoon = ( $main_href->{_mw} )
  ->Pixmap( -file => $global_libs->{_images} . 'minus.xpm', );
my $flow_item_up_arrow = ( $main_href->{_mw} )
  ->Bitmap( -file => $global_libs->{_images} . 'file_item_up_arrow.xbm', );
my $flow_item_down_arrow = ( $main_href->{_mw} )
  ->Bitmap( -file => $global_libs->{_images} . 'file_item_down_arrow.xbm', );



( run in 2.007 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )