haiku/headers/private/interface/WindowInfo.h

67 lines
1.3 KiB
C++

/*
* Copyright 2005-2008, Haiku.
* Distributed under the terms of the MIT License.
*
* Authors:
* Axel Dörfler, axeld@pinc-software.de
*/
#ifndef _WINDOW_INFO_H_
#define _WINDOW_INFO_H_
#include <SupportDefs.h>
struct window_info {
team_id team;
int32 server_token;
int32 thread;
int32 client_token;
int32 client_port;
uint32 workspaces;
int32 layer; // see ServerWindow::GetInfo()
uint32 feel;
uint32 flags;
int32 window_left;
int32 window_top;
int32 window_right;
int32 window_bottom;
int32 show_hide_level;
bool is_mini;
} _PACKED;
struct client_window_info : window_info {
float tab_height;
float border_size;
char name[1];
} _PACKED;
enum window_action {
B_MINIMIZE_WINDOW,
B_BRING_TO_FRONT
};
// Private BeOS compatible window API
void do_window_action(int32 window_id, int32 action, BRect zoomRect, bool zoom);
client_window_info* get_window_info(int32 token);
int32* get_token_list(team_id app, int32 *count);
void do_bring_to_front_team(BRect zoomRect, team_id app, bool zoom);
void do_minimize_team(BRect zoomRect, team_id app, bool zoom);
// Haiku additions
namespace BPrivate {
status_t get_application_order(int32 workspace, team_id** _apps, int32* _count);
status_t get_window_order(int32 workspace, int32** _tokens, int32* _count);
} // namespace BPrivate
#endif // _WINDOW_INFO_H_