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
|
#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"
using namespace fltk;
typedef enum {
UI_BACK = 0,
UI_FORW,
UI_HOME,
UI_RELOAD,
UI_SAVE,
UI_STOP,
UI_BOOK,
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;
Group *TopGroup;
Button *Back, *Forw, *Home, *Reload, *Save, *Stop, *Bookmarks,
*Clear, *Search, *FullScreen, *ImageLoad, *BugMeter;
Input *Location;
PackedGroup *ProgBox;
CustProgressBox *PProg, *IProg;
Group *Panel, *StatusPanel;
Widget *Main;
Output *Status;
int MainIdx;
// Panel customization variables
int PanelSize, CuteColor, Small_Icons;
int xpos, bw, bh, fh, lh, lbl;
UIPanelmode Panelmode;
Findbar *findbar;
PackedGroup *make_toolbar(int tw, int th);
PackedGroup *make_location();
PackedGroup *make_progress_bars(int wide, int thin_up);
void make_menubar(int x, int y, int w, int h);
Group *make_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_page_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);
bool get_images_enabled() { return ImageLoad->state();}
Widget *fullscreen_button() { return FullScreen; }
void fullscreen_toggle() { FullScreen->do_callback(); }
CustTabGroup *tabs() { return Tabs; }
void tabs(CustTabGroup *tabs) { Tabs = tabs; }
// Hooks to method callbacks
void panel_cb_i();
void color_change_cb_i();
void toggle_cb_i();
void panelmode_cb_i();
};
#endif // __UI_HH__
|