summaryrefslogtreecommitdiff
path: root/riscos/frames.h
blob: eee37d10724f3fd37b5be6ed2cc5bebf5f3052b9 (plain)
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
/*
 * This file is part of NetSurf, http://netsurf.sourceforge.net/
 * Licensed under the GNU General Public License,
 *                http://www.opensource.org/licenses/gpl-license
 * Copyright 2003 John M Bell <jmb202@ecs.soton.ac.uk>
 */

/*
 * Frames are represented as a tree structure. eg:
 *
 *            index.html
 *                |
 *      --------------------
 *     |                   |
 *   nav.html          main.html
 *                         |
 *                --------------------
 *               |         |         |
 *            top.html  mid.html  end.html
 *
 * might represent something like:
 *
 *   ------------------------
 *  | nav.html |  top.html  |
 *  |          |------------|
 *  |          |  mid.html  |
 *  |          |------------|
 *  |          |  end.html  |
 *  -------------------------
 *
 * where the left frame is main.html with three sub frames (top, mid, end)
 * and the entire page is index.html with two sub frames (nav, main)
 *
 * This is hung off the browser window structure.
 */

#ifndef _NETSURF_RISCOS_FRAMES_H_
#define _NETSURF_RISCOS_FRAMES_H_

#include "netsurf/utils/config.h"
#include "netsurf/content/content.h"
#include "netsurf/desktop/browser.h"
#include "netsurf/render/box.h"
#include "netsurf/riscos/gui.h"

#include "oslib/wimp.h"

#ifdef WITH_FRAMES

struct frame_list {

        struct content *c;
        struct browser_window *parent;
        struct content *page;
        struct box *box;
        struct object_params *params;
        void **state;
        struct browser_window *bw;
        gui_window *g;
        struct frame_list *next;
        struct frame_list *prev;
};

void frame_add_instance(struct content *c, struct browser_window *bw,
                struct content *page, struct box *box,
                struct object_params *params, void **state);
void frame_remove_instance(struct content *c, struct browser_window *bw,
                struct content *page, struct box *box,
                struct object_params *params, void **state);
void frame_reshape_instance(struct content *c, struct browser_window *bw,
                struct content *page, struct box *box,
                struct object_params *params, void **state);
#endif
#endif