Bowser
Bowser is an IRC client for the BeOS
platform. Its original source was authored by
Andrew Bazan and can be
found at
Andrew's web site.
Because of his busy schedule at college, Andrew has stated
that he no longer can devote as much time to Bowser's
development. I've tried to help out with this and am
providing what I've done to Bowser here. Many improvements
and features have already been added and are detailed below.
Thank you Andrew for all the hours you spent writing Bowser,
and making it very easy to enhance it.
Andrew opened the source to Bowser, so I will continue to
keep it open. You can either download an Intel binary or
the complete source. I do not have access to a Power PC
machine, so no binaries for that platform are available.
You must have BeOS 4.5
to use this release.
If you're installing this version of Bowser as a replacement for Day
36 and lower releases, it's important that
you remove your existing Bowser executable and the
~/config/settings/Bowser_Settings file. The old
settings format is incompatiable with the current release, but
this should be the last time the settings file needs to be wiped.
For support, email
me (Todd Lair)
or Andrew.
I must thank Gord McLeod
for all his great suggestions and testing. He really has helped
me out a lot, and I have a ways to go before all his ideas are
implemented.
Day 40
This release is provided and coded by
Wade Majors with a few
extras slipped in. Thanks Wade!
- Deskbar Icon
Notification options are now called Deskbar Icon options and
should be easier to understand now. The application icon itself
was reverted back to the old Bowser icon (I guess I'm the
artist I thought I was).
Users can now specify under the Deskbar Icon preferences
other nicks to watch for, and optionally flash those blue.
They can be specified in the space delimited text
field, "Other nicks". In case a user wants to watch for
that special someone :) Note: the new precedence order
for flash is first users nick or aka, other nicks, and
finally content. New menu item "Other notification" on the
client windows enables or disables this on a window basis.
Additionally, a user can specify the number of seconds for
an auto nick blue flash with the "Auto nick timeout" field
in the Deskbar Icon preferences. If a user does specify a
a timeout value greater than zero, mentions a nick other
than his or her own, and the nick mentioned user says something
within the timeout period, the user with the nick mentioned will
cause a blue flash when he or she says something.
- Setup Window
Option to hide the setup window when you connect to a server
and an option to activate the setup window when you disconnect
added. If the user has connect on startup enabled, user will
not see the setup window until disconnected.
- Server Enums
Server Enums added for new commands.
- Aliases
- /t alias for /topic
- /deop alias for /dop
- /q alias for /query
- /w alias for /whois (instead of /wi)
- Version Command
Version command, by itself, sends a version request to the
server. With a nick, it sends a ctcp version request to
the nick.
- MOTD Command
MOTD command now sends parameters directly to server.
- Operator Commands
The following operator commands were added:
- /oper
- /rehash
- /stats
- /admin
- /info
- /kill
- /trace
- /wallops
Also, the /op and /deop commands accept up to four nicks
instead of just the previous one.
- Raw Command
The /raw command now echos the string to the main
text view.
- Voice Popup
Voice and devoice entries added to nicklist popup menu
- AFK
The /away and /back commands have been added along with
preferences in the Command section to allow default
action text. If /away is used with a parameter, the parameter
will be used as the away text, otherwise the preference text
will be used.
- Preferences
Preferences are now accessable from any client window with
the window/preference menu item or with Alt-P.
- Local Channels
Added support for local channels. Joining &local doesn't
try to join #&local.
- Tab Completion
Tab completion will now first try to match the channel name,
and then if unsuccessful, the nick list.
- Zooming
Client windows are now zoomable.
- Droppings
Users can now drop non text files on a message window
input control, and Bowser will kick off a dcc send to
the targeted irc user the message window is for.
- Status Bars
Added server and current nick to the status bar for
message and server windows.
- Double Ops
Fixed bug when users were deoped or oped twice. Op count
in status bar would get incremented twice.
- Server Windows
Added navigation to next and previous server windows with
the Window menu items "Next Server" and "Previous Server".
- Timestamp
If user has timestamp preference turned on, more things
will be timestamped.
- Notify
Added /notify and /unnotify commands. Users can use these
commands to add to the list of nicks to watch. Watched
nicks will be displayed in the notify window as dark gray
if they are not connected to the irc server and black if
they are. Messages will be displayed and posted to active
window when a nick has changed connection status, and event
preferences have been added to control what is displayed.
Day 39b
This release is provided and coded by
Jamie Wilkinson. Thanks Jamie!
- Icon
Icon changed along with deskbar flashing. Yellow means content,
and red still means nick.
- Connect at Launch
In server's options window, added preference to start up
server upon application's launch. Note: with this and code
added, multiple and simultaneous connections work.
- Auto Input Focus
Added code, so if main text view is current focus and user types
a key, the keypress will be forwarded to input control and the
input control will be made current focus.
- Crashing
Crashing bug fixed when user switches current server to one that
had the option window open.
Day 39a
- Menus
Added Window menu and moved navigation items to it. Also
added a means to get to the Server and Setup windows.
- Scrolling
Added ability to turn off scrolling in the main window. Scrolling
is now automatically turned off if a user slides the scrollbar tab
up. If scrolling isn't toggled off and the user returns the scrollbar
tab to the bottom, scrolling will continue.
- List Joins
Users can now join channels from the List window by simply invoking
the list item.
- Server Copy
Added ability to copy current server from the server menu field.
This will copy all states of the current server into the new one
including ignores, options, and nick orders.
- Initial Messages
If a user has preference open message window with sends, the
initial message was not being placed in history. Fixed.
- Server Options
Sizing problems with Server Options window corrected.
- DCC Send
- DCC send works from the command line.
- Bowser had a problem with sending files a little larger than
most due to the fact that the sender was not reading the
confirmation data from the socket (it would fill up). Fixed.
- Changes to status bar labels now report bytes per second on
both sending and receiving windows.
- DCC file transfer windows will now close when completed.
- Window Anchoring
Added in preferences the ability to toggle anchoring of windows
with General's "Window selection follows workspace"
Day 39
- Server Nickname
The server was not updating its copy of the current nickname,
so this caused problems when trying to join new channels
after you change your nick. Fixed.
- Tab Completion
Tab completion now replaces what the user has typed with
the actual nick instead of postfixing the remaining. This
fixes case differences between what the user has typed
and the actual nick.
- Server Options
New server options window provided. User can gain access
through the server name menu field, and allows extra settings
for a particular server. Current options are as follows:
- Ability to ignore initial motd
- Ability to enable identd for server. Some servers
do not connect to the machine Bowser is running on
for an identd server. For these servers, Bowser
appears to just sit there and do nothing if the
user had the identd server enabled. Moving it
to the server level allows users to connect to
ones that attempt to connect to the local machine
for identification as well as ones that don't.
For the one's that don't, simply disable the
the identd for that server.
- Ability to enter commands that will be issued upon connect.
- Ignore System
Ability to ignore other users has been added. A user can either
ignore on a nickname or an address. Addresses are specified as
regular expressions, are case insensitive, and must contain the
character '@'. Nicks are matched exactly (excluding case).
Nickname ignores will follow nickname changes, and both
nickname and address ignores save.
Address ignores often cannot be realized immediately. They will
take effect when other users say something, and the user will
be notified that they are ignoring them.
Color preferences and command preferences also have been added for
ignores. Users who are being ignored appear in the bottom
of the names list. Command preferences add $i as a
variable to view which ignore was applied.
The following commands have been added for the ignore system:
- /IGNORE <nick | address> Adds an ignore.
- /UNIGNORE <nick | address> Removes an ignore.
- /EXCLUDE <address nick> Excludes nick from
address ignore.
As well, a GUI has been added for the ignore system and can be
accessed with Alt-I from any client window. The ignore window
will allow additions, removals, and exclusions of ignores. Care
has been taken, so commands will update GUI's content if left open.
When unignoring, a user must specify the exact ignore he or she added.
That is, if a user adds an ignore by address, they cannot remove it
with a nick.
- Nickname Save
A bug relating to initial nickname saves has been fixed.
- Input Font Preference
Users can now set which font is used for the input control.
- Channel PING's
When user issues command /ctcp #channel PING, correct ping
times are now reported.
- Channel Name's
When a user joins a channel, Bowser was not adding the names
from additional user reports. Fixed.
- List Command
Added ability to query current channels with the /LIST
command. When executing the list command, users are shown
a window and given status on channel load. Once load is
complete, users have the ability to find and filter results
with regular expressions. Two sort orders are provide
as well: channel and user count.
- Additional Bugs
More bugs were fixed with this release, however I forgot
to jot down what they were. Some where very quick and while
I was chatting with a few people on IRC. If after trying
this release you still have a bug issue, please email me;
I've either thought it fixed or lost the post it.
Day 38b
- DCC Chat
Problems with Deskbar crashing when using DCC chat fixed. Also,
nickname changes work in DCC chat windows. Another problem
with chatting was that the initiator was sending the LAN IP
address instead of the DUN supplied one if the user had a
LAN setup. This is now fixed as well; I simply now use
the address you connected from and to the IRC Server.
This should make DCC chat very usuable. It's far from
perfect and deserves a little more work though.
- Input Control Drop
Request when dropping a single line to input control now
places text in the control instead of sending it off
directly to the connection has been implemented.
Day 38a
- DCC Chat
This was on my list of "get to's" before release, and well...
I didn't get to it. Here is a working DCC chat build.
Sorry about that folks.
- Tab Completion
No longer case sensitive
- Notification Enable
When enabling notification from None to another state and
having open channel/server/message windows, the windows
will register themselves with the deskbar icon. The deskbar
was crashing otherwise.
- DCC File Receive
When receiving a file from someone else on IRC, Bowser will
now prompt the user for a place to store the file and a name.
- Command Preference
New preferences added to configure default quit and kick
messages. The following supported variable is available
for quits.
- $V Current Bowser Day Count
- Ident Server Preference
Added (General) preference to turn off the built in ident server.
- Font Preferences
Moved allocation of controls for Font preferences from
the constructor of the Font preference view to the
AttachedToWindow hook; Gord has 3000 fonts, and this speeds
it up for him if he doesn't have to change his fonts.
Day 38
- Preference Organization
Restructered preferences dialog for dynamic views. Allows
easy additions.
- History Control
Added a control that provides easy access to the history
of commands entered. Added a History menuitem, so keypressers
have access.
- Color Preferences
Expanded color preferences from one ColorLabel to one
ColorLabel for each color preference
- Event Text
Added the ability to configure event text displayed.
and preference view Event. For each event text,
all available variables are used for the event by default;
all events do not use all variables. Variables have the
following meaning:
- $N Nickname
- $n Alternate Nickname
- $I Ident
- $A Address
- $R Remaining Text In Line
- $C Channel
- $T Topic
- Status Bar
Status bar is now a little more pleasing to look at.
Displays server, user count, op count, modes, and user's
current nickname for channel windows.
Day 37
- Speed Improvements
Network code completely rewritten to provide huge
speed improvements. Used the new Network kit more
to see if I liked it; I don't think I do.
Other improvements to speed are riddled through out the
new code, and I think most will find that Bowser is pretty
snappy.
- Clean Up
Major rewrite of a lot of the code and restructuring
the class layout of the different types of windows.
Code is much cleaner.
- Memory Leaks
Squashed all those nasty memory leaks Bowser was very
fond of. I dare you to find one!
- Lazy Resize
Bowser's lazy resize of controls within a window now
fixed. Still flickers, but snappier.
- Lazy Quit And Part
Bowser now closes the windows with the quit and part
commands. Quit terminates the server connection, while
part closes the channel or message window only.
- Colored Selection
When selecting text in the main view, Bowser would
lose all of its color highlighting. Fixed.
- Font Preferences
Added configuration of Server, Text, URL, and Name fonts.
Font preferences do not change existing text in the
channel, message, and server windows, but it will change
new text added. (I'm working on this)
- Color Preferences
Added configuration for most if not all colors for Bowser.
I may have missed a few--if so, let me know. Like font
preferences, color preferences are not imposed on existing
text in the server, channel and message windows. They will
eventually.
- Notification
Bowser can now live in the deskbar! For inactive windows,
the icon will flash green when there is new content and red
if someone mentions the user's nickname. Clicking on the
icon will display a pop up menu to show what windows are
the cause of the flash. Shift-click on the icon will make
the window with new content active regardless of hidden
state. The newly activated window will be displayed
in the current workspace. Nickname flash takes precedence,
so the icon will never flash green when red, and shift clicking
will display the nickname mentioned window over the new
content window.
Users have the ability to turn off notification on nickname
or content level as well as the flash. They can also turn
off notification for a particular window, and it will save
with the window's settings. Users also have the ability
to add names to enable the nickname flash with the "Also
Known As" preference. These space delimited names will
be treated the same as the user's nickname for purposes
of notification and nickname highlight.
- Nickname Highlight
User's nickname now correctly highlights.
- URL Highlight
Bug's fixed in URL highlight now squashed. Lines containing
multiple urls were not being displayed and highlighted
correctly--they are now.
- Multiple Servers
Bowser now supports multiple servers. Enough said.
- Central Nicknames
Bowser now stores its nicknames apart from the server
settings and supports multiple nicknames. For the
server settings, only the order of the nicknames are
saved, so a user can specify which order the nicknames
are tried for each server. Preferences (in General)
supports nicknames bound to a server. This gives the
illusion that nicknames are stored on the server side,
but still remain in a central repository.
The nickname listbox can be right clicked to show a pop
up menu in which the user can add or remove a nickname.
If the nicknames are bound to servers, the menu also
contains a load item which will add all nicknames to
that particular server. The order of the nicknames
can be changed by shift Up/Down arrow while a nickname
is selected.
- Drag and Drop
I'm probably going to get banned from IRC for this, but
a user can now drag and drop either text or plain text files
to the input control. It supports commands and or normal
messages. It is great for posting code though.
- Command Line
The following command line arguments were added:
- -r
dumps received data on stdout
- -s
dumps sent data on stdout
- -v
displays embeded and unsupported codes in hex
- -i
shows the id of the window with every channel
message
- -n
displays debug code for nickname removal
- -N
shows status of adding a deskbar icon
- -u
disables attempt to odopt orphoned deskbar icon
- Tab Completion
Nicknames will be completed with press of the tab
key in the input control. I simply added code to
look for the first match.