aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llfloatercustomize.h
diff options
context:
space:
mode:
authorJacek Antonelli2008-08-15 23:44:46 -0500
committerJacek Antonelli2008-08-15 23:44:46 -0500
commit38d6d37f2d982fa959e9e8a4a3f7e1ccfad7b5d4 (patch)
treeadca584755d22ca041a2dbfc35d4eca01f70b32c /linden/indra/newview/llfloatercustomize.h
parentREADME.txt (diff)
downloadmeta-impy-38d6d37f2d982fa959e9e8a4a3f7e1ccfad7b5d4.zip
meta-impy-38d6d37f2d982fa959e9e8a4a3f7e1ccfad7b5d4.tar.gz
meta-impy-38d6d37f2d982fa959e9e8a4a3f7e1ccfad7b5d4.tar.bz2
meta-impy-38d6d37f2d982fa959e9e8a4a3f7e1ccfad7b5d4.tar.xz
Second Life viewer sources 1.13.2.12
Diffstat (limited to '')
-rw-r--r--linden/indra/newview/llfloatercustomize.h148
1 files changed, 148 insertions, 0 deletions
diff --git a/linden/indra/newview/llfloatercustomize.h b/linden/indra/newview/llfloatercustomize.h
new file mode 100644
index 0000000..47419e2
--- /dev/null
+++ b/linden/indra/newview/llfloatercustomize.h
@@ -0,0 +1,148 @@
1/**
2 * @file llfloatercustomize.h
3 * @brief The customize avatar floater, triggered by "Appearance..."
4 *
5 * Copyright (c) 2002-2007, Linden Research, Inc.
6 *
7 * The source code in this file ("Source Code") is provided by Linden Lab
8 * to you under the terms of the GNU General Public License, version 2.0
9 * ("GPL"), unless you have obtained a separate licensing agreement
10 * ("Other License"), formally executed by you and Linden Lab. Terms of
11 * the GPL can be found in doc/GPL-license.txt in this distribution, or
12 * online at http://secondlife.com/developers/opensource/gplv2
13 *
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 http://secondlife.com/developers/opensource/flossexception
18 *
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 *
23 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
24 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
25 * COMPLETENESS OR PERFORMANCE.
26 */
27
28#ifndef LL_LLFLOATERCUSTOMIZE_H
29#define LL_LLFLOATERCUSTOMIZE_H
30
31#include <map>
32
33#include "llfloater.h"
34#include "llstring.h"
35#include "v3dmath.h"
36#include "lltimer.h"
37#include "doublelinkedlist.h"
38#include "llundo.h"
39#include "llviewermenu.h"
40#include "llvoavatar.h"
41#include "llwearable.h"
42#include "lliconctrl.h"
43
44class LLButton;
45class LLIconCtrl;
46class LLColorSwatchCtrl;
47class LLGenePool;
48class LLInventoryObserver;
49class LLJoint;
50class LLLineEditor;
51class LLMakeOutfitDialog;
52class LLRadioGroup;
53class LLScrollableContainerView;
54class LLScrollingPanelList;
55class LLTabContainerVertical;
56class LLTextBox;
57class LLTextureCtrl;
58class LLViewerJointMesh;
59class LLViewerVisualParam;
60class LLVisualParam;
61class LLVisualParamReset;
62class LLWearableSaveAsDialog;
63class LLPanelEditWearable;
64
65/////////////////////////////////////////////////////////////////////
66// LLFloaterCustomize
67
68class LLFloaterCustomize : public LLFloater
69{
70public:
71 typedef std::pair<BOOL, LLViewerVisualParam*> editable_param;
72 typedef std::map<F32, editable_param> param_map;
73
74public:
75 LLFloaterCustomize();
76 virtual ~LLFloaterCustomize();
77 virtual BOOL postBuild();
78
79 // Inherted methods from LLFloater (and above)
80 virtual void onClose(bool app_quitting);
81 virtual void draw();
82
83 // New methods
84 void clearScrollingPanelList();
85 void generateVisualParamHints(LLViewerJointMesh* joint_mesh,
86 param_map& params);
87
88 const LLString& getEditGroup();
89 void addVisualParamToUndoBuffer( LLViewerVisualParam* param, F32 current_weight );
90
91 void updateScrollingPanelList(BOOL allow_modify);
92
93 void setWearable(EWearableType type, LLWearable* wearable, U32 perm_mask, BOOL is_complete);
94 //const char* getWearableDescription( EWearableType type );
95 LLPanelEditWearable* getCurrentWearablePanel() { return mWearablePanelList[ sCurrentWearableType ]; }
96
97 BOOL isDirty();
98
99 void askToSaveAllIfDirty( void(*next_step_callback)(BOOL proceed, void* userdata), void* userdata );
100
101 void spawnWearableAppearance( EWearableType type );
102
103 void switchToDefaultSubpart();
104
105 static void setCurrentWearableType( EWearableType type );
106 static EWearableType getCurrentWearableType() { return sCurrentWearableType; }
107
108 // Callbacks
109 static void onBtnSaveAll( void* userdata );
110 static void onBtnSnapshot( void* userdata );
111 static void onBtnMakeOutfit( void* userdata );
112 static void onMakeOutfitCommit( LLMakeOutfitDialog* dialog, void* userdata );
113
114 static void onTabChanged( void* userdata, bool from_click );
115 static void onSaveAllDialog( S32 option, void* userdata );
116
117 void fetchInventory();
118 void updateInventoryUI();
119 void updateScrollingPanelUI();
120
121protected:
122 LLPanelEditWearable* mWearablePanelList[ WT_COUNT ];
123
124 static EWearableType sCurrentWearableType;
125
126 LLScrollingPanelList* mScrollingPanelList;
127 LLScrollableContainerView* mScrollContainer;
128 LLGenePool* mGenePool;
129 LLVisualParamReset* mResetParams;
130
131 LLInventoryObserver* mInventoryObserver;
132
133 void (*mNextStepAfterSaveAllCallback)(BOOL proceed, void* userdata);
134 void* mNextStepAfterSaveAllUserdata;
135
136
137protected:
138
139 static void* createWearablePanel(void* userdata);
140
141 void initWearablePanels();
142 void initScrollingPanelList();
143};
144
145extern LLFloaterCustomize* gFloaterCustomize;
146
147
148#endif // LL_LLFLOATERCUSTOMIZE_H