DOCUMENTATION

SYNOPSIS

 PERL PROGRAM NAME: L_SUV0.85.5.pl 
 AUTHOR: 	Juan Lorenzo
 DATE: 		June 22 2017 

 DESCRIPTION 
     

 BASED ON:
 Version 0.1 April 18 2017 SeismicUnixPlTk.pl  
    Added a simple configuration file readable 
	flow
    and writable using Config::Simple (CPAN)

 Version 0.2 
    incorporate more object oriented classes
   
 Update: Simple (ASCII) local configuration 
      file is Project_Variables.config
      
 V 0.2.0 Jan 12 2018: removed all Config::Simple dependencies   
 V 0.3.0 May 14, 2018: refactored into L_SU.pm and L_SU.pl
 0
 Fall 2018
 V 0.3.1 makes Run = Save and Run
 Moves SaveAs to L_SU Menu and removes Save button
 
 V 0.3.2 has 4 flow panels
 
 V 0.3.3 has dragNdrop deactivated to stabilize version
 
 V 0.3.4 has classifies sunix programs using tabbed notebooks Sept. 12, 2018
 
 V0.3.7 removed all ticks from strings in GUIS using control module
     From now on users can write words with gaps and commas and L_SU will accept these
     value and formulate the correct Seismic Unix sytnax.
     
 V 0.3.8 Standardized format with PerlTidy, tidyviewer .perltidyrc Aug., 2019
 
 V 0.3.9 Introduce Moose attributes to record real-time GUI history
 
 V 0.4.5 Include PDL packages to handle interactive modeling and reading fortran-generated
 files
 
  V 0.5.0 new color_listbox class handles occupancy and vacancies among the listboxes March 2021
 
 V0.5.1 delete_whole_flow_button,  April 9, 2021
 
 V0.6.6 September 4, 2021
 
 V0.80.00 September 19, 2022 ready for initial uploading to the CPAN
 
 V0.82.3 April 2023, ready for automatic installation and Earthscope summer program 
 V0.82.4,5 27 April 2023, Improved: "How to install environment variables"" 
 

USE

NOTES

Examples

SEISMIC UNIX NOTES

CHANGES and their DATES

Notes from bash

Instantiation

Import Special Variables

Declare private variables

flow_listbox_color_w   -listbox, input by user selection
sunix_listbox   		-choice from listed sunix modules in a listbox

flow_types: 'user_built flow' and 'pre_built_superflow'

Define private variables

Default Tk settings

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

Define

fonts to use in the menu

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

my dialog box

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

Frame for the left-side menu in main gui

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

top menu frame

Contains: (1) top menus for superflows and (2) icons for (a) wiping plots

MB3 goes to superflow bindings

Top menu frame icon wipe background plots enable from the start

Top title reminders for Selected flow and Superflow names

Top menu frame right side

Advice for installation of software

give user superflow names

$who[$this] = $top_menu_bar->focusCurrent; print(" who is @who\n"); my $a =$top_menu_bar->bind(); print(" bind is @$a\n"); my $class = ref $top_menu_bar; print "Button \\$top_menu_bar is an instance of class '$class'.\n" . "This class has bindings for these events:\n\n"; print join("\n", $top_menu_bar->bind($class) ), "\n";

side menu frame

contains side menus
1. for files

side menu frame

contains side menus 2. for action

top_titles frame

above the work frame contains Titles only

(program names) UP in a flow (color grey, pink, green or blue); up within a listbox

DOWN in a flow (color grey, pink, green or blue);
down within a listbox

Listbox widgets

tied to button action for easier management

work frame

has menu items to its left contains a sunix_frame at its top, a parameters_pane (with names value buttons and values) in the middle left and four listboxes contained in a module-sequences frame on the middle right and a message text area across the whole bottom

sunix_frame

The sunix_frame itself contains five stories sub-frames called sunix_frame_I through and sunix_frame_V (levels 1 through 5)

Notebooks

within sunix_frame_V (top row)

Notebooks

within sunix_frame_IV (top row)

Notebooks within

sunix_frame_III (top row)

Notebooks within

sunix_frame_II (top row)

Notebooks within

sunix_frame_I (bottom row)

Notebooks within

sunix_frame_I (bottom row )

tied listbox widgets

to a tool_array
for easier management

This binding occurs inside L_SU.pm and NOT
within the current program

parameter_titles label

immediteley above the parameters frame
both of which are contained in the work frame
contains Titles only 

parameters frame

Parameters from
Tools and Su Modules

input frame

Contains, left-to-right:

a parameter_names_frame 
a stack of radio buttons 
and a values_frame  

Choose whether to ignore/deactivate or apply
the parameter-value pairs later on

To solicit and modify
possibly existing
parameter value input

N.B. widths are controlled within label_box.pm and value_box.pm

message area

to notify user of important events

workflow_control_frame

on far right of work frame
contains scrolled flow listboxes

workflow_control_frame

two vertically stacked frames 
each holding two 'Fs

workflow_control_frame

Includes flow names

tied flow listbox widgets

to a tool_array
for easier management

Pack my dialog box

Upper frame contains my message. Lower frame contains an 'ok' and a 'cancel' button.

Pack message box

Upper frame contains message. Lower frame contains ok button.

Packing Frame widget

contained within L_SU menu frame

sub _L_SU_bindings

For help in pre-built superflows and for get_help in user-built listbox flows

color not needed but $self is needed

sub _L_SU_bindings_shell

for any plot(s) in the background

sub _L_SU_sunix_bindings

used for sunix_listbox get_help (MB3) sunix_select (MB1) method='sunix_select' color='neutral'

sub _L_SU_flow_bindings

used for: sunix_listbox get_help (MB3) flow-item selection ('flow_select') (MB1)

Main L_SU, user_built_flows color_flow, flow_select

N.B. flow_select is activated both here and independently within gui_history by set_button

sub _L_SU_flow_bindings_any_color

for any colored flow
use to delete an item from a flow
'delete_from_flow_button'
used to move up and down a list of flow items
'flow_item_up_arrow_button'
'flow_item_down_arrow_button'
'delete_whole_flow_button'

sub _L_SU_superflow_bindings

Redirect user selections to L_SU.pm for the case of: Help for superflows (mouse-button 3 bindings)

sub _L_SU

Invoke a method in L_SU from a button click in L_SU -save_button -run_button -FileDialog_button with one of 3 possible values: 'Open', 'SaveAs' possible values: 'Delete'

-help_menubutton with possible value:
 About

sub _L_SU_add2flows

e.g., can call add2flow_button

sub _L_SU_superflows

Select pre-built streams or Tools

sub _set_prog_group

3 POD Errors

The following errors were encountered while parsing the POD:

Around line 593:

=pod directives shouldn't be over one line long! Ignoring all 5 lines of content

Around line 620:

=pod directives shouldn't be over one line long! Ignoring all 6 lines of content

Around line 1920:

=pod directives shouldn't be over one line long! Ignoring all 7 lines of content