Implemented get_token_list() and get_window_info() client side.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13453 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
38b7e756d2
commit
d76e154b8b
@ -1,6 +1,10 @@
|
||||
#ifndef _APPSERVER_PROTOCOL_
|
||||
#define _APPSERVER_PROTOCOL_
|
||||
|
||||
|
||||
#include <SupportDefs.h>
|
||||
|
||||
|
||||
// Server port names. The input port is the port which is used to receive
|
||||
// input messages from the Input Server. The other is the "main" port for
|
||||
// the server and is utilized mostly by BApplication objects.
|
||||
@ -9,14 +13,19 @@
|
||||
|
||||
enum {
|
||||
// Used for quick replies from the app_server
|
||||
SERVER_TRUE='_srt',
|
||||
SERVER_FALSE,
|
||||
AS_SERVER_BMESSAGE,
|
||||
SERVER_TRUE = B_OK,
|
||||
SERVER_FALSE = B_ERROR,
|
||||
|
||||
AS_SERVER_BMESSAGE = 1,
|
||||
AS_SERVER_AREALINK,
|
||||
AS_SERVER_SESSION,
|
||||
AS_SERVER_PORTLINK,
|
||||
AS_CLIENT_DEAD,
|
||||
|
||||
// Desktop definitions
|
||||
AS_GET_WINDOW_LIST,
|
||||
AS_GET_WINDOW_INFO,
|
||||
|
||||
// Application definitions
|
||||
AS_CREATE_APP,
|
||||
AS_DELETE_APP,
|
||||
|
53
headers/private/app/WindowInfo.h
Normal file
53
headers/private/app/WindowInfo.h
Normal file
@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright 2005, 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; // whatever this is...
|
||||
uint32 type; // see below
|
||||
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 {
|
||||
char name[1];
|
||||
} _PACKED;
|
||||
|
||||
enum {
|
||||
// taken from Deskbar
|
||||
kNormalWindow = 0,
|
||||
kDesktopWindow = 1024,
|
||||
kMenuWindow = 1025,
|
||||
kWindowScreen = 1026,
|
||||
};
|
||||
|
||||
enum window_action {
|
||||
B_MINIMIZE_WINDOW,
|
||||
B_BRING_TO_FRONT
|
||||
};
|
||||
|
||||
#endif // _WINDOW_INFO_H_
|
@ -37,11 +37,8 @@
|
||||
// TODO: remove this header
|
||||
#include <stdio.h>
|
||||
|
||||
// Private definitions not placed in public headers
|
||||
extern "C" void _init_global_fonts();
|
||||
extern "C" status_t _fini_interface_kit_();
|
||||
|
||||
#include <AppServerLink.h>
|
||||
#include <WindowInfo.h>
|
||||
#include <InputServerTypes.h>
|
||||
#include <input_globals.h>
|
||||
#include <ServerProtocol.h>
|
||||
@ -53,6 +50,10 @@ extern "C" status_t _fini_interface_kit_();
|
||||
#include "moreUTF8.h"
|
||||
#include "truncate_string.h"
|
||||
|
||||
// Private definitions not placed in public headers
|
||||
extern "C" void _init_global_fonts();
|
||||
extern "C" status_t _fini_interface_kit_();
|
||||
|
||||
using namespace BPrivate;
|
||||
|
||||
menu_info *_menu_info_ptr_;
|
||||
@ -986,18 +987,51 @@ do_window_action(int32 window_id, int32 action,
|
||||
|
||||
|
||||
window_info *
|
||||
get_window_info(int32 a_token)
|
||||
get_window_info(int32 serverToken)
|
||||
{
|
||||
// ToDo: implement me, needed for Deskbar!
|
||||
return NULL;
|
||||
BPrivate::AppServerLink link;
|
||||
|
||||
link.StartMessage(AS_GET_WINDOW_INFO);
|
||||
link.Attach<int32>(serverToken);
|
||||
|
||||
int32 code;
|
||||
if (link.FlushWithReply(code) != B_OK || code != B_OK)
|
||||
return NULL;
|
||||
|
||||
int32 size;
|
||||
link.Read<int32>(&size);
|
||||
|
||||
client_window_info* info = (client_window_info*)malloc(size);
|
||||
if (info == NULL)
|
||||
return NULL;
|
||||
|
||||
link.Read(info, size);
|
||||
return info;
|
||||
}
|
||||
|
||||
|
||||
int32 *
|
||||
get_token_list(team_id app, int32 *count)
|
||||
get_token_list(team_id team, int32 *_count)
|
||||
{
|
||||
// ToDo: implement me, needed for Deskbar!
|
||||
return NULL;
|
||||
BPrivate::AppServerLink link;
|
||||
|
||||
link.StartMessage(AS_GET_WINDOW_LIST);
|
||||
link.Attach<team_id>(team);
|
||||
|
||||
int32 code;
|
||||
if (link.FlushWithReply(code) != B_OK || code != B_OK)
|
||||
return NULL;
|
||||
|
||||
int32 count;
|
||||
link.Read<int32>(&count);
|
||||
|
||||
int32* tokens = (int32*)malloc(count * sizeof(int32));
|
||||
if (tokens == NULL)
|
||||
return NULL;
|
||||
|
||||
link.Read(tokens, count * sizeof(int32));
|
||||
*_count = count;
|
||||
return tokens;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user