ELinks 0.18.0
menu.c File Reference
#include <stdlib.h>
#include <string.h>
#include "elinks.h"
#include "bfu/hotkey.h"
#include "bfu/inpfield.h"
#include "bfu/menu.h"
#include "config/kbdbind.h"
#include "intl/libintl.h"
#include "session/session.h"
#include "terminal/draw.h"
#include "terminal/event.h"
#include "terminal/kbd.h"
#include "terminal/mouse.h"
#include "terminal/tab.h"
#include "terminal/terminal.h"
#include "terminal/window.h"
#include "util/color.h"
#include "util/conv.h"
#include "util/memory.h"
#include "viewer/action.h"
Include dependency graph for menu.c:

Macros

#define _GNU_SOURCE   /* XXX: we _WANT_ strcasestr() ! */
#define L_MAINMENU_SPACE   2
#define R_MAINMENU_SPACE   2
#define L_MAINTEXT_SPACE   1
#define R_MAINTEXT_SPACE   1
#define L_RTEXT_SPACE   1
#define R_RTEXT_SPACE   1
#define L_TEXT_SPACE   1
#define R_TEXT_SPACE   1
#define MENU_BORDER_SIZE   1
#define DIST   5
#define realloc_menu_items(mi_, size)

Functions

static void display_mainmenu (struct terminal *term, struct menu *menu)
static void set_menu_selection (struct menu *menu, int pos)
void deselect_mainmenu (struct terminal *term, struct menu *menu)
static int count_items (struct menu_item *items)
static void free_menu_items (struct menu_item *items)
void do_menu_selected (struct terminal *term, struct menu_item *items, void *data, int selected, int hotkeys)
void do_menu (struct terminal *term, struct menu_item *items, void *data, int hotkeys)
static void select_menu_item (struct terminal *term, struct menu_item *it, void *data)
static void select_menu (struct terminal *term, struct menu *menu)
static int get_menuitem_text_width (struct terminal *term, struct menu_item *mi)
static int get_menuitem_rtext_width (struct terminal *term, struct menu_item *mi)
static int get_menuitem_width (struct terminal *term, struct menu_item *mi, int max_width)
static void count_menu_size (struct terminal *term, struct menu *menu)
static void scroll_menu (struct menu *menu, int steps, int wrap)
static void draw_menu_left_text (struct terminal *term, char *text, int len, int x, int y, int width, struct color_pair *color)
static void draw_menu_left_text_hk (struct terminal *term, char *text, int hotkey_pos, int x, int y, int width, struct color_pair *color, int selected)
static void draw_menu_right_text (struct terminal *term, char *text, int len, int x, int y, int width, struct color_pair *color)
static void display_menu (struct terminal *term, struct menu *menu)
static void menu_page_up (struct menu *menu)
static void menu_page_down (struct menu *menu)
static int search_menu_item (struct menu_item *item, char *buffer, struct terminal *term)
static enum input_line_code menu_search_handler (struct input_line *line, int action_id)
static void search_menu (struct menu *menu)
static void menu_kbd_handler (struct menu *menu, struct term_event *ev)
static void menu_handler (struct window *win, struct term_event *ev)
void do_mainmenu (struct terminal *term, struct menu_item *items, void *data, int sel)
static void mainmenu_kbd_handler (struct menu *menu, struct term_event *ev)
static void mainmenu_handler (struct window *win, struct term_event *ev)
struct menu_itemnew_menu (menu_item_flags_T flags)
void add_to_menu (struct menu_item **mi, const char *text, const char *rtext, main_action_T action_id, menu_func_T func, void *data, menu_item_flags_T flags)

Variables

static char m_submenu [] = ">>"
static int m_submenu_len = sizeof(m_submenu) - 1
static window_handler_T menu_handler
static window_handler_T mainmenu_handler

Macro Definition Documentation

◆ _GNU_SOURCE

#define _GNU_SOURCE   /* XXX: we _WANT_ strcasestr() ! */

◆ DIST

#define DIST   5

◆ L_MAINMENU_SPACE

#define L_MAINMENU_SPACE   2

◆ L_MAINTEXT_SPACE

#define L_MAINTEXT_SPACE   1

◆ L_RTEXT_SPACE

#define L_RTEXT_SPACE   1

◆ L_TEXT_SPACE

#define L_TEXT_SPACE   1

◆ MENU_BORDER_SIZE

#define MENU_BORDER_SIZE   1

◆ R_MAINMENU_SPACE

#define R_MAINMENU_SPACE   2

◆ R_MAINTEXT_SPACE

#define R_MAINTEXT_SPACE   1

◆ R_RTEXT_SPACE

#define R_RTEXT_SPACE   1

◆ R_TEXT_SPACE

#define R_TEXT_SPACE   1

◆ realloc_menu_items

#define realloc_menu_items ( mi_,
size )
Value:
mem_align_alloc(mi_, size, (size) + 2, 0xF)
#define mem_align_alloc(ptr, old, new_, mask)
Definition memory.h:148

Function Documentation

◆ add_to_menu()

void add_to_menu ( struct menu_item ** mi,
const char * text,
const char * rtext,
main_action_T action_id,
menu_func_T func,
void * data,
menu_item_flags_T flags )

◆ count_items()

int count_items ( struct menu_item * items)
inlinestatic

◆ count_menu_size()

void count_menu_size ( struct terminal * term,
struct menu * menu )
static

◆ deselect_mainmenu()

void deselect_mainmenu ( struct terminal * term,
struct menu * menu )

◆ display_mainmenu()

void display_mainmenu ( struct terminal * term,
struct menu * menu )
static

◆ display_menu()

void display_menu ( struct terminal * term,
struct menu * menu )
static

◆ do_mainmenu()

void do_mainmenu ( struct terminal * term,
struct menu_item * items,
void * data,
int sel )

◆ do_menu()

void do_menu ( struct terminal * term,
struct menu_item * items,
void * data,
int hotkeys )

◆ do_menu_selected()

void do_menu_selected ( struct terminal * term,
struct menu_item * items,
void * data,
int selected,
int hotkeys )

◆ draw_menu_left_text()

void draw_menu_left_text ( struct terminal * term,
char * text,
int len,
int x,
int y,
int width,
struct color_pair * color )
inlinestatic

◆ draw_menu_left_text_hk()

void draw_menu_left_text_hk ( struct terminal * term,
char * text,
int hotkey_pos,
int x,
int y,
int width,
struct color_pair * color,
int selected )
inlinestatic

◆ draw_menu_right_text()

void draw_menu_right_text ( struct terminal * term,
char * text,
int len,
int x,
int y,
int width,
struct color_pair * color )
inlinestatic

◆ free_menu_items()

void free_menu_items ( struct menu_item * items)
static

◆ get_menuitem_rtext_width()

int get_menuitem_rtext_width ( struct terminal * term,
struct menu_item * mi )
static

◆ get_menuitem_text_width()

int get_menuitem_text_width ( struct terminal * term,
struct menu_item * mi )
static

◆ get_menuitem_width()

int get_menuitem_width ( struct terminal * term,
struct menu_item * mi,
int max_width )
static

◆ mainmenu_handler()

void mainmenu_handler ( struct window * win,
struct term_event * ev )
static

◆ mainmenu_kbd_handler()

void mainmenu_kbd_handler ( struct menu * menu,
struct term_event * ev )
static

◆ menu_handler()

void menu_handler ( struct window * win,
struct term_event * ev )
static

◆ menu_kbd_handler()

void menu_kbd_handler ( struct menu * menu,
struct term_event * ev )
static

◆ menu_page_down()

void menu_page_down ( struct menu * menu)
static

◆ menu_page_up()

void menu_page_up ( struct menu * menu)
static

◆ menu_search_handler()

enum input_line_code menu_search_handler ( struct input_line * line,
int action_id )
static

◆ new_menu()

struct menu_item * new_menu ( menu_item_flags_T flags)

◆ scroll_menu()

void scroll_menu ( struct menu * menu,
int steps,
int wrap )
static

◆ search_menu()

void search_menu ( struct menu * menu)
static

◆ search_menu_item()

int search_menu_item ( struct menu_item * item,
char * buffer,
struct terminal * term )
inlinestatic

◆ select_menu()

void select_menu ( struct terminal * term,
struct menu * menu )
inlinestatic

◆ select_menu_item()

void select_menu_item ( struct terminal * term,
struct menu_item * it,
void * data )
static

◆ set_menu_selection()

void set_menu_selection ( struct menu * menu,
int pos )
static

Variable Documentation

◆ m_submenu

char m_submenu[] = ">>"
static

◆ m_submenu_len

int m_submenu_len = sizeof(m_submenu) - 1
static

◆ mainmenu_handler

window_handler_T mainmenu_handler
static

◆ menu_handler

window_handler_T menu_handler
static