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 )