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