Re: [PATCH] Popup menu

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

 



On Sun, Feb 22, 2009 at 12:40, Giuseppe Bilotta
<giuseppe.bilotta@xxxxxxxxx> wrote:
> Make the menu into a popup window that complements the status prompt.
>
> Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@xxxxxxxxx>
> ---
>
> We should probably consider using the high-level menu and panel features from
> ncurses if we want to do anything more complex.

First of all very cute. I take it as a comment that the menu thing I
added yesterday leaves a lot to be desired. :) I certainly agree it is
limited and would have liked to make it similar to Vim's horizontal
menu, but gave up when it got too complicated.

About using the menu, panel and maybe even the form library: Yes, it
might make sense but then again I had also hoped to maybe at some
point try to get tig running on just the terminfo interface. But I
don't know if there is any compelling reason for doing this anymore,
other than reducing the dependencies a bit.

BTW, the code doesn't handle resizing or background loading (try
starting with `tig --stat` and immediately press 'o'). To fix this I
don't know if it would be better to "rip off" the status window and
use this as the menu window. It would require a few flags to make the
resize code do the right thing.

>  tig.c |  117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 files changed, 115 insertions(+), 2 deletions(-)
>
> diff --git a/tig.c b/tig.c
> index 20a40b9..017b05f 100644
> --- a/tig.c
> +++ b/tig.c
> @@ -6542,6 +6542,100 @@ utf8_length(const char **start, size_t skip, int *width, size_t max_width, int *
> +static void
> +menu_select(int index)
> +{
> +       WINDOW *win = menu.win;
> +       int width = menu.width-2;
> +       if (menu.selected >= 0) {
> +               menu_set_line_attr(menu.selected, LINE_TITLE_FOCUS);
> +       }
> +       if (index >= 0) {
> +               menu_set_line_attr(index, LINE_CURSOR);
> +       }
> +       menu.selected = index;
> +       menu_popup();
> +}
>

tig.c: In function 'menu_select':
tig.c:6629: warning: unused variable 'width'
tig.c:6628: warning: unused variable 'win'

-- 
Jonas Fonseca
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux