[ENH] IRCEnhancements-sbw - updated to not use scrollbars in small input panes
swessels at one.net
swessels at one.net
Thu Apr 4 15:55:25 UTC 2002
"Change Set: IRCEnhancements-sbw
Date: 28 February 2002
Author: Stephan B. Wessels
The existing IRC cllient has been left alone and a subclassed client was
For background IRC protocol information please see
See (IRCConnectionEnhanced releaseNotes) for a workspace window
all release notes.
Key new features include:
A new user interface having one console window per connection
and then having all console messages, channel messages and private
messages contained inside the main console window using tabbed
Support was added for /WHOIS and /ACTION from the channel chat
windows. Other windows do not have complete support for these
The channel messages text, private messages text, and console messages
text panes are read-only. This allows you to put the cursor over
the input pane at the bottom or the actual text pane and begin typing.
The input text you type is sent only to the input pane at the bottom.
Copy and Find operations are still possible with the read-only text
You can jump to a channel from the channels listing pane by one ot
two techniques. First you can select a channel from the produced list.
Second, you can use the Prompted Channel button and be asked for
the name of a channel you want to join. The channel name does not
need to appear in the list. Further a check is made against the
name you enter and a # is prefixed if you left it off.
The console Connect button indicates the state of the connection. It
highlights in a color to indicate that you are connected. The label of
the button also changes to Disconnect once you are connected. If your
connection drops by itself, for some reason, the button color shows
another color to indicate it was dropped and the button text is changed
The Channels list pane is a multi-column pane. The Refresh button also
changes color to indicate that a refresh is active. A channel refresh
action can take a while so the tag of the Refresh button also attempts
to update with an indication of the number of channels fetched so far
as an indicator of progress.
The channel chat input pane performs Nick Completion. Anywhere on
the input text line you are typing you can begin to type a few
from the beginning of a channel Nick and hit the tab key. This will
complete the nick tag for you. If there is more than one Nick that
begin with the same characters, the tab key will rotate through them
for you. You can also do Nick Completion multiple times on the same
line of text.
A leading tab on a channel chat input line is invalid and ignored.
Also empty input lines are ignored.
Highlilght your transmitted messages in the channel chat pane with
a color. Also, messages that have your nick in them on the channel
chat pane will be highlighted in another color.
/ACTION is supported from the channel chat input. You can type in
a command like
/action looks around room
and that message will be sent as an ACTION message to the channel.
All ACTION messages are highlighed in the channel chat text pane in
The channell chat pane is formatted into 2 columns. The left most
column is the nick and the next column to the right shows the
New server configuraton dialogs. Includes the ability to tailor
while connected. Modification of connection parameters for the current
session is prohibited while connected.
Connection Profiles are supported. You can specify a unique
set of connection parameters for any session and save them in a
list. The options you select when you create a new profile are those
of the current profile.
Added a built-in table of many IRC servers you can choose from with
a dialog window.
You mayhave multiple console sessions open at the same time, each
having a unique IRC server connection. The title of the console window
reflects the basic parameters of that connected session.
Added support for roll back/forward of previously typed text. Use the
up and down arrow keys to scroll through text lines.
/WHOIS command sends response from the server to your channel chat
Only sends private message to the Provate pane that are NOT already
being sent to another private messages pane. That is, if you have a
private messages pane open the responses there are no longer duplicated
in the Private Messages window.
Tabbed channel text and private chat panes have their tabs highlighted
if messages appear there while you have another pane in front. You
can use this feature to watch for activity on a channel or private
Channel member JOINS and PARTS are now logged to the channel chat
text. There are options to disable this.
An option is provided that supported INVITE requests. When you get an
INVITE request to join another channel this option will allow automatic
opening of that channel then adding you to the members there.
An option is provided that automatically opens up a private chat
window if you receive an unsolicitied private message. This can
include server messages and NICKSERV messages.
Added support for multiple line input to a channel and private chat
pane. This allows you to know PASTE into a channel.
Channel members are now listed in a logical order. Channel operators
are at the top, followed by +voiced channel members and then
normal members. Also, the nicks for operators are shown in red
on the channel members list and the voiced members are show in
Added support for the /CLEAR command to console, private chat and
channel chat windows. /CLEAR will clear the contents of the text
pane. This command is not sent to the IRC server of course.
Added /INSPECT to console, private and channel chat input pane
commands. This will cause a Squeak Inspector to open up on the model
for that text pane.
Support provided for NICK change messages receieved from the IRC
/NICK command is now supported from the channel chat input pane.
(-n is change set revision number up until -41, when code was
Entries made after that are by release date. Most recent at top.
Took some advice from Ned Konz and made the small input panes to not
Fixed a problem with the the multicolumn lists logic that impacted
the email program Celeste. The problem does not exist in Celeste
unless this program is also installed. This update fixes both.
Moved TabbedSwappingControl to Morphic-Palettes system category.
Renamed the change set.
Channel chat user list menu is now context sensitive.
Generalized communications paths software. Now have support
for /ACTION command issued from a private message pane.
There is a remaining issue with SERVER messages getting lost.
Fixed a race condition when processing private IRC messages. The
symptom was double lines of text appearing when a new window
was first opened if created by an external private message send.
The size of the looping collection was changing while it was being
More cosmetic tweaks.
Code factoring around messages sends. This work is not complete but
represents a first pass at new code paths.
Fixed problem where channel users list was not getting updated if
the case of the selected channel did not match the actual channel
name EXACTLY. In IRC channel names are case in-sensitive.
Some interesting cosmetic touches.
Invite didn't update all panes the first time the channel window
Support of rcvd ACTION messages in private message windows.
Note that /ACTION commands are not formatted properly in the
display. Received ones are shown correctly.
Private chat page had overlap on text and input panes.
Added support for WHOIS in private chat window.
Private message chat that opens up a new window shows the
first line of text twice.
Added /EXPLORE as valid command.
Mode change detection was buggy. Consequently there were
problems identifying all operators and members having
voice in a channel.
Ordering of channel members is now case insensitive.
Bug in editing a profile name was fixed.
Added logging of commands in the console.
Incorrectly setting our nick any time someone changes theirs. Oops.
5 mar 2002 #4
Added button to profiles dialog that saves the current configuration
as a new profile.
5 mar 2002 #3
Server based messages that are posted to channel chat panes are now
aligned with the columns of other member base chat traffic.
5 mar 2002 #2
More tweaks to the multi column headered morph so that headers show
up even when the list is empty.
Mode changes noted in channel chat now show NICK of person
that initiated the mode change (+/- voice/op).
5 mar 2002 #1
Fixed a bug where profile names could be
mismatched from the keys used to store them.
Factored the release notes into 3 editable strings. One for features
enumeration, one for revisions history and a to-do list.
Added some utility functions that make it easier to produce a new
change set preamble that agrees with the release notes.
Fixed a bug in the multicolumn header morph where it would try
to draw headers before the list contents where known.
Channels pane redesign of layout.
4 mar 2002
Added provision to edit an existing profile.
Also added provision for user to change the server selected from
the profile dialog.
-41 (published 4 mar 2002) Fixed a bug pointed out by Bijan Parsia.
-40 Problem with post load initializer.
-39 Trim blanks around any added profile name.
Generate better initial profile names from server names.
-38 Extended multi column list morph with a new morph
PluggableMultiColumnListMorphByItemWithHeader used in the profiles
selection dialog. This morph provides multi-column ability with a
Disable active editing of configuration while connected.
Profiles are working. Note that the current options are copied into
profile you create.-37 Factoring of message sending code. Still needs
cleanup in that code.
Made options available on a per connection basis. Each connection can
their own unique options. When you open up a new console window from
the World menu the options are set to the defaults. When you open up a
new console from the New Console button the options from the existing
console window are copied forward to the new one.
Added support for Profiles. A Profile contains a nick, server, and
which can be used for initializing a connection. Profiles management
the user are not coded yet.
-35 Handles nick change messages received from IRC server.
Also properly handles /whois and /nick changes initiated from channel
-34 Fetch of channels list shows update count while fetching.
Detect when IRC server fails to send channel list because of server
-33 fixed problem parsing PART messages from some servers
Generalized the reserved keywords (CLEAR, INSPECT) to be included in
any IRC input pane (console, channel or private messages).
-32 Support /CLEAR in channel chat window. Added support for /INSPECT
-31 Fixed some bugs with mode changes in channels
Fixed problem with connection dialog/setup window after being
Better factoring of TabbedSwappingControl morph.
Lots of factoring in IRCConnectionEnhanced.
-30 Fixed bug in servers populate code.
-29 Show channel member names in logical order with color highlighting
and voiced members. Detected mode changes that impact member status.
Fixed bug where PART messages were being sometimes sent to the wrong
-28 Fixed problem with post load initializer where populated servers
database was empty.
-27 Bug fix in paste/copy code for channel text.
-26 Handle multiple line inputs, such as can come from a paste
-25 Cosmetics in text messages from server.
Added close option to channel text menu.
Command keys work from the channel and console text panes now.
-24 Change set maintenance.
-23 Fixed problem where new private messages were not causing the tab to
Open up a chat window pane for private messages we receive except for
Member channel joins, parts and quits are now shown in the channel
Support INVITE requests.
Added Options pane to Setup dialog.
Factored out most of the swap/tabbed pane into a new pane design used
the Config dialog.
-22 minor code factoring.
-21 /ACTION messages supported in channel chat.
-20 Added support for /WHOIS command to channel chat windows and users
-19 Added rollback of messages to console window pane.
Fixed bug in private chat window where ""me"" was still being used as
Fixed places where we were using asLowercase instead of asIRCLowercase.
Stop sending private messages to private messages redundantly pane if
there is already a
private chat window open to get them.
Factored sound messages for possible future enhancement.
-18 Since we can now have multiple consoles open on different IRC
servers, the title of
the window now reflects the connection.
Rollback of previously typed text.
Fixed the bug where there was a delay before channel members were
-17 Redesign of the ""population/status"" pane.
First hooks put into place to add support for find/copy etc from
keyboard in the
channel text pane. Keys are not mapped yet.
-16 New server configuration dialog allows choices from many possible
Added a built intable of several known IRC servers.
-15 Dropped the ""me"" designations for the real nick.
Factored all the colors into IRCClientColors class. It's not as nice
as a having
color preferences management, but you can edit them all in one place.
extension would be to allow storing and loading of customized colors
Highlight transmitted messages in a color, and highgllight recived
that contain our nick in a color.
Highlight ACTION message responses with italic.
Channel chat pane breaks nicks into column before messages.
Fix problems with automatic nick completion. It used to take more than
key hit to get started, and you could not embed TABs in the text line
if they were
not part of nick search. Also, you could not begin a line with a tab.
In the case
where someone types a tab in the first column and there are no
match against a nick, treat it like someone is typing indented text.
-14 Nick completion. We trap the TAB key and rotate through nicks.
-13 bug fixes and more cosmetic tweaks
-12 bug in menu for channel chat pane fixed.
added menu to private chat panes.
cosmetics to the population counter pane.
-11 Removed connect button from setup dialog. Ensured that setup window
be closed if edits were not accepted.
Indicate if the connection was dropped by color change in connect
Reconnect channels and private chats that were open if the user
after a dropped
-10 added some edit menu functions to the readonly chat pane.
added menu to user list in chat pane.
selected channels button will bring existing channels window into focus
on manual disconnect, close the closeable tabs to avoid later
made the users status pane (population: x) read only.
cleanup the borders and pane background colors for the user list in the
cleanup the borders and pane background colors for the channel buttons.
private message windows have the same focus properties as the channel
Input goes to the input pane.
made console pane readonly and again used the input pane to catch
replaced console menu with one more appropriate since functions from
menu are now buttons.
show channel list refresh is busy by way of button colors.
removed special button from channels pane.
-9 Better connect/disconnect detect and indication.
Release the channel listeners when we close a tabbed pane.
Handle rotate left/right of tab panes.
-8 Opening up a private chat pane now becomes the active tabbed pane.
Highlight the tabbed panes that see messages while you have another
pane in front.
Check for missing # in front of prompted channel names.
-7 detect socket drop and change connect button state to indicate what
when someone parted from a channel.
-6 bugs fixed
-5 new provision for closing tabbed panes. Only specific panes can be
added buttons to move pane tabs left and right but nothing implemented
those features yet,
-4 more clean up of little bugs
-3 clean up of change set contents.
-2 fixed problem with send of private messages. Input pane was not
-1 general release
NEED TO DO: (or would be nice to do)
These are in no special priority order.
- cleanup code to add class methods defining new constants for commands
I have added.
- mIRC colored text
- DCC send/recv
- PING response for server timeout? Verify this mechanism is working
right. I occasionally get disconnects and think this may be why.
- add 401 no such nick/channel to channel feedback
- /away needs to be supported
- disconnect does not close private message panes
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 67239 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20020404/a0a9d431/IRCEnhancements-sbw.cs.obj
More information about the Squeak-dev