xref: /haiku/headers/private/interface/WindowInfo.h (revision 4c8e85b316c35a9161f5a1c50ad70bc91c83a76f)
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 
15 struct 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 
36 struct client_window_info : window_info {
37 	float		tab_height;
38 	float		border_size;
39 	char		name[0];
40 } _PACKED;
41 
42 enum window_action {
43 	B_MINIMIZE_WINDOW,
44 	B_BRING_TO_FRONT
45 };
46 
47 
48 // Private BeOS compatible window API
49 
50 void do_window_action(int32 window_id, int32 action, BRect zoomRect, bool zoom);
51 client_window_info* get_window_info(int32 token);
52 int32* get_token_list(team_id app, int32 *count);
53 void do_bring_to_front_team(BRect zoomRect, team_id app, bool zoom);
54 void do_minimize_team(BRect zoomRect, team_id app, bool zoom);
55 
56 // Haiku additions
57 
58 namespace BPrivate {
59 
60 status_t get_application_order(int32 workspace, team_id** _apps, int32* _count);
61 status_t get_window_order(int32 workspace, int32** _tokens, int32* _count);
62 
63 }	// namespace BPrivate
64 
65 
66 #endif	// _WINDOW_INFO_H_
67