diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2011-05-16 15:33:44 +0200 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2011-05-16 15:33:44 +0200 |
commit | e3e20f2b60972bcaa845d1000fe615498dd2cef5 (patch) | |
tree | f6ee65eeaa3d5a9b0f9694c10b7ad538870d0da0 | |
parent | bd1db541f782c8ec9a5545bb9ba7f49870c43574 (diff) | |
download | weechat-e3e20f2b60972bcaa845d1000fe615498dd2cef5.zip |
core: add horizontal scrolling for buffers with free content (command /window scroll_horiz) (task #11112)
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | doc/de/autogen/user/weechat_commands.txt | 71 | ||||
-rw-r--r-- | doc/en/autogen/user/weechat_commands.txt | 7 | ||||
-rw-r--r-- | doc/fr/autogen/user/weechat_commands.txt | 5 | ||||
-rw-r--r-- | doc/it/autogen/user/weechat_commands.txt | 73 | ||||
-rw-r--r-- | po/cs.po | 14 | ||||
-rw-r--r-- | po/de.po | 14 | ||||
-rw-r--r-- | po/es.po | 14 | ||||
-rw-r--r-- | po/fr.po | 22 | ||||
-rw-r--r-- | po/hu.po | 12 | ||||
-rw-r--r-- | po/it.po | 14 | ||||
-rw-r--r-- | po/pl.po | 14 | ||||
-rw-r--r-- | po/pt_BR.po | 12 | ||||
-rw-r--r-- | po/ru.po | 12 | ||||
-rw-r--r-- | po/weechat.pot | 12 | ||||
-rw-r--r-- | src/core/wee-command.c | 64 | ||||
-rw-r--r-- | src/gui/curses/gui-curses-chat.c | 7 | ||||
-rw-r--r-- | src/gui/gui-window.c | 72 | ||||
-rw-r--r-- | src/gui/gui-window.h | 3 |
19 files changed, 304 insertions, 142 deletions
@@ -1,12 +1,14 @@ WeeChat ChangeLog ================= Sébastien Helleu <flashcode@flashtux.org> -v0.3.6-dev, 2011-05-15 +v0.3.6-dev, 2011-05-16 Version 0.3.6 (under dev!) -------------------------- +* core: add horizontal scrolling for buffers with free content (command + /window scroll_horiz) (task #11112) * api: fix bug with function config_set_desc_plugin (use immediately description for option when function is called) diff --git a/doc/de/autogen/user/weechat_commands.txt b/doc/de/autogen/user/weechat_commands.txt index 230a1003d..d8decb1a5 100644 --- a/doc/de/autogen/user/weechat_commands.txt +++ b/doc/de/autogen/user/weechat_commands.txt @@ -526,46 +526,49 @@ Beispiele: merge [all] page_up|page_down refresh - scroll|scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|scroll_next_highlight + scroll [+/-]<value>[s|m|h|d|M|y] + scroll_horiz [+/-]<value>[%] + scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|scroll_next_highlight swap [up|down|left|right] zoom - list: listet die geöffneten Fenster (ohne Angabe von Parametern wird diese Funktion aufgerufen) - -1: springt zum vorherigen Fenster - +1: springt zum nächsten Fenster - b#: springt zum nächsten Fenster, welches die Buffer Nummer # besitzt - up: wechselt zum Fenster über dem aktuellen - down: wechselt zum Fenster unter dem aktuellen - left: wechselt zum linken Fenster - right: wechselt zum rechten Fenster - splith: teilt das aktuelle Fenster horizontal - splitv: teilt das aktuelle Fenster vertikal - resize: verändert die Größe des aktuellen Fensters. Die neue Größe des Fensters ist prozentual <pct> zum Stammfensters groß - balance: passt die Größe aller Fenster an - merge: vereinigt Fenster miteinander (all = alle Fenster vereinigen) - page_up: scrollt eine Seite nach oben - page_down: scrollt eine Seite nach unten - refresh: Seite wird neu aufgebaut - scroll: scrollt eine Anzahl an Zeilen (+/-N) oder zu einer gewissen Zeit: s=Sekunden, m=Minuten, h=Stunden, d=Tage, M=Monate, y=Jahre - scroll_up: scrollt ein paar Zeilen nach oben - scroll_down: scrollt ein paar Zeilen nach unten - scroll_top: scrollt zum Anfang des Buffers -scroll_bottom: scrollt zum Ende des Buffers -scroll_previous_highlight: scrollt zum vorherigen Hightlight -scroll_next_highlight: scrollt zum nächsten Highlight - swap: tauscht die Buffer von zwei Fenstern (mit optionaler Angabe für das Zielfenster) - zoom: vergrößert auf Fenster - -Bei splith und splitv gibt "pct" die neue Größe des Fensters im Verhältnis zur aktuellen Größe an. Zum Beispiel würde ein Wert von 25 bedeuten, dass das neue Fenster nur noch ein Viertel der Größe des alten Fensters hat. - -Beispiele: - Springt zum Fenster mit dem Buffer #1: + list: list opened windows (without argument, this list is displayed) + -1: jump to previous window + +1: jump to next window + b#: jump to next window displaying buffer number # + up: switch to window above current one + down: switch to window below current one + left: switch to window on the left + right: switch to window on the right + splith: split current window horizontally + splitv: split current window vertically + resize: resize window size, new size is <pct> percentage of parent window + balance: balance the sizes of all windows + merge: merge window with another (all = keep only one window) + page_up: scroll one page up + page_down: scroll one page down + refresh: refresh screen + scroll: scroll a number of lines (+/-N) or with time: s=seconds, m=minutes, h=hours, d=days, M=months, y=years + scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage of window size (this scrolling is possible only on buffers with free content) + scroll_up: scroll a few lines up + scroll_down: scroll a few lines down + scroll_top: scroll to top of buffer +scroll_bottom: scroll to bottom of buffer +scroll_previous_highlight: scroll to previous highlight +scroll_next_highlight: scroll to next highlight + swap: swap buffers of two windows (with optional direction for target window) + zoom: zoom on window + +For splith and splitv, pct is a percentage which represents size of new window, computed with current window as size reference. For example 25 means create a new window with size = current_size / 4 + +Examples: + jump to window displaying buffer #1: /window b1 - Scrollt zwei Zeilen hoch: + scroll 2 lines up: /window scroll -2 - Scrollt zwei Tage hoch: /window scroll -2d + scroll 2 days up: /window scroll -2d - Scrollt zum Beginn des aktuellen Tages: + scroll to beginning of current day: /window scroll -d ........................................ diff --git a/doc/en/autogen/user/weechat_commands.txt b/doc/en/autogen/user/weechat_commands.txt index be0c4520b..7748db132 100644 --- a/doc/en/autogen/user/weechat_commands.txt +++ b/doc/en/autogen/user/weechat_commands.txt @@ -526,7 +526,9 @@ Examples: merge [all] page_up|page_down refresh - scroll|scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|scroll_next_highlight + scroll [+/-]<value>[s|m|h|d|M|y] + scroll_horiz [+/-]<value>[%] + scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|scroll_next_highlight swap [up|down|left|right] zoom @@ -546,7 +548,8 @@ Examples: page_up: scroll one page up page_down: scroll one page down refresh: refresh screen - scroll: scroll number of lines (+/-N) or with time: s=seconds, m=minutes, h=hours, d=days, M=months, y=years + scroll: scroll a number of lines (+/-N) or with time: s=seconds, m=minutes, h=hours, d=days, M=months, y=years + scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage of window size (this scrolling is possible only on buffers with free content) scroll_up: scroll a few lines up scroll_down: scroll a few lines down scroll_top: scroll to top of buffer diff --git a/doc/fr/autogen/user/weechat_commands.txt b/doc/fr/autogen/user/weechat_commands.txt index d8ec038a5..f43f65bca 100644 --- a/doc/fr/autogen/user/weechat_commands.txt +++ b/doc/fr/autogen/user/weechat_commands.txt @@ -526,7 +526,9 @@ Exemples: merge [all] page_up|page_down refresh - scroll|scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|scroll_next_highlight + scroll [+/-]<valeur>[s|m|h|d|M|y] + scroll_horiz [+/-]<valeur>[%] + scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|scroll_next_highlight swap [up|down|left|right] zoom @@ -547,6 +549,7 @@ Exemples: page_down: faire défiler d'une page vers le bas refresh: redessiner l'écran scroll: faire défiler d'un nombre de lignes (+/-N) ou avec du temps: s=secondes, m=minutes, h=heures, d=jours, M=mois, y=année + scroll_horiz: faire défiler horizontalement d'un nombre de colonnes (+/-N) ou un pourcentage de la taille de fenêtre (ce défilement est possible seulement sur les tampons avec contenu libre) scroll_up: faire défiler de quelques lignes vers le haut scroll_down: faire défiler de quelques lignes vers le bas scroll_top: faire défiler jusqu'au début du tampon diff --git a/doc/it/autogen/user/weechat_commands.txt b/doc/it/autogen/user/weechat_commands.txt index 069f89137..28a448ef7 100644 --- a/doc/it/autogen/user/weechat_commands.txt +++ b/doc/it/autogen/user/weechat_commands.txt @@ -521,51 +521,54 @@ Esempi: /window list -1|+1|b#|up|down|left|right splith|splitv [<pct>] - resize [+/-] <pct> + resize [+/-]<pct> balance merge [all] page_up|page_down refresh - scroll|scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|scroll_next_highlight + scroll [+/-]<value>[s|m|h|d|M|y] + scroll_horiz [+/-]<value>[%] + scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|scroll_next_highlight swap [up|down|left|right] zoom - list: elenca le finestre aperte (senza argomento, questa lista viene visualizzata) - -1: salta alla finestra precedente - +1: salta alla finestra successiva - b#: salta alla finestra successiva che visualizza il buffer numero # - up: passa alla finestra superiore a quella corrente - down: passa alla finestra inferiore a quella attiva - left: passa alla finestra a sinistra - right: passa alla finestra a destra - splith: divide la finestra attiva orizzontalmente - splitv: divide la finestra attiva verticalmente - resize: ridimensiona finestra, la nuova dimensione è <pct> percentuale della finestra genitore - balance: bilancia le dimensioni tutte le finestre - merge: unisce la finestra con un'altra (all = mantiente una sola finestra) - page_up: scorre di una pagina in alto - page_down: scorre di una pagina in basso - refresh: aggiorna lo schermo - scroll: scorre di un numero di righe (+/-N) o in base al tempo: s=secondi, m=minuti, h=ore, d=giorni, M=mesi, y=anni - scroll_up: scorre di alcune righe in alto - scroll_down: scorre di alcune righe in basso - scroll_top: scorre fino all'inizio del buffer -scroll_bottom: scorre fino alla fine del buffer buffer -scroll_previous_highlight: passa all'evento precedente - scroll_next_highlight: passa all'evento successivo - swap: scambia i buffer di due finestra (con direzione opzionale per la finestra di destinazione) - zoom: ingrandimento sulla finestra - -Per splith e splitv, pct è una percentuale che rappresenta la dimensione della nuova finestra, calcolata con la finestra attiva come riferimento per la dimensione. Per esempio 25 vuol dire creare una finestra di dimensione = dimensione_attuale / 4 + list: list opened windows (without argument, this list is displayed) + -1: jump to previous window + +1: jump to next window + b#: jump to next window displaying buffer number # + up: switch to window above current one + down: switch to window below current one + left: switch to window on the left + right: switch to window on the right + splith: split current window horizontally + splitv: split current window vertically + resize: resize window size, new size is <pct> percentage of parent window + balance: balance the sizes of all windows + merge: merge window with another (all = keep only one window) + page_up: scroll one page up + page_down: scroll one page down + refresh: refresh screen + scroll: scroll a number of lines (+/-N) or with time: s=seconds, m=minutes, h=hours, d=days, M=months, y=years + scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage of window size (this scrolling is possible only on buffers with free content) + scroll_up: scroll a few lines up + scroll_down: scroll a few lines down + scroll_top: scroll to top of buffer +scroll_bottom: scroll to bottom of buffer +scroll_previous_highlight: scroll to previous highlight +scroll_next_highlight: scroll to next highlight + swap: swap buffers of two windows (with optional direction for target window) + zoom: zoom on window + +For splith and splitv, pct is a percentage which represents size of new window, computed with current window as size reference. For example 25 means create a new window with size = current_size / 4 -Esempi: - salta alla finestra che visualizza il buffer #1: +Examples: + jump to window displaying buffer #1: /window b1 - scorre di due righe in alto: + scroll 2 lines up: /window scroll -2 - scorre all'indietro di due giorni: + scroll 2 days up: /window scroll -2d - scorre all'inizio del giorno attuale: - /window scroll -d + scroll to beginning of current day: + /window scroll -d ........................................ @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.6-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-05-15 11:22+0200\n" +"POT-Creation-Date: 2011-05-16 11:54+0200\n" "PO-Revision-Date: 2011-05-15 10:51+0200\n" "Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1796,10 +1796,12 @@ msgstr "" msgid "manage windows" msgstr "spravuje okna" +#, fuzzy msgid "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" -"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll|" -"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" +"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll " +"[+/-]<value>[s|m|h|d|M|y] || scroll_horiz [+/-]<value>[%] || scroll_up|" +"scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" msgstr "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" @@ -1807,6 +1809,7 @@ msgstr "" "scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" +#, fuzzy msgid "" " list: list opened windows (without argument, this list is " "displayed)\n" @@ -1826,8 +1829,11 @@ msgid "" " page_up: scroll one page up\n" " page_down: scroll one page down\n" " refresh: refresh screen\n" -" scroll: scroll number of lines (+/-N) or with time: s=seconds, " +" scroll: scroll a number of lines (+/-N) or with time: s=seconds, " "m=minutes, h=hours, d=days, M=months, y=years\n" +" scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage " +"of window size (this scrolling is possible only on buffers with free " +"content)\n" " scroll_up: scroll a few lines up\n" " scroll_down: scroll a few lines down\n" " scroll_top: scroll to top of buffer\n" @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.6-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-05-15 11:22+0200\n" +"POT-Creation-Date: 2011-05-16 11:54+0200\n" "PO-Revision-Date: 2011-05-15 10:51+0200\n" "Last-Translator: Nils G.\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1864,10 +1864,12 @@ msgstr "" msgid "manage windows" msgstr "Fenster verwalten" +#, fuzzy msgid "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" -"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll|" -"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" +"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll " +"[+/-]<value>[s|m|h|d|M|y] || scroll_horiz [+/-]<value>[%] || scroll_up|" +"scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" msgstr "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" @@ -1875,6 +1877,7 @@ msgstr "" "scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" +#, fuzzy msgid "" " list: list opened windows (without argument, this list is " "displayed)\n" @@ -1894,8 +1897,11 @@ msgid "" " page_up: scroll one page up\n" " page_down: scroll one page down\n" " refresh: refresh screen\n" -" scroll: scroll number of lines (+/-N) or with time: s=seconds, " +" scroll: scroll a number of lines (+/-N) or with time: s=seconds, " "m=minutes, h=hours, d=days, M=months, y=years\n" +" scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage " +"of window size (this scrolling is possible only on buffers with free " +"content)\n" " scroll_up: scroll a few lines up\n" " scroll_down: scroll a few lines down\n" " scroll_top: scroll to top of buffer\n" @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.6-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-05-15 11:22+0200\n" +"POT-Creation-Date: 2011-05-16 11:54+0200\n" "PO-Revision-Date: 2011-05-15 10:51+0200\n" "Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1816,10 +1816,12 @@ msgstr "" msgid "manage windows" msgstr "gestión de ventanas" +#, fuzzy msgid "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" -"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll|" -"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" +"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll " +"[+/-]<value>[s|m|h|d|M|y] || scroll_horiz [+/-]<value>[%] || scroll_up|" +"scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" msgstr "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" @@ -1827,6 +1829,7 @@ msgstr "" "scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" +#, fuzzy msgid "" " list: list opened windows (without argument, this list is " "displayed)\n" @@ -1846,8 +1849,11 @@ msgid "" " page_up: scroll one page up\n" " page_down: scroll one page down\n" " refresh: refresh screen\n" -" scroll: scroll number of lines (+/-N) or with time: s=seconds, " +" scroll: scroll a number of lines (+/-N) or with time: s=seconds, " "m=minutes, h=hours, d=days, M=months, y=years\n" +" scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage " +"of window size (this scrolling is possible only on buffers with free " +"content)\n" " scroll_up: scroll a few lines up\n" " scroll_down: scroll a few lines down\n" " scroll_top: scroll to top of buffer\n" @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.6-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-05-15 11:22+0200\n" -"PO-Revision-Date: 2011-05-15 11:23+0200\n" +"POT-Creation-Date: 2011-05-16 11:54+0200\n" +"PO-Revision-Date: 2011-05-16 11:54+0200\n" "Last-Translator: Sebastien Helleu <flashcode@flashtux.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language: French\n" @@ -1822,13 +1822,15 @@ msgstr "gestion des fenêtres" msgid "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" -"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll|" -"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" +"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll " +"[+/-]<value>[s|m|h|d|M|y] || scroll_horiz [+/-]<value>[%] || scroll_up|" +"scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" msgstr "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" -"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll|" -"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" +"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll " +"[+/-]<valeur>[s|m|h|d|M|y] || scroll_horiz [+/-]<valeur>[%] || scroll_up|" +"scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" msgid "" @@ -1850,8 +1852,11 @@ msgid "" " page_up: scroll one page up\n" " page_down: scroll one page down\n" " refresh: refresh screen\n" -" scroll: scroll number of lines (+/-N) or with time: s=seconds, " +" scroll: scroll a number of lines (+/-N) or with time: s=seconds, " "m=minutes, h=hours, d=days, M=months, y=years\n" +" scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage " +"of window size (this scrolling is possible only on buffers with free " +"content)\n" " scroll_up: scroll a few lines up\n" " scroll_down: scroll a few lines down\n" " scroll_top: scroll to top of buffer\n" @@ -1896,6 +1901,9 @@ msgstr "" " refresh: redessiner l'écran\n" " scroll: faire défiler d'un nombre de lignes (+/-N) ou avec du temps: " "s=secondes, m=minutes, h=heures, d=jours, M=mois, y=année\n" +" scroll_horiz: faire défiler horizontalement d'un nombre de colonnes (+/-N) " +"ou un pourcentage de la taille de fenêtre (ce défilement est possible " +"seulement sur les tampons avec contenu libre)\n" " scroll_up: faire défiler de quelques lignes vers le haut\n" " scroll_down: faire défiler de quelques lignes vers le bas\n" " scroll_top: faire défiler jusqu'au début du tampon\n" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.6-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-05-15 11:22+0200\n" +"POT-Creation-Date: 2011-05-16 11:54+0200\n" "PO-Revision-Date: 2011-05-15 10:51+0200\n" "Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1523,8 +1523,9 @@ msgstr "ablakok kezelése" #, fuzzy msgid "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" -"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll|" -"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" +"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll " +"[+/-]<value>[s|m|h|d|M|y] || scroll_horiz [+/-]<value>[%] || scroll_up|" +"scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" msgstr "" "[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv " @@ -1550,8 +1551,11 @@ msgid "" " page_up: scroll one page up\n" " page_down: scroll one page down\n" " refresh: refresh screen\n" -" scroll: scroll number of lines (+/-N) or with time: s=seconds, " +" scroll: scroll a number of lines (+/-N) or with time: s=seconds, " "m=minutes, h=hours, d=days, M=months, y=years\n" +" scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage " +"of window size (this scrolling is possible only on buffers with free " +"content)\n" " scroll_up: scroll a few lines up\n" " scroll_down: scroll a few lines down\n" " scroll_top: scroll to top of buffer\n" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.6-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-05-15 11:22+0200\n" +"POT-Creation-Date: 2011-05-16 11:54+0200\n" "PO-Revision-Date: 2011-05-15 10:52+0200\n" "Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1810,10 +1810,12 @@ msgstr "" msgid "manage windows" msgstr "gestione finestre" +#, fuzzy msgid "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" -"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll|" -"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" +"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll " +"[+/-]<value>[s|m|h|d|M|y] || scroll_horiz [+/-]<value>[%] || scroll_up|" +"scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" msgstr "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-] " @@ -1821,6 +1823,7 @@ msgstr "" "scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" +#, fuzzy msgid "" " list: list opened windows (without argument, this list is " "displayed)\n" @@ -1840,8 +1843,11 @@ msgid "" " page_up: scroll one page up\n" " page_down: scroll one page down\n" " refresh: refresh screen\n" -" scroll: scroll number of lines (+/-N) or with time: s=seconds, " +" scroll: scroll a number of lines (+/-N) or with time: s=seconds, " "m=minutes, h=hours, d=days, M=months, y=years\n" +" scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage " +"of window size (this scrolling is possible only on buffers with free " +"content)\n" " scroll_up: scroll a few lines up\n" " scroll_down: scroll a few lines down\n" " scroll_top: scroll to top of buffer\n" @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.6-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-05-15 11:22+0200\n" +"POT-Creation-Date: 2011-05-16 11:54+0200\n" "PO-Revision-Date: 2011-05-15 10:52+0200\n" "Last-Translator: Krzysztof Koroscik <soltys@szluug.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1818,10 +1818,12 @@ msgstr "" msgid "manage windows" msgstr "zarządza oknami" +#, fuzzy msgid "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" -"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll|" -"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" +"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll " +"[+/-]<value>[s|m|h|d|M|y] || scroll_horiz [+/-]<value>[%] || scroll_up|" +"scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" msgstr "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" @@ -1829,6 +1831,7 @@ msgstr "" "scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" +#, fuzzy msgid "" " list: list opened windows (without argument, this list is " "displayed)\n" @@ -1848,8 +1851,11 @@ msgid "" " page_up: scroll one page up\n" " page_down: scroll one page down\n" " refresh: refresh screen\n" -" scroll: scroll number of lines (+/-N) or with time: s=seconds, " +" scroll: scroll a number of lines (+/-N) or with time: s=seconds, " "m=minutes, h=hours, d=days, M=months, y=years\n" +" scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage " +"of window size (this scrolling is possible only on buffers with free " +"content)\n" " scroll_up: scroll a few lines up\n" " scroll_down: scroll a few lines down\n" " scroll_top: scroll to top of buffer\n" diff --git a/po/pt_BR.po b/po/pt_BR.po index 0b838e58c..84d5412e7 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.6-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-05-15 11:22+0200\n" +"POT-Creation-Date: 2011-05-16 11:54+0200\n" "PO-Revision-Date: 2011-05-15 10:52+0200\n" "Last-Translator: Ivan Sichmann Freitas <ivansichfreitas@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1822,8 +1822,9 @@ msgstr "gerencia janelas" #, fuzzy msgid "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" -"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll|" -"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" +"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll " +"[+/-]<value>[s|m|h|d|M|y] || scroll_horiz [+/-]<value>[%] || scroll_up|" +"scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" msgstr "" "[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv " @@ -1851,8 +1852,11 @@ msgid "" " page_up: scroll one page up\n" " page_down: scroll one page down\n" " refresh: refresh screen\n" -" scroll: scroll number of lines (+/-N) or with time: s=seconds, " +" scroll: scroll a number of lines (+/-N) or with time: s=seconds, " "m=minutes, h=hours, d=days, M=months, y=years\n" +" scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage " +"of window size (this scrolling is possible only on buffers with free " +"content)\n" " scroll_up: scroll a few lines up\n" " scroll_down: scroll a few lines down\n" " scroll_top: scroll to top of buffer\n" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.6-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-05-15 11:22+0200\n" +"POT-Creation-Date: 2011-05-16 11:54+0200\n" "PO-Revision-Date: 2011-05-15 10:52+0200\n" "Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1532,8 +1532,9 @@ msgstr "управление окнами" #, fuzzy msgid "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" -"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll|" -"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" +"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll " +"[+/-]<value>[s|m|h|d|M|y] || scroll_horiz [+/-]<value>[%] || scroll_up|" +"scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" msgstr "" "[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv " @@ -1559,8 +1560,11 @@ msgid "" " page_up: scroll one page up\n" " page_down: scroll one page down\n" " refresh: refresh screen\n" -" scroll: scroll number of lines (+/-N) or with time: s=seconds, " +" scroll: scroll a number of lines (+/-N) or with time: s=seconds, " "m=minutes, h=hours, d=days, M=months, y=years\n" +" scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage " +"of window size (this scrolling is possible only on buffers with free " +"content)\n" " scroll_up: scroll a few lines up\n" " scroll_down: scroll a few lines down\n" " scroll_top: scroll to top of buffer\n" diff --git a/po/weechat.pot b/po/weechat.pot index 697fdcc8f..80710089b 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-05-15 11:22+0200\n" +"POT-Creation-Date: 2011-05-16 11:54+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -1334,8 +1334,9 @@ msgstr "" msgid "" "list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]" -"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll|" -"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" +"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll " +"[+/-]<value>[s|m|h|d|M|y] || scroll_horiz [+/-]<value>[%] || scroll_up|" +"scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight || swap [up|down|left|right] || zoom" msgstr "" @@ -1358,8 +1359,11 @@ msgid "" " page_up: scroll one page up\n" " page_down: scroll one page down\n" " refresh: refresh screen\n" -" scroll: scroll number of lines (+/-N) or with time: s=seconds, " +" scroll: scroll a number of lines (+/-N) or with time: s=seconds, " "m=minutes, h=hours, d=days, M=months, y=years\n" +" scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage " +"of window size (this scrolling is possible only on buffers with free " +"content)\n" " scroll_up: scroll a few lines up\n" " scroll_down: scroll a few lines down\n" " scroll_top: scroll to top of buffer\n" diff --git a/src/core/wee-command.c b/src/core/wee-command.c index 224d44cb6..64463c4d4 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -4364,6 +4364,25 @@ COMMAND_CALLBACK(window) return WEECHAT_RC_OK; } + /* vertical scroll in window */ + if (string_strcasecmp (argv[1], "scroll") == 0) + { + if (argc > 2) + gui_window_scroll (gui_current_window, argv[2]); + return WEECHAT_RC_OK; + } + + /* horizontal scroll in window (for buffers with free content) */ + if (string_strcasecmp (argv[1], "scroll_horiz") == 0) + { + if ((argc > 2) + && (gui_current_window->buffer->type == GUI_BUFFER_TYPE_FREE)) + { + gui_window_scroll_horiz (gui_current_window, argv[2]); + } + return WEECHAT_RC_OK; + } + /* scroll up current window */ if (string_strcasecmp (argv[1], "scroll_up") == 0) { @@ -4517,18 +4536,6 @@ COMMAND_CALLBACK(window) return WEECHAT_RC_OK; } - /* jump to window by buffer number */ - if (string_strncasecmp (argv[1], "b", 1) == 0) - { - error = NULL; - number = strtol (argv[1] + 1, &error, 10); - if (error && !error[0]) - { - gui_window_switch_by_buffer (gui_current_window, number); - return WEECHAT_RC_OK; - } - } - /* switch to previous window */ if (string_strcasecmp (argv[1], "-1") == 0) { @@ -4571,14 +4578,6 @@ COMMAND_CALLBACK(window) return WEECHAT_RC_OK; } - /* scroll in window */ - if (string_strcasecmp (argv[1], "scroll") == 0) - { - if (argc > 2) - gui_window_scroll (gui_current_window, argv[2]); - return WEECHAT_RC_OK; - } - /* swap windows */ if (string_strcasecmp (argv[1], "swap") == 0) { @@ -4616,6 +4615,18 @@ COMMAND_CALLBACK(window) return WEECHAT_RC_OK; } + /* jump to window by buffer number */ + if (string_strncasecmp (argv[1], "b", 1) == 0) + { + error = NULL; + number = strtol (argv[1] + 1, &error, 10); + if (error && !error[0]) + { + gui_window_switch_by_buffer (gui_current_window, number); + return WEECHAT_RC_OK; + } + } + gui_chat_printf (NULL, _("%sError: unknown option for \"%s\" " "command"), @@ -5271,7 +5282,9 @@ command_init () " || merge [all]" " || page_up|page_down" " || refresh" - " || scroll|scroll_up|scroll_down|scroll_top|" + " || scroll [+/-]<value>[s|m|h|d|M|y]" + " || scroll_horiz [+/-]<value>[%]" + " || scroll_up|scroll_down|scroll_top|" "scroll_bottom|scroll_previous_highlight|" "scroll_next_highlight" " || swap [up|down|left|right]" @@ -5295,8 +5308,11 @@ command_init () " page_up: scroll one page up\n" " page_down: scroll one page down\n" " refresh: refresh screen\n" - " scroll: scroll number of lines (+/-N) or with time: " + " scroll: scroll a number of lines (+/-N) or with time: " "s=seconds, m=minutes, h=hours, d=days, M=months, y=years\n" + " scroll_horiz: scroll horizontally a number of columns " + "(+/-N) or percentage of window size (this scrolling is " + "possible only on buffers with free content)\n" " scroll_up: scroll a few lines up\n" " scroll_down: scroll a few lines down\n" " scroll_top: scroll to top of buffer\n" @@ -5321,8 +5337,8 @@ command_init () " /window scroll -d"), "list || -1 || +1 || up || down || left || right" " || splith || splitv || resize || balance || page_up" - " || page_down || refresh || scroll || scroll_up" - " || scroll_down || scroll_top || scroll_bottom" + " || page_down || refresh || scroll || scroll_horiz" + " || scroll_up || scroll_down || scroll_top || scroll_bottom" " || scroll_previous_highlight || scroll_next_highlight" " || swap up|down|left|right || zoom || merge all", &command_window, NULL); diff --git a/src/gui/curses/gui-curses-chat.c b/src/gui/curses/gui-curses-chat.c index 819c3a985..34740ed13 100644 --- a/src/gui/curses/gui-curses-chat.c +++ b/src/gui/curses/gui-curses-chat.c @@ -255,7 +255,7 @@ gui_chat_display_word_raw (struct t_gui_window *window, const char *string, int max_chars_on_screen, int display) { char *next_char, *output, utf_char[16]; - int chars_displayed, size_on_screen; + int chars_displayed, display_char, size_on_screen; if (display) wmove (GUI_WINDOW_OBJECTS(window)->win_chat, @@ -279,6 +279,9 @@ gui_chat_display_word_raw (struct t_gui_window *window, const char *string, if (!gui_chat_utf_char_valid (utf_char)) snprintf (utf_char, sizeof (utf_char), " "); + display_char = (window->buffer->type != GUI_BUFFER_TYPE_FREE) + || (chars_displayed >= window->scroll->start_col); + size_on_screen = utf8_strlen_screen (utf_char); if (max_chars_on_screen > 0) { @@ -286,7 +289,7 @@ gui_chat_display_word_raw (struct t_gui_window *window, const char *string, return chars_displayed; chars_displayed += size_on_screen; } - if (size_on_screen > 0) + if (display_char && (size_on_screen > 0)) { output = string_iconv_from_internal (NULL, utf_char); wprintw (GUI_WINDOW_OBJECTS(window)->win_chat, diff --git a/src/gui/gui-window.c b/src/gui/gui-window.c index f8deb1af6..6a7d94245 100644 --- a/src/gui/gui-window.c +++ b/src/gui/gui-window.c @@ -180,6 +180,7 @@ gui_window_scroll_init (struct t_gui_window_scroll *window_scroll, window_scroll->start_line = NULL; window_scroll->start_line_pos = 0; window_scroll->scrolling = 0; + window_scroll->start_col = 0; window_scroll->lines_after = 0; window_scroll->reset_allowed = 0; window_scroll->prev_scroll = NULL; @@ -241,6 +242,7 @@ gui_window_scroll_remove_not_scrolled (struct t_gui_window *window) && (ptr_scroll->start_line == NULL) && (ptr_scroll->start_line_pos == 0) && (ptr_scroll->scrolling == 0) + && (ptr_scroll->start_col == 0) && (ptr_scroll->lines_after == 0) && (ptr_scroll->reset_allowed == 0)) { @@ -959,6 +961,75 @@ gui_window_scroll (struct t_gui_window *window, char *scroll) } /* + * gui_window_scroll_horiz: horizontal scroll window + */ + +void +gui_window_scroll_horiz (struct t_gui_window *window, char *scroll) +{ + int direction, percentage, start_col; + char saved_char, *pos, *error; + long number; + + if (window->buffer->lines->first_line) + { + direction = 1; + number = 0; + percentage = 0; + + /* search direction */ + if (scroll[0] == '-') + { + direction = -1; + scroll++; + } + else if (scroll[0] == '+') + { + direction = +1; + scroll++; + } + + /* search number and percentage */ + pos = scroll; + while (pos && pos[0] && isdigit (pos[0])) + { + pos++; + } + if (pos && (pos > scroll)) + { + percentage = (pos[0] == '%') ? 1 : 0; + saved_char = pos[0]; + pos[0] = '\0'; + error = NULL; + number = strtol (scroll, &error, 10); + if (!error || error[0]) + number = 0; + pos[0] = saved_char; + } + + /* for percentage, compute number of columns */ + if (percentage) + { + number = (window->win_chat_width * number) / 100; + } + + /* number must be different from 0 */ + if (number == 0) + return; + + /* do the horizontal scroll! */ + start_col = window->scroll->start_col + (number * direction); + if (start_col < 0) + start_col = 0; + if (start_col != window->scroll->start_col) + { + window->scroll->start_col = start_col; + gui_buffer_ask_chat_refresh (window->buffer, 2); + } + } +} + +/* * gui_window_scroll_previous_highlight: scroll to previous highlight */ @@ -1298,6 +1369,7 @@ gui_window_print_log () log_printf (" start_line. . . . . : 0x%lx", ptr_scroll->start_line); log_printf (" start_line_pos. . . : %d", ptr_scroll->start_line_pos); log_printf (" scrolling . . . . . : %d", ptr_scroll->scrolling); + log_printf (" start_col . . . . . : %d", ptr_scroll->start_col); log_printf (" lines_after . . . . : %d", ptr_scroll->lines_after); log_printf (" reset_allowed . . . : %d", ptr_scroll->reset_allowed); log_printf (" prev_scroll . . . . : 0x%lx", ptr_scroll->prev_scroll); diff --git a/src/gui/gui-window.h b/src/gui/gui-window.h index 8e82e5686..09fdf0cce 100644 --- a/src/gui/gui-window.h +++ b/src/gui/gui-window.h @@ -84,6 +84,8 @@ struct t_gui_window_scroll struct t_gui_line *start_line; /* pointer to line if scrolling */ int start_line_pos; /* position in first line displayed */ int scrolling; /* = 1 if "MORE" should be displayed */ + int start_col; /* first column displayed */ + /* (for horizontal scrolling) */ int lines_after; /* number of lines after last line */ /* displayed (with scrolling) */ int reset_allowed; /* reset scroll allowed (when using */ @@ -145,6 +147,7 @@ extern void gui_window_switch_next (struct t_gui_window *window); extern void gui_window_switch_by_buffer (struct t_gui_window *window, int buffer_number); extern void gui_window_scroll (struct t_gui_window *window, char *scroll); +extern void gui_window_scroll_horiz (struct t_gui_window *window, char *scroll); extern void gui_window_scroll_previous_highlight (struct t_gui_window *window); extern void gui_window_scroll_next_highlight (struct t_gui_window *window); extern void gui_window_search_start (struct t_gui_window *window); |