All pastes #802327 Raw Edit

Miscellany

public text v1 · immutable
#802327 ·published 2007-11-30 01:59 UTC
rendered paste body
; ##############################################################################
; # Nick Styler script                                                         #
; # Written by Urza                                                            #
; # Urza23@hotmail.com                                                         #
; ##############################################################################

; ##############################################################################
; # Start Event - Load the hash table if it exists                             #
; ##############################################################################
on *:start: {
  if (!$hget(SavedStyles)) hmake SavedStyles 4
  if ($isfile(NickStyles.hsh)) hload SavedStyles NickStyles.hsh
}

; ##############################################################################
; # Load event - Check for dcx.dll                                             #
; ##############################################################################
on *:load: {
  if (!$findfile($mircdir,dcx.dll,1)) {
    echo 4 -a **** You do not appear to have dcx.dll which is required for this addon to work
    echo 4 -a **** You can download it from: http://www.mircscripts.org/download.php?id=2942&type=5
  }
  else {
    echo 3 -a **** Successfully loaded NickStyler script by Urza
    echo 3 -a **** Type /NickStyle or right click and select 'Nick Style settings' to open options
  }
}

; ##############################################################################
; # Input Event                                                                #
; # Note:                                                                      #
; # If after loaing this you see double of everything you type it means that   #
; # you have another input event set up that is also messaging the channel     #
; # In order to get around this you will have to either unload one of  the     #
; # scripts, or incorporate them into one event.                               #
; # Instructions on how to incorporate simple replacement scripts into this    #
; # is shown just below                                                        #
; ##############################################################################

on *:input:#: {
  var %char = $readini(mirc.ini,text,Commandchar)
  if ($left($1,1) == %char) && ($1 != %char $+ me) return
  elseif ($readini(Settings.ini,NickStyleConfig,Status) == 0) return
  elseif ($ctrlenter) return

  ; ##############################################################################
  ; # If you have any input events to modify the appearance of certain words     #
  ; # Or to change acronyms such as lol add them in below in the format          #
  ; # shown in the examples below to prevent text from sending twice             #
  ; # (Note - you must remove the ; from the line for them to work               #
  ; ##############################################################################

  ; The following line will replace all instances of 'lol' with 'Laughing Out Loud' (including things like lolly)
  ; if (lol isin $1-) tokenize 32 $replace($1-,lol,Laughing Out Loud)

  ; The followin line will replace all instances of lol with 'laughing out loud' ONLY if lol is the entire word  
  ; IE words such as lolly will NOT be replaced with this method.
  ; if ($istok($1-,lol,32)) tokenize 32 $replacetok($1-,lol,Laughing out loud)

  ; The following line will send the text 'Laughing out loud' when you type !lol 
  ; in the first version the !lol will not be shown, in the 2nd it will be
  ; if ($1 == !lol) { msg $chan Laughing out loud | haltdef }
  ; if ($1 == !lol) { msg $chan !lol | msg $chan Laughing out loud | haltdef }






  ; ##############################################################################
  ; # Beginning of actual NickStyle event                                        #
  ; # Do not edit below unless you really know what you're doing                 #
  ; ##############################################################################
  if ($1 == %char $+ me) {
    if ($readini(Settings.ini,NickStyleConfig,StyleActions) == 1) {
      if ($readini(Settings.ini,NickStyleConfig,Replace) == First) {
        if ($2 ison $chan) {
          describe $chan $Nstyle($2) $3-
          haltdef
        }
      }
      else {
        Style Action $chan $2-
        haltdef
      }
    }
  }
  else {
    if ($readini(Settings.ini,NickStyleConfig,Replace) == First) {
      if ($1 ison $chan) {
        msg $chan $Nstyle($1) $2- 
        haltdef 
      }
    }
    else {
      Style Msg $chan $1-
      haltdef
    }
  }
}

; ##############################################################################
; # Access alias/Menu                                                          #
; ##############################################################################
alias NickStyle {
  if (!$findfile($mircdir,dcx.dll,1)) {
    echo 4 -a **** You do not appear to have dcx.dll which is required for this addon to work
    echo 4 -a **** You can download it from: http://www.mircscripts.org/download.php?id=2942&type=5
  }
  else dialog $iif($dialog(NickStyle),-v,-m) NickStyle NickStyle 
}
menu Channel,Commands,Status {
  Nick Style settings: {
    NickStyle
  }
}

; ##############################################################################
; # Main dalog                                                                 #
; ##############################################################################
dialog -l NickStyle  {        
  title "Nick styler settings"
  size -1 -1 467 465
}

on *:dialog:NickStyle:init:*: {
  dcx Mark $dname NickStyle_Events
  xdialog -a $dname +ac 250
  xdialog -b $dname +nty

  ; Alias to populate dialog controls
  NickStyle_Controls 

  ; Check for status
  if ($readini(Settings.ini,NickStyleConfig,Status) == 0) {
    xdid -u $dname 3
    xdid -b $dname 4,5,7,8,9,10,16,17,18,19,24,27,30,31,32,39,40
  }
  else {
    if (!$readini(Settings.ini,NickStyleConfig,Status)) writeini Settings.ini NickStyleConfig Status 1
    xdid -c $dname 3
  }

  ; Check for ignore punctuation option
  if ($readini(Settings.ini,NickStyleConfig,IgnorePunctuation) == 1) {
    xdid -c $dname 39
  }
  else {
    if (!$readini(Settings.ini,NickStyleConfig,IgnorePunctuation)) writeini Settings.ini NickStyleConfig IgnorePunctuation 0
    xdid -u $dname 39
  }

  ; Check for Style Actions option
  if ($readini(Settings.ini,NickStyleConfig,StyleActions) == 1) {
    xdid -c $dname 40
  }
  else {
    if (!$readini(Settings.ini,NickStyleConfig,StyleActions)) writeini Settings.ini NickStyleConfig StyleActions 0
    xdid -u $dname 40
  }


  ; Check for replacement option
  if ($readini(Settings.ini,NickStyleConfig,Replace) == all) xdid -c $dname 5
  else {
    if (!$readini(Settings.ini,NickStyleConfig,Replace)) writeini Settings.ini NickStyleConfig Replace first
    xdid -c $dname 4
  }

  ; Check for selected style
  if ($readini(Settings.ini,NickStyleConfig,Style)) {
    var %style = $v1, %styletype = $left(%style,1), %stylenum = $right(%style,1)
    if (%styletype == d) xdid -c $dname $calc(%stylenum + 6)
    else xdid -c $dname $calc(%stylenum + 15)
  } 
  else {
    xdid -c $dname 7
    writeini Settings.ini NickStyleConfig Style d1
  }

  ; Populate Default styles
  var %x = 1, %did = 11
  while (%x <= 4) {
    xdid -ra $dname %did $GeneratePreview($DefaultStyles(%x))
    inc %did | inc %x
  }

  ; Poupulate Saved styles - disabled unused radios
  var %x = 1, %did = 20
  while (%x <= 4) {
    var %style = $hget(SavedStyles,%x)
    if (%style) xdid -ra $dname %did $GeneratePreview(%style)
    else xdid -b $dname $calc(%did - 4) 
    inc %did | inc %x
  }
}


alias NickStyle_Events {
  var %dname = $1, %devent = $2, %did = $3

  ; Edit event for custom styles
  if (%devent == edit) {
    if (%did == 27) {
      var %preview = $GeneratePreview($xdid(%dname,%did).text)
      xdid -ra %dname 29 %preview
    }
  } 

  ; Click events
  if (%devent == sclick) {

    ; Status checkbox
    if (%did == 3) {
      if ($xdid(%dname,%did).state == 1) writeini Settings.ini NickStyleConfig Status 1
      else writeini Settings.ini NickStyleConfig Status 0
      xdid $iif($xdid(%dname,%did).state == 1,-e,-b) %dname 4,5,7,8,9,10,16,17,18,19,24,27,30,31,32,39,40
    }

    ; Replacement options
    elseif (%did isnum 4-5) {
      writeini Settings.ini NickStyleConfig Replace $iif(%did == 4,first,all)
    }

    ; Ignore punctuation checkbox
    elseif (%did == 39) {
      if ($xdid(%dname,%did).state == 1) writeini Settings.ini NickStyleConfig IgnorePunctuation 1
      else writeini Settings.ini NickStyleConfig IgnorePunctuation 0
    }

    ; Style actions checkbox 
    elseif (%did == 40) {
      if ($xdid(%dname,%did).state == 1) writeini Settings.ini NickStyleConfig StyleActions 1
      else writeini Settings.ini NickStyleConfig StyleActions 0
    }

    ; Default style radios
    elseif (%did isnum 7-10) {
      xdid -u %dname 16,17,18,19
      xdid -ra %dname 27 $DefaultStyles($calc(%did - 6))
      writeini Settings.ini NickStyleConfig Style $+(d,$calc(%did - 6))
    }

    ; Custom style radios
    elseif (%did isnum 16-19) {
      xdid -u %dname 7,8,9,10
      xdid -ra %dname 27 $hget(SavedStyles,$calc(%did - 15))
      writeini Settings.ini NickStyleConfig Style $+(c,$calc(%did - 15))
    }

    ; Replacement codes button
    elseif (%did == 30) dialog $iif($dialog(Replacements),-v,-m) Replacements Replacements

    ; Colour codes button
    elseif (%did == 31) dialog $iif($dialog(Colours),-v,-m) Colours Colours

    ; Save style button
    elseif (%did == 32) {
      if (!$xdid(%dname,27).text) var %x = $input(No Style has been entered,oh,ERROR)
      elseif ($hget(SavedStyles,0).item == 4) var %x = $input(You have the max number of styles saved. $crlf $+ You must delete atleast 1 before saving more,oh,ERROR)
      else {
        var %x = 1, %radio = 16, %edit = 20, %text =  $xdid(%dname,27).text
        while (%x <= 4) { 
          if (!$hget(SavedStyles,%x)) {
            hadd -m SavedStyles %x %text
            hsave SavedStyles NickStyles.hsh
            xdid -e %dname %radio
            xdid -ra %dname %edit $GeneratePreview(%text)
            var %x = 4
          }
          inc %radio | inc %edit | inc %x
        }
      }    
    }

    ; Delete style button
    elseif (%did == 24) {
      var %x = 1, %radio = 16, %edit = 20
      while (%x <= 4) {
        if ($xdid(%dname,%radio).state == 1) {
          hdel SavedStyles %x
          remini Settings.ini NickStyleConfig Style
          xdid -b %dname %radio
          xdid -u %dname %radio
          xdid -r %dname %edit
          var %deleted = %x, %x = 4

        }
        inc %radio | inc %edit | inc %x 
      }
      if (!%deleted) var %x = $input(You must select a style to delete,oh,ERROR)

    }
    ; Close button
    elseif (%did == 38) dialog -x %dname

    ; Help button
    elseif (%did == 41) dialog $iif($dialog(NickStyleHelp),-v,-m) NickStyleHelp NickStyleHelp
  }
}

; ##############################################################################
; # Replacement code dialog                                                    #
; ##############################################################################
dialog -l Replacements {
  title "Replacement codes"
  size -1 -1 285 280
}

on *:dialog:Replacements:*:*: {
  if ($devent == init) {
    dcx Mark $dname Replacements_Events
    xdialog -b $dname +oty
    xdialog -a $dname +ao 250

    ; Alias to populate dialog controls
    Replacements_Controls    
  }
}

alias Replacements_Events {
  var %dname = $1, %devent = $2, %did = $3

  ; Close button
  if (%devent == sclick) {
    if (%did == 6) dialog -x %dname
  }
}
; ##############################################################################
; # Colour code dialog                                                         #
; ##############################################################################
dialog -l Colours {
  title "Colour Codes"
  size -1 -1 260 155
}

on *:dialog:Colours:*:*: {
  if ($devent == init) {
    dcx Mark $dname Colours_Events
    xdialog -b $dname +oty
    xdialog -a $dname +ao 250

    ; Alias to populate dialog controls
    Colours_Controls
  }
}

alias Colours_Events {
  var %dname = $1, %devent = $2, %did = $3

  if (%devent == sclick) {
    ; Colour combos. Generate colour code
    if (%did isnum 4-5) {
      var %fg = $calc($xdid(%dname,4).sel -1)
      if ($len(%fg) == 1) var %fg = $+(0,%fg)

      var %bg = $calc($xdid(%dname,5).sel - 1)
      if ($len(%bg) == 1) var %bg = $+(0,%bg)

      xdid -ra %dname 9 $+(,$iif(%fg >= 0,%fg),$iif(%bg >= 0,$chr(44) $+ %bg))

    }

    ; Defaults button
    elseif (%did == 6) {
      xdid -ra %dname 9 
      xdid -c %dname 4 $calc($color(normal) + 1)
      xdid -c %dname 5 $calc($color(background) + 1)
    }

    ; Clear button
    elseif (%did == 7) {
      xdid -r %dname 4,5,9
      xdid -m %dname 4,5
    }

    ; Copy button
    elseif (%did == 10) {
      if (!$xdid(%dname,9).text) var %x = $input(No colour code to copy,oh,Error)
      elseif (!$xdid(%dname,4).sel) var %x = $input(You must specify a foreground colour as well as background,oh,Error)

      else clipboard $xdid(%dname,9).text
    }

    ; Close button
    elseif (%did == 11) dialog -x %dname
  }
}

; ##############################################################################
; # Help dialog                                                                #
; ##############################################################################
dialog -l NickStyleHelp {
  title "Nick styler help"
  size -1 -1 300 295
}

on *:dialog:NickStyleHelp:*:*: {
  if ($devent == init) {
    dcx Mark $dname NickStyleHelp_Events
    xdialog -b $dname +oty
    xdialog -a $dname +ao 250

    NickStyleHelp_Controls
  }
}

alias NickStyleHelp_Events {
  var %dname = $1, %devent = $2, %did = $3
  if (%devent == sclick) {
    if (%did == 3) { 
      xdid -t %dname 10 The general purpose of this addon is simply to allow you to make peoples nicks look fancy $&
        when you say them. 4 Default styles are provided, with space to make 4 custom ones of your own. $&
        $crlf $+ Holding control when you hit enter will stop nicks from being styled in that sentance
    }
    elseif (%did == 4) { 
      xdid -t %dname 10 When the 'Style first word only' option is selected nicks will only be styled if they $&
        are the first word in a sentance or action. Any nicks later in a sentance are ignored.
    }
    elseif (%did == 5) { 
      xdid -t %dname 10 When the 'Style nicks anywhere' option is selected nicks will be styled no matter where $&
        they appear in a sentance.
    }
    elseif (%did == 6) { 
      xdid -t %dname 10 When the 'Ignore punctuation' option is enabled nicks nicks will still be styled if $&
        they have punctuation around them. IE. Words such as $+($me,!) and $+(",$me,") will be styled  $&
        as well as just $me $crlf $+ $&
        This affects the following punctuation symbols: . ! , : ; ' "
    }
    elseif (%did == 7) { 
      xdid -t %dname 10 When the 'Style actions' option is enabled nicks will be styled in actions (or /me commands) $&
        as well as in regular text. If disabled, nicks will only be styled in regular text
    }
    elseif (%did == 8) { 
      xdid -t %dname 10 Custom styles allow you to create your own style instead of being restricted to the defaults. $&
        $crlf $+ See the intructions section of the main dialog for information on how to create custom styles
    }
    elseif (%did == 9) { 
      xdid -t %dname 10 99% of the time styled nicks will appear exactly as shown in the preview boxes. $&
        However if you enter ctrl+k (colour change character) followed by an invalid or non existant colour code. $&
        The preview will often be inaccurate. If you are unused to mIRC colour codes you are advised $&
        to use the'Colour codes' button to colour you're styles
    }
    elseif (%did == 11) dialog -x %dname
  }
}

; ##############################################################################
; # Alias to replace words with a replacement word                             #
; ##############################################################################
alias -l replacetok {
  var %msg = $1, %token = $2, %replacement = $3
  if ($istok(%msg,%token,32)) {
    tokenize 32 %msg
    var %x = 1, %total = $0, %newmsg
    while (%x <= %total) {
      var %tok = $($+($,%x),2) 
      if (%tok == %token) var %newmsg = %newmsg %replacement
      else var %newmsg = %newmsg %tok
      inc %x
    }
    return %newmsg
  }
  else return %msg
}

; ##############################################################################
; # Alias to remove Punctuation                                                #
; ##############################################################################
alias -l NoPunctuation {
  return $remove($1,.,?,,*,&,!,:,;,',",$chr(40),$chr(41),$chr(44))
}

; ##############################################################################
; # Loop through sentance, styling any nicks found                             #
; ##############################################################################
alias -l Style {
  var %send = $iif($1 == Action,Describe,Msg) $2, %chan = $2, 
  tokenize 32 $3-
  var %x = 1, %words = $0
  while (%x <= %words) {
    var %word = $($+($,%x),2) 
    if ($readini(Settings.ini,NickStyleConfig,IgnorePunctuation) == 1) {
      var %nick = $NoPunctuation(%word)
      if (%nick ison %chan) var %msg = %msg $replace(%word,%nick,$NStyle(%nick))
      else var %msg = %msg %word
    }
    else {
      if (%word ison %chan) var %msg = %msg $NStyle(%word)
      else var %msg = %msg %word
    }
    inc %x
  }
  %send %msg
}

; ##############################################################################
; # Check active style and style text                                          #
; ##############################################################################
alias -l NStyle {
  var %style = $readini(Settings.ini,NickStyleConfig,Style), %styleType = $left(%style,1), %StyleNum = $right(%style,1)
  var %NICK = $1, %F = $left(%nick,1), %M = $iif($len(%nick) > 2,$mid(%nick,2,$calc($len(%nick) - 2))), %L = $iif($len(%nick) > 1,$right(%nick,1))


  if (%StyleType == d) var %Style = $DefaultStyles(%StyleNum)
  elseif (%StyleType == c) var %style = $hget(SavedStyles,%StyleNum)
  if (!%style) return $1

  var %StyleNick = $replace(%style,[NICK],%NICK,[UNICK],$upper(%NICK),[LNICK],$lower(%NICK))
  var %StyleNick = $replace(%StyleNick,[F],%F,[UF],$upper(%F),[LF],$lower(%F))
  var %StyleNick = $replace(%StyleNick,[M],%M,[UM],$upper(%M),[LM],$lower(%M))
  var %StyleNick = $replace(%StyleNick,[L],%L,[UL],$upper(%L),[LL],$lower(%L))
  return $+(%StyleNick,)
}

; ##############################################################################
; # Alias for the default Styles                                               #
; ##############################################################################
alias -l DefaultStyles {
  if ($1 == 1) { return 03[F]10[M]03[L] }
  elseif ($1 == 2) return 9,3<1> 00[NICK] 9<1>
  elseif ($1 == 3) return 05»04{12[NICK]04}05«
  elseif ($1 == 4) return 12>>05[10[NICK]05]12<<
}

; ##############################################################################
; # Convert mIRC colour codes to RGB values                                    #
; ##############################################################################
alias -l getrgb {
  if ($1 == 0) var %rgb = 255 255 255
  elseif ($1 == 1) var %rgb = 0 0 0
  elseif ($1 == 2) var %rgb = 0 0 127
  elseif ($1 == 3) var %rgb = 0 147 0
  elseif ($1 == 4) var %rgb = 255 0 0
  elseif ($1 == 5) var %rgb = 127 0 0
  elseif ($1 == 6) var %rgb = 156 0 156
  elseif ($1 == 7) var %rgb = 252 127 0
  elseif ($1 == 8) var %rgb = 255 255 0
  elseif ($1 == 9) var %rgb = 0 252 0
  elseif ($1 == 10) var %rgb = 0 147 147
  elseif ($1 == 11) var %rgb = 0 255 255
  elseif ($1 == 12) var %rgb = 0 0 252
  elseif ($1 == 13) var %rgb = 255 0 255
  elseif ($1 == 14) var %rgb = 127 127 127
  elseif ($1 == 15) var %rgb = 210 210 210
  tokenize 32 %rgb
  return $rgb($1,$2,$3)
}

; ##############################################################################
; # Generate style previews                                                    #
; ##############################################################################
alias -l GeneratePreview {
  var %prefix = $+(,$color2(normal),$chr(44),$color2(background))
  var %reverse = $+(,$color2(background),$chr(44),$color2(normal))
  var %text = $1, %midlen = $calc($len($me) - 2)
  var %F = $left($me,1), %M = $iif($len($me) > 2,$mid($me,2,%midlen)), %L = $iif($len($me) > 1,$right($me,1))

  var %text = $replace(%text,[NICK],$me,[UNICK],$upper($me),[LNICK],$lower($me))
  var %text = $replace(%text,[F],%F,[UF],$upper(%F),[LF],$lower(%F))  
  var %text = $replace(%text,[M],%M,[UM],$upper(%M),[LM],$lower(%M))
  var %text = $replace(%text,[L],%L,[UL],$upper(%L),[LL],$lower(%L))  

  ; $chr(15) = Ctrl+o, $chr(22) = ctrl+r
  var %preview = $+(%prefix,$replace(%text,$chr(15),$chr(15) $+ %prefix)) 
  var %preview = $replace(%preview,$chr(22),%reverse)
  return %preview
}

; ##############################################################################
; # Convery any colour code to 2 digit                                         #
; ##############################################################################
alias -l color2 {
  var %col = $color($1)
  if ($len(%col) == 1) return $+(0,%col)
  else return %col
}

; ##############################################################################
; # Controls for all 3 dialogs                                                 #
; ##############################################################################
alias -l NickStyle_Controls {
  xdialog -c $dname 1 box 7 3 450 405 tabstop
  xdid -t $dname 1 Nick styler settings

  xdid -c $dname 1 2 box 10 17 150 120  tabstop
  xdid -t $dname 2 Settings

  xdid -c $dname 2 3 check 8 17 120 20 tabstop
  xdid -t $dname 3 Enable nick styler

  xdid -c $dname 2 4 radio 8 35 120 20 tabstop
  xdid -t $dname 4 Style first word only

  xdid -c $dname 2 5 radio 8 55 120 20 tabstop
  xdid -t $dname 5 Style nicks anywhere

  xdid -c $dname 2 39 check 8 75 120 20 tabstop
  xdid -t $dname 39 Ignore punctuation 

  xdid -c $dname 2 40 check 8 95 120 20 tabstop
  xdid -t $dname 40 Style Actions

  xdid -c $dname 1 6 box 10 140 150 105
  xdid -t $dname 6 Default styles

  xdid -c $dname 6 7 radio 6 18 15 15 tabstop
  xdid -c $dname 6 8 radio 6 38 15 20 tabstop
  xdid -c $dname 6 9 radio 6 58 15 20 tabstop
  xdid -c $dname 6 10 radio 6 78 15 20 tabstop

  xdid -c $dname 6 11 richedit 30 18 100 20 tabstop readonly
  xdid -c $dname 6 12 richedit 30 38 100 20 tabstop readonly
  xdid -c $dname 6 13 richedit 30 58 100 20 tabstop readonly
  xdid -c $dname 6 14 richedit 30 78 100 20 tabstop readonly
  xdid -k $dname 11,12,13,14 $getrgb($color(background))


  xdid -c $dname 1 15 box 11 250 150 143
  xdid -t $dname 15 Saved styles

  xdid -c $dname 15 16 radio 6 18 15 20 tabstop 
  xdid -c $dname 15 17 radio 5 38 15 20 tabstop
  xdid -c $dname 15 18 radio 6 58 15 20 tabstop
  xdid -c $dname 15 19 radio 6 78 15 20 tabstop

  xdid -c $dname 15 20 richedit 30 18 100 20 tabstop readonly autohs
  xdid -c $dname 15 21 richedit 30 38 100 20 tabstop readonly autohs
  xdid -c $dname 15 22 richedit 30 58 100 20 tabstop readonly autohs
  xdid -c $dname 15 23 richedit 30 78 100 20 tabstop readonly autohs
  xdid -k $dname 20,21,22,23 $getrgb($color(background))

  xdid -c $dname 15 24 button 14 108 120 25 tabstop
  xdid -t $dname 24 Delete selected style



  xdid -c $dname 1 25 box 176 19 260 374
  xdid -t $dname 25 Create and save custom styles

  xdid -c $dname 25 26 text 10 17 120 15
  xdid -t $dname 26 Enter desired nick format:

  xdid -c $dname 25 27 edit 8 34 240 20 autohs autovs tabstop

  xdid -c $dname 25 28 text 11 62 70 20
  xdid -t $dname 28 Style preview:

  xdid -c $dname 25 29 richedit 88 59 160 20 tabstop readonly autohs
  xdid -k $dname 29 $getrgb($color(background))

  xdid -c $dname 25 30 button 5 90 120 25 tabstop
  xdid -t $dname 30 Replacement codes

  xdid -c $dname 25 31 button 130 90 120 25 tabstop
  xdid -t $dname 31 Colour Codes

  xdid -c $dname 25 32 button 68 120 120 25 tabstop
  xdid -t $dname 32 Save style

  xdid -c $dname 25 33 box 9 153 240 210
  xdid -t $dname 33 Instructions

  xdid -c $dname 33 34 text 7 16 230 28
  xdid -t $dname 34 In order to set custom styles, simply enter the style you desire into the edit box above.

  xdid -c $dname 33 35 text 5 49 230 50
  xdid -t $dname 35 To use colours press ctrl+k and click the desired colour in the pallette, alternatively you can click the 'Colour Codes' button. Ctrl+U and Ctrl+B can also be used to make text Underlined and Bold 

  xdid -c $dname 33 36 text 6 108 230 55
  xdid -t $dname 36 In order to build just about any kind of style you will need certain codes, to reference parts of the persons nick name, to view a list of these click the 'Replacement codes' button

  xdid -c $dname 33 37 text 6 166 230 29
  xdid -t $dname 37 Before using a custom style you must save it, then select it from the 'Saved styles' to the left

  xdialog -c $dname 38 button 382 415 75 40 
  xdid -t $dname 38 Close

  xdialog -c $dname 41 button 7 415 75 40
  xdid -t $dname 41 Help
}

alias -l Replacements_Controls {
  xdialog -c $dname 1 box 4 4 270 240
  xdid -t $dname 1 Custom style replacement codes

  xdid -c $dname 1 2 text 9 20 50 15 center
  xdid -t $dname 2 Code

  xdid -c $dname 1 3 text 60 20 200 15 center
  xdid -t $dname 3 Meaning

  xdid -c $dname 1 4 list 10 40 50 199 tabstop nosel
  xdid -a $dname 4 0 [NICK]
  xdid -a $dname 4 0 [UNICK]
  xdid -a $dname 4 0 [LNICK] 
  xdid -a $dname 4 0 [F]
  xdid -a $dname 4 0 [UF] 
  xdid -a $dname 4 0 [LF]
  xdid -a $dname 4 0 [M]
  xdid -a $dname 4 0 [UM]
  xdid -a $dname 4 0 [LM]
  xdid -a $dname 4 0 [L]
  xdid -a $dname 4 0 [UL]
  xdid -a $dname 4 0 [LL]

  xdid -c $dname 1 5 list 60 40 200 199 tabstop nosel
  xdid -a $dname 5 0 Full nick (default case)
  xdid -a $dname 5 0 Full nick (upper case)
  xdid -a $dname 5 0 Full nick (lower case)
  xdid -a $dname 5 0 First letter of nick (default case)
  xdid -a $dname 5 0 First letter of nick (upper case)
  xdid -a $dname 5 0 First letter of nick (lower case)
  xdid -a $dname 5 0 Middle of nick (default case)
  xdid -a $dname 5 0 Middle of nick (upper case)
  xdid -a $dname 5 0 Middle of nick (lower case)
  xdid -a $dname 5 0 Last letter of nick (default case)
  xdid -a $dname 5 0 Last letter of nick (upper case)
  xdid -a $dname 5 0 Last letter of nick (lower case)

  xdialog -c $dname 6 button 100 250 75 25 tabstop
  xdid -t $dname 6 Close
}

alias -l Colours_Controls {
  xdialog -c $dname 1 box 4 4 250 120
  xdid -t $dname 1 Colour Codes

  xdid -c $dname 1 2 text 9 23 60 20
  xdid -t $dname 2 Foreground:

  xdid -c $dname 1 3 text 8 53 60 20
  xdid -t $dname 3 Background:

  xdid -c $dname 1 4 colorcombo 74 17 100 22 tabstop
  xdid -c $dname 1 5 colorcombo 74 48 100 22 tabstop
  xdid -m $dname 4,5

  xdid -c $dname 1 6 button 180 17 60 22 tabstop
  xdid -t $dname 6 Defaults

  xdid -c $dname 1 7 button 180 48 60 22 tabstop
  xdid -t $dname 7 Clear

  xdid -c $dname 1 8 text 8 89 65 20
  xdid -t $dname 8 Colour Code:

  xdid -c $dname 1 9 edit 74 85 50 20 autohs autovs tabstop readonly

  xdid -c $dname 1 10 button 134 84 100 22 tabstop
  xdid -t $dname 10 Copy colour code

  xdialog -c $dname 11 button 95 130 75 25 tabstop
  xdid -t $dname 11 Close
}

alias -l NickStyleHelp_Controls {
  xdialog -c $dname 1 box 4 2 290 260
  xdid -t $dname 1 Nick styler help

  xdid -c $dname 1 2 text 8 17 280 25
  xdid -t $dname 2 Click the button that corrosponds to the item you want to read about

  xdid -c $dname 1 3 button 83 45 125 25 tabstop
  xdid -t $dname 3 General

  xdid -c $dname 1 4 button 15 75 125 25 tabstop
  xdid -t $dname 4 Style first word only

  xdid -c $dname 1 5 button 15 105 125 25 tabstop
  xdid -t $dname 5 Style nicks anywhere

  xdid -c $dname 1 6 button 15 135 125 25 tabstop
  xdid -t $dname 6 Ignore punctuation

  xdid -c $dname 1 7 button 150 75 125 25 tabstop
  xdid -t $dname 7 Style actions

  xdid -c $dname 1 8 button 150 105 125 25 tabstop
  xdid -t $dname 8 Custom Styles

  xdid -c $dname 1 9 button 150 135 125 25 tabstop
  xdid -t $dname 9 Inaccurate previews

  xdid -c $dname 1 12 line 10 165 270 1

  xdid -c $dname 1 10 text 5 175 280 80

  xdialog -c $dname 11 button 116 270 75 25 tabstop
  xdid -t $dname 11 Close
}
; ##############################################################################
; # dcx.dll aliases                                                            #
; ##############################################################################
alias dcx {
  if ($isid) return $dll($findfile($mircdir,dcx.dll,1),$1,$2-)
  else dll " $+ $findfile($mircdir,dcx.dll,1) $+ " $1 $2-
}

alias -l xdid {
  if ($isid) return $dcx(_xdid,$1 $2 $prop $3-)
  else dcx xdid $2 $3 $1 $4-
}

alias -l xdialog {
  if ($isid) return $dcx(_xdialog,$1 $prop $2-)
  else dcx xdialog $2 $1 $3-
}