GNU talk, now with GTK interface!



I'd like to announce the first version of GNU talk that includes a
GTK+ interface for the talk client.  (I used 1.0.0).  Despite the fact
that it is possible to use this interface to do things, I doubt you'd
want to at this stage.  (The curses and other interfaces still work
fine though...) I've got a couple problems with GTK I'm hoping you
guys can help with.

  I'll start by saying that the GNU talk web page where you can
  download the program is at this location:
  http://www.ultranet.com/~zappo/gtalk.shtml

The first obvious problem is with my event loop.  Since I come from a
Motif/Xaw/Xlib specific background, I used X calls when I wasn't sure
what to do w/ GTK, and copied code from the GTK source at other times.

In order to support emacs and curses interfaces in the same program, I
have my own select loop, in which I add the X socket.  In the handler,
I strip all keypress events.  (An idea that is used by emacs) This
gives the application the same feel as the emacs or curses interfaces
of every other stock talk app, and I think that's important.  The side
effect is that GTK has a mysterious updating cache of some sort so
things don't update well, and I get lost mouse events.

My second problem is with geometry management.  I'm using nested boxes
to manage data in a fashion I'm used to with Motif and Athena, and I'm
having bad luck.  I've tried all sorts of flag combinations and am
confused.  Here is my setup with brief descriptions of what is broken.

Main-window:

  +-----------------
  | File ...                <- menubar
  +-----------------
  |
  |                         <- area for talk windows
  |
  |
  +-----------------
  | M-x foo                 <- minibuffer/status text
  +-----------------

The talk area is a vbox, organized like this w/ sub boxes.

  +-----------------  vbox1
  | text                    <- local user space
  |
  |-- status line --
  +-----------------  box2
  | text                    <- first remote users' space
  |
  |-- status line --
  +-----------------

So now I have a bunch of nested boxes.  My problem is that resizing
the talk_vbox w/ the text windows will overlap the minibuffer and menu
bar w/out resizing the top level window.  The next problem is that the
status line tries to take on the same dimensions as the text widget.
If I set various fill flags, the text widget overlaps the status line.

Support for everything is ready, it's just a matter of understanding a
couple of these issues.  I'm guessing it would take an expert only a
couple of moments to figure these out and recommend a solution.  I've
found the many gtk and gnome examples don't try to do what I'm trying
to do, so there is little to work with.  My current suspicion is that
I'll have to resize each widget by hand, but if there is a better way
I want to hear it!

Recommendations, or pointers to programs that do these things would be
greatly appreciated.

Thanks for reading this far
Eric

-- 
|\/\/\___/\/\/|  Eric Ludlam                 zappo@gnu.org; zappo@ultranet.com
\____ o o ____/  Homepage:                      http://www.ultranet.com/~zappo
     )   (       Trebuchets:    http://www.ultranet.com/~zappo/trebuchet.shtml
    ( * * )      FSF:				            http://www.fsf.org
     \___/              "Go Throw a rock!"  - Hudson Trebuchet Crew



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]