mirror of
https://github.com/weechat/weechat.git
synced 2026-06-29 14:26:39 +02:00
Add new key to zoom a window (meta-z by default) (task #7470)
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
WeeChat - Wee Enhanced Environment for Chat
|
||||
===========================================
|
||||
|
||||
ChangeLog - 2009-01-31
|
||||
ChangeLog - 2009-03-07
|
||||
|
||||
|
||||
Version 0.2.7 (under dev!):
|
||||
@@ -28,8 +28,10 @@ Version 0.2.7 (under dev!):
|
||||
option "name_lower_case" (bug #19522)
|
||||
* alias: fix bug with alias, use current buffer to run commands (bug #22876)
|
||||
* plugins: add some other plugins: alias, demo, fifo, notify, tcl, xfer
|
||||
* api: add hooks: command, timer, file descriptor, connection, print, signal,
|
||||
config, completion, modifier, info, infolist
|
||||
* scripts: new scripts: buffers.pl, go.py, iset.pl, jabber.py, launcher.pl,
|
||||
mastermind.pl, weetris.pl
|
||||
* api: add hooks: command, timer, file descriptor, process, connection,
|
||||
print, signal, config, completion, modifier, info, infolist
|
||||
* api: new plugin API with many new functions: hooks, buffer management and
|
||||
nicklist, bars, configuration files, network, infos/infolists, lists,
|
||||
upgrade
|
||||
@@ -37,6 +39,7 @@ Version 0.2.7 (under dev!):
|
||||
* gui: add new type of buffer, with free content
|
||||
* gui: add tags for lines and custom filtering by tags or regex (task #7674)
|
||||
* gui: add custom bars, with custom items
|
||||
* gui: add key to zoom a window (task #7470)
|
||||
* gui: add new option scroll_page_percent to choose percent of height to scroll
|
||||
with page_up and page_down keys (task #8702)
|
||||
* gui: add number of lines remaining after last line displayed in "-MORE-"
|
||||
|
||||
@@ -505,6 +505,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
Schalte zum Fenster in der entsprechenden Richtung
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Alt + Z</entry>
|
||||
<entry>
|
||||
<!-- TRANSLATION NEEDED -->
|
||||
Zoom on current window
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Alt + =</entry>
|
||||
<entry>
|
||||
|
||||
@@ -480,6 +480,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
Switch to window with direction
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Alt + Z</entry>
|
||||
<entry>
|
||||
Zoom on current window
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Alt + =</entry>
|
||||
<entry>
|
||||
|
||||
@@ -510,6 +510,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
Sauter à une fenêtre avec une direction
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Alt + Z</entry>
|
||||
<entry>
|
||||
Zoom sur la fenêtre courante
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Alt + =</entry>
|
||||
<entry>
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.2.7-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-03-06 18:11+0100\n"
|
||||
"POT-Creation-Date: 2009-03-07 11:16+0100\n"
|
||||
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
|
||||
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -1165,9 +1165,9 @@ msgstr "spravuje okna"
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | scroll | scroll_up "
|
||||
"| scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | "
|
||||
"scroll_next_highlight ]"
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | refresh | scroll | "
|
||||
"scroll_up | scroll_down | scroll_top | scroll_bottom | "
|
||||
"scroll_previous_highlight | scroll_next_highlight | zoom]"
|
||||
msgstr ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[pct] | resize pct | merge [all]]"
|
||||
@@ -1190,6 +1190,7 @@ msgid ""
|
||||
"\n"
|
||||
" 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, "
|
||||
"m=minutes, h=hours, d=days, M=months, y=years\n"
|
||||
" scroll_up: scroll a few lines up\n"
|
||||
@@ -1198,7 +1199,7 @@ msgid ""
|
||||
"scroll_bottom: scroll to bottom of buffer\n"
|
||||
"scroll_previous_highlight: scroll to previous highlight\n"
|
||||
"scroll_next_highlight: scroll to next highlight\n"
|
||||
" refresh: refresh screen\n"
|
||||
" zoom: zoom on window\n"
|
||||
"\n"
|
||||
"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 "
|
||||
|
||||
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.2.7-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-03-06 18:11+0100\n"
|
||||
"POT-Creation-Date: 2009-03-07 11:16+0100\n"
|
||||
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
|
||||
"Last-Translator: Thomas Schuetz <i18n@internet-villa.de>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -1189,9 +1189,9 @@ msgstr "Fenster verwalten"
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | scroll | scroll_up "
|
||||
"| scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | "
|
||||
"scroll_next_highlight ]"
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | refresh | scroll | "
|
||||
"scroll_up | scroll_down | scroll_top | scroll_bottom | "
|
||||
"scroll_previous_highlight | scroll_next_highlight | zoom]"
|
||||
msgstr ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[pct] | resize pct | merge [all]]"
|
||||
@@ -1214,6 +1214,7 @@ msgid ""
|
||||
"\n"
|
||||
" 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, "
|
||||
"m=minutes, h=hours, d=days, M=months, y=years\n"
|
||||
" scroll_up: scroll a few lines up\n"
|
||||
@@ -1222,7 +1223,7 @@ msgid ""
|
||||
"scroll_bottom: scroll to bottom of buffer\n"
|
||||
"scroll_previous_highlight: scroll to previous highlight\n"
|
||||
"scroll_next_highlight: scroll to next highlight\n"
|
||||
" refresh: refresh screen\n"
|
||||
" zoom: zoom on window\n"
|
||||
"\n"
|
||||
"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 "
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.2.7-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-03-06 18:11+0100\n"
|
||||
"POT-Creation-Date: 2009-03-07 11:16+0100\n"
|
||||
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
|
||||
"Last-Translator: Roberto González Cardenete <robert.glez@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -1169,9 +1169,9 @@ msgstr "gestión de ventanas"
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | scroll | scroll_up "
|
||||
"| scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | "
|
||||
"scroll_next_highlight ]"
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | refresh | scroll | "
|
||||
"scroll_up | scroll_down | scroll_top | scroll_bottom | "
|
||||
"scroll_previous_highlight | scroll_next_highlight | zoom]"
|
||||
msgstr ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[pct] | resize pct | merge [all]]"
|
||||
@@ -1194,6 +1194,7 @@ msgid ""
|
||||
"\n"
|
||||
" 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, "
|
||||
"m=minutes, h=hours, d=days, M=months, y=years\n"
|
||||
" scroll_up: scroll a few lines up\n"
|
||||
@@ -1202,7 +1203,7 @@ msgid ""
|
||||
"scroll_bottom: scroll to bottom of buffer\n"
|
||||
"scroll_previous_highlight: scroll to previous highlight\n"
|
||||
"scroll_next_highlight: scroll to next highlight\n"
|
||||
" refresh: refresh screen\n"
|
||||
" zoom: zoom on window\n"
|
||||
"\n"
|
||||
"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 "
|
||||
|
||||
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.2.7-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-03-06 18:11+0100\n"
|
||||
"PO-Revision-Date: 2009-03-06 18:11+0100\n"
|
||||
"POT-Creation-Date: 2009-03-07 11:16+0100\n"
|
||||
"PO-Revision-Date: 2009-03-07 11:17+0100\n"
|
||||
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -1277,14 +1277,14 @@ msgstr "gestion des fenêtres"
|
||||
|
||||
msgid ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | scroll | scroll_up "
|
||||
"| scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | "
|
||||
"scroll_next_highlight ]"
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | refresh | scroll | "
|
||||
"scroll_up | scroll_down | scroll_top | scroll_bottom | "
|
||||
"scroll_previous_highlight | scroll_next_highlight | zoom]"
|
||||
msgstr ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[ptc] | resize pct | merge [all] | page_up | page_down | scroll | scroll_up "
|
||||
"| scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | "
|
||||
"scroll_next_highlight]"
|
||||
"[ptc] | resize pct | merge [all] | page_up | page_down | refresh | scroll | "
|
||||
"scroll_up | scroll_down | scroll_top | scroll_bottom | "
|
||||
"scroll_previous_highlight | scroll_next_highlight | zoom]"
|
||||
|
||||
msgid ""
|
||||
" list: list opened windows (no parameter implies this list)\n"
|
||||
@@ -1303,6 +1303,7 @@ msgid ""
|
||||
"\n"
|
||||
" 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, "
|
||||
"m=minutes, h=hours, d=days, M=months, y=years\n"
|
||||
" scroll_up: scroll a few lines up\n"
|
||||
@@ -1311,7 +1312,7 @@ msgid ""
|
||||
"scroll_bottom: scroll to bottom of buffer\n"
|
||||
"scroll_previous_highlight: scroll to previous highlight\n"
|
||||
"scroll_next_highlight: scroll to next highlight\n"
|
||||
" refresh: refresh screen\n"
|
||||
" zoom: zoom on window\n"
|
||||
"\n"
|
||||
"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 "
|
||||
@@ -1339,6 +1340,7 @@ msgstr ""
|
||||
" merge: fusionne la fenêtre avec une autre\n"
|
||||
" page_up: défilement d'une page vers le haut\n"
|
||||
" page_down: défilement d'une page vers le bas\n"
|
||||
" refresh: redessine l'écran\n"
|
||||
" scroll: défilement 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_up: défilement de quelques lignes vers le haut\n"
|
||||
@@ -1347,7 +1349,7 @@ msgstr ""
|
||||
"scroll_bottom: défilement jusqu'au bas du tampon\n"
|
||||
"scroll_previous_highlight: défilement jusqu'au highlight précédent\n"
|
||||
"scroll_next_highlight: défilement jusqu'au highlight suivant\n"
|
||||
" refresh: redessine l'écran\n"
|
||||
" zoom: zoom sur la fenêtre\n"
|
||||
"\n"
|
||||
"Pour splith et splitv, pct est un pourcentage qui représente la taille de la "
|
||||
"nouvelle fenêtre, calculée par rapport à la taille de la fenêtre courante. "
|
||||
|
||||
@@ -12,7 +12,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.2.7-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-03-06 18:11+0100\n"
|
||||
"POT-Creation-Date: 2009-03-07 11:16+0100\n"
|
||||
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
|
||||
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -1204,9 +1204,9 @@ msgstr "ablakok kezelése"
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | scroll | scroll_up "
|
||||
"| scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | "
|
||||
"scroll_next_highlight ]"
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | refresh | scroll | "
|
||||
"scroll_up | scroll_down | scroll_top | scroll_bottom | "
|
||||
"scroll_previous_highlight | scroll_next_highlight | zoom]"
|
||||
msgstr ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[pct] | resize pct | merge [all]]"
|
||||
@@ -1229,6 +1229,7 @@ msgid ""
|
||||
"\n"
|
||||
" 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, "
|
||||
"m=minutes, h=hours, d=days, M=months, y=years\n"
|
||||
" scroll_up: scroll a few lines up\n"
|
||||
@@ -1237,7 +1238,7 @@ msgid ""
|
||||
"scroll_bottom: scroll to bottom of buffer\n"
|
||||
"scroll_previous_highlight: scroll to previous highlight\n"
|
||||
"scroll_next_highlight: scroll to next highlight\n"
|
||||
" refresh: refresh screen\n"
|
||||
" zoom: zoom on window\n"
|
||||
"\n"
|
||||
"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 "
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.2.7-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-03-06 18:11+0100\n"
|
||||
"POT-Creation-Date: 2009-03-07 11:16+0100\n"
|
||||
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
|
||||
"Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -1200,9 +1200,9 @@ msgstr "управление окнами"
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | scroll | scroll_up "
|
||||
"| scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | "
|
||||
"scroll_next_highlight ]"
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | refresh | scroll | "
|
||||
"scroll_up | scroll_down | scroll_top | scroll_bottom | "
|
||||
"scroll_previous_highlight | scroll_next_highlight | zoom]"
|
||||
msgstr ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[pct] | resize pct | merge [all]]"
|
||||
@@ -1225,6 +1225,7 @@ msgid ""
|
||||
"\n"
|
||||
" 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, "
|
||||
"m=minutes, h=hours, d=days, M=months, y=years\n"
|
||||
" scroll_up: scroll a few lines up\n"
|
||||
@@ -1233,7 +1234,7 @@ msgid ""
|
||||
"scroll_bottom: scroll to bottom of buffer\n"
|
||||
"scroll_previous_highlight: scroll to previous highlight\n"
|
||||
"scroll_next_highlight: scroll to next highlight\n"
|
||||
" refresh: refresh screen\n"
|
||||
" zoom: zoom on window\n"
|
||||
"\n"
|
||||
"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 "
|
||||
|
||||
+6
-5
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-03-06 18:11+0100\n"
|
||||
"POT-Creation-Date: 2009-03-07 11:16+0100\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"
|
||||
@@ -1034,9 +1034,9 @@ msgstr ""
|
||||
|
||||
msgid ""
|
||||
"[list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv "
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | scroll | scroll_up "
|
||||
"| scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | "
|
||||
"scroll_next_highlight ]"
|
||||
"[pct] | resize pct | merge [all] | page_up | page_down | refresh | scroll | "
|
||||
"scroll_up | scroll_down | scroll_top | scroll_bottom | "
|
||||
"scroll_previous_highlight | scroll_next_highlight | zoom]"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
@@ -1056,6 +1056,7 @@ msgid ""
|
||||
"\n"
|
||||
" 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, "
|
||||
"m=minutes, h=hours, d=days, M=months, y=years\n"
|
||||
" scroll_up: scroll a few lines up\n"
|
||||
@@ -1064,7 +1065,7 @@ msgid ""
|
||||
"scroll_bottom: scroll to bottom of buffer\n"
|
||||
"scroll_previous_highlight: scroll to previous highlight\n"
|
||||
"scroll_next_highlight: scroll to next highlight\n"
|
||||
" refresh: refresh screen\n"
|
||||
" zoom: zoom on window\n"
|
||||
"\n"
|
||||
"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 "
|
||||
|
||||
+22
-13
@@ -1978,13 +1978,13 @@ command_layout (void *data, struct t_gui_buffer *buffer,
|
||||
{
|
||||
if (flag_buffers)
|
||||
{
|
||||
gui_layout_buffer_save ();
|
||||
gui_layout_buffer_save (&gui_layout_buffers, &last_gui_layout_buffer);
|
||||
gui_chat_printf (NULL,
|
||||
_("Layout saved for buffers (order of buffers)"));
|
||||
}
|
||||
if (flag_windows)
|
||||
{
|
||||
gui_layout_window_save ();
|
||||
gui_layout_window_save (&gui_layout_windows);
|
||||
gui_chat_printf (NULL,
|
||||
_("Layout saved for windows (buffer displayed by "
|
||||
"each window)"));
|
||||
@@ -1997,9 +1997,9 @@ command_layout (void *data, struct t_gui_buffer *buffer,
|
||||
if (string_strcasecmp (argv[1], "apply") == 0)
|
||||
{
|
||||
if (flag_buffers)
|
||||
gui_layout_buffer_apply ();
|
||||
gui_layout_buffer_apply (gui_layout_buffers);
|
||||
if (flag_windows)
|
||||
gui_layout_window_apply ();
|
||||
gui_layout_window_apply (gui_layout_windows, -1);
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
@@ -2009,13 +2009,13 @@ command_layout (void *data, struct t_gui_buffer *buffer,
|
||||
{
|
||||
if (flag_buffers)
|
||||
{
|
||||
gui_layout_buffer_reset ();
|
||||
gui_layout_buffer_reset (&gui_layout_buffers, &last_gui_layout_buffer);
|
||||
gui_chat_printf (NULL,
|
||||
_("Layout reset for buffers"));
|
||||
}
|
||||
if (flag_windows)
|
||||
{
|
||||
gui_layout_window_reset ();
|
||||
gui_layout_window_reset (&gui_layout_windows);
|
||||
gui_chat_printf (NULL,
|
||||
_("Layout reset for windows"));
|
||||
}
|
||||
@@ -3509,6 +3509,13 @@ command_window (void *data, struct t_gui_buffer *buffer,
|
||||
gui_window_scroll (gui_current_window, argv[2]);
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
/* zoom window */
|
||||
if (string_strcasecmp (argv[1], "zoom") == 0)
|
||||
{
|
||||
gui_window_zoom (gui_current_window);
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
gui_chat_printf (NULL,
|
||||
_("%sError: unknown option for \"%s\" "
|
||||
@@ -3849,9 +3856,10 @@ command_init ()
|
||||
N_("manage windows"),
|
||||
N_("[list | -1 | +1 | b# | up | down | left | right | "
|
||||
"splith [pct] | splitv [pct] | resize pct | "
|
||||
"merge [all] | page_up | page_down | scroll | scroll_up | "
|
||||
"scroll_down | scroll_top | scroll_bottom | "
|
||||
"scroll_previous_highlight | scroll_next_highlight ]"),
|
||||
"merge [all] | page_up | page_down | refresh | scroll | "
|
||||
"scroll_up | scroll_down | scroll_top | scroll_bottom | "
|
||||
"scroll_previous_highlight | scroll_next_highlight | "
|
||||
"zoom]"),
|
||||
N_(" list: list opened windows (no parameter implies this "
|
||||
"list)\n"
|
||||
" -1: jump to previous window\n"
|
||||
@@ -3869,6 +3877,7 @@ command_init ()
|
||||
"window)\n\n"
|
||||
" 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, m=minutes, h=hours, d=days, M=months, y=years\n"
|
||||
" scroll_up: scroll a few lines up\n"
|
||||
@@ -3877,7 +3886,7 @@ command_init ()
|
||||
"scroll_bottom: scroll to bottom of buffer\n"
|
||||
"scroll_previous_highlight: scroll to previous highlight\n"
|
||||
"scroll_next_highlight: scroll to next highlight\n"
|
||||
" refresh: refresh screen\n\n"
|
||||
" zoom: zoom on window\n\n"
|
||||
"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 "
|
||||
@@ -3888,9 +3897,9 @@ command_init ()
|
||||
" scroll 2 days up: /window scroll -2d\n"
|
||||
" scroll to beginning of current day: /window scroll -d"),
|
||||
"list|-1|+1|up|down|left|right|splith|splitv|resize|merge|"
|
||||
"page_up|page_down|scroll_up|scroll|scroll_down|scroll_top|"
|
||||
"scroll_bottom|scroll_previous_highlight|"
|
||||
"scroll_next_highlight|refresh all",
|
||||
"page_up|page_down|refresh|scroll_up|scroll|scroll_down|"
|
||||
"scroll_top|scroll_bottom|scroll_previous_highlight|"
|
||||
"scroll_next_highlight|zoom all",
|
||||
&command_window, NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -415,8 +415,8 @@ config_weechat_reload (void *data, struct t_config_file *config_file)
|
||||
gui_bar_free_all ();
|
||||
|
||||
/* remove layout */
|
||||
gui_layout_buffer_reset ();
|
||||
gui_layout_window_reset ();
|
||||
gui_layout_buffer_reset (&gui_layout_buffers, &last_gui_layout_buffer);
|
||||
gui_layout_window_reset (&gui_layout_windows);
|
||||
|
||||
/* remove all filters */
|
||||
gui_filter_free_all ();
|
||||
@@ -748,7 +748,9 @@ config_weechat_layout_read_cb (void *data, struct t_config_file *config_file,
|
||||
number1 = strtol (argv[2], &error1, 10);
|
||||
if (error1 && !error1[0])
|
||||
{
|
||||
gui_layout_buffer_add (argv[0], argv[1], number1);
|
||||
gui_layout_buffer_add (&gui_layout_buffers,
|
||||
&last_gui_layout_buffer,
|
||||
argv[0], argv[1], number1);
|
||||
}
|
||||
}
|
||||
string_free_exploded (argv);
|
||||
@@ -772,8 +774,10 @@ config_weechat_layout_read_cb (void *data, struct t_config_file *config_file,
|
||||
if (error1 && !error1[0] && error2 && !error2[0]
|
||||
&& error3 && !error3[0] && error4 && !error4[0])
|
||||
{
|
||||
parent = gui_layout_window_search_by_id (number2);
|
||||
gui_layout_window_add (number1,
|
||||
parent = gui_layout_window_search_by_id (gui_layout_windows,
|
||||
number2);
|
||||
gui_layout_window_add (&gui_layout_windows,
|
||||
number1,
|
||||
parent,
|
||||
number3,
|
||||
number4,
|
||||
|
||||
+1
-1
@@ -411,7 +411,7 @@ main (int argc, char *argv[])
|
||||
plugin_init (weechat_auto_load_plugins, /* init plugin interface(s) */
|
||||
argc, argv);
|
||||
command_startup (1); /* command executed after plugins */
|
||||
gui_layout_window_apply (); /* apply saved layout for windows */
|
||||
gui_layout_window_apply (gui_layout_windows, -1); /* apply saved layout */
|
||||
weechat_upgrading = 0;
|
||||
|
||||
gui_main_loop (); /* WeeChat main loop */
|
||||
|
||||
@@ -138,6 +138,7 @@ gui_keyboard_default_bindings ()
|
||||
gui_keyboard_bind (NULL, /* m-w,m-down */ "meta-wmeta-meta2-B", "/window down");
|
||||
gui_keyboard_bind (NULL, /* m-w,m-left */ "meta-wmeta-meta2-D", "/window left");
|
||||
gui_keyboard_bind (NULL, /* m-w,m-right */ "meta-wmeta-meta2-C", "/window right");
|
||||
gui_keyboard_bind (NULL, /* m-z */ "meta-z", "/window zoom");
|
||||
gui_keyboard_bind (NULL, /* m-= */ "meta-=", "/filter toggle");
|
||||
gui_keyboard_bind (NULL, /* m-0 */ "meta-0", "/buffer 10");
|
||||
gui_keyboard_bind (NULL, /* m-1 */ "meta-1", "/buffer 1");
|
||||
|
||||
@@ -358,8 +358,8 @@ gui_main_end (int clean_exit)
|
||||
free (gui_input_clipboard);
|
||||
|
||||
/* delete layout saved */
|
||||
gui_layout_window_remove_all ();
|
||||
gui_layout_buffer_remove_all ();
|
||||
gui_layout_window_remove_all (&gui_layout_windows);
|
||||
gui_layout_buffer_remove_all (&gui_layout_buffers, &last_gui_layout_buffer);
|
||||
|
||||
/* delete all windows */
|
||||
while (gui_windows)
|
||||
|
||||
@@ -248,8 +248,8 @@ gui_main_end (int clean_exit)
|
||||
free(gui_input_clipboard);
|
||||
|
||||
/* delete layout saved */
|
||||
gui_layout_window_remove_all ();
|
||||
gui_layout_buffer_remove_all ();
|
||||
gui_layout_window_remove_all (&gui_layout_windows);
|
||||
gui_layout_buffer_remove_all (&gui_layout_buffers, &last_gui_layout_buffer);
|
||||
|
||||
/* delete all windows */
|
||||
while (gui_windows)
|
||||
|
||||
@@ -292,7 +292,8 @@ gui_buffer_new (struct t_weechat_plugin *plugin,
|
||||
new_buffer->plugin = plugin;
|
||||
new_buffer->plugin_name_for_upgrade = NULL;
|
||||
/* number will be set later (when inserting buffer in list) */
|
||||
new_buffer->layout_number = gui_layout_buffer_get_number (plugin_get_name (plugin),
|
||||
new_buffer->layout_number = gui_layout_buffer_get_number (gui_layout_buffers,
|
||||
plugin_get_name (plugin),
|
||||
name);
|
||||
new_buffer->name = strdup (name);
|
||||
new_buffer->short_name = strdup (name);
|
||||
|
||||
+115
-77
@@ -41,7 +41,14 @@ struct t_gui_layout_buffer *last_gui_layout_buffer = NULL;
|
||||
|
||||
struct t_gui_layout_window *gui_layout_windows = NULL;
|
||||
|
||||
int internal_id = 0;
|
||||
/* used to attribute a unique id for each window in tree */
|
||||
int gui_layout_internal_id = 0;
|
||||
|
||||
/* internal id of current window, when saving windows layout */
|
||||
int gui_layout_internal_id_current_window = 0;
|
||||
|
||||
/* pointer to current window, found when applying windows layout */
|
||||
struct t_gui_window *gui_layout_ptr_current_window = NULL;
|
||||
|
||||
|
||||
/*
|
||||
@@ -49,7 +56,9 @@ int internal_id = 0;
|
||||
*/
|
||||
|
||||
void
|
||||
gui_layout_buffer_remove (struct t_gui_layout_buffer *layout_buffer)
|
||||
gui_layout_buffer_remove (struct t_gui_layout_buffer **layout_buffers,
|
||||
struct t_gui_layout_buffer **last_layout_buffer,
|
||||
struct t_gui_layout_buffer *layout_buffer)
|
||||
{
|
||||
/* free data */
|
||||
if (layout_buffer->plugin_name)
|
||||
@@ -62,10 +71,10 @@ gui_layout_buffer_remove (struct t_gui_layout_buffer *layout_buffer)
|
||||
(layout_buffer->prev_layout)->next_layout = layout_buffer->next_layout;
|
||||
if (layout_buffer->next_layout)
|
||||
(layout_buffer->next_layout)->prev_layout = layout_buffer->prev_layout;
|
||||
if (gui_layout_buffers == layout_buffer)
|
||||
gui_layout_buffers = layout_buffer->next_layout;
|
||||
if (last_gui_layout_buffer == layout_buffer)
|
||||
last_gui_layout_buffer = layout_buffer->prev_layout;
|
||||
if (*layout_buffers == layout_buffer)
|
||||
*layout_buffers = layout_buffer->next_layout;
|
||||
if (*last_layout_buffer == layout_buffer)
|
||||
*last_layout_buffer = layout_buffer->prev_layout;
|
||||
|
||||
free (layout_buffer);
|
||||
}
|
||||
@@ -75,11 +84,13 @@ gui_layout_buffer_remove (struct t_gui_layout_buffer *layout_buffer)
|
||||
*/
|
||||
|
||||
void
|
||||
gui_layout_buffer_remove_all ()
|
||||
gui_layout_buffer_remove_all (struct t_gui_layout_buffer **layout_buffers,
|
||||
struct t_gui_layout_buffer **last_layout_buffer)
|
||||
{
|
||||
while (gui_layout_buffers)
|
||||
while (*layout_buffers)
|
||||
{
|
||||
gui_layout_buffer_remove (gui_layout_buffers);
|
||||
gui_layout_buffer_remove (layout_buffers, last_layout_buffer,
|
||||
*layout_buffers);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,11 +99,12 @@ gui_layout_buffer_remove_all ()
|
||||
*/
|
||||
|
||||
void
|
||||
gui_layout_buffer_reset ()
|
||||
gui_layout_buffer_reset (struct t_gui_layout_buffer **layout_buffers,
|
||||
struct t_gui_layout_buffer **last_layout_buffer)
|
||||
{
|
||||
struct t_gui_buffer *ptr_buffer;
|
||||
|
||||
gui_layout_buffer_remove_all ();
|
||||
gui_layout_buffer_remove_all (layout_buffers, last_layout_buffer);
|
||||
|
||||
for (ptr_buffer = gui_buffers; ptr_buffer;
|
||||
ptr_buffer = ptr_buffer->next_buffer)
|
||||
@@ -106,7 +118,9 @@ gui_layout_buffer_reset ()
|
||||
*/
|
||||
|
||||
struct t_gui_layout_buffer *
|
||||
gui_layout_buffer_add (const char *plugin_name, const char *buffer_name,
|
||||
gui_layout_buffer_add (struct t_gui_layout_buffer **layout_buffers,
|
||||
struct t_gui_layout_buffer **last_layout_buffer,
|
||||
const char *plugin_name, const char *buffer_name,
|
||||
int number)
|
||||
{
|
||||
struct t_gui_layout_buffer *new_layout_buffer;
|
||||
@@ -120,12 +134,12 @@ gui_layout_buffer_add (const char *plugin_name, const char *buffer_name,
|
||||
new_layout_buffer->number = number;
|
||||
|
||||
/* add layout buffer to list */
|
||||
new_layout_buffer->prev_layout = last_gui_layout_buffer;
|
||||
if (gui_layout_buffers)
|
||||
last_gui_layout_buffer->next_layout = new_layout_buffer;
|
||||
new_layout_buffer->prev_layout = *last_layout_buffer;
|
||||
if (*layout_buffers)
|
||||
(*last_layout_buffer)->next_layout = new_layout_buffer;
|
||||
else
|
||||
gui_layout_buffers = new_layout_buffer;
|
||||
last_gui_layout_buffer = new_layout_buffer;
|
||||
*layout_buffers = new_layout_buffer;
|
||||
*last_layout_buffer = new_layout_buffer;
|
||||
new_layout_buffer->next_layout = NULL;
|
||||
}
|
||||
|
||||
@@ -137,16 +151,21 @@ gui_layout_buffer_add (const char *plugin_name, const char *buffer_name,
|
||||
*/
|
||||
|
||||
void
|
||||
gui_layout_buffer_save ()
|
||||
gui_layout_buffer_save (struct t_gui_layout_buffer **layout_buffers,
|
||||
struct t_gui_layout_buffer **last_layout_buffer)
|
||||
{
|
||||
struct t_gui_buffer *ptr_buffer;
|
||||
|
||||
gui_layout_buffer_remove_all ();
|
||||
if (!layout_buffers || !last_layout_buffer)
|
||||
return;
|
||||
|
||||
gui_layout_buffer_remove_all (layout_buffers, last_layout_buffer);
|
||||
|
||||
for (ptr_buffer = gui_buffers; ptr_buffer;
|
||||
ptr_buffer = ptr_buffer->next_buffer)
|
||||
{
|
||||
gui_layout_buffer_add (plugin_get_name (ptr_buffer->plugin),
|
||||
gui_layout_buffer_add (layout_buffers, last_layout_buffer,
|
||||
plugin_get_name (ptr_buffer->plugin),
|
||||
ptr_buffer->name,
|
||||
ptr_buffer->number);
|
||||
}
|
||||
@@ -158,11 +177,12 @@ gui_layout_buffer_save ()
|
||||
*/
|
||||
|
||||
int
|
||||
gui_layout_buffer_get_number (const char *plugin_name, const char *buffer_name)
|
||||
gui_layout_buffer_get_number (struct t_gui_layout_buffer *layout_buffers,
|
||||
const char *plugin_name, const char *buffer_name)
|
||||
{
|
||||
struct t_gui_layout_buffer *ptr_layout_buffer;
|
||||
|
||||
for (ptr_layout_buffer = gui_layout_buffers; ptr_layout_buffer;
|
||||
for (ptr_layout_buffer = layout_buffers; ptr_layout_buffer;
|
||||
ptr_layout_buffer = ptr_layout_buffer->next_layout)
|
||||
{
|
||||
if ((string_strcasecmp (ptr_layout_buffer->plugin_name, plugin_name) == 0)
|
||||
@@ -177,22 +197,23 @@ gui_layout_buffer_get_number (const char *plugin_name, const char *buffer_name)
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_layout_buffer_apply: apply current layout for buffers
|
||||
* gui_layout_buffer_apply: apply a layout for buffers
|
||||
*/
|
||||
|
||||
void
|
||||
gui_layout_buffer_apply ()
|
||||
gui_layout_buffer_apply (struct t_gui_layout_buffer *layout_buffers)
|
||||
{
|
||||
struct t_gui_buffer *ptr_buffer;
|
||||
const char *plugin_name;
|
||||
|
||||
if (gui_layout_buffers)
|
||||
if (layout_buffers)
|
||||
{
|
||||
for (ptr_buffer = gui_buffers; ptr_buffer;
|
||||
ptr_buffer = ptr_buffer->next_buffer)
|
||||
{
|
||||
plugin_name = plugin_get_name (ptr_buffer->plugin);
|
||||
ptr_buffer->layout_number = gui_layout_buffer_get_number (plugin_name,
|
||||
ptr_buffer->layout_number = gui_layout_buffer_get_number (layout_buffers,
|
||||
plugin_name,
|
||||
ptr_buffer->name);
|
||||
if ((ptr_buffer->layout_number > 0)
|
||||
&& (ptr_buffer->layout_number != ptr_buffer->number))
|
||||
@@ -231,12 +252,12 @@ gui_layout_window_remove (struct t_gui_layout_window *layout_window)
|
||||
*/
|
||||
|
||||
void
|
||||
gui_layout_window_remove_all ()
|
||||
gui_layout_window_remove_all (struct t_gui_layout_window **layout_windows)
|
||||
{
|
||||
if (gui_layout_windows)
|
||||
if (*layout_windows)
|
||||
{
|
||||
gui_layout_window_remove (gui_layout_windows);
|
||||
gui_layout_windows = NULL;
|
||||
gui_layout_window_remove (*layout_windows);
|
||||
*layout_windows = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -245,11 +266,11 @@ gui_layout_window_remove_all ()
|
||||
*/
|
||||
|
||||
void
|
||||
gui_layout_window_reset ()
|
||||
gui_layout_window_reset (struct t_gui_layout_window **layout_windows)
|
||||
{
|
||||
struct t_gui_window *ptr_win;
|
||||
|
||||
gui_layout_window_remove_all ();
|
||||
gui_layout_window_remove_all (layout_windows);
|
||||
|
||||
for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
|
||||
{
|
||||
@@ -267,28 +288,32 @@ gui_layout_window_reset ()
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_layout_window_search_by_id_tree: search a layout window by internal id
|
||||
* in a tree
|
||||
* gui_layout_window_search_by_id: search a layout window by internal id
|
||||
* in a layout
|
||||
*/
|
||||
|
||||
struct t_gui_layout_window *
|
||||
gui_layout_window_search_by_id_tree (struct t_gui_layout_window *tree, int id)
|
||||
gui_layout_window_search_by_id (struct t_gui_layout_window *layout_windows,
|
||||
int id)
|
||||
{
|
||||
struct t_gui_layout_window *res;
|
||||
|
||||
if (tree->internal_id == id)
|
||||
return tree;
|
||||
if (!layout_windows)
|
||||
return NULL;
|
||||
|
||||
if (tree->child1)
|
||||
if (layout_windows->internal_id == id)
|
||||
return layout_windows;
|
||||
|
||||
if (layout_windows->child1)
|
||||
{
|
||||
res = gui_layout_window_search_by_id_tree (tree->child1, id);
|
||||
res = gui_layout_window_search_by_id (layout_windows->child1, id);
|
||||
if (res)
|
||||
return res;
|
||||
}
|
||||
|
||||
if (tree->child2)
|
||||
if (layout_windows->child2)
|
||||
{
|
||||
res = gui_layout_window_search_by_id_tree (tree->child2, id);
|
||||
res = gui_layout_window_search_by_id (layout_windows->child2, id);
|
||||
if (res)
|
||||
return res;
|
||||
}
|
||||
@@ -296,25 +321,13 @@ gui_layout_window_search_by_id_tree (struct t_gui_layout_window *tree, int id)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_layout_window_search_by_id: search a layout window by internal id
|
||||
*/
|
||||
|
||||
struct t_gui_layout_window *
|
||||
gui_layout_window_search_by_id (int id)
|
||||
{
|
||||
if (!gui_layout_windows)
|
||||
return NULL;
|
||||
|
||||
return gui_layout_window_search_by_id_tree (gui_layout_windows, id);
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_layout_window_add: add a window layout
|
||||
*/
|
||||
|
||||
struct t_gui_layout_window *
|
||||
gui_layout_window_add (int internal_id,
|
||||
gui_layout_window_add (struct t_gui_layout_window **layout_windows,
|
||||
int internal_id,
|
||||
struct t_gui_layout_window *parent,
|
||||
int split_pct, int split_horiz,
|
||||
const char *plugin_name, const char *buffer_name)
|
||||
@@ -345,7 +358,7 @@ gui_layout_window_add (int internal_id,
|
||||
else
|
||||
{
|
||||
/* no parent? => it's root! */
|
||||
gui_layout_windows = new_layout_window;
|
||||
*layout_windows = new_layout_window;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -357,14 +370,19 @@ gui_layout_window_add (int internal_id,
|
||||
*/
|
||||
|
||||
void
|
||||
gui_layout_window_save_tree (struct t_gui_layout_window *parent_layout,
|
||||
gui_layout_window_save_tree (struct t_gui_layout_window **layout_windows,
|
||||
struct t_gui_layout_window *parent_layout,
|
||||
struct t_gui_window_tree *tree)
|
||||
{
|
||||
struct t_gui_layout_window *layout_window;
|
||||
|
||||
if (tree->window)
|
||||
{
|
||||
layout_window = gui_layout_window_add (internal_id++,
|
||||
if (tree->window == gui_current_window)
|
||||
gui_layout_internal_id_current_window = gui_layout_internal_id;
|
||||
|
||||
layout_window = gui_layout_window_add (layout_windows,
|
||||
gui_layout_internal_id,
|
||||
parent_layout,
|
||||
0, 0,
|
||||
plugin_get_name (tree->window->buffer->plugin),
|
||||
@@ -372,7 +390,8 @@ gui_layout_window_save_tree (struct t_gui_layout_window *parent_layout,
|
||||
}
|
||||
else
|
||||
{
|
||||
layout_window = gui_layout_window_add (internal_id++,
|
||||
layout_window = gui_layout_window_add (layout_windows,
|
||||
gui_layout_internal_id,
|
||||
parent_layout,
|
||||
tree->split_pct,
|
||||
tree->split_horizontal,
|
||||
@@ -380,24 +399,33 @@ gui_layout_window_save_tree (struct t_gui_layout_window *parent_layout,
|
||||
NULL);
|
||||
}
|
||||
|
||||
gui_layout_internal_id++;
|
||||
|
||||
if (tree->child1)
|
||||
gui_layout_window_save_tree (layout_window, tree->child1);
|
||||
gui_layout_window_save_tree (layout_windows,
|
||||
layout_window, tree->child1);
|
||||
|
||||
if (tree->child2)
|
||||
gui_layout_window_save_tree (layout_window, tree->child2);
|
||||
gui_layout_window_save_tree (layout_windows,
|
||||
layout_window, tree->child2);
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_layout_window_save: save current layout for windows
|
||||
* return internal id of current window
|
||||
*/
|
||||
|
||||
void
|
||||
gui_layout_window_save ()
|
||||
int
|
||||
gui_layout_window_save (struct t_gui_layout_window **layout_windows)
|
||||
{
|
||||
gui_layout_window_remove_all ();
|
||||
gui_layout_window_remove_all (layout_windows);
|
||||
|
||||
internal_id = 1;
|
||||
gui_layout_window_save_tree (NULL, gui_windows_tree);
|
||||
gui_layout_internal_id = 1;
|
||||
gui_layout_internal_id_current_window = -1;
|
||||
|
||||
gui_layout_window_save_tree (layout_windows, NULL, gui_windows_tree);
|
||||
|
||||
return gui_layout_internal_id_current_window;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -464,7 +492,8 @@ gui_layout_window_check_all_buffers ()
|
||||
*/
|
||||
|
||||
void
|
||||
gui_layout_window_apply_tree (struct t_gui_layout_window *layout_window)
|
||||
gui_layout_window_apply_tree (struct t_gui_layout_window *layout_window,
|
||||
int internal_id_current_window)
|
||||
{
|
||||
struct t_gui_window *new_window, *old_window;
|
||||
|
||||
@@ -485,17 +514,22 @@ gui_layout_window_apply_tree (struct t_gui_layout_window *layout_window)
|
||||
}
|
||||
|
||||
if (layout_window->child2)
|
||||
gui_layout_window_apply_tree (layout_window->child2);
|
||||
gui_layout_window_apply_tree (layout_window->child2,
|
||||
internal_id_current_window);
|
||||
|
||||
if (old_window != gui_current_window)
|
||||
gui_window_switch (old_window);
|
||||
|
||||
if (layout_window->child1)
|
||||
gui_layout_window_apply_tree (layout_window->child1);
|
||||
gui_layout_window_apply_tree (layout_window->child1,
|
||||
internal_id_current_window);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* leaf */
|
||||
if (layout_window->internal_id == internal_id_current_window)
|
||||
gui_layout_ptr_current_window = gui_current_window;
|
||||
|
||||
gui_window_set_layout_plugin_name (gui_current_window,
|
||||
layout_window->plugin_name);
|
||||
gui_window_set_layout_buffer_name (gui_current_window,
|
||||
@@ -508,21 +542,25 @@ gui_layout_window_apply_tree (struct t_gui_layout_window *layout_window)
|
||||
*/
|
||||
|
||||
void
|
||||
gui_layout_window_apply ()
|
||||
gui_layout_window_apply (struct t_gui_layout_window *layout_windows,
|
||||
int internal_id_current_window)
|
||||
{
|
||||
struct t_gui_window *old_window;
|
||||
|
||||
if (gui_layout_windows)
|
||||
if (layout_windows)
|
||||
{
|
||||
gui_window_merge_all (gui_current_window);
|
||||
|
||||
old_window = gui_current_window;
|
||||
gui_layout_ptr_current_window = NULL;
|
||||
|
||||
gui_layout_window_apply_tree (gui_layout_windows);
|
||||
gui_layout_window_apply_tree (layout_windows,
|
||||
internal_id_current_window);
|
||||
|
||||
gui_layout_window_check_all_buffers ();
|
||||
|
||||
gui_window_switch (old_window);
|
||||
gui_window_switch ((gui_layout_ptr_current_window) ?
|
||||
gui_layout_ptr_current_window : old_window);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -540,14 +578,14 @@ gui_layout_save_on_exit ()
|
||||
case CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_NONE:
|
||||
break;
|
||||
case CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_BUFFERS:
|
||||
gui_layout_buffer_save ();
|
||||
gui_layout_buffer_save (&gui_layout_buffers, &last_gui_layout_buffer);
|
||||
break;
|
||||
case CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_WINDOWS:
|
||||
gui_layout_window_save ();
|
||||
gui_layout_window_save (&gui_layout_windows);
|
||||
break;
|
||||
case CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_ALL:
|
||||
gui_layout_buffer_save ();
|
||||
gui_layout_window_save ();
|
||||
gui_layout_buffer_save (&gui_layout_buffers, &last_gui_layout_buffer);
|
||||
gui_layout_window_save (&gui_layout_windows);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+22
-13
@@ -51,32 +51,41 @@ struct t_gui_layout_window
|
||||
/* layout variables */
|
||||
|
||||
extern struct t_gui_layout_buffer *gui_layout_buffers;
|
||||
extern struct t_gui_layout_buffer *gui_layout_last_buffer;
|
||||
extern struct t_gui_layout_buffer *last_gui_layout_buffer;
|
||||
extern struct t_gui_layout_window *gui_layout_windows;
|
||||
|
||||
/* layout functions */
|
||||
|
||||
extern void gui_layout_buffer_remove_all ();
|
||||
extern void gui_layout_buffer_reset ();
|
||||
extern struct t_gui_layout_buffer *gui_layout_buffer_add (const char *plugin_name,
|
||||
extern void gui_layout_buffer_remove_all (struct t_gui_layout_buffer **layout_buffers,
|
||||
struct t_gui_layout_buffer **last_layout_buffer);
|
||||
extern void gui_layout_buffer_reset (struct t_gui_layout_buffer **layout_buffers,
|
||||
struct t_gui_layout_buffer **last_layout_buffer);
|
||||
extern struct t_gui_layout_buffer *gui_layout_buffer_add (struct t_gui_layout_buffer **layout_buffers,
|
||||
struct t_gui_layout_buffer **last_layout_buffer,
|
||||
const char *plugin_name,
|
||||
const char *buffer_name,
|
||||
int number);
|
||||
extern void gui_layout_buffer_save ();
|
||||
extern int gui_layout_buffer_get_number (const char *plugin_name,
|
||||
extern void gui_layout_buffer_save (struct t_gui_layout_buffer **layout_buffers,
|
||||
struct t_gui_layout_buffer **last_layout_buffer);
|
||||
extern int gui_layout_buffer_get_number (struct t_gui_layout_buffer *layout_buffers,
|
||||
const char *plugin_name,
|
||||
const char *buffer_name);
|
||||
extern void gui_layout_buffer_apply ();
|
||||
extern void gui_layout_buffer_apply (struct t_gui_layout_buffer *layout_buffers);
|
||||
|
||||
extern void gui_layout_window_remove_all ();
|
||||
extern void gui_layout_window_reset ();
|
||||
extern struct t_gui_layout_window *gui_layout_window_search_by_id (int id);
|
||||
extern struct t_gui_layout_window *gui_layout_window_add (int internal_id,
|
||||
extern void gui_layout_window_remove_all (struct t_gui_layout_window **layout_windows);
|
||||
extern void gui_layout_window_reset (struct t_gui_layout_window **layout_windows);
|
||||
extern struct t_gui_layout_window *gui_layout_window_search_by_id (struct t_gui_layout_window *layout_windows,
|
||||
int id);
|
||||
extern struct t_gui_layout_window *gui_layout_window_add (struct t_gui_layout_window **layout_windows,
|
||||
int internal_id,
|
||||
struct t_gui_layout_window *parent,
|
||||
int split_pct,
|
||||
int split_horiz,
|
||||
const char *plugin_name,
|
||||
const char *buffer_name);
|
||||
extern void gui_layout_window_save ();
|
||||
extern void gui_layout_window_apply ();
|
||||
extern int gui_layout_window_save (struct t_gui_layout_window **layout_windows);
|
||||
extern void gui_layout_window_apply (struct t_gui_layout_window *layout_windows,
|
||||
int internal_id_current_window);
|
||||
extern void gui_layout_window_check_buffer (struct t_gui_buffer *buffer);
|
||||
|
||||
extern void gui_layout_save_on_exit ();
|
||||
|
||||
+39
-1
@@ -48,6 +48,7 @@
|
||||
#include "gui-filter.h"
|
||||
#include "gui-input.h"
|
||||
#include "gui-hotlist.h"
|
||||
#include "gui-layout.h"
|
||||
|
||||
|
||||
int gui_init_ok = 0; /* = 1 if GUI is initialized*/
|
||||
@@ -61,6 +62,11 @@ struct t_gui_window *gui_current_window = NULL; /* current window */
|
||||
|
||||
struct t_gui_window_tree *gui_windows_tree = NULL; /* windows tree */
|
||||
|
||||
struct t_gui_layout_window *gui_window_layout_before_zoom = NULL;
|
||||
/* layout before zooming on a window */
|
||||
int gui_window_layout_id_current_window = -1;
|
||||
/* current window id before zoom */
|
||||
|
||||
|
||||
/*
|
||||
* gui_window_ask_refresh: set "gui_window_refresh_needed" flag
|
||||
@@ -910,6 +916,34 @@ gui_window_search_stop (struct t_gui_window *window)
|
||||
gui_buffer_ask_chat_refresh (window->buffer, 2);
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_window_zoom: zoom window (maximize it or restore layout before previous
|
||||
* zoom)
|
||||
*/
|
||||
|
||||
void
|
||||
gui_window_zoom (struct t_gui_window *window)
|
||||
{
|
||||
if (!gui_ok)
|
||||
return;
|
||||
|
||||
if (gui_window_layout_before_zoom)
|
||||
{
|
||||
/* restore layout as it was before zooming a window */
|
||||
gui_layout_window_apply (gui_window_layout_before_zoom,
|
||||
gui_window_layout_id_current_window);
|
||||
gui_layout_window_remove_all (&gui_window_layout_before_zoom);
|
||||
gui_window_layout_id_current_window = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* save layout and zoom on current window */
|
||||
gui_window_layout_id_current_window =
|
||||
gui_layout_window_save (&gui_window_layout_before_zoom);
|
||||
gui_window_merge_all (window);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_window_add_to_infolist: add a window in an infolist
|
||||
* return 1 if ok, 0 if error
|
||||
@@ -972,7 +1006,11 @@ gui_window_print_log ()
|
||||
struct t_gui_bar_window *ptr_bar_win;
|
||||
|
||||
log_printf ("");
|
||||
log_printf ("current window = 0x%lx", gui_current_window);
|
||||
log_printf ("gui_windows . . . . . . . . . : 0x%lx", gui_windows);
|
||||
log_printf ("last_gui_window . . . . . . . : 0x%lx", last_gui_window);
|
||||
log_printf ("gui_current window. . . . . . : 0x%lx", gui_current_window);
|
||||
log_printf ("gui_windows_tree. . . . . . . : 0x%lx", gui_windows_tree);
|
||||
log_printf ("gui_window_layout_before_zoom : 0x%lx", gui_window_layout_before_zoom);
|
||||
|
||||
for (ptr_window = gui_windows; ptr_window; ptr_window = ptr_window->next_window)
|
||||
{
|
||||
|
||||
@@ -135,6 +135,7 @@ extern void gui_window_search_start (struct t_gui_window *window);
|
||||
extern void gui_window_search_restart (struct t_gui_window *window);
|
||||
extern void gui_window_search_stop (struct t_gui_window *window);
|
||||
extern int gui_window_search_text (struct t_gui_window *window);
|
||||
extern void gui_window_zoom (struct t_gui_window *window);
|
||||
extern int gui_window_add_to_infolist (struct t_infolist *infolist,
|
||||
struct t_gui_window *window);
|
||||
extern void gui_window_print_log ();
|
||||
|
||||
Reference in New Issue
Block a user