PageRenderTime 30ms CodeModel.GetById 14ms app.highlight 10ms RepoModel.GetById 2ms app.codeStats 0ms

/indra/newview/llfirstuse.h

https://bitbucket.org/lindenlab/viewer-beta/
C++ Header | 110 lines | 29 code | 12 blank | 69 comment | 0 complexity | 8a32467d4ec2e400f65ca0fc2c94811e MD5 | raw file
  1/** 
  2 * @file llfirstuse.h
  3 * @brief Methods that spawn "first-use" dialogs.
  4 *
  5 * $LicenseInfo:firstyear=2003&license=viewerlgpl$
  6 * Second Life Viewer Source Code
  7 * Copyright (C) 2010, Linden Research, Inc.
  8 * 
  9 * This library is free software; you can redistribute it and/or
 10 * modify it under the terms of the GNU Lesser General Public
 11 * License as published by the Free Software Foundation;
 12 * version 2.1 of the License only.
 13 * 
 14 * This library is distributed in the hope that it will be useful,
 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 17 * Lesser General Public License for more details.
 18 * 
 19 * You should have received a copy of the GNU Lesser General Public
 20 * License along with this library; if not, write to the Free Software
 21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 22 * 
 23 * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
 24 * $/LicenseInfo$
 25 */
 26
 27#ifndef LL_LLFIRSTUSE_H
 28#define LL_LLFIRSTUSE_H
 29
 30#include <vector>
 31#include "llstring.h"
 32
 33/*
 341.  On first use of 'sit here', explain how to get up and rotate view. 
 35
 362.  On first use of map, explain dbl-click = telport, how hubs/beacons work,
 37click-drag to move map
 38
 393.  First use of pie 'Go To', explain other ways to move around 
 40
 414.  First use of 'Create' or 'Edit', explain build toolbar, that you can create
 42things if build enabled, edit things you own, and that you can ESC to exit it. 
 43
 445.  First use of 'Talk to' explain difference between that and regular chat,
 45reduced range, how to leave conversation, arrow keys to orbit. 
 46
 476.  First lft-click that does nothing (land,object):  Explain that rgt-click
 48gives menu, lft-click interacts or moves if physical
 49
 507.  On first receipt of L$ (not rez/derez) explain that objects or people may
 51give you L$, and how to give someone or something money ('Pay...'). 
 52
 538.  After first teleporting and being sent to nearest hub, a dialog explaining
 54how to find and move toward the beacon. 
 55
 569.  On first accept/auto-accept permissions, explain that some objects may be
 57activated by entering mouselook 'M', or may override your movement keys with
 58other functions. 
 59
 6010.  FIrst use of 'wear' or drag object from inventory onto self: 'You can
 61attach objects to your body by dragging ontl yourelf of rgt-clk->wear from
 62object or from inventory.
 63
 6411.  FIrst time you run the client on a system without QuickTime installed.
 65
 6612. First time you create a flexible object.
 67
 6813. First time you open the debug menus (ctrl-alt-shift D)
 69
 7014. First time you create/edit a sculpted prim.
 71
 7215. Explanation of Speak&flyout buttons.
 73*/
 74
 75class LLNotification;
 76
 77
 78class LLFirstUse
 79{
 80public:
 81
 82	// Add a config variable to be reset on resetFirstUse()
 83	static void addConfigVariable(const std::string& var);
 84	
 85	// Sets all controls back to show the dialogs.
 86	static void disableFirstUse();
 87	static void resetFirstUse();
 88
 89	static void otherAvatarChatFirst(bool enable = true);
 90	static void speak(bool enable = true);
 91	static void sit(bool enable = true);
 92	static void notUsingDestinationGuide(bool enable = true);
 93	static void notUsingSidePanel(bool enable = true);
 94	static void notMoving(bool enable = true);
 95	static void viewPopup(bool enable = true);
 96	static void newInventory(bool enable = true);
 97	static void receiveLindens(bool enable = true);
 98	static void setDisplayName(bool enable = true);
 99	static void useSandbox();
100	
101protected:
102	static void firstUseNotification(const std::string& control_var, bool enable, const std::string& notification_name, LLSD args = LLSD(), LLSD payload = LLSD());
103	static std::set<std::string> sConfigVariables;
104
105	static void init();
106	static bool processNotification(const LLSD& notify);
107};
108
109#endif
110// EOF