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
|
What's new in Visual IRC 2.0pre11?
Additions (24)
Bug fixes (14)
Changed features (6)
- 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.
- 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.
- 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:
|