1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-10-11 05:29:28 -04:00
elinks/src/bfu
2022-01-16 21:08:50 +01:00
..
button.c
button.h
checkbox.c
checkbox.h
common.h
dialog.c
dialog.h
group.c
group.h
hierbox.c
hierbox.h
hotkey.c
hotkey.h
inpfield.c
inpfield.h
inphist.c
inphist.h
leds.c
leds.h
listbox.c
listbox.h
listmenu.c
listmenu.h
Makefile
menu.c
menu.h
meson.build
msgbox.c
msgbox.h
README
style.c
style.h
text.c
text.h
widget.c
widget.h

OVERVIEW OF BFU
===============

BFU is the text-mode user interface used by ELinks.  It builds dialogs,
widgets and menus on top of the window system implemented at src/terminal/.

                                                 =====================
                                                 | struct widget_ops |
                                                 |   bfu/widget.h    |
                                                 =====================
                                                          1^
                                                           |
                                                          *|
 ====================  ======================      =================
 | struct menu_item |  | struct widget_data | *  1 | struct widget |
 |    bfu/menu.h    |  |    bfu/widget.h    | ---> |  bfu/widget.h |
 ====================  ======================      =================
       +^                     +^                       +^
        |                      |                        |
       ?|                     1|                       1|
 ===============     ======================       =================
 | struct menu |     | struct dialog_data | *   1 | struct dialog |
 |  bfu/menu.h |     |    bfu/dialog.h    | ----> |  bfu/dialog.h |
 ===============     ======================       =================
  ?^     ?^            ?^          ?|               1|      1|
   |      |             |           |                |       |
   |      |             |          1v                |      1v
   |     1v            1v    ======================  |  ========================
   |  =====================  | struct memory_list |  |  | struct dialog_layout |
   |  |   struct window   |  |   util/memlist.h   |  |  |     bfu/dialog.h     |
   |  | terminal/window.h |  ======================  |  ========================
   |  =====================                         ?v
   |               *^                             =========================
   |                |                             | struct dialog_refresh |
   |               1v                             |      bfu/dialog.h     |
   |          =======================             =========================
   |        ? |   struct terminal   |
   ---------- | terminal/terminal.h |
   main_menu  =======================
                   ?|           ?|
                    |            |
                   1v           ?v
 ==========================  =============================
 | struct terminal_screen |  | struct terminal_interlink |
 |   terminal/screen.h    |  |      terminal/event.c     |
 ==========================  =============================

                                    Legend:  ---> can be followed like a pointer
                                                ? zero or one      1 exactly one
 					        * zero or more     + one or more
                                    There may be errors in the quantifiers.