All pastes #231719 Raw Edit

hash viewer

public text v1 · immutable
#231719 ·published 2006-10-31 23:59 UTC
rendered paste body
dialog hsh {
  title "Hash Manager"
  size -1 -1 231 142
  option dbu
  list 1, 6 11 63 102, size
  list 2, 85 11 63 102, size
  edit "", 3, 162 11 63 102, read multi return autovs vsbar 
  box "Table", 4, 3 2 73 127
  box "Item", 5, 80 2 73 127
  box "Data", 6, 157 2 73 127
  button "New Table", 7, 6 115 30 12
  button "Delete", 8, 37 115 32 12, 
  button "Add Item", 9, 84 115 31 12, 
  button "Delete", 10, 116 115 31 12, 
  button "Edit Data", 11, 162 114 63 12, 
  edit "", 12, 1 130 230 11, read center
}

alias re.fresh {
  did -r hsh 2,3
  var %x 1
  did -r hsh 1
  while ($hget(%x)) {
    did -a hsh 1 $hget(%x)
    inc %x
  }

}
alias re.fresh2 {
  var %x 1
  did -r hsh 2
  while ($hget($did(1).seltext,%x).item) {
    did -a hsh 2 $hget($did(1).seltext,%x).item
    inc %x
  }
  did -ra hsh 12 You Are Viewing: $did(1).seltext ; (Total: $did(1).lines Table(s))

}
alias re.fresh3 {
  did -r hsh 3
  did -a hsh 3 $hget($did(1).seltext,$did(2).seltext)

}

on *:dialog:hsh:init:* {
  re.fresh
}
on *:dialog:hsh:sclick:1 {
  var %x 1
  did -r hsh 2
  while ($hget($did(1).seltext,%x).item) {
    did -a hsh 2 $hget($did(1).seltext,%x).item
    inc %x
  }

  did -ra hsh 12 You Are Viewing: $did(1).seltext ; (Total: $did(1).lines Table(s))
}
on *:dialog:hsh:sclick:2 {
  did -r hsh 3
  did -ra hsh 3 $hget($did(1).seltext,$did(2).seltext)  
  did -ra hsh 12 Table: $did(1).seltext $+ /Item: $did(2).seltext (Total: $did(1).lines Tables/ $+ $did(2).lines Items)
}
on *:dialog:hsh:sclick:7 { 
  .hmake $input(Enter the hash table name you want to create,qe,Hash Table Name) 10
  re.fresh

}
on *:dialog:hsh:sclick:9 { 
  if ($did(1).sel) {
    .hadd $did(1).seltext $input(Enter item name,qe,Item Name) $input(Enter Data,qe,Date?)
  }
  re.fresh2
}
on *:dialog:hsh:sclick:10 {
  if ($did(2).sel) {
    .hdel $did(1).seltext $did(2).seltext
    did -r hsh 3
    re.fresh2
  }
}
on *:dialog:hsh:sclick:8 {
  if ($did(1).sel) {
    if ($input(Are you sure that you want to delete $did(1).seltext,qy,Confirmation)) {
      .hfree $did(1).seltext
      re.fresh
    }
  }
}

on *:dialog:hsh:sclick:11 {
  var %x $input(Enter Data,qe,Data?,$hget($did(1).seltext,$did(2).seltext))
  if (%x) {
    .hdel $did(1).seltext $did(2).seltext
    .hadd $did(1).seltext $did(2).seltext %x
    re.fresh3
  }
}
alias hshviewer {
  if (!$dialog(hsh)) { dialog -m hsh hsh }
}

menu status,channel,menubar {
  Hash Manager:/hshviewer
}