Exemple #1
0
def ScrollBar(value,minvalue=0,maxvalue=255,pos=None,size=None,**kwargs):
	
	# if type(value) != types.ListType:
	# 	raise ParameterError("value needs to be list")
	
	theme = UIState.getTheme()
	disabled = "disabled" in kwargs and kwargs['disabled']

	pos,size = theme.drawBox(pos,size,simulate=True,**kwargs)
	pos,size = UIState.doLayout(pos,size,**kwargs)
	
	isint = type(value) == types.IntType

	mx,my = UIState.getMousePos()
	
	x,y = pos
	w,h = size
	sliderh = h - 4
	bh = 10
	bw = w-4
	
	v = float(value - minvalue) / float(maxvalue)
	
	bx = x+2
	by = v * (sliderh-bh)
	
	drawFunc = theme.drawButton
	
	if mouseIsInside(pos,size):
		if not disabled:
			UIState.setHot(pos,size)
			drawFunc = theme.drawActiveButton
			
			if mousePressed():
				if not UIState.hasActive():
					UIState.setActive(pos,size)
					UIState.setKeyboardActive()
					
			else:
				if UIState.isActive(pos,size):
					UIState.setActive()
					
	active = UIState.isActive(pos,size)
	
	theme.drawBox(pos,size,active=active,**kwargs)
	if active:
		my = min(max(y,my),y+h)
		v = float(my-y)/float(h)
		drawFunc = theme.drawClickedButton
	 	
	drawFunc((bx,y+by+2),(bw-1,bh),straight=True)
	
	UIState.updateLayout(pos,size,**kwargs)
	
	
	retv = minvalue + v * (maxvalue-minvalue)
	if isint:
		return int(retv)
	
	return retv
Exemple #2
0
def mouseIsInside(pos, size, **kwargs):
    return isInside(UIState.getMousePos(), pos, size, **kwargs)