1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
/**
* @file llfloatermyenvironment.h
* @brief Read-only list of gestures from your inventory.
*
* $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
/**
* (Also has legacy gesture editor for testing.)
*/
#ifndef LL_LLFLOATERMYENVIRONMENT_H
#define LL_LLFLOATERMYENVIRONMENT_H
#include <vector>
#include "llfloater.h"
#include "llinventoryobserver.h"
#include "llinventoryfilter.h"
class LLView;
class LLButton;
class LLLineEditor;
class LLComboBox;
class LLViewerGesture;
class LLGestureOptions;
class LLMenuGL;
class LLInventoryPanel;
class LLFloaterMyEnvironment
: public LLFloater, LLInventoryFetchDescendentsObserver
{
LOG_CLASS(LLFloaterMyEnvironment);
public:
LLFloaterMyEnvironment(const LLSD& key);
virtual ~LLFloaterMyEnvironment();
virtual BOOL postBuild() override;
virtual void refresh() override;
virtual void onOpen(const LLSD& key) override;
private:
LLInventoryPanel * mInventoryList;
U64 mTypeFilter;
LLUUID mSelectedAsset;
void onFilterCheckChange();
void onSelectionChange();
void onDeleteSelected();
void onDoCreate(const LLSD &data);
void onDoApply(const std::string &context);
bool canAction(const std::string &context);
bool canApply(const std::string &context);
void getSelectedIds(uuid_vec_t& ids) const;
void refreshButtonStates();
bool isSettingSelected(LLUUID item_id);
static LLUUID findItemByAssetId(LLUUID asset_id, bool copyable_only, bool ignore_library);
#if 0
virtual void done ();
void refreshAll();
/**
* @brief Add new scrolllistitem into gesture_list.
* @param item_id inventory id of gesture
* @param gesture can be NULL , if item was not loaded yet
*/
void addGesture(const LLUUID& item_id, LLMultiGesture* gesture, LLCtrlListInterface * list);
protected:
// Reads from the gesture manager's list of active gestures
// and puts them in this list.
void buildGestureList();
void playGesture(LLUUID item_id);
private:
void addToCurrentOutFit();
/**
* @brief This method is using to collect selected items.
* In some places gesture_list can be rebuilt by gestureObservers during iterating data from LLScrollListCtrl::getAllSelected().
* Therefore we have to copy these items to avoid viewer crash.
* @see LLFloaterGesture::onActivateBtnClick
*/
void getSelectedIds(uuid_vec_t& ids);
bool isActionEnabled(const LLSD& command);
/**
* @brief Activation rules:
* According to Gesture Spec:
* 1. If all selected gestures are active: set to inactive
* 2. If all selected gestures are inactive: set to active
* 3. If selected gestures are in a mixed state: set all to active
*/
void onActivateBtnClick();
void onClickEdit();
void onClickPlay();
void onClickNew();
void onCommitList();
void onCopyPasteAction(const LLSD& command);
void onDeleteSelected();
LLUUID mSelectedID;
LLUUID mGestureFolderID;
LLScrollListCtrl* mGestureList;
LLFloaterGestureObserver* mObserver;
#endif
};
#endif
|