Register for your free account! | Forgot your password?

You last visited: Today at 19:48

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release]Resizable button

Discussion on [Release]Resizable button within the Metin2 PServer Designs, Websites & Scripts forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
Eigenartig's Avatar
 
elite*gold: 0
Join Date: Sep 2012
Posts: 219
Received Thanks: 123
[Release]Resizable button

Video:


Code:
class CoolButton(ui.Window):
	
	BACKGROUND_COLOR = grp.GenerateColor(0.0, 0.0, 0.0, 1.0)
	DARK_COLOR = grp.GenerateColor(0.4, 0.4, 0.4, 1.0)
	
	WHITE_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 0.3)
	HALF_WHITE_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 0.2)
	
	def __init__(self, layer = "UI"):
		ui.Window.__init__(self, layer)

		self.eventFunc = None
		self.eventArgs = None

		self.ButtonText = None
		self.ToolTipText = None
		
		self.isOver = FALSE
		self.isSelected = FALSE
		
		self.width = 0
		self.height = 0		

	def __del__(self):
		ui.Window.__del__(self)

		self.eventFunc = None
		self.eventArgs = None

	def SetSize(self, width, height):
		ui.Window.SetSize(self, width, height)
		self.width = width
		self.height = height
		
	def SetEvent(self, func, *args):
		self.eventFunc = func
		self.eventArgs = args

	def SetTextColor(self, color):
		if not self.ButtonText:
			return
		self.ButtonText.SetPackedFontColor(color)

	def SetText(self, text):
		if not self.ButtonText:
			textLine = ui.TextLine()
			textLine.SetParent(self)
			textLine.SetPosition(self.GetWidth()/2, self.GetHeight()/2)
			textLine.SetVerticalAlignCenter()
			textLine.SetHorizontalAlignCenter()
			textLine.SetOutline()
			textLine.Show()
			self.ButtonText = textLine

		self.ButtonText.SetText(text)

	def SetToolTipText(self, text, x=0, y = -19):
		if not self.ToolTipText:		
			toolTip=ui.createToolTipWindowDict["TEXT"]()
			toolTip.SetParent(self)
			toolTip.SetSize(0, 0)
			toolTip.SetHorizontalAlignCenter()
			toolTip.SetOutline()
			toolTip.Hide()
			toolTip.SetPosition(x + self.GetWidth()/2, y)
			self.ToolTipText=toolTip

		self.ToolTipText.SetText(text)

	def ShowToolTip(self):
		if self.ToolTipText:
			self.ToolTipText.Show()

	def HideToolTip(self):
		if self.ToolTipText:
			self.ToolTipText.Hide()
		
	def OnMouseLeftButtonDown(self):
		self.isSelected = TRUE
		
	def OnMouseLeftButtonUp(self):
		self.isSelected = FALSE
		if self.eventFunc:
			apply(self.eventFunc, self.eventArgs)

	def OnUpdate(self):
		if self.IsIn():
			self.isOver = TRUE
			self.ShowToolTip()
		else:
			self.isOver = FALSE
			self.HideToolTip()

	def OnRender(self):
		xRender, yRender = self.GetGlobalPosition()
		
		widthRender = self.width
		heightRender = self.height
		grp.SetColor(self.BACKGROUND_COLOR)
		grp.RenderBar(xRender, yRender, widthRender, heightRender)
		grp.SetColor(self.DARK_COLOR)
		grp.RenderLine(xRender, yRender, widthRender, 0)
		grp.RenderLine(xRender, yRender, 0, heightRender)
		grp.RenderLine(xRender, yRender+heightRender, widthRender, 0)
		grp.RenderLine(xRender+widthRender, yRender, 0, heightRender)

		if self.isOver:
			grp.SetColor(self.HALF_WHITE_COLOR)
			grp.RenderBar(xRender + 2, yRender + 2, self.width - 3, heightRender - 3)

			if self.isSelected:
				grp.SetColor(self.WHITE_COLOR)
				grp.RenderBar(xRender + 2, yRender + 2, self.width - 3, heightRender - 3)
How to use:

Code:
		self.Button_one = CoolButton()
		self.Button_one.SetParent(parent)
		self.Button_one.SetPosition(xPos, yPos) 
		self.Button_one.SetSize(xSize, ySize) ##Resizes button
		self.Button_one.SetText('text')
		self.Button_one.SetToolTipText('text')
		self.Button_one.SetEvent(event)
		self.Button_one.Show()
€dit:

You can also change the colors:

Code:
	BACKGROUND_COLOR = grp.GenerateColor(0.0, 0.0, 0.0, 1.0)
	DARK_COLOR = grp.GenerateColor(0.4, 0.4, 0.4, 1.0)
	
	WHITE_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 0.3)
	HALF_WHITE_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 0.2)
Virustotal:


Attached Files
File Type: rar button.rar (911 Bytes, 47 views)
Eigenartig is offline  
Thanks
20 Users
Old 09/05/2014, 21:32   #2
 
.Risan.'s Avatar
 
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,450
Nice...
.Risan. is offline  
Old 09/06/2014, 07:39   #3
 
LovecKrys's Avatar
 
elite*gold: 0
Join Date: May 2012
Posts: 210
Received Thanks: 199
Good idea
LovecKrys is offline  
Old 10/04/2014, 10:52   #4
 
Eigenartig's Avatar
 
elite*gold: 0
Join Date: Sep 2012
Posts: 219
Received Thanks: 123
You should set size before setting text otherwise text position won't be setted exactly

Code:
		self.Button_one.SetSize(xSize, ySize) ##Resizes button
		self.Button_one.SetText('text')
Eigenartig is offline  
Old 10/12/2014, 16:54   #5


 
MrTherzon's Avatar
 
elite*gold: 0
The Black Market: 180/0/1
Join Date: Dec 2012
Posts: 9,395
Received Thanks: 2,738
Das soll was bringen?
MrTherzon is offline  
Reply

Tags
eigenartig, eigenartig metin2, metin2 eigenartig


Similar Threads Similar Threads
[RELEASE] Push Button (GIF)
10/18/2013 - Freebies - 19 Replies
Vorschau: http://up.picr.de/16133863il.gif Download: Push Button.gif
[B] Push Button [S] 10 e*gold/Button; 25 e*g/psd+Button
09/20/2013 - elite*gold Trading - 4 Replies
Moin, Hier könnt ihr folgenden Push Button kaufen: http://i.epvpimg.com/YlrYe.jpg Pro Button wären das 10e*g, pro Button mit .psd dazu 25e*g. Wenn ihr einen Button kaufen wollt, schreibt mir eine PN, damit ich den Namen ändern kann, alles hochladen kann und euch dann per Treasure schicken kann. ;) Schrift kann auch geändert werden. Dazu einfach in der PN schreiben, welche Schrift ihr haben wollt^^
[RELEASE]Stun Button (GM)
09/14/2011 - Metin2 PServer Guides & Strategies - 26 Replies
Hi Leutz, ich fange gerade mal mit Python an etc. und probiere mich etwas aus und da ich hier sowas noch nicht gesehn habe mache ich das mal pub^^ ist zwar nix schweres, dolles aber wers braucht. have fun 1. root entpacken 2. uitarget.py öffnen das suchen:



All times are GMT +1. The time now is 19:49.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.