diff --git a/indra/newview/llfloatercolorpicker.cpp b/indra/newview/llfloatercolorpicker.cpp
index ab2c1996624ae43b8dad17e9499752b6ad18c1a5..1707c0da0b52382f78d30ed438969c510aa55000 100755
--- a/indra/newview/llfloatercolorpicker.cpp
+++ b/indra/newview/llfloatercolorpicker.cpp
@@ -203,10 +203,10 @@ void LLFloaterColorPicker::showUI ()
 BOOL LLFloaterColorPicker::postBuild()
 {
 	mCancelBtn = getChild<LLButton>( "cancel_btn" );
-    mCancelBtn->setClickedCallback ( onClickCancel, this );
+	mCancelBtn->setCommitCallback(boost::bind(&LLFloaterColorPicker::onClickCancel, this));
 
 	mSelectBtn = getChild<LLButton>( "select_btn");
-    mSelectBtn->setClickedCallback ( onClickSelect, this );
+    mSelectBtn->setCommitCallback(boost::bind(&LLFloaterColorPicker::onClickSelect, this));
 	mSelectBtn->setFocus ( TRUE );
 
 	mPipetteBtn = getChild<LLButton>("color_pipette" );
@@ -381,35 +381,19 @@ void LLFloaterColorPicker::getCurHsl ( F32& curHOut, F32& curSOut, F32& curLOut
 
 //////////////////////////////////////////////////////////////////////////////
 // called when 'cancel' clicked
-void LLFloaterColorPicker::onClickCancel ( void* data )
+void LLFloaterColorPicker::onClickCancel()
 {
-	if (data)
-	{
-		LLFloaterColorPicker* self = ( LLFloaterColorPicker* )data;
-
-		if ( self )
-		{
-			self->cancelSelection ();
-			self->closeFloater();
-		}
-	}
+	cancelSelection();
+	closeFloater();
 }
 
 //////////////////////////////////////////////////////////////////////////////
 // called when 'select' clicked
-void LLFloaterColorPicker::onClickSelect ( void* data )
+void LLFloaterColorPicker::onClickSelect()
 {
-	if (data)
-	{
-		LLFloaterColorPicker* self = ( LLFloaterColorPicker* )data;
-
-		if ( self )
-		{
-			// apply to selection
-			LLColorSwatchCtrl::onColorChanged ( self->getSwatch (), LLColorSwatchCtrl::COLOR_SELECT );
-			self->closeFloater();
-		}
-	}
+	// apply to selection
+	LLColorSwatchCtrl::onColorChanged(getSwatch(), LLColorSwatchCtrl::COLOR_SELECT);
+	closeFloater();
 }
 
 void LLFloaterColorPicker::onClickPipette( )
diff --git a/indra/newview/llfloatercolorpicker.h b/indra/newview/llfloatercolorpicker.h
index 0102d6976524a98590abd1a9704a2f70199d182d..29f807cf03a3acccad9eec141a2cd365aec5d0d9 100755
--- a/indra/newview/llfloatercolorpicker.h
+++ b/indra/newview/llfloatercolorpicker.h
@@ -112,8 +112,8 @@ class LLFloaterColorPicker
 
 	protected:
 		// callbacks
-		static void onClickCancel ( void* data );
-		static void onClickSelect ( void* data );
+			   void onClickCancel();
+			   void onClickSelect();
 			   void onClickPipette ( );
 		static void onTextCommit ( LLUICtrl* ctrl, void* data );
 			   void onImmediateCheck ();
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index c44841f2e4f4540f5a41ccc2c6ec240f2e99c64a..8589cfb7349681ba57763a30221aa37eb6da72fa 100755
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -422,7 +422,7 @@ BOOL LLPanelLandGeneral::postBuild()
 
 	
 	mBtnDeedToGroup = getChild<LLButton>("Deed...");
-	mBtnDeedToGroup->setClickedCallback(onClickDeed, this);
+	mBtnDeedToGroup->setCommitCallback(boost::bind(&LLPanelLandGeneral::onClickDeed, this));
 
 	
 	mCheckContributeWithDeed = getChild<LLCheckBoxCtrl>( "check contrib");
@@ -435,7 +435,7 @@ BOOL LLPanelLandGeneral::postBuild()
 
 	
 	mBtnSellLand = getChild<LLButton>("Sell Land...");
-	mBtnSellLand->setClickedCallback(onClickSellLand, this);
+	mBtnSellLand->setCommitCallback(boost::bind(&LLPanelLandGeneral::onClickSellLand, this));
 	
 	mSaleInfoForSale2 = getChild<LLTextBox>("For sale to");
 	
@@ -445,7 +445,7 @@ BOOL LLPanelLandGeneral::postBuild()
 
 	
 	mBtnStopSellLand = getChild<LLButton>("Cancel Land Sale");
-	mBtnStopSellLand->setClickedCallback(onClickStopSellLand, this);
+	mBtnStopSellLand->setCommitCallback(boost::bind(&LLPanelLandGeneral::onClickStopSellLand, this));
 
 	
 	mTextClaimDateLabel = getChild<LLTextBox>("Claimed:");
@@ -468,7 +468,7 @@ BOOL LLPanelLandGeneral::postBuild()
 	std::string url = gAgent.getRegion()->getCapability("LandResources");
 	if (!url.empty())
 	{
-		mBtnScriptLimits->setClickedCallback(onClickScriptLimits, this);
+		mBtnScriptLimits->setCommitCallback(boost::bind(&LLPanelLandGeneral::onClickScriptLimits, this));
 	}
 	else
 	{
@@ -483,13 +483,13 @@ BOOL LLPanelLandGeneral::postBuild()
 	mBtnBuyPass->setClickedCallback(onClickBuyPass, this);
 
 	mBtnReleaseLand = getChild<LLButton>("Abandon Land...");
-	mBtnReleaseLand->setClickedCallback(onClickRelease, NULL);
+	mBtnReleaseLand->setCommitCallback(boost::bind(&LLPanelLandGeneral::onClickRelease, this));
 
 	mBtnReclaimLand = getChild<LLButton>("Reclaim Land...");
-	mBtnReclaimLand->setClickedCallback(onClickReclaim, NULL);
+	mBtnReclaimLand->setCommitCallback(boost::bind(&LLPanelLandGeneral::onClickReclaim, this));
 	
 	mBtnStartAuction = getChild<LLButton>("Linden Sale...");
-	mBtnStartAuction->setClickedCallback(onClickStartAuction, this);
+	mBtnStartAuction->setCommitCallback(boost::bind(&LLPanelLandGeneral::onClickStartAuction, this));
 
 	return TRUE;
 }
@@ -923,19 +923,16 @@ void LLPanelLandGeneral::onClickBuyLand(void* data)
 	LLViewerParcelMgr::getInstance()->startBuyLand(*for_group);
 }
 
-// static
-void LLPanelLandGeneral::onClickScriptLimits(void* data)
+void LLPanelLandGeneral::onClickScriptLimits()
 {
-	LLPanelLandGeneral* panelp = (LLPanelLandGeneral*)data;
-	LLParcel* parcel = panelp->mParcel->getParcel();
+	LLParcel* parcel = mParcel->getParcel();
 	if(parcel != NULL)
 	{
 		LLFloaterReg::showInstance("script_limits");
 	}
 }
 
-// static
-void LLPanelLandGeneral::onClickDeed(void*)
+void LLPanelLandGeneral::onClickDeed()
 {
 	//LLParcel* parcel = mParcel->getParcel();
 	//if (parcel)
@@ -944,14 +941,12 @@ void LLPanelLandGeneral::onClickDeed(void*)
 	//}
 }
 
-// static
-void LLPanelLandGeneral::onClickRelease(void*)
+void LLPanelLandGeneral::onClickRelease()
 {
 	LLViewerParcelMgr::getInstance()->startReleaseLand();
 }
 
-// static
-void LLPanelLandGeneral::onClickReclaim(void*)
+void LLPanelLandGeneral::onClickReclaim()
 {
 	LL_DEBUGS() << "LLPanelLandGeneral::onClickReclaim()" << LL_ENDL;
 	LLViewerParcelMgr::getInstance()->reclaimParcel();
@@ -992,11 +987,9 @@ void LLPanelLandGeneral::onClickBuyPass(void* data)
 	LLNotificationsUtil::add("LandBuyPass", args, LLSD(), cbBuyPass);
 }
 
-// static
-void LLPanelLandGeneral::onClickStartAuction(void* data)
+void LLPanelLandGeneral::onClickStartAuction()
 {
-	LLPanelLandGeneral* panelp = (LLPanelLandGeneral*)data;
-	LLParcel* parcelp = panelp->mParcel->getParcel();
+	LLParcel* parcelp = mParcel->getParcel();
 	if(parcelp)
 	{
 		if(parcelp->getForSale())
@@ -1056,19 +1049,15 @@ void LLPanelLandGeneral::onCommitAny()
 	refresh();
 }
 
-// static
-void LLPanelLandGeneral::onClickSellLand(void* data)
+void LLPanelLandGeneral::onClickSellLand()
 {
 	LLViewerParcelMgr::getInstance()->startSellLand();
-	LLPanelLandGeneral *panelp = (LLPanelLandGeneral *)data;
-	panelp->refresh();
+	refresh();
 }
 
-// static
-void LLPanelLandGeneral::onClickStopSellLand(void* data)
+void LLPanelLandGeneral::onClickStopSellLand()
 {
-	LLPanelLandGeneral* panelp = (LLPanelLandGeneral*)data;
-	LLParcel* parcel = panelp->mParcel->getParcel();
+	LLParcel* parcel = mParcel->getParcel();
 
 	parcel->setParcelFlag(PF_FOR_SALE, FALSE);
 	parcel->setSalePrice(0);
@@ -1113,7 +1102,6 @@ LLPanelLandObjects::LLPanelLandObjects(LLParcelSelectionHandle& parcel)
 
 BOOL LLPanelLandObjects::postBuild()
 {
-	
 	mFirstReply = TRUE;
 	mParcelObjectBonus = getChild<LLTextBox>("parcel_object_bonus");
 	mSWTotalObjects = getChild<LLTextBox>("objects_available");
@@ -1122,24 +1110,24 @@ BOOL LLPanelLandObjects::postBuild()
 	mOwnerObjects = getChild<LLTextBox>("owner_objects_text");
 	
 	mBtnShowOwnerObjects = getChild<LLButton>("ShowOwner");
-	mBtnShowOwnerObjects->setClickedCallback(onClickShowOwnerObjects, this);
+	mBtnShowOwnerObjects->setCommitCallback(boost::bind(&LLPanelLandObjects::onClickShowOwnerObjects, this));
 	
 	mBtnReturnOwnerObjects = getChild<LLButton>("ReturnOwner...");
-	mBtnReturnOwnerObjects->setClickedCallback(onClickReturnOwnerObjects, this);
+	mBtnReturnOwnerObjects->setCommitCallback(boost::bind(&LLPanelLandObjects::onClickReturnOwnerObjects, this));
 	
 	mGroupObjects = getChild<LLTextBox>("group_objects_text");
 	mBtnShowGroupObjects = getChild<LLButton>("ShowGroup");
-	mBtnShowGroupObjects->setClickedCallback(onClickShowGroupObjects, this);
+	mBtnShowGroupObjects->setCommitCallback(boost::bind(&LLPanelLandObjects::onClickShowGroupObjects, this));
 	
 	mBtnReturnGroupObjects = getChild<LLButton>("ReturnGroup...");
-	mBtnReturnGroupObjects->setClickedCallback(onClickReturnGroupObjects, this);
+	mBtnReturnGroupObjects->setCommitCallback(boost::bind(&LLPanelLandObjects::onClickReturnGroupObjects, this));
 	
 	mOtherObjects = getChild<LLTextBox>("other_objects_text");
 	mBtnShowOtherObjects = getChild<LLButton>("ShowOther");
-	mBtnShowOtherObjects->setClickedCallback(onClickShowOtherObjects, this);
+	mBtnShowOtherObjects->setCommitCallback(boost::bind(&LLPanelLandObjects::onClickShowOtherObjects, this));
 	
 	mBtnReturnOtherObjects = getChild<LLButton>("ReturnOther...");
-	mBtnReturnOtherObjects->setClickedCallback(onClickReturnOtherObjects, this);
+	mBtnReturnOtherObjects->setCommitCallback(boost::bind(&LLPanelLandObjects::onClickReturnOtherObjects, this));
 	
 	mSelectedObjects = getChild<LLTextBox>("selected_objects_text");
 	mCleanOtherObjectsTime = getChild<LLLineEditor>("clean other time");
@@ -1149,10 +1137,10 @@ BOOL LLPanelLandObjects::postBuild()
 	getChild<LLLineEditor>("clean other time")->setPrevalidate(LLTextValidate::validateNonNegativeS32);
 	
 	mBtnRefresh = getChild<LLButton>("Refresh List");
-	mBtnRefresh->setClickedCallback(onClickRefresh, this);
+	mBtnRefresh->setCommitCallback(boost::bind(&LLPanelLandObjects::onClickRefresh, this));
 	
 	mBtnReturnOwnerList = getChild<LLButton>("Return objects...");
-	mBtnReturnOwnerList->setClickedCallback(onClickReturnOwnerList, this);
+	mBtnReturnOwnerList->setCommitCallback(boost::bind(&LLPanelLandObjects::onClickReturnOwnerList, this));
 
 	mIconAvatarOnline = LLUIImageList::getInstance()->getUIImage("icon_avatar_online.tga", 0);
 	mIconAvatarOffline = LLUIImageList::getInstance()->getUIImage("icon_avatar_offline.tga", 0);
@@ -1160,26 +1148,20 @@ BOOL LLPanelLandObjects::postBuild()
 
 	mOwnerList = getChild<LLNameListCtrl>("owner list");
 	mOwnerList->sortByColumnIndex(3, FALSE);
-	childSetCommitCallback("owner list", onCommitList, this);
-	mOwnerList->setDoubleClickCallback(onDoubleClickOwner, this);
+	getChild<LLUICtrl>("owner list")->setCommitCallback(boost::bind(&LLPanelLandObjects::onCommitList, this, _1));
+	mOwnerList->setDoubleClickCallback(boost::bind(&LLPanelLandObjects::onDoubleClickOwner, this));
 	mOwnerList->setContextMenu(LLScrollListCtrl::MENU_AVATAR);
 
 	return TRUE;
 }
 
-
-
-
 // virtual
 LLPanelLandObjects::~LLPanelLandObjects()
 { }
 
-// static
-void LLPanelLandObjects::onDoubleClickOwner(void *userdata)
+void LLPanelLandObjects::onDoubleClickOwner()
 {
-	LLPanelLandObjects *self = (LLPanelLandObjects *)userdata;
-
-	LLScrollListItem* item = self->mOwnerList->getFirstSelected();
+	LLScrollListItem* item = mOwnerList->getFirstSelected();
 	if (item)
 	{
 		LLUUID owner_id = item->getUUID();
@@ -1485,59 +1467,51 @@ bool LLPanelLandObjects::callbackReturnOwnerList(const LLSD& notification, const
 	return false;
 }
 
-
-// static
-void LLPanelLandObjects::onClickReturnOwnerList(void* userdata)
+void LLPanelLandObjects::onClickReturnOwnerList()
 {
-	LLPanelLandObjects	*self = (LLPanelLandObjects *)userdata;
-
-	LLParcel* parcelp = self->mParcel->getParcel();
+	LLParcel* parcelp = mParcel->getParcel();
 	if (!parcelp) return;
 
 	// Make sure we have something selected.
-	if (self->mSelectedOwners.empty())
+	if (mSelectedOwners.empty())
 	{
 		return;
 	}
 	//uuid_list_t::iterator selected_itr = self->mSelectedOwners.begin();
 	//if (selected_itr == self->mSelectedOwners.end()) return;
 
-	send_parcel_select_objects(parcelp->getLocalID(), RT_LIST, &(self->mSelectedOwners));
+	send_parcel_select_objects(parcelp->getLocalID(), RT_LIST, &mSelectedOwners);
 
 	LLSD args;
-	args["NAME"] = self->mSelectedName;
-	args["N"] = llformat("%d",self->mSelectedCount);
-	if (self->mSelectedIsGroup)
+	args["NAME"] = mSelectedName;
+	args["N"] = std::to_string(mSelectedCount);
+	if (mSelectedIsGroup)
 	{
-		LLNotificationsUtil::add("ReturnObjectsDeededToGroup", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOwnerList, self, _1, _2));	
+		LLNotificationsUtil::add("ReturnObjectsDeededToGroup", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOwnerList, this, _1, _2));
 	}
 	else 
 	{
-		LLNotificationsUtil::add("ReturnObjectsOwnedByUser", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOwnerList, self, _1, _2));	
+		LLNotificationsUtil::add("ReturnObjectsOwnedByUser", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOwnerList, this, _1, _2));
 	}
 }
 
-
-// static
-void LLPanelLandObjects::onClickRefresh(void* userdata)
+void LLPanelLandObjects::onClickRefresh()
 {
-	LLPanelLandObjects *self = (LLPanelLandObjects*)userdata;
-
 	LLMessageSystem *msg = gMessageSystem;
 
-	LLParcel* parcel = self->mParcel->getParcel();
+	LLParcel* parcel = mParcel->getParcel();
 	if (!parcel) return;
 
 	LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion();
 	if (!region) return;
 
-	self->mBtnRefresh->setEnabled(false);
+	mBtnRefresh->setEnabled(false);
 
 	// ready the list for results
-	self->mOwnerList->deleteAllItems();
-	self->mOwnerList->setCommentText(LLTrans::getString("Searching"));
-	self->mOwnerList->setEnabled(FALSE);
-	self->mFirstReply = TRUE;
+	mOwnerList->deleteAllItems();
+	mOwnerList->setCommentText(LLTrans::getString("Searching"));
+	mOwnerList->setEnabled(FALSE);
+	mFirstReply = TRUE;
 
 	// send the message
 	msg->newMessageFast(_PREHASH_ParcelObjectOwnersRequest);
@@ -1646,15 +1620,13 @@ void LLPanelLandObjects::processParcelObjectOwnersReply(LLMessageSystem *msg, vo
 }
 
 // static
-void LLPanelLandObjects::onCommitList(LLUICtrl* ctrl, void* data)
+void LLPanelLandObjects::onCommitList(LLUICtrl* ctrl)
 {
-	LLPanelLandObjects* self = (LLPanelLandObjects*)data;
-
-	if (FALSE == self->mOwnerList->getCanSelect())
+	if (mOwnerList->getCanSelect() == FALSE)
 	{
 		return;
 	}
-	LLScrollListItem *item = self->mOwnerList->getFirstSelected();
+	LLScrollListItem *item = mOwnerList->getFirstSelected();
 	if (item)
 	{
 		// Look up the selected name, for future dialog box use.
@@ -1665,19 +1637,19 @@ void LLPanelLandObjects::onCommitList(LLUICtrl* ctrl, void* data)
 			return;
 		}
 		// Is this a group?
-		self->mSelectedIsGroup = cell->getValue().asString() == OWNER_GROUP;
+		mSelectedIsGroup = cell->getValue().asString() == OWNER_GROUP;
 		cell = item->getColumn(2);
-		self->mSelectedName = cell->getValue().asString();
+		mSelectedName = cell->getValue().asString();
 		cell = item->getColumn(3);
-		self->mSelectedCount = std::stoi(cell->getValue().asString());
+		mSelectedCount = std::stoi(cell->getValue().asString());
 
 		// Set the selection, and enable the return button.
-		self->mSelectedOwners.clear();
-		self->mSelectedOwners.insert(item->getUUID());
-		self->mBtnReturnOwnerList->setEnabled(TRUE);
+		mSelectedOwners.clear();
+		mSelectedOwners.insert(item->getUUID());
+		mBtnReturnOwnerList->setEnabled(TRUE);
 
 		// Highlight this user's objects
-		clickShowCore(self, RT_LIST, &(self->mSelectedOwners));
+		clickShowCore(this, RT_LIST, &mSelectedOwners);
 	}
 }
 
@@ -1690,31 +1662,26 @@ void LLPanelLandObjects::clickShowCore(LLPanelLandObjects* self, S32 return_type
 	send_parcel_select_objects(parcel->getLocalID(), return_type, list);
 }
 
-// static
-void LLPanelLandObjects::onClickShowOwnerObjects(void* userdata)
+void LLPanelLandObjects::onClickShowOwnerObjects()
 {
-	clickShowCore((LLPanelLandObjects*)userdata, RT_OWNER);
+	clickShowCore(this, RT_OWNER);
 }
 
-// static
-void LLPanelLandObjects::onClickShowGroupObjects(void* userdata)
+void LLPanelLandObjects::onClickShowGroupObjects()
 {
-	clickShowCore((LLPanelLandObjects*)userdata, (RT_GROUP));
+	clickShowCore(this, (RT_GROUP));
 }
 
-// static
-void LLPanelLandObjects::onClickShowOtherObjects(void* userdata)
+void LLPanelLandObjects::onClickShowOtherObjects()
 {
-	clickShowCore((LLPanelLandObjects*)userdata, RT_OTHER);
+	clickShowCore(this, RT_OTHER);
 }
 
-// static
-void LLPanelLandObjects::onClickReturnOwnerObjects(void* userdata)
+void LLPanelLandObjects::onClickReturnOwnerObjects()
 {
 	S32 owned = 0;
 
-	LLPanelLandObjects* panelp = (LLPanelLandObjects*)userdata;
-	LLParcel* parcel = panelp->mParcel->getParcel();
+	LLParcel* parcel = mParcel->getParcel();
 	if (!parcel) return;
 
 	owned = parcel->getOwnerPrimCount();
@@ -1724,24 +1691,22 @@ void LLPanelLandObjects::onClickReturnOwnerObjects(void* userdata)
 	LLUUID owner_id = parcel->getOwnerID();
 	
 	LLSD args;
-	args["N"] = llformat("%d",owned);
+	args["N"] = std::to_string(owned);
 
 	if (owner_id == gAgent.getID())
 	{
-		LLNotificationsUtil::add("ReturnObjectsOwnedBySelf", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOwnerObjects, panelp, _1, _2));
+		LLNotificationsUtil::add("ReturnObjectsOwnedBySelf", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOwnerObjects, this, _1, _2));
 	}
 	else
 	{
 		args["NAME"] = LLSLURL("agent", owner_id, "completename").getSLURLString();
-		LLNotificationsUtil::add("ReturnObjectsOwnedByUser", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOwnerObjects, panelp, _1, _2));
+		LLNotificationsUtil::add("ReturnObjectsOwnedByUser", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOwnerObjects, this, _1, _2));
 	}
 }
 
-// static
-void LLPanelLandObjects::onClickReturnGroupObjects(void* userdata)
+void LLPanelLandObjects::onClickReturnGroupObjects()
 {
-	LLPanelLandObjects* panelp = (LLPanelLandObjects*)userdata;
-	LLParcel* parcel = panelp->mParcel->getParcel();
+	LLParcel* parcel = mParcel->getParcel();
 	if (!parcel) return;
 
 	send_parcel_select_objects(parcel->getLocalID(), RT_GROUP);
@@ -1754,16 +1719,14 @@ void LLPanelLandObjects::onClickReturnGroupObjects(void* userdata)
 	args["N"] = llformat("%d", parcel->getGroupPrimCount());
 
 	// create and show confirmation textbox
-	LLNotificationsUtil::add("ReturnObjectsDeededToGroup", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnGroupObjects, panelp, _1, _2));
+	LLNotificationsUtil::add("ReturnObjectsDeededToGroup", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnGroupObjects, this, _1, _2));
 }
 
-// static
-void LLPanelLandObjects::onClickReturnOtherObjects(void* userdata)
+void LLPanelLandObjects::onClickReturnOtherObjects()
 {
 	S32 other = 0;
 
-	LLPanelLandObjects* panelp = (LLPanelLandObjects*)userdata;
-	LLParcel* parcel = panelp->mParcel->getParcel();
+	LLParcel* parcel = mParcel->getParcel();
 	if (!parcel) return;
 	
 	other = parcel->getOtherPrimCount();
@@ -1779,7 +1742,7 @@ void LLPanelLandObjects::onClickReturnOtherObjects(void* userdata)
 		gCacheName->getGroupName(parcel->getGroupID(), group_name);
 		args["NAME"] = group_name;
 
-		LLNotificationsUtil::add("ReturnObjectsNotOwnedByGroup", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOtherObjects, panelp, _1, _2));
+		LLNotificationsUtil::add("ReturnObjectsNotOwnedByGroup", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOtherObjects, this, _1, _2));
 	}
 	else
 	{
@@ -1787,12 +1750,12 @@ void LLPanelLandObjects::onClickReturnOtherObjects(void* userdata)
 
 		if (owner_id == gAgent.getID())
 		{
-			LLNotificationsUtil::add("ReturnObjectsNotOwnedBySelf", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOtherObjects, panelp, _1, _2));
+			LLNotificationsUtil::add("ReturnObjectsNotOwnedBySelf", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOtherObjects, this, _1, _2));
 		}
 		else
 		{
 			args["NAME"] = LLSLURL("agent", owner_id, "completename").getSLURLString();
-			LLNotificationsUtil::add("ReturnObjectsNotOwnedByUser", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOtherObjects, panelp, _1, _2));
+			LLNotificationsUtil::add("ReturnObjectsNotOwnedByUser", args, LLSD(), boost::bind(&LLPanelLandObjects::callbackReturnOtherObjects, this, _1, _2));
 		}
 	}
 }
@@ -1928,11 +1891,11 @@ BOOL LLPanelLandOptions::postBuild()
 	mLocationText = getChild<LLTextBox>("landing_point");
 
 	mSetBtn = getChild<LLButton>("Set");
-	mSetBtn->setClickedCallback(onClickSet, this);
+	mSetBtn->setCommitCallback(boost::bind(&LLPanelLandOptions::onClickSet, this));
 
 	
 	mClearBtn = getChild<LLButton>("Clear");
-	mClearBtn->setClickedCallback(onClickClear, this);
+	mClearBtn->setCommitCallback(boost::bind(&LLPanelLandOptions::onClickClear, this));
 
 
 	mLandingTypeCombo = getChild<LLComboBox>( "landing type");
@@ -2301,13 +2264,9 @@ void LLPanelLandOptions::onCommitAny()
 	refresh();
 }
 
-
-// static
-void LLPanelLandOptions::onClickSet(void* userdata)
+void LLPanelLandOptions::onClickSet()
 {
-	LLPanelLandOptions* self = (LLPanelLandOptions*)userdata;
-
-	LLParcel* selected_parcel = self->mParcel->getParcel();
+	LLParcel* selected_parcel = mParcel->getParcel();
 	if (!selected_parcel) return;
 
 	LLParcel* agent_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
@@ -2325,14 +2284,12 @@ void LLPanelLandOptions::onClickSet(void* userdata)
 
 	LLViewerParcelMgr::getInstance()->sendParcelPropertiesUpdate(selected_parcel);
 
-	self->refresh();
+	refresh();
 }
 
-void LLPanelLandOptions::onClickClear(void* userdata)
+void LLPanelLandOptions::onClickClear()
 {
-	LLPanelLandOptions* self = (LLPanelLandOptions*)userdata;
-
-	LLParcel* selected_parcel = self->mParcel->getParcel();
+	LLParcel* selected_parcel = mParcel->getParcel();
 	if (!selected_parcel) return;
 
 	// yes, this magic number of 0,0,0 means that it is clear
@@ -2342,7 +2299,7 @@ void LLPanelLandOptions::onClickClear(void* userdata)
 
 	LLViewerParcelMgr::getInstance()->sendParcelPropertiesUpdate(selected_parcel);
 
-	self->refresh();
+	refresh();
 }
 
 
@@ -2359,19 +2316,19 @@ LLPanelLandAccess::LLPanelLandAccess(LLParcelSelectionHandle& parcel)
 
 BOOL LLPanelLandAccess::postBuild()
 {
-	childSetCommitCallback("public_access", onCommitPublicAccess, this);
+	getChild<LLUICtrl>("public_access")->setCommitCallback(boost::bind(&LLPanelLandAccess::onCommitPublicAccess, this, _1));
 	getChild<LLUICtrl>("limit_payment")->setCommitCallback(boost::bind(&LLPanelLandAccess::onCommitAny, this));
 	getChild<LLUICtrl>("limit_age_verified")->setCommitCallback(boost::bind(&LLPanelLandAccess::onCommitAny, this));
-	childSetCommitCallback("GroupCheck", onCommitGroupCheck, this);
+	getChild<LLUICtrl>("GroupCheck")->setCommitCallback(boost::bind(&LLPanelLandAccess::onCommitGroupCheck, this, _1));
 	getChild<LLUICtrl>("PassCheck")->setCommitCallback(boost::bind(&LLPanelLandAccess::onCommitAny, this));
 	getChild<LLUICtrl>("pass_combo")->setCommitCallback(boost::bind(&LLPanelLandAccess::onCommitAny, this));
 	getChild<LLUICtrl>("PriceSpin")->setCommitCallback(boost::bind(&LLPanelLandAccess::onCommitAny, this));
 	getChild<LLUICtrl>("HoursSpin")->setCommitCallback(boost::bind(&LLPanelLandAccess::onCommitAny, this));
 
 	childSetAction("add_allowed", boost::bind(&LLPanelLandAccess::onClickAddAccess, this));
-	childSetAction("remove_allowed", onClickRemoveAccess, this);
+	getChild<LLUICtrl>("remove_allowed")->setCommitCallback(boost::bind(&LLPanelLandAccess::onClickRemoveAccess, this));
 	childSetAction("add_banned", boost::bind(&LLPanelLandAccess::onClickAddBanned, this));
-	childSetAction("remove_banned", onClickRemoveBanned, this);
+	getChild<LLUICtrl>("remove_banned")->setCommitCallback(boost::bind(&LLPanelLandAccess::onClickRemoveBanned, this));
 	
 	mListAccess = getChild<LLNameListCtrl>("AccessList");
 	if (mListAccess)
@@ -2677,43 +2634,37 @@ void LLPanelLandAccess::draw()
 	LLPanel::draw();
 }
 
-// static
-void LLPanelLandAccess::onCommitPublicAccess(LLUICtrl *ctrl, void *userdata)
+void LLPanelLandAccess::onCommitPublicAccess(LLUICtrl *ctrl)
 {
-	LLPanelLandAccess *self = (LLPanelLandAccess *)userdata;
-	LLParcel* parcel = self->mParcel->getParcel();
+	LLParcel* parcel = mParcel->getParcel();
 	if (!parcel)
 	{
 		return;
 	}
 
-	self->onCommitAny();
+	onCommitAny();
 }
 
-void LLPanelLandAccess::onCommitGroupCheck(LLUICtrl *ctrl, void *userdata)
+void LLPanelLandAccess::onCommitGroupCheck(LLUICtrl *ctrl)
 {
-	LLPanelLandAccess *self = (LLPanelLandAccess *)userdata;
-	LLParcel* parcel = self->mParcel->getParcel();
+	LLParcel* parcel = mParcel->getParcel();
 	if (!parcel)
 	{
 		return;
 	}
 
-	BOOL use_pass_list = !self->getChild<LLUICtrl>("public_access")->getValue().asBoolean();
-	BOOL use_access_group = self->getChild<LLUICtrl>("GroupCheck")->getValue().asBoolean();
-	LLCtrlSelectionInterface* passcombo = self->childGetSelectionInterface("pass_combo");
-	if (passcombo)
+	BOOL use_pass_list = !getChild<LLUICtrl>("public_access")->getValue().asBoolean();
+	BOOL use_access_group = getChild<LLUICtrl>("GroupCheck")->getValue().asBoolean();
+	LLCtrlSelectionInterface* passcombo = childGetSelectionInterface("pass_combo");
+	if (passcombo && use_access_group && use_pass_list)
 	{
-		if (use_access_group && use_pass_list)
+		if (passcombo->getSelectedValue().asString() == "group")
 		{
-			if (passcombo->getSelectedValue().asString() == "group")
-			{
-				passcombo->selectByValue("anyone");
-			}
+			passcombo->selectByValue("anyone");
 		}
 	}
 
-	self->onCommitAny();
+	onCommitAny();
 }
 
 void LLPanelLandAccess::onCommitAny()
@@ -2818,15 +2769,14 @@ void LLPanelLandAccess::callbackAvatarCBAccess(const uuid_vec_t& ids)
 }
 
 // static
-void LLPanelLandAccess::onClickRemoveAccess(void* data)
+void LLPanelLandAccess::onClickRemoveAccess()
 {
-	LLPanelLandAccess* panelp = (LLPanelLandAccess*)data;
-	if (panelp && panelp->mListAccess)
+	if (mListAccess)
 	{
-		LLParcel* parcel = panelp->mParcel->getParcel();
+		LLParcel* parcel = mParcel->getParcel();
 		if (parcel)
 		{
-			std::vector<LLScrollListItem*> names = panelp->mListAccess->getAllSelected();
+			std::vector<LLScrollListItem*> names = mListAccess->getAllSelected();
 			for (std::vector<LLScrollListItem*>::iterator iter = names.begin();
 				 iter != names.end(); )
 			{
@@ -2835,7 +2785,7 @@ void LLPanelLandAccess::onClickRemoveAccess(void* data)
 				parcel->removeFromAccessList(agent_id);
 			}
 			LLViewerParcelMgr::getInstance()->sendParcelAccessListUpdate(AL_ACCESS);
-			panelp->refresh();
+			refresh();
 		}
 	}
 }
@@ -2875,16 +2825,14 @@ void LLPanelLandAccess::callbackAvatarCBBanned(const uuid_vec_t& ids)
 	}
 }
 
-// static
-void LLPanelLandAccess::onClickRemoveBanned(void* data)
+void LLPanelLandAccess::onClickRemoveBanned()
 {
-	LLPanelLandAccess* panelp = (LLPanelLandAccess*)data;
-	if (panelp && panelp->mListBanned)
+	if (mListBanned)
 	{
-		LLParcel* parcel = panelp->mParcel->getParcel();
+		LLParcel* parcel = mParcel->getParcel();
 		if (parcel)
 		{
-			std::vector<LLScrollListItem*> names = panelp->mListBanned->getAllSelected();
+			std::vector<LLScrollListItem*> names = mListBanned->getAllSelected();
 			for (std::vector<LLScrollListItem*>::iterator iter = names.begin();
 				 iter != names.end(); )
 			{
@@ -2893,7 +2841,7 @@ void LLPanelLandAccess::onClickRemoveBanned(void* data)
 				parcel->removeFromBanList(agent_id);
 			}
 			LLViewerParcelMgr::getInstance()->sendParcelAccessListUpdate(AL_BAN);
-			panelp->refresh();
+			refresh();
 		}
 	}
 }
diff --git a/indra/newview/llfloaterland.h b/indra/newview/llfloaterland.h
index fbd707afb7dfef55d1d714fbcd35aa8d3fadcef4..369cb2e7ab051f2f94c2d64f9477f8c92530e98f 100755
--- a/indra/newview/llfloaterland.h
+++ b/indra/newview/llfloaterland.h
@@ -139,14 +139,14 @@ public:
 	void setGroup(const LLUUID& group_id);
 	void onClickProfile();
 	void onClickSetGroup();
-	static void onClickDeed(void*);
 	static void onClickBuyLand(void* data);
-	static void onClickScriptLimits(void* data);
-	static void onClickRelease(void*);
-	static void onClickReclaim(void*);
 	static void onClickBuyPass(void* deselect_when_done);
+	void onClickDeed();
+	void onClickScriptLimits();
+	void onClickRelease();
+	void onClickReclaim();
 	static BOOL enableBuyPass(void*);
-		   void onCommitAny();
+	void onCommitAny();
 	static void finalizeCommit(void * userdata);
 	static void onForSaleChange(LLUICtrl *ctrl, void * userdata);
 	static void finalizeSetSellChange(void * userdata);
@@ -154,15 +154,15 @@ public:
 
 	static bool cbBuyPass(const LLSD& notification, const LLSD& response);
 
-	static void onClickSellLand(void* data);
-	static void onClickStopSellLand(void* data);
-	static void onClickSet(void* data);
-	static void onClickClear(void* data);
-	static void onClickShow(void* data);
+	void onClickSellLand();
+	void onClickStopSellLand();
+	void onClickSet();
+	void onClickClear();
+	void onClickShow();
 	static void callbackAvatarPick(const std::vector<std::string>& names, const uuid_vec_t& ids, void* data);
 	static void finalizeAvatarPick(void* data);
 	static void callbackHighlightTransferable(S32 option, void* userdata);
-	static void onClickStartAuction(void*);
+	void onClickStartAuction();
 	// sale change confirmed when "is for sale", "sale price", "sell to whom" fields are changed
 	static void confirmSaleChange(S32 landSize, S32 salePrice, std::string authorizedName, void(*callback)(void*), void* userdata);
 	static void callbackConfirmSaleChange(S32 option, void* userdata);
@@ -249,19 +249,19 @@ public:
 	bool callbackReturnOwnerList(const LLSD& notification, const LLSD& response);
 
 	static void clickShowCore(LLPanelLandObjects* panelp, S32 return_type, uuid_list_t* list = 0);
-	static void onClickShowOwnerObjects(void*);
-	static void onClickShowGroupObjects(void*);
-	static void onClickShowOtherObjects(void*);
+	void onClickShowOwnerObjects();
+	void onClickShowGroupObjects();
+	void onClickShowOtherObjects();
 
-	static void onClickReturnOwnerObjects(void*);
-	static void onClickReturnGroupObjects(void*);
-	static void onClickReturnOtherObjects(void*);
-	static void onClickReturnOwnerList(void*);
-	static void onClickRefresh(void*);
+	void onClickReturnOwnerObjects();
+	void onClickReturnGroupObjects();
+	void onClickReturnOtherObjects();
+	void onClickReturnOwnerList();
+	void onClickRefresh();
 
-	static void onDoubleClickOwner(void*);	
+	void onDoubleClickOwner();	
 
-	static void onCommitList(LLUICtrl* ctrl, void* data);
+	void onCommitList(LLUICtrl* ctrl);
 	static void onLostFocus(LLFocusableElement* caller, void* user_data);
 		   void onCommitClean();
 	static void processParcelObjectOwnersReply(LLMessageSystem *msg, void **);
@@ -320,8 +320,8 @@ private:
 	void refreshSearch();
 
 	void onCommitAny();
-	static void onClickSet(void* userdata);
-	static void onClickClear(void* userdata);
+	void onClickSet();
+	void onClickClear();
 
 private:
 	LLCheckBoxCtrl*	mCheckEditObjects;
@@ -363,11 +363,11 @@ public:
 	void refreshNames();
 	virtual void draw();
 
-	static void onCommitPublicAccess(LLUICtrl* ctrl, void *userdata);
-		   void onCommitAny();
-	static void onCommitGroupCheck(LLUICtrl* ctrl, void *userdata);
-	static void onClickRemoveAccess(void*);
-	static void onClickRemoveBanned(void*);
+	void onCommitPublicAccess(LLUICtrl* ctrl);
+	void onCommitAny();
+	void onCommitGroupCheck(LLUICtrl* ctrl);
+	void onClickRemoveAccess();
+	void onClickRemoveBanned();
 
 	virtual BOOL postBuild();
 	
diff --git a/indra/newview/llfloatermediasettings.cpp b/indra/newview/llfloatermediasettings.cpp
index 6fb55ef18c8155b8f4e9782302cd39160608bb12..5baca64b77c4c3050a97171c450a33e32e0118a6 100755
--- a/indra/newview/llfloatermediasettings.cpp
+++ b/indra/newview/llfloatermediasettings.cpp
@@ -83,13 +83,13 @@ LLFloaterMediaSettings::~LLFloaterMediaSettings()
 BOOL LLFloaterMediaSettings::postBuild()
 {
 	mApplyBtn = getChild<LLButton>("Apply");
-	mApplyBtn->setClickedCallback(onBtnApply, this);
+	mApplyBtn->setCommitCallback(boost::bind(&LLFloaterMediaSettings::onBtnApply, this));
 		
 	mCancelBtn = getChild<LLButton>("Cancel");
-	mCancelBtn->setClickedCallback(onBtnCancel, this);
+	mCancelBtn->setCommitCallback(boost::bind(&LLFloaterMediaSettings::onBtnCancel, this));
 
 	mOKBtn = getChild<LLButton>("OK");
-	mOKBtn->setClickedCallback(onBtnOK, this);
+	mOKBtn->setCommitCallback(boost::bind(&LLFloaterMediaSettings::onBtnOK, this));
 			
 	mTabContainer = getChild<LLTabContainer>( "tab_container" );
 	
@@ -220,37 +220,31 @@ void LLFloaterMediaSettings::clearValues( bool editable)
 	}
 }
 
-////////////////////////////////////////////////////////////////////////////////
-// static
-void LLFloaterMediaSettings::onBtnOK( void* userdata )
+void LLFloaterMediaSettings::onBtnOK()
 {
-	sInstance->commitFields();
+	commitFields();
 
-	sInstance->apply();
+	apply();
 
-	sInstance->closeFloater();
+	closeFloater();
 }
 
-////////////////////////////////////////////////////////////////////////////////
-// static
-void LLFloaterMediaSettings::onBtnApply( void* userdata )
+void LLFloaterMediaSettings::onBtnApply()
 {
-	sInstance->commitFields();
+	commitFields();
 
-	sInstance->apply();
+	apply();
 
-	sInstance->mInitialValues.clear();
-	sInstance->mPanelMediaSettingsGeneral->getValues( sInstance->mInitialValues );
-	sInstance->mPanelMediaSettingsSecurity->getValues( sInstance->mInitialValues );
-	sInstance->mPanelMediaSettingsPermissions->getValues( sInstance->mInitialValues );
+	mInitialValues.clear();
+	mPanelMediaSettingsGeneral->getValues( mInitialValues );
+	mPanelMediaSettingsSecurity->getValues( mInitialValues );
+	mPanelMediaSettingsPermissions->getValues( mInitialValues );
 
 }
 
-////////////////////////////////////////////////////////////////////////////////
-// static
-void LLFloaterMediaSettings::onBtnCancel( void* userdata )
+void LLFloaterMediaSettings::onBtnCancel()
 {
-	sInstance->closeFloater(); 
+	closeFloater(); 
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -315,5 +309,3 @@ bool LLFloaterMediaSettings::instanceExists()
 {
 	return LLFloaterReg::findTypedInstance<LLFloaterMediaSettings>("media_settings");
 }
-
-
diff --git a/indra/newview/llfloatermediasettings.h b/indra/newview/llfloatermediasettings.h
index fe69b5dac982f4ec80aa8ccaca106e1a807d83c0..e1a9d2c9cb23e0ad349231f2ea2c229b0e497af3 100755
--- a/indra/newview/llfloatermediasettings.h
+++ b/indra/newview/llfloatermediasettings.h
@@ -56,9 +56,12 @@ public:
 
 	virtual void	draw();
 
-	bool mIdenticalHasMediaInfo;
-	bool mMultipleMedia;
-	bool mMultipleValidMedia;
+	bool getIdenticalHasMediaInfo() const { return mIdenticalHasMediaInfo; }
+	bool getMultipleMedia() const { return mMultipleMedia; }
+	bool getMultipleValidMedia() const { return mMultipleValidMedia; }
+	void setIdenticalHasMediaInfo(bool m) { mIdenticalHasMediaInfo = m; }
+	void setMultipleMedia(bool m) { mMultipleMedia = m; }
+	void setMultipleValidMedia(bool m) { mMultipleValidMedia = m; }
 	
 protected:
 	LLButton *mOKBtn;
@@ -70,9 +73,9 @@ protected:
 	LLPanelMediaSettingsSecurity* mPanelMediaSettingsSecurity;
 	LLPanelMediaSettingsPermissions* mPanelMediaSettingsPermissions;
 
-	static void onBtnOK(void*);
-	static void onBtnCancel(void*);
-	static void onBtnApply(void*);
+	void onBtnOK();
+	void onBtnCancel();
+	void onBtnApply();
 	static void onTabChanged(void* user_data, bool from_click);
 	void commitFields();
 
@@ -83,6 +86,10 @@ private:
 	bool haveValuesChanged() const;
 	
 	LLSD mInitialValues;
+	
+	bool mIdenticalHasMediaInfo;
+	bool mMultipleMedia;
+	bool mMultipleValidMedia;
 };
 
 #endif  // LL_LLFLOATERMEDIASETTINGS_H
diff --git a/indra/newview/llfloaternotificationsconsole.cpp b/indra/newview/llfloaternotificationsconsole.cpp
index 88057d3b4e7345572725f150cdf56ee47a76993f..64fd443e4a04abc2519c4a04271e0af19b3c7d09 100755
--- a/indra/newview/llfloaternotificationsconsole.cpp
+++ b/indra/newview/llfloaternotificationsconsole.cpp
@@ -45,7 +45,7 @@ public:
 
 private:
 	bool update(const LLSD& payload);
-	static void toggleClick(void* user_data);
+	void toggleClick();
 	static void onClickNotification(void* user_data);
 	LLNotificationChannelPtr mChannelPtr;
 };
@@ -75,7 +75,7 @@ BOOL LLNotificationChannelPanel::postBuild()
 {
 	LLButton* header_button = getChild<LLButton>("header");
 	header_button->setLabel(mChannelPtr->getName());
-	header_button->setClickedCallback(toggleClick, this);
+	header_button->setCommitCallback(boost::bind(&LLNotificationChannelPanel::toggleClick, this));
 
 	mChannelPtr->connectChanged(boost::bind(&LLNotificationChannelPanel::update, this, _1));
 
@@ -85,23 +85,19 @@ BOOL LLNotificationChannelPanel::postBuild()
 	return TRUE;
 }
 
-//static
-void LLNotificationChannelPanel::toggleClick(void *user_data)
+void LLNotificationChannelPanel::toggleClick()
 {
-	LLNotificationChannelPanel* self = (LLNotificationChannelPanel*)user_data;
-	if (!self) return;
-	
-	LLButton* header_button = self->getChild<LLButton>("header");
+	LLButton* header_button = getChild<LLButton>("header");
 	
-	LLLayoutStack* stack = dynamic_cast<LLLayoutStack*>(self->getParent());
+	LLLayoutStack* stack = dynamic_cast<LLLayoutStack*>(getParent());
 	if (stack)
 	{
-		stack->collapsePanel(self, header_button->getToggleState());
+		stack->collapsePanel(this, header_button->getToggleState());
 	}
 
 	// turn off tab stop for collapsed panel
-	self->getChild<LLScrollListCtrl>("notifications_list")->setTabStop(!header_button->getToggleState());
-	self->getChild<LLScrollListCtrl>("notifications_list")->setVisible(!header_button->getToggleState());
+	getChild<LLScrollListCtrl>("notifications_list")->setTabStop(!header_button->getToggleState());
+	getChild<LLScrollListCtrl>("notifications_list")->setVisible(!header_button->getToggleState());
 }
 
 /*static*/
diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp
index 4d23e61029f8f39c0e33a150b98ff45a963a4cd4..bf869fccb6b94acefa31067617025daca58995f9 100755
--- a/indra/newview/llfloatertools.cpp
+++ b/indra/newview/llfloatertools.cpp
@@ -1308,7 +1308,7 @@ void LLFloaterTools::getMediaState()
 	
 	
 	// check if all faces have media(or, all dont have media)
-	LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo = selected_objects->getSelectedTEValue( &func, bool_has_media );
+	LLFloaterMediaSettings::getInstance()->setIdenticalHasMediaInfo(selected_objects->getSelectedTEValue( &func, bool_has_media ));
 	
 	const LLMediaEntry default_media_data;
 	
@@ -1330,7 +1330,7 @@ void LLFloaterTools::getMediaState()
     } func_media_data(default_media_data);
 
 	LLMediaEntry media_data_get;
-    LLFloaterMediaSettings::getInstance()->mMultipleMedia = !(selected_objects->getSelectedTEValue( &func_media_data, media_data_get ));
+    LLFloaterMediaSettings::getInstance()->setMultipleMedia(!(selected_objects->getSelectedTEValue( &func_media_data, media_data_get )));
 	
 	std::string multi_media_info_str = LLTrans::getString("Multiple Media");
 	std::string media_title = "";
@@ -1340,12 +1340,12 @@ void LLFloaterTools::getMediaState()
 	
 	getChildView("Add_Media")->setEnabled(editable);
 	// IF all the faces have media (or all dont have media)
-	if ( LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo )
+	if ( LLFloaterMediaSettings::getInstance()->getIdenticalHasMediaInfo() )
 	{
 		// TODO: get media title and set it.
 		media_info->clear();
 		// if identical is set, all faces are same (whether all empty or has the same media)
-		if(!(LLFloaterMediaSettings::getInstance()->mMultipleMedia) )
+		if(!(LLFloaterMediaSettings::getInstance()->getMultipleMedia()) )
 		{
 			// Media data is valid
 			if(media_data_get!=default_media_data)
@@ -1366,7 +1366,7 @@ void LLFloaterTools::getMediaState()
 		}
 		
 		getChildView("media_tex")->setEnabled(bool_has_media && editable);
-		getChildView("edit_media")->setEnabled(bool_has_media && LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo && editable );
+		getChildView("edit_media")->setEnabled(bool_has_media && LLFloaterMediaSettings::getInstance()->getIdenticalHasMediaInfo() && editable );
 		getChildView("delete_media")->setEnabled(bool_has_media && editable );
 		getChildView("add_media")->setEnabled(editable);
 			// TODO: display a list of all media on the face - use 'identical' flag
@@ -1374,9 +1374,9 @@ void LLFloaterTools::getMediaState()
 	else // not all face has media but at least one does.
 	{
 		// seleted faces have not identical value
-		LLFloaterMediaSettings::getInstance()->mMultipleValidMedia = selected_objects->isMultipleTEValue(&func_media_data, default_media_data );
+		LLFloaterMediaSettings::getInstance()->setMultipleValidMedia(selected_objects->isMultipleTEValue(&func_media_data, default_media_data));
 	
-		if(LLFloaterMediaSettings::getInstance()->mMultipleValidMedia)
+		if(LLFloaterMediaSettings::getInstance()->getMultipleValidMedia())
 		{
 			media_title = multi_media_info_str;
 			mNeedMediaTitle = false;
@@ -1396,7 +1396,7 @@ void LLFloaterTools::getMediaState()
 		}
 		
 		getChildView("media_tex")->setEnabled(TRUE);
-		getChildView("edit_media")->setEnabled(LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo);
+		getChildView("edit_media")->setEnabled(LLFloaterMediaSettings::getInstance()->getIdenticalHasMediaInfo());
 		getChildView("delete_media")->setEnabled(TRUE);
 		getChildView("add_media")->setEnabled(editable);
 	}
diff --git a/indra/newview/lljoystickbutton.cpp b/indra/newview/lljoystickbutton.cpp
index 59e14e6cc01c902d2e256f0e324bd6d96afedd7a..106e5d5c918d51fd2994d4c40b051c65588d8966 100755
--- a/indra/newview/lljoystickbutton.cpp
+++ b/indra/newview/lljoystickbutton.cpp
@@ -80,7 +80,7 @@ LLJoystick::LLJoystick(const LLJoystick::Params& p)
 	mHeldDownTimer(),
 	mInitialQuadrant(p.quadrant)
 {
-	setHeldDownCallback(&LLJoystick::onBtnHeldDown, this);
+	setHeldDownCallback(boost::bind(&LLJoystick::onBtnHeldDown, this));
 }
 
 
diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp
index feac7a7211eea515d080562aeb6c56e4e2b0e78f..bc6d1506725096b3574fec45f76e39276cd2b609 100755
--- a/indra/newview/llpanelgroup.cpp
+++ b/indra/newview/llpanelgroup.cpp
@@ -147,21 +147,21 @@ BOOL LLPanelGroup::postBuild()
 	LLButton* button;
 
 	button = getChild<LLButton>("btn_apply");
-	button->setClickedCallback(onBtnApply, this);
+	button->setCommitCallback(boost::bind(&LLPanelGroup::onBtnApply, this));
 	button->setVisible(true);
 	button->setEnabled(false);
 
 	button = getChild<LLButton>("btn_call");
-	button->setClickedCallback(onBtnGroupCallClicked, this);
+	button->setCommitCallback(boost::bind(&LLPanelGroup::callGroup, this));
 
 	button = getChild<LLButton>("btn_chat");
-	button->setClickedCallback(onBtnGroupChatClicked, this);
+	button->setCommitCallback(boost::bind(&LLPanelGroup::chatGroup, this));
 
 	button = getChild<LLButton>("btn_cancel");
 	button->setVisible(false);	button->setEnabled(true);
 
 	button = getChild<LLButton>("btn_refresh");
-	button->setClickedCallback(onBtnRefresh, this);
+	button->setCommitCallback(boost::bind(&LLPanelGroup::refreshData, this));
 
 	getChild<LLButton>("btn_create")->setVisible(false);
 
@@ -268,30 +268,12 @@ void LLPanelGroup::onBtnCreate()
 	}
 }
 
-void LLPanelGroup::onBtnRefresh(void* user_data)
+void LLPanelGroup::onBtnApply()
 {
-	LLPanelGroup* self = static_cast<LLPanelGroup*>(user_data);
-	self->refreshData();
+	apply();
+	refreshData();
 }
 
-void LLPanelGroup::onBtnApply(void* user_data)
-{
-	LLPanelGroup* self = static_cast<LLPanelGroup*>(user_data);
-	self->apply();
-	self->refreshData();
-}
-
-void LLPanelGroup::onBtnGroupCallClicked(void* user_data)
-{
-	LLPanelGroup* self = static_cast<LLPanelGroup*>(user_data);
-	self->callGroup();
-}
-
-void LLPanelGroup::onBtnGroupChatClicked(void* user_data)
-{
-	LLPanelGroup* self = static_cast<LLPanelGroup*>(user_data);
-	self->chatGroup();
-}
 
 void LLPanelGroup::onBtnJoin()
 {
diff --git a/indra/newview/llpanelgroup.h b/indra/newview/llpanelgroup.h
index 0c7423a2c6df7429ec75b8b48bb01663067aab13..083681be26d158e221b3050991ba452cbb019f49 100755
--- a/indra/newview/llpanelgroup.h
+++ b/indra/newview/llpanelgroup.h
@@ -96,11 +96,7 @@ protected:
 	void onBackBtnClick();
 	void onBtnJoin();
 	void onBtnCancel();
-
-	static void onBtnApply(void*);
-	static void onBtnRefresh(void*);
-	static void onBtnGroupCallClicked(void*);
-	static void onBtnGroupChatClicked(void*);
+	void onBtnApply();
 
 	void reposButton(const std::string& name);
 	void reposButtons();
diff --git a/indra/newview/llpanelgroupbulk.cpp b/indra/newview/llpanelgroupbulk.cpp
index a18e45725e67cdaab76cb505fd6c3ed53b355374..d8781ad1cb47028223bf7ba0a8726bd0aeefe616 100644
--- a/indra/newview/llpanelgroupbulk.cpp
+++ b/indra/newview/llpanelgroupbulk.cpp
@@ -114,7 +114,7 @@ void LLPanelGroupBulkImpl::callbackClickCancel(void* userdata)
 		(*(selfp->mCloseCallback))(selfp->mCloseCallbackUserData);
 }
 
-void LLPanelGroupBulkImpl::callbackSelect(LLUICtrl* ctrl, void* userdata)
+void LLPanelGroupBulkImpl::callbackSelect(void* userdata)
 {
 	LLPanelGroupBulkImpl* selfp = (LLPanelGroupBulkImpl*)userdata;
 	if (selfp) 
diff --git a/indra/newview/llpanelgroupbulkban.cpp b/indra/newview/llpanelgroupbulkban.cpp
index f34244e27147f547821b4ec6a959bf95de22d109..f892715daebee1912ca56d625021a4f58ac4ca42 100644
--- a/indra/newview/llpanelgroupbulkban.cpp
+++ b/indra/newview/llpanelgroupbulkban.cpp
@@ -63,7 +63,7 @@ BOOL LLPanelGroupBulkBan::postBuild()
 	if ( mImplementation->mBulkAgentList )
 	{
 		mImplementation->mBulkAgentList->setCommitOnSelectionChange(TRUE);
-		mImplementation->mBulkAgentList->setCommitCallback(LLPanelGroupBulkImpl::callbackSelect, mImplementation);
+		mImplementation->mBulkAgentList->setCommitCallback(boost::bind(&LLPanelGroupBulkImpl::callbackSelect, this));
 	}
 
 	LLButton* button = getChild<LLButton>("add_button", recurse);
@@ -71,14 +71,14 @@ BOOL LLPanelGroupBulkBan::postBuild()
 	{
 		// default to opening avatarpicker automatically
 		// (*impl::callbackClickAdd)((void*)this);
-		button->setClickedCallback(LLPanelGroupBulkImpl::callbackClickAdd, this);
+		button->setCommitCallback(boost::bind(&LLPanelGroupBulkImpl::callbackClickAdd, this));
 	}
 
 	mImplementation->mRemoveButton = 
 		getChild<LLButton>("remove_button", recurse);
 	if ( mImplementation->mRemoveButton )
 	{
-		mImplementation->mRemoveButton->setClickedCallback(LLPanelGroupBulkImpl::callbackClickRemove, mImplementation);
+		mImplementation->mRemoveButton->setCommitCallback(boost::bind(&LLPanelGroupBulkImpl::callbackClickRemove, mImplementation));
 		mImplementation->mRemoveButton->setEnabled(FALSE);
 	}
 
@@ -86,14 +86,14 @@ BOOL LLPanelGroupBulkBan::postBuild()
 		getChild<LLButton>("ban_button", recurse);
 	if ( mImplementation->mOKButton )
 	{
-		mImplementation->mOKButton->setClickedCallback(LLPanelGroupBulkBan::callbackClickSubmit, this);
+		mImplementation->mOKButton->setCommitCallback(boost::bind(&LLPanelGroupBulkBan::callbackClickSubmit, this));
 		mImplementation->mOKButton->setEnabled(FALSE);
 	}
 
 	button = getChild<LLButton>("cancel_button", recurse);
 	if ( button )
 	{
-		button->setClickedCallback(LLPanelGroupBulkImpl::callbackClickCancel, mImplementation);
+		button->setCommitCallback(boost::bind(&LLPanelGroupBulkImpl::callbackClickCancel, mImplementation));
 	}
 
 	mImplementation->mTooManySelected = getString("ban_selection_too_large");
diff --git a/indra/newview/llpanelgroupbulkimpl.h b/indra/newview/llpanelgroupbulkimpl.h
index d3a48e5a9a3fb462c4df5eb8d16bcb32d94d3952..a4ef4414729e21455623eb2783a67953500f177b 100644
--- a/indra/newview/llpanelgroupbulkimpl.h
+++ b/indra/newview/llpanelgroupbulkimpl.h
@@ -49,7 +49,7 @@ public:
 
 	static void callbackClickCancel(void* userdata);
 
-	static void callbackSelect(LLUICtrl* ctrl, void* userdata);
+	static void callbackSelect(void* userdata);
 	static void callbackAddUsers(const uuid_vec_t& agent_ids, void* user_data);
 
 	static void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name, void* user_data);
diff --git a/indra/newview/llpanelgroupinvite.cpp b/indra/newview/llpanelgroupinvite.cpp
index 2c7ef760909abff55fe96f0c1b8da7a54888ec99..876e13c917edc350c8750900dde5ca88a7f62c89 100755
--- a/indra/newview/llpanelgroupinvite.cpp
+++ b/indra/newview/llpanelgroupinvite.cpp
@@ -645,14 +645,14 @@ BOOL LLPanelGroupInvite::postBuild()
 	{
 		// default to opening avatarpicker automatically
 		// (*impl::callbackClickAdd)((void*)this);
-		button->setClickedCallback(impl::callbackClickAdd, this);
+		button->setCommitCallback(boost::bind(impl::callbackClickAdd, this));
 	}
 
 	mImplementation->mRemoveButton = 
 			getChild<LLButton>("remove_button", recurse);
 	if ( mImplementation->mRemoveButton )
 	{
-		mImplementation->mRemoveButton->setClickedCallback(impl::callbackClickRemove, mImplementation);
+		mImplementation->mRemoveButton->setCommitCallback(boost::bind(impl::callbackClickRemove, mImplementation));
 		mImplementation->mRemoveButton->setEnabled(FALSE);
 	}
 
@@ -660,14 +660,14 @@ BOOL LLPanelGroupInvite::postBuild()
 		getChild<LLButton>("invite_button", recurse);
 	if ( mImplementation->mOKButton )
  	{
-		mImplementation->mOKButton->setClickedCallback(impl::callbackClickOK, mImplementation);
+		mImplementation->mOKButton->setCommitCallback(boost::bind(impl::callbackClickOK, mImplementation));
 		mImplementation->mOKButton->setEnabled(FALSE);
  	}
 
 	button = getChild<LLButton>("cancel_button", recurse);
 	if ( button )
 	{
-		button->setClickedCallback(impl::callbackClickCancel, mImplementation);
+		button->setCommitCallback(boost::bind(impl::callbackClickCancel, mImplementation));
 	}
 
 	mImplementation->mOwnerWarning = getString("confirm_invite_owner_str");
diff --git a/indra/newview/llpanelgrouplandmoney.cpp b/indra/newview/llpanelgrouplandmoney.cpp
index 5e2e979c68c14b911669c80dbb2a305878359846..b3c455f4ecd132b660d6019960726222cb5a86a4 100755
--- a/indra/newview/llpanelgrouplandmoney.cpp
+++ b/indra/newview/llpanelgrouplandmoney.cpp
@@ -717,7 +717,7 @@ BOOL LLPanelGroupLandMoney::postBuild()
 	
 	if ( mImplementationp->mMapButtonp )
 	{
-		mImplementationp->mMapButtonp->setClickedCallback(LLPanelGroupLandMoney::impl::mapCallback, mImplementationp);
+		mImplementationp->mMapButtonp->setCommitCallback(boost::bind(LLPanelGroupLandMoney::impl::mapCallback, mImplementationp));
 	}
 
 	if ( mImplementationp->mGroupOverLimitTextp )
@@ -927,12 +927,12 @@ LLGroupMoneyTabEventHandler::LLGroupMoneyTabEventHandler(LLButton* earlier_butto
 
 	if ( earlier_buttonp )
 	{
-		earlier_buttonp->setClickedCallback(clickEarlierCallback, this);
+		earlier_buttonp->setCommitCallback(boost::bind(&LLGroupMoneyTabEventHandler::clickEarlierCallback, this));
 	}
 
 	if ( later_buttonp )
 	{
-		later_buttonp->setClickedCallback(clickLaterCallback, this);
+		later_buttonp->setCommitCallback(boost::bind(&LLGroupMoneyTabEventHandler::clickLaterCallback, this));
 	}
 
 	mImplementationp->updateButtons();
@@ -1552,7 +1552,7 @@ void LLPanelGroupLandMoney::setGroupID(const LLUUID& id)
 	
 	if ( mImplementationp->mMapButtonp )
 	{
-		mImplementationp->mMapButtonp->setClickedCallback(LLPanelGroupLandMoney::impl::mapCallback, mImplementationp);
+		mImplementationp->mMapButtonp->setCommitCallback(boost::bind(&LLPanelGroupLandMoney::impl::mapCallback, mImplementationp));
 	}
 
 	if ( mImplementationp->mGroupOverLimitTextp )
diff --git a/indra/newview/llpanelgroupnotices.cpp b/indra/newview/llpanelgroupnotices.cpp
index 5260714ae945d67d7e8fd8f12c56dc4c245dcc58..01958bebfb968dedf3b447cc97e7e27f005842f4 100755
--- a/indra/newview/llpanelgroupnotices.cpp
+++ b/indra/newview/llpanelgroupnotices.cpp
@@ -248,11 +248,11 @@ BOOL LLPanelGroupNotices::postBuild()
 	mNoticesList->setCommitCallback(boost::bind(&LLPanelGroupNotices::onSelectNotice, this));
 
 	mBtnNewMessage = getChild<LLButton>("create_new_notice",recurse);
-	mBtnNewMessage->setClickedCallback(onClickNewMessage, this);
+	mBtnNewMessage->setCommitCallback(boost::bind(&LLPanelGroupNotices::onClickNewMessage, this));
 	mBtnNewMessage->setEnabled(gAgent.hasPowerInGroup(mGroupID, GP_NOTICES_SEND));
 
 	mBtnGetPastNotices = getChild<LLButton>("refresh_notices",recurse);
-	mBtnGetPastNotices->setClickedCallback(onClickRefreshNotices, this);
+	mBtnGetPastNotices->setClickedCallback(boost::bind(&LLPanelGroupNotices::onClickRefreshNotices, this));
 
 	// Create
 	mCreateSubject = getChild<LLLineEditor>("create_subject",recurse);
@@ -266,10 +266,10 @@ BOOL LLPanelGroupNotices::postBuild()
 	mCreateInventoryIcon->setVisible(FALSE);
 
 	mBtnSendMessage = getChild<LLButton>("send_notice",recurse);
-	mBtnSendMessage->setClickedCallback(onClickSendMessage, this);
+	mBtnSendMessage->setClickedCallback(boost::bind(&LLPanelGroupNotices::onClickSendMessage, this));
 
 	mBtnRemoveAttachment = getChild<LLButton>("remove_attachment",recurse);
-	mBtnRemoveAttachment->setClickedCallback(onClickRemoveAttachment, this);
+	mBtnRemoveAttachment->setClickedCallback(boost::bind(&LLPanelGroupNotices::onClickRemoveAttachment, this));
 	mBtnRemoveAttachment->setEnabled(FALSE);
 
 	// View
@@ -284,7 +284,7 @@ BOOL LLPanelGroupNotices::postBuild()
 	mViewInventoryIcon->setVisible(FALSE);
 
 	mBtnOpenAttachment = getChild<LLButton>("open_attachment",recurse);
-	mBtnOpenAttachment->setClickedCallback(onClickOpenAttachment, this);
+	mBtnOpenAttachment->setClickedCallback(boost::bind(&LLPanelGroupNotices::onClickOpenAttachment, this));
 
 	mNoNoticesStr = getString("no_notices_text");
 
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index 0bccc34c33dffd62966b132207d0974ff50b174f..2905e834c3bd5ee817c28a15adaaef67f5c3e4d5 100755
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -843,7 +843,7 @@ BOOL LLPanelGroupMembersSubTab::postBuildSubTab(LLView* root)
 	LLButton* button = parent->getChild<LLButton>("member_invite", recurse);
 	if ( button )
 	{
-		button->setClickedCallback(onInviteMember, this);
+		button->setCommitCallback(boost::bind(&LLPanelGroupMembersSubTab::onInviteMember, this));
 		button->setEnabled(gAgent.hasPowerInGroup(mGroupID, GP_MEMBER_INVITE));
 	}
 	
@@ -857,14 +857,14 @@ BOOL LLPanelGroupMembersSubTab::postBuildSubTab(LLView* root)
 	mEjectBtn = parent->getChild<LLButton>("member_eject", recurse);
 	if ( mEjectBtn )
 	{
-		mEjectBtn->setClickedCallback(onEjectMembers, this);
+		mEjectBtn->setClickedCallback(boost::bind(&LLPanelGroupMembersSubTab::onEjectMembers, this));
 		mEjectBtn->setEnabled(FALSE);
 	}
 
 	mBanBtn = parent->getChild<LLButton>("member_ban", recurse);
 	if(mBanBtn)
 	{
-		mBanBtn->setClickedCallback(onBanMember, this);
+		mBanBtn->setClickedCallback(boost::bind(&LLPanelGroupMembersSubTab::onBanMember, this));
 		mBanBtn->setEnabled(FALSE);
 	}
 
@@ -1996,7 +1996,7 @@ BOOL LLPanelGroupRolesSubTab::postBuildSubTab(LLView* root)
 		parent->getChild<LLButton>("role_create", recurse);
 	if ( mCreateRoleButton )
 	{
-		mCreateRoleButton->setClickedCallback(onCreateRole, this);
+		mCreateRoleButton->setCommitCallback(boost::bind(&LLPanelGroupRolesSubTab::onCreateRole, this));
 		mCreateRoleButton->setEnabled(FALSE);
 	}
 	
@@ -2004,7 +2004,7 @@ BOOL LLPanelGroupRolesSubTab::postBuildSubTab(LLView* root)
 		parent->getChild<LLButton>("role_delete", recurse);
 	if ( mDeleteRoleButton )
 	{
-		mDeleteRoleButton->setClickedCallback(onDeleteRole, this);
+		mDeleteRoleButton->setClickedCallback(boost::bind(&LLPanelGroupRolesSubTab::onDeleteRole, this));
 		mDeleteRoleButton->setEnabled(FALSE);
 	}
 
diff --git a/indra/newview/llpanelmediasettingsgeneral.cpp b/indra/newview/llpanelmediasettingsgeneral.cpp
index e6c0834dac68cdbe001424bc6d5766008b9e7f10..0b612ff53574523030cc5621a8152018cf07ff9f 100755
--- a/indra/newview/llpanelmediasettingsgeneral.cpp
+++ b/indra/newview/llpanelmediasettingsgeneral.cpp
@@ -222,9 +222,9 @@ void LLPanelMediaSettingsGeneral::clearValues( void* userdata, bool editable)
 bool LLPanelMediaSettingsGeneral::isMultiple()
 {
 	// IF all the faces have media (or all dont have media)
-	if ( LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo )
+	if ( LLFloaterMediaSettings::getInstance()->getIdenticalHasMediaInfo() )
 	{
-		if(LLFloaterMediaSettings::getInstance()->mMultipleMedia) 
+		if(LLFloaterMediaSettings::getInstance()->getMultipleMedia())
 		{
 			return true;
 		}
@@ -232,7 +232,7 @@ bool LLPanelMediaSettingsGeneral::isMultiple()
 	}
 	else
 	{
-		if(LLFloaterMediaSettings::getInstance()->mMultipleValidMedia) 
+		if(LLFloaterMediaSettings::getInstance()->getMultipleValidMedia())
 		{
 			return true;
 		}
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index 86acb98905cf5df82b8be6c53bda9fb722742f7e..20f1d91d219990e624cb5852338c12a169a220d0 100755
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -162,7 +162,7 @@ BOOL LLStatusBar::postBuild()
 {
 	gMenuBarView->setRightMouseDownCallback(boost::bind(&show_navbar_context_menu, _1, _2, _3));
 
-	mTextTime = getChild<LLTextBox>("TimeText" );
+	mTextTime = getChild<LLTextBox>("TimeText");
 	
 	mTextFPS = getChild<LLTextBox>("FPSText");
 
diff --git a/indra/newview/llviewchildren.cpp b/indra/newview/llviewchildren.cpp
index 5c5bbdc8f589ab25809a89efb95bf9e8e724bf59..ac6fe3dce13e46e532e2e7953b602274b7d25520 100755
--- a/indra/newview/llviewchildren.cpp
+++ b/indra/newview/llviewchildren.cpp
@@ -57,8 +57,7 @@ void LLViewChildren::enable(const std::string& id, bool enabled)
 	mParent.getChildView(id)->setEnabled(enabled);
 }
 
-void LLViewChildren::setText(
-	const std::string& id, const std::string& text, bool visible)
+void LLViewChildren::setText(const std::string& id, const std::string& text, bool visible)
 {
 	LLTextBox* child = mParent.getChild<LLTextBox>(id);
 	if (child)
@@ -89,10 +88,7 @@ void LLViewChildren::setAction(const std::string& id,
 	void(*function)(void*), void* value)
 {
 	LLButton* button = mParent.getChild<LLButton>(id);
-	if (button)
-	{
-		button->setClickedCallback(function, value);
-	}
+	button->setClickedCallback(function, value);
 }