Clipboard Manager — File Browser

ClipboardManagerv1.0 / ClipboardManagerv1.0 / clipboardmanager.mrc

clipboardmanager.mrc — 11.75 KB — Download this file

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ClipboardManager
;; by bunkahumpa
;; bunkahumpa@playcs.com
;; irc.GamesNET.net #script
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

dialog clipboard {
  title "Clipboard Manager"
  size -1 -1 103 98
  option dbu
  box "", 1, 0 0 103 97
  edit "", 2, 5 27 93 41, multi return hsbar vsbar
  radio "1", 3, 10 15 11 10, push
  radio "2", 4, 28 15 11 10, push
  radio "3", 5, 46 15 11 10, push
  radio "4", 6, 64 15 11 10, push
  radio "5", 7, 82 15 11 10, push
  text "Choose a Clipboard Item:", 8, 5 7 64 8
  button "Copy to Clipboard", 9, 5 71 48 10
  button "Save as Item", 10, 61 71 37 10
  text "", 11, 23 87 25 8
  text "Lines:", 12, 5 87 18 8
  text "", 14, 61 87 37 8, right
  box "", 15, 0 81 103 16
  button "", 16, 0 0 1 1, ok hide
}

menu status,channel,query,nicklist,menubar {
  -
  ClipboardManager:dialog -m clipboard clipboard
  -
}

on *:start:{
  if (!$hget(clipboard)) {
    if ($shortfn($scriptdirclipboard.hsh)) {
      hmake clipboard 3
      hload clipboard $shortfn($scriptdirclipboard.hsh)
    }
    else {
      hmake clipboard 3
      hadd clipboard one1 Clipboard Item 1
      hadd clipboard two1 Clipboard Item 2
      hadd clipboard three1 Clipboard Item 3
      hadd clipboard four1 Clipboard Item 4
      hadd clipboard five1 Clipboard Item 5
    }
  }
}

on *:exit: {
  if ($hget(clipboard)) { hsave -o clipboard clipboard.hsh }
}

; save the hash file when the dialog is closed
on *:dialog:clipboard:close:0:{
  if ($hget(clipboard)) { hsave -o clipboard clipboard.hsh }
}

; display the current clipboard and its stats
on *:dialog:clipboard:init:0:{
  if ($cb) {
    var %line = 1
    while (%line <= $cb(0)) {
      did -i clipboard 2 %line $cb(%line)
      inc %line
    }
    did -c clipboard 2 $cb(0) $calc($len($cb($cb(0))) + 1)
    did -a clipboard 11 $cb(0)
    did -a clipboard 14 Chars: $cb(0).len
  }
}

; when the editbox is edited, update stats
on *:dialog:clipboard:edit:2:{
  did -o clipboard 11 1 $did(clipboard,2).lines
  var %line = 1
  while (%line <= $did(clipboard,2).lines) {  
    if (%line == 1) {
      var %length = $did(clipboard,2,1).len
      did -o clipboard 14 1 Chars: %length
    }
    else {
      var %length = $calc(%length + $did(clipboard,2,%line).len)
      did -o clipboard 14 1 Chars: %length
    }
    inc %line
  }
}

; copy to clipboard
on *:dialog:clipboard:sclick:9:{
  if ($did(clipboard,2)) {
    if ($did(clipboard,2).lines > 1) {
      clipboard -n $did(clipboard,2,1)
      var %line = 2
      while (%line <= $did(clipboard,2).lines) {
        clipboard -an $did(clipboard,2,%line)
        inc %line
      }
    }
    else {
      clipboard $did(clipboard,2)
    }
  }
}

; display saved item 1
on *:dialog:clipboard:sclick:3:{
  if ($hget(clipboard,one1)) {
    did -r clipboard 2
    var %line = 1
    while (%line <= $hfind(clipboard,one*,0,w).item) {
      did -i clipboard 2 %line $hget(clipboard, one $+ %line)
      inc %line
    }
    did -o clipboard 11 1 $hfind(clipboard,one*,0,w).item
    var %line = 1
    while (%line <= $did(clipboard,2).lines) {
      if (%line == 1) {
        var %length = $did(clipboard,2,1).len
      }
      else {
        var %length = $calc(%length + $did(clipboard,2,%line).len)
      }
      did -o clipboard 14 1 Chars: %length
      inc %line
    }
  }
  else {
    did -r clipboard 2
    did -o clipboard 11 1 0
    did -o clipboard 14 1 Chars: 0
  }
}

; display saved item 2
on *:dialog:clipboard:sclick:4:{
  if ($hget(clipboard,two1)) {
    did -r clipboard 2
    var %line = 1
    while (%line <= $hfind(clipboard,two*,0,w).item) {
      did -i clipboard 2 %line $hget(clipboard, two $+ %line)
      inc %line
    }
    did -o clipboard 11 1 $hfind(clipboard,two*,0,w).item
    var %line = 1
    while (%line <= $did(clipboard,2).lines) {
      if (%line == 1) {
        var %length = $did(clipboard,2,1).len
      }
      else {
        var %length = $calc(%length + $did(clipboard,2,%line).len)
      }
      did -o clipboard 14 1 Chars: %length
      inc %line
    }
  }
  else {
    did -r clipboard 2
    did -o clipboard 11 1 0
    did -o clipboard 14 1 Chars: 0
  }
}

; display saved item 3
on *:dialog:clipboard:sclick:5:{
  if ($hget(clipboard,three1)) {
    did -r clipboard 2
    var %line = 1
    while (%line <= $hfind(clipboard,three*,0,w).item) {
      did -i clipboard 2 %line $hget(clipboard, three $+ %line)
      inc %line
    }
    did -o clipboard 11 1 $hfind(clipboard,three*,0,w).item
    var %line = 1
    while (%line <= $did(clipboard,2).lines) {
      if (%line == 1) {
        var %length = $did(clipboard,2,1).len
      }
      else {
        var %length = $calc(%length + $did(clipboard,2,%line).len)
      }
      did -o clipboard 14 1 Chars: %length
      inc %line
    }
  }
  else {
    did -r clipboard 2
    did -o clipboard 11 1 0
    did -o clipboard 14 1 Chars: 0
  }
}

; display saved item 4
on *:dialog:clipboard:sclick:6:{
  if ($hget(clipboard,four1)) {
    did -r clipboard 2
    var %line = 1
    while (%line <= $hfind(clipboard,four*,0,w).item) {
      did -i clipboard 2 %line $hget(clipboard, four $+ %line)
      inc %line
    }
    did -o clipboard 11 1 $hfind(clipboard,four*,0,w).item
    var %line = 1
    while (%line <= $did(clipboard,2).lines) {
      if (%line == 1) {
        var %length = $did(clipboard,2,1).len
      }
      else {
        var %length = $calc(%length + $did(clipboard,2,%line).len)
      }
      did -o clipboard 14 1 Chars: %length
      inc %line
    }
  }
  else {
    did -r clipboard 2
    did -o clipboard 11 1 0
    did -o clipboard 14 1 Chars: 0
  }
}

; display saved item 5
on *:dialog:clipboard:sclick:7:{
  if ($hget(clipboard,five1)) {
    did -r clipboard 2
    var %line = 1
    while (%line <= $hfind(clipboard,five*,0,w).item) {
      did -i clipboard 2 %line $hget(clipboard, five $+ %line)
      inc %line
    }
    did -o clipboard 11 1 $hfind(clipboard,five*,0,w).item
    var %line = 1
    while (%line <= $did(clipboard,2).lines) {
      if (%line == 1) {
        var %length = $did(clipboard,2,1).len
      }
      else {
        var %length = $calc(%length + $did(clipboard,2,%line).len)
      }
      did -o clipboard 14 1 Chars: %length
      inc %line
    }
  }
  else {
    did -r clipboard 2
    did -o clipboard 11 1 0
    did -o clipboard 14 1 Chars: 0
  }
}

on *:dialog:clipboard:sclick:10:{
  dialog -m saveitem saveitem
}

dialog saveitem {
  title "Save Item"
  size -1 -1 72 51
  option dbu
  box "", 1, 0 0 72 51
  text "Save as Item Number:", 2, 10 8 54 8
  combo 3, 24 19 23 50, sort size vsbar drop
  button "Save", 4, 17 35 37 10
}

on *:dialog:saveitem:init:0:{
  did -a saveitem 3 1
  did -a saveitem 3 2
  did -a saveitem 3 3
  did -a saveitem 3 4
  did -a saveitem 3 5
  if ($did(clipboard,3).state == 1) {
    did -c saveitem 3 1
  }
  elseif ($did(clipboard,4).state == 1) {
    did -c saveitem 3 2
  }
  elseif ($did(clipboard,5).state == 1) {
    did -c saveitem 3 3
  }
  elseif ($did(clipboard,6).state == 1) {
    did -c saveitem 3 4
  }
  elseif ($did(clipboard,7).state == 1) {
    did -c saveitem 3 5
  }
  else {
    did -c saveitem 3 1
  }
}

; save specific stuff under the item chosen
on *:dialog:saveitem:sclick:4:{
  if ($did(saveitem,3) == 1) {
    if ($did(clipboard,2)) {
      if ($did(clipboard,2).lines > 1) {
        var %line = 1
        while (%line <= $did(clipboard,2).lines) {
          hadd clipboard one $+ %line $did(clipboard,2,%line)
          inc %line
        }
      }
      else {
        hadd clipboard one1 $did(clipboard,2)
      }
      var %hash = 1
      while (%hash <= $did(clipboard,2).lines) {
        if ($hfind(clipboard,one*,0,w).item > $did(clipboard,2).lines) {
          hdel clipboard one $+ $hfind(clipboard,one*,0,w)
        }
        inc %hash
      }
    }
    else {
      hdel -w clipboard one*
    }
    if ($dialog(clipboard)) {
      did -r clipboard 2
      var %line = 1
      while (%line <= $hfind(clipboard,one*,0,w).item) {
        did -i clipboard 2 %line $hget(clipboard,one $+ %line)
        inc %line
      }
    }
  }
  if ($did(saveitem,3) == 2) {
    if ($did(clipboard,2)) {
      if ($did(clipboard,2).lines > 1) {
        var %line = 1
        while (%line <= $did(clipboard,2).lines) {
          hadd clipboard two $+ %line $did(clipboard,2,%line)
          inc %line
        }
      }
      else {
        hadd clipboard two1 $did(clipboard,2)
      }
      var %hash = 1
      while (%hash <= $did(clipboard,2).lines) {
        if ($hfind(clipboard,two*,0,w).item > $did(clipboard,2).lines) {
          hdel clipboard two $+ $hfind(clipboard,two*,0,w)
        }
        inc %hash
      }
    }
    else {
      hdel -w clipboard two*
    }
    if ($dialog(clipboard)) {
      did -r clipboard 2
      var %line = 1
      while (%line <= $hfind(clipboard,two*,0,w).item) {
        did -i clipboard 2 %line $hget(clipboard,two $+ %line)
        inc %line
      }
    }
  }
  if ($did(saveitem,3) == 3) {
    if ($did(clipboard,2)) {
      if ($did(clipboard,2).lines > 1) {
        var %line = 1
        while (%line <= $did(clipboard,2).lines) {
          hadd clipboard three $+ %line $did(clipboard,2,%line)
          inc %line
        }
      }
      else {
        hadd clipboard three1 $did(clipboard,2)
      }
      var %hash = 1
      while (%hash <= $did(clipboard,2).lines) {
        if ($hfind(clipboard,three*,0,w).item > $did(clipboard,2).lines) {
          hdel clipboard three $+ $hfind(clipboard,three*,0,w)
        }
        inc %hash
      }
    }
    else {
      hdel -w clipboard three*
    }
    if ($dialog(clipboard)) {
      did -r clipboard 2
      var %line = 1
      while (%line <= $hfind(clipboard,three*,0,w).item) {
        did -i clipboard 2 %line $hget(clipboard,three $+ %line)
        inc %line
      }
    }
  } 
  if ($did(saveitem,3) == 4) {
    if ($did(clipboard,2)) {
      if ($did(clipboard,2).lines > 1) {
        var %line = 1
        while (%line <= $did(clipboard,2).lines) {
          hadd clipboard four $+ %line $did(clipboard,2,%line)
          inc %line
        }
      }
      else {
        hadd clipboard four1 $did(clipboard,2)
      }
      var %hash = 1
      while (%hash <= $did(clipboard,2).lines) {
        if ($hfind(clipboard,four*,0,w).item > $did(clipboard,2).lines) {
          hdel clipboard four $+ $hfind(clipboard,four*,0,w)
        }
        inc %hash
      }
    }
    else {
      hdel -w clipboard four*
    }
    if ($dialog(clipboard)) {
      did -r clipboard 2
      var %line = 1
      while (%line <= $hfind(clipboard,four*,0,w).item) {
        did -i clipboard 2 %line $hget(clipboard,four $+ %line)
        inc %line
      }
    }
  }
  if ($did(saveitem,3) == 5) {
    if ($did(clipboard,2)) {
      if ($did(clipboard,2).lines > 1) {
        var %line = 1
        while (%line <= $did(clipboard,2).lines) {
          hadd clipboard five $+ %line $did(clipboard,2,%line)
          inc %line
        }
      }
      else {
        hadd clipboard five1 $did(clipboard,2)
      }
      var %hash = 1
      while (%hash <= $did(clipboard,2).lines) {
        if ($hfind(clipboard,five*,0,w).item > $did(clipboard,2).lines) {
          hdel clipboard five $+ $hfind(clipboard,five*,0,w)
        }
        inc %hash
      }
    }
    else {
      hdel -w clipboard five*
    }
    if ($dialog(clipboard)) {
      did -r clipboard 2
      var %line = 1
      while (%line <= $hfind(clipboard,five*,0,w).item) {
        did -i clipboard 2 %line $hget(clipboard,five $+ %line)
        inc %line
      }
    }
  }
  dialog -x saveitem
}