void BApplication::HideCursor() { BPrivate::AppServerLink link; link.StartMessage(AS_HIDE_CURSOR); link.Flush(); }
void BApplication::ShowCursor() { BPrivate::AppServerLink link; link.StartMessage(AS_SHOW_CURSOR); link.Flush(); }
BApplication::~BApplication() { Lock(); // tell all loopers(usually windows) to quit. Also, wait for them. _QuitAllWindows(true); // unregister from the roster BRoster::Private().RemoveApp(Team()); #ifndef RUN_WITHOUT_APP_SERVER // tell app_server we're quitting... if (be_app) { // be_app can be NULL here if the application fails to initialize // correctly. For example, if it's already running and it's set to // exclusive launch. BPrivate::AppServerLink link; link.StartMessage(B_QUIT_REQUESTED); link.Flush(); } delete_port(fServerLink->SenderPort()); delete_port(fServerLink->ReceiverPort()); delete fServerLink; #endif // RUN_WITHOUT_APP_SERVER delete fServerAllocator; // uninitialize be_app, the be_app_messenger is invalidated automatically be_app = NULL; }
void BApplication::EndRectTracking() { BPrivate::AppServerLink link; link.StartMessage(AS_END_RECT_TRACKING); link.Flush(); }
void BApplication::ObscureCursor() { BPrivate::AppServerLink link; link.StartMessage(AS_OBSCURE_CURSOR); link.Flush(); }
/*! \brief Cleans up any memory allocated by the bitmap and informs the server to do so as well (if needed). */ void BBitmap::_CleanUp() { if (fWindow != NULL) { if (fWindow->Lock()) delete fWindow; fWindow = NULL; // this will leak fWindow if it couldn't be locked } if (fBasePointer == NULL) return; if ((fFlags & B_BITMAP_NO_SERVER_LINK) != 0) { free(fBasePointer); } else if (fServerToken != -1) { BPrivate::AppServerLink link; // AS_DELETE_BITMAP: // Attached Data: // 1) int32 server token link.StartMessage(AS_DELETE_BITMAP); link.Attach<int32>(fServerToken); link.Flush(); // The server areas are deleted via kMsgDeleteServerMemoryArea message fArea = -1; fServerToken = -1; fAreaOffset = -1; BAutolock _(sBitmapListLock); sBitmapList.RemoveItem(this); } fBasePointer = NULL; }
/*! \brief Cleans up any memory allocated by the bitmap and informs the server to do so as well (if needed). */ void BBitmap::_CleanUp() { if (fWindow != NULL) { if (fWindow->Lock()) delete fWindow; fWindow = NULL; // this will leak fWindow if it couldn't be locked } if (fBasePointer == NULL) return; if ((fFlags & B_BITMAP_NO_SERVER_LINK) != 0) { free(fBasePointer); } else if (fServerToken != -1) { BPrivate::AppServerLink link; // AS_DELETE_BITMAP: // Attached Data: // 1) int32 server token link.StartMessage(AS_DELETE_BITMAP); link.Attach<int32>(fServerToken); link.Flush(); // TODO: we may want to delete parts of the server memory areas here! fArea = -1; fServerToken = -1; fAreaOffset = -1; } fBasePointer = NULL; }
void set_mouse_mode(mode_mouse mode) { BPrivate::AppServerLink link; link.StartMessage(AS_SET_MOUSE_MODE); link.Attach<mode_mouse>(mode); link.Flush(); }
void activate_workspace(int32 workspace) { BPrivate::AppServerLink link; link.StartMessage(AS_ACTIVATE_WORKSPACE); link.Attach<int32>(workspace); link.Flush(); }
void set_focus_follows_mouse_mode(mode_focus_follows_mouse mode) { BPrivate::AppServerLink link; link.StartMessage(AS_SET_FOCUS_FOLLOWS_MOUSE_MODE); link.Attach<mode_focus_follows_mouse>(mode); link.Flush(); }
/*! \brief private function used by Deskbar to set window decor Note, we don't have to be compatible here, and could just change the Deskbar not to use this anymore \param theme The theme to choose - \c 0: BeOS - \c 1: AmigaOS - \c 2: Win95 - \c 3: MacOS */ void __set_window_decor(int32 theme) { BPrivate::AppServerLink link; link.StartMessage(AS_R5_SET_DECORATOR); link.Attach<int32>(theme); link.Flush(); }
void set_accept_first_click(bool acceptFirstClick) { BPrivate::AppServerLink link; link.StartMessage(AS_SET_ACCEPT_FIRST_CLICK); link.Attach<bool>(acceptFirstClick); link.Flush(); }
void set_average_weight(uint8 averageWeight) { BPrivate::AppServerLink link; link.StartMessage(AS_SET_SUBPIXEL_AVERAGE_WEIGHT); link.Attach<uint8>(averageWeight); link.Flush(); }
void set_subpixel_antialiasing(bool subpix) { BPrivate::AppServerLink link; link.StartMessage(AS_SET_SUBPIXEL_ANTIALIASING); link.Attach<bool>(subpix); link.Flush(); }
void BApplication::BeginRectTracking(BRect rect, bool trackWhole) { BPrivate::AppServerLink link; link.StartMessage(AS_BEGIN_RECT_TRACKING); link.Attach<BRect>(rect); link.Attach<int32>(trackWhole); link.Flush(); }
void set_is_subpixel_ordering_regular(bool subpixelOrdering) { BPrivate::AppServerLink link; link.StartMessage(AS_SET_SUBPIXEL_ORDERING); link.Attach<bool>(subpixelOrdering); link.Flush(); }
void set_hinting_mode(uint8 hinting) { BPrivate::AppServerLink link; link.StartMessage(AS_SET_HINTING); link.Attach<uint8>(hinting); link.Flush(); }
void BCursor::_FreeCursorData() { // Notify server to deallocate server-side objects for this cursor if (fNeedToFree) { BPrivate::AppServerLink link; link.StartMessage(AS_DELETE_CURSOR); link.Attach<int32>(fServerToken); link.Flush(); } }
void do_bring_to_front_team(BRect zoomRect, team_id team, bool zoom) { BPrivate::AppServerLink link; link.StartMessage(AS_BRING_TEAM_TO_FRONT); link.Attach<team_id>(team); // we don't have any zooming effect link.Flush(); }
void do_minimize_team(BRect zoomRect, team_id team, bool zoom) { BPrivate::AppServerLink link; link.StartMessage(AS_MINIMIZE_TEAM); link.Attach<team_id>(team); // we don't have any zooming effect link.Flush(); }
void do_window_action(int32 windowToken, int32 action, BRect zoomRect, bool zoom) { BPrivate::AppServerLink link; link.StartMessage(AS_WINDOW_ACTION); link.Attach<int32>(windowToken); link.Attach<int32>(action); // we don't have any zooming effect link.Flush(); }
void set_workspaces_layout(uint32 columns, uint32 rows) { if (columns < 1 || rows < 1) return; BPrivate::AppServerLink link; link.StartMessage(AS_SET_WORKSPACE_LAYOUT); link.Attach<int32>(columns); link.Attach<int32>(rows); link.Flush(); }
void BApplication::SetCursor(const BCursor* cursor, bool sync) { BPrivate::AppServerLink link; link.StartMessage(AS_SET_CURSOR); link.Attach<bool>(sync); link.Attach<int32>(cursor->fServerToken); if (sync) { int32 code; link.FlushWithReply(code); } else link.Flush(); }
/*! \brief Private function which sets the window decorator for the system. \param index Index of the decorator to set If the index is invalid, this function and the server do nothing */ status_t set_decorator(const int32 &index) { if (index < 0) return B_BAD_VALUE; BPrivate::AppServerLink link; link.StartMessage(AS_SET_DECORATOR); link.Attach<int32>(index); link.Flush(); return B_OK; }
// Private function used to replace the R5 hack which sets a system font void _set_system_font_(const char* which, font_family family, font_style style, float size) { // R5 used a global area offset table to set the system fonts in the Font // preferences panel. Bleah. BPrivate::AppServerLink link; link.StartMessage(AS_SET_SYSTEM_FONT); link.AttachString(which, B_OS_NAME_LENGTH); link.AttachString(family, sizeof(font_family)); link.AttachString(style, sizeof(font_style)); link.Attach<float>(size); link.Flush(); }
void set_ui_color(const color_which &which, const rgb_color &color) { int32 index = color_which_to_index(which); if (index < 0 || index >= kNumColors) { fprintf(stderr, "set_ui_color(): unknown color_which %d\n", which); return; } BPrivate::AppServerLink link; link.StartMessage(AS_SET_UI_COLOR); link.Attach<color_which>(which); link.Attach<rgb_color>(color); link.Flush(); }
/*! \brief Private function which sets the window decorator for the system. \param entry_ref to the decorator to set Will return detailed error status via status_t */ status_t set_decorator(const BString& path) { BPrivate::AppServerLink link; link.StartMessage(AS_SET_DECORATOR); link.AttachString(path.String()); link.Flush(); status_t error = B_OK; link.Read<status_t>(&error); return error; }
status_t BDragger::HideAllDraggers() { BPrivate::AppServerLink link; link.StartMessage(AS_SET_SHOW_ALL_DRAGGERS); link.Attach<bool>(false); status_t status = link.Flush(); if (status == B_OK) { DraggerManager* manager = DraggerManager::Default(); AutoLocker<DraggerManager> locker(manager); manager->visible = false; manager->visibleInitialized = true; } return status; }