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:
@@ -1,6 +1,10 @@
|
|||||||
#ifndef _APPSERVER_PROTOCOL_
|
#ifndef _APPSERVER_PROTOCOL_
|
||||||
#define _APPSERVER_PROTOCOL_
|
#define _APPSERVER_PROTOCOL_
|
||||||
|
|
||||||
|
|
||||||
|
#include <SupportDefs.h>
|
||||||
|
|
||||||
|
|
||||||
// Server port names. The input port is the port which is used to receive
|
// 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
|
// input messages from the Input Server. The other is the "main" port for
|
||||||
// the server and is utilized mostly by BApplication objects.
|
// the server and is utilized mostly by BApplication objects.
|
||||||
@@ -9,14 +13,19 @@
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
// Used for quick replies from the app_server
|
// Used for quick replies from the app_server
|
||||||
SERVER_TRUE='_srt',
|
SERVER_TRUE = B_OK,
|
||||||
SERVER_FALSE,
|
SERVER_FALSE = B_ERROR,
|
||||||
AS_SERVER_BMESSAGE,
|
|
||||||
|
AS_SERVER_BMESSAGE = 1,
|
||||||
AS_SERVER_AREALINK,
|
AS_SERVER_AREALINK,
|
||||||
AS_SERVER_SESSION,
|
AS_SERVER_SESSION,
|
||||||
AS_SERVER_PORTLINK,
|
AS_SERVER_PORTLINK,
|
||||||
AS_CLIENT_DEAD,
|
AS_CLIENT_DEAD,
|
||||||
|
|
||||||
|
// Desktop definitions
|
||||||
|
AS_GET_WINDOW_LIST,
|
||||||
|
AS_GET_WINDOW_INFO,
|
||||||
|
|
||||||
// Application definitions
|
// Application definitions
|
||||||
AS_CREATE_APP,
|
AS_CREATE_APP,
|
||||||
AS_DELETE_APP,
|
AS_DELETE_APP,
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2005, Haiku.
|
||||||
|
* Distributed under the terms of the MIT License.
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* Axel Dörfler, [email protected]
|
||||||
|
*/
|
||||||
|
#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
|
// TODO: remove this header
|
||||||
#include <stdio.h>
|
#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 <AppServerLink.h>
|
||||||
|
#include <WindowInfo.h>
|
||||||
#include <InputServerTypes.h>
|
#include <InputServerTypes.h>
|
||||||
#include <input_globals.h>
|
#include <input_globals.h>
|
||||||
#include <ServerProtocol.h>
|
#include <ServerProtocol.h>
|
||||||
@@ -53,6 +50,10 @@ extern "C" status_t _fini_interface_kit_();
|
|||||||
#include "moreUTF8.h"
|
#include "moreUTF8.h"
|
||||||
#include "truncate_string.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;
|
using namespace BPrivate;
|
||||||
|
|
||||||
menu_info *_menu_info_ptr_;
|
menu_info *_menu_info_ptr_;
|
||||||
@@ -986,18 +987,51 @@ do_window_action(int32 window_id, int32 action,
|
|||||||
|
|
||||||
|
|
||||||
window_info *
|
window_info *
|
||||||
get_window_info(int32 a_token)
|
get_window_info(int32 serverToken)
|
||||||
{
|
{
|
||||||
// ToDo: implement me, needed for Deskbar!
|
BPrivate::AppServerLink link;
|
||||||
return NULL;
|
|
||||||
|
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 *
|
int32 *
|
||||||
get_token_list(team_id app, int32 *count)
|
get_token_list(team_id team, int32 *_count)
|
||||||
{
|
{
|
||||||
// ToDo: implement me, needed for Deskbar!
|
BPrivate::AppServerLink link;
|
||||||
return NULL;
|
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user