Stringscan

Check-in [28f8803fe4]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Code formatting and cleanup
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:28f8803fe4042faa31b4c906b14f12958b9989c11cba829d039f8e1803e836d5
User & Date: kevin 2017-09-19 11:43:46
Context
2017-09-20
02:47
UI tweaks check-in: 8af3877f02 user: kevin tags: trunk
2017-09-19
11:43
Code formatting and cleanup check-in: 28f8803fe4 user: kevin tags: trunk
03:13
Update file for 1.1 check-in: d9d50ad502 user: kevin tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to stringscan.rb.

   130    130       $glassdata = 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AcSAg8sJGRWZAAAAXhJREFUOMutlL9LQlEUxz+WGRHllGNEPyAUWnLWsVYhXNpd+ldC6B/QPyDnoMXNtbnFIRAarLAn+bDU13IuHC/vPm/agQuXy/d93veec+4Bv9gGKkAbGAORrAHQBPLAOn+MAtBVMNdqARlfaEk+minAJ/AOvAEjC973gWeAnvpoCNSAfWAX2AKKQN36eWtRWhoK+grkErRXlvO8S7hjuah6pK2uwE2X6BKYiujFsx5FlfPBmkO0B6Rkf+8JfgZC2Wdd4EjtNzzBcwVzgccKfuIJzgJp2X+7RIfAjyrGkQe4pvTtpIcxUcLOgt7MSZ8bfcUFDWOebMfhvCp9btqzK7NlLspW/36ptjPrAbgDbqUVbQOFOKh++wFwLfCk4WNM9OS2scPGrA/gQODmbCIFnQpspm7TsIdPWqCPIkgJ9AZ4Uk97DFyIq3NgU7R9yf0wrliB5fZMxqI+K7FEnIpLe+5GkvMyK8SxoyArQTXcOA+XvX5SWoL/gP4Cdj2n/+OJ36AAAAAASUVORK5CYII='
   131    131   
   132    132       $folderimage = TkPhotoImage.new(:data => $folderdata)
   133    133       $glassimage = TkPhotoImage.new(:data => $glassdata)
   134    134   
   135    135       $icondata = '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'
   136    136       $icon = TkPhotoImage.new(:data => $icondata)
   137         -        #initialize variables for entry
          137  +    #initialize variables for entry
   138    138       $dirname = TkVariable.new
   139    139       $searchterm = TkVariable.new
   140         -        #top window and frame
          140  +    #top window and frame
   141    141       Tk::TkDND::DND
   142    142       $root = TkRoot.new {
   143    143           title "Stringscan"
   144    144       }
   145         -        $root.iconphoto_default($icon)
   146         -        if $platform == 'aqua'
          145  +    $root.iconphoto_default($icon)
          146  +    if $platform == 'aqua'
   147    147           Tk.tk_call('fullscreen::fullscreen', $root)
   148         -        end
   149         -        
   150         -     $root.withdraw
   151         -        
          148  +    end
          149  +        $root.withdraw
   152    150           #menu
   153    151       $menubar = TkMenu.new($root)
   154    152       TkOption.add '*tearOff', 0
   155    153       if $platform == 'aqua'
   156    154           $appmenu = TkSysMenu_Apple.new($menubar)
   157    155           $menubar.add :cascade, :menu => $appmenu
   158    156           $appmenu.add :command, :label => 'About Stringscan', :command=> proc{aboutWindow}
................................................................................
   187    185       if $platform != 'aqua'
   188    186           $helpmenu.add :command, :label => 'About Stringscan', :command=> proc{aboutWindow}
   189    187           $helpmenu.add :command, :label => 'License', :command=>proc{getReg}
   190    188           $helpmenu.add :command, :label=>'Check for Updates', :command=>proc{checkUpdate}
   191    189       end
   192    190       $root['menu'] = $menubar
   193    191       $mainframe = Tk::Tile::Frame.new($root).pack('side' => 'top','fill' => 'both','expand' => 'yes')
   194         -        #button frame and buttons
          192  +    #button frame and buttons
   195    193       $buttonframe = Tk::Tile::Frame.new($mainframe){padding 2}.pack('side' => 'top','fill' => 'both','expand' => 'no')
   196    194       choosedirproc = proc{choosedir}
   197    195       $choosebutton = Tk::Tile::Button.new($buttonframe) {
   198    196           image $folderimage
   199    197           takefocus 0
   200    198           padding 5
   201    199           command  choosedirproc
................................................................................
   206    204           image $glassimage
   207    205           takefocus 0
   208    206           padding 5
   209    207           command stringgrepProc
   210    208       }.pack('side' => 'left','fill' => 'both','expand' => 'no')
   211    209       Tk::RbWidget::BalloonHelp.new($runbutton, 'text'=>'Run Search', 'background'=>'lightyellow', 'relief'=>'solid', 'borderwidth'=>1)
   212    210       $sep = Tk::Tile::Separator.new($mainframe) { orient 'horizontal' }.pack('side'=> 'top', 'fill'=>'both')
   213         -        #labels and entries
          211  +    #labels and entries
   214    212       $topframe = Tk::Tile::Frame.new($mainframe){padding 5}.pack('side' => 'top','fill' => 'both','expand' => 'no')
   215    213       $chooselabel = Tk::Tile::Label.new($topframe) {text "Directory:"}.pack('side' => 'left','fill' => 'both','expand' => 'no')
   216    214       $direntry = Tk::Tile::Entry.new($topframe) {textvariable $dirname }.pack('side' => 'left','fill' => 'both','expand' => 'no')
   217    215       $termlabel = Tk::Tile::Label.new($topframe) {text "Search Term:"}.pack('side' => 'left','fill' => 'both','expand' => 'no')
   218    216       $termentry = Tk::Tile::Entry.new($topframe) {textvariable $searchterm}.pack('side' => 'left','fill' => 'both','expand' => 'no')
   219    217       $termentry.bind('Return', proc {stringgrep})
   220    218       $nextsep = Tk::Tile::Separator.new($mainframe) {orient 'horizontal'}.pack('side'=>'top', 'fill'=>'both')
   221         -        #listbox, textbox, scrollbars
          219  +    #listbox, textbox, scrollbars
   222    220       $bottomframe = Tk::Frame.new($mainframe).pack('side'=>'bottom','fill' => 'both', 'expand' => 'yes')
   223    221       $bottomleftframe = Tk::Tile::Frame.new($bottomframe).pack('side'=>'left','fill' => 'both', 'expand' => 'yes')
   224    222       $listlabel = Tk::Tile::Label.new($bottomleftframe) {
   225    223           text 'File Name'
   226    224           style 'TablelistHeader.TLabel'
   227    225           padding 1
   228    226       }.pack('side'=>'top', 'fill'=>'both', 'expand' => 'no')
................................................................................
   273    271           highlightcolor 'SlateGray3'
   274    272           bg 'white'
   275    273           state 'disabled'
   276    274       }.pack('side'=>'left','fill' => 'both', 'expand' => 'yes')
   277    275       $tscrollframe = Tk::Frame.new($bottomrightframe).pack('side'=>'right','fill' => 'y', 'expand' => 'no')
   278    276       $tscroll = Tk::Tile::Scrollbar.new($tscrollframe).pack('side'=>'right','fill' => 'y', 'expand' => 'no')
   279    277       $tbox.yscrollbar($tscroll)
   280         -            $labelframe = Tk::Tile::Frame.new($root).pack('side'=>'bottom', 'fill'=>'both', 'expand' => 'no')
          278  +    $labelframe = Tk::Tile::Frame.new($root).pack('side'=>'bottom', 'fill'=>'both', 'expand' => 'no')
   281    279       $bottomlabel = Tk::Tile::Label.new($labelframe) {text "No data displayed"}.pack('side' => 'left','fill' => 'both','expand' => 'no')
   282    280       $p = Tk::Tile::Progressbar.new($labelframe) {orient 'horizontal'; length 200; mode 'indeterminate'}.pack('side' => 'left','fill' => 'both','expand' => 'no')
   283    281       $bottomsep = Tk::Tile::Separator.new($root) { orient 'horizontal' }.pack('side'=> 'bottom', 'fill'=>'both')
   284         -        $root.bind("#{$accelkey}-Q", proc{exit})
          282  +    $root.bind("#{$accelkey}-Q", proc{exit})
   285    283       $root.bind("#{$accelkey}-q", proc{exit})
   286    284       $root.bind("#{$accelkey}-O", proc{choosedir})
   287    285       $root.bind("#{$accelkey}-o", proc{choosedir})
   288    286       $root.bind("#{$accelkey}-R", proc{stringgrep})
   289    287       $root.bind("#{$accelkey}-r", proc{stringgrep})
   290    288   
   291    289       $root.update