aIRC — File Browser

aIRCv0.8.69 / aIRCv0.8.69 / script / setup.mrc

setup.mrc — 32.58 KB — Download this file

;/**********************************************************************
; *
; * aIRC
; * Setup
; *
; **********************************************************************/

alias _cpanel { _dialog -m _cpanel _cpanel }
dialog _cpanel {
  size -1 -1 252 162
  option dbu
  title "Control Panel"

  list 1000,1 0 250 140,size extsel
  list 1001,1 0 250 140,size extsel hide
  list 1002,1 0 250 140,size extsel hide
  list 1003,1 0 250 140,size extsel hide

  menu "&View",2001
  item "&Large icons",2002
  item "&Small icons",2003
  item "L&ist",2004
  item "&Details",2005
  menu "&Sort by",2006
  item "&Name",2007
  item "&Description",2008

  button "ok",2990,-20 -20 1 1,ok hide
  button "cancel",2991,-20 -20 1 1,cancel hide
  list 2992,1 141 250 12,size hide
  button "MDX Positioner",2993,10 10 10 10,hide
}
ON *:DIALOG:_cpanel:init:0:{

  ;###translate

  _mdx.init $_icofile(cpanel.ico) title border sysmenu minbox
  did -c $dname $calc(2002 + $_getsetup(cpanel,view))
  did -c $dname $calc(2007 + $_getsetup(cpanel,sortby))
  _mdx.SetControlMDX dialog.mdx $dname 2993 positioner maxbox minbox size
  var %9+0 = $chr(9) $+ +l 0,%9r0 = $chr(9) $+ +r 0
  _mdx.SetControlMDX views.mdx $dname 1000 ListView $_cpanel.liststyle
  did -i $dname 1000 1 header $_mdx.fixtablengths(80,150) + 0 Name $+ %9+0 Description
  _mdx.SetControlMDX bars.mdx $dname 2992 StatusBar
  did -i $dname 2992 1 setparts -1
  did -i $dname 2992 2 +b Double click an item
  var %i = 1,%tmp
  set -u %~cpanel.init 0
  ;  %tmp = $_cpanel.add(%name,%desc,%command,%icon,%dir)
  %tmp = $_cpanel.add(aIRC Setup,Main Settings,setup,setup.ico,$null)
  %tmp = $_cpanel.add(Channels,Channel global/specific settings,chansetup,chansetup.ico,$null)
  %tmp = $_cpanel.add(Partyline & Remote Commands,Partyline & Remote commands settings,plsetup,plsetup.ico,$null)
  %tmp = Network Settings: Autojoin, modes on connect, services, etc
  %tmp = $_cpanel.add(Network,%tmp,nsetup,network.ico,$null)
  %tmp = Away settings: autoaway, pager, logging
  %tmp = $_cpanel.add(Away,%tmp,awaysetup,away.ico,$null)
  %tmp = $_cpanel.add(Fkeys,Function Keys binding,fkeys,fkeys.ico,$null)
  %tmp = $_cpanel.add(Personal Protection,Personal Flood Protection,pprot,pprot.ico,$null)
  %tmp = $_cpanel.add(Channel Protection,Channel global/specific protection,cprot,cprot.ico,$null)
  %tmp = $_cpanel.add(Themes,Script themes,themes,themes.ico,$null)
  %tmp = Customize your quit, kick, away... messages
  %tmp = $_cpanel.add(Messages Editor,%tmp,msgedit,msgedit.ico,$null)
  %tmp = $_cpanel.add(Event Sounds,Customize sounds for different events,esounds,esounds.ico,$null)
  %tmp = $_cpanel.add(Nicklist Colours,Nicklist Coloring,nickcol,nickcol.ico,$null)
  %tmp = $_cpanel.add(Addons,Addons Manager,addons,addons.ico,$null)
  %tmp = $_cpanel.add(Ignore List,Ignore List,ignorelist,ignorelist.ico,$null)
  %tmp = $_cpanel.add(User List,Userlist Manager,userlist,userlist.ico,$null)
  %tmp = $_cpanel.add(Bot Profiles,Configure different bot profiles,botprofiles,botprofiles.ico,$null)
  %tmp = $_cpanel.add(Profiles,Use different profiles for multiple users,profiles,profiles.ico,$null)
  %tmp = $_cpanel.add(Query Blocker,Block unwanted incoming messages,queryblock,dtwindow_Trffc10c.ico,$null)
  ;;;  %tmp = $_cpanel.add(Log manager,Log viewer,logs,logs.ico,$null)
  var %addons = $_getsetup(script,_addons),%file,%i = 1,%n = $numtok(%addons,32)
  while (%i <= %n) {
    %file = $gettok(%addons,%i,32) $+ .aan
    %file = $findfile($mircdiraddons\,%file,1)
    if (%file != $null) && ($ini(%file,cpanel)) {
      var %z = 1
      while ($_readini(%file,cpanel,name [ $+ [ %z ] ] ) != $null) {
        %tmp = $_cpanel.add($ifmatch,$_readini(%file,cpanel,desc [ $+ [ %z ] ] ),$_readini(%file,cpanel,comm [ $+ [ %z ] ] ),$_readini(%file,cpanel,icon [ $+ [ %z ] ] ),$nofile(%file))
        inc %z
      }
    }
    inc %i
  }
  _dummy $_lang.loaddialog($dname,$dname,00086969,main.lang,$scriptdir)
  _cpanel.refresh
  did -f $dname 1000
}
; $_cpanel.add(name,desc,command,icon,dir)
alias -l _cpanel.add {
  var %90 = $chr(9) $+ 0,%icon = $_icofile($4,$5)
  inc %~cpanel.init
  did -i $dname 1000 1 seticon 0 %icon
  did -a $dname 1002 - %~cpanel.init $1 $+ %90 $2 $+ %90 $3
}
ON *:DIALOG:_cpanel:menu:2002,2003,2004,2005:{
  did -u $dname 2002,2003,2004,2005
  did -c $dname $did
  _mdx.SetMDXStyle _cpanel 1000 $_cpanel.liststyle
}
ON *:DIALOG:_cpanel:menu:2007,2008:{
  did -u $dname 2007,2008
  did -c $dname $did
  _cpanel.refresh
}
ON *:DIALOG:_cpanel:sclick:1000:{
  if ($gettok($gettok($did($dname,1000,$did($dname,1000,1).sel),2,9),2-,32) != $null) { did -i $dname 2992 2 +b 0 $ifmatch }
  else { did -i $dname 2992 2 +b 0 }
}
ON *:DIALOG:_cpanel:dclick:1000:{ _cpanel.ok }
ON *:DIALOG:_cpanel:sclick:2990:{ _cpanel.ok }
ON *:DIALOG:_cpanel:sclick:2991:{
  var %com = _setsetup cpanel view
  if ($did($dname,2005).state) { %com 3 }
  elseif ($did($dname,2004).state) { %com 2 }
  elseif ($did($dname,2003).state) { %com 1 }
  else { %com 0 }
  _setsetup cpanel sortby $iif($did($dname,2008).state,1,0)
  _setupmrcunload
}
ON *:DIALOG:_cpanel:sclick:2993:{
  if ($istok(size minimize maximize restore,$gettok($did($dname,$did),1,32),32)) {
    var %width = $calc($dialog($dname).cw - 1 * $dbuw ^ 2)
    _mdx.MoveControl $dname 1000 * * %width $calc($dialog($dname).ch - 6 * $dbuh ^ 2)
    _mdx.MoveControl $dname 2992 * $calc($dialog($dname).ch - 6 * $dbuh ^ 2) %width *
  }
}
alias -l _cpanel.refresh {
  var %d = _cpanel,%win = @__cpanelrefresh,%i = $did(%d,1002).lines,%col1 = $iif($did(%d,2007).state,1,2),%col2 = $iif($did(%d,2007).state,3-,2-)
  did -r %d 1000,1001,1003
  close -@ %win
  window -hls %win
  while (%i) {
    aline %win $gettok($gettok($did(%d,1002,%i),%col1,9),%col2,32) $+ $chr(9) $+ %i
    dec %i
  }
  var %i = 1,%n = $line(%win,0),%line
  while (%i <= %n) {
    %line = $did(%d,1002,$gettok($line(%win,%i),2,9))
    did -a %d 1003 $gettok(%line,1-2,9)
    did -a %d 1001 $gettok($gettok(%line,3,9),2-,32)
    inc %i
  }
  filter -io %d 1003 %d 1000
  close -@ %win %win
}
alias _cpanel.liststyle {
  var %l = showsel single autoarrange
  if ($did($dname,2002).state) { %l = %l icon }
  elseif ($did($dname,2003).state) { %l = %l icon smallicon }
  elseif ($did($dname,2004).state) { %l = %l list }
  else { %l = %l nosortheader report nosortheader }
  return %l
}
alias -l _cpanel.ok {
  if ($did($dname,1001,$calc($did($dname,1000,1).sel - 1)) != $null) {
    var %cmd = $ifmatch
    if ($isalias($gettok(%cmd,1,32))) { %cmd }
  }
  halt
}
alias _setup {
  var %d = _setup,%i = 1001
  _dialog -m %d %d
  if ($1 != $null) {
    while (%i <= 1005) {
      if (%i = 1002) { inc %i }
      if ($1- iswm $did(%d,%i)) {
        did -c %d %i
        break
      }
      inc %i
    }
  }
}
dialog _setup {
  size -1 -1 240 195
  option dbu
  title "Setup"

  box "",1000,10 20 220 145
  tab "Main",1001,5 5 230 165
  tab "Titlebar",1003
  tab "SNotices",1004
  tab "DCC",1005

  list 1301,20 45 85 75,extsel tab 1003 sort
  button "-->",1302,113 60 15 15,tab 1003
  button "<--",1303,113 85 15 15,tab 1003
  list 1304,135 45 85 75,extsel tab 1003
  button "Up",1305,135 125 40 15,tab 1003
  button "Down",1306,180 125 40 15,tab 1003
  text "Active:",1307,140 35 85 8,tab 1003
  check "Update titlebar every second",1308,20 30 85 8,tab 1003

  list 1401,20 45 85 100,extsel sort tab 1004 sort
  button "-->",1402,113 60 15 15,tab 1004
  button "<--",1403,113 85 15 15,tab 1004
  list 1404,135 45 85 100,extsel sort tab 1004 sort
  text "Show in",1405,20 145 25 8,tab 1004
  combo 1406,50 143 55 100,drop tab 1004
  text "Active:",1407,140 35 85 8,tab 1004
  check "Use server notice filters",1408,20 30 70 8,tab 1004
  check "Don't filter if my nick is mentioned",1409,135 145 90 8,tab 1004

  check "Bot/services autologin",1501,15 30 90 8,tab 1001
  check "Open log on channel join",1514,15 40 90 8,tab 1001
  check "Open log on query",1502,15 50 90 8,tab 1001
  check "Show common channels on query",1503,15 60 90 8,tab 1001
  check "CTCP Cloaking",1504,15 70 90 8,tab 1001
  check "Read notes on start",1505,15 80 90 8,tab 1001
  check "Sound",1506,15 90 90 8,tab 1001
  check "Bounce bans set by servers",1507,15 100 90 8,tab 1001
  check "Bounce all the server modes",1508,15 110 90 8,tab 1001
  check "Show clones in join line",1509,15 120 90 8,tab 1001
  check "Use +ban on autobans",1513,15 130 90 8,tab 1001
  check "Deop/devoice before banning",1515,15 140 90 8,tab 1001
  check "Don't trigger floods if lag is >",1511,15 150 75 8,tab 1001
  edit "",1512,91 149 15 11,tab 1001 autohs

  text "Ban-time (in minutes):",1521,115 30 75 8,tab 1001
  edit "",1522,190 28 30 11,tab 1001 autohs
  text "Ignore-time (in minutes)",1523,115 42 75 8,tab 1001
  edit "",1524,190 40 30 11,tab 1001 autohs
  text "Seconds to wait for someone to return from a split",1525,115 51 73 16,tab 1001
  edit "",1526,190 52 30 11,tab 1001 autohs
  check "Check lag, interval (s):",1535,115 66 75 8,tab 1001
  edit "",1536,190 64 30 10,tab 1001 autohs

  check "Enable 'Whois' Window",1516,115 76 105 8,tab 1001
  check "Enable 'CTCP' Window",1517,115 86 105 8,tab 1001
  check "Enable 'Notices' Window",1518,115 96 105 8,tab 1001
  check "Show Services Notices in active",1519,115 106 105 8,tab 1001

  box "Masks",1527,109 117 121 48,tab 1001
  text "Default:",1528,115 127 20 8,tab 1001
  combo 1529,135 125 90 100,tab 1001 drop
  text "Clones:",1530,115 140 20 8,tab 1001
  combo 1531,135 138 90 100,tab 1001 drop
  text "User:",1532,115 153 20 8,tab 1001
  combo 1533,135 151 90 100,tab 1001 drop
  box "",1534,10 20 100 145,tab 1001

  text "Max Send Slots",1601,20 40 50 8,tab 1005
  edit "",1602,72 38 30 10,tab 1005 autohs
  text "Max Send Slots/user",1603,20 55 50 8,tab 1005
  edit "",1604,72 53 30 10,tab 1005 autohs
  check "Queue after all slots are full",1605,20 70 80 8,tab 1005
  text "Max Que Slots",1607,20 85 50 8,tab 1005
  edit "",1608,72 83 30 10,tab 1005 autohs
  text "Max Que Slots/user",1609,20 100 50 8,tab 1005
  edit "",1610,72 98 30 10,tab 1005 autohs
  ;
  button "DCC Queue Monitor",1622,20 115 72 15,tab 1005
  check "Clear queue with user if no common channel",1611,110 40 117 8,tab 1005
  check "Clear queues on disconnect",1613,110 55 117 8,tab 1005
  check "Cancel waiting sends on 'no such user' or quit",1612,110 70 117 8,tab 1005
  check "Min DCC Send cps",1614,110 85 60 8,tab 1005
  edit "",1615,170 83 40 10,tab 1005 autohs
  check "Max Cps per Send",1616,110 100 60 8,tab 1005
  edit "",1617,170 98 40 10,tab 1005 autohs
  check "Pump DCC",1618,110 115 60 8,tab 1005
  check "Fast Send",1619,110 130 60 8,tab 1005
  text "Packet Size",1620,110 145 35 8,tab 1005
  combo 1621,150 143 40 100,tab 1005 drop

  button "&OK",2991,121 175 33 15,ok
  button "&Cancel",2992,160 175 33 15,cancel
  button "&Help",2993,199 175 33 15,disable
}
ON *:DIALOG:_setup:*:*:{
  if ($devent == init) {
    _mdx.init $_icofile(setup.ico)
    _mdx.SetControlMDX ctl_gen.mdx $dname 1522 UpDown arrowkeys alignright right wrap edit numeric
    _mdx.SetControlMDX ctl_gen.mdx $dname 1524 UpDown arrowkeys alignright right wrap edit numeric
    _mdx.SetControlMDX ctl_gen.mdx $dname 1526 UpDown arrowkeys alignright right wrap edit numeric
    _mdx.SetControlMDX ctl_gen.mdx $dname 1536 UpDown arrowkeys alignright right wrap edit numeric
    _mdx.SetControlMDX ctl_gen.mdx $dname 1602 UpDown arrowkeys alignright right wrap edit numeric
    _mdx.SetControlMDX ctl_gen.mdx $dname 1604 UpDown arrowkeys alignright right wrap edit numeric
    _mdx.SetControlMDX ctl_gen.mdx $dname 1608 UpDown arrowkeys alignright right wrap edit numeric
    _mdx.SetControlMDX ctl_gen.mdx $dname 1610 UpDown arrowkeys alignright right wrap edit numeric
    _mdx.SetControlMDX ctl_gen.mdx $dname 1615 UpDown arrowkeys alignright right wrap edit numeric
    _mdx.SetControlMDX ctl_gen.mdx $dname 1617 UpDown arrowkeys alignright right wrap edit numeric
    _dummy $_lang.loaddialog($dname,_setup,00086969,main.lang,$scriptdir)
    _setup.load
  }
  elseif ($devent == dclick) {
    if ($did == 1301) { _dialog.move $dname 1301 1304 }
    elseif ($did == 1304) { _dialog.move $dname 1304 1301 }
    elseif ($did == 1401) { _dialog.move $dname 1401 1404 }
    elseif ($did == 1404) { _dialog.move $dname 1404 1401 }
  }
  elseif ($devent == sclick) {
    if ($did == 1302) { _dialog.move $dname 1301 1304 }
    elseif ($did == 1303) { _dialog.move $dname 1304 1301 }
    elseif ($did == 1305) { _dialog.up $dname 1304 1304 }
    elseif ($did == 1306) { _dialog.down $dname 1304 1304 }
    elseif ($did == 1402) { _dialog.move $dname 1401 1404 }
    elseif ($did == 1403) { _dialog.move $dname 1404 1401 }
    elseif ($did == 2991) {
      _setup.save
      _setupmrcunload
    }
    elseif ($did == 2992) { _setupmrcunload }
    elseif ($did == 1622) { dccqueue }
  }
  _setup.refresh
}
alias _setup.refresh {
  var %d = $dname
  did $iif($did(%d,1518).state,-b,-e) %d 1519
  did $iif($did(%d,1308).state,-e,-b) %d 1301,1302,1303,1304,1305,1306
  did $iif($did(%d,1408).state,-e,-b) %d 1401,1402,1403,1404,1409
  did $iif($did(%d,1511).state,-e,-b) %d 1512
  did $iif($did(%d,1605).state,-e,-b) %d 1607,1608,1609,1610,1611,1613
  did $iif($did(%d,1614).state,-e,-b) %d 1615
  did $iif($did(%d,1616).state,-e,-b) %d 1617
}
alias _setup.load {
  var %d = $dname,%i,%addy = nick!~ident@pc123.domain.com,%mask,%t,%maskclon = $_getsetup(script,_mask.clones),%masknorm = $_getsetup(script,_mask.default),%maskuser = $_getsetup(script,_mask.user)

  did -a %d 1406 @Server Notices
  did -a %d 1406 Active Window
  did -a %d 1406 Status Window
  did -c %d 1406 $_getsetup(script,_snotice.show)
  %i = 0
  while (%i <= 19) {
    var %mask = $_mask(%addy,%i),%t = [[ $+ %i $+ ]] %mask
    did $iif(%masknorm == %i,-ac,-a) %d 1529 %t
    if ($gettok(%mask,1,33) != nick) { did $iif(%maskclon == %i,-ac,-a) %d 1531 %t }
    did $iif(%maskuser == %i,-ac,-a) %d 1533 %t
    inc %i
  }

  var %tiri = $_getsetup(script,_titlebar.tags),%tags = <NICK> <SERVER> <NETWORK> <TIME> <LAG> <IDLE> <ONLINE> <PAGER> <AWAY> <SOCKET> <CHAN> <SCRIPT>,%i = 1
  while ($gettok(%tiri,%i,32) != $null) {
    %tags = $remtok(%tags,$ifmatch,32)
    did -a $dname 1304 $_setup.ti.t2d($ifmatch)
    inc %i
  }
  %i = 1
  while ($gettok(%tags,%i,32) != $null) {
    did -a $dname 1301 $_setup.ti.t2d($ifmatch)
    inc %i
  }
  did $iif($_getsetup(script,_titlebar.update),-c,-u) $dname 1308

  var %i = 1,%snri = $_getsetup(script,_snotice.filters),%tags = splitmerges nickcollisions opermodes klines glines kills ip#mismatch rehash clientconnect whoisonyou connectionfailures fakemodes htm unauthconnection 2manyconnections invalidusername Bots maxconnections clockstuff hack commandsused bogusservername montonesdemierda
  while ($gettok(%snri,%i,32) != $null) {
    %tags = $remtok(%tags,$ifmatch,32)
    did -a $dname 1404 $_setup.sn.t2d($ifmatch)
    inc %i
  }
  %i = 1
  while ($gettok(%tags,%i,32) != $null) {
    did -a $dname 1401 $_setup.sn.t2d($ifmatch)
    inc %i
  }
  did $iif($_getsetup(script,_snotice.usefilters),-c,-u) $dname 1408
  did $iif($_getsetup(script,_snotice.dontfilteronme),-c,-u) $dname 1409

  did $iif($_getsetup(script,_autologin),-c,-u) $dname 1501
  did $iif($_getsetup(script,_logquery),-c,-u) $dname 1502
  did $iif($_getsetup(script,_logjoin),-c,-u) $dname 1514
  did $iif($_getsetup(script,_chansquery),-c,-u) $dname 1503
  did $iif($_getsetup(script,_ctcpcloak),-c,-u) $dname 1504
  did $iif($_getsetup(script,_readnotes),-c,-u) $dname 1505
  did $iif($_getsetup(script,_sound),-c,-u) $dname 1506
  did $iif($_getsetup(script,bounce-bans),-c,-u) $dname 1507
  did $iif($_getsetup(script,boune-modes),-c,-u) $dname 1508
  did $iif($_getsetup(script,_clonesinjoinline),-c,-u) $dname 1509
  did $iif($_getsetup(script,_use+banonautoban),-c,-u) $dname 1513
  did $iif($_getsetup(script,_deopdevoiceonban),-c,-u) $dname 1515
  did $iif($_getsetup(script,_@whois),-c,-u) $dname 1516
  did $iif($_getsetup(script,_@ctcp),-c,-u) $dname 1517
  did $iif($_getsetup(script,_@notices),-c,-u) $dname 1518
  did $iif($_getsetup(script,_servicenoticesinactive),-c,-u) $dname 1519
  did $iif($_getsetup(script,_nofloodtlag.o),-c,-u) $dname 1511
  if ($_isint($_getsetup(script,_nofloodtlag.t))) { did -o $dname 1512 1 $ifmatch }

  did -o $dname 1522 1 $_setdnum($_getsetup(script,ban-time),120,1,99999)
  did -o $dname 1524 1 $_setdnum($_getsetup(script,ignore-time),15,1,99999)
  did -o $dname 1526 1 $_setdnum($_getsetup(script,wait-split),300,1,1200)

  did $iif($_getsetup(lagcheck,state),-c,-u) $dname 1535
  did -o $dname 1536 1 $_setdnum($_getsetup(lagcheck,interval),10,1,3600)


  did -o $dname 1602 1 $_setdnum($_getsetup(dcc,maxStotal),3,1,99999)
  did -o $dname 1604 1 $_setdnum($_getsetup(dcc,maxSuser),2,1,99999)
  did -o $dname 1608 1 $_setdnum($_getsetup(dcc,maxQtotal),10,1,99999)
  did -o $dname 1610 1 $_setdnum($_getsetup(dcc,maxQuser),4,1,99999)
  did -o $dname 1615 1 $_setdnum($calc($_getsetup(dcc,minspeed_n) * 1024),3072,1,9999999)
  did -o $dname 1617 1 $_setdnum($_getsetup(dcc,maxcps.value),8192,1,9999999)

  did $iif($_getsetup(dcc,sendqueue),-c,-u) $dname 1605
  did $iif($_getsetup(dcc,clearqueueonnochan),-c,-u) $dname 1611
  did $iif($_getsetup(dcc,cancelwsendsonnosuch),-c,-u) $dname 1612
  did $iif($_getsetup(dcc,cancelqueuesondisconnect),-c,-u) $dname 1613
  did $iif($_getsetup(dcc,minspeed_s),-c,-u) $dname 1614
  did $iif($_getsetup(dcc,maxcps.state),-c,-u) $dname 1616
  did $iif($_getsetup(dcc,pdcc.state),-c,-u) $dname 1618
  did $iif($_getsetup(dcc,fsend),-c,-u) $dname 1619
  var %t = 512 1024 2048 4096 8192,%ps = $_getsetup(dcc,packetsize),%i = 1,%n = $numtok(%t,32)
  if ($istok(%t,%ps,32) == $false) { %ps = 4096 }
  while (%i <= %n) {
    _dialog.addandselectmatch $dname 1621 $gettok(%t,%i,32) %ps
    inc %i
  }
}
alias _setup.save {
  var %d = $dname,%i,%tags,%sn

  %i  = 1
  while ($did(%d,1304,%i) != $null) {
    %tags = %tags $_setup.ti.d2t($ifmatch)
    inc %i
  }
  _settsetup script _titlebar.tags %tags
  if ($_not($did($dname,1308).state)) { titlebar }
  _settsetup script _titlebar.update $did($dname,1308).state

  var %i = 1,%tags
  while ($did(%d,1404,%i) != $null) {
    %tags = %tags $_setup.sn.d2t($ifmatch)
    inc %i
  }
  _settsetup script _snotice.filters %tags
  _settsetup script _snotice.usefilters $did($dname,1408).state
  _settsetup script _snotice.show $did($dname,1406).sel
  _settsetup script _snotice.dontfilteronme $did($dname,1409).state

  if ($remove($gettok($did($dname,1529,$did($dname,1529).sel),1,32),[,]) isnum 0-19) { _settsetup script _mask.default $ifmatch }
  if ($remove($gettok($did($dname,1531,$did($dname,1531).sel),1,32),[,]) isnum 0-19) { _settsetup script _mask.clones $ifmatch }
  if ($remove($gettok($did($dname,1533,$did($dname,1533).sel),1,32),[,]) isnum 0-19) { _settsetup script _mask.user $ifmatch }

  _settsetup script _autologin $did($dname,1501).state
  _settsetup script _logquery $did($dname,1502).state
  _settsetup script _logjoin $did($dname,1514).state
  _settsetup script _chansquery $did($dname,1503).state
  _settsetup script _ctcpcloak $did($dname,1504).state
  _settsetup script _readnotes $did($dname,1505).state
  _settsetup script _sound $did($dname,1506).state
  _settsetup script bounce-bans $did($dname,1507).state
  _settsetup script bounce-modes $did($dname,1508).state
  _settsetup script _clonesinjoinline $did($dname,1509).state
  _settsetup script _use+banonautoban $did($dname,1513).state
  _settsetup script _deopdevoiceonban $did($dname,1515).state
  _settsetup script _@whois $did($dname,1516).state
  _settsetup script _@ctcp $did($dname,1517).state
  _settsetup script _@notices $did($dname,1518).state
  _settsetup script _servicenoticesinactive $did($dname,1519).state
  _settsetup script _nofloodtlag.o $did($dname,1511).state
  if ($_isint($did($dname,1512))) { _settsetup script _nofloodtlag.t $ifmatch }

  _settsetup script ban-time    $_getdnum($dname,1522)
  _settsetup script ignore-time $_getdnum($dname,1524)
  _settsetup script wait-split  $_getdnum($dname,1526)

  _settsetup lagcheck state $did($dname,1535).state
  _settsetup lagcheck interval $_getdnum($dname,1536)

  _settsetup dcc maxStotal $_getdnum($dname,1602)
  _settsetup dcc maxSuser $_getdnum($dname,1604)
  _settsetup dcc sendqueue $did($dname,1605).state
  _settsetup dcc maxQtotal $_getdnum($dname,1608)
  _settsetup dcc maxQuser $_getdnum($dname,1610)
  _settsetup dcc clearqueueonnochan $did($dname,1611).state
  _settsetup dcc cancelwsendsonnosuch $did($dname,1612).state
  _settsetup dcc cancelqueuesondisconnect $did($dname,1613).state
  _settsetup dcc minspeed_s $did($dname,1614).state
  var %n = $calc($_getdnum($dname,1615) / 1024)
  if (%n < 0.1) { %n = 0.1 }
  _settsetup dcc minspeed_n %n
  _settsetup dcc maxcps.state $did($dname,1616).state
  _settsetup dcc maxcps.value $_getdnum($dname,1617)
  _settsetup dcc pdcc.state $did($dname,1618).state
  _settsetup dcc fsend $did($dname,1619).state
  var %n = $did($dname,1621,$did($dname,1621).sel)
  if ($istok(512 1024 2048 4096 8192,%n,32)) { _settsetup dcc packetsize %n }

  __hashsavebuf _aircsetup script.dat
  _loadsetup
  if ($_connected) && ($_getsetup(lagcheck,state)) { _lag }
}
alias _setup.sn.t2d {
  if ($1- == splitmerges) { return Net Splits/Merges }
  if ($1- == nickcollisions) { return Nick Collisions }
  if ($1- == opermodes) { return Oper Modes }
  if ($1- == klines) { return K-Lines }
  if ($1- == glines) { return G-Lines }
  if ($1- == kills) { return Kills }
  if ($1- == ip#mismatch) { return IP# mismatch }
  if ($1- == rehash) { return Rehashing config }
  if ($1- == clientconnect) { return Clients Connects/Disconnects }
  if ($1- == whoisonyou) { return Whois on you }
  if ($1- == connectionfailures) { return Connection failures }
  if ($1- == fakemodes) { return Fake Modes }
  if ($1- == htm) { return High Traffic Mode }
  if ($1- == unauthconnection) { return Unauthorized connections }
  if ($1- == 2manyconnections) { return Too many connections }
  if ($1- == invalidusername) { return Invalid username }
  if ($1- == Bots) { return Bots }
  if ($1- == maxconnections) { return Max connections/clients }
  if ($1- == clockstuff) { return Clock stuff }
  if ($1- == hack) { return HACK }
  if ($1- == commandsused) { return Commands used }
  if ($1- == bogusservername) { return Bogus server name }
  if ($1- == montonesdemierda) { return [--OTHER Snotices--] }
}
alias _setup.sn.d2t {
  if ($1- == Net Splits/Merges) { return splitmerges }
  if ($1- == Nick Collisions) { return nickcollisions }
  if ($1- == Oper Modes) { return opermodes }
  if ($1- == K-Lines) { return klines }
  if ($1- == G-Lines) { return glines }
  if ($1- == Kills) { return kills }
  if ($1- == IP# mismatch) { return ip#mismatch }
  if ($1- == Rehashing config) { return rehash }
  if ($1- == Clients Connects/Disconnects) { return clientconnect }
  if ($1- == Whois on you) { return whoisonyou }
  if ($1- == Connection failures) { return connectionfailures }
  if ($1- == Fake Modes) { return fakemodes }
  if ($1- == High Traffic Mode) { return htm }
  if ($1- == Unauthorized connections) { return unauthconnection }
  if ($1- == Too many connections) { return 2manyconnections }
  if ($1- == Invalid username) { return invalidusername }
  if ($1- == Bots) { return Bots }
  if ($1- == Max connections/clients) { return maxconnections }
  if ($1- == HACK) { return hack }
  if ($1- == Clock stuff) { return clockstuff }
  if ($1- == Commands used) { return commandsused }
  if ($1- == Bogus server name) { return bogusservername }
  if ($1- == [--OTHER Snotices--]) { return montonesdemierda }
}
alias _setup.ti.t2d {
  if ($1 == <NICK>) { return Nick }
  if ($1 == <SERVER>) { return Server }
  if ($1 == <NETWORK>) { return Network }
  if ($1 == <TIME>) { return Time }
  if ($1 == <LAG>) { return Lag }
  if ($1 == <IDLE>) { return Idle }
  if ($1 == <ONLINE>) { return Online time }
  if ($1 == <PAGER>) { return Pages }
  if ($1 == <AWAY>) { return Away }
  if ($1 == <SOCKET>) { return Sockets }
  if ($1 == <CHAN>) { return Current channel }
  if ($1 == <SCRIPT>) { return aIRC Version }
}
alias _setup.ti.d2t {
  if ($1- == Nick) { return <NICK> }
  if ($1- == Server) { return <SERVER> }
  if ($1- == Network) { return <NETWORK> }
  if ($1- == Time) { return <TIME> }
  if ($1- == Lag) { return <LAG> }
  if ($1- == Idle) { return <IDLE> }
  if ($1- == Online time) { return <ONLINE> }
  if ($1- == Pages) { return <PAGER> }
  if ($1- == Away) { return <AWAY> }
  if ($1- == Sockets) { return <SOCKET> }
  if ($1- == Current channel) { return <CHAN> }
  if ($1- == aIRC Version) { return <SCRIPT> }
}
;
;
;
;
;
alias _msgedit { _dialog -m _msgedit _msgedit }
dialog _msgedit {
  size -1 -1 350 122
  option dbu
  title "Messages Editor"

  list 1001,5 5 100 100
  list 1002,5 5 100 100,hide
  list 1003,5 5 100 100,hide
  list 1004,5 5 100 100,hide

  box "Preview",1101,110 5 237 28
  box "",1102,110 29 237 70

  radio "&Random line from:",1201,115 40 55 7
  button "",1202,130 50 210 12

  radio "&Text:",1301,115 70 55 7
  edit "",1302,130 80 210 12,autohs

  button "&Default",2990,237 103 30 15
  button "&Ok",2991,277 103 30 15,ok
  button "&Cancel",2992,317 103 30 15,cancel

  edit "",3000,113 17 230 8,autohs
}
ON *:DIALOG:_msgedit:init:0:{

  ;###translate

  _mdx.init $_icofile(msgedit.ico)
  _mdx.SetControlMDX ctl_gen.mdx $dname 3000 richedit nohidesel return vsbar read autohs
  _mdx.SetFont $dname 3000 + 11 400 Lucida Console
  _mdx.SetBorderStyle $dname 3000
  did -a $dname 3000 limit -1
  _msgedit.load quit Quit Reason
  _msgedit.load kick Kick Reason
  _msgedit.load kickenforebans Enforce bans Kick Reason
  _msgedit.load kick+k Kicking a '+k' loser
  _msgedit.load part Part Reason
  _msgedit.load partall Partall Reason
  _msgedit.load rejoin Rejoin Reason
  _msgedit.load dontdeopfriend Notice for deopping a friend
  _msgedit.load dontkickfriend Notice for kicking a friend
  _msgedit.load dontbanfriend Notice for banning a friend
  _msgedit.load away.autoawayreason Autoaway reason
  _msgedit.load away.msg Away channel msg
  _msgedit.load away.chanreminder Away channel reminder
  _msgedit.load away.noticeuser Away notice on msg from user
  _msgedit.load away.back Back channel message
  _msgedit.load away.whois Away reason in whois
  _msgedit.load away.pageraway Pager reply (away)
  _msgedit.load away.pagerhere Pager reply (here)
  ;  _msgedit.load
  did -c $dname 1001 1
  _msgedit.loadbuf
  _dummy $_lang.loaddialog($dname,$dname,00086969,main.lang,$scriptdir)
}
ON *:DIALOG:_msgedit:sclick:1001:{ _msgedit.loadbuf }
ON *:DIALOG:_msgedit:sclick:1201:{
  did -o $dname 1002 $did($dname,1001).sel $gettok($did($dname,1002,$did($dname,1001).sel),1,32) 1
  _msgedit.refreshmsg
}
ON *:DIALOG:_msgedit:sclick:1301:{
  did -o $dname 1002 $did($dname,1001).sel $gettok($did($dname,1002,$did($dname,1001).sel),1,32) 0
  _msgedit.refreshmsg
}
ON *:DIALOG:_msgedit:sclick:1202:{ .timer -o 1 0 _msgedit.selfile }
ON *:DIALOG:_msgedit:edit:1302:{
  did -o $dname 1004 $did($dname,1001).sel $did($dname,1302,1)
  _msgedit.refreshmsg
}
ON *:DIALOG:_msgedit:sclick:2990:{
  var %dfile = etc\profile\scriptxt.ini,%d = $dname,%sel = $did(%d,1001).sel,%type = $gettok($did(%d,1002,%sel),1,32),%r,%file,%text
  %r = $read -ns $+ %type $+ .r %dfile
  %file = $read -ns $+ %type $+ .file %dfile
  %file = $_fixfilename(%file,m)
  %text = $read -ns $+ _msgedit. $+ %type $+ .text %dfile
  if ($_not($istok(0 1,%r,32))) { %r = 0 }
  did -o %d 1002 %sel %type %r
  did -o %d 1003 %sel %file
  did -o %d 1004 %sel %text
  _msgedit.loadbuf
}
ON *:DIALOG:_msgedit:sclick:2991:{
  close -@ @_msgedit
  _msgedit.save
  _setupmrcunload
}
ON *:DIALOG:_msgedit:sclick:2992:{
  close -@ @_msgedit
  _setupmrcunload
}

; /_msgedit.load type desc
alias _msgedit.load {
  did -a $dname 1001 $2-
  var %t = _msgedit. $+ $1 $+ .r,%line = $_rinitxt(%t)
  if ($_not($istok(0 1,%line,32))) { %line = 0 }
  did -a $dname 1002 $1 %line
  var %t = _msgedit. $+ $1 $+ .file,%line = $_rinitxt(%t)
  %line = $_fixfilename(%line,m)
  did -a $dname 1003 %line
  var %t = _msgedit. $+ $1 $+ .text,%line = $_rinitxt(%t)
  did -a $dname 1004 %line
}
alias _msgedit.save {
  var %d = _msgedit,%i = 1,%n,%type,%r,%file,%text
  if ($dialog(%d) == $null) { return }
  %n = $did(%d,1001).lines
  while (%i <= %n) {
    %type = $gettok($did(%d,1002,%i),1,32)
    _winitxt _msgedit. $+ %type $+ .r $gettok($did(%d,1002,%i),2,32)
    _winitxt _msgedit. $+ %type $+ .file $did(%d,1003,%i)
    _winitxt _msgedit. $+ %type $+ .text $did(%d,1004,%i)
    inc %i
  }
}
alias _msgedit.loadbuf {
  var %d = _msgedit,%line,%radio,%file,%text,%sel
  if ($dialog(%d) == $null) { return }
  %sel = $did(%d,1001).sel
  %radio = $gettok($did(%d,1002,%sel),2,32)
  %file = $did(%d,1003,%sel)
  %text = $did(%d,1004,%sel)
  ;    did -r %d 1202,1302
  if (%file != $null) { did -o %d 1202 1 %file }
  else { did -o %d 1202 1 [no file] }
  did -o %d 1302 1 %text
  did -u %d 1201,1301
  if (%radio) { did -c %d 1201 }
  else { did -c %d 1301 }
  _msgedit.refreshmsg
}
alias _msgedit.selfile {
  var %d = _msgedit,%file,%sel = $did(%d,1001).sel,%m
  if ($dialog(%d) == $null) { return }
  if ($did(%d,1003,%sel) != $null) {
    did -o %d 1202 1 [no file]
    did -o %d 1003 %sel
  }
  else {
    %m = $mircdir $+ etc\
    %file = $dir="Select file:" %m
    %file = $_fixfilename(%file,m)
    if ($dialog(%d) == $null) || ($_not($isfile(%file))) { return }
    dialog -v %d
    did -o %d 1202 1 %file
    did -o %d 1003 %sel %file
  }
  _msgedit.refreshmsg
}
alias _msgedit.modifymsg {
  var %d = _msgedit
  if ($dialog(%d) == $null) { return }
  did -o %d 3000 1 text +m $1-
}
alias _msgedit.refreshmsg {
  var %d = _msgedit
  if ($dialog(%d) == $null) { return }
  if ($did(%d,1201).state) {
    did -e %d 1202
    did -b %d 1302
    _msgedit.modifymsg Random line from: $nopath($did(%d,1202,1))
  }
  else {
    did -b %d 1202
    did -e %d 1302
    _msgedit.modifymsg $_evaltext($replace($did(%d,1302,1),<CHAN>,#chan,<NICK>,nick,<HANDLE>,handle,<AWAYLOG>,on,<PAGER>,on,<AWAYREASON>,Away reason!,<AWAYTIME>,$ctime,<AWAYGONE>,12345,<AUTOAWAYMINS>,15,<BANMASK>,*!banned@*.mask.com,<BANNER>,bannernick))
  }
}
alias _fkeys { _dialog -m _fkeys _fkeys }
dialog _fkeys {
  size -1 -1 220 157
  option dbu
  title "FKeys"

  text "Double click to edit a command. Fkeys prefixed with a * can't be used",1630,5 5 210 8
  list 1631,5 15 210 120,size extsel

  button "&OK",2991,150 140 30 15,ok
  button "&Cancel",2992,185 140 30 15,cancel
}
ON *:DIALOG:_fkeys:init:0:{

  ;###translate

  _mdx.init $_icofile(fkeys.ico)
  _mdx.SetControlMDX views.mdx $dname 1631 ListView headerdrag report rowselect showsel nosortheader single
  did -i $dname 1631 1 header $_mdx.fixtablengths(36,160) + 0 Fkey $chr(9) $+ +l 0 Command
  var %keys = 1 2 3 4 5 6 7 8 9 10 11 12 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 cs1 cs2 cs3 cs4 cs5 cs6 cs7 cs8 cs9 cs10 cs11 cs12,%i = 1,%n = $numtok(%keys,32),%tok,%codkey
  while (%i <= %n) {
    var %tok = $gettok(%keys,%i,32),%codkey = $_codekey2fkey(%tok),%t1,%t2
    if (%tok == c4) { %t1 = * %codkey }
    elseif ($nopath($isalias($_getaliasfromfkey(%tok)).fname) == eop.mrc) {
      if ($_getsetup(binds,%tok) != $null) { var %t1 = %codkey,%t2 = $ifmatch }
      else { %t1 = %codkey }
    }
    else { %t1 = * %codkey }
    did -a $dname 1631 + 0 %t1 $+ $chr(9) $+ 0 %t2
    inc %i
  }
  _dummy $_lang.loaddialog($dname,$dname,00086969,main.lang,$scriptdir)
}
ON *:DIALOG:_fkeys:dclick:1631:{
  var %d = $dname,%sel = $did(%d,1631,1).sel,%line = $did(%d,1631,%sel),%command = $gettok($gettok(%line,2-,9),2-,32),%key = $gettok($gettok(%line,1,9),3,32)
  if (%key == *) { return }
  %command = $_parameter($null,0,Fkeys Setup [/fkeys],normal,%command,Command to assign to [ %key ] :<CRLF>[Blank or Cancel to unbind])
  if ($dialog(%d) == $null) { return }
  did -o %d 1631 %sel + 0 %key $+ $chr(9) $+ 0 %command
  did -c %d 1631 %sel
}
ON *:DIALOG:_fkeys:sclick:2991:{
  var %d = $dname,%i = 1,%n = $did(%d,1631).lines,%line,%fkey,%command
  while (%i <= %n) {
    var %line = $did(%d,1631,%i),%fkey = $gettok($gettok(%line,1,9),3,32),%command = $gettok($gettok(%line,2-,9),2-,32)
    if (%fkey != *) { _settsetup binds $_fkey2codekey(%fkey) %command }
    inc %i
  }
  __hashsavebuf _aircsetup script.dat
  _loadsetup
  _setupmrcunload
}
ON *:DIALOG:_fkeys:sclick:2992:{ _setupmrcunload }

;;;
;;;

alias -l _setupmrcunload { _quickunload _cpanel,_setup,_msgedit,_fkeys $script }