欢迎来到虫虫下载站 | 资源下载 资源专辑 关于我们
虫虫下载站

earthscrollframe.lua

时间太紧了
LUA
字号:
-- Scrollframe functionsfunction ScrollFrame_H_OnLoad()	getglobal(this:GetName().."ScrollBarScrollRightButton"):Disable();	getglobal(this:GetName().."ScrollBarScrollLeftButton"):Disable();	this.offset = 0;endfunction ScrollFrame_H_OnScrollRangeChanged(scrollrange)	local scrollbar = getglobal(this:GetName().."ScrollBar");	if ( not scrollrange ) then		scrollrange = this:GetHorizontalScrollRange();	end	local value = scrollbar:GetValue();	if ( value > scrollrange ) then		value = scrollrange;	end	scrollbar:SetMinMaxValues(0, scrollrange);	scrollbar:SetValue(value);	if ( floor(scrollrange) == 0 ) then		if (this.scrollBarHideable ) then			getglobal(this:GetName().."ScrollBar"):Hide();			getglobal(scrollbar:GetName().."ScrollRightButton"):Hide();			getglobal(scrollbar:GetName().."ScrollLeftButton"):Hide();		else			getglobal(scrollbar:GetName().."ScrollRightButton"):Disable();			getglobal(scrollbar:GetName().."ScrollLeftButton"):Disable();			getglobal(scrollbar:GetName().."ScrollRightButton"):Show();			getglobal(scrollbar:GetName().."ScrollLeftButton"):Show();		end			else		getglobal(scrollbar:GetName().."ScrollRightButton"):Show();		getglobal(scrollbar:GetName().."ScrollLeftButton"):Show();		getglobal(this:GetName().."ScrollBar"):Show();		getglobal(scrollbar:GetName().."ScrollRightButton"):Enable();	end		-- Hide/show scrollframe borders	local top = getglobal(this:GetName().."Top");	local bottom = getglobal(this:GetName().."Bottom");	if ( top and bottom and this.scrollBarHideable) then		if ( this:GetHorizontalScrollRange() == 0 ) then			top:Hide();			bottom:Hide();		else			top:Show();			bottom:Show();		end	endendfunction ScrollFrame_H_Template_OnMouseWheel(value)	local scrollBar = getglobal(this:GetName().."ScrollBar");	if ( value > 0 ) then		scrollBar:SetValue(scrollBar:GetValue() - (scrollBar:GetWidth() / 2));	else		scrollBar:SetValue(scrollBar:GetValue() + (scrollBar:GetWidth() / 2));	endend-- Function to handle the update of manually calculated scrollframes.  Used mostly for listings with an indeterminate number of itemsfunction Faux_H_ScrollFrame_Update(frame, numItems, numToDisplay, valueStep, highlightFrame, smallHighlightWidth, bigHighlightWidth )	-- If more than one screen full of skills then show the scrollbar	local frameName = frame:GetName();	local scrollBar = getglobal( frameName.."ScrollBar" );	if ( numItems > numToDisplay ) then		frame:Show();	else		scrollBar:SetValue(0);		frame:Hide();	end	if ( frame:IsVisible() ) then		local scrollChildFrame = getglobal( frameName.."ScrollChildFrame" );		local scrollLeftButton = getglobal( frameName.."ScrollBarScrollLeftButton" );		local scrollRightButton = getglobal( frameName.."ScrollBarScrollRightButton" );		local scrollFrameHeight = 0;		local scrollChildHeight = 0;		if ( numItems > 0 ) then			scrollFrameHeight = (numItems - numToDisplay) * valueStep;			scrollChildHeight = numItems * valueStep;			if ( scrollFrameHeight < 0 ) then				scrollFrameHeight = 0;			end			scrollChildFrame:Show();		else			scrollChildFrame:Hide();		end		scrollBar:SetMinMaxValues(0, scrollFrameHeight); 		scrollBar:SetValueStep(valueStep);		scrollChildFrame:SetWidth(scrollChildHeight);		-- To handle bad initialization		if ( scrollBar:GetValue() < 0 ) then			scrollBar:SetValue(0);		end				-- Arrow button handling		if ( scrollBar:GetValue() == 0 ) then			scrollLeftButton:Disable();		else			scrollLeftButton:Enable();		end		if ((scrollBar:GetValue() - scrollFrameHeight) == 0) then			scrollRightButton:Disable();		else			scrollRightButton:Enable();		end				-- Shrink because scrollbar is shown		if ( highlightFrame ) then			highlightFrame:SetHeight(smallHighlightWidth);		end	else		-- Widen because scrollbar is hidden		if ( highlightFrame ) then			highlightFrame:SetHeight(bigHighlightWidth);		end	endendfunction Earth_FauxScrollFrame_OnHorizontalScroll(itemWidth, updateFunction)	local scrollbar = getglobal(this:GetName().."ScrollBar");	scrollbar:SetValue(arg1);	this.offset = floor((scrollbar:GetValue() / itemWidth) + 0.5);	updateFunction();endfunction Earth_FauxScrollFrame_OnVerticalScroll(itemHeight, updateFunction)	local scrollbar = getglobal(this:GetName().."ScrollBar");	scrollbar:SetValue(arg1);	this.offset = floor((scrollbar:GetValue() / itemHeight) + 0.5);	updateFunction();endfunction FauxScrollFrame_GetOffset(frame)	return frame.offset;endfunction FauxScrollFrame_SetOffset(frame, offset)	frame.offset = offset;endfunction EarthSlider_CheckButton_Horizontal(slider)	local min;	local max;	min, max = slider:GetMinMaxValues();		if ( slider:GetValue() <= min ) then		slider:SetValue(min);		getglobal(slider:GetName().."ScrollLeftButton"):Disable();	else		getglobal(slider:GetName().."ScrollLeftButton"):Enable();	end	if (slider:GetValue()  >= max ) then		slider:SetValue(max);		getglobal(slider:GetName().."ScrollRightButton"):Disable();	else		getglobal(slider:GetName().."ScrollRightButton"):Enable();	endendfunction EarthSlider_CheckButton_Vertical(slider)	local min;	local max;	min, max = slider:GetMinMaxValues();		if ( slider:GetValue() <= min ) then		slider:SetValue(min);		getglobal(slider:GetName().."ScrollUpButton"):Disable();	else		getglobal(slider:GetName().."ScrollUpButton"):Enable();	end	if (slider:GetValue()  >= max ) then		slider:SetValue(max);		getglobal(slider:GetName().."ScrollDownButton"):Disable();	else		getglobal(slider:GetName().."ScrollDownButton"):Enable();	endendfunction EarthSlider_Button_Left()	local parent = this:GetParent();	parent:SetValue(parent:GetValue() - parent:GetValueStep());	PlaySound("UChatScrollButton");		EarthSlider_CheckButton_Horizontal(parent);endfunction EarthSlider_Button_Right()	local parent = this:GetParent();	parent:SetValue(parent:GetValue() + parent:GetValueStep());	PlaySound("UChatScrollButton");	EarthSlider_CheckButton_Horizontal(parent);end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -