summaryrefslogtreecommitdiff
path: root/riscos/toolbar.h
blob: f54bde320046754323ceff05e4e9362958ad7b92 (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
/*
 * 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 2004 Richard Wilson <not_ginger_matt@users.sourceforge.net>
 */

/** \file
 * Toolbar creation (interface).
 */

#ifndef _NETSURF_RISCOS_TOOLBAR_H_
#define _NETSURF_RISCOS_TOOLBAR_H_

#include "oslib/wimp.h"


struct toolbar_icon {
	/*	The desired WIMP icon number (-1 for separator)
	*/
	int icon_number;
	
	/*	Set to non-zero to display the icon
	*/
  	unsigned int available;
  	
  	/*	Icon dimensions (OS units)
  	*/
	unsigned int width;
	unsigned int height;
	
	/*	Icon validation, or NULL if this icon is unavailable
	*/
	unsigned char* validation;
	
	/*	The next icon (linked list)
	*/
	struct toolbar_icon *next_icon;	// Next toolbar icon
};


struct toolbar {

	/*	Internal variables
	*/
	unsigned int resize_status;	// Update status width on next reformat?
	unsigned int update_pending;	// Update icons on next reformat?
	unsigned int icon_width;	// Current width of icons
	int width_internal;	// Width actually used on last reformat
	int status_height;	// Status bar height
	int status_old_width;	// Old status width
  	int width;	// Toolbar width on last reformat
	unsigned int height;	// Toolbar height on last reformat
	
	/*	General options
	*/
	unsigned int throbber_width;	// Throbber width (0 = unavaiable)
	unsigned int throbber_height;	// Throbber height (0 = unavaiable)
	unsigned int status_window;	// Show status window?
	unsigned int standard_buttons;	// Show standard buttons?
	unsigned int url_bar;	// Show URL bar?
	unsigned int throbber;	// Show Throbber?
	unsigned int status_width;	// Width of status window
	
	/*	The first toolbar icon
	*/
	struct toolbar_icon *icon;
	
	/*	Window handles
	*/
	wimp_w toolbar_handle;
	wimp_w status_handle;
};


struct toolbar *ro_toolbar_create(osspriteop_area *sprite_area, char *url_buffer,
		char *status_buffer, char *throbber_buffer);
void ro_toolbar_destroy(struct toolbar *toolbar);
void ro_toolbar_resize_status(struct toolbar *toolbar, int height);
int ro_toolbar_reformat(struct toolbar *toolbar, int width);
void ro_toolbar_status_reformat(struct toolbar *toolbar, int width);
int ro_toolbar_update(struct toolbar *toolbar);

#endif