The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

DOCUMENTATION

SYNOPSIS

 PROGRAM NAME: iBottomMute (interactive Bottom Mute) 
 AUTHOR:  Juan Lorenzo

CHANGES and their DATES

 DATE: April 2 2009 
       September 2015 :
          updated to oop
          introduced Tk widgets
          Made all event-driven
        July 27 2016 
        June 12 2017 adapted iTopMute and its programs 
        to create this iBottom Mute
 
 NEW:   read iBottom_Mute3.config text file
 OLD:   import perl variables from 
             *.pm configuration file xi
            within a local libAll 
            subdirectory
        binheader is used for everything serious
        gather is to be used to texting
        correct offset is essential for applying the mute

DESCRIPTION

   Interactively pick muting parameters

USE

Examples

SEISMIC UNIX NOTES

STEPS

 1.  use the local library of the user
 1.1 bring is user variables from a local file
 2.  create instances of the needed subroutines

NOTES

 We are using Moose.
 Moose already declares that you need debuggers turned on
 so you don't need a line like the following:
 use warnings;

Instantiate classes:

 Create a new version of the package 
 with a unique name

Get configuration information

Declare variables

    in local memory space

  Check for old data
  check to see if prior mute parameter files exist for this   project 

Create Main Window

 Sstart event-driven loop
 Interaction with user
 initialize values
 If picks are new, show
 message on how to pick data

Display

     data first time

Decide whether to

     PICK or move on to NEXT CDP
     Place window near the upper left corner
     of the screen
  Changing geometry of the toplevel window
  my $h = $mw->screenheight();
  my $w = $mw->screenwidth();
  print("width and height of screen are $w,$h\n\n");
  print("geometry of screen is $geom\n\n");

Set the prompt

 value according
 to which button is pressed
 then exit the MainLoop
 destroy the main window after the prompt
 is properly set

sub set_pick

 callbacks

  send gather number to $iBM
  delete output of previous semblance
  plus more callbacks following...

Delete output

  of previous muting

    -replot 1st data 
    -PICK X-T pairs
    -Increment number of tries to make
       data display interact with user
       (number_of_tries = 1)

sub set_calc

      -PRESS the CALC button
      -Increment number of tries to make
          display and show old picks
         (if number_of_tries >1)

Delete

   the previous display

Message

       to halts flow
       when number_of_tries >0

sub set_saveNcont

   same as next

sub set_next

  In this case the $variable is empty
  1. increment gather
     Exit if beyond last gather 
  2. reset prompt
  3. Otherwise display the first semblance
  4 ... see following callbacks

Delete output

   of previous top mute

Display

       update gather number in memory
       first top mute
       Show user message
       Select the mute values

sub set_exit

  saying goodbye 
  clear old images
  kill window
  stop script