blob: 08a5fe5829bd62a989312f0e8fcd3fbf8922006e (
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
/*
* Copyright 2015 Chris Young <chris@unsatisfactorysoftware.co.uk>
*
* This file is part of NetSurf, http://www.netsurf-browser.org/
*
* NetSurf is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* NetSurf is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/** \file
* Interface to Intuition-based context menu operations
*/
#ifndef AMIGA_CTXMENU_H
#define AMIGA_CTXMENU_H 1
struct Hook;
struct Menu;
struct gui_window_2;
enum {
AMI_CTXMENU_HISTORY_BACK = 0,
AMI_CTXMENU_HISTORY_FORWARD = 1
};
#ifdef __amigaos4__
/**
* Initialise context menus code (allocate label text, etc)
* Must be called *after* NetSurf's screen pointer is obtained.
*/
void ami_ctxmenu_init(void);
/**
* Cleanup context menus code
*/
void ami_ctxmenu_free(void);
/**
* Get a Hook for WA_ContextMenuHook
*
* \param data ptr for the hook to use (struct gui_window_2 *)
* \returns pointer to a struct Hook
*/
struct Hook *ami_ctxmenu_get_hook(APTR data);
/**
* Release a Hook for WA_ContextMenuHook
*
* \param hook ptr to hook
*/
void ami_ctxmenu_release_hook(struct Hook *hook);
/**
* Create history context menu
* The first time this is run it will create an empty menu,
* Subsequent runs will (re-)populate with the history.
* This is to allow the pointer to be obtained before the browser_window is opened.
*
* \param direction AMI_CTXMENU_HISTORY_(BACK|FORWARD)
* \param gwin struct gui_window_2 *
* \returns pointer to menu (for convenience, is also stored in gwin structure)
* The returned pointer MUST be disposed of with DisposeObject before program exit.
*/
struct Menu *ami_ctxmenu_history_create(int direction, struct gui_window_2 *gwin);
/**
* Create ClickTab context menu
*
* \param gwin struct gui_window_2 *
* \returns pointer to menu (for convenience, is also stored in gwin structure)
* The returned pointer MUST be disposed of with DisposeObject before program exit.
*/
struct Menu *ami_ctxmenu_clicktab_create(struct gui_window_2 *gwin);
#else //__amigaos4__
inline void ami_ctxmenu_init(void) {}
inline void ami_ctxmenu_free(void) {}
inline struct Hook *ami_ctxmenu_get_hook(APTR data) {return NULL;}
inline void ami_ctxmenu_release_hook(struct Hook *hook) {}
inline struct Menu *ami_ctxmenu_history_create(int direction, struct gui_window_2 *gwin) {return NULL;}
inline struct Menu *ami_ctxmenu_clicktab_create(struct gui_window_2 *gwin) {return NULL;}
#endif //__amigaos4__
#endif //AMIGA_CTXMENU_H
|