diff options
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | NEWS | 83 | ||||
-rw-r--r-- | TODO | 53 | ||||
-rw-r--r-- | colorless.theme | 3 | ||||
-rw-r--r-- | configure.in | 4 | ||||
-rw-r--r-- | docs/COMMANDS (renamed from COMMANDS) | 0 | ||||
-rw-r--r-- | docs/Makefile.am | 2 | ||||
-rw-r--r-- | po/POTFILES.in | 1 | ||||
-rw-r--r-- | po/fi.po | 1963 | ||||
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | window-views-patch.diff | 2672 |
11 files changed, 132 insertions, 4653 deletions
diff --git a/Makefile.am b/Makefile.am index 1a7edfd4..2fdb21b4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -30,10 +30,9 @@ endif confdir = $(sysconfdir)/irssi conf_DATA = config colorless.theme -EXTRA_DIST = window-views-patch.diff \ +EXTRA_DIST = \ autogen.sh \ README-HEBREW \ - COMMANDS \ file2header.sh \ irssi.spec \ $(conf_DATA) \ @@ -1,3 +1,86 @@ +v0.7.19 1999-11-20 Timo Sirainen <cras@irccrew.org> [unstable] + + * Text formats changed - they should be compatible with epic/bx now. + See docs/FORMATS for more information + + + Internationalization support - finally. No languages yet though.. + + + /window new split creates a new splitted window + + Automatic text replaces, useful for things like :9 -> :) .. This + is actually almost same as completions, except they are activated + with different keys.. + + Nicklist popup menu is configurable + + ~/.irssi/startup - add all commands here you want to run at startup + + Much more levels for ignoring/logging/etc. See docs/COMMANDS for a + list + + Ignoring joins, parts, etc. work, ignoring channels work + + Automatically loading plugins at startup works in irssi-text and + irssibot too + + Autoaccept dcc get/chat from given nick/address + + /help + + Server/Links dialog, displays list of servers in tree view. + Doubleclicking a hub asks the servers behind the hub (doesn't seem + to work in efnet) + + /server +irc.server.net does the same as /connect irc.server.net + + Nicklist is resizeable + + Buttons for closing and moving window left/right + + Query windows display nick's address in topic widget and the + address isn't displayed in every msg in query windows. + + It's possible to add bold/colors/etc to default quit message + + MIRC colors are finally displayed with right colors + + You can run multiple command in alias, separate them with &&. + You can create a & character with \& + + Hilighting changes: Your own /msgs won't trigger channel activity, + received private messages get the "new text" color + + /MODE accepts multiple modes at once and they're split automatically + to 3 modes/command, like /MODE #chan +oooooo nick1,nick2,.. is + split to two commands which are sent to server. + + /KICK, /MSG, /NOTICE, /CTCP and /NCTCP are also automatically split + into multiple real commands. /KICK can kick max. 4 nicks per + command, privmsg/notice can send max. 3 nicks per command. + + Option: Show timestamps in msgs. + - Joining to channel from channels dialog that had password set + didn't work. + - When scrolling, Irssi text widget sometimes left black spots in + text area if some other window was overlaping it. + - DCC resumes still didn't work + - Fixed some memory leaks + +v0.7.18.1 1999-11-04 Timo Sirainen <cras@irccrew.org> [stable] + + - Window didn't scroll if you were using GtkText + - Resuming DCC transfers could mess up the existing transfers with + the same nick.. + - Some PONGs were displayed on screen if you were enough lagged.. + - --help works now without gnome (gtk/text versions) + - Sending data to irc server/dcc chats/proxy's clients/etc. won't + block forever anymore - I once got it to happen with proxy.. + - Some fixes for channel limit/key widgets above nicklist + - Speech plugin works now right with timestamps enabled + - irssibot (gui-none) doesn't crash at startup anymore and it doesn't + link with ui-common anymore. Also added a --load / -l command line + option to specify what plugin to load at startup. Default = bot + +v0.7.18 1999-10-18 Timo Sirainen <cras@irccrew.org> [stable] + + * Finally a version I dare to call stable :) Just a bugfix release + for 0.7.17 but it had only a few problems.. + + * Status window is now off by default + + - Sound and speech plugins weren't working. + - Proxy plugin shouldn't crash now while not connected to server + - Using some menuitems crashed when using the popup menus instead of + menubar. + - Removed a Gdk-Critical warning when opening themes dialog without + GNOME + - When resuming DCC transfers the average transfer rate was incorrect + - If you tried to connect to server while themes dialog was open, + it crashed. + - Several problems fixed with changing background pixmaps + - Fixes for building from different directory + - Trying to save theme crashed.. + v0.7.17 1999-10-16 Timo Sirainen <cras@irccrew.org> [unstable] + Irssi text widget! (replaces zvt) @@ -1,4 +1,4 @@ - + *** Bugs - irssi can't find new themes in ~/.irssi/ while running - scan for new @@ -13,6 +13,7 @@ *** text UI + - split windows - statusbar: - when starting to run out of space some items could be made smaller, activity for example .. make some generic flag for items to use. @@ -25,12 +26,17 @@ *** Big things - - keyboard configuration + - Complete modularisation of everything, split irc-extra, ui-common and + gui-* (gui especially) into separate logical components. The modules would + have init(), deinit(), save_state() and restore_state() - save/restore + should save as much as possible so that it would be possible to restart the + whole base system. Like when upgrading to newer version you wouldn't need + to quit irc at all :) + - session saving thing.. specify what channels/queries/dcc chats to open in which window (real/tabbed/in same window with some other), what irc net channels goes to where, what channels/queries to open at startup, etc. use dialog with gtktree widget to change it. - - split windows with gtkpaned (check window-views-patch.diff) - some sort of address book? our own irssi ctcp to ask for other irssi users for their information (of course not without asking (except optionally)).. could be nice also to automatically update it, keep track of all seen @@ -51,8 +57,7 @@ - plugins: - perl plugin .. implementation problems, C's structures need to be handled some way .. like for server structure get_address(), - get_port(), set_address(), set_port() etc.. - - other scripting plugins would be easier? scheme, tcl, pythong? + get_port(), set_address(), set_port() etc.. - other scripting plugins would be easier? scheme, tcl, pythong? sula premirex uses scheme, it would probably be pretty easy to learn from it how to do it to irssi :) - IRC bot, eggdrop is too old, needs a replacement ;) (started) @@ -80,25 +85,47 @@ * Notify list, join the two different dialogs, ability to track changes in gone flag + - _one_ popup dialog could open which lists all nicks in notifylist, maybe + sorted by arrival time, display the dates, latest joined could be with + different color? etc. - nick-specific options: - check for gone-flag changes (use userhosts instead of isons) - - create popup dialog + - pop up the dialog - run some command (like /exec as soon as I get that done :) - dialog: keep track of hosts/realnames so after closing and opening the dialog again they would show up.. + * common api for statusbar handling + - it should work just as well in text mode and gui, colors could be done + with the normal % formats. GUI just ignores the colors.. + - display number of ops, voices, normals and ircops in statusbar + + * API for creating/modifying menus and toolbar, especially from plugins + - at least one configurable menu ("usermenu"), or maybe make the whole + menubar user configurable + + *** Little things - itext: - save/find text - text selection draws the entire selection every time you move the mouse... - - improve msgslevels and ignoring .. Like ignoring "chan" doesn't work now. - It could be changed to joins, parts, quits, topics, nicks, .. just rip all - the msglevels from bitchx and use them :) - - use different themes in different channels/queries? + - if some other window has got much text, switching to it first time + takes some time..? - possibility to display different colors in nicks from different people.. and different colors for word hilighting too + - exceptions for ignoring + - editor in setup for ~/.irssi/startup + - gui help + - change signal handling in gui-gnome so that the actual drawing and + functionality are in different signals, so that plugin could change the + whole look and feel of irssi. + - currently irssi sends USERHOST commands every now and then to find out + who are away and who are not.. optionally it could instead just watch if + someone hasn't written anything to channel in n minutes and mark it "away" + to nicklist. + - use different themes in different channels/queries? - /connect ircnet could connect to ircnet - change some GLists to GHashTables, aliases at least - check new irssi versions with http rather than with irssibot.. @@ -110,14 +137,14 @@ - clock? - dcc transfer meter (gtk progressbar) - you could configure which events (whois, notify, etc.) to show in what - windows (all, current, status) + windows (all, current, status, msgs) - gui for configuring plugin specific theme format texts - dcc send: allow selection of multiple files to send (also for dnd from gmc!) Allow dropping files to anywhere in irssi. - /timer, /clones - display net splits? - - run multiple commands with one alias (what was this needed for? can't - remember..) - regexp for hilighting words? - subcommands (dcc, window, ..) could use common function instead of copy and pasting the same function all the time and modifying just two words... + - {}|~ are same as []\^ (not in all irc networks) - does this really affect + irssi at all..? diff --git a/colorless.theme b/colorless.theme index 3556ef2c..30a102e3 100644 --- a/colorless.theme +++ b/colorless.theme @@ -43,6 +43,7 @@ own_msg = "<$1> $2"; own_msg_channel = "<$1:$2> $3"; own_msg_private = "[msg($1)] $2"; + own_msg_private_query = "<$1> $2"; own_notice = "[notice($1)] $2"; own_me = " * $1 $2"; own_ctcp = "[ctcp($1)] $2 $3"; @@ -52,12 +53,14 @@ pubmsg = "<$1> $2"; pubmsg_channel = "<$1:$2> $3"; msg_private = "[$1($2)] $3"; + msg_private_query = "<$1> $2"; dcc_msg = "[$1(dcc)] $2"; notice_server = "!$1 $2"; notice_public = "-$1:$2- $3"; notice_private = "-$1($2)- $3"; action_dcc = " (*dcc*) $1 $2"; action_private = " (*) $1 $2"; + action_private_query = " (*) $1 $2"; action_public = " * $1 $2"; action_public_channel = " * $1:$2 $3"; ctcp_reply = "CTCP %_$1%_ reply from %_$2%_: $3"; diff --git a/configure.in b/configure.in index f3a869b6..a2700836 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,7 @@ AC_INIT(src) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(irssi, 0.7.18) +AM_INIT_AUTOMAKE(irssi, 0.7.19) AM_MAINTAINER_MODE @@ -335,7 +335,7 @@ dnl ** dnl ** internationalization support dnl ** -ALL_LINGUAS="fi" +ALL_LINGUAS="" AM_GNU_GETTEXT AC_OUTPUT( diff --git a/COMMANDS b/docs/COMMANDS index 1ebc1b9f..1ebc1b9f 100644 --- a/COMMANDS +++ b/docs/COMMANDS diff --git a/docs/Makefile.am b/docs/Makefile.am index 7aac3057..472e7440 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -1,5 +1,7 @@ EXTRA_DIST = \ FAQ \ + COMMANDS \ + README \ FORMATS SUBDIRS = help diff --git a/po/POTFILES.in b/po/POTFILES.in index d74434e3..2a9ee18a 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -64,7 +64,6 @@ src/gui-gnome/setup-txt.c src/gui-gnome/setup.c src/gui-gnome/snapshot.c src/gui-gnome/wordclick.c -src/gui-text/channels-newdata.c src/gui-text/gui-channels.c src/gui-text/gui-entry.c src/gui-text/gui-mainwindows.c diff --git a/po/fi.po b/po/fi.po deleted file mode 100644 index 06f944de..00000000 --- a/po/fi.po +++ /dev/null @@ -1,1963 +0,0 @@ -# fi.po -- Finnish messages for irssi -# Copyright (C) 1999 Free Software Foundation, Inc. -# Timo Sirainen <cras@irccrew.org>, 1999. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: irssi 0.7.19\n" -"POT-Creation-Date: 1999-10-30 16:00+0300\n" -"PO-Revision-Date: 1999-10-30 16:00+0300\n" -"Last-Translator: Timo Sirainen <cras@irccrew.org>\n" -"Language-Team: Finnish <fi@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/gui-gnome/dialog-about.c:33 -msgid "IRC client, " -msgstr "" - -#: src/gui-gnome/dialog-channels.c:119 src/gui-gnome/setup-bg.c:123 -msgid "Select new default font" -msgstr "" - -#. autojoin toggle -#: src/gui-gnome/dialog-channels.c:161 -msgid "Autojoin channel" -msgstr "" - -#. channel name -#: src/gui-gnome/dialog-channels.c:167 src/gui-gnome/dialog-channels.c:429 -#: src/gui-gnome/dialog-join.c:157 src/gui-gnome/gui-event-list.c:173 -#: src/gui-gnome/gui-event-who.c:205 src/gui-gnome/gui-menu-commands.c:227 -msgid "Channel" -msgstr "Kanava" - -#. irc network -#: src/gui-gnome/dialog-channels.c:178 src/gui-gnome/dialog-connect.c:119 -#: src/gui-gnome/dialog-disconnect.c:115 src/gui-gnome/dialog-join.c:125 -msgid "IRC Network" -msgstr "IRC verkko" - -#. bot masks, bot command -#: src/gui-gnome/dialog-channels.c:194 src/gui-gnome/setup-servers.c:267 -msgid "Password" -msgstr "Salasana" - -#: src/gui-gnome/dialog-channels.c:196 -msgid "Bot masks" -msgstr "" - -#: src/gui-gnome/dialog-channels.c:198 -msgid "Autosend cmd to bot" -msgstr "" - -#: src/gui-gnome/dialog-channels.c:200 src/gui-gnome/setup-bg.c:233 -#: src/gui-gnome/setup-bg.c:237 -msgid "Background pixmap" -msgstr "Taustakuva" - -#: src/gui-gnome/dialog-channels.c:203 src/gui-gnome/setup-bg.c:260 -msgid "Font" -msgstr "Fontti" - -#: src/gui-gnome/dialog-channels.c:214 src/gui-gnome/setup-bg.c:268 -msgid "Change..." -msgstr "Vaihda..." - -#: src/gui-gnome/dialog-channels.c:247 src/gui-gnome/dialog-channels.c:248 -#: src/gui-gnome/dialog-log.c:212 src/gui-gnome/dialog-log.c:219 -#: src/gui-gnome/dialog-notifylist.c:35 src/gui-gnome/dialog-notifylist.c:175 -#: src/gui-gnome/dialog-plugins.c:33 src/gui-gnome/dialog-plugins.c:34 -msgid "Yes" -msgstr "Kyllä" - -#: src/gui-gnome/dialog-channels.c:247 src/gui-gnome/dialog-channels.c:248 -#: src/gui-gnome/dialog-log.c:212 src/gui-gnome/dialog-log.c:715 -#: src/gui-gnome/dialog-notifylist.c:35 src/gui-gnome/dialog-notifylist.c:204 -#: src/gui-gnome/dialog-plugins.c:33 src/gui-gnome/dialog-plugins.c:34 -msgid "No" -msgstr "Ei" - -#: src/gui-gnome/dialog-channels.c:427 src/gui-gnome/dialog-notifylist.c:231 -msgid "Joined" -msgstr "Liittynyt" - -#: src/gui-gnome/dialog-channels.c:427 -msgid "Autojoin" -msgstr "Liity autom." - -#: src/gui-gnome/dialog-channels.c:427 src/gui-gnome/setup-ircnets.c:137 -#: src/gui-gnome/setup-ircnets.c:188 -msgid "IRC network" -msgstr "IRC verkko" - -#: src/gui-gnome/dialog-channels.c:439 src/gui-gnome/dialog-join.c:128 -#: src/gui-gnome/gui-event-invite.c:54 -msgid "Join" -msgstr "Liity" - -#: src/gui-gnome/dialog-channels.c:439 -msgid "Part" -msgstr "Poistu" - -#: src/gui-gnome/dialog-channels.c:479 src/gui-gnome/setup-themes.c:279 -msgid "Add..." -msgstr "Lisää..." - -#: src/gui-gnome/dialog-channels.c:484 -msgid "Edit..." -msgstr "Muuta..." - -#: src/gui-gnome/dialog-channels.c:489 src/gui-gnome/dialog-log.c:587 -#: src/gui-gnome/setup-lists.c:316 src/gui-gnome/setup-themes.c:284 -msgid "Delete" -msgstr "Poista" - -#: src/gui-gnome/dialog-channels.c:497 -msgid "Quick join..." -msgstr "Liity kanavalle..." - -#: src/gui-gnome/dialog-connect.c:119 src/gui-gnome/dialog-disconnect.c:115 -#: src/gui-gnome/dialog-join.c:125 src/gui-gnome/setup-ircproxy.c:61 -msgid "Address" -msgstr "Osoite" - -#: src/gui-gnome/dialog-connect.c:119 src/gui-gnome/dialog-disconnect.c:115 -#: src/gui-gnome/dialog-join.c:125 src/gui-gnome/setup-ircproxy.c:66 -#: src/gui-gnome/setup-servers.c:262 -msgid "Port" -msgstr "Portti" - -#: src/gui-gnome/dialog-connect.c:119 -msgid "Location" -msgstr "Sijainti" - -#: src/gui-gnome/dialog-connect.c:129 src/gui-gnome/gui-menu-commands.c:253 -msgid "Connect" -msgstr "Yhdistä" - -#: src/gui-gnome/dialog-dcc.c:158 src/gui-gnome/dialog-notifylist.c:231 -#: src/gui-gnome/gui-event-who.c:205 src/gui-gnome/setup-servers.c:535 -msgid "Nick" -msgstr "Nikki" - -#: src/gui-gnome/dialog-dcc.c:158 -msgid "Type" -msgstr "Tyyppi" - -#: src/gui-gnome/dialog-dcc.c:158 -msgid "File Size" -msgstr "Tiedoston koko" - -#: src/gui-gnome/dialog-dcc.c:158 -msgid "Transferred" -msgstr "Siirretty" - -#: src/gui-gnome/dialog-dcc.c:158 -#, c-format -msgid "% done" -msgstr "% valmis" - -#: src/gui-gnome/dialog-dcc.c:158 -msgid "kB/sec" -msgstr "kB/sek" - -#: src/gui-gnome/dialog-dcc.c:158 -msgid "File name" -msgstr "Tiedoston nimi" - -#: src/gui-gnome/dialog-dcc.c:168 -msgid "Create dialog" -msgstr "Avaa ikkuna" - -#: src/gui-gnome/dialog-disconnect.c:115 src/gui-gnome/dialog-join.c:125 -msgid "Server Tag" -msgstr "Palvelimen tunniste" - -#: src/gui-gnome/dialog-disconnect.c:125 src/gui-gnome/gui-menu-commands.c:255 -msgid "Disconnect" -msgstr "Katkaise" - -#: src/gui-gnome/dialog-irssibot.c:73 -msgid "" -"Irssi can inform you when new versions are\n" -"available for download, you just need to be\n" -"connected to some irc network where irssibot\n" -"is, like ircnet, efnet or gimpnet." -msgstr "" - -#: src/gui-gnome/dialog-irssibot.c:80 -msgid "Notify about new irssi releases" -msgstr "Ilmoita uusista irssin versioista" - -#: src/gui-gnome/dialog-irssibot.c:83 -msgid "Notify also about new development releases" -msgstr "Ilmoita uusista kehitysversioista" - -#: src/gui-gnome/dialog-irssibot.c:146 -#, c-format -msgid "" -"Both stable and unstable Irssi versions\n" -"have been released.\n" -"\n" -"Stable version %s\n" -"Unstable version %s" -msgstr "" -"Sekä vakaa- että kehitysversio Irssistä\n" -"on julkaistu.\n" -"\n" -"Vakaa versio %s\n" -"Kehitysversio %s" - -#: src/gui-gnome/dialog-irssibot.c:148 -#, c-format -msgid "" -"New stable irssi version %s\n" -"has been released." -msgstr "" -"Uusi vakaa versio %s irssistä\n" -"on julkaistu." - -#: src/gui-gnome/dialog-irssibot.c:150 -#, c-format -msgid "" -"New unstable irssi version %s\n" -"has been released." -msgstr "" -"Uusi kehitysversio %s irssistä\n" -"on julkaistu." - -#: src/gui-gnome/dialog-irssibot.c:166 -msgid "Get stable Irssi via DCC" -msgstr "Ota vakaa versio Irssistä DCC:llä" - -#: src/gui-gnome/dialog-irssibot.c:175 -msgid "Get unstable Irssi via DCC" -msgstr "Ota kehitysversio Irssistä DCC:llä" - -#: src/gui-gnome/dialog-irssibot.c:182 -msgid "Open Irssi's website" -msgstr "Avaa Irssi'n weppisivu" - -#: src/gui-gnome/dialog-join.c:56 -msgid "No server selected" -msgstr "Palvelinta ei ole valittu" - -#: src/gui-gnome/dialog-join.c:63 -msgid "No channel specified" -msgstr "Kanavaa ei ole valittu" - -#: src/gui-gnome/dialog-links.c:59 -msgid "Links" -msgstr "Linkit" - -#: src/gui-gnome/dialog-links.c:233 -msgid "Get the /LINKS for hubs" -msgstr "Kysy hubien linkit" - -#: src/gui-gnome/dialog-links.c:234 -msgid "Get the I/K/B-lines" -msgstr "Kysy I/K/B-linet" - -#: src/gui-gnome/dialog-links.c:287 src/gui-gnome/gui-menu-commands.c:204 -#: src/gui-gnome/setup-servers.c:257 src/gui-gnome/setup-servers.c:439 -msgid "Server" -msgstr "Palvelin" - -#: src/gui-gnome/dialog-links.c:287 src/gui-gnome/dialog-plugins.c:207 -msgid "Description" -msgstr "Selitys" - -#: src/gui-gnome/dialog-log.c:25 -msgid "Crap" -msgstr "Roskaa" - -#: src/gui-gnome/dialog-log.c:26 -msgid "Channel events" -msgstr "Kanavan tapahtumat" - -#: src/gui-gnome/dialog-log.c:27 -msgid "Public messages" -msgstr "Julkiset viestit" - -#: src/gui-gnome/dialog-log.c:28 -msgid "Private messages" -msgstr "Yksityiset viestit" - -#: src/gui-gnome/dialog-log.c:29 -msgid "Notices" -msgstr "Ilmoitukset" - -#: src/gui-gnome/dialog-log.c:30 -msgid "Server notices" -msgstr "Palvelimin ilmoitukset" - -#: src/gui-gnome/dialog-log.c:31 -msgid "Wallops" -msgstr "Wallopit" - -#: src/gui-gnome/dialog-log.c:32 -msgid "DCC messages" -msgstr "DCC viestit" - -#: src/gui-gnome/dialog-log.c:33 -msgid "Actions (/me)" -msgstr "Tapahtumat (/me)" - -#: src/gui-gnome/dialog-log.c:34 -msgid "CTCP messages" -msgstr "CTCP viestit" - -#: src/gui-gnome/dialog-log.c:35 -msgid "Hilighted msgs" -msgstr "Korostetut viestit" - -#: src/gui-gnome/dialog-log.c:36 -msgid "No hilighted msgs" -msgstr "Ei korostettuja viestejä" - -#: src/gui-gnome/dialog-log.c:37 -msgid "Client notices" -msgstr "Irssin ilmoitukset" - -#: src/gui-gnome/dialog-log.c:38 -msgid "Client errors" -msgstr "Irssin virheet" - -#: src/gui-gnome/dialog-log.c:300 -msgid "<new log file>" -msgstr "<uusi lokitiedosto>" - -#: src/gui-gnome/dialog-log.c:314 -msgid "<new item>" -msgstr "<uusi>" - -#: src/gui-gnome/dialog-log.c:531 -msgid "Open" -msgstr "Avaa" - -#: src/gui-gnome/dialog-log.c:531 src/gui-gnome/dialog-plugins.c:207 -#: src/gui-gnome/dialog-window.c:168 -msgid "Name" -msgstr "Nimi" - -#: src/gui-gnome/dialog-log.c:531 -msgid "Level" -msgstr "Taso" - -#: src/gui-gnome/dialog-log.c:576 -msgid "New log file" -msgstr "Uusi lokitiedosto" - -#: src/gui-gnome/dialog-log.c:581 -msgid "New log entry" -msgstr "Uusi lokitapahtuma" - -#: src/gui-gnome/dialog-log.c:597 -msgid "Start logging" -msgstr "Avaa loki" - -#: src/gui-gnome/dialog-log.c:603 -msgid "Stop logging" -msgstr "Sulje loki" - -#: src/gui-gnome/dialog-log.c:627 -msgid "Clear all" -msgstr "Poista kaikki" - -#: src/gui-gnome/dialog-log.c:631 -msgid "Select all" -msgstr "Valitse kaikki" - -#. auto-open log button -#: src/gui-gnome/dialog-log.c:637 -msgid "Open log at startup" -msgstr "Avaa loki käynnistettäessä" - -#. entry widgets for log file name and subitems name -#: src/gui-gnome/dialog-log.c:643 -msgid "Log file name:" -msgstr "Lokitiedosto:" - -#: src/gui-gnome/dialog-log.c:646 -msgid "Channel/nick:" -msgstr "Kanava/nikki:" - -#: src/gui-gnome/dialog-modes.c:474 -msgid "Channel modes" -msgstr "Kanavan tilat" - -#. topic -#: src/gui-gnome/dialog-modes.c:490 -msgid "Topic: " -msgstr "Aihe: " - -#. modes -#: src/gui-gnome/dialog-modes.c:498 -msgid "Modes" -msgstr "Tilat" - -#: src/gui-gnome/dialog-modes.c:505 -msgid "Invite" -msgstr "Tarvitsee kutsun" - -#: src/gui-gnome/dialog-modes.c:506 src/gui-gnome/gui-windows.c:35 -msgid "Secret" -msgstr "Salainen" - -#: src/gui-gnome/dialog-modes.c:507 src/gui-gnome/gui-windows.c:36 -msgid "Private" -msgstr "Yksityinen" - -#: src/gui-gnome/dialog-modes.c:508 src/gui-gnome/gui-windows.c:37 -msgid "Moderated" -msgstr "Moderoitu" - -#: src/gui-gnome/dialog-modes.c:509 -msgid "No external msgs" -msgstr "Ei ulkoisia viestejä" - -#: src/gui-gnome/dialog-modes.c:510 -msgid "Only ops change topic" -msgstr "Vain opit vaihtavat aihetta" - -#: src/gui-gnome/dialog-modes.c:512 -msgid "User limit: " -msgstr "Suurin ihmismäärä: " - -#: src/gui-gnome/dialog-modes.c:524 -msgid "Channel key: " -msgstr "Salasana: " - -#: src/gui-gnome/dialog-modes.c:533 -msgid "Banlist" -msgstr "Bannilista" - -#: src/gui-gnome/dialog-modes.c:545 -msgid "Unban" -msgstr "Poista banni" - -#: src/gui-gnome/dialog-modes.c:563 -msgid "Banlist exceptions" -msgstr "Poikkeusbannit" - -#: src/gui-gnome/dialog-modes.c:575 src/gui-gnome/dialog-modes.c:595 -#: src/gui-gnome/setup-ircnets.c:274 src/gui-gnome/setup-servers.c:498 -#: src/gui-gnome/setup-session.c:139 -msgid "Remove" -msgstr "Poista" - -#: src/gui-gnome/dialog-modes.c:583 -msgid "Invite list" -msgstr "Kutsulista" - -#: src/gui-gnome/dialog-notifylist.c:111 -msgid "Message: " -msgstr "Viesti: " - -#: src/gui-gnome/dialog-notifylist.c:185 -#, c-format -msgid "%s (%s@%s) (%s) has joined IRC" -msgstr "%s (%s@%s) (%s) liittyi IRCiin" - -#: src/gui-gnome/dialog-notifylist.c:231 -msgid "IRC net" -msgstr "IRC verkko" - -#: src/gui-gnome/dialog-notifylist.c:231 src/gui-gnome/gui-event-who.c:205 -msgid "Host" -msgstr "" - -#: src/gui-gnome/dialog-notifylist.c:231 -msgid "Real Name" -msgstr "Oikea nimi" - -#: src/gui-gnome/dialog-notifylist.c:243 src/gui-gnome/gui-menu-commands.c:239 -#: src/gui-gnome/gui-nicklist-popup.c:332 -msgid "Query" -msgstr "Avaa keskustelu" - -#: src/gui-gnome/dialog-notifylist.c:243 -msgid "Send msg" -msgstr "Lähetä viesti" - -#: src/gui-gnome/dialog-plugins.c:68 -#, c-format -msgid "Can't load plugin: %s" -msgstr "Ei voi ladata pluginia: %s" - -#: src/gui-gnome/dialog-plugins.c:85 -#, c-format -msgid "Plugin not loaded: %s" -msgstr "Plugin ei löytynyt: %s" - -#: src/gui-gnome/dialog-plugins.c:160 -#, c-format -msgid "Plugin %s properties:" -msgstr "Pluginin %s asetukset:" - -#: src/gui-gnome/dialog-plugins.c:164 -msgid "Automatically start plugin at startup" -msgstr "Automaattisesti käynnistä plugin alussa" - -#: src/gui-gnome/dialog-plugins.c:171 -msgid "Arguments for plugin:" -msgstr "Pluginin parametrit" - -#: src/gui-gnome/dialog-plugins.c:207 -msgid "Running" -msgstr "Käynnissä" - -#: src/gui-gnome/dialog-plugins.c:207 -msgid "Autorun" -msgstr "" - -#: src/gui-gnome/dialog-plugins.c:219 -msgid "Load" -msgstr "Käynnistä" - -#: src/gui-gnome/dialog-plugins.c:219 -msgid "Unload" -msgstr "Sammuta" - -#: src/gui-gnome/dialog-plugins.c:219 -msgid "Settings..." -msgstr "Asetukset..." - -#: src/gui-gnome/dialog-plugins.c:309 -msgid "Plugins/" -msgstr "Pluginit/" - -#. First plugin, create plugins menu. -#: src/gui-gnome/dialog-plugins.c:313 src/gui-gnome/dialog-plugins.c:338 -msgid "Plugins" -msgstr "Pluginit" - -#: src/gui-gnome/dialog-plugins.c:321 -#, c-format -msgid "Plugins/%s/" -msgstr "Pluginit/%s/" - -#: src/gui-gnome/dialog-plugins.c:339 -#, c-format -msgid "Plugins/%s" -msgstr "Pluginit/%s" - -#. this server is disconnected.. -#: src/gui-gnome/dialog-rawlog.c:80 -msgid "" -"Can't save the rawlog,\n" -"the server has been disconnected" -msgstr "" -"Ei voi tallentaa raakaa logia,\n" -"palvelinyhteys on suljettu" - -#: src/gui-gnome/dialog-rawlog.c:102 -msgid "Save rawlog to: " -msgstr "Tallenna raaka logi tiedostoon: " - -#: src/gui-gnome/dialog-rawlog.c:105 -msgid "Save" -msgstr "Tallenna" - -#: src/gui-gnome/dialog-rawlog.c:130 src/gui-gnome/gui-menu-commands.c:383 -#: src/gui-gnome/gui-menu-commands.c:402 src/gui-gnome/gui-menu-commands.c:484 -#: src/gui-gnome/gui-menu-commands.c:492 -msgid "Not connected to server" -msgstr "Yhteyttä ei ole palvelimelle" - -#. Save rawlog button -#: src/gui-gnome/dialog-rawlog.c:167 -msgid "Save to file..." -msgstr "Tallenna tiedostoon..." - -#. "Channels" text -#: src/gui-gnome/dialog-status.c:86 src/gui-gnome/gui-event-whois.c:40 -#: src/gui-gnome/gui-menu-commands.c:257 src/gui-gnome/setup-lists.c:393 -#: src/gui-gnome/setup-lookandfeel.c:95 -msgid "Channels" -msgstr "Kanavat" - -#: src/gui-gnome/dialog-status.c:90 -msgid "Queries" -msgstr "Keskustelut" - -#: src/gui-gnome/dialog-status.c:94 src/gui-gnome/dialog-status.c:127 -msgid "DCC chats" -msgstr "DCC keskustelut" - -#: src/gui-gnome/dialog-status.c:262 -msgid "Display servers" -msgstr "Näytä palvelimet" - -#: src/gui-gnome/dialog-status.c:267 -msgid "Display channels" -msgstr "Näytä kanavat" - -#: src/gui-gnome/dialog-status.c:272 -msgid "Display queries" -msgstr "Näytä keskustelut" - -#: src/gui-gnome/dialog-status.c:277 -msgid "Display DCC chats" -msgstr "Näytä DCC keskustelut" - -#: src/gui-gnome/dialog-textwidget.c:144 -msgid "Find doesn't work with IText windows yet" -msgstr "Etsintä ei toimi vielä IText ikkunoissa" - -#: src/gui-gnome/dialog-textwidget.c:149 -msgid "Find previous" -msgstr "Etsi edellinen" - -#: src/gui-gnome/dialog-textwidget.c:149 -msgid "Find next" -msgstr "Etsi seuraava" - -#: src/gui-gnome/dialog-textwidget.c:160 -msgid "Find text: " -msgstr "Etsi tekstiä: " - -#: src/gui-gnome/dialog-textwidget.c:186 -#, c-format -msgid "" -"Couldn't create file:\n" -"%s" -msgstr "" - -#: src/gui-gnome/dialog-textwidget.c:237 -msgid "Save doesn't work with IText windows yet" -msgstr "Tallennus ei toimi IText ikkunoilla" - -#: src/gui-gnome/dialog-textwidget.c:243 -msgid "Window doesn't have any text" -msgstr "Ikkunassa ei ole tekstiä" - -#: src/gui-gnome/dialog-textwidget.c:256 -msgid "Save only selected text" -msgstr "Tallenna vain valittu teksti" - -#: src/gui-gnome/dialog-textwidget.c:267 -msgid "Save window buffer to: " -msgstr "Tallenna ikkunan tekstit tiedostoon: " - -#: src/gui-gnome/dialog-textwidget.c:270 -msgid "Save window buffer" -msgstr "Tallenna ikkunan tekstit" - -#: src/gui-gnome/dialog-window.c:107 -msgid "Save size" -msgstr "Tallenna koko" - -#: src/gui-gnome/dialog-window.c:115 -msgid "Width" -msgstr "Leveys" - -#: src/gui-gnome/dialog-window.c:121 -msgid "Height" -msgstr "Korkeus" - -#: src/gui-gnome/dialog-window.c:136 -msgid "Save position" -msgstr "Tallenna paikka" - -#: src/gui-gnome/dialog-window.c:144 -msgid "X" -msgstr "X" - -#: src/gui-gnome/dialog-window.c:150 -msgid "Y" -msgstr "Y" - -#: src/gui-gnome/dialog-window.c:164 -msgid "Default window" -msgstr "Vakioikkuna" - -#: src/gui-gnome/gtk-specific.c:58 src/gui-gnome/setup-colors.c:188 -msgid "Ok" -msgstr "Ok" - -#: src/gui-gnome/gtk-specific.c:63 -msgid "Apply" -msgstr "Käytä" - -#: src/gui-gnome/gtk-specific.c:68 src/gui-gnome/gui-mainwindows.c:539 -#: src/gui-gnome/setup-colors.c:195 -msgid "Cancel" -msgstr "Peruuta" - -#: src/gui-gnome/gtk-specific.c:486 -msgid "Browse" -msgstr "Selaa" - -#: src/gui-gnome/gui-dcc.c:132 -msgid "transfer complete - all" -msgstr "siirto valmis - kaikki" - -#: src/gui-gnome/gui-dcc.c:137 -msgid "transfer aborted -" -msgstr "siirto keskeytyi -" - -#: src/gui-gnome/gui-dcc.c:142 -#, c-format -msgid " %lu bytes %s - avg %0.2fkB/sec" -msgstr " %lu tavua %s - avg %0.2fkB/sek" - -#: src/gui-gnome/gui-dcc.c:143 src/gui-gnome/gui-dcc.c:171 -msgid "sent" -msgstr "lähetetty" - -#: src/gui-gnome/gui-dcc.c:143 src/gui-gnome/gui-dcc.c:171 -msgid "received" -msgstr "vastaanotettu" - -#: src/gui-gnome/gui-dcc.c:170 -#, c-format -msgid "%lu of %lu bytes %s - avg %0.2fkB/sec" -msgstr "%lu / %lu tavua %s - kesk. %0.2fkB/sek" - -#: src/gui-gnome/gui-dcc.c:210 -msgid "Enter nick to chat with: " -msgstr "Anna nikki kenen kanssa haluat jutella: " - -#. file not found -#: src/gui-gnome/gui-dcc.c:229 -#, c-format -msgid "" -"Couldn't find file:\n" -"%s" -msgstr "" - -#: src/gui-gnome/gui-dcc.c:258 -msgid "Nick: " -msgstr "Nikki: " - -#: src/gui-gnome/gui-dcc.c:263 -msgid "File to send: " -msgstr "Lähetä tiedosto: " - -#: src/gui-gnome/gui-dcc.c:266 -msgid "Select file to send" -msgstr "Valitse tiedosto jonka haluat lähettää" - -#: src/gui-gnome/gui-dcc.c:382 -msgid "Rename file to" -msgstr "Muuta tiedoston nimi" - -#: src/gui-gnome/gui-dcc.c:429 src/gui-gnome/gui-dcc.c:435 -msgid "Overwrite" -msgstr "Kirjoita päälle" - -#: src/gui-gnome/gui-dcc.c:429 src/gui-gnome/gui-dcc.c:435 -msgid "Rename" -msgstr "Vaihda nimeä" - -#: src/gui-gnome/gui-dcc.c:429 -msgid "Resume" -msgstr "Jatka" - -#: src/gui-gnome/gui-dcc.c:459 -#, c-format -msgid "Accept DCC %s request from %s (%s)?" -msgstr "Hyväksytkö DCC %s pyynnon nikiltä %s (%s)?" - -#: src/gui-gnome/gui-dcc.c:466 -#, c-format -msgid "" -"File name: %s\n" -"File size: %ld\n" -msgstr "" -"Tiedoston nimi: %s\n" -"Tiedoston koko: %s\n" - -#: src/gui-gnome/gui-event-invite.c:67 -#, c-format -msgid "%s invites you to %s" -msgstr "%s kutsuu sinut kanavalle %s" - -#: src/gui-gnome/gui-event-list.c:45 -#, c-format -msgid "Not connected to server '%s' anymore" -msgstr "Et ole yhdistynyt palvelimelle '%s' enää" - -#: src/gui-gnome/gui-event-list.c:173 -msgid "Users" -msgstr "Nikkejä" - -#: src/gui-gnome/gui-event-list.c:173 -msgid "Topic" -msgstr "Aihe" - -#: src/gui-gnome/gui-event-list.c:184 -msgid "No channels found for /LIST" -msgstr "Ei löytnyt kanavia /LISTiin" - -#: src/gui-gnome/gui-event-list.c:240 src/gui-gnome/gui-event-who.c:300 -msgid "Search" -msgstr "Etsi" - -#. Display total number of channels -#: src/gui-gnome/gui-event-list.c:246 -#, c-format -msgid "Total of %d channels" -msgstr "Yhteensä %d kanavaa" - -#: src/gui-gnome/gui-event-who.c:205 src/gui-gnome/gui-menu-commands.c:259 -msgid "Status" -msgstr "Tila" - -#: src/gui-gnome/gui-event-who.c:205 src/gui-gnome/setup-servers.c:547 -msgid "Real name" -msgstr "Oikea nimi" - -#: src/gui-gnome/gui-event-who.c:241 -msgid "/WHO request didn't find anything" -msgstr "/WHO pyynto ei löytänyt mitään" - -#. Display total number of who request -#: src/gui-gnome/gui-event-who.c:306 -#, c-format -msgid "Found total of %d matches" -msgstr "Löytyi yhteensä %d vastausta" - -#: src/gui-gnome/gui-event-whois.c:121 -msgid "Refresh" -msgstr "Virkistä" - -#. Display realname -#: src/gui-gnome/gui-event-whois.c:143 -#, c-format -msgid "Name: %s (%s)" -msgstr "Nimi: %s (%s)" - -#. Display host -#: src/gui-gnome/gui-event-whois.c:148 -#, c-format -msgid "Host: %s@%s" -msgstr "" - -#: src/gui-gnome/gui-event-whois.c:180 -#, c-format -msgid "Idling: %d hours %02d:%02d" -msgstr "Ollut puhumatta: %d tuntia %02d:%02d" - -#: src/gui-gnome/gui-event-whois.c:191 -#, c-format -msgid "" -"\n" -"Signon: %s" -msgstr "" -"\n" -"Yhdistynyt: %s" - -#: src/gui-gnome/gui-event-whois.c:212 -#, c-format -msgid "Server: %s (%s)" -msgstr "Palvelin: %s (%s)" - -#: src/gui-gnome/gui-event-whois.c:230 -msgid "[IRC operator]" -msgstr "[IRC operaattori]" - -#: src/gui-gnome/gui-event-whois.c:282 -#, c-format -msgid "Away: %s" -msgstr "Poissa: %s" - -#: src/gui-gnome/gui-mainwindows.c:743 -msgid "Nick completion" -msgstr "Nikin täydennys" - -#: src/gui-gnome/gui-mainwindows.c:744 -msgid "Previous window" -msgstr "Edellinen ikkuna" - -#: src/gui-gnome/gui-mainwindows.c:745 -msgid "Next window" -msgstr "Seuraava ikkuna" - -#: src/gui-gnome/gui-mainwindows.c:747 -msgid "Bold" -msgstr "Paksunnus" - -#: src/gui-gnome/gui-mainwindows.c:748 -msgid "Underline" -msgstr "Alleviivaus" - -#: src/gui-gnome/gui-mainwindows.c:749 src/gui-gnome/setup-colors.c:329 -msgid "Color" -msgstr "Väri" - -#: src/gui-gnome/gui-mainwindows.c:750 -msgid "Reverse" -msgstr "" - -#: src/gui-gnome/gui-mainwindows.c:751 -msgid "Bell" -msgstr "Ääni" - -#: src/gui-gnome/gui-mainwindows.c:757 -msgid "Change window" -msgstr "Vaihda ikkunaa" - -#: src/gui-gnome/gui-menu-commands.c:78 src/gui-gnome/gui-menu-commands.c:264 -#: src/gui-gnome/setup-lists.c:311 -msgid "New" -msgstr "Uusi" - -#: src/gui-gnome/gui-menu-commands.c:80 -msgid "Save Text As..." -msgstr "Tallenna teksti..." - -#: src/gui-gnome/gui-menu-commands.c:83 src/gui-gnome/gui-menu-commands.c:175 -#: src/gui-gnome/gui-menu-commands.c:266 -msgid "Close" -msgstr "Sulje" - -#: src/gui-gnome/gui-menu-commands.c:85 -msgid "Quit" -msgstr "Poistu" - -#: src/gui-gnome/gui-menu-commands.c:91 -msgid "Connect..." -msgstr "Yhdistä..." - -#: src/gui-gnome/gui-menu-commands.c:93 -msgid "Disconnect..." -msgstr "Katkaise..." - -#: src/gui-gnome/gui-menu-commands.c:95 -msgid "Channels..." -msgstr "Kanavat..." - -#: src/gui-gnome/gui-menu-commands.c:98 -msgid "Status Window..." -msgstr "Tilaikkuna..." - -#: src/gui-gnome/gui-menu-commands.c:100 -msgid "Notify list..." -msgstr "Nikkien tiedotuslista..." - -#: src/gui-gnome/gui-menu-commands.c:102 -msgid "Raw Log..." -msgstr "Raaka loki..." - -#: src/gui-gnome/gui-menu-commands.c:104 -msgid "Links..." -msgstr "Palvelinlinkit..." - -#: src/gui-gnome/gui-menu-commands.c:108 -msgid "_Away..." -msgstr "_Poissa.." - -#: src/gui-gnome/gui-menu-commands.c:111 -msgid "Invisible" -msgstr "Näkymätön" - -#: src/gui-gnome/gui-menu-commands.c:113 -msgid "Receive Wallops" -msgstr "Vastaanota wallopeja" - -#: src/gui-gnome/gui-menu-commands.c:115 -msgid "Receive Server Notices" -msgstr "Vastaanota palvelimen viestejä" - -#: src/gui-gnome/gui-menu-commands.c:121 -msgid "Cut" -msgstr "Poista" - -#: src/gui-gnome/gui-menu-commands.c:123 -msgid "Copy" -msgstr "Kopioi" - -#: src/gui-gnome/gui-menu-commands.c:125 -msgid "Paste" -msgstr "Liitä" - -#: src/gui-gnome/gui-menu-commands.c:128 -msgid "Find..." -msgstr "Etsi..." - -#: src/gui-gnome/gui-menu-commands.c:134 -msgid "Connections..." -msgstr "Yhteydet..." - -#: src/gui-gnome/gui-menu-commands.c:137 -msgid "Send File..." -msgstr "Lähetä tiedosto..." - -#: src/gui-gnome/gui-menu-commands.c:139 -msgid "Chat..." -msgstr "Avaa keskustelu.." - -#: src/gui-gnome/gui-menu-commands.c:145 -msgid "Server List..." -msgstr "Palvelinlista..." - -#: src/gui-gnome/gui-menu-commands.c:147 -msgid "Themes..." -msgstr "Teemat..." - -#: src/gui-gnome/gui-menu-commands.c:149 -msgid "Automation..." -msgstr "Automaatio..." - -#: src/gui-gnome/gui-menu-commands.c:151 -msgid "Logging..." -msgstr "Loki..." - -#: src/gui-gnome/gui-menu-commands.c:153 -msgid "Plugins..." -msgstr "Pluginit..." - -#: src/gui-gnome/gui-menu-commands.c:156 -msgid "Preferences..." -msgstr "Asetukset..." - -#: src/gui-gnome/gui-menu-commands.c:164 -msgid "New Window" -msgstr "Uusi ikkuna" - -#: src/gui-gnome/gui-menu-commands.c:166 -msgid "New Tab" -msgstr "Uusi kanavaikkuna" - -#: src/gui-gnome/gui-menu-commands.c:170 -msgid "Automatically Raise" -msgstr "Nosta ikkuna automaattisesti" - -#: src/gui-gnome/gui-menu-commands.c:172 -msgid "Save Size and Position..." -msgstr "Tallenna koko ja paikka..." - -#: src/gui-gnome/gui-menu-commands.c:185 -msgid "Irssi Website" -msgstr "Irssin kotisivu" - -#: src/gui-gnome/gui-menu-commands.c:191 -msgid "About..." -msgstr "Tietoja..." - -#: src/gui-gnome/gui-menu-commands.c:198 -msgid "File" -msgstr "Tiedosto" - -#: src/gui-gnome/gui-menu-commands.c:200 src/gui-gnome/setup-ircnets.c:269 -#: src/gui-gnome/setup-servers.c:494 -msgid "Edit" -msgstr "Muokkaa" - -#: src/gui-gnome/gui-menu-commands.c:202 src/gui-gnome/setup-dcc.c:207 -msgid "DCC" -msgstr "" - -#: src/gui-gnome/gui-menu-commands.c:206 -msgid "Settings" -msgstr "Asetukset" - -#: src/gui-gnome/gui-menu-commands.c:208 -msgid "Windows" -msgstr "Ikkunat" - -#: src/gui-gnome/gui-menu-commands.c:210 -msgid "Help" -msgstr "Ohje" - -#: src/gui-gnome/gui-menu-commands.c:217 -msgid "Leave channel" -msgstr "Poistu kanavalta" - -#: src/gui-gnome/gui-menu-commands.c:219 -msgid "Channel Modes..." -msgstr "Kanavat tilat..." - -#: src/gui-gnome/gui-menu-commands.c:221 -msgid "Show Nick List" -msgstr "Näytä nikki lista" - -#: src/gui-gnome/gui-menu-commands.c:233 -msgid "Close Query" -msgstr "Sulje keskusteluikkuna" - -#: src/gui-gnome/gui-menu-commands.c:245 -msgid "Close DCC chat" -msgstr "Sulje DCC keskustelu" - -#: src/gui-gnome/gui-menu-commands.c:247 -msgid "Mirc CTCPs" -msgstr "" - -#: src/gui-gnome/gui-menu-commands.c:262 -msgid "Find" -msgstr "Etsi" - -#: src/gui-gnome/gui-menu-commands.c:415 -msgid "Away reason:" -msgstr "Poissaolon syy:" - -#: src/gui-gnome/gui-menu-commands.c:501 src/gui-gnome/gui-menu-commands.c:507 -#: src/gui-gnome/gui-menu-commands.c:513 -msgid "(empty)" -msgstr "(tyhjä)" - -#: src/gui-gnome/gui-nicklist-popup.c:123 -#: src/gui-gnome/gui-nicklist-popup.c:139 -#: src/gui-gnome/gui-nicklist-popup.c:155 -msgid "Kick reason:" -msgstr "Potkun syy:" - -#: src/gui-gnome/gui-nicklist-popup.c:330 -msgid "Whois" -msgstr "Kuka" - -#: src/gui-gnome/gui-nicklist-popup.c:334 -msgid "Open DCC Chat" -msgstr "Avaa DCC keskustelu" - -#: src/gui-gnome/gui-nicklist-popup.c:335 -msgid "DCC Send File" -msgstr "DCC lähetä tiedosto" - -#: src/gui-gnome/gui-nicklist-popup.c:342 -#: src/gui-gnome/gui-nicklist-popup.c:350 -msgid "Op" -msgstr "Anna op" - -#: src/gui-gnome/gui-nicklist-popup.c:343 -msgid "Deop" -msgstr "Poista op" - -#: src/gui-gnome/gui-nicklist-popup.c:344 -msgid "Voice" -msgstr "Anna ääni" - -#: src/gui-gnome/gui-nicklist-popup.c:345 -msgid "Devoice" -msgstr "Poista ääni" - -#: src/gui-gnome/gui-nicklist-popup.c:346 -msgid "Kick" -msgstr "Potkaise" - -#: src/gui-gnome/gui-nicklist-popup.c:347 -msgid "Ban" -msgstr "Bannaa" - -#: src/gui-gnome/gui-nicklist-popup.c:348 -msgid "Kick+ban" -msgstr "Potku+banni" - -#: src/gui-gnome/gui-nicklist-popup.c:349 -msgid "Knockout" -msgstr "Tyrmää" - -#: src/gui-gnome/gui-nicklist-popup.c:353 -msgid "Ping" -msgstr "" - -#: src/gui-gnome/gui-nicklist-popup.c:354 -msgid "Version" -msgstr "Versio" - -#: src/gui-gnome/gui-nicklist-popup.c:355 -msgid "CTCP" -msgstr "" - -#: src/gui-gnome/gui-nicklist.c:122 -#, c-format -msgid "%d ops, %d total" -msgstr "%d oppia, %d yht" - -#: src/gui-gnome/gui-statusbar.c:164 -#, c-format -msgid "[lag %d.%02d" -msgstr "[Viive %d.%02d" - -#. big lag, still waiting .. -#: src/gui-gnome/gui-statusbar.c:172 -#, c-format -msgid "[lag %ld (??)] " -msgstr "[Viive %ld (??)] " - -#: src/gui-gnome/gui-statusbar.c:224 -#, c-format -msgid "Looking up server %s" -msgstr "Etsii palvelinta %s" - -#: src/gui-gnome/gui-statusbar.c:237 -#, c-format -msgid "Connecting to %s:%d" -msgstr "Yhdistää palvelimelle %s:%d" - -#: src/gui-gnome/gui-windows.c:38 -msgid "Joining needs an invitation" -msgstr "Liittyminen tarvitsee kutsun" - -#: src/gui-gnome/gui-windows.c:39 -msgid "No external messages" -msgstr "Ei ulkoisia viestejä" - -#: src/gui-gnome/gui-windows.c:40 -msgid "Only operators can change the topic" -msgstr "Vain operaattorit voivat vaihtaa aihetta" - -#: src/gui-gnome/gui-windows.c:41 -msgid "Maximum number of people in channel" -msgstr "Suurin mahdollinen määrä ihmisiä kanavalla" - -#: src/gui-gnome/gui-windows.c:42 -msgid "Channel password" -msgstr "Kanavan salasana" - -#: src/gui-gnome/gui-windows.c:545 src/gui-gnome/gui-windows.c:563 -msgid "Close window" -msgstr "Sulje ikkuna" - -#: src/gui-gnome/gui-windows.c:551 src/gui-gnome/gui-windows.c:569 -msgid "Move window tab to left" -msgstr "Siirrä ikkunaa vasemmalle" - -#: src/gui-gnome/gui-windows.c:557 src/gui-gnome/gui-windows.c:576 -msgid "Siirrä ikkunaa oikealle" -msgstr "" - -#: src/gui-gnome/gui-windows.c:708 -msgid "(none)" -msgstr "(tyhjä)" - -#: src/gui-gnome/irssi.c:130 -msgid "Don't run as applet" -msgstr "Älä käynnistä applettia" - -#: src/gui-gnome/panel.c:445 -msgid "About" -msgstr "Tietoja" - -#: src/gui-gnome/setup-appearance.c:72 -msgid "" -"Enable buggy GTK themes workaround, if enabled\n" -"you won't see nicks' gone-status in nicklist" -msgstr "" - -#. itext specific -#: src/gui-gnome/setup-appearance.c:77 -msgid "Drawing method" -msgstr "Piirtotyyli" - -#: src/gui-gnome/setup-appearance.c:84 -msgid "Use Irssi text widget for drawing texts" -msgstr "" - -#: src/gui-gnome/setup-appearance.c:95 -msgid "Transparent background" -msgstr "Läpinäkyvä taustakuva" - -#: src/gui-gnome/setup-appearance.c:103 -msgid "GNOME Panel" -msgstr "GNOME paneeli" - -#: src/gui-gnome/setup-appearance.c:110 -msgid "Limit the number of channels shown in panel" -msgstr "" - -#: src/gui-gnome/setup-appearance.c:125 -msgid "channels" -msgstr "kanavat" - -#: src/gui-gnome/setup-appearance.c:138 -msgid "Look #2" -msgstr "" - -#: src/gui-gnome/setup-bg.c:241 -msgid "Scrollable pixmap" -msgstr "Skrollaava kuva" - -#: src/gui-gnome/setup-bg.c:245 -msgid "Scaled pixmap" -msgstr "Levitetty kuva" - -#: src/gui-gnome/setup-bg.c:249 -msgid "Shade pixmap" -msgstr "Varjostettu kuva" - -#: src/gui-gnome/setup-bg.c:277 -msgid "Background & Fonts" -msgstr "Taustakuva & Fontit" - -#: src/gui-gnome/setup-colors.c:29 -msgid "Black" -msgstr "Musta" - -#: src/gui-gnome/setup-colors.c:30 src/gui-gnome/setup-colors.c:329 -msgid "Blue" -msgstr "Sininen" - -#: src/gui-gnome/setup-colors.c:31 src/gui-gnome/setup-colors.c:328 -#: src/gui-gnome/setup-colors.c:329 -msgid "Green" -msgstr "Vihreä" - -#: src/gui-gnome/setup-colors.c:32 -msgid "Cyan" -msgstr "Sinivihreä" - -#: src/gui-gnome/setup-colors.c:33 src/gui-gnome/setup-colors.c:329 -msgid "Red" -msgstr "Punainen" - -#: src/gui-gnome/setup-colors.c:34 -msgid "Magenta" -msgstr "Violetti" - -#: src/gui-gnome/setup-colors.c:35 -msgid "Brown" -msgstr "Ruskea" - -#: src/gui-gnome/setup-colors.c:36 -msgid "Grey" -msgstr "Harmaa" - -#: src/gui-gnome/setup-colors.c:37 -msgid "Dark Grey" -msgstr "Tummanharmaa" - -#: src/gui-gnome/setup-colors.c:38 -msgid "Light Blue" -msgstr "Vaaleansininen" - -#: src/gui-gnome/setup-colors.c:39 -msgid "Light Green" -msgstr "Vaaleanvihreä" - -#: src/gui-gnome/setup-colors.c:40 -msgid "Light Cyan" -msgstr "Vaaleansinivihreä" - -#: src/gui-gnome/setup-colors.c:41 -msgid "Light Red" -msgstr "Vaaleanpunainen" - -#: src/gui-gnome/setup-colors.c:42 -msgid "Light Magenta" -msgstr "Vaaleanvioletti" - -#: src/gui-gnome/setup-colors.c:43 -msgid "Yellow" -msgstr "Keltainen" - -#: src/gui-gnome/setup-colors.c:44 -msgid "White" -msgstr "Valkoinen" - -#: src/gui-gnome/setup-colors.c:45 -msgid "Orange" -msgstr "Oranssi" - -#: src/gui-gnome/setup-colors.c:47 -msgid "Background color" -msgstr "Taustaväri" - -#: src/gui-gnome/setup-colors.c:48 -msgid "New data in channel" -msgstr "Uutta tekstiä kanavalla" - -#: src/gui-gnome/setup-colors.c:49 -msgid "New msg in channel" -msgstr "Uusia viestejä kanavalla" - -#: src/gui-gnome/setup-colors.c:50 -msgid "New msg for you in channel" -msgstr "Uusia viestejä sinulle kanavalla" - -#: src/gui-gnome/setup-colors.c:51 -msgid "Default nick color in nicklist" -msgstr "Normaali nikin väri nikkilistassa" - -#: src/gui-gnome/setup-colors.c:52 -msgid "Gone nick in nicklist" -msgstr "Poissa olevan nikin väri nikkilistassa" - -#: src/gui-gnome/setup-colors.c:53 -msgid "Nicklist background" -msgstr "Nikkilistan taustaväri" - -#: src/gui-gnome/setup-colors.c:99 -msgid "sample" -msgstr "esimerkki" - -#: src/gui-gnome/setup-colors.c:328 -msgid "Color " -msgstr "Väri " - -#: src/gui-gnome/setup-colors.c:328 -msgid "Red " -msgstr "Punainen" - -#: src/gui-gnome/setup-colors.c:328 -msgid "Blue " -msgstr "Sininen" - -#: src/gui-gnome/setup-colors.c:328 src/gui-gnome/setup-colors.c:329 -msgid "Sample text" -msgstr "Esimerkkiteksti" - -#: src/gui-gnome/setup-colors.c:377 -msgid "" -"Select the color you want to change from upper list\n" -"and change it from button in left" -msgstr "" -"Valitse väri jota haluat vaihtaa ylhäällä olevasta\n" -"listasta ja vaihda se vasemmalla olevasta napista" - -#: src/gui-gnome/setup-colors.c:392 -msgid "Default color number" -msgstr "Normaali värin numero" - -#: src/gui-gnome/setup-colors.c:409 -msgid "Colors" -msgstr "Värit" - -#: src/gui-gnome/setup-completion.c:63 src/gui-gnome/setup-completion.c:92 -msgid "Nick Completion" -msgstr "Nikin täydennys" - -#: src/gui-gnome/setup-completion.c:70 -msgid "Disable automatic nick completion" -msgstr "Älä käytä automaattista nikin täydennystä" - -#: src/gui-gnome/setup-completion.c:74 -msgid "Completion character" -msgstr "Täydennysmerkki" - -#: src/gui-gnome/setup-completion.c:81 -msgid "Remember public messages for" -msgstr "Muista kanavien viestit" - -#: src/gui-gnome/setup-completion.c:81 src/gui-gnome/setup-completion.c:84 -#: src/gui-gnome/setup-flood.c:79 src/gui-gnome/setup-flood.c:82 -msgid "seconds" -msgstr "sekunttia" - -#: src/gui-gnome/setup-completion.c:84 -msgid "Remember public messages to you for" -msgstr "Muista kanavien viestit sinulle" - -#: src/gui-gnome/setup-completion.c:87 -msgid "Remember the last" -msgstr "Muista viimeiset" - -#: src/gui-gnome/setup-completion.c:87 -msgid "private messages" -msgstr "yksityistä viestiä" - -#. --- DCC GET --- -#: src/gui-gnome/setup-dcc.c:82 -msgid "Receive" -msgstr "Vastaanota" - -#: src/gui-gnome/setup-dcc.c:89 -msgid "Automatically rename file if it exists" -msgstr "Mutta tiedoston nimi automaattisesti jos se on jo olemassa" - -#: src/gui-gnome/setup-dcc.c:93 -msgid "Automatically get file when offered" -msgstr "Vastaanota tiedostot automaattisesti" - -#: src/gui-gnome/setup-dcc.c:107 -msgid "Maximum file size to autoget (kB)" -msgstr "Suurin tiedoston koko (kB)" - -#: src/gui-gnome/setup-dcc.c:113 -msgid "Get files only from nicks (masks)" -msgstr "Ota vain tiedostot nikeiltä" - -#: src/gui-gnome/setup-dcc.c:117 -msgid "Download path" -msgstr "Vastaanottohakemisto" - -#: src/gui-gnome/setup-dcc.c:123 -msgid "Create files with permission" -msgstr "Uusien tiedostojen lupa" - -#: src/gui-gnome/setup-dcc.c:134 -msgid "Transmit" -msgstr "Lähetys" - -#: src/gui-gnome/setup-dcc.c:141 -msgid "Fast send" -msgstr "Nopea lähetys" - -#: src/gui-gnome/setup-dcc.c:145 -msgid "Upload path" -msgstr "Lähetyshakemisto" - -#. --- DCC CHAT --- -#: src/gui-gnome/setup-dcc.c:150 -msgid "Chat" -msgstr "Keskustelu" - -#: src/gui-gnome/setup-dcc.c:157 -msgid "Use Mirc style CTCPs by default" -msgstr "Käytä Mirc tyyppisiä CTCPitä vakiona" - -#: src/gui-gnome/setup-dcc.c:161 -msgid "Autochat nick masks" -msgstr "Hyväksy automaattisesti nikeiltä" - -#. --- common --- -#: src/gui-gnome/setup-dcc.c:166 -msgid "Common" -msgstr "Yhteistä" - -#: src/gui-gnome/setup-dcc.c:173 -msgid "Automatically open transfer dialog" -msgstr "Avaa siirtoikkuna automaattisesti" - -#: src/gui-gnome/setup-dcc.c:181 -msgid "Use specified port for DCC" -msgstr "Määritä mitä porttia käytetään DCC siirtoihin" - -#: src/gui-gnome/setup-dcc.c:198 -msgid "Timeout before rejecting DCC offers" -msgstr "Odotus ennenkuin DCC pyynnöt hylätään" - -#: src/gui-gnome/setup-dcc.c:202 -msgid "Transfer block size" -msgstr "Siirtotiedoston koko" - -#. --- -#: src/gui-gnome/setup-flood.c:64 -msgid "Flood protection" -msgstr "Floodin suojaus" - -#: src/gui-gnome/setup-flood.c:73 -msgid "Check for flood every" -msgstr "Tutki floodia joka" - -#: src/gui-gnome/setup-flood.c:73 src/gui-gnome/setup-flood.c:88 -msgid "milliseconds" -msgstr ". millisekuntti" - -#: src/gui-gnome/setup-flood.c:76 -msgid "Flooding declared after" -msgstr "Floodaukseksi tulkitaan" - -#: src/gui-gnome/setup-flood.c:76 -msgid "messages" -msgstr "viestiä" - -#: src/gui-gnome/setup-flood.c:79 -msgid "Autoignore flooders for" -msgstr "Automaattisesti piilota floodaajien viestit" - -#: src/gui-gnome/setup-flood.c:82 -msgid "Timeout between replying to CTCPs" -msgstr "" - -#: src/gui-gnome/setup-flood.c:85 -msgid "Max. CTCP requests to keep in buffer" -msgstr "" - -#: src/gui-gnome/setup-flood.c:88 -msgid "Timeout between sending commands to server" -msgstr "" - -#: src/gui-gnome/setup-flood.c:93 -msgid "Flood" -msgstr "" - -#. --- -#: src/gui-gnome/setup-history.c:41 src/gui-gnome/setup-history.c:99 -msgid "History" -msgstr "" - -#: src/gui-gnome/setup-history.c:48 -msgid "Each window has it's own command history buffer" -msgstr "" - -#: src/gui-gnome/setup-history.c:52 -msgid "Saved lines in scrollback buffer" -msgstr "" - -#: src/gui-gnome/setup-history.c:63 -msgid "Remove lines from buffer in blocks of" -msgstr "" - -#: src/gui-gnome/setup-history.c:74 -msgid "Command history length" -msgstr "" - -#: src/gui-gnome/setup-history.c:85 -msgid "Rawlog buffer length" -msgstr "" - -#: src/gui-gnome/setup-ircnets.c:190 -msgid "" -"Change ircnet in server and channel lists also\n" -"WARNING: changing channel list can't be undone!" -msgstr "" - -#: src/gui-gnome/setup-ircnets.c:264 src/gui-gnome/setup-servers.c:490 -msgid "Add" -msgstr "" - -#: src/gui-gnome/setup-ircnets.c:282 -msgid "IRC networks" -msgstr "" - -#: src/gui-gnome/setup-ircproxy.c:55 -msgid "Use IRC proxy" -msgstr "" - -#: src/gui-gnome/setup-ircproxy.c:81 -msgid "Send to proxy after connect" -msgstr "" - -#: src/gui-gnome/setup-ircproxy.c:89 -msgid "IRC proxy" -msgstr "" - -#: src/gui-gnome/setup-lists.c:346 src/gui-gnome/setup-lists.c:368 -msgid "Alias" -msgstr "" - -#: src/gui-gnome/setup-lists.c:346 src/gui-gnome/setup-lists.c:369 -msgid "Command" -msgstr "" - -#: src/gui-gnome/setup-lists.c:372 -msgid "Aliases" -msgstr "" - -#: src/gui-gnome/setup-lists.c:374 src/gui-gnome/setup-lists.c:386 -msgid "Mask" -msgstr "" - -#: src/gui-gnome/setup-lists.c:375 -msgid "What to ignore" -msgstr "" - -#: src/gui-gnome/setup-lists.c:378 -msgid "Ignores" -msgstr "" - -#: src/gui-gnome/setup-lists.c:380 -msgid "Tag" -msgstr "" - -#: src/gui-gnome/setup-lists.c:381 -msgid "Completed text" -msgstr "" - -#: src/gui-gnome/setup-lists.c:384 -msgid "Completions" -msgstr "" - -#: src/gui-gnome/setup-lists.c:387 -msgid "IRC network(s)" -msgstr "" - -#: src/gui-gnome/setup-lists.c:390 -msgid "Notify List" -msgstr "" - -#: src/gui-gnome/setup-lists.c:392 -msgid "Text" -msgstr "" - -#: src/gui-gnome/setup-lists.c:396 -msgid "Hilight Texts" -msgstr "" - -#. --- -#: src/gui-gnome/setup-lookandfeel.c:67 -msgid "Interface" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:74 -msgid "Show menubar" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:78 -msgid "Show toolbar" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:82 -msgid "Show status bar" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:86 -msgid "Notifylist popup dialogs" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:90 -msgid "Beep on private msgs" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:102 -msgid "Show nick list" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:106 -msgid "Show time stamps" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:110 -msgid "Do not show styling (bold, colors, etc.)" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:114 -msgid "Allow beeping" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:122 -msgid "Window and Tabs" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:129 -msgid "Use a special window for status information" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:133 -msgid "Use a special window for all incoming messages" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:138 -msgid "Do not use a special window for all incoming messages" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:152 -msgid "Create a new window for each incoming query" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:156 -msgid "Automatically raise Messages Window(s)" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:160 -msgid "Use Tabs instead of new Windows" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:168 -msgid "Tab position" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:179 -msgid "Left" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:184 -msgid "Right" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:189 -msgid "Top" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:194 -msgid "Bottom" -msgstr "" - -#: src/gui-gnome/setup-lookandfeel.c:205 -msgid "Look & Feel" -msgstr "" - -#. --- -#: src/gui-gnome/setup-misc.c:66 -msgid "Programs" -msgstr "" - -#: src/gui-gnome/setup-misc.c:74 -msgid "Web browser" -msgstr "" - -#: src/gui-gnome/setup-misc.c:77 -msgid "FTP client" -msgstr "" - -#: src/gui-gnome/setup-misc.c:80 -msgid "E-Mail client" -msgstr "" - -#. --- -#: src/gui-gnome/setup-misc.c:85 -msgid "Lag checking" -msgstr "" - -#: src/gui-gnome/setup-misc.c:92 -msgid "How often to check for lag (secs)" -msgstr "" - -#: src/gui-gnome/setup-misc.c:103 -msgid "Maximum lag before force disconnect (secs)" -msgstr "" - -#. --- -#: src/gui-gnome/setup-misc.c:115 src/gui-gnome/setup-misc.c:152 -msgid "Misc" -msgstr "" - -#: src/gui-gnome/setup-misc.c:123 -msgid "Default quit message" -msgstr "" - -#: src/gui-gnome/setup-misc.c:128 -msgid "Default user mode" -msgstr "" - -#: src/gui-gnome/setup-misc.c:131 -msgid "CTCP VERSION reply" -msgstr "" - -#: src/gui-gnome/setup-misc.c:142 -msgid "Knockout bans for" -msgstr "" - -#: src/gui-gnome/setup-misc.c:142 -msgid "seconds (requires ops)" -msgstr "" - -#: src/gui-gnome/setup-misc.c:144 -msgid "Automatically checking new Irssi versions..." -msgstr "" - -#: src/gui-gnome/setup-servers.c:176 -msgid "y" -msgstr "" - -#: src/gui-gnome/setup-servers.c:241 -msgid "Clear" -msgstr "" - -#: src/gui-gnome/setup-servers.c:252 src/gui-gnome/setup-servers.c:439 -msgid "IRC Net" -msgstr "" - -#: src/gui-gnome/setup-servers.c:272 -msgid "Timeout between sending commands to server (0 = default)" -msgstr "" - -#: src/gui-gnome/setup-servers.c:302 -msgid "Autoconnect at startup" -msgstr "" - -#: src/gui-gnome/setup-servers.c:360 -msgid "" -"You have empty entries!\n" -"At least IRC Net, Server and Port\n" -"must be filled." -msgstr "" - -#: src/gui-gnome/setup-servers.c:439 -msgid "AC" -msgstr "" - -#. 'IRC servers' frame -#: src/gui-gnome/setup-servers.c:456 -msgid "IRC Servers" -msgstr "" - -#: src/gui-gnome/setup-servers.c:502 -msgid "User information" -msgstr "" - -#. skip motd -#: src/gui-gnome/setup-servers.c:506 -msgid "Skip MOTD" -msgstr "" - -#: src/gui-gnome/setup-servers.c:514 -msgid "Seconds to wait before reconnecting (-1 = never)" -msgstr "" - -#: src/gui-gnome/setup-servers.c:524 -msgid "Source host (empty=default)" -msgstr "" - -#: src/gui-gnome/setup-servers.c:539 -msgid "Alternate nick" -msgstr "" - -#: src/gui-gnome/setup-servers.c:543 -msgid "User name" -msgstr "" - -#: src/gui-gnome/setup-servers.c:556 -msgid "Servers" -msgstr "" - -#: src/gui-gnome/setup-session.c:124 -msgid "New Window..." -msgstr "" - -#: src/gui-gnome/setup-session.c:129 -msgid "New Tab..." -msgstr "" - -#: src/gui-gnome/setup-session.c:134 -msgid "New Channel..." -msgstr "" - -#: src/gui-gnome/setup-session.c:145 -msgid "Session" -msgstr "" - -#: src/gui-gnome/setup-themes.c:208 -msgid "Add new theme" -msgstr "" - -#: src/gui-gnome/setup-themes.c:240 -#, c-format -msgid "Really delete theme %s" -msgstr "" - -#: src/gui-gnome/setup-themes.c:259 -msgid "Theme selector" -msgstr "" - -#: src/gui-gnome/setup-txt.c:279 -msgid "<formats>" -msgstr "" - -#: src/gui-gnome/setup-txt.c:319 -msgid "Text Formats" -msgstr "" - -#: src/gui-gnome/setup.c:73 -msgid "" -"GTK pixmap themes are a bit buggy, if you really want to\n" -"use them, you should enable this workaround. Without it\n" -"X server's memory usage grows all the time. If you enable\n" -"it, you won't see the nicks' gone status in nicklist" -msgstr "" - -#: src/gui-gnome/setup.c:79 -msgid "Enable workaround" -msgstr "" - -#: src/gui-gnome/wordclick.c:114 -#, c-format -msgid "Join %s" -msgstr "Liity kanvalle %s" - -#: src/gui-gnome/wordclick.c:133 -#, c-format -msgid "Open HTTP page %s" -msgstr "Avaa weppisivu %s" - -#: src/gui-gnome/wordclick.c:144 -#, c-format -msgid "Open FTP page %s" -msgstr "Avaa FTP sivu %s" - -#: src/gui-gnome/wordclick.c:155 -#, c-format -msgid "Send email to %s" -msgstr "Lähetä emailia %s" - -#: src/gui-gnome/wordclick.c:169 -#, c-format -msgid "Query %s" -msgstr "Avaa keskustelu %s kanssa" diff --git a/src/Makefile.am b/src/Makefile.am index 1f5629c9..b411aab3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -11,6 +11,7 @@ BOTUI=gui-none endif noinst_HEADERS = \ + nls.h \ common.h \ common-setup.h \ irssi-plugin.h \ diff --git a/window-views-patch.diff b/window-views-patch.diff deleted file mode 100644 index 192b96b1..00000000 --- a/window-views-patch.diff +++ /dev/null @@ -1,2672 +0,0 @@ -diff -ru irssi-0.7.11/src/gui-gnome/Makefile.am irssi-0.7.11-new/src/gui-gnome/Makefile.am ---- irssi-0.7.11/src/gui-gnome/Makefile.am Sun Jun 6 18:48:07 1999 -+++ irssi-0.7.11-new/src/gui-gnome/Makefile.am Mon Jun 7 18:33:41 1999 -@@ -53,7 +52,8 @@ - gui-mainwindows.c \ - gui-printtext.c \ - gui-server.c \ -- gui-windows.c \ -+ gui-windowset.c \ -+ gui-windows-view.c \ - irssi.c \ - setup-appearance.c \ - setup-ircproxy.c \ -@@ -98,7 +98,8 @@ - gui-mainwindows.h \ - gui-printtext.h \ - gui-server.h \ -- gui-windows.h \ -+ gui-windowset.h \ -+ gui-windows-view.h \ - gtk-specific.h \ - gnome-specific.h \ - irssi.h \ -diff -ru irssi-0.7.11/src/gui-gnome/channels-newdata.c irssi-0.7.11-new/src/gui-gnome/channels-newdata.c ---- irssi-0.7.11/src/gui-gnome/channels-newdata.c Sat May 15 20:23:24 1999 -+++ irssi-0.7.11-new/src/gui-gnome/channels-newdata.c Sat Jun 12 17:55:06 1999 -@@ -57,7 +57,7 @@ - g_return_val_if_fail(channel != NULL, FALSE); - - label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(WINDOW_GUI(CHANNEL_PARENT(channel))->parent->notebook), -- WINDOW_GUI(CHANNEL_PARENT(channel))->window); -+ WINDOW_GUI(CHANNEL_PARENT(channel))->windowset->window); - newdata_label_colorify(channel, label); - - return TRUE; -diff -ru irssi-0.7.11/src/gui-gnome/dialog-channels.c irssi-0.7.11-new/src/gui-gnome/dialog-channels.c ---- irssi-0.7.11/src/gui-gnome/dialog-channels.c Wed May 12 17:54:45 1999 -+++ irssi-0.7.11-new/src/gui-gnome/dialog-channels.c Mon Jun 7 18:57:46 1999 -@@ -617,7 +617,7 @@ - { - /* channel specific background pixmap */ - path = convert_home(rec->background); -- gui_window_set_background_pixmap(CHANNEL_PARENT(channel), path); -+ gui_window_view_set_background_pixmap(WINDOW_GUI(CHANNEL_PARENT(channel)), path); - g_free(path); - } - -diff -ru irssi-0.7.11/src/gui-gnome/dialog-textwidget.c irssi-0.7.11-new/src/gui-gnome/dialog-textwidget.c ---- irssi-0.7.11/src/gui-gnome/dialog-textwidget.c Thu May 13 14:46:51 1999 -+++ irssi-0.7.11-new/src/gui-gnome/dialog-textwidget.c Sat Jun 12 17:26:21 1999 -@@ -134,7 +134,7 @@ - return; - } - -- if (WINDOW_GUI(window->active)->zvt) -+ if (window->active->active->zvt) - { - gui_dialog(DIALOG_ERROR, "Find doesn't work with ZVT windows yet"); - return; -@@ -145,7 +145,7 @@ - GNOME_STOCK_BUTTON_CLOSE, NULL); - gtk_signal_connect(GTK_OBJECT(dialog), "delete_event", - GTK_SIGNAL_FUNC(gtk_widget_destroy), NULL); -- gui_widget_depends_data(dialog, "window destroyed", window->active); -+ gui_widget_depends_data(dialog, "window destroyed", window->active->active->window); - - hbox = gtk_hbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(GNOME_DIALOG(dialog)->vbox), hbox, TRUE, TRUE, 0); -@@ -160,8 +160,8 @@ - gnome_dialog_button_connect_object(GNOME_DIALOG(dialog), 1, sig_find_next, GTK_OBJECT(dialog)); - gnome_dialog_button_connect_object(GNOME_DIALOG(dialog), 2, GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(dialog)); - -- gtk_object_set_data(GTK_OBJECT(dialog), "text", WINDOW_GUI(window->active)->text); -- gtk_object_set_data(GTK_OBJECT(dialog), "window", window->active); -+ gtk_object_set_data(GTK_OBJECT(dialog), "text", window->active->active->text); -+ gtk_object_set_data(GTK_OBJECT(dialog), "window", window->active->active->window); - gtk_object_set_data(GTK_OBJECT(dialog), "entry", entry); - - gtk_widget_show_all(dialog); -@@ -220,13 +220,13 @@ - return; - } - -- if (WINDOW_GUI(window->active)->zvt) -+ if (window->active->active->zvt) - { - gui_dialog(DIALOG_ERROR, "Save doesn't work with ZVT windows yet"); - return; - } - -- if (gtk_text_get_length(GTK_TEXT(WINDOW_GUI(window->active)->text)) == 0) -+ if (gtk_text_get_length(GTK_TEXT(window->active->active->text)) == 0) - { - gui_dialog(DIALOG_OK, _("Window doesn't have any text")); - return; -@@ -236,12 +236,12 @@ - GNOME_STOCK_BUTTON_CANCEL, NULL); - gtk_signal_connect(GTK_OBJECT(dialog), "delete_event", - GTK_SIGNAL_FUNC(gtk_widget_destroy), NULL); -- gui_widget_depends_data(dialog, "window destroyed", window->active); -+ gui_widget_depends_data(dialog, "window destroyed", window->active->active->window); - - button = gtk_check_button_new_with_label(_("Save only selected text")); - gtk_box_pack_start(GTK_BOX(GNOME_DIALOG(dialog)->vbox), button, FALSE, FALSE, 0); - -- if (GTK_EDITABLE(WINDOW_GUI(window->active)->text)->has_selection) -+ if (GTK_EDITABLE(window->active->active->text)->has_selection) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); - else - gtk_widget_set_sensitive(button, FALSE); -@@ -258,7 +258,7 @@ - gnome_dialog_button_connect_object(GNOME_DIALOG(dialog), 0, sig_save_ok, GTK_OBJECT(dialog)); - gnome_dialog_button_connect_object(GNOME_DIALOG(dialog), 1, GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(dialog)); - -- gtk_object_set_data(GTK_OBJECT(dialog), "text", WINDOW_GUI(window->active)->text); -+ gtk_object_set_data(GTK_OBJECT(dialog), "text", window->active->active->text); - gtk_object_set_data(GTK_OBJECT(dialog), "selbut", button); - gtk_object_set_data(GTK_OBJECT(dialog), "entry", gnome_file_entry_gtk_entry(GNOME_FILE_ENTRY(entry))); - -diff -ru irssi-0.7.11/src/gui-gnome/dialog-window.c irssi-0.7.11-new/src/gui-gnome/dialog-window.c ---- irssi-0.7.11/src/gui-gnome/dialog-window.c Sun Jun 6 18:34:26 1999 -+++ irssi-0.7.11-new/src/gui-gnome/dialog-window.c Sat Jun 12 17:28:12 1999 -@@ -108,13 +108,13 @@ - hbox2 = gtk_hbox_new(FALSE, 5); - gtk_box_pack_start(GTK_BOX(hbox), hbox2, TRUE, TRUE, 0); - -- str = g_strdup_printf("%d", WINDOW_GUI(window->active)->text->allocation.width); -+ str = g_strdup_printf("%d", window->active->active->text->allocation.width); - entry = gui_create_labelentry(hbox2, _("Width"), str, TRUE); - gtk_object_set_data(GTK_OBJECT(dialog), "sizexentry", entry); - gtk_widget_set_usize(entry, 50, -1); - g_free(str); - -- str = g_strdup_printf("%d", WINDOW_GUI(window->active)->text->allocation.height); -+ str = g_strdup_printf("%d", window->active->active->text->allocation.height); - entry = gui_create_labelentry(hbox2, _("Height"), str, TRUE); - gtk_object_set_data(GTK_OBJECT(dialog), "sizeyentry", entry); - gtk_widget_set_usize(entry, 50, -1); -@@ -154,7 +154,7 @@ - gtk_widget_set_sensitive(hbox2, FALSE); - - /* window name */ -- channel = window->active->active; -+ channel = window->active->active->window->active; - name = gui_channel_get_name(channel); - if (name == NULL) name = "default"; - -diff -ru irssi-0.7.11/src/gui-gnome/gui-channels.c irssi-0.7.11-new/src/gui-gnome/gui-channels.c ---- irssi-0.7.11/src/gui-gnome/gui-channels.c Sat May 15 15:47:08 1999 -+++ irssi-0.7.11-new/src/gui-gnome/gui-channels.c Sat Jun 12 17:51:30 1999 -@@ -41,7 +41,7 @@ - GList *tmp; - - label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(WINDOW_GUI(window)->parent->notebook), -- WINDOW_GUI(window)->window); -+ WINDOW_GUI(window)->windowset->window); - g_return_if_fail(label != NULL); - - str = g_string_new(NULL); -@@ -75,7 +75,7 @@ - if (channel->type == CHANNEL_TYPE_EMPTY) - rec->servermenu = TRUE; - if (channel->type == CHANNEL_TYPE_CHANNEL && toggle_show_nicklist) -- gtk_widget_show(WINDOW_GUI(window)->nickscrollbox); -+ gtk_widget_show(WINDOW_GUI(window)->windowset->nickscrollbox); - - name = gui_channel_get_name(channel); - -@@ -182,7 +182,7 @@ - /* create new window to use */ - window = !toggle_use_tabbed_windows ? NULL : - cur_channel != NULL ? CHANNEL_PARENT(cur_channel) : NULL; -- window = gui_window_create(window == NULL ? NULL : WINDOW_GUI(window)->parent); -+ window = gui_windowset_create(window == NULL ? NULL : WINDOW_GUI(window)->parent)->active->window; - } - - gui_channel_init(window, channel); -@@ -230,7 +230,7 @@ - else - { - /* window is useless, destroy it. */ -- gui_window_destroy(window); -+ gui_window_view_destroy(WINDOW_GUI(window)); - } - } - return TRUE; -@@ -253,16 +253,16 @@ - if (channel->topic == NULL || *channel->topic == '\0') - { - /* No topic in channel */ -- gtk_entry_set_text(GTK_ENTRY(WINDOW_GUI(window)->topicentry), ""); -+ gtk_entry_set_text(GTK_ENTRY(WINDOW_GUI(window)->windowset->topicentry), ""); - } - else - { -- gtk_entry_set_text(GTK_ENTRY(WINDOW_GUI(window)->topicentry), channel->topic); -+ gtk_entry_set_text(GTK_ENTRY(WINDOW_GUI(window)->windowset->topicentry), channel->topic); - g_string_sprintfa(tmp, " - %s", channel->topic); - } - } - -- if (window == WINDOW_GUI(window)->parent->active) -+ if (window == WINDOW_GUI(window)->parent->active->active->window) - gtk_window_set_title(GTK_WINDOW(WINDOW_GUI(window)->parent->window), tmp->str); - g_string_free(tmp, TRUE); - return TRUE; -@@ -276,7 +276,7 @@ - g_return_if_fail(channel->server != NULL); - - str = g_strconcat(channel->server->nick, " / ", channel->server->tag, NULL); -- gtk_label_set(GTK_LABEL(WINDOW_GUI(CHANNEL_PARENT(channel))->serverlabel), str); -+ gtk_label_set(GTK_LABEL(WINDOW_GUI(CHANNEL_PARENT(channel))->windowset->serverlabel), str); - g_free(str); - } - -@@ -322,7 +322,7 @@ - window = CHANNEL_PARENT(channel); - if (channel->type != CHANNEL_TYPE_CHANNEL || channel != window->active) - return TRUE; -- gui = WINDOW_GUI(window); -+ gui = WINDOW_GUI(window)->windowset; - - for (num = 0; num < 6; num++) - gtk_object_set_data(GTK_OBJECT(gui->modebuttons[num]), "toggling", GINT_TO_POINTER(TRUE)); -@@ -351,20 +351,21 @@ - - static gboolean signal_channel_open(CHANNEL_REC *channel) - { -- WINDOW_REC *window; -+ GUI_WINDOW_REC *gui; - - g_return_val_if_fail(channel != NULL, FALSE); - -- window = CHANNEL_PARENT(channel); -- if (WINDOW_GUI(window)->parent->active != window) -+ gui = WINDOW_GUI(CHANNEL_PARENT(channel))->windowset; -+ -+ if (gui->parent->active->active->window != CHANNEL_PARENT(channel)) - { - /* change to right window tab */ - gint page; - -- page = gtk_notebook_page_num(GTK_NOTEBOOK(WINDOW_GUI(window)->parent->notebook), WINDOW_GUI(window)->window); -- gtk_notebook_set_page(GTK_NOTEBOOK(WINDOW_GUI(window)->parent->notebook), page); -+ page = gtk_notebook_page_num(GTK_NOTEBOOK(gui->parent->notebook), gui->window); -+ gtk_notebook_set_page(GTK_NOTEBOOK(gui->parent->notebook), page); - } -- gdk_window_show(WINDOW_GUI(window)->parent->window->window); -+ gdk_window_show(gui->parent->window->window); - - if (CHANNEL_PARENT(channel)->active != channel) - { -diff -ru irssi-0.7.11/src/gui-gnome/gui-mainwindows.c irssi-0.7.11-new/src/gui-gnome/gui-mainwindows.c ---- irssi-0.7.11/src/gui-gnome/gui-mainwindows.c Thu May 13 15:17:33 1999 -+++ irssi-0.7.11-new/src/gui-gnome/gui-mainwindows.c Sat Jun 12 17:31:42 1999 -@@ -23,7 +23,7 @@ - - GList *mainwindows; - --static WINDOW_REC *window_find_notebook_child(MAIN_WINDOW_REC *window, GtkWidget *child) -+static GUI_WINDOW_VIEW_REC *window_find_notebook_child(MAIN_WINDOW_REC *window, GtkWidget *child) - { - GList *tmp; - -@@ -32,9 +32,9 @@ - - for (tmp = g_list_first(window->children); tmp != NULL; tmp = tmp->next) - { -- WINDOW_REC *rec = tmp->data; -+ GUI_WINDOW_VIEW_REC *rec = tmp->data; - -- if (WINDOW_GUI(rec)->window == child) return rec; -+ if (rec->windowset->window == child) return rec; - } - - return NULL; -@@ -57,9 +57,9 @@ - { - g_return_val_if_fail(window != NULL, 0); - -- if (cur_channel != window->active->active) -+ if (cur_channel != window->active->active->window->active) - { -- cur_channel = window->active->active; -+ cur_channel = window->active->active->window->active; - signal_emit("channel changed", 1, cur_channel); - signal_emit("window focused", 1, window->active); - } -@@ -70,7 +70,7 @@ - /* notebook signal: switch_page */ - static void sig_switch_page(GtkWidget *notebook, GtkNotebookPage *child, guint pagenum, MAIN_WINDOW_REC *window) - { -- WINDOW_REC *subwin; -+ GUI_WINDOW_VIEW_REC *subwin; - - g_return_if_fail(child != NULL); - g_return_if_fail(window != NULL); -@@ -84,10 +84,10 @@ - return; - } - -- window->active = subwin; -- cur_channel = subwin->active; -+ window->active->active = subwin; -+ cur_channel = subwin->window->active; - signal_emit("channel changed", 1, cur_channel); -- signal_emit("window focused", 1, subwin); -+ signal_emit("window focused", 1, subwin->window); - } - - static void window_change_page(WINDOW_REC *window) -@@ -96,7 +96,7 @@ - - g_return_if_fail(window != NULL); - -- page = gtk_notebook_page_num(GTK_NOTEBOOK(WINDOW_GUI(window)->parent->notebook), WINDOW_GUI(window)->window); -+ page = gtk_notebook_page_num(GTK_NOTEBOOK(WINDOW_GUI(window)->parent->notebook), WINDOW_GUI(window)->windowset->window); - gtk_notebook_set_page(GTK_NOTEBOOK(WINDOW_GUI(window)->parent->notebook), page); - } - -@@ -105,15 +105,15 @@ - /* signal: key pressed (in entry field) */ - static gint sig_keypress(GtkWidget *widget, GdkEventKey *event, MAIN_WINDOW_REC *window) - { -- GUI_WINDOW_REC *guiwin; -+ GUI_WINDOW_VIEW_REC *view; - gchar *text; - - g_return_val_if_fail(event != NULL, 0); - g_return_val_if_fail(window != NULL, 0); - -- guiwin = window->active == NULL ? NULL : WINDOW_GUI(window->active); -- if (guiwin != NULL && guiwin->topicentry != NULL && GTK_WIDGET_HAS_FOCUS(guiwin->topicentry) && -- gtk_object_get_data(GTK_OBJECT(guiwin->topicentry), "editable")) -+ view = window->active == NULL ? NULL : window->active->active ; -+ if (view != NULL && view->windowset->topicentry != NULL && GTK_WIDGET_HAS_FOCUS(view->windowset->topicentry) && -+ gtk_object_get_data(GTK_OBJECT(view->windowset->topicentry), "editable")) - { - /* trying to write topic, don't disturb it.. */ - return 0; -@@ -143,11 +143,11 @@ - gint val; - - #ifdef HAVE_GNOME -- if (guiwin->zvt) -- adj = ZVT_TERM(guiwin->text)->adjustment; -+ if (view->zvt) -+ adj = ZVT_TERM(view->text)->adjustment; - else - #endif -- adj = GTK_TEXT(guiwin->text)->vadj; -+ adj = GTK_TEXT(view->text)->vadj; - val = adj->value - (adj->page_size/2); - gtk_adjustment_set_value(adj, val > 0 ? val : 0); - } -@@ -161,11 +161,11 @@ - gint val, max; - - #ifdef HAVE_GNOME -- if (guiwin->zvt) -- adj = ZVT_TERM(guiwin->text)->adjustment; -+ if (view->zvt) -+ adj = ZVT_TERM(view->text)->adjustment; - else - #endif -- adj = GTK_TEXT(guiwin->text)->vadj; -+ adj = GTK_TEXT(view->text)->vadj; - val = adj->value + (adj->page_size/2); - max = adj->upper - adj->lower - adj->page_size; - gtk_adjustment_set_value(adj, val <= max ? val : max); -@@ -179,7 +179,7 @@ - gint pos; - - pos = gtk_editable_get_position(GTK_EDITABLE(window->entry)); -- line = completion_line(window->active->active, gtk_entry_get_text(GTK_ENTRY(window->entry)), &pos); -+ line = completion_line(window->active->active->window->active, gtk_entry_get_text(GTK_ENTRY(window->entry)), &pos); - if (line != NULL) - { - gtk_entry_set_text(GTK_ENTRY(window->entry), line); -@@ -271,14 +271,14 @@ - - ui_history_add(str, FALSE); - -- if (cur_channel != window->active->active) -+ if (cur_channel != window->active->active->window->active) - { - /* we get here at least when using click-to-focus and keyboard - focus being in different window than mouse. Is there some - event we could use instead of enter_notify_event to find out - what window really has the focus? .. probably is, I'm too lazy - to find out what it is .. */ -- cur_channel = window->active->active; -+ cur_channel = window->active->active->window->active; - signal_emit("channel changed", 1, cur_channel); - } - signal_emit("send command", 3, str, cur_channel->server, cur_channel); -@@ -386,7 +403,7 @@ - - window->destroying = TRUE; - while (window->children != NULL) -- gui_window_destroy(window->children->data); -+ gui_windowset_destroy(window->children->data); - window->destroying = FALSE; - - gtk_widget_destroy(window->window); -diff -ru irssi-0.7.11/src/gui-gnome/gui-mainwindows.h irssi-0.7.11-new/src/gui-gnome/gui-mainwindows.h ---- irssi-0.7.11/src/gui-gnome/gui-mainwindows.h Sun Apr 11 23:40:07 1999 -+++ irssi-0.7.11-new/src/gui-gnome/gui-mainwindows.h Sat Jun 12 17:23:49 1999 -@@ -1,6 +1,9 @@ - #ifndef __GUI_MAINWINDOWS_H - #define __GUI_MAINWINDOWS_H - -+typedef struct _GUI_WINDOW_REC GUI_WINDOW_REC; -+typedef struct _GUI_WINDOW_VIEW_REC GUI_WINDOW_VIEW_REC; -+ - typedef struct - { - GtkWidget *window; -@@ -17,7 +20,7 @@ - guint destroying:1; - - GList *children; -- WINDOW_REC *active; -+ GUI_WINDOW_REC *active; - } - MAIN_WINDOW_REC; - -diff -ru irssi-0.7.11/src/gui-gnome/gui-printtext.c irssi-0.7.11-new/src/gui-gnome/gui-printtext.c ---- irssi-0.7.11/src/gui-gnome/gui-printtext.c Sun Jun 6 12:28:08 1999 -+++ irssi-0.7.11-new/src/gui-gnome/gui-printtext.c Mon Jun 7 18:44:44 1999 -@@ -51,7 +51,7 @@ - /* Write text to ZVT window */ - static gboolean gui_printtext_zvt(CHANNEL_REC *channel, gint fgcolor, gint bgcolor, gint flags, gchar *str) - { -- GUI_WINDOW_REC *gui; -+ GUI_WINDOW_VIEW_REC *view; - WINDOW_REC *window; - gint fg, bg; - GString *out; -@@ -59,7 +59,7 @@ - g_return_val_if_fail(str != NULL, FALSE); - - window = CHANNEL_PARENT(channel); -- gui = WINDOW_GUI(window); -+ view = WINDOW_GUI(window); - - if (flags & PRINTFLAG_BEEP) - gdk_beep(); -@@ -75,7 +75,7 @@ - } - - if (*str == '\n') -- zvt_term_feed(ZVT_TERM(gui->text), "\r", 1); -+ zvt_term_feed(ZVT_TERM(view->text), "\r", 1); - - out = g_string_new("\033[0;"); - -@@ -87,8 +87,8 @@ - g_string_sprintfa(out, "3%dm", ansitab[fg & 7]); - - g_string_append(out, str); -- zvt_term_feed(ZVT_TERM(gui->text), out->str, out->len); -- vt_cursor_state(gui->text, 0); /* hide the ugly cursor */ -+ zvt_term_feed(ZVT_TERM(view->text), out->str, out->len); -+ vt_cursor_state(view->text, 0); /* hide the ugly cursor */ - - g_string_free(out, TRUE); - -@@ -99,7 +99,7 @@ - /* Write text to window */ - static gboolean gui_printtext(CHANNEL_REC *channel, gpointer fgcolor, gpointer bgcolor, gpointer flags, gchar *str) - { -- GUI_WINDOW_REC *gui; -+ GUI_WINDOW_VIEW_REC *view; - WINDOW_REC *window; - GdkColor *fg, *bg; - GdkFont *font; -@@ -109,10 +109,10 @@ - g_return_val_if_fail(str != NULL, FALSE); - - window = CHANNEL_PARENT(channel); -- gui = WINDOW_GUI(window); -+ view = WINDOW_GUI(window); - - #ifdef HAVE_GNOME -- if (gui->zvt) -+ if (view->zvt) - { - /* Use ZVT widget */ - return gui_printtext_zvt(channel, GPOINTER_TO_INT(fgcolor), -@@ -126,13 +126,13 @@ - will happen.. (and this code even looks awful ...) */ - if (*str == '\n') - { -- gui->linepos = g_list_append(gui->linepos, GINT_TO_POINTER(gui->lastlinelen)+1); -- gui->lastlinelen = 0; -+ view->linepos = g_list_append(view->linepos, GINT_TO_POINTER(view->lastlinelen)+1); -+ view->lastlinelen = 0; - } - else -- gui->lastlinelen += strlen(str); -+ view->lastlinelen += strlen(str); - -- gtk_text_freeze(GTK_TEXT(gui->text)); -+ gtk_text_freeze(GTK_TEXT(view->text)); - if (*str == '\n' && max_textwidget_lines > 0 && - max_textwidget_lines+block_remove_lines <= window->lines && - channel->type != CHANNEL_TYPE_SETUP) -@@ -143,15 +143,15 @@ - { - GList *link; - -- link = g_list_first(gui->linepos); -+ link = g_list_first(view->linepos); - len += GPOINTER_TO_INT(link->data); -- gui->linepos = g_list_remove_link(gui->linepos, link); -+ view->linepos = g_list_remove_link(view->linepos, link); - g_list_free_1(link); - window->lines--; - } -- gtk_text_set_point(GTK_TEXT(gui->text), 0); -- gtk_text_forward_delete(GTK_TEXT(gui->text), len); -- gtk_text_set_point(GTK_TEXT(gui->text), gtk_text_get_length(GTK_TEXT(gui->text))); -+ gtk_text_set_point(GTK_TEXT(view->text), 0); -+ gtk_text_forward_delete(GTK_TEXT(view->text), len); -+ gtk_text_set_point(GTK_TEXT(view->text), gtk_text_get_length(GTK_TEXT(view->text))); - } - - if (GPOINTER_TO_INT(flags) & PRINTFLAG_BOLD) -@@ -178,8 +178,8 @@ - fg = bg != NULL ? bg : &bg_color; - bg = tmp; - } -- gtk_text_insert(GTK_TEXT(gui->text), font, fg, bg, str, -1); -- gtk_text_thaw(GTK_TEXT(gui->text)); -+ gtk_text_insert(GTK_TEXT(view->text), font, fg, bg, str, -1); -+ gtk_text_thaw(GTK_TEXT(view->text)); - - if (sb_down) set_sb_down(window); - -diff -ru irssi-0.7.11/src/gui-gnome/irssi.c irssi-0.7.11-new/src/gui-gnome/irssi.c ---- irssi-0.7.11/src/gui-gnome/irssi.c Mon May 10 20:32:28 1999 -+++ irssi-0.7.11-new/src/gui-gnome/irssi.c Mon Jun 7 19:06:20 1999 -@@ -38,7 +38,8 @@ - - gui_printtext_init(); - mainwindows_init(); -- gui_windows_init(); -+ gui_windowset_init(); -+ gui_windows_view_init(); - gui_channels_init(); - gui_dcc_init(); - gui_events_init(); -@@ -86,7 +87,8 @@ - gui_events_deinit(); - gui_server_deinit(); - mainwindows_deinit(); -- gui_windows_deinit(); -+ gui_windows_view_deinit(); -+ gui_windowset_deinit(); - gui_channels_deinit(); /* channels after mainwindows_deinit()! */ - gui_printtext_deinit(); - setup_deinit(); -diff -ru irssi-0.7.11/src/gui-gnome/irssi.h irssi-0.7.11-new/src/gui-gnome/irssi.h ---- irssi-0.7.11/src/gui-gnome/irssi.h Mon May 10 20:24:46 1999 -+++ irssi-0.7.11-new/src/gui-gnome/irssi.h Mon Jun 7 18:34:03 1999 -@@ -35,7 +35,8 @@ - #include "setup.h" - #include "gui-mainwindows.h" - #include "gui-channels.h" --#include "gui-windows.h" -+#include "gui-windowset.h" -+#include "gui-windows-view.h" - - #include "channels-newdata.h" - #include "dialogs.h" -diff -ru irssi-0.7.11/src/gui-gnome/setup-appearance.c irssi-0.7.11-new/src/gui-gnome/setup-appearance.c ---- irssi-0.7.11/src/gui-gnome/setup-appearance.c Sun Jun 6 20:10:05 1999 -+++ irssi-0.7.11-new/src/gui-gnome/setup-appearance.c Mon Jun 7 19:07:22 1999 -@@ -49,16 +49,16 @@ - - static gchar *temp_font_name; - --static void set_window_bg(GUI_WINDOW_REC *window) -+static void set_window_bg(GUI_WINDOW_VIEW_REC *view) - { - GtkStyle *style; - -- g_return_if_fail(window != NULL); -+ g_return_if_fail(view != NULL); - -- style = gtk_style_copy(window->text->style); -+ style = gtk_style_copy(view->text->style); - gtk_style_ref(style); - style->base[0] = temp_bg_color; -- gtk_widget_set_style(window->text, style); -+ gtk_widget_set_style(view->text, style); - gtk_style_unref(style); - - } -@@ -71,14 +71,14 @@ - static gboolean old_timestamps; - static gint oldlines, len; - -- GUI_WINDOW_REC *guiwin; -+ GUI_WINDOW_VIEW_REC *view; - WINDOW_REC *window; - gint n; - - g_return_if_fail(channel != NULL); - - window = CHANNEL_PARENT(channel); -- guiwin = WINDOW_GUI(window); -+ view = WINDOW_GUI(window); - - if (init) - { -@@ -90,16 +90,16 @@ - old_timestamps = toggle_show_timestamps; - toggle_show_timestamps = FALSE; - -- set_window_bg(guiwin); -+ set_window_bg(view); - - gui_printtext_configure(); - -- oldval = GTK_TEXT(guiwin->text)->vadj->value; -+ oldval = GTK_TEXT(view->text)->vadj->value; - oldlines = window->lines; -- len = gtk_text_get_length(GTK_TEXT(guiwin->text)); -+ len = gtk_text_get_length(GTK_TEXT(view->text)); - -- gtk_text_freeze(GTK_TEXT(guiwin->text)); -- gtk_text_set_point(GTK_TEXT(guiwin->text), len); -+ gtk_text_freeze(GTK_TEXT(view->text)); -+ gtk_text_set_point(GTK_TEXT(view->text), len); - } - else - { -@@ -108,10 +108,10 @@ - window->lines = oldlines; - - /*FIXME: this doesn't remove the lines from linelen list*/ -- gtk_text_set_point(GTK_TEXT(guiwin->text), 0); -- gtk_text_forward_delete(GTK_TEXT(guiwin->text), len); -- gtk_text_thaw(GTK_TEXT(guiwin->text)); -- gtk_adjustment_set_value(GTK_TEXT(guiwin->text)->vadj, oldval); -+ gtk_text_set_point(GTK_TEXT(view->text), 0); -+ gtk_text_forward_delete(GTK_TEXT(view->text), len); -+ gtk_text_thaw(GTK_TEXT(view->text)); -+ gtk_adjustment_set_value(GTK_TEXT(view->text)->vadj, oldval); - - bg_color = old_bg_color; - memcpy(setup_colors, old_colors, sizeof(setup_colors)); -diff -ru irssi-0.7.11/src/gui-gnome/snapshot.c irssi-0.7.11-new/src/gui-gnome/snapshot.c ---- irssi-0.7.11/src/gui-gnome/snapshot.c Thu May 13 16:03:54 1999 -+++ irssi-0.7.11-new/src/gui-gnome/snapshot.c Mon Jun 7 19:08:17 1999 -@@ -24,25 +24,25 @@ - - static void snapshot_show(WINDOW_REC *window) - { -- GUI_WINDOW_REC *gui; -+ GUI_WINDOW_VIEW_REC *view; - GtkWidget *scrollbox; - GtkAdjustment *adj; - gint x, y, xsize, ysize; - - g_return_if_fail(window != NULL); - -- gui = WINDOW_GUI(window); -+ view = WINDOW_GUI(window); - gdk_window_get_pointer (NULL, &x, &y, NULL); - -- gui->snapshot = gtk_window_new(GTK_WINDOW_POPUP); -+ view->snapshot = gtk_window_new(GTK_WINDOW_POPUP); - - scrollbox = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollbox), - GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); -- gtk_container_add(GTK_CONTAINER(gui->snapshot), scrollbox); -+ gtk_container_add(GTK_CONTAINER(view->snapshot), scrollbox); - -- xsize = gui->text->allocation.width; -- ysize = gui->text->allocation.height; -+ xsize = view->text->allocation.width; -+ ysize = view->text->allocation.height; - - if (xsize <= 1) xsize = gdk_screen_width()/2; - if (ysize <= 1) ysize = gdk_screen_height()*2/5; -@@ -58,18 +58,18 @@ - else - y += 5; - -- gtk_widget_set_uposition(gui->snapshot, x, y); -+ gtk_widget_set_uposition(view->snapshot, x, y); - -- gtk_object_set_data(GTK_OBJECT(gui->text), "parent", gui->text->parent); -- gtk_widget_reparent(gui->text, scrollbox); -- gtk_widget_show_all(gui->snapshot); -+ gtk_object_set_data(GTK_OBJECT(view->text), "parent", view->text->parent); -+ gtk_widget_reparent(view->text, scrollbox); -+ gtk_widget_show_all(view->snapshot); - - #ifdef HAVE_GNOME -- if (gui->zvt) -- adj = ZVT_TERM(gui->text)->adjustment; -+ if (view->zvt) -+ adj = ZVT_TERM(view->text)->adjustment; - else - #endif -- adj = GTK_TEXT(gui->text)->vadj; -+ adj = GTK_TEXT(view->text)->vadj; - gtk_adjustment_set_value(adj, adj->upper - adj->lower - adj->page_size); - - signal_emit("window focused", 1, window); -@@ -77,18 +77,18 @@ - - static void snapshot_hide(WINDOW_REC *window) - { -- GUI_WINDOW_REC *gui; -+ GUI_WINDOW_VIEW_REC *view; - GtkWidget *parent; - - g_return_if_fail(window != NULL); - -- gui = WINDOW_GUI(window); -- parent = gtk_object_get_data(GTK_OBJECT(gui->text), "parent"); -+ view = WINDOW_GUI(window); -+ parent = gtk_object_get_data(GTK_OBJECT(view->text), "parent"); - g_return_if_fail(parent != NULL); - -- gtk_widget_reparent(gui->text, parent); -- gtk_widget_destroy(gui->snapshot); -- gui->snapshot = NULL; -+ gtk_widget_reparent(view->text, parent); -+ gtk_widget_destroy(view->snapshot); -+ view->snapshot = NULL; - - signal_emit("window focused", 1, ((MAIN_WINDOW_REC *) mainwindows->data)->active); - } -diff -ru irssi-0.7.11/src/gui-gnome/window-menus.c irssi-0.7.11-new/src/gui-gnome/window-menus.c ---- irssi-0.7.11/src/gui-gnome/window-menus.c Sat May 15 22:08:20 1999 -+++ irssi-0.7.11-new/src/gui-gnome/window-menus.c Sat Jun 12 17:34:53 1999 -@@ -280,7 +280,7 @@ - window = gtk_object_get_data(GTK_OBJECT(menuitem->parent), "window"); - g_return_if_fail(window != NULL); - -- window->active->active->server = server; -+ window->active->active->window->active->server = server; - signal_emit("window server changed", 1, window->active); - } - -@@ -330,7 +330,7 @@ - gtk_menu_append(GTK_MENU(menu), menuitem); - - if (window->active != NULL) -- gtk_option_menu_set_history(GTK_OPTION_MENU(window->servermenu), g_list_index(servers, window->active->active->server)); -+ gtk_option_menu_set_history(GTK_OPTION_MENU(window->servermenu), g_list_index(servers, window->active->active->window->active->server)); - } - - return TRUE; -@@ -381,19 +381,19 @@ - - static void menu_chan_toggle_nicklist(GtkWidget *menuitem, CHANNEL_REC *channel) - { -- GUI_WINDOW_REC *window; -+ GtkWidget *nickscrollbox; - - g_return_if_fail(menuitem != NULL); - if (channel == NULL) return; - -- window = WINDOW_GUI(CHANNEL_PARENT(channel)); -- if (window->nickscrollbox == NULL) -+ nickscrollbox = WINDOW_GUI(CHANNEL_PARENT(channel))->windowset->nickscrollbox; -+ if (nickscrollbox == NULL) - return; /* this function was called from window_create().. */ - - if (GTK_CHECK_MENU_ITEM(menuitem)->active) -- gtk_widget_show(window->nickscrollbox); -+ gtk_widget_show(nickscrollbox); - else -- gtk_widget_hide(window->nickscrollbox); -+ gtk_widget_hide(nickscrollbox); - } - - static void menu_query_close(GtkWidget *menuitem, CHANNEL_REC *channel) -@@ -433,7 +433,7 @@ - toggling = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(menuitem), "toggling")); - if (toggling) return; - -- server = window->active->active->server; -+ server = window->active->active->window->active->server; - gtk_object_set_data(GTK_OBJECT(menuitem), "toggling", GINT_TO_POINTER(TRUE)); - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), - server == NULL ? FALSE : server->usermode_away); -@@ -478,9 +478,9 @@ - g_return_if_fail(menuitem != NULL); - if (window == NULL) return; - -- server = window->active->active->server; -+ server = window->active->active->window->active->server; - usermode_set(menuitem, 'i', server == NULL ? FALSE : -- server->usermode_invisible, window->active->active); -+ server->usermode_invisible, window->active->active->window->active); - } - - static void menu_usermode_wallops(GtkWidget *menuitem, MAIN_WINDOW_REC *window) -@@ -490,9 +490,9 @@ - g_return_if_fail(menuitem != NULL); - if (window == NULL) return; - -- server = window->active->active->server; -+ server = window->active->active->window->active->server; - usermode_set(menuitem, 'w', server == NULL ? FALSE : -- server->usermode_wallops, window->active->active); -+ server->usermode_wallops, window->active->active->window->active); - } - - static void menu_usermode_snotes(GtkWidget *menuitem, MAIN_WINDOW_REC *window) -@@ -502,19 +502,19 @@ - g_return_if_fail(menuitem != NULL); - if (window == NULL) return; - -- server = window->active->active->server; -+ server = window->active->active->window->active->server; - usermode_set(menuitem, 's', server == NULL ? FALSE : -- server->usermode_servernotes, window->active->active); -+ server->usermode_servernotes, window->active->active->window->active); - } - - static void menu_dcc_chat(GtkWidget *menuitem, MAIN_WINDOW_REC *window) - { -- gui_dcc_chat(window->active->active != NULL ? window->active->active->server : window->active->active->server); -+ gui_dcc_chat(window->active->active != NULL ? window->active->active->window->active->server : window->active->active->window->active->server); - } - - static void menu_dcc_send(GtkWidget *menuitem, MAIN_WINDOW_REC *window) - { -- gui_dcc_send(window->active->active != NULL ? window->active->active->server : window->active->active->server, NULL, NULL); -+ gui_dcc_send(window->active->active != NULL ? window->active->active->window->active->server : window->active->active->window->active->server, NULL, NULL); - } - - static void menu_window_new(GtkWidget *menuitem, MAIN_WINDOW_REC *window) -@@ -526,7 +526,7 @@ - - old = toggle_use_tabbed_windows; - toggle_use_tabbed_windows = FALSE; -- channel_create(window->active->active->server, _("(empty)"), CHANNEL_TYPE_EMPTY); -+ channel_create(window->active->active->window->active->server, _("(empty)"), CHANNEL_TYPE_EMPTY); - toggle_use_tabbed_windows = old; - } - -@@ -539,7 +539,7 @@ - - old = toggle_use_tabbed_windows; - toggle_use_tabbed_windows = TRUE; -- channel_create(window->active->active->server, _("(empty)"), CHANNEL_TYPE_EMPTY); -+ channel_create(window->active->active->window->active->server, _("(empty)"), CHANNEL_TYPE_EMPTY); - toggle_use_tabbed_windows = old; - } - -@@ -554,7 +554,7 @@ - toggling = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(menuitem), "toggling")); - if (toggling) return; - -- gui = CHANNEL_GUI(window->active->active); -+ gui = CHANNEL_GUI(window->active->active->window->active); - gui->autoraise = GTK_CHECK_MENU_ITEM(menuitem)->active; /* FIXME: better way for this? gtk needs a function for this.. */ - - gtk_object_set_data(GTK_OBJECT(menuitem), "toggling", GINT_TO_POINTER(TRUE)); -@@ -567,7 +567,7 @@ - g_return_if_fail(menuitem != NULL); - if (window == NULL) return; - -- gui_window_destroy(window->active); -+ gui_windowset_destroy(window->active); - } - - static void menu_settings_preferences(void) -@@ -657,7 +657,7 @@ - switch (channel->type) - { - case CHANNEL_TYPE_CHANNEL: -- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(channel_submenu[2].widget), GTK_WIDGET_VISIBLE(WINDOW_GUI(CHANNEL_PARENT(channel))->nickscrollbox)); -+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(channel_submenu[2].widget), GTK_WIDGET_VISIBLE(WINDOW_GUI(CHANNEL_PARENT(channel))->windowset->nickscrollbox)); - break; - - case CHANNEL_TYPE_QUERY: -Only in irssi-0.7.11-new/src/gui-gnome: window-menus.o -diff -ru irssi-0.7.11/src/gui-gnome/window-nicklist.c irssi-0.7.11-new/src/gui-gnome/window-nicklist.c ---- irssi-0.7.11/src/gui-gnome/window-nicklist.c Thu May 13 15:15:09 1999 -+++ irssi-0.7.11-new/src/gui-gnome/window-nicklist.c Mon Jun 7 19:11:02 1999 -@@ -93,7 +93,7 @@ - g_return_if_fail(nick != NULL); - - if (CHANNEL_PARENT(channel)->active != channel) return; -- gui = WINDOW_GUI(CHANNEL_PARENT(channel)); -+ gui = WINDOW_GUI(CHANNEL_PARENT(channel))->windowset; - - list = GTK_CLIST(gui->nicklist)->row_list; - for (row = 0; list != NULL; row++, list = list->next) -@@ -130,9 +130,9 @@ - window = CHANNEL_PARENT(channel); - if (window->active != channel) return; - -- row = gtk_clist_find_row_from_data(GTK_CLIST(WINDOW_GUI(window)->nicklist), nick); -+ row = gtk_clist_find_row_from_data(GTK_CLIST(WINDOW_GUI(window)->windowset->nicklist), nick); - if (row != -1) -- gtk_clist_remove(GTK_CLIST(WINDOW_GUI(window)->nicklist), row); -+ gtk_clist_remove(GTK_CLIST(WINDOW_GUI(window)->windowset->nicklist), row); - } - - void window_nicklist_redraw(CHANNEL_REC *channel) -@@ -141,7 +141,7 @@ - GList *tmp; - - if (CHANNEL_PARENT(channel)->active != channel) return; -- gui = WINDOW_GUI(CHANNEL_PARENT(channel)); -+ gui = WINDOW_GUI(CHANNEL_PARENT(channel))->windowset; - - gtk_clist_freeze(GTK_CLIST(gui->nicklist)); - gtk_clist_clear(GTK_CLIST(gui->nicklist)); -@@ -443,7 +443,7 @@ - g_return_val_if_fail(window != NULL, FALSE); - - /* create op and voice pixmaps */ -- gui = WINDOW_GUI(window); -+ gui = WINDOW_GUI(window)->windowset; - gtk_widget_realize(gui->window); - gui->op_pixmap = gdk_pixmap_create_from_xpm_d(gui->window->window, &gui->op_mask, NULL, op_xpm); - gui->voice_pixmap = gdk_pixmap_create_from_xpm_d(gui->window->window, &gui->voice_mask, NULL, voice_xpm); -@@ -477,7 +477,7 @@ - - chanrec = channel_find(server, channel); - if (chanrec != NULL && !server->names_coming) -- gtk_clist_freeze(GTK_CLIST(WINDOW_GUI(CHANNEL_PARENT(chanrec))->nicklist)); -+ gtk_clist_freeze(GTK_CLIST(WINDOW_GUI(CHANNEL_PARENT(chanrec))->windowset->nicklist)); - - g_free(params); - return TRUE; -@@ -494,7 +494,7 @@ - - chanrec = channel_find(server, channel); - if (chanrec != NULL) -- gtk_clist_thaw(GTK_CLIST(WINDOW_GUI(CHANNEL_PARENT(chanrec))->nicklist)); -+ gtk_clist_thaw(GTK_CLIST(WINDOW_GUI(CHANNEL_PARENT(chanrec))->windowset->nicklist)); - - g_free(params); - return TRUE; -diff -Nru irssi-0.7.11/src/gui-gnome/gui-windowset.c irssi-0.7.11-new/src/gui-gnome/gui-windowset.c ---- irssi-0.7.11/src/gui-gnome/gui-windowset.c Thu Jan 1 02:00:00 1970 -+++ irssi-0.7.11-new/src/gui-gnome/gui-windowset.c Sat Jun 12 17:39:10 1999 -@@ -0,0 +1,385 @@ -+/* -+ gui-windowset.c : irssi -+ -+ Copyright (C) 1999 Timo Sirainen -+ -+ This program is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 2 of the License, or -+ (at your option) any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program; if not, write to the Free Software -+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+*/ -+ -+#include "irssi.h" -+ -+static gchar mode_flags[] = "spmint"; -+static gchar *mode_tooltips[] = -+{ -+ N_("Secret"), -+ N_("Private"), -+ N_("Moderated"), -+ N_("Joining needs an invitation"), -+ N_("No external messages"), -+ N_("Only operators can change the topic") -+}; -+ -+static gint sig_topicentry_press(GtkWidget *entry, GdkEventButton *event) -+{ -+ gboolean editable; -+ -+ g_return_val_if_fail(entry != NULL, 0); -+ g_return_val_if_fail(event != NULL, 0); -+ -+ if (event->type == GDK_2BUTTON_PRESS) -+ { -+ editable = !(gboolean) GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(entry), "editable")); -+ gtk_object_set_data(GTK_OBJECT(entry), "editable", GINT_TO_POINTER((gint) editable)); -+ gtk_entry_set_editable(GTK_ENTRY(entry), editable); -+ } -+ -+ return 0; -+} -+ -+static void sig_topicentry_activated(GtkWidget *entry, WINDOW_REC *window) -+{ -+ CHANNEL_REC *channel; -+ -+ g_return_if_fail(entry != NULL); -+ g_return_if_fail(window != NULL); -+ -+ channel = window->active; -+ if (channel == NULL || (!channel->chanop && channel->mode_optopic)) -+ { -+ /* can't change topic. */ -+ gtk_entry_set_text(GTK_ENTRY(entry), -+ (channel == NULL || channel->topic == NULL) ? -+ "" : channel->topic); -+ return; -+ } -+ -+ signal_emit("command topic", 3, gtk_entry_get_text(GTK_ENTRY(entry)), -+ window->active->server, window->active); -+} -+ -+static void sig_modebutton_toggled(GtkToggleButton *button, gint mode) -+{ -+ WINDOW_REC *window; -+ NICK_REC *nick; -+ GString *str; -+ -+ g_return_if_fail(button != NULL); -+ if (gtk_object_get_data(GTK_OBJECT(button), "toggling")) return; -+ -+ window = gtk_object_get_data(GTK_OBJECT(button), "window"); -+ g_return_if_fail(window->active != NULL); -+ -+ nick = nicklist_find(window->active, window->active->server->nick); -+ if (!window->active->chanop) -+ { -+ /* can't change mode */ -+ gtk_object_set_data(GTK_OBJECT(button), "toggling", GINT_TO_POINTER(TRUE)); -+ gtk_toggle_button_set_active(button, !button->active); -+ gtk_object_set_data(GTK_OBJECT(button), "toggling", GINT_TO_POINTER(FALSE)); -+ return; -+ } -+ -+ str = g_string_new(NULL); -+ g_string_sprintf(str, "* %c%c", button->active ? '+' : '-', mode_flags[mode]); -+ -+ gtk_object_set_data(GTK_OBJECT(button), "toggling", GINT_TO_POINTER(TRUE)); -+ signal_emit("command mode", 3, str->str, window->active->server, window->active); -+ g_string_free(str, TRUE); -+ gtk_object_set_data(GTK_OBJECT(button), "toggling", GINT_TO_POINTER(FALSE)); -+} -+ -+GUI_WINDOW_REC *gui_windowset_create(MAIN_WINDOW_REC *parent) -+{ -+ WINDOW_REC *rec; -+ GUI_WINDOW_REC *gui; -+ GUI_WINDOW_VIEW_REC *view; -+ GtkWidget *hbox, *label; -+ GtkTooltips *tooltips; -+ gint num; -+ -+ if (parent == NULL) parent = mainwindow_create(); -+ -+ rec = ui_window_create(); -+ g_return_val_if_fail(rec != NULL, NULL); -+ -+ gui = g_new0(GUI_WINDOW_REC, 1); -+ gui->parent = parent; -+ -+ if (parent->children == NULL) parent->active = gui; -+ parent->children = g_list_append(parent->children, gui); -+ -+ gui->window = gtk_vbox_new(FALSE, 2); -+ gtk_container_border_width(GTK_CONTAINER(gui->window), 2); -+ -+ /* Add channel topic and modes */ -+ gui->channelwidget = gtk_hbox_new(FALSE, 0); -+ gtk_box_pack_start(GTK_BOX(gui->window), gui->channelwidget, FALSE, FALSE, 0); -+ -+ gui->serverlabel = gtk_label_new(""); -+ gtk_box_pack_start(GTK_BOX(gui->channelwidget), gui->serverlabel, FALSE, FALSE, 0); -+ -+ gui->topicentry = gtk_entry_new(); -+ gtk_entry_set_editable(GTK_ENTRY(gui->topicentry), FALSE); -+ gtk_signal_connect(GTK_OBJECT(gui->topicentry), "button_press_event", -+ GTK_SIGNAL_FUNC(sig_topicentry_press), rec); -+ gtk_signal_connect(GTK_OBJECT(gui->topicentry), "activate", -+ GTK_SIGNAL_FUNC(sig_topicentry_activated), rec); -+ gtk_box_pack_start(GTK_BOX(gui->channelwidget), gui->topicentry, TRUE, TRUE, 3); -+ -+ tooltips = gtk_tooltips_new(); -+ -+ for (num = 0; num < 6; num++) -+ { -+ gchar str[2]; -+ -+ str[0] = toupper(mode_flags[num]); str[1] = '\0'; -+ gui->modebuttons[num] = gtk_toggle_button_new_with_label(str); -+ gtk_tooltips_set_tip(tooltips, gui->modebuttons[num], mode_tooltips[num], NULL); -+ gtk_widget_set_usize(gui->modebuttons[num], 20, -1); -+ gtk_object_set_data(GTK_OBJECT(gui->modebuttons[num]), "window", rec); -+ gtk_signal_connect(GTK_OBJECT(gui->modebuttons[num]), "toggled", -+ GTK_SIGNAL_FUNC(sig_modebutton_toggled), GINT_TO_POINTER(num)); -+ gtk_box_pack_start(GTK_BOX(gui->channelwidget), gui->modebuttons[num], FALSE, FALSE, 0); -+ } -+ -+ /* create view for window */ -+ hbox = gtk_hbox_new(FALSE, 3); -+ gtk_box_pack_start(GTK_BOX(gui->window), hbox, TRUE, TRUE, 0); -+ -+ view = gui_window_view_create(rec, gui, hbox); -+ gui->active = view; -+ -+ gtk_widget_show_all(gui->window); -+ -+ /* Add nick list */ -+ gui->nickscrollbox = gtk_scrolled_window_new(NULL, NULL); -+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gui->nickscrollbox), -+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); -+ gtk_box_pack_start(GTK_BOX(hbox), gui->nickscrollbox, FALSE, FALSE, 0); -+ -+ gui->nicklist = gtk_clist_new(1); -+ gtk_container_add(GTK_CONTAINER(gui->nickscrollbox), gui->nicklist); -+ gtk_widget_show(gui->nicklist); -+ -+ gtk_widget_set_usize(gui->nickscrollbox, 120, -1); -+ -+ label = gtk_label_new(_("(none)")); -+ gtk_widget_show(label); -+ -+ if (g_list_first(parent->children)->next == NULL) -+ { -+ /* only one child, don't show the notebook tabs.. */ -+ gtk_notebook_set_show_tabs(GTK_NOTEBOOK(parent->notebook), FALSE); -+ gtk_notebook_set_show_border(GTK_NOTEBOOK(parent->notebook), FALSE); -+ } -+ else if (g_list_first(parent->children)->next->next == NULL) -+ { -+ /* two children, show the notebook tabs.. */ -+ gtk_notebook_set_show_tabs(GTK_NOTEBOOK(parent->notebook), TRUE); -+ gtk_notebook_set_show_border(GTK_NOTEBOOK(parent->notebook), TRUE); -+ } -+ -+ gtk_notebook_append_page(GTK_NOTEBOOK(parent->notebook), gui->window, label); -+ -+ gtk_widget_hide(gui->channelwidget); -+ -+ signal_emit("gui window created", 1, rec); -+ return gui; -+} -+ -+void gui_windowset_destroy(GUI_WINDOW_REC *window) -+{ -+ MAIN_WINDOW_REC *parent; -+ gint page; -+ -+ g_return_if_fail(window != NULL); -+ -+ if (window->destroying) return; -+ -+ parent = window->parent; -+ parent->children = g_list_remove(parent->children, window); -+ -+ signal_emit("gui window destroyed", 1, window); -+ -+ window->destroying = TRUE; -+ -+ page = gtk_notebook_page_num(GTK_NOTEBOOK(parent->notebook), window->window); -+ gtk_notebook_remove_page(GTK_NOTEBOOK(parent->notebook), page); -+ -+ while (window->views != NULL) -+ gui_window_view_destroy(window->views->data); -+ -+ g_free(window); -+ -+ if (parent->children == NULL) -+ mainwindow_destroy(parent); -+ else if (g_list_length(parent->children) == 1) -+ { -+ /* only one child left, hide the notebook tabs.. */ -+ gtk_notebook_set_show_tabs(GTK_NOTEBOOK(parent->notebook), FALSE); -+ gtk_notebook_set_show_border(GTK_NOTEBOOK(parent->notebook), FALSE); -+ } -+} -+ -+static gboolean gui_window_server_changed(WINDOW_REC *window) -+{ -+ MAIN_WINDOW_REC *parent; -+ SERVER_REC *server; -+ gint num; -+ -+ g_return_val_if_fail(window != NULL, FALSE); -+ -+ parent = WINDOW_GUI(window)->parent; -+ server = window->active->server; -+ -+ if (parent->usermodes[0] == NULL) return TRUE; -+ -+ for (num = 0; num < 4; num++) -+ gtk_object_set_data(GTK_OBJECT(parent->usermodes[num]), "toggling", GINT_TO_POINTER(TRUE)); -+ -+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(parent->usermodes[0]), -+ server == NULL ? FALSE : server->usermode_away); -+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(parent->usermodes[1]), -+ server == NULL ? FALSE : server->usermode_invisible); -+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(parent->usermodes[2]), -+ server == NULL ? FALSE : server->usermode_wallops); -+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(parent->usermodes[3]), -+ server == NULL ? FALSE : server->usermode_servernotes); -+ -+ for (num = 0; num < 4; num++) -+ gtk_object_set_data(GTK_OBJECT(parent->usermodes[num]), "toggling", GINT_TO_POINTER(FALSE)); -+ -+ return TRUE; -+} -+ -+static gboolean gui_windows_usermode_changed(SERVER_REC *server) -+{ -+ GList *winlist; -+ -+ for (winlist = g_list_first(mainwindows); winlist != NULL; winlist = winlist->next) -+ { -+ MAIN_WINDOW_REC *rec = winlist->data; -+ -+ if (server == rec->active->active->window->active->server) -+ signal_emit("window server changed", 1, rec->active); -+ } -+ -+ return TRUE; -+} -+ -+static gboolean signal_window_focused(WINDOW_REC *window) -+{ -+ MAIN_WINDOW_REC *mainwindow; -+ GUI_WINDOW_REC *gui; -+ CHANNEL_REC *channel; -+ -+ g_return_val_if_fail(window != NULL, FALSE); -+ -+ mainwindow = WINDOW_GUI(window)->parent; -+ channel = window->active; -+ -+ gui = mainwindow->active; -+ -+ /* remove old extra menus */ -+ if (mainwindow->extramenu != NULL) -+ { -+ window_menus_remove(mainwindow, mainwindow->extramenu); -+ g_free(mainwindow->extramenu); -+ mainwindow->extramenu = NULL; -+ } -+ if (channel == NULL) return TRUE; -+ -+ if (channel->type == CHANNEL_TYPE_CHANNEL) -+ { -+ /* Add channel menu */ -+ mainwindow->extramenu = g_strdup(channel_menu[0].label); -+ window_menus_insert(mainwindow, NULL, channel_menu, channel); -+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(channel_submenu[2].widget), -+ GTK_WIDGET_VISIBLE(gui->nickscrollbox)); -+ gtk_widget_show(gui->channelwidget); -+ } -+ else -+ { -+ gtk_widget_hide(gui->nickscrollbox); -+ gtk_widget_hide(gui->channelwidget); -+ if (channel->type == CHANNEL_TYPE_QUERY) -+ { -+ /* Add query menu */ -+ mainwindow->extramenu = g_strdup(query_menu[0].label); -+ window_menus_insert(mainwindow, NULL, query_menu, channel); -+ } -+ } -+ -+ if (CHANNEL_GUI(channel)->servermenu) -+ { -+ /* change server selection */ -+ gtk_option_menu_set_history(GTK_OPTION_MENU(mainwindow->servermenu), -+ g_list_index(servers, channel->server)); -+ gtk_widget_show(mainwindow->servermenu); -+ } -+ else -+ gtk_widget_hide(mainwindow->servermenu); -+ -+ /* draw title bar */ -+ signal_emit("channel topic changed", 1, window->active); -+ -+ return TRUE; -+} -+ -+static gboolean gui_server_looking(SERVER_REC *server) -+{ -+ GList *tmp, *sub; -+ -+ g_return_val_if_fail(server != NULL, FALSE); -+ -+ /* try to keep some server assigned to server menus.. */ -+ for (tmp = g_list_first(windows); tmp != NULL; tmp = tmp->next) -+ { -+ WINDOW_REC *win = tmp->data; -+ gboolean changed; -+ -+ changed = FALSE; -+ for (sub = g_list_first(win->channels); sub != NULL; sub = sub->next) -+ { -+ CHANNEL_REC *chan = sub->data; -+ -+ if (chan->server == NULL) -+ { -+ chan->server = server; -+ if (!changed) -+ signal_emit("window server changed", 1, win); -+ changed = TRUE; -+ } -+ } -+ } -+ -+ return TRUE; -+} -+ -+void gui_windowset_init(void) -+{ -+ signal_add("user mode changed", (SIGNAL_FUNC) gui_windows_usermode_changed); -+ signal_add("window server changed", (SIGNAL_FUNC) gui_window_server_changed); -+ signal_add("window focused", (SIGNAL_FUNC) signal_window_focused); -+ signal_add("server looking", (SIGNAL_FUNC) gui_server_looking); -+} -+ -+void gui_windowset_deinit(void) -+{ -+ signal_remove("user mode changed", (SIGNAL_FUNC) gui_windows_usermode_changed); -+ signal_remove("window server changed", (SIGNAL_FUNC) gui_window_server_changed); -+ signal_remove("window focused", (SIGNAL_FUNC) signal_window_focused); -+ signal_remove("server looking", (SIGNAL_FUNC) gui_server_looking); -+} -diff -Nru irssi-0.7.11/src/gui-gnome/gui-windowset.h irssi-0.7.11-new/src/gui-gnome/gui-windowset.h ---- irssi-0.7.11/src/gui-gnome/gui-windowset.h Thu Jan 1 02:00:00 1970 -+++ irssi-0.7.11-new/src/gui-gnome/gui-windowset.h Sat Jun 12 17:22:55 1999 -@@ -0,0 +1,32 @@ -+#ifndef __GUI_WINDOWSET_H -+#define __GUI_WINDOWSET_H -+ -+struct _GUI_WINDOW_REC -+{ -+ MAIN_WINDOW_REC *parent; -+ -+ GtkWidget *window; -+ GList *views; -+ GUI_WINDOW_VIEW_REC *active; -+ -+ GtkWidget *channelwidget; -+ GtkWidget *serverlabel; -+ GtkWidget *topicentry; -+ GtkWidget *modebuttons[6]; -+ -+ /* nicklist */ -+ GtkWidget *nickscrollbox; -+ GtkWidget *nicklist; -+ GdkPixmap *op_pixmap, *voice_pixmap; -+ GdkBitmap *op_mask, *voice_mask; -+ -+ gboolean destroying; -+}; -+ -+void gui_windowset_init(void); -+void gui_windowset_deinit(void); -+ -+GUI_WINDOW_REC *gui_windowset_create(MAIN_WINDOW_REC *parent); -+void gui_windowset_destroy(GUI_WINDOW_REC *window); -+ -+#endif -diff -Nru irssi-0.7.11/src/gui-gnome/gui-windows-view.c irssi-0.7.11-new/src/gui-gnome/gui-windows-view.c ---- irssi-0.7.11/src/gui-gnome/gui-windows-view.c Thu Jan 1 02:00:00 1970 -+++ irssi-0.7.11-new/src/gui-gnome/gui-windows-view.c Sat Jun 12 17:16:29 1999 -@@ -0,0 +1,454 @@ -+/* -+ gui-windows-view.c : irssi -+ -+ Copyright (C) 1999 Timo Sirainen -+ -+ This program is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 2 of the License, or -+ (at your option) any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program; if not, write to the Free Software -+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+*/ -+ -+#include "irssi.h" -+ -+#define iswordcut(a) (isspace((gint) a) || \ -+ (a) == '\n' || (a) == '\0' || (a) == '"' || \ -+ (a) == '(' || (a) == ')' || (a) == '[' || (a) == ']' || \ -+ (a) == '<' || (a) == '>') -+ -+#define URL_MAX_LENGTH 200 /*FIXME: no max. limits*/ -+ -+GList *window_views; -+ -+void gui_window_view_set_background_pixmap(GUI_WINDOW_VIEW_REC *view, gchar *path) -+{ -+ GtkStyle *style; -+ GdkPixmap *pixmap; -+ GdkBitmap *mask; -+#if defined (HAVE_IMLIB) || defined (HAVE_GNOME) -+ GdkImlibImage *img; -+#endif -+ -+ g_return_if_fail(view != NULL); -+ g_return_if_fail(path != NULL); -+ -+ if (view->pixmap != NULL && strcmp(view->pixmap, path) == 0) -+ { -+ /* same pixmap already set for this view.. */ -+ return; -+ } -+ if (view->pixmap != NULL) -+ g_free(view->pixmap); -+ view->pixmap = g_strdup(path); -+ -+#ifdef HAVE_GNOME -+ if (view->zvt) -+ { -+ zvt_term_set_background(ZVT_TERM(view->text), path, FALSE, FALSE); -+ return; -+ } -+#endif -+ -+ if (*path == '\0') -+ pixmap = NULL; -+ else -+ { -+#if defined (HAVE_IMLIB) || defined (HAVE_GNOME) -+ mask = NULL; -+ img = gdk_imlib_load_image(path); -+ if (img == NULL) -+ pixmap = NULL; -+ else -+ { -+ gdk_imlib_render(img, img->rgb_width, img->rgb_height); -+ pixmap = gdk_imlib_move_image(img); -+ gdk_imlib_destroy_image(img); -+ } -+#else -+ pixmap = gdk_pixmap_create_from_xpm(view->text->window, &mask, NULL, path); -+#endif -+ } -+ -+ style = gtk_style_copy(view->text->style); -+ gtk_style_ref(style); -+ style->bg_pixmap[GTK_STATE_NORMAL] = pixmap; -+ gtk_widget_set_style(view->text, style); -+ gtk_style_unref(style); -+} -+ -+static void gui_window_view_set_background(GUI_WINDOW_VIEW_REC *view) -+{ -+ GtkStyle *style; -+ gchar *path; -+ -+ g_return_if_fail(view != NULL); -+ -+#ifdef HAVE_GNOME -+ if (view->zvt) -+ { -+ if (toggle_use_transparency) -+ { -+ zvt_term_set_background(ZVT_TERM(view->text), 0, TRUE, toggle_shaded_transparency); -+ if (view->pixmap != NULL) -+ { -+ g_free(view->pixmap); -+ view->pixmap = NULL; -+ } -+ return; -+ } -+ } -+ else -+#endif -+ { -+ style = gtk_style_copy(view->text->style); -+ gtk_style_ref(style); -+ style->base[GTK_STATE_NORMAL] = bg_color;; -+ gtk_widget_set_style(view->text, style); -+ gtk_style_unref(style); -+ } -+ -+ path = convert_home(background_pixmap); -+ gui_window_view_set_background_pixmap(view, path); -+ g_free(path); -+} -+ -+static void init_colors(GtkWidget *window) -+{ -+ gint n; -+ -+ g_return_if_fail(window != NULL); -+ -+ for (n = 0; n < sizeof(setup_colors)/sizeof(setup_colors[0]); n++) -+ { -+ setup_colors[n].pixel = -+ (gulong)((setup_colors[n].red & 0xff00)*256 + -+ (setup_colors[n].green & 0xff00) + -+ (setup_colors[n].blue & 0xff00)/256); -+ gdk_color_alloc(gtk_widget_get_colormap(window), &setup_colors[n]); -+ } -+ -+ bg_color.pixel = -+ (gulong)((bg_color.red & 0xff00)*256 + -+ (bg_color.green & 0xff00) + -+ (bg_color.blue & 0xff00)/256); -+ gdk_color_alloc(gtk_widget_get_colormap(window), &bg_color); -+} -+ -+#ifdef HAVE_GNOME -+static void init_zvt_colors(ZvtTerm *zvt) -+{ -+ static gchar ansitab[16] = { 0, 4, 2, 6, 1, 5, 3, 7, 8, 12, 10, 14, 9, 13, 11, 15 }; -+ gushort zvt_red[18], zvt_green[18], zvt_blue[18]; -+ gint num; -+ -+ for (num = 0; num < 16; num++) -+ { -+ zvt_red[num] = (gushort) setup_colors[(gint) ansitab[num]].red; -+ zvt_green[num] = (gushort) setup_colors[(gint) ansitab[num]].green; -+ zvt_blue[num] = (gushort) setup_colors[(gint) ansitab[num]].blue; -+ } -+ -+ zvt_red[16] = zvt_green[16] = zvt_blue[16] = 0xffff; -+ zvt_red[17] = zvt_green[17] = zvt_blue[17] = 0; -+ -+ zvt_term_set_color_scheme(zvt, zvt_red, zvt_green, zvt_blue); -+} -+ -+/* signal: button pressed in text window */ -+static gint sig_text_butpress_zvt(GtkWidget *widget, GdkEventButton *event, WINDOW_REC *window) -+{ -+ gint x, y, len; -+ gchar *text, *word; -+ -+ g_return_val_if_fail(widget != NULL, 0); -+ g_return_val_if_fail(event != NULL, 0); -+ g_return_val_if_fail(window != NULL, 0); -+ -+ x = event->x / ZVT_TERM(widget)->charwidth; -+ y = event->y / ZVT_TERM(widget)->charheight; -+ -+ word = NULL; -+ -+ text = zvt_term_get_buffer(ZVT_TERM(widget), &len, VT_SELTYPE_CHAR, -+ 0, y, ZVT_TERM(widget)->grid_width-1, y); -+ if (text != NULL && len > 0) -+ { -+ len = x; -+ if (!iswordcut(text[x])) -+ while (x > 0 && !iswordcut(text[x-1])) x--; -+ while (!iswordcut(text[len])) len++; len -= x; -+ -+ word = g_new(gchar, len+1); -+ memcpy(word, text+x, len); word[len] = '\0'; -+ } -+ -+ if (event->button == 3 && toggle_show_menubar) -+ { -+ /* create popup menu */ -+ window_popupmenu_create(window->active, word, event); -+ gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "button_press_event"); -+ } -+ else if (word != NULL) -+ { -+ /* left mouse button clicked */ -+ word_clicked(window, word, event->type == GDK_2BUTTON_PRESS, event->button, NULL); -+ } -+ -+ if (word != NULL) g_free(word); -+ return 0; -+} -+#endif -+ -+/* signal: button pressed in text window */ -+static gint sig_text_butpress(GtkWidget *widget, GdkEventButton *event, GUI_WINDOW_VIEW_REC *view) -+{ -+ static gboolean cludging = FALSE; -+ GdkEventButton kludge_event; -+ -+ guint pos, spos, len; -+ gchar *text, *word; -+ -+ g_return_val_if_fail(widget != NULL, 0); -+ g_return_val_if_fail(event != NULL, 0); -+ g_return_val_if_fail(view != NULL, 0); -+ -+ /* so, here's the problem: we need know what word was just clicked, but -+ text widget haven't get button_press_event yet so cursor position is -+ still in the last clicked position.. We could use -+ gtk_signal_connect_after(), but if we create a popup menu with it, -+ text widget's selection gets broken, it never receives the -+ button_release_event .. We could also create the popup menu in -+ button_release_event but it seems to work in some weird way too .. -+ So this kludge seems to work best. */ -+ if (cludging) return 0; -+ -+ /* send faked left button click to text widget */ -+ cludging = TRUE; -+ memcpy(&kludge_event, event, sizeof(kludge_event)); -+ kludge_event.button = 1; -+ kludge_event.type = GDK_BUTTON_PRESS; -+ gtk_widget_event(widget, (GdkEvent *) &kludge_event); -+ kludge_event.type = GDK_BUTTON_RELEASE; -+ gtk_widget_event(widget, (GdkEvent *) &kludge_event); -+ cludging = FALSE; -+ -+ /* finished, cursor is now in right position! */ -+ -+ len = gtk_text_get_length(GTK_TEXT(view->text)); -+ pos = gtk_editable_get_position(GTK_EDITABLE(view->text)); -+ -+ word = NULL; -+ if (pos < len) -+ { -+ text = gtk_editable_get_chars(GTK_EDITABLE(view->text), pos < URL_MAX_LENGTH ? 0 : pos-URL_MAX_LENGTH, -+ pos+URL_MAX_LENGTH > len ? len : pos+URL_MAX_LENGTH); -+ len = spos = pos < URL_MAX_LENGTH ? pos : URL_MAX_LENGTH; -+ if (!iswordcut(text[spos])) -+ while (spos > 0 && !iswordcut(text[spos-1])) spos--; -+ while (!iswordcut(text[len])) len++; len -= spos; -+ -+ word = g_new(gchar, len+1); -+ memcpy(word, text+spos, len); word[len] = '\0'; -+ g_free(text); -+ } -+ -+ if (event->button == 3 && toggle_show_menubar) -+ { -+ /* create popup menu */ -+ window_popupmenu_create(view->window->active, word, event); -+ gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "button_press_event"); -+ } -+ else if (word != NULL) -+ { -+ /* left mouse button clicked */ -+ word_clicked(view->window, word, event->type == GDK_2BUTTON_PRESS, event->button, NULL); -+ } -+ -+ if (word != NULL) g_free(word); -+ return 0; -+} -+ -+GUI_WINDOW_VIEW_REC *gui_window_view_create(WINDOW_REC *window, GUI_WINDOW_REC *parent, GtkWidget *box) -+{ -+ GUI_WINDOW_VIEW_REC *rec; -+ GtkWidget *scrollwin; -+ -+ g_return_val_if_fail(parent != NULL, NULL); -+ -+ rec = g_new0(GUI_WINDOW_VIEW_REC, 1); -+ parent->views = g_list_append(parent->views, rec); -+ window_views = g_list_append(window_views, rec); -+ window->gui_data = rec; -+ -+ rec->window = window; -+ rec->windowset = parent; -+ rec->parent = parent->parent;; -+ -+ /* Text window */ -+ rec->zvt = toggle_use_zvt; -+#ifdef HAVE_GNOME -+ if (toggle_use_zvt) -+ { -+ GtkWidget *scrollbar; -+ -+ rec->text = zvt_term_new(); -+ gtk_signal_connect(GTK_OBJECT(rec->text), "button_press_event", -+ GTK_SIGNAL_FUNC(sig_text_butpress_zvt), window); -+ zvt_term_set_scrollback(ZVT_TERM(rec->text), max_textwidget_lines); -+ zvt_term_set_fonts(ZVT_TERM(rec->text), font_normal, font_bold); -+ zvt_term_set_blink(ZVT_TERM(rec->text), FALSE); -+ gtk_box_pack_start(GTK_BOX(box), rec->text, TRUE, TRUE, 0); -+ -+ scrollbar = gtk_vscrollbar_new(ZVT_TERM(rec->text)->adjustment); -+ gtk_box_pack_start(GTK_BOX(box), scrollbar, FALSE, FALSE, 0); -+ } -+ else -+#endif -+ { -+ rec->text = gtk_text_new(NULL, NULL); -+ gtk_signal_connect(GTK_OBJECT(rec->text), "button_press_event", -+ GTK_SIGNAL_FUNC(sig_text_butpress), rec); -+ gtk_text_set_word_wrap(GTK_TEXT(rec->text), TRUE); -+ -+ scrollwin = gtk_scrolled_window_new(NULL, NULL); -+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), -+ GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); -+ gtk_box_pack_start(GTK_BOX(box), scrollwin, TRUE, TRUE, 0); -+ gtk_container_add(GTK_CONTAINER(scrollwin), rec->text); -+ -+ init_colors(rec->text); -+ } -+ -+ gui_window_view_set_background(rec); -+ return rec; -+} -+ -+static gboolean gui_window_created(WINDOW_REC *window) -+{ -+ GUI_WINDOW_VIEW_REC *view; -+ GtkWidget *popup; -+ -+ g_return_val_if_fail(window != NULL, TRUE); -+ -+ /* there's only one view after window is created.. */ -+ view = WINDOW_GUI(window); -+ -+#ifdef HAVE_GNOME -+ if (view->zvt) -+ { -+ gtk_widget_realize(view->text); -+ init_zvt_colors(ZVT_TERM(view->text)); -+ vt_cursor_state(view->text, 0); -+ } -+#endif -+ -+ if (!toggle_show_menubar) -+ { -+ /* add popup menu created by mainwindow */ -+ popup = gtk_object_get_data(GTK_OBJECT(WINDOW_GUI(window)->parent->window), "popup"); -+ if (popup != NULL) gnome_popup_menu_attach(popup, view->text, view->parent); -+ } -+ -+ return TRUE; -+} -+ -+void gui_window_view_destroy(GUI_WINDOW_VIEW_REC *view) -+{ -+ WINDOW_REC *window; -+ GUI_WINDOW_REC *gui; -+ -+ if (view->destroying) return; -+ -+ window = view->window; -+ gui = view->windowset; -+ signal_emit("gui window view destroyed", 1, view); -+ -+ view->destroying = TRUE; -+ ui_window_destroy(window); -+ -+ gui->views = g_list_remove(gui->views, view); -+ window_views = g_list_remove(window_views, view); -+ -+ if (view->pixmap != NULL) g_free(view->pixmap); -+ g_list_free(view->linepos); -+ g_free(view); -+ -+ window->gui_data = NULL; -+ -+ if (gui->views == NULL) -+ gui_windowset_destroy(gui); -+} -+ -+static gboolean cmd_clear(gchar *data, SERVER_REC *server, CHANNEL_REC *channel) -+{ -+ WINDOW_REC *window; -+ GUI_WINDOW_VIEW_REC *view; -+ -+ g_return_val_if_fail(channel != NULL, FALSE); -+ -+ window = CHANNEL_PARENT(channel); -+ view = WINDOW_GUI(window); -+ -+#ifdef HAVE_GNOME -+ if (view->zvt) -+ { -+ zvt_term_set_scrollback(ZVT_TERM(view->text), 0); -+ zvt_term_feed(ZVT_TERM(view->text), "\033[H\033[2J", 7); -+ zvt_term_set_scrollback(ZVT_TERM(view->text), max_textwidget_lines); -+ } -+ else -+#endif -+ { -+ g_list_free(view->linepos); -+ view->linepos = NULL; -+ gtk_text_set_point(GTK_TEXT(view->text), 0); -+ gtk_text_forward_delete(GTK_TEXT(view->text), gtk_text_get_length(GTK_TEXT(view->text))); -+ } -+ window->lines = 0; -+ -+ return TRUE; -+} -+ -+static gboolean setup_changed(void) -+{ -+ GList *tmp; -+ -+ for (tmp = g_list_first(window_views); tmp != NULL; tmp = tmp->next) -+ { -+ GUI_WINDOW_VIEW_REC *view = tmp->data; -+ -+ gui_window_view_set_background(view); -+#ifdef HAVE_GNOME -+ if (view->zvt) -+ { -+ zvt_term_set_fonts(ZVT_TERM(view->text), font_normal, font_bold); -+ init_zvt_colors(ZVT_TERM(view->text)); -+ } -+#endif -+ } -+ -+ return TRUE; -+} -+ -+void gui_windows_view_init(void) -+{ -+ signal_add("gui window created", (SIGNAL_FUNC) gui_window_created); -+ signal_add("setup changed", (SIGNAL_FUNC) setup_changed); -+ signal_add("command clear", (SIGNAL_FUNC) cmd_clear); -+} -+ -+void gui_windows_view_deinit(void) -+{ -+ signal_remove("gui window created", (SIGNAL_FUNC) gui_window_created); -+ signal_remove("setup changed", (SIGNAL_FUNC) setup_changed); -+ signal_remove("command clear", (SIGNAL_FUNC) cmd_clear); -+} -diff -Nru irssi-0.7.11/src/gui-gnome/gui-windows-view.h irssi-0.7.11-new/src/gui-gnome/gui-windows-view.h ---- irssi-0.7.11/src/gui-gnome/gui-windows-view.h Thu Jan 1 02:00:00 1970 -+++ irssi-0.7.11-new/src/gui-gnome/gui-windows-view.h Sat Jun 12 17:23:39 1999 -@@ -0,0 +1,34 @@ -+#ifndef __GUI_WINDOWS_VIEW_H -+#define __GUI_WINDOWS_VIEW_H -+ -+#define WINDOW_GUI(a) ((GUI_WINDOW_VIEW_REC *) ((a)->gui_data)) -+ -+struct _GUI_WINDOW_VIEW_REC -+{ -+ WINDOW_REC *window; -+ GUI_WINDOW_REC *windowset; -+ MAIN_WINDOW_REC *parent; -+ -+ GtkWidget *text; -+ -+ gboolean zvt; /* text is a zvt widget */ -+ gchar *pixmap; /* current background pixmap */ -+ -+ GList *linepos; -+ gint lastlinelen; -+ -+ GtkWidget *snapshot; -+ gboolean destroying; -+}; -+ -+extern GList *window_views; -+ -+void gui_windows_view_init(void); -+void gui_windows_view_deinit(void); -+ -+GUI_WINDOW_VIEW_REC *gui_window_view_create(WINDOW_REC *window, GUI_WINDOW_REC *parent, GtkWidget *box); -+void gui_window_view_destroy(GUI_WINDOW_VIEW_REC *view); -+ -+void gui_window_view_set_background_pixmap(GUI_WINDOW_VIEW_REC *view, gchar *path); -+ -+#endif -diff -Nru irssi-0.7.11/src/gui-gnome/gui-windows.c irssi-0.7.11-new/src/gui-gnome/gui-windows.c ---- irssi-0.7.11/src/gui-gnome/gui-windows.c Sat May 15 21:38:30 1999 -+++ irssi-0.7.11-new/src/gui-gnome/gui-windows.c Thu Jan 1 02:00:00 1970 -@@ -1,750 +0,0 @@ --/* -- gui-windows.c : irssi -- -- Copyright (C) 1999 Timo Sirainen -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --*/ -- --#include "irssi.h" -- --#define iswordcut(a) (isspace((gint) a) || \ -- (a) == '\n' || (a) == '\0' || (a) == '"' || \ -- (a) == '(' || (a) == ')' || (a) == '[' || (a) == ']' || \ -- (a) == '<' || (a) == '>') -- --#define URL_MAX_LENGTH 200 /*FIXME: no max. limits*/ -- --static gchar mode_flags[] = "spmint"; --static gchar *mode_tooltips[] = --{ -- N_("Secret"), -- N_("Private"), -- N_("Moderated"), -- N_("Joining needs an invitation"), -- N_("No external messages"), -- N_("Only operators can change the topic") --}; -- --static void init_colors(GtkWidget *window) --{ -- gint n; -- -- g_return_if_fail(window != NULL); -- -- for (n = 0; n < sizeof(setup_colors)/sizeof(setup_colors[0]); n++) -- { -- setup_colors[n].pixel = -- (gulong)((setup_colors[n].red & 0xff00)*256 + -- (setup_colors[n].green & 0xff00) + -- (setup_colors[n].blue & 0xff00)/256); -- gdk_color_alloc(gtk_widget_get_colormap(window), &setup_colors[n]); -- } -- -- bg_color.pixel = -- (gulong)((bg_color.red & 0xff00)*256 + -- (bg_color.green & 0xff00) + -- (bg_color.blue & 0xff00)/256); -- gdk_color_alloc(gtk_widget_get_colormap(window), &bg_color); --} -- --void gui_window_set_background_pixmap(WINDOW_REC *window, gchar *path) --{ -- GUI_WINDOW_REC *gui; -- GtkStyle *style; -- GdkPixmap *pixmap; -- GdkBitmap *mask; --#if defined (HAVE_IMLIB) || defined (HAVE_GNOME) -- GdkImlibImage *img; --#endif -- -- g_return_if_fail(window != NULL); -- g_return_if_fail(path != NULL); -- -- gui = WINDOW_GUI(window); -- if (gui->pixmap != NULL && strcmp(gui->pixmap, path) == 0) -- { -- /* same pixmap already set for this window.. */ -- return; -- } -- if (gui->pixmap != NULL) -- g_free(gui->pixmap); -- gui->pixmap = g_strdup(path); -- --#ifdef HAVE_GNOME -- if (gui->zvt) -- { -- zvt_term_set_background(ZVT_TERM(gui->text), path, FALSE, FALSE); -- return; -- } --#endif -- -- if (*path == '\0') -- pixmap = NULL; -- else -- { --#if defined (HAVE_IMLIB) || defined (HAVE_GNOME) -- mask = NULL; -- img = gdk_imlib_load_image(path); -- if (img == NULL) -- pixmap = NULL; -- else -- { -- gdk_imlib_render(img, img->rgb_width, img->rgb_height); -- pixmap = gdk_imlib_move_image(img); -- gdk_imlib_destroy_image(img); -- } --#else -- pixmap = gdk_pixmap_create_from_xpm(gui->text->window, &mask, NULL, path); --#endif -- } -- -- style = gtk_style_copy(gui->text->style); -- gtk_style_ref(style); -- style->bg_pixmap[GTK_STATE_NORMAL] = pixmap; -- gtk_widget_set_style(gui->text, style); -- gtk_style_unref(style); --} -- --static void gui_window_set_background(WINDOW_REC *window) --{ -- GUI_WINDOW_REC *gui; -- GtkStyle *style; -- gchar *path; -- -- g_return_if_fail(window != NULL); -- -- gui = WINDOW_GUI(window); --#ifdef HAVE_GNOME -- if (gui->zvt) -- { -- if (toggle_use_transparency) -- { -- zvt_term_set_background(ZVT_TERM(gui->text), 0, TRUE, toggle_shaded_transparency); -- if (gui->pixmap != NULL) -- { -- g_free(gui->pixmap); -- gui->pixmap = NULL; -- } -- return; -- } -- } -- else --#endif -- { -- style = gtk_style_copy(gui->text->style); -- gtk_style_ref(style); -- style->base[GTK_STATE_NORMAL] = bg_color;; -- gtk_widget_set_style(gui->text, style); -- gtk_style_unref(style); -- } -- -- path = convert_home(background_pixmap); -- gui_window_set_background_pixmap(window, path); -- g_free(path); --} -- --#ifdef HAVE_GNOME --static void init_zvt_colors(ZvtTerm *zvt) --{ -- static gchar ansitab[16] = { 0, 4, 2, 6, 1, 5, 3, 7, 8, 12, 10, 14, 9, 13, 11, 15 }; -- gushort zvt_red[18], zvt_green[18], zvt_blue[18]; -- gint num; -- -- for (num = 0; num < 16; num++) -- { -- zvt_red[num] = (gushort) setup_colors[(gint) ansitab[num]].red; -- zvt_green[num] = (gushort) setup_colors[(gint) ansitab[num]].green; -- zvt_blue[num] = (gushort) setup_colors[(gint) ansitab[num]].blue; -- } -- -- zvt_red[16] = zvt_green[16] = zvt_blue[16] = 0xffff; -- zvt_red[17] = zvt_green[17] = zvt_blue[17] = 0; -- -- zvt_term_set_color_scheme(zvt, zvt_red, zvt_green, zvt_blue); --} -- --/* signal: button pressed in text window */ --static gint sig_text_butpress_zvt(GtkWidget *widget, GdkEventButton *event, WINDOW_REC *window) --{ -- gint x, y, len; -- gchar *text, *word; -- -- g_return_val_if_fail(widget != NULL, 0); -- g_return_val_if_fail(event != NULL, 0); -- g_return_val_if_fail(window != NULL, 0); -- -- x = event->x / ZVT_TERM(widget)->charwidth; -- y = event->y / ZVT_TERM(widget)->charheight; -- -- word = NULL; -- -- text = zvt_term_get_buffer(ZVT_TERM(widget), &len, VT_SELTYPE_CHAR, -- 0, y, ZVT_TERM(widget)->grid_width-1, y); -- if (text != NULL && len > 0) -- { -- len = x; -- if (!iswordcut(text[x])) -- while (x > 0 && !iswordcut(text[x-1])) x--; -- while (!iswordcut(text[len])) len++; len -= x; -- -- word = g_new(gchar, len+1); -- memcpy(word, text+x, len); word[len] = '\0'; -- } -- -- if (event->button == 3 && toggle_show_menubar) -- { -- /* create popup menu */ -- window_popupmenu_create(window->active, word, event); -- gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "button_press_event"); -- } -- else if (word != NULL) -- { -- /* left mouse button clicked */ -- word_clicked(window, word, event->type == GDK_2BUTTON_PRESS, event->button, NULL); -- } -- -- if (word != NULL) g_free(word); -- return 0; --} --#endif -- --/* signal: button pressed in text window */ --static gint sig_text_butpress(GtkWidget *widget, GdkEventButton *event, WINDOW_REC *window) --{ -- static gboolean cludging = FALSE; -- GdkEventButton kludge_event; -- -- guint pos, spos, len; -- gchar *text, *word; -- -- g_return_val_if_fail(widget != NULL, 0); -- g_return_val_if_fail(event != NULL, 0); -- g_return_val_if_fail(window != NULL, 0); -- -- /* so, here's the problem: we need know what word was just clicked, but -- text widget haven't get button_press_event yet so cursor position is -- still in the last clicked position.. We could use -- gtk_signal_connect_after(), but if we create a popup menu with it, -- text widget's selection gets broken, it never receives the -- button_release_event .. We could also create the popup menu in -- button_release_event but it seems to work in some weird way too .. -- So this kludge seems to work best. */ -- if (cludging) return 0; -- -- /* send faked left button click to text widget */ -- cludging = TRUE; -- memcpy(&kludge_event, event, sizeof(kludge_event)); -- kludge_event.button = 1; -- kludge_event.type = GDK_BUTTON_PRESS; -- gtk_widget_event(widget, (GdkEvent *) &kludge_event); -- kludge_event.type = GDK_BUTTON_RELEASE; -- gtk_widget_event(widget, (GdkEvent *) &kludge_event); -- cludging = FALSE; -- -- /* finished, cursor is now in right position! */ -- -- len = gtk_text_get_length(GTK_TEXT(WINDOW_GUI(window)->text)); -- pos = gtk_editable_get_position(GTK_EDITABLE(WINDOW_GUI(window)->text)); -- -- word = NULL; -- if (pos < len) -- { -- text = gtk_editable_get_chars(GTK_EDITABLE(WINDOW_GUI(window)->text), pos < URL_MAX_LENGTH ? 0 : pos-URL_MAX_LENGTH, -- pos+URL_MAX_LENGTH > len ? len : pos+URL_MAX_LENGTH); -- len = spos = pos < URL_MAX_LENGTH ? pos : URL_MAX_LENGTH; -- if (!iswordcut(text[spos])) -- while (spos > 0 && !iswordcut(text[spos-1])) spos--; -- while (!iswordcut(text[len])) len++; len -= spos; -- -- word = g_new(gchar, len+1); -- memcpy(word, text+spos, len); word[len] = '\0'; -- g_free(text); -- } -- -- if (event->button == 3 && toggle_show_menubar) -- { -- /* create popup menu */ -- window_popupmenu_create(window->active, word, event); -- gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "button_press_event"); -- } -- else if (word != NULL) -- { -- /* left mouse button clicked */ -- word_clicked(window, word, event->type == GDK_2BUTTON_PRESS, event->button, NULL); -- } -- -- if (word != NULL) g_free(word); -- return 0; --} -- --static gint sig_topicentry_press(GtkWidget *entry, GdkEventButton *event) --{ -- gboolean editable; -- -- g_return_val_if_fail(entry != NULL, 0); -- g_return_val_if_fail(event != NULL, 0); -- -- if (event->type == GDK_2BUTTON_PRESS) -- { -- editable = !(gboolean) GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(entry), "editable")); -- gtk_object_set_data(GTK_OBJECT(entry), "editable", GINT_TO_POINTER((gint) editable)); -- gtk_entry_set_editable(GTK_ENTRY(entry), editable); -- } -- -- return 0; --} -- --static void sig_topicentry_activated(GtkWidget *entry, WINDOW_REC *window) --{ -- CHANNEL_REC *channel; -- -- g_return_if_fail(entry != NULL); -- g_return_if_fail(window != NULL); -- -- channel = window->active; -- if (channel == NULL || (!channel->chanop && channel->mode_optopic)) -- { -- /* can't change topic. */ -- gtk_entry_set_text(GTK_ENTRY(entry), -- (channel == NULL || channel->topic == NULL) ? -- "" : channel->topic); -- return; -- } -- -- signal_emit("command topic", 3, gtk_entry_get_text(GTK_ENTRY(entry)), -- window->active->server, window->active); --} -- --static void sig_modebutton_toggled(GtkToggleButton *button, gint mode) --{ -- WINDOW_REC *window; -- NICK_REC *nick; -- GString *str; -- -- g_return_if_fail(button != NULL); -- if (gtk_object_get_data(GTK_OBJECT(button), "toggling")) return; -- -- window = gtk_object_get_data(GTK_OBJECT(button), "window"); -- g_return_if_fail(window->active != NULL); -- -- nick = nicklist_find(window->active, window->active->server->nick); -- if (!window->active->chanop) -- { -- /* can't change mode */ -- gtk_object_set_data(GTK_OBJECT(button), "toggling", GINT_TO_POINTER(TRUE)); -- gtk_toggle_button_set_active(button, !button->active); -- gtk_object_set_data(GTK_OBJECT(button), "toggling", GINT_TO_POINTER(FALSE)); -- return; -- } -- -- str = g_string_new(NULL); -- g_string_sprintf(str, "* %c%c", button->active ? '+' : '-', mode_flags[mode]); -- -- gtk_object_set_data(GTK_OBJECT(button), "toggling", GINT_TO_POINTER(TRUE)); -- signal_emit("command mode", 3, str->str, window->active->server, window->active); -- g_string_free(str, TRUE); -- gtk_object_set_data(GTK_OBJECT(button), "toggling", GINT_TO_POINTER(FALSE)); --} -- --WINDOW_REC *gui_window_create(MAIN_WINDOW_REC *parent) --{ -- WINDOW_REC *rec; -- GUI_WINDOW_REC *gui; -- GtkWidget *hbox, *scrollwin, *label; -- GtkTooltips *tooltips; -- gint num; -- -- if (parent == NULL) parent = mainwindow_create(); -- -- rec = ui_window_create(); -- g_return_val_if_fail(rec != NULL, NULL); -- -- gui = g_new0(GUI_WINDOW_REC, 1); -- rec->gui_data = gui; -- gui->parent = parent; -- -- if (parent->children == NULL) parent->active = rec; -- parent->children = g_list_append(parent->children, rec); -- -- gui->window = gtk_vbox_new(FALSE, 2); -- gtk_container_border_width(GTK_CONTAINER(gui->window), 2); -- -- /* Add channel topic and modes */ -- gui->channelwidget = gtk_hbox_new(FALSE, 0); -- gtk_box_pack_start(GTK_BOX(gui->window), gui->channelwidget, FALSE, FALSE, 0); -- -- gui->serverlabel = gtk_label_new(""); -- gtk_box_pack_start(GTK_BOX(gui->channelwidget), gui->serverlabel, FALSE, FALSE, 0); -- -- gui->topicentry = gtk_entry_new(); -- gtk_entry_set_editable(GTK_ENTRY(gui->topicentry), FALSE); -- gtk_signal_connect(GTK_OBJECT(gui->topicentry), "button_press_event", -- GTK_SIGNAL_FUNC(sig_topicentry_press), rec); -- gtk_signal_connect(GTK_OBJECT(gui->topicentry), "activate", -- GTK_SIGNAL_FUNC(sig_topicentry_activated), rec); -- gtk_box_pack_start(GTK_BOX(gui->channelwidget), gui->topicentry, TRUE, TRUE, 3); -- -- tooltips = gtk_tooltips_new(); -- -- for (num = 0; num < 6; num++) -- { -- gchar str[2]; -- -- str[0] = toupper(mode_flags[num]); str[1] = '\0'; -- gui->modebuttons[num] = gtk_toggle_button_new_with_label(str); -- gtk_tooltips_set_tip(tooltips, gui->modebuttons[num], mode_tooltips[num], NULL); -- gtk_widget_set_usize(gui->modebuttons[num], 20, -1); -- gtk_object_set_data(GTK_OBJECT(gui->modebuttons[num]), "window", rec); -- gtk_signal_connect(GTK_OBJECT(gui->modebuttons[num]), "toggled", -- GTK_SIGNAL_FUNC(sig_modebutton_toggled), GINT_TO_POINTER(num)); -- gtk_box_pack_start(GTK_BOX(gui->channelwidget), gui->modebuttons[num], FALSE, FALSE, 0); -- } -- -- /* Text window */ -- hbox = gtk_hbox_new(FALSE, 3); -- gtk_box_pack_start(GTK_BOX(gui->window), hbox, TRUE, TRUE, 0); -- -- gui->zvt = toggle_use_zvt; --#ifdef HAVE_GNOME -- if (toggle_use_zvt) -- { -- GtkWidget *scrollbar; -- -- gui->text = zvt_term_new(); -- gtk_signal_connect(GTK_OBJECT(gui->text), "button_press_event", -- GTK_SIGNAL_FUNC(sig_text_butpress_zvt), rec); -- zvt_term_set_scrollback(ZVT_TERM(gui->text), max_textwidget_lines); -- zvt_term_set_fonts(ZVT_TERM(gui->text), font_normal, font_bold); -- zvt_term_set_blink(ZVT_TERM(gui->text), FALSE); -- gtk_box_pack_start(GTK_BOX(hbox), gui->text, TRUE, TRUE, 0); -- -- scrollbar = gtk_vscrollbar_new(ZVT_TERM(gui->text)->adjustment); -- gtk_box_pack_start(GTK_BOX(hbox), scrollbar, FALSE, FALSE, 0); -- } -- else --#endif -- { -- gui->text = gtk_text_new(NULL, NULL); -- gtk_signal_connect(GTK_OBJECT(gui->text), "button_press_event", -- GTK_SIGNAL_FUNC(sig_text_butpress), rec); -- gtk_text_set_word_wrap(GTK_TEXT(gui->text), TRUE); -- -- scrollwin = gtk_scrolled_window_new(NULL, NULL); -- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), -- GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); -- gtk_box_pack_start(GTK_BOX(hbox), scrollwin, TRUE, TRUE, 0); -- gtk_container_add(GTK_CONTAINER(scrollwin), gui->text); -- -- init_colors(gui->text); -- } -- gui_window_set_background(rec); -- -- gtk_widget_show_all(gui->window); -- -- /* Add nick list */ -- gui->nickscrollbox = gtk_scrolled_window_new(NULL, NULL); -- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gui->nickscrollbox), -- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); -- gtk_box_pack_start(GTK_BOX(hbox), gui->nickscrollbox, FALSE, FALSE, 0); -- -- gui->nicklist = gtk_clist_new(1); -- gtk_container_add(GTK_CONTAINER(gui->nickscrollbox), gui->nicklist); -- gtk_widget_show(gui->nicklist); -- -- gtk_widget_set_usize(gui->nickscrollbox, 120, -1); -- -- label = gtk_label_new(_("(none)")); -- gtk_widget_show(label); -- -- if (g_list_first(parent->children)->next == NULL) -- { -- /* only one child, don't show the notebook tabs.. */ -- gtk_notebook_set_show_tabs(GTK_NOTEBOOK(parent->notebook), FALSE); -- gtk_notebook_set_show_border(GTK_NOTEBOOK(parent->notebook), FALSE); -- } -- else if (g_list_first(parent->children)->next->next == NULL) -- { -- /* two children, show the notebook tabs.. */ -- gtk_notebook_set_show_tabs(GTK_NOTEBOOK(parent->notebook), TRUE); -- gtk_notebook_set_show_border(GTK_NOTEBOOK(parent->notebook), TRUE); -- } -- -- gtk_notebook_append_page(GTK_NOTEBOOK(parent->notebook), gui->window, label); -- --#ifdef HAVE_GNOME -- if (gui->zvt) -- { -- gtk_widget_realize(gui->text); -- init_zvt_colors(ZVT_TERM(gui->text)); -- vt_cursor_state(gui->text, 0); -- } --#endif -- -- if (!toggle_show_menubar) -- { -- GtkWidget *popup; -- -- /* add popup menu created by mainwindow */ -- popup = gtk_object_get_data(GTK_OBJECT(parent->window), "popup"); -- if (popup != NULL) gnome_popup_menu_attach(popup, gui->text, parent); -- } -- -- gtk_widget_hide(gui->channelwidget); -- -- signal_emit("gui window created", 1, rec); -- return rec; --} -- --void gui_window_destroy(WINDOW_REC *window) --{ -- MAIN_WINDOW_REC *parent; -- GUI_WINDOW_REC *gui; -- gint page; -- -- g_return_if_fail(window != NULL); -- if (WINDOW_GUI(window)->destroying) return; -- -- gui = WINDOW_GUI(window); -- parent = gui->parent; -- parent->children = g_list_remove(parent->children, window); -- -- signal_emit("gui window destroyed", 1, window); -- -- gui->destroying = TRUE; -- ui_window_destroy(window); -- -- page = gtk_notebook_page_num(GTK_NOTEBOOK(parent->notebook), gui->window); -- gtk_notebook_remove_page(GTK_NOTEBOOK(parent->notebook), page); -- -- if (gui->pixmap != NULL) g_free(gui->pixmap); -- g_free(gui); -- window->gui_data = NULL; -- -- if (parent->children == NULL) -- mainwindow_destroy(parent); -- else if (g_list_length(parent->children) == 1) -- { -- /* only one child left, hide the notebook tabs.. */ -- gtk_notebook_set_show_tabs(GTK_NOTEBOOK(parent->notebook), FALSE); -- gtk_notebook_set_show_border(GTK_NOTEBOOK(parent->notebook), FALSE); -- } --} -- --static gboolean gui_window_server_changed(WINDOW_REC *window) --{ -- MAIN_WINDOW_REC *parent; -- SERVER_REC *server; -- gint num; -- -- g_return_val_if_fail(window != NULL, FALSE); -- -- parent = WINDOW_GUI(window)->parent; -- server = window->active->server; -- -- if (parent->usermodes[0] == NULL) return TRUE; -- -- for (num = 0; num < 4; num++) -- gtk_object_set_data(GTK_OBJECT(parent->usermodes[num]), "toggling", GINT_TO_POINTER(TRUE)); -- -- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(parent->usermodes[0]), -- server == NULL ? FALSE : server->usermode_away); -- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(parent->usermodes[1]), -- server == NULL ? FALSE : server->usermode_invisible); -- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(parent->usermodes[2]), -- server == NULL ? FALSE : server->usermode_wallops); -- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(parent->usermodes[3]), -- server == NULL ? FALSE : server->usermode_servernotes); -- -- for (num = 0; num < 4; num++) -- gtk_object_set_data(GTK_OBJECT(parent->usermodes[num]), "toggling", GINT_TO_POINTER(FALSE)); -- -- return TRUE; --} -- --static gboolean gui_windows_usermode_changed(SERVER_REC *server) --{ -- GList *winlist; -- -- for (winlist = g_list_first(mainwindows); winlist != NULL; winlist = winlist->next) -- { -- MAIN_WINDOW_REC *rec = winlist->data; -- -- if (server == rec->active->active->server) -- signal_emit("window server changed", 1, rec->active); -- } -- -- return TRUE; --} -- --static gboolean cmd_clear(gchar *data, SERVER_REC *server, CHANNEL_REC *channel) --{ -- WINDOW_REC *window; -- GUI_WINDOW_REC *gui; -- -- g_return_val_if_fail(channel != NULL, FALSE); -- -- window = CHANNEL_PARENT(channel); -- gui = WINDOW_GUI(window); -- --#ifdef HAVE_GNOME -- if (gui->zvt) -- { -- zvt_term_set_scrollback(ZVT_TERM(gui->text), 0); -- zvt_term_feed(ZVT_TERM(gui->text), "\033[H\033[2J", 7); -- zvt_term_set_scrollback(ZVT_TERM(gui->text), max_textwidget_lines); -- } -- else --#endif -- { -- g_list_free(gui->linepos); -- gui->linepos = NULL; -- gtk_text_set_point(GTK_TEXT(gui->text), 0); -- gtk_text_forward_delete(GTK_TEXT(gui->text), gtk_text_get_length(GTK_TEXT(gui->text))); -- } -- window->lines = 0; -- -- return TRUE; --} -- --static gboolean signal_window_focused(WINDOW_REC *window) --{ -- MAIN_WINDOW_REC *mainwindow; -- GUI_WINDOW_REC *gui; -- CHANNEL_REC *channel; -- -- g_return_val_if_fail(window != NULL, FALSE); -- -- mainwindow = WINDOW_GUI(window)->parent; -- channel = window->active; -- -- gui = WINDOW_GUI(mainwindow->active); -- -- /* remove old extra menus */ -- if (mainwindow->extramenu != NULL) -- { -- window_menus_remove(mainwindow, mainwindow->extramenu); -- g_free(mainwindow->extramenu); -- mainwindow->extramenu = NULL; -- } -- if (channel == NULL) return TRUE; -- -- if (channel->type == CHANNEL_TYPE_CHANNEL) -- { -- /* Add channel menu */ -- mainwindow->extramenu = g_strdup(channel_menu[0].label); -- window_menus_insert(mainwindow, NULL, channel_menu, channel); -- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(channel_submenu[2].widget), -- GTK_WIDGET_VISIBLE(gui->nickscrollbox)); -- gtk_widget_show(gui->channelwidget); -- } -- else -- { -- gtk_widget_hide(gui->nickscrollbox); -- gtk_widget_hide(gui->channelwidget); -- if (channel->type == CHANNEL_TYPE_QUERY) -- { -- /* Add query menu */ -- mainwindow->extramenu = g_strdup(query_menu[0].label); -- window_menus_insert(mainwindow, NULL, query_menu, channel); -- } -- } -- -- if (CHANNEL_GUI(channel)->servermenu) -- { -- /* change server selection */ -- gtk_option_menu_set_history(GTK_OPTION_MENU(mainwindow->servermenu), -- g_list_index(servers, channel->server)); -- gtk_widget_show(mainwindow->servermenu); -- } -- else -- gtk_widget_hide(mainwindow->servermenu); -- -- /* draw title bar */ -- signal_emit("channel topic changed", 1, window->active); -- -- return TRUE; --} -- --static gboolean gui_windows_setup_changed(void) --{ -- GList *tmp; -- -- for (tmp = g_list_first(windows); tmp != NULL; tmp = tmp->next) -- { -- WINDOW_REC *rec = tmp->data; -- -- gui_window_set_background(rec); --#ifdef HAVE_GNOME -- if (WINDOW_GUI(rec)->zvt) -- { -- zvt_term_set_fonts(ZVT_TERM(WINDOW_GUI(rec)->text), font_normal, font_bold); -- init_zvt_colors(ZVT_TERM(WINDOW_GUI(rec)->text)); -- } --#endif -- } -- -- return TRUE; --} -- --static gboolean gui_server_looking(SERVER_REC *server) --{ -- GList *tmp, *sub; -- -- g_return_val_if_fail(server != NULL, FALSE); -- -- /* try to keep some server assigned to server menus.. */ -- for (tmp = g_list_first(windows); tmp != NULL; tmp = tmp->next) -- { -- WINDOW_REC *win = tmp->data; -- gboolean changed; -- -- changed = FALSE; -- for (sub = g_list_first(win->channels); sub != NULL; sub = sub->next) -- { -- CHANNEL_REC *chan = sub->data; -- -- if (chan->server == NULL) -- { -- chan->server = server; -- if (!changed) -- signal_emit("window server changed", 1, win); -- changed = TRUE; -- } -- } -- } -- -- return TRUE; --} -- --void gui_windows_init(void) --{ -- signal_add("setup changed", (SIGNAL_FUNC) gui_windows_setup_changed); -- signal_add("user mode changed", (SIGNAL_FUNC) gui_windows_usermode_changed); -- signal_add("window server changed", (SIGNAL_FUNC) gui_window_server_changed); -- signal_add("window focused", (SIGNAL_FUNC) signal_window_focused); -- signal_add("command clear", (SIGNAL_FUNC) cmd_clear); -- signal_add("server looking", (SIGNAL_FUNC) gui_server_looking); --} -- --void gui_windows_deinit(void) --{ -- signal_remove("setup changed", (SIGNAL_FUNC) gui_windows_setup_changed); -- signal_remove("user mode changed", (SIGNAL_FUNC) gui_windows_usermode_changed); -- signal_remove("window server changed", (SIGNAL_FUNC) gui_window_server_changed); -- signal_remove("window focused", (SIGNAL_FUNC) signal_window_focused); -- signal_remove("command clear", (SIGNAL_FUNC) cmd_clear); -- signal_remove("server looking", (SIGNAL_FUNC) gui_server_looking); --} -diff -Nru irssi-0.7.11/src/gui-gnome/gui-windows.h irssi-0.7.11-new/src/gui-gnome/gui-windows.h ---- irssi-0.7.11/src/gui-gnome/gui-windows.h Thu May 13 13:24:58 1999 -+++ irssi-0.7.11-new/src/gui-gnome/gui-windows.h Thu Jan 1 02:00:00 1970 -@@ -1,44 +0,0 @@ --#ifndef __GUI_WINDOWS_H --#define __GUI_WINDOWS_H -- --#define WINDOW_GUI(a) ((GUI_WINDOW_REC *) ((a)->gui_data)) -- --typedef struct --{ -- MAIN_WINDOW_REC *parent; -- -- GtkWidget *window; -- GtkWidget *text; -- -- gboolean zvt; /* text is a zvt widget */ -- gchar *pixmap; /* current background pixmap */ -- -- GtkWidget *channelwidget; -- GtkWidget *serverlabel; -- GtkWidget *topicentry; -- GtkWidget *modebuttons[6]; -- -- /* nicklist */ -- GtkWidget *nickscrollbox; -- GtkWidget *nicklist; -- GdkPixmap *op_pixmap, *voice_pixmap; -- GdkBitmap *op_mask, *voice_mask; -- -- GList *linepos; -- gint lastlinelen; -- -- GtkWidget *snapshot; -- gboolean destroying; -- gfloat sb_value; /* to fix those scrollbar problems... */ --} --GUI_WINDOW_REC; -- --void gui_windows_init(void); --void gui_windows_deinit(void); -- --WINDOW_REC *gui_window_create(MAIN_WINDOW_REC *parent); --void gui_window_destroy(WINDOW_REC *window); -- --void gui_window_set_background_pixmap(WINDOW_REC *window, gchar *path); -- --#endif |