/** * @file floaterbusy.h * @brief Custom busy mode settings for Imprudence * * $LicenseInfo:firstyear=2009&license=viewergpl$ * * Copyright (c) 2010, McCabe Maxsted * * Imprudence Viewer Source Code * The source code in this file ("Source Code") is provided to you * under the terms of the GNU General Public License, version 2.0 * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in * this distribution, or online at * http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, * and agree to abide by those obligations. * * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ */ #ifndef FLOATERBUSY_H #define FLOATERBUSY_H #include "llfloater.h" class LLViewerInventoryItem; ////////begin drop utility///////////// //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Class InvDropTarget // // This handy class is a simple way to drop something on another // view. It handles drop events, always setting itself to the size of // its parent. // // altered to support a callback so i can slap it in things and it just return the item to a func of my choice //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class InvDropTarget : public LLView { public: InvDropTarget(const std::string& name, const LLRect& rect, void (*callback)(LLViewerInventoryItem*)); ~InvDropTarget(); void doDrop(EDragAndDropType cargo_type, void* cargo_data); // // LLView functionality virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, EDragAndDropType cargo_type, void* cargo_data, EAcceptance* accept, std::string& tooltip_msg); protected: void (*mDownCallback)(LLViewerInventoryItem*); }; ////////end drop utility/////////////// class FloaterBusy : public LLFloater, public LLFloaterSingleton { public: FloaterBusy(const LLSD& seed); virtual ~FloaterBusy(); BOOL postBuild(); void apply(); void cancel(); private: static InvDropTarget* mObjectDropTarget; static void onClickOK(void* userdata); static void onClickCancel(void* userdata); static void IMAutoResponseItemDrop(LLViewerInventoryItem* item); }; #endif FLOATERBUSY_H