llpanelprofileview.h
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:3k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2. * @file llpanelprofileview.h
  3. * @brief Side tray "Profile View" panel
  4. *
  5. * $LicenseInfo:firstyear=2009&license=viewergpl$
  6. * Copyright (c) 2009-2010, Linden Research, Inc.
  7. * Second Life Viewer Source Code
  8. * The source code in this file ("Source Code") is provided by Linden Lab
  9. * to you under the terms of the GNU General Public License, version 2.0
  10. * ("GPL"), unless you have obtained a separate licensing agreement
  11. * ("Other License"), formally executed by you and Linden Lab.  Terms of
  12. * the GPL can be found in doc/GPL-license.txt in this distribution, or
  13. * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
  14. * There are special exceptions to the terms and conditions of the GPL as
  15. * it is applied to this Source Code. View the full text of the exception
  16. * in the file doc/FLOSS-exception.txt in this software distribution, or
  17. * online at
  18. * http://secondlifegrid.net/programs/open_source/licensing/flossexception
  19. * By copying, modifying or distributing this software, you acknowledge
  20. * that you have read and understood your obligations described above,
  21. * and agree to abide by those obligations.
  22. * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
  23. * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
  24. * COMPLETENESS OR PERFORMANCE.
  25. * $/LicenseInfo$
  26. */
  27. #ifndef LL_LLPANELPROFILEVIEW_H
  28. #define LL_LLPANELPROFILEVIEW_H
  29. #include "llpanel.h"
  30. #include "llpanelprofile.h"
  31. #include "llavatarpropertiesprocessor.h"
  32. #include "llagent.h"
  33. #include "lltooldraganddrop.h"
  34. class LLPanelProfile;
  35. class LLPanelProfileTab;
  36. class LLTextBox;
  37. class AvatarStatusObserver;
  38. /**
  39. * Panel for displaying Avatar's profile. It consists of three sub panels - Profile,
  40. * Picks and Notes.
  41. */
  42. class LLPanelProfileView : public LLPanelProfile
  43. {
  44. LOG_CLASS(LLPanelProfileView);
  45. friend class LLUICtrlFactory;
  46. friend class AvatarStatusObserver;
  47. public:
  48. LLPanelProfileView();
  49. /*virtual*/ ~LLPanelProfileView();
  50. /*virtual*/ void onOpen(const LLSD& key);
  51. /*virtual*/ BOOL postBuild();
  52. BOOL handleDragAndDrop(S32 x, S32 y, MASK mask,
  53.    BOOL drop, EDragAndDropType cargo_type,
  54.    void *cargo_data, EAcceptance *accept,
  55.    std::string& tooltip_msg)
  56. {
  57. LLToolDragAndDrop::handleGiveDragAndDrop(getAvatarId(), gAgent.getSessionID(), drop,
  58.  cargo_type, cargo_data, accept);
  59. return TRUE;
  60. }
  61. protected:
  62. void onBackBtnClick();
  63. bool isGrantedToSeeOnlineStatus();
  64. /**
  65.  * Displays avatar's online status if possible.
  66.  *
  67.  * Requirements from EXT-3880:
  68.  * For friends:
  69.  * - Online when online and privacy settings allow to show
  70.  * - Offline when offline and privacy settings allow to show
  71.  * - Else: nothing
  72.  * For other avatars:
  73.  *  - Online when online and was not set in Preferences/"Only Friends & Groups can see when I am online"
  74.  *  - Else: Offline
  75.  */
  76. void updateOnlineStatus();
  77. void processOnlineStatus(bool online);
  78. private:
  79. // LLCacheName will call this function when avatar name is loaded from server.
  80. // This is required to display names that have not been cached yet.
  81. void onAvatarNameCached(
  82. const LLUUID& id, 
  83. const std::string& first_name,
  84. const std::string& last_name,
  85. BOOL is_group);
  86. LLTextBox* mStatusText;
  87. AvatarStatusObserver* mAvatarStatusObserver;
  88. };
  89. #endif //LL_LLPANELPROFILEVIEW_H