git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Popup menu

From
Jonas Fonseca <jonas.fonseca@gmail.com>
Date
Feb 22, 2009, 12:15 UTC
Message-ID
<2c6b72b30902220415q2d3cfa7dmd5fd584c89acbecc@mail.gmail.com>
In-Reply-To
<1235302820-32526-1-git-send-email-giuseppe.bilotta@gmail.com>

On Sun, Feb 22, 2009 at 12:40, Giuseppe Bilotta <giuseppe.bilotta@gmail.com> wrote:

Show 7 quoted lines
> Make the menu into a popup window that complements the status prompt.
>
> Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
> ---
>
> 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.

Show 23 quoted lines
>  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
Previous: Giuseppe BilottaNext: Giuseppe Bilotta
Message 3 of 6 in “Popup menu”
  1. Popup menuGiuseppe Bilotta, Feb 22, 2009
  2. 'tig branch' opens tig in branch viewGiuseppe Bilotta, Feb 22, 2009
  3. Jonas FonsecaFeb 22, 2009
  4. Giuseppe BilottaFeb 22, 2009
  5. Felipe ContrerasFeb 22, 2009
  6. Giuseppe BilottaFeb 22, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.