Hans Prestige Visual IRC
Visual IRC
   Features & Screenshots
   Download ViRC!
   Scripts

   Visual IRC Forum
   Chat in Undernet #ViRC

   Awards and Reviews
   About the Author
   About the Technology
ViRC Antique Shop

Search change log

What's new in Visual IRC 2.0pre11?

Additions (24)
Bug fixes (14)
Changed features (6)

Additions

  • The help menu now shows DOC files.
  • New events: <OnMinimizeToTray> and <OnRestoreFromTray>. ViRC.lib
    uses these to display a private message count while minimized.
  • You can now use the -nosplash command line parameter to disable the
    splash screen.
  • New function $isobject(<value>) to determine whether the value is a
    valid object handle. New function $proplist(<object>) to list
    properties.
  • New command UpdateMainMenu, to apply magic to the main menu and
    toolbar items. (Magic will only be applied when the command is
    called.) UpdateMainToolbar is a synonym.
  • New custom magic types for toolbar button definitions. Instead of a
    state number 0..3, use state number 5 and include 'magic <token>'
    before the state, where <token> is a variable or function reference
    as described above. For example:
    T_CHANCTL magic $enablechanctl 0 "tbchanctl.bmp" | Channel control
  • New custom magic types for menu definitions, so items can be
    enabled or disabled at runtime. Instead of a number 0..3, you can
    also use '$varname' (so the item is enabled when the variable is
    nonzero) or '%funcname' (calls the function with <windowname> or
    <nicks> <windowname>, item is enabled when the result is nonzero).
    These forms can also be used with variable or function references:
    !$varname enabled when variable is false
    &$varname enabled when the menu's regular criteria is
    met (e.g., you are opped) AND the variable
    is true
    |$varname enabled when the menu's regular criteria is
    met OR the variable is true
    &!$varname enabled when the menu's regular criteria is
    met AND the variable is NOT true
    !&$varname enabled when the menu's regular criteria is
    NOT met AND the variable is true
    !|!$varname enabled when the menu's regular criteria is
    NOT met OR the variable is NOT true
    and so on.
  • The script editor now prompts to save files that have been modified.
  • OLE Automation support - see vircole.txt for details.
  • ActiveScripting blocks now have access to the current window's
    Automation object ("Current", implementing IServer, IChannel,
    IQuery, IDCCChat, or IWhiteboard) as well as ViRC's object
    ("VisualIRC", implementing IVisualIRC).
  • New command to add items to a menu tree:
    MergeMenu <source> {before|after} <destination> <options>. Options
    can be a space-separated list of 'addsep', 'noaddsep', 'clobber',
    'noclobber', 'move', and 'nomove' (all three are turned on by
    default). Addsep controls whether a separator is added between the
    old items and the new items, clobber controls whether old items are
    replaced by new items with the same name, and move controls whether
    old items are rearranged to the order they appear in the source
    menu.
  • Rewritten configuration code: New option "Save to INI file" in
    configuration window. The server list is now stored in a file. New
    commands: SetSetting [path] <key> = <value>, SaveConfig. SetSetting
    can operate on either config settings or script settings (like
    $GetSetting()), but any changes will be temporary unless SaveConfig
    is called afterwards to write the settings to the registry/INI file.
  • winamp.vsc changes: Added commands /zz, /zj, /zk, /zl. Added Winamp
    toolbar. See winamp.vsc for documentation and options.
  • New function $ListUnique(<list>), returning the list with duplicate
    items removed.
  • Buttons on the tab bar are now grouped by server and window type.
  • New methods for TStrings: SaveToToolbar <name> <options>,
    LoadFromToolbar <name>, SaveToToolbarItem <item> on <bar>,
    LoadFromToolbarItem <item> on <bar>. LoadFromToolbar can be called
    as a function ($stringlist.LoadFromToolbar(TB_WINAMP)) to return
    the options needed to recreate the toolbar.
  • ViRC.lib changes: Auto-connection will not be performed if you hold
    Ctrl down while starting ViRC. Auto-joining will not be performed
    if you hold Shift down while connecting to a server. New script
    settings "Auto-accept DCC chat", "Auto-accept DCC send",
    "Auto-resume DCC send", and "Dangerous file extensions". Logging menu
    items on server/channel/query/chat windows.
  • New command to run an alias in the current local variable context:
    Chain <alias> [parameters]. All the local variables from the current
    routine will be passed to the alias, and any changes made by the
    alias will be visible to the current routine. This is useful for
    chaining OVS event handlers:
    @l $old_handler = $prop($obj.OnKeyDown)
    @p $obj.OnKeyDown = _NEW_KEYDOWN $old_handler
    ...
    Alias _NEW_KEYDOWN
    ...
    Chain $1-
    EndAlias
  • New function $ShiftKeys(), returning a set of control keys that
    are currently held down. Possible keys are lshift, rshift, lctrl,
    rctrl, lalt, ralt, lstart, rstart, and context. 'shift' will be
    included if either shift key is down; 'ctrl', 'alt', and 'start'
    work similarly.
  • New command to play sound files: PlaySoundFile <file>. This can also
    be called as a function, returning 1 if the sound was successfully
    played.
  • InternalCall now works for many event types other than TNotifyEvent,
    so you can hook into ViRC's events such as OnClose and still use the
    default handling. Any parameter values for the event will be taken
    from variables (such as $Action for OnClose), and any output
    parameters will be written back to the variables.
  • User-defined classes can now use <AutoGet> and <AutoSet> as generic
    property handlers, which will be called if you try to read or write an
    undefined property.
  • New client setup page for default download, upload, sound, image,
    log, and script paths. Please note that the download, upload, and
    log paths default to your "My Documents" directory, not the ViRC
    directory.
  • Scripts now have a standard way to store and play sound files for
    events: AddEventSound <name> "<category>" "<title>" [default <file>],
    DelEventSound <name>, PlayEventSound <name>, $EventSoundList(),
    $GetEventSound(<name>), $GetEventSoundFile(<name>),
    SetEventSoundFile <name> <file>, $IsEventSoundSet(<name>). Items
    added with AddEventSound appear on the event sounds page in client
    setup. PlayEventSound can also be called as a function, returning 1
    if the sound was successfully played.

Bug fixes

  • The notify list is emptied when disconnecting from the server.
  • Redefining a toolbar to appear on fewer window types will correctly
    remove it from the old windows.
  • Aborting DCCs now closes the file reliably.
  • Setting a timer for a command that uses the built-in channel tracking
    (e.g., /timer 5 1 say hello) works correctly.
  • Toolbar buttons with mode 1 (enabled when opped) are enabled when you
    join a channel and receive ops automatically.
  • Random/sequential reconnection option is stored correctly.
  • "Cancel reconnect" button appears in the correct place.
  • ViRC minimizes to the tray correctly when the context menu for the
    taskbar icon is used.
  • Italic text is displayed properly with non-TrueType fonts.
  • Toolbars are repositioned correctly after reloading the script.
  • Fixed closing a server window while a $getaddress() or DNS lookup was
    pending.
  • Small bug with matching server entries fixed.
  • $GetMenuHint() and SetMenuHint are now case-insensitive.
  • $([foo] == [bar]) was slightly broken by the new array syntax.

Changed features

  • Magic modes 1 and 2 for MT_TRAYPOPUP items now cause the items to be
    enabled (or disabled, respectively) when ViRC is minimized.
  • The default personal script filename for a user profile is now
    local-<profile>.lib. (Create new user profiles by making shortcuts
    to 'ViRC.exe -user <profilename>'.)
  • If a script file can't be found in the specified location, but it
    can be found in ViRC's directory, ViRC will show a message but
    won't automatically load the scripts from its directory unless you
    press OK in the configuration window that appears.
  • $GetPath() now accepts an argument: 'download', 'upload', 'log',
    'script', 'sound', 'image', or 'virc'. $GetPath() with no argument
    is the same as $GetPath(virc).
  • The ident socket is only bound while ViRC is waiting for a server
    to connect to it (unless "Answer for other programs" is enabled).
    Ident should now work correctly with multiple instances of ViRC
    running.
  • ViRC will not try to reconnect if you use /server to connect to a
    hostname that can't be resolved, but it will try to reconnect if it
    encounters an unresolvable hostname during reconnection.

Change log history:
© Jesse McGrew 2001-2007