aIRC — File Browser

aIRCv0.8.69 / aIRCv0.8.69 / script / windows.mrc

windows.mrc — 7.51 KB — Download this file

;/**********************************************************************
; *
; * aIRC
; * Windows
; *
; **********************************************************************/
;
alias _winini.get { return $_readini($_chfile($_usrdir(windows.ini)),$1,$2) }
alias _winini.set {
  if ($3- != $null) { writeini " $+ $_chfile($_usrdir(windows.ini)) $+ " $1- }
  elseif ($1 != $null) && ($2 != $null) { remini " $+ $_chfile($_usrdir(windows.ini)) $+ " $1-2 }
}
alias _savebuf {
  var %d,%a
  %d = $logdir $+ $active $+ . $+ $iif($1 != $null,$remove($1,.),log)
  tokenize 32 $iif($2- != $null,$2-,Save buffer as:)
  %a = $dir=" $1- " %d
  if (%a != $null) {
    if ($exists(%a)) {
      if ($_filexists(1,$null,%a)) { savebuf $active " $+ %a $+ " }
      else { savebuf -a $active " $+ %a $+ " }
    }
    else { savebuf $active " $+ %a $+ " }
    info.a $active buffer saved to $^'(%a)
  }
}
alias _window.conf { return $_window.size.return($1) $1 $_window.font.return($1) }
alias _window.size.default { window -a $active $_window.size.temp($_window.size.defaultr($1)) }
alias _window.size.reset { window -a $active $puttok($puttok($_window.size.return($1),-1,1,32),-1,2,32) }
alias _window.size.temp {
  tokenize 32 $1-
  if ($3 > 0) && ($4 > 0) {
    var %x = $1,%y = $2
    if (%x == X) { %x = $iif($calc($window(-3).w - $3) > 1,$rand(1,$calc($window(-3).w - $3)),-1) }
    if (%y == Y) { %y = $iif($calc($window(-3).h - $4) > 1,$rand(1,$calc($window(-3).h - $4)),-1) }
    if (%x == C) { %x = $calc(($window(-3).w - $3) / 2) }
    if (%y == C) { %y = $calc(($window(-3).h - $4) / 2) }
    return $round(%x,0) $round(%y,0) $round($3,0) $round($4,0)
  }
}
alias _window.size.return {
  var %t = $_winini.get($1,posize)
  if (%t == $null) { %t = $_window.size.defaultr($1) }
  return $_window.size.temp(%t)
}
alias _window.size.save {
  var %s,%g = $_winini.get($1,posize),%x = $gettok(%g,1,32),%y = $gettok(%g,2,32),%wh = $window($active).w $window($active).h
  if (%x isnum) || (%x == $null) { %x = $window($active).x }
  if (%y isnum) || (%y == $null) { %y = $window($active).y }
  %s = %x %y %wh
  if ($_winini.get($1,rempos)) || ($2) { _winini.set $1 posize %s }
}
alias _window.font.default { font $iif($window(status window).fontbold,-ab,-a) $window(status window).fontsize $window(status window).font }
alias _window.font.reset {
  var %t = $_window.font.return($2)
  font $iif($_winini.get($1,bold),-b) $1 $gettok(%t,$numtok(%t,32),32) $gettok(%t,1- [ $+ [ $calc($numtok(%t,32) - 1) ] ] ,32)
}
alias _window.font.return {
  var %t = $_winini.get($1,font)
  if (%t != $null) { return $gettok(%t,1- [ $+ [ $calc($numtok(%t,32) - 1) ] ] ,32) $gettok(%t,$numtok(%t,32),32) }
  return $window(status window).font $window(status window).fontsize
}
alias _window.font.save {
  var %f = $window($active).font $window($active).fontsize
  if ($ini($_chfile($_usrdir(windows.ini)),$1)) {
    if ($_winini.get($1,remfont)) || ($2) {
      _winini.set $1 font %f
      _winini.set $1 bold $iif($window($active).fontbold,1,0)
    }
    else {
      _winini.set $1 font $null
      _winini.set $1 bold 0
    }
  }
}
alias _window.size.defaultr {
  var %a = _windowsize. $+ $right($1,-1)
  if ($isalias(%a)) {
    %a
    return $result
  }
}
alias _window.onclose {
  var %a = _onclosewin. $+ $right($1,-1)
  if ($isalias(%a)) { %a $1- }
  if ($window($2)) { close -@ $2 }
}
;
alias _actwin {
  if (@* iswm $active) || (Status Window == $active) { return -s $+ $iif($remove($1,-,a,s) != $null,$remove($1,-,a,s)) }
  return -a $+ $iif($remove($1,-,a,s,e) != $null,$remove($1,-,a,s,e))
}
alias _winwin {
  if ($window($2)) || ($query($2)) || ((=* iswm $2) &&  (($chat($right($2,-1))) || ($serv($right($2,-1))))) {
    if ($remove($1,-,a,s,e) != $null) { return - $+ $ifmatch $2 }
    return $2
  }
  if (@* iswm $active) || (Status Window == $active) { return -s $+ $iif($remove($1,-,a,s) != $null,$remove($1,-,a,s)) }
  return -a $+ $iif($remove($1,-,a,s,e) != $null,$remove($1,-,a,s,e))
}
alias _window.ciright {
  if ($mouse.lb) && ($sline($active,1) != $null) && ($1 != $null) { return $1- }
}
alias _window.cileft {
  if ($_not($mouse.lb)) && ($1 != $null) { return $1- }
}
;
alias _window.menu.1 {
  if (@* iswm $menu) && ($isalias($_nospaces(_windowopts.,$remove($menu,@)))) {
    %`window.m = &window
    var %a = _windowopts. $+ $right($menu,-1)
    if ($isalias(%a)) {
      %a
      %a = $result
      %`window.l = $gettok(%a,1,32)
      %`window.s = $gettok(%a,2,32)
      %`window.f = $gettok(%a,3,32)
    }
    %`window.sr = $_winini.get($menu,rempos)
    %`window.fr = $_winini.get($menu,remfont)
    %`window.ps = $iif($gettok($_window.size.defaultr($menu),1,32) isletter,&size,&position)
  }
}
alias _window.menu.2 { unset %`window.* }
menu * {
  -
  $iif($active == notify list,&close):notify -h
  $_window.menu.1:{ }
  %`window.m
  .$iif(%`window.s,%`window.ps)
  ..$`ifmm(%`window.sr) r&emember:{
    _winini.set $menu rempos $iif($_winini.get($menu,rempos),0,1)
    _window.size.save $menu
  }
  ..-
  ..&save:{ _window.size.save $menu forcesave }
  ..&reset:{ _window.size.reset $menu }
  ..-
  ..&default:{ _window.size.default $menu }
  .$iif($_not(%`window.f),&font...):font
  .$iif(%`window.f,&font)
  ..$`ifmm(%`window.fr) r&emember:{
    _winini.set $menu remfont $iif($_winini.get($menu,remfont),0,1)
    _window.font.save $menu
  }
  ..-
  ..&save:{ _window.font.save $menu forcesave }
  ..&reset:{ _window.font.reset $active $menu }
  ..-
  ..&change...:{ font }
  ..&default:{ _window.font.default $menu }
  .-
  .&buffer
  ..$iif(%`window.l,&clear):{ clear }
  ..&save...:{ _savebuf log }
  .-
  .&close:{
    var %m = $menu
    _window.size.save %m
    _window.font.save %m
    _window.onclose %m $active
  }
  $_window.menu.2:{ }
}
ON *:CLOSE:@:{
  if ($_window.menu.return($target) != $null) {
    var %m = $ifmatch
    _window.size.save %m
    _window.font.save %m
    _window.onclose %m $target
  }
}
alias _window.move { .timerWINDOWMOVE $+ $1 -mo 0 1 _window.move.move $1 $mouse.dx $mouse.dy $window($1).dx $window($1).dy }
alias _window.move.move {
  if ($window($1) == $null) || ($active != $1) || ($mouse.key !& 1) { .timerWINDOWMOVE $+ $1 off }
  else { window $1 $calc($mouse.dx - $2 + $4) $calc($mouse.dy - $3 + $5) }
}
; /_window.cb.sel window <1=selected|0=all> <1=sidelistbox|0=listbox>
alias _window.cb.sel {
  var %i = 1
  clipboard
  while ($iif($2,$sline($1,%i),$line($1,%i,$iif($3,1,0))) != $null) {
    clipboard -a $ifmatch $+ $crlf
    inc %i
  }
}
alias _window.menu.return {
  if ($istok(@AsciiĀ Table @CTCP @Logs @Notices @Pager @ServerĀ Notices @Whois,$1,32)) { return $1 }
  if (@Telnet* iswm $1) { return @Telnet }
  if (@e-MailĀ POP3* iswm $1) { return @e-MailĀ POP3 }
  if (@Reading* iswm $1) { return @e-MailĀ POP3 }
  if (@Text* iswm $1) { return @Text }
  if (@HTTP* iswm $1) { return @HTTP }
  var %i,%r
  while (1) {
    inc %i
    if ($_list.get(winmenu,%i)) {
      %r = $ifmatch
      if ($gettok(%r,1,32) == $1) || ($gettok(%r,1,32) iswm $1) { return $gettok(%r,2,32) }
    }
    else { break }
  }
}
alias _window.menu.flush { ._list.flush winmenu }
alias _window.menu.add { _list.add winmenu $1- }
alias _window.menu.del { _list.del winmenu $1- }
;
;
;
;
alias _windowsize.Whois { return C C 478 161 }
alias _windowopts.Whois { return 1 1 1 }
alias _windowsize.CTCP { return C C 478 161 }
alias _windowopts.CTCP { return 1 1 1 }
alias _windowsize.Notices { return C C 478 161 }
alias _windowopts.Notices { return 1 1 1 }