From 606b381c9fbc43c214afd26fb2e2598eec656b66 Mon Sep 17 00:00:00 2001 From: Steven Bennetts Date: Tue, 29 Sep 2009 19:37:05 +0000 Subject: merge https://svn.aws.productengine.com/secondlife/export-from-ll/viewer-2-0@1830 https://svn.aws.productengine.com/secondlife/pe/stable-2@1839 -> viewer-2.0.0-3 JIRAS: EXT-96 EXT-204 EXT-312 EXT-334 EXT-479 EXT-498 EXT-514 EXT-637 EXT-647 EXT-746 EXT-748 EXT-749 EXT-757 EXT-789 EXT-794 EXT-808 EXT-817 EXT-823 EXT-831 EXT-834 EXT-837 EXT-844 EXT-848 EXT-862 EXT-876 EXT-896 EXT-897 EXT-898 EXT-899 EXT-910 EXT-912 EXT-918 EXT-921 EXT-925 EXT-926 EXT-928 EXT-930 EXT-931 EXT-935 EXT-938 EXT-939 EXT-952 EXT-985 EXT-986 EXT-992 EXT-994 EXT-995 EXT-996 EXT-997 EXT-998 EXT-1001 EXT-1004 EXT-1010 EXT-1012 EXT-1016 EXT-1018 EXT-1020 EXT-1028 EXT-1041 EXT-1044 EXT-1051 EXT-1052 EXT-1061 EXT-1069 EXT-1071 EXT-1074 EXT-1075 EXT-1076 EXT-1078 EXT-1080 EXT-1081 EXT-1082 EXT-1083 EXT-1085 EXT-1092 EXT-1093 EXT-1099 EXT-1100 EXT-1101 EXT-1104 EXT-1106 EXT-1111 EXT-1113 EXT-1114 EXT-1115 EXT-1116 EXT-1118 EXT-1119 EXT-1129 EXT-1132 EXT-1135 EXT-1138 EXT-1142 EXT-1161 EXT-1162 EXT-1178 EXT-1180 * NEW DEVELOPMENT: * EXT-898 - Add dock/undock support for camera and movement controls * Avatar list changes * Bottom bar changes: menu, docking, visibility * Camera changes * Camera & Movement Floaters * Dockable Floaters (LLDockableFloater) * Removed LLListCtrl * Toast / Notification changes: signal / destruction changes, ordering * Nearby chat input should display active voice indicator QA NOTES: * Message Well Window is ready to be tested for regression & matching the spec. * Verify Group List Item L&F * Verify All tabs in People Panel * Verify that Picks behavior is not changed --- indra/newview/llsyswellwindow.h | 53 ++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 16 deletions(-) (limited to 'indra/newview/llsyswellwindow.h') diff --git a/indra/newview/llsyswellwindow.h b/indra/newview/llsyswellwindow.h index d76147b489..37a2690a82 100644 --- a/indra/newview/llsyswellwindow.h +++ b/indra/newview/llsyswellwindow.h @@ -44,7 +44,7 @@ #include "boost/shared_ptr.hpp" - +class LLFlatListView; class LLSysWellWindow : public LLDockableFloater, LLIMSessionObserver { @@ -54,36 +54,52 @@ public: BOOL postBuild(); // other interface functions + // check is window empty bool isWindowEmpty(); - // change attributes - void setChannel(LLNotificationsUI::LLScreenChannel* channel) {mChannel = channel;} - // Operating with items void addItem(LLSysWellItem::Params p); void clear( void ); void removeItemByID(const LLUUID& id); - S32 findItemByID(const LLUUID& id); // Operating with outfit virtual void setVisible(BOOL visible); void adjustWindowPosition(); void toggleWindow(); - /*virtua*/BOOL canClose() { return FALSE; } + /*virtual*/ BOOL canClose() { return FALSE; } + /*virtual*/ void setDocked(bool docked, bool pop_on_undock = true); // Handlers void onItemClick(LLSysWellItem* item); void onItemClose(LLSysWellItem* item); + void onStoreToast(LLPanel* info_panel, LLUUID id); + void onChicletClick(); // size constants for the window and for its elements static const S32 MAX_WINDOW_HEIGHT = 200; - static const S32 MIN_WINDOW_WIDTH = 320; - static const S32 MIN_PANELLIST_WIDTH = 318; + static const S32 MIN_WINDOW_WIDTH = 318; private: + + typedef enum{ + IT_NOTIFICATION, + IT_INSTANT_MESSAGE + }EItemType; + + // gets a rect valid for SysWellWindow's position on a screen (EXT-1111) + void getEnabledRect(LLRect& rect); + // connect counter and list updaters to the corresponding signals + void connectListUpdaterToSignal(std::string notification_type); + // init Window's channel + void initChannel(); + void handleItemAdded(EItemType added_item_type); + void handleItemRemoved(EItemType removed_item_type); + bool anotherTypeExists(EItemType item_type) ; + + + class RowPanel; void reshapeWindow(); - RowPanel * findIMRow(const LLUUID& sessionId); LLChiclet * findIMChiclet(const LLUUID& sessionId); void addIMRow(const LLUUID& sessionId, S32 chicletCounter, const std::string& name, const LLUUID& otherParticipantId); void delIMRow(const LLUUID& sessionId); @@ -93,23 +109,28 @@ private: // pointer to a corresponding channel's instance LLNotificationsUI::LLScreenChannel* mChannel; - LLPanel* mTwinListPanel; - LLScrollContainer* mScrollContainer; - LLScrollingPanelList* mIMRowList; - LLScrollingPanelList* mNotificationList; + LLFlatListView* mMessageList; + + /** + * Special panel which is used as separator of Notifications & IM Rows. + * It is always presents in the list and shown when it is necessary. + * It should be taken into account when reshaping and checking list size + */ + LLPanel* mSeparator; + + typedef std::map typed_items_count_t; + typed_items_count_t mTypedItemsCount; private: /** * Scrolling row panel. */ - class RowPanel: public LLScrollingPanel + class RowPanel: public LLPanel { public: RowPanel(const LLSysWellWindow* parent, const LLUUID& sessionId, S32 chicletCounter, const std::string& name, const LLUUID& otherParticipantId); virtual ~RowPanel(); - /*virtual*/ - void updatePanel(BOOL allow_modify); void onMouseEnter(S32 x, S32 y, MASK mask); void onMouseLeave(S32 x, S32 y, MASK mask); BOOL handleMouseDown(S32 x, S32 y, MASK mask); -- cgit v1.2.3 From f05df68656d2abdc38d86cd6746398fa90eb8614 Mon Sep 17 00:00:00 2001 From: Steven Bennetts Date: Thu, 1 Oct 2009 17:44:44 +0000 Subject: merge https://svn.aws.productengine.com/secondlife/export-from-ll/viewer-2-0@1868 https://svn.aws.productengine.com/secondlife/pe/stable-2@1876 -> viewer-2.0.0-3 * Bugs: EXT-1111 EXT-915 EXT-1131 EXT-1200 EXT-1202 EXT-1201 EXT-1205 EXT-1212 EXT-1173 EXT-1229 EXT-1218 EXT-1164 EXT-996 EXT-821 EXT-1030 EXT-1031 EXT-816 * Major Bugs: EXT-1142 (timeout during login due to processing group IMs) * Changes: EXT-1216 (minimize message well) --- indra/newview/llsyswellwindow.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'indra/newview/llsyswellwindow.h') diff --git a/indra/newview/llsyswellwindow.h b/indra/newview/llsyswellwindow.h index 37a2690a82..203b949715 100644 --- a/indra/newview/llsyswellwindow.h +++ b/indra/newview/llsyswellwindow.h @@ -68,6 +68,8 @@ public: void toggleWindow(); /*virtual*/ BOOL canClose() { return FALSE; } /*virtual*/ void setDocked(bool docked, bool pop_on_undock = true); + // override LLFloater's minimization according to EXT-1216 + /*virtual*/ void setMinimized(BOOL minimize); // Handlers void onItemClick(LLSysWellItem* item); @@ -86,8 +88,8 @@ private: IT_INSTANT_MESSAGE }EItemType; - // gets a rect valid for SysWellWindow's position on a screen (EXT-1111) - void getEnabledRect(LLRect& rect); + // gets a rect that bounds possible positions for the SysWellWindow on a screen (EXT-1111) + void getAllowedRect(LLRect& rect); // connect counter and list updaters to the corresponding signals void connectListUpdaterToSignal(std::string notification_type); // init Window's channel -- cgit v1.2.3