diff --git a/src/kits/interface/Globals.cpp b/src/kits/interface/Globals.cpp new file mode 100644 index 0000000000..bae3ce1d48 --- /dev/null +++ b/src/kits/interface/Globals.cpp @@ -0,0 +1,376 @@ +//------------------------------------------------------------------------------ +// Copyright (c) 2001-2002, OpenBeOS +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. +// +// File Name: Globals.cpp +// Author: DarkWyrm <bpmagic@columbus.rr.com> +// Description: Global functions and variables for the Interface Kit +// +//------------------------------------------------------------------------------ +#include <PortLink.h> +#include <InterfaceDefs.h> +#include <GraphicsDefs.h> +#include <ServerProtocol.h> +#include <AppServerLink.h> + +// Private definitions not placed in public headers +extern "C" void _init_global_fonts(); +extern "C" status_t _fini_interface_kit_(); + +// InterfaceDefs.h + +_IMPEXP_BE const color_map *system_colors() +{ + // Gets the color map via the BScreen class + // TODO: Implement +} + +_IMPEXP_BE status_t set_screen_space(int32 index, uint32 res, bool stick = true) +{ + BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); + link->Init(); + link->portlink->SetOpCode(AS_SET_SCREEN_MODE); + link->portlink->Attach(index); + link->portlink->Attach((int32)res); + link->portlink->Attach(stick); + link->portlink->Flush(); + delete link; +} + +_IMPEXP_BE status_t get_scroll_bar_info(scroll_bar_info *info) +{ + // Contacts the app_server + // TODO: Implement +// AS_GET_SCROLLBAR_INFO, +} + +_IMPEXP_BE status_t set_scroll_bar_info(scroll_bar_info *info) +{ + BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); + link->Init(); + link->portlink->SetOpCode(AS_SET_SCROLLBAR_INFO); + link->portlink->Attach(info, sizeof(scroll_bar_info)); + link->portlink->Flush(); + delete link; +} + +_IMPEXP_BE status_t get_mouse_type(int32 *type) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t set_mouse_type(int32 type) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t get_mouse_map(mouse_map *map) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t set_mouse_map(mouse_map *map) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t get_click_speed(bigtime_t *speed) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t set_click_speed(bigtime_t speed) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t get_mouse_speed(int32 *speed) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t set_mouse_speed(int32 speed) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t get_mouse_acceleration(int32 *speed) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t set_mouse_acceleration(int32 speed) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t get_key_repeat_rate(int32 *rate) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t set_key_repeat_rate(int32 rate) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t get_key_repeat_delay(bigtime_t *delay) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t set_key_repeat_delay(bigtime_t delay) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE uint32 modifiers() +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t get_key_info(key_info *info) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE void get_key_map(key_map **map, char **key_buffer) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE status_t get_keyboard_id(uint16 *id) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE void set_modifier_key(uint32 modifier, uint32 key) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE void set_keyboard_locks(uint32 modifiers) +{ + // Contacts the input_server via _control_input_server_(BMessage *, BMessage *) + // TODO: Implement +} + +_IMPEXP_BE rgb_color keyboard_navigation_color() +{ + // Queries the app_server + // TODO: Implement + return ui_color(B_KEYBOARD_NAVIGATION_COLOR); +} + +_IMPEXP_BE int32 count_workspaces() +{ + PortLink::ReplyData replydata; + int32 count; + + BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); + link->Init(); + link->portlink->SetOpCode(AS_COUNT_WORKSPACES); + link->portlink->FlushWithReply(&replydata); + + count=*((int32*)replydata.buffer); + + delete link; + return count; +} + +_IMPEXP_BE void set_workspace_count(int32 count) +{ + BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); + link->Init(); + link->portlink->SetOpCode(AS_SET_WORKSPACE_COUNT); + link->portlink->Attach(count); + link->portlink->Flush(); + delete link; +} + +_IMPEXP_BE int32 current_workspace() +{ + PortLink::ReplyData replydata; + int32 index; + + BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); + link->Init(); + link->portlink->SetOpCode(AS_CURRENT_WORKSPACE); + link->portlink->FlushWithReply(&replydata); + + index=*((int32*)replydata.buffer); + + delete link; + return index; +} + +_IMPEXP_BE void activate_workspace(int32 workspace) +{ + BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); + link->Init(); + link->portlink->SetOpCode(AS_ACTIVATE_WORKSPACE); + link->portlink->Attach(workspace); + link->portlink->Flush(); + delete link; +} + +_IMPEXP_BE bigtime_t idle_time() +{ + PortLink::ReplyData replydata; + bigtime_t idletime; + + BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); + link->Init(); + link->portlink->SetOpCode(AS_IDLE_TIME); + link->portlink->FlushWithReply(&replydata); + + idletime=*((bigtime_t*)replydata.buffer); + + delete link; + return idletime; +} + +_IMPEXP_BE void run_select_printer_panel() +{ + // Launches the Printer prefs app via the Roster + // TODO: Implement +} + +_IMPEXP_BE void run_add_printer_panel() +{ + // Launches the Printer prefs app via the Roster and asks it to + // add a printer + // TODO: Implement +} + +_IMPEXP_BE void run_be_about() +{ + // Unsure about how to implement this. + // TODO: Implement +} + +_IMPEXP_BE void set_focus_follows_mouse(bool follow) +{ + BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); + link->Init(); + link->portlink->SetOpCode(AS_SET_FOCUS_FOLLOWS_MOUSE); + link->portlink->Attach(follow); + link->portlink->Flush(); + delete link; +} + +_IMPEXP_BE bool focus_follows_mouse() +{ +} + +_IMPEXP_BE void set_mouse_mode(mode_mouse mode) +{ + BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); + link->Init(); + link->portlink->SetOpCode(AS_SET_MOUSE_MODE); + link->portlink->Attach((int32)mode); + link->portlink->Flush(); + delete link; +} + +_IMPEXP_BE mode_mouse mouse_mode() +{ + PortLink::ReplyData replydata; + mode_mouse mode; + + BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); + link->Init(); + link->portlink->SetOpCode(AS_GET_MOUSE_MODE); + link->portlink->FlushWithReply(&replydata); + + mode=*((mode_mouse*)replydata.buffer); + + delete link; + return mode; +} + +_IMPEXP_BE rgb_color ui_color(color_which which) +{ + PortLink::ReplyData replydata; + rgb_color color; + + BPrivate::BAppServerLink *link=new BPrivate::BAppServerLink(); + link->Init(); + link->portlink->SetOpCode(AS_GET_UI_COLOR); + link->portlink->FlushWithReply(&replydata); + + color=*((rgb_color*)replydata.buffer); + + delete link; + return color; +} + +_IMPEXP_BE rgb_color tint_color(rgb_color color, float tint) +{ + // Internally calculates the color + // TODO: Implement +} + +extern "C" status_t _init_interface_kit_() +{ + // TODO: Find out what this does and when it's called +} + +extern "C" status_t _fini_interface_kit_() +{ + // TODO: Find out what this does and when it's called +} + +extern "C" void _init_global_fonts() +{ + // This function will initialize the client-side font list + // TODO: Implement +} + +// 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) +{ + // TODO: Implement +} + +_IMPEXP_BE bool bitmaps_support_space(color_space space, uint32 * support_flags) +{ + // TODO: Implement +} diff --git a/src/kits/interface/interface.src b/src/kits/interface/interface.src index f91011e848..33d3034e9d 100644 --- a/src/kits/interface/interface.src +++ b/src/kits/interface/interface.src @@ -8,6 +8,7 @@ INTERFACE_KIT_SOURCE = Control.cpp Deskbar.cpp Font.cpp + Globals.cpp Picture.cpp PictureButton.cpp Point.cpp