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