Version 18 of David Gravereaux

Updated 2003-01-17 22:09:51

mailto:[email protected] (Just some Tcl hacker dude)


I have a Tcl enabled IRC client I'm working on. It does some fancy stuff and I'm near to a release. Here's some screenshots:

  • Doing Japanese:

http://tomasoft.sf.net/in_a_japanese_channel.gif

  • Doing Chinese:

http://tomasoft.sf.net/263.gif

  • Doing Klingon (in utf-8 over IRC and back using the CTCP/2 method of escaping):

http://tomasoft.sf.net/klingon.gif

  • being normal (boring):

http://tomasoft.sf.net/in_an_english_channel.gif


The client has been painfully designed to be 2 complimentary halves:

  • back-end (the irc_engine extension, 100% Tcl API only)
  • UI (whatever UI the user prefers according to the command control API)

The irc_engine extension provides a single Incr Tcl class. The UI half (partialy undefined) also provides an Incr Tcl class. The two are brought together using inheritence like so:

 source irc_engine.itcl
 # ===============================================================
 # By selecting which IRC::ui class is sourced, we can switch
 # to what UI we want to use.
 # ===============================================================
 source irc_ui.itcl
 itcl::class IRC::connection {
    # ===============================================
    # Bring the 2 halves together using inheritence.
    # ===============================================
    inherit engine ui
    constructor {args} {
        eval engine::constructor $args
    } {}
    public method destroy {} {itcl::delete object $this}
 }

 ### Create a connection instance.
 set a [IRC::connection #auto]

 ### Connect to IRC.
 $a connect irc.qeast.net davygrvy DG {yo moma!}

It fully supports many text attribute "standards" such as ircII, mIrc, ansi, hydra/besirc and ctcp/2.


[ Category Home Page | Category Person ]