Patch submitted by Jack Burton

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4435 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
DarkWyrm
2003-09-01 14:12:53 +00:00
parent 0bc9048607
commit bd3f48e8bf
+197 -110
View File
@@ -24,359 +24,446 @@
// Description: Global functions and variables for the Interface Kit // Description: Global functions and variables for the Interface Kit
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
#include <AppServerLink.h>
#include <GraphicsDefs.h>
#include <InterfaceDefs.h>
#include <PortLink.h> #include <PortLink.h>
#include <PortMessage.h> #include <PortMessage.h>
#include <InterfaceDefs.h>
#include <GraphicsDefs.h>
#include <ServerProtocol.h> #include <ServerProtocol.h>
#include <AppServerLink.h> #include <Screen.h>
// Private definitions not placed in public headers // Private definitions not placed in public headers
extern "C" void _init_global_fonts(); extern "C" void _init_global_fonts();
extern "C" status_t _fini_interface_kit_(); extern "C" status_t _fini_interface_kit_();
using namespace BPrivate;
// InterfaceDefs.h // InterfaceDefs.h
_IMPEXP_BE const color_map *system_colors() _IMPEXP_BE const color_map *
system_colors()
{ {
// Gets the color map via the BScreen class return BScreen(B_MAIN_SCREEN_ID).ColorMap();
// TODO: Implement
} }
_IMPEXP_BE status_t set_screen_space(int32 index, uint32 res, bool stick)
_IMPEXP_BE status_t
set_screen_space(int32 index, uint32 res, bool stick)
{ {
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_SET_SCREEN_MODE); link.SetOpCode(AS_SET_SCREEN_MODE);
link->Attach<int32>(index); link.Attach<int32>(index);
link->Attach<int32>((int32)res); link.Attach<int32>((int32)res);
link->Attach<bool>(stick); link.Attach<bool>(stick);
link->Flush(); link.Flush();
delete link;
//TODO: Read back the status from the app_server's reply
return B_OK;
} }
_IMPEXP_BE status_t get_scroll_bar_info(scroll_bar_info *info)
_IMPEXP_BE status_t
get_scroll_bar_info(scroll_bar_info *info)
{ {
PortMessage pmsg; PortMessage pmsg;
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_GET_SCROLLBAR_INFO); link.SetOpCode(AS_GET_SCROLLBAR_INFO);
link->FlushWithReply(&pmsg); link.FlushWithReply(&pmsg);
delete link;
pmsg.Read(info, sizeof(scroll_bar_info)); pmsg.Read(info, sizeof(scroll_bar_info));
//TODO: Read back the status from the app_server's reply
return B_OK;
} }
_IMPEXP_BE status_t set_scroll_bar_info(scroll_bar_info *info)
_IMPEXP_BE status_t
set_scroll_bar_info(scroll_bar_info *info)
{ {
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_SET_SCROLLBAR_INFO); link.SetOpCode(AS_SET_SCROLLBAR_INFO);
link->Attach(info, sizeof(scroll_bar_info)); link.Attach(info, sizeof(scroll_bar_info));
link->Flush(); link.Flush();
delete link;
//TODO: Read back the status from the app_server's reply
return B_OK;
} }
_IMPEXP_BE status_t get_mouse_type(int32 *type)
_IMPEXP_BE status_t
get_mouse_type(int32 *type)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t set_mouse_type(int32 type)
_IMPEXP_BE status_t
set_mouse_type(int32 type)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t get_mouse_map(mouse_map *map)
_IMPEXP_BE status_t
get_mouse_map(mouse_map *map)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t set_mouse_map(mouse_map *map)
_IMPEXP_BE status_t
set_mouse_map(mouse_map *map)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t get_click_speed(bigtime_t *speed) _IMPEXP_BE status_t
get_click_speed(bigtime_t *speed)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t set_click_speed(bigtime_t speed)
_IMPEXP_BE status_t
set_click_speed(bigtime_t speed)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t get_mouse_speed(int32 *speed)
_IMPEXP_BE status_t
get_mouse_speed(int32 *speed)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t set_mouse_speed(int32 speed)
_IMPEXP_BE status_t
set_mouse_speed(int32 speed)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t get_mouse_acceleration(int32 *speed)
_IMPEXP_BE status_t
get_mouse_acceleration(int32 *speed)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t set_mouse_acceleration(int32 speed)
_IMPEXP_BE status_t
set_mouse_acceleration(int32 speed)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t get_key_repeat_rate(int32 *rate)
_IMPEXP_BE status_t
get_key_repeat_rate(int32 *rate)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t set_key_repeat_rate(int32 rate)
_IMPEXP_BE status_t
set_key_repeat_rate(int32 rate)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t get_key_repeat_delay(bigtime_t *delay)
_IMPEXP_BE status_t
get_key_repeat_delay(bigtime_t *delay)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t set_key_repeat_delay(bigtime_t delay)
_IMPEXP_BE status_t
set_key_repeat_delay(bigtime_t delay)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE uint32 modifiers()
_IMPEXP_BE uint32
modifiers()
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t get_key_info(key_info *info)
_IMPEXP_BE status_t
get_key_info(key_info *info)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE void get_key_map(key_map **map, char **key_buffer)
_IMPEXP_BE void
get_key_map(key_map **map, char **key_buffer)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE status_t get_keyboard_id(uint16 *id)
_IMPEXP_BE status_t
get_keyboard_id(uint16 *id)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE void set_modifier_key(uint32 modifier, uint32 key)
_IMPEXP_BE void
set_modifier_key(uint32 modifier, uint32 key)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE void set_keyboard_locks(uint32 modifiers)
_IMPEXP_BE void
set_keyboard_locks(uint32 modifiers)
{ {
// Contacts the input_server via _control_input_server_(BMessage *, BMessage *) // Contacts the input_server via _control_input_server_(BMessage *, BMessage *)
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE rgb_color keyboard_navigation_color()
_IMPEXP_BE rgb_color
keyboard_navigation_color()
{ {
// Queries the app_server // Queries the app_server
// TODO: Implement // TODO: Implement
return ui_color(B_KEYBOARD_NAVIGATION_COLOR); return ui_color(B_KEYBOARD_NAVIGATION_COLOR);
} }
_IMPEXP_BE int32 count_workspaces()
_IMPEXP_BE int32
count_workspaces()
{ {
PortLink::ReplyData replydata; PortLink::ReplyData replydata;
int32 count; int32 count;
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_COUNT_WORKSPACES); link.SetOpCode(AS_COUNT_WORKSPACES);
link->FlushWithReply(&replydata); link.FlushWithReply(&replydata);
count=*((int32*)replydata.buffer); count=*((int32*)replydata.buffer);
delete link;
return count; return count;
} }
_IMPEXP_BE void set_workspace_count(int32 count)
_IMPEXP_BE void
set_workspace_count(int32 count)
{ {
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_SET_WORKSPACE_COUNT); link.SetOpCode(AS_SET_WORKSPACE_COUNT);
link->Attach<int32>(count); link.Attach<int32>(count);
link->Flush(); link.Flush();
delete link;
} }
_IMPEXP_BE int32 current_workspace()
_IMPEXP_BE int32
current_workspace()
{ {
PortLink::ReplyData replydata; PortLink::ReplyData replydata;
int32 index; int32 index;
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_CURRENT_WORKSPACE); link.SetOpCode(AS_CURRENT_WORKSPACE);
link->FlushWithReply(&replydata); link.FlushWithReply(&replydata);
index=*((int32*)replydata.buffer); index=*((int32*)replydata.buffer);
delete link;
return index; return index;
} }
_IMPEXP_BE void activate_workspace(int32 workspace)
_IMPEXP_BE void
activate_workspace(int32 workspace)
{ {
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_ACTIVATE_WORKSPACE); link.SetOpCode(AS_ACTIVATE_WORKSPACE);
link->Attach<int32>(workspace); link.Attach<int32>(workspace);
link->Flush(); link.Flush();
delete link;
} }
_IMPEXP_BE bigtime_t idle_time()
_IMPEXP_BE bigtime_t
idle_time()
{ {
PortLink::ReplyData replydata; PortLink::ReplyData replydata;
bigtime_t idletime; bigtime_t idletime;
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_IDLE_TIME); link.SetOpCode(AS_IDLE_TIME);
link->FlushWithReply(&replydata); link.FlushWithReply(&replydata);
idletime=*((bigtime_t*)replydata.buffer); idletime=*((bigtime_t*)replydata.buffer);
delete link;
return idletime; return idletime;
} }
_IMPEXP_BE void run_select_printer_panel()
_IMPEXP_BE void
run_select_printer_panel()
{ {
// Launches the Printer prefs app via the Roster // Launches the Printer prefs app via the Roster
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE void run_add_printer_panel()
_IMPEXP_BE void
run_add_printer_panel()
{ {
// Launches the Printer prefs app via the Roster and asks it to // Launches the Printer prefs app via the Roster and asks it to
// add a printer // add a printer
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE void run_be_about()
_IMPEXP_BE void
run_be_about()
{ {
// Unsure about how to implement this. // Unsure about how to implement this.
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE void set_focus_follows_mouse(bool follow)
_IMPEXP_BE void
set_focus_follows_mouse(bool follow)
{ {
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_SET_FOCUS_FOLLOWS_MOUSE); link.SetOpCode(AS_SET_FOCUS_FOLLOWS_MOUSE);
link->Attach<bool>(follow); link.Attach<bool>(follow);
link->Flush(); link.Flush();
delete link;
} }
_IMPEXP_BE bool focus_follows_mouse()
_IMPEXP_BE bool
focus_follows_mouse()
{ {
PortMessage pmsg; PortMessage pmsg;
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_FOCUS_FOLLOWS_MOUSE); link.SetOpCode(AS_FOCUS_FOLLOWS_MOUSE);
link->FlushWithReply(&pmsg); link.FlushWithReply(&pmsg);
delete link;
bool ffm; bool ffm;
pmsg.Read<bool>(&ffm); pmsg.Read<bool>(&ffm);
return ffm; return ffm;
} }
_IMPEXP_BE void set_mouse_mode(mode_mouse mode)
_IMPEXP_BE void
set_mouse_mode(mode_mouse mode)
{ {
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_SET_MOUSE_MODE); link.SetOpCode(AS_SET_MOUSE_MODE);
link->Attach(&mode,sizeof(mode_mouse)); link.Attach(&mode,sizeof(mode_mouse));
link->Flush(); link.Flush();
delete link;
} }
_IMPEXP_BE mode_mouse mouse_mode()
_IMPEXP_BE mode_mouse
mouse_mode()
{ {
PortLink::ReplyData replydata; PortLink::ReplyData replydata;
mode_mouse mode; mode_mouse mode;
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_GET_MOUSE_MODE); link.SetOpCode(AS_GET_MOUSE_MODE);
link->FlushWithReply(&replydata); link.FlushWithReply(&replydata);
mode=*((mode_mouse*)replydata.buffer); mode=*((mode_mouse*)replydata.buffer);
delete link;
return mode; return mode;
} }
_IMPEXP_BE rgb_color ui_color(color_which which)
_IMPEXP_BE rgb_color
ui_color(color_which which)
{ {
PortLink::ReplyData replydata; PortLink::ReplyData replydata;
rgb_color color; rgb_color color;
BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); BAppServerLink link;
link->SetOpCode(AS_GET_UI_COLOR); link.SetOpCode(AS_GET_UI_COLOR);
link->FlushWithReply(&replydata); link.Attach(&which, sizeof(which));
link.FlushWithReply(&replydata);
color=*((rgb_color*)replydata.buffer); color=*((rgb_color*)replydata.buffer);
delete link;
return color; return color;
} }
_IMPEXP_BE rgb_color tint_color(rgb_color color, float tint) _IMPEXP_BE rgb_color
tint_color(rgb_color color, float tint)
{ {
// Internally calculates the color // Internally calculates the color
// TODO: Implement // TODO: Implement
} }
extern "C" status_t _init_interface_kit_()
extern "C" status_t
_init_interface_kit_()
{ {
// TODO: Find out what this does and when it's called // TODO: Find out what this does and when it's called
} }
extern "C" status_t _fini_interface_kit_()
extern "C" status_t
_fini_interface_kit_()
{ {
// TODO: Find out what this does and when it's called // TODO: Find out what this does and when it's called
} }
extern "C" void _init_global_fonts()
extern "C" void
_init_global_fonts()
{ {
// This function will initialize the client-side font list // This function will initialize the client-side font list
// TODO: Implement // TODO: Implement
} }
// GraphicsDefs.h // GraphicsDefs.h
_IMPEXP_BE status_t get_pixel_size_for(color_space space, size_t * pixel_chunk, size_t * row_alignment, size_t * pixels_per_chunk) _IMPEXP_BE status_t
get_pixel_size_for(color_space space, size_t * pixel_chunk, size_t * row_alignment, size_t * pixels_per_chunk)
{ {
// TODO: Implement // TODO: Implement
} }
_IMPEXP_BE bool bitmaps_support_space(color_space space, uint32 * support_flags)
_IMPEXP_BE bool
bitmaps_support_space(color_space space, uint32 * support_flags)
{ {
// TODO: Implement // TODO: Implement
} }