1/*
2 * Copyright 2005-2008, Haiku.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Axel Dörfler, axeld@pinc-software.de
7 */
8#ifndef _WINDOW_INFO_H_
9#define _WINDOW_INFO_H_
10
11
12#include <SupportDefs.h>
13
14
15struct window_info {
16	team_id		team;
17	int32		server_token;
18
19	int32		thread;
20	int32		client_token;
21	int32		client_port;
22	uint32		workspaces;
23
24	int32		layer;	// see ServerWindow::GetInfo()
25	uint32		feel;
26	uint32		flags;
27	int32		window_left;
28	int32		window_top;
29	int32		window_right;
30	int32		window_bottom;
31
32	int32		show_hide_level;
33	bool		is_mini;
34} _PACKED;
35
36struct client_window_info : window_info {
37	float		tab_height;
38	float		border_size;
39	char		name[1];
40} _PACKED;
41
42enum window_action {
43	B_MINIMIZE_WINDOW,
44	B_BRING_TO_FRONT
45};
46
47
48// Private BeOS compatible window API
49
50void do_window_action(int32 window_id, int32 action, BRect zoomRect, bool zoom);
51client_window_info* get_window_info(int32 token);
52int32* get_token_list(team_id app, int32 *count);
53void do_bring_to_front_team(BRect zoomRect, team_id app, bool zoom);
54void do_minimize_team(BRect zoomRect, team_id app, bool zoom);
55
56// Haiku additions
57
58namespace BPrivate {
59
60status_t get_application_order(int32 workspace, team_id** _apps, int32* _count);
61status_t get_window_order(int32 workspace, int32** _tokens, int32* _count);
62
63}	// namespace BPrivate
64
65
66#endif	// _WINDOW_INFO_H_
67