1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
#ifndef __UI_HH__
#define __UI_HH__
// UI for dillo --------------------------------------------------------------
#include <fltk/Window.h>
#include <fltk/Widget.h>
#include <fltk/Button.h>
#include <fltk/Input.h>
#include <fltk/PackedGroup.h>
#include <fltk/Output.h>
#include <fltk/Image.h>
#include <fltk/MultiImage.h>
#include <fltk/MenuBuild.h>
#include <fltk/TabGroup.h>
#include "findbar.hh"
typedef enum {
UI_BACK = 0,
UI_FORW,
UI_HOME,
UI_RELOAD,
UI_SAVE,
UI_STOP,
UI_BOOK,
UI_TOOLS,
UI_CLEAR,
UI_SEARCH
} UIButton;
typedef enum {
UI_NORMAL = 0, /* make sure it's compatible with bool */
UI_HIDDEN = 1,
UI_TEMPORARILY_SHOW_PANELS
} UIPanelmode;
// Private classes
class CustProgressBox;
class CustTabGroup;
//
// UI class definition -------------------------------------------------------
//
class UI : public fltk::Group {
CustTabGroup *Tabs;
char *TabTooltip;
fltk::Group *TopGroup;
fltk::Button *Back, *Forw, *Home, *Reload, *Save, *Stop, *Bookmarks, *Tools,
*Clear, *Search, *FullScreen, *BugMeter, *FileButton;
fltk::Input *Location;
fltk::PackedGroup *ProgBox;
CustProgressBox *PProg, *IProg;
fltk::Group *Panel, *StatusPanel;
fltk::Widget *Main;
fltk::Output *Status;
int MainIdx;
// Panel customization variables
int PanelSize, CuteColor, Small_Icons;
int xpos, bw, bh, fh, lh, lbl;
UIPanelmode Panelmode;
Findbar *findbar;
int PointerOnLink;
fltk::PackedGroup *make_toolbar(int tw, int th);
fltk::PackedGroup *make_location();
fltk::PackedGroup *make_progress_bars(int wide, int thin_up);
void make_menubar(int x, int y, int w, int h);
fltk::Widget *make_filemenu_button();
fltk::Group *make_panel(int ww);
fltk::Group *make_status_panel(int ww);
public:
UI(int x,int y,int w,int h, const char* label = 0, const UI *cur_ui=NULL);
~UI();
// To manage what events to catch and which to let pass
int handle(int event);
const char *get_location();
void set_location(const char *str);
void focus_location();
void focus_main();
void set_status(const char *str);
void set_page_prog(size_t nbytes, int cmd);
void set_img_prog(int n_img, int t_img, int cmd);
void set_bug_prog(int n_bug);
void set_render_layout(Widget &nw);
void set_tab_title(const char *label);
void customize(int flags);
void button_set_sens(UIButton btn, int sens);
void paste_url();
void set_panelmode(UIPanelmode mode);
UIPanelmode get_panelmode();
void set_findbar_visibility(bool visible);
Widget *fullscreen_button() { return FullScreen; }
void fullscreen_toggle() { FullScreen->do_callback(); }
CustTabGroup *tabs() { return Tabs; }
void tabs(CustTabGroup *tabs) { Tabs = tabs; }
int pointerOnLink() { return PointerOnLink; }
void pointerOnLink(int flag) { PointerOnLink = flag; }
// Hooks to method callbacks
void panel_cb_i();
void color_change_cb_i();
void toggle_cb_i();
void panelmode_cb_i();
};
#endif // __UI_HH__
|