Example #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
Example #2
0
def CheckedButton(value,text=None,pos=None,size=None,**kwargs):
	ret = False

	theme = UIState.getTheme()

	pos,size = theme.drawButton(pos,size,text,simulate=True,**kwargs)
	pos,size = UIState.doLayout(pos,size,**kwargs)

	disabled = "disabled" in kwargs and kwargs['disabled']
	disabledFunc = None
	if disabled:
		disabledFunc = theme.drawDisabledButton

	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):
					if value:
						value = False
					else:
						value = True
					UIState.setActive()
	else:
		if UIState.isActive(pos,size):
			UIState.setActive()

	if value:
		drawFunc = theme.drawClickedButton

	drawFunc = disabledFunc or drawFunc
	drawFunc(pos,size,text,**kwargs)
	UIState.updateLayout(pos,size,**kwargs)

	return value
Example #3
0
def CheckBox(value,text,pos=None,size=None,**kwargs):
	theme = UIState.getTheme()
	
	xsize = 16
	boxsize = (xsize,xsize)
	
	if not size and text:
		pos,textsize = theme.drawText(text,pos,size,simulate=True,**kwargs)
		boxsize = (textsize[1]+4,textsize[1]+4)
		size = (textsize[0]+boxsize[0]+4,textsize[1])
	else:
		size = boxsize
		
	pos,size = UIState.doLayout(pos,size,**kwargs)
	disabled = "disabled" in kwargs and kwargs['disabled']
	
	if mouseIsInside(pos,boxsize):
		if not disabled:
			UIState.setHot(pos,boxsize)
			
			if mousePressed():
				if not UIState.hasActive():
					UIState.setActive(pos,boxsize)
					UIState.setKeyboardActive()
					
			else:
				if UIState.isActive(pos,boxsize):
					UIState.setActive()
					if value:
						value = False
					else:
						value = True
	
	theme.drawCheckbox(value,pos,boxsize,active=UIState.isActive(pos,boxsize))

	if text:
		theme.drawText(text,(pos[0]+4+boxsize[0],pos[1]),textsize,checkbox=True,**kwargs)
	
	UIState.updateLayout(pos,size,**kwargs)
	
	return value