Add files via upload
This commit is contained in:
parent
d63a3ebd54
commit
edd3f86508
20 changed files with 228 additions and 87 deletions
8
build/lib/pygwin/__main__.py
Normal file
8
build/lib/pygwin/__main__.py
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description='Process some integers.')
|
||||||
|
parser.add_argument('args')
|
||||||
|
# parser.add_argument()
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
print(args.args)
|
7
build/lib/pygwin/build.py
Normal file
7
build/lib/pygwin/build.py
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description='Process some integers.')
|
||||||
|
parser.add_argument('args')
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
print(args.accumulate(args.args))
|
|
@ -211,13 +211,14 @@ class entry(widget):
|
||||||
def insert(self,text):
|
def insert(self,text):
|
||||||
if _ct.WinDLL("User32.dll").GetKeyState(0x14):
|
if _ct.WinDLL("User32.dll").GetKeyState(0x14):
|
||||||
text = text.upper()
|
text = text.upper()
|
||||||
if _pg.key.get_pressed()[_pg.K_LSHIFT] or _pg.key.get_pressed()[_pg.K_RSHIFT]:
|
|
||||||
text = text.translate(dict(zip(map(ord,
|
|
||||||
'''1234567890-=[]\\;'''+"',./`"),'''!@#$%^&*()_+{}|:"<>?~''')))
|
|
||||||
if hex(getattr(_ct.windll.LoadLibrary("user32.dll"), "GetKeyboardLayout")(0))=='0x4190419':
|
if hex(getattr(_ct.windll.LoadLibrary("user32.dll"), "GetKeyboardLayout")(0))=='0x4190419':
|
||||||
text = text.translate(dict(zip(map(ord,
|
text = text.translate(dict(zip(map(ord,
|
||||||
'''qwertyuiop[]asdfghjkl;'zxcvbnm,./`QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>?~'''),
|
'''qwertyuiop[]asdfghjkl;'zxcvbnm,./`QWERTYUIOPASDFGHJKLZXCVBNM'''),
|
||||||
'''йцукенгшщзхъфывапролджэячсмитьбю.ёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,Ё''')))
|
'''йцукенгшщзхъфывапролджэячсмитьбю.ёЙЦУКЕНГШЩЗФЫВАПРОЛДЯЧСМИТЬ''')))
|
||||||
|
if _pg.key.get_pressed()[_pg.K_LSHIFT] or _pg.key.get_pressed()[_pg.K_RSHIFT]:
|
||||||
|
text = text.translate(dict(zip(map(ord,
|
||||||
|
u'''1234567890-=[]\;',./`'''),
|
||||||
|
u'''!@#$%^&*()_+{}|:"<>?~''')))
|
||||||
if text in self.blacklist:
|
if text in self.blacklist:
|
||||||
return
|
return
|
||||||
if self.whitelist != None:
|
if self.whitelist != None:
|
||||||
|
|
BIN
dist/pgw-0.0.2-py3-none-any.whl
vendored
BIN
dist/pgw-0.0.2-py3-none-any.whl
vendored
Binary file not shown.
BIN
dist/pgw-0.0.2-py3.7.egg
vendored
Normal file
BIN
dist/pgw-0.0.2-py3.7.egg
vendored
Normal file
Binary file not shown.
BIN
dist/pgw-0.0.2.tar.gz
vendored
BIN
dist/pgw-0.0.2.tar.gz
vendored
Binary file not shown.
BIN
dist/pgw-0.0.3-py3-none-any.whl
vendored
Normal file
BIN
dist/pgw-0.0.3-py3-none-any.whl
vendored
Normal file
Binary file not shown.
BIN
dist/pgw-0.0.3-py3.7.egg
vendored
Normal file
BIN
dist/pgw-0.0.3-py3.7.egg
vendored
Normal file
Binary file not shown.
BIN
dist/pgw-0.0.3.tar.gz
vendored
Normal file
BIN
dist/pgw-0.0.3.tar.gz
vendored
Normal file
Binary file not shown.
|
@ -1,42 +1,48 @@
|
||||||
from random import randint
|
import pygwin # Importing pygwin
|
||||||
import pygwin as pgw
|
import random # Importing random
|
||||||
|
|
||||||
win = pgw.create('Game Example', (500,500))
|
win = pygwin.create('A Simple Game', (500,500)) # Creating window
|
||||||
|
|
||||||
player = [250,250]
|
player = [250,250] # Player position
|
||||||
apple = pgw.rect(randint(0,490),randint(0,490),20,20)
|
apple = pygwin.rect(random.randint(0,490),
|
||||||
count = 0
|
random.randint(0,490),20,20) # Apple rect
|
||||||
|
score = 0 # Player score
|
||||||
|
|
||||||
run = True
|
run = True # Is loop running
|
||||||
while run:
|
while run: # Creating loop
|
||||||
for event in pgw.getEvents():
|
for event in pygwin.getEvents(): # Events loop
|
||||||
if event.type == pgw.QUIT:
|
if event.type == pygwin.QUIT: # If window quit
|
||||||
run = False
|
run = False # Break loop
|
||||||
win.fill((255,255,255))
|
win.fill((255,255,255)) # Fill window with color
|
||||||
playerRect = pgw.rect(player[0]-10,player[1]-10,20,20)
|
|
||||||
win.draw.rect((0,0,0),playerRect)
|
|
||||||
win.draw.rect((200,50,50),apple)
|
|
||||||
win.blit(count,(0,0))
|
|
||||||
if pgw.keyboard.isPressed('w'):
|
|
||||||
player[1] -= 5
|
|
||||||
if pgw.keyboard.isPressed('s'):
|
|
||||||
player[1] += 5
|
|
||||||
if pgw.keyboard.isPressed('d'):
|
|
||||||
player[0] += 5
|
|
||||||
if pgw.keyboard.isPressed('a'):
|
|
||||||
player[0] -= 5
|
|
||||||
|
|
||||||
if player[0] <= -10:
|
playerRect = pygwin.rect(player[0]-10,player[1]-10,20,20) # Player rect
|
||||||
player[0] = 510
|
win.draw.rect((0,0,0),playerRect) # Drawing player rect
|
||||||
if player[1] <= -10:
|
win.draw.rect((200,50,50),apple) # Drawing apple rect
|
||||||
player[1] = 510
|
|
||||||
if player[0] > 510:
|
|
||||||
player[0] = -10
|
|
||||||
if player[1] > 510:
|
|
||||||
player[1] = -10
|
|
||||||
|
|
||||||
if playerRect.collide(apple):
|
win.blit(score,(0,0)) # Writing player score
|
||||||
apple = pgw.rect(randint(0,490),randint(0,490),20,20)
|
|
||||||
count += 1
|
if pygwin.keyboard.isPressed('w'): # If keyboard key w pressed
|
||||||
win.update(60)
|
player[1] -= 5 # Player position up
|
||||||
pgw.close()
|
if pygwin.keyboard.isPressed('s'): # If keyboard key s pressed
|
||||||
|
player[1] += 5 # Player position down
|
||||||
|
if pygwin.keyboard.isPressed('d'): # If keyboard key d pressed
|
||||||
|
player[0] += 5 # Player position right
|
||||||
|
if pygwin.keyboard.isPressed('a'): # If keyboard key a pressed
|
||||||
|
player[0] -= 5 # Player position left
|
||||||
|
|
||||||
|
if player[0] <= -10: # If player out of the screen (left)
|
||||||
|
player[0] = 510 # Set player position in right
|
||||||
|
if player[1] <= -10: # If player out of the screen (up)
|
||||||
|
player[1] = 510 # Set player position in down
|
||||||
|
if player[0] > 510: # If player out of the screen (right)
|
||||||
|
player[0] = -10 # Set player position in left
|
||||||
|
if player[1] > 510: # If player out of the screen (down)
|
||||||
|
player[1] = -10 # Set player position in up
|
||||||
|
|
||||||
|
if playerRect.collide(apple): # If player rect collide apple rect
|
||||||
|
apple = pygwin.rect(random.randint(0,490),
|
||||||
|
random.randint(0,490),20,20) # Change apple rect
|
||||||
|
score += 1 # Update player score
|
||||||
|
|
||||||
|
win.update(60) # Update window
|
||||||
|
pygwin.close() # Close pygwin
|
||||||
|
|
|
@ -1,43 +1,43 @@
|
||||||
import pygwin
|
import pygwin
|
||||||
|
|
||||||
win = pygwin.create('UI example',(270,350))
|
win = pygwin.create('UI example',(270,350))
|
||||||
base = pygwin.ui.base(win)
|
base = pygwin.ui.base(win) # Creating ui base
|
||||||
|
|
||||||
lbl = pygwin.ui.label('Label')
|
lbl = pygwin.ui.label('Label') # Creating label
|
||||||
base.put(lbl,(130-(lbl.surface.size[0]/2),10))
|
base.put(lbl,(130-(lbl.surface.size[0]/2),10)) # Putting label to base
|
||||||
base.put(pygwin.ui.button('Button',width=250),(10,50))
|
base.put(pygwin.ui.button('Button',width=250),(10,50)) # Putting button to base
|
||||||
base.put(pygwin.ui.entry('Entry',width=123),(10,100))
|
base.put(pygwin.ui.entry('Entry',width=123),(10,100)) # Putting entry to base
|
||||||
base.put(pygwin.ui.keySelect('Key',width=122),(138,100))
|
base.put(pygwin.ui.keySelect('Key',width=122),(138,100)) # Putting key selector to base
|
||||||
loadbar = pygwin.ui.loadingBar(250,25)
|
loadbar = pygwin.ui.loadingBar(250,25) # Creating loading bar
|
||||||
base.put(loadbar,(10,150))
|
base.put(loadbar,(10,150)) # Putting loading bar to base
|
||||||
slider = pygwin.ui.slider(250)
|
slider = pygwin.ui.slider(250) # Creating slider
|
||||||
base.put(slider,(10,170))
|
base.put(slider,(10,170)) # Putting slider to base
|
||||||
cb = pygwin.ui.checkBox(25,borderWidth=2)
|
cb = pygwin.ui.checkBox(25,borderWidth=2) # Creating checkbox
|
||||||
base.put(cb,(10,220))
|
base.put(cb,(10,220)) # Putting checkbox to base
|
||||||
base.put(pygwin.ui.label('Checkbox',20),(45,225))
|
base.put(pygwin.ui.label('Checkbox',20),(45,225)) # Putting checkbox label to base
|
||||||
ta = pygwin.ui.textarea('Textarea',width=250,maxSymbols=20)
|
ta = pygwin.ui.textarea('Textarea',width=250,maxSymbols=20) # Creating textarea
|
||||||
ta.text += '0123456789\n0123456789'
|
ta.text += '0123456789\n0123456789' # Set text to textarea
|
||||||
ta.focus = True
|
ta.focus = True # Focus textarea
|
||||||
ta._generate()
|
ta._generate() # Generate textarea surface
|
||||||
ta.focus = False
|
ta.focus = False # Unfocus textarea
|
||||||
base.put(ta,(10,255))
|
base.put(ta,(10,255)) # Putting textarea to base
|
||||||
tta = pygwin.ui.tip('textarea',
|
tta = pygwin.ui.tip('textarea',
|
||||||
*ta.surface.size,
|
*ta.surface.size,
|
||||||
waitBeforeShowing=30)
|
waitBeforeShowing=30) # Creating textarea tip
|
||||||
base.put(tta,(10,255))
|
base.put(tta,(10,255)) # Putting textarea tip to base
|
||||||
|
|
||||||
run = True
|
run = True
|
||||||
while run:
|
while run:
|
||||||
for event in pygwin.getEvents():
|
for event in pygwin.getEvents():
|
||||||
if event.type == pygwin.QUIT:
|
if event.type == pygwin.QUIT:
|
||||||
run = False
|
run = False
|
||||||
base.draw()
|
base.draw() # Drawing base
|
||||||
if cb.get():
|
if cb.get(): # If checkbox
|
||||||
loadbar.set(slider.get())
|
loadbar.set(slider.get()) # If checkbox
|
||||||
else:
|
else:
|
||||||
loadbar.step()
|
loadbar.step() # Step loading bar
|
||||||
if loadbar.get() == loadbar.length:
|
if loadbar.get() == loadbar.length: # If loading bar is full
|
||||||
loadbar.set(0)
|
loadbar.set(0) # Reset loading bar
|
||||||
tta.responceWidth,tta.responceHeight=ta.surface.size
|
tta.responceWidth,tta.responceHeight=ta.surface.size # Set responce width, height to textarea tip
|
||||||
win.update(30)
|
win.update(30)
|
||||||
pygwin.close()
|
pygwin.close()
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[metadata]
|
[metadata]
|
||||||
name = pgw
|
name = pgw
|
||||||
version = 0.0.1
|
version = 0.0.3
|
||||||
author = themixray
|
author = themixray
|
||||||
author_email = simindeymo@gmail.com
|
author_email = simindeymo@gmail.com
|
||||||
description = Python Grapchical Window.
|
description = Python Grapchical Window.
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -1,6 +1,6 @@
|
||||||
from setuptools import setup
|
from setuptools import setup
|
||||||
|
|
||||||
setup(name='pgw',packages=['pygwin'],version='0.0.1',author='themixray',
|
setup(name='pgw',packages=['pygwin'],version='0.0.3',author='themixray',
|
||||||
description='A library for creating Python applications.',
|
description='A library for creating Python applications.',
|
||||||
license='MIT',install_requires=['cython','pywin32','pygame',
|
license='MIT',install_requires=['cython','pywin32','pygame',
|
||||||
'inputs','pydub','wxPython','pyautogui'])
|
'inputs','pydub','wxPython','pyautogui'])
|
||||||
|
|
31
src/pgw.egg-info/PKG-INFO
Normal file
31
src/pgw.egg-info/PKG-INFO
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
Metadata-Version: 2.1
|
||||||
|
Name: pgw
|
||||||
|
Version: 0.0.3
|
||||||
|
Summary: A library for creating Python applications.
|
||||||
|
Home-page: https://github.com/themixray/pygwin
|
||||||
|
Author: themixray
|
||||||
|
Author-email: simindeymo@gmail.com
|
||||||
|
License: MIT
|
||||||
|
Project-URL: Bug Tracker, https://github.com/themixray/pygwin/issues
|
||||||
|
Project-URL: Wiki, https://github.com/themixray/pygwin/wiki
|
||||||
|
Platform: UNKNOWN
|
||||||
|
Classifier: Programming Language :: Python :: 3
|
||||||
|
Classifier: License :: OSI Approved :: MIT License
|
||||||
|
Classifier: Operating System :: OS Independent
|
||||||
|
Description-Content-Type: text/markdown
|
||||||
|
License-File: LICENSE
|
||||||
|
|
||||||
|
<h1 align="center">
|
||||||
|
PyGWin
|
||||||
|
</h1>
|
||||||
|
<p align="center">
|
||||||
|
A library for creating Python applications.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/themixray/pygwin/wiki">
|
||||||
|
Documentation
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
24
src/pgw.egg-info/SOURCES.txt
Normal file
24
src/pgw.egg-info/SOURCES.txt
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
LICENSE
|
||||||
|
README.md
|
||||||
|
pyproject.toml
|
||||||
|
setup.cfg
|
||||||
|
setup.py
|
||||||
|
src/pgw.egg-info/PKG-INFO
|
||||||
|
src/pgw.egg-info/SOURCES.txt
|
||||||
|
src/pgw.egg-info/dependency_links.txt
|
||||||
|
src/pgw.egg-info/requires.txt
|
||||||
|
src/pgw.egg-info/top_level.txt
|
||||||
|
src/pygwin/__init__.py
|
||||||
|
src/pygwin/_pg.py
|
||||||
|
src/pygwin/_win.py
|
||||||
|
src/pygwin/console.py
|
||||||
|
src/pygwin/font.py
|
||||||
|
src/pygwin/gamepad.py
|
||||||
|
src/pygwin/image.py
|
||||||
|
src/pygwin/keyboard.py
|
||||||
|
src/pygwin/mixer.py
|
||||||
|
src/pygwin/mouse.py
|
||||||
|
src/pygwin/rect.py
|
||||||
|
src/pygwin/surface.py
|
||||||
|
src/pygwin/tray.py
|
||||||
|
src/pygwin/ui.py
|
1
src/pgw.egg-info/dependency_links.txt
Normal file
1
src/pgw.egg-info/dependency_links.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
7
src/pgw.egg-info/requires.txt
Normal file
7
src/pgw.egg-info/requires.txt
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
cython
|
||||||
|
pywin32
|
||||||
|
pygame
|
||||||
|
inputs
|
||||||
|
pydub
|
||||||
|
wxPython
|
||||||
|
pyautogui
|
1
src/pgw.egg-info/top_level.txt
Normal file
1
src/pgw.egg-info/top_level.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
pygwin
|
|
@ -30,7 +30,7 @@ class font:
|
||||||
surface._surface_orig = surf
|
surface._surface_orig = surf
|
||||||
return surface
|
return surface
|
||||||
def size(self, text, size, newLineSpace=5,
|
def size(self, text, size, newLineSpace=5,
|
||||||
italic=False, bold=False, underline=False):
|
italic=False,bold=False,underline=False):
|
||||||
return self.render(text, size, (255,255,255),
|
return self.render(text, size, (255,255,255),
|
||||||
newLineSpace=newLineSpace,
|
newLineSpace=newLineSpace,
|
||||||
italic=italic, bold=bold,
|
italic=italic, bold=bold,
|
||||||
|
|
|
@ -211,12 +211,14 @@ class entry(widget):
|
||||||
def insert(self,text):
|
def insert(self,text):
|
||||||
if _ct.WinDLL("User32.dll").GetKeyState(0x14):
|
if _ct.WinDLL("User32.dll").GetKeyState(0x14):
|
||||||
text = text.upper()
|
text = text.upper()
|
||||||
if _pg.key.get_pressed()[_pg.K_LSHIFT] or _pg.key.get_pressed()[_pg.K_RSHIFT]:
|
|
||||||
text = text.translate(dict(zip(map(ord, '''1234567890-=[]\\;'''+"',./`"),
|
|
||||||
'''!@#$%^&*()_+{}|:"<>?~''')))
|
|
||||||
if hex(getattr(_ct.windll.LoadLibrary("user32.dll"), "GetKeyboardLayout")(0))=='0x4190419':
|
if hex(getattr(_ct.windll.LoadLibrary("user32.dll"), "GetKeyboardLayout")(0))=='0x4190419':
|
||||||
text = text.translate(dict(zip(map(ord, '''qwertyuiop[]asdfghjkl;'zxcvbnm,./`QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>?~'''),
|
text = text.translate(dict(zip(map(ord,
|
||||||
'''йцукенгшщзхъфывапролджэячсмитьбю.ёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,Ё''')))
|
'''qwertyuiop[]asdfghjkl;'zxcvbnm,./`QWERTYUIOPASDFGHJKLZXCVBNM'''),
|
||||||
|
'''йцукенгшщзхъфывапролджэячсмитьбю.ёЙЦУКЕНГШЩЗФЫВАПРОЛДЯЧСМИТЬ''')))
|
||||||
|
if _pg.key.get_pressed()[_pg.K_LSHIFT] or _pg.key.get_pressed()[_pg.K_RSHIFT]:
|
||||||
|
text = text.translate(dict(zip(map(ord,
|
||||||
|
u'''1234567890-=[]\;',./`'''),
|
||||||
|
u'''!@#$%^&*()_+{}|:"<>?~''')))
|
||||||
if text in self.blacklist:
|
if text in self.blacklist:
|
||||||
return
|
return
|
||||||
if self.whitelist != None:
|
if self.whitelist != None:
|
||||||
|
@ -304,8 +306,10 @@ class textarea(widget):
|
||||||
self.tick += 1
|
self.tick += 1
|
||||||
if self.tick >= 60:
|
if self.tick >= 60:
|
||||||
if self.text != '':
|
if self.text != '':
|
||||||
points = [[x+self.font.size(last,self.fontSize)[0],self.surface.size[1]-(self.font.size('X',self.fontSize)[1])],
|
points = [[x+self.font.size(last,self.fontSize)[0],
|
||||||
[x+self.font.size(last,self.fontSize)[0],self.surface.size[1]/2-text.size[1]/2+self.surface.size[1]-10]]
|
self.surface.size[1]-(self.font.size('X',self.fontSize)[1])],
|
||||||
|
[x+self.font.size(last,self.fontSize)[0],
|
||||||
|
self.surface.size[1]/2-text.size[1]/2+self.surface.size[1]-10]]
|
||||||
self.surface.draw.line(self.lineColor,points[0],points[1],3)
|
self.surface.draw.line(self.lineColor,points[0],points[1],3)
|
||||||
if self.tick == 120:
|
if self.tick == 120:
|
||||||
self.tick = 0
|
self.tick = 0
|
||||||
|
@ -355,9 +359,11 @@ class textarea(widget):
|
||||||
if _pg.key.get_pressed()[_pg.K_LSHIFT] or _pg.key.get_pressed()[_pg.K_RSHIFT]:
|
if _pg.key.get_pressed()[_pg.K_LSHIFT] or _pg.key.get_pressed()[_pg.K_RSHIFT]:
|
||||||
text = text.translate(dict(zip(map(ord, '''1234567890-=[]\\;'''+"',./`"),
|
text = text.translate(dict(zip(map(ord, '''1234567890-=[]\\;'''+"',./`"),
|
||||||
'''!@#$%^&*()_+{}|:"<>?~''')))
|
'''!@#$%^&*()_+{}|:"<>?~''')))
|
||||||
if hex(getattr(_ct.windll.LoadLibrary("user32.dll"), "GetKeyboardLayout")(0))=='0x4190419':
|
if hex(getattr(_ct.windll.LoadLibrary("user32.dll"),
|
||||||
text = text.translate(dict(zip(map(ord, '''qwertyuiop[]asdfghjkl;'zxcvbnm,./`QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>?~'''),
|
"GetKeyboardLayout")(0))=='0x4190419':
|
||||||
'''йцукенгшщзхъфывапролджэячсмитьбю.ёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,Ё''')))
|
text = text.translate(dict(zip(map(ord,
|
||||||
|
'''qwertyuiop[]asdfghjkl;'zxcvbnm,./`QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>?~'''),
|
||||||
|
'''йцукенгшщзхъфывапролджэячсмитьбю.ёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,Ё''')))
|
||||||
if text in self.blacklist:
|
if text in self.blacklist:
|
||||||
return
|
return
|
||||||
if self.whitelist != None:
|
if self.whitelist != None:
|
||||||
|
@ -612,15 +618,19 @@ class checkBox(widget):
|
||||||
self.surface.size[0]-self.borderWidth*2,
|
self.surface.size[0]-self.borderWidth*2,
|
||||||
self.surface.size[1]-self.borderWidth*2))
|
self.surface.size[1]-self.borderWidth*2))
|
||||||
if self.x:
|
if self.x:
|
||||||
self.surface.draw.line(self.afg,[self.borderWidth,self.width/2+self.borderWidth],[self.width/2,self.width-self.borderWidth],self.borderWidth)
|
self.surface.draw.line(self.afg,[self.borderWidth,self.width/2+self.borderWidth],
|
||||||
self.surface.draw.line(self.afg,[self.width/2,self.width-self.borderWidth],[self.width-self.borderWidth,self.borderWidth],self.borderWidth)
|
[self.width/2,self.width-self.borderWidth],self.borderWidth)
|
||||||
|
self.surface.draw.line(self.afg,[self.width/2,self.width-self.borderWidth],
|
||||||
|
[self.width-self.borderWidth,self.borderWidth],self.borderWidth)
|
||||||
else:
|
else:
|
||||||
self.surface.draw.rect(self.bg,_r(self.borderWidth,self.borderWidth,
|
self.surface.draw.rect(self.bg,_r(self.borderWidth,self.borderWidth,
|
||||||
self.surface.size[0]-self.borderWidth*2,
|
self.surface.size[0]-self.borderWidth*2,
|
||||||
self.surface.size[1]-self.borderWidth*2))
|
self.surface.size[1]-self.borderWidth*2))
|
||||||
if self.x:
|
if self.x:
|
||||||
self.surface.draw.line(self.fg,[self.borderWidth,self.width/2+self.borderWidth],[self.width/2,self.width-self.borderWidth],self.borderWidth)
|
self.surface.draw.line(self.fg,[self.borderWidth,self.width/2+self.borderWidth],
|
||||||
self.surface.draw.line(self.fg,[self.width/2,self.width-self.borderWidth],[self.width-self.borderWidth,self.borderWidth],self.borderWidth)
|
[self.width/2,self.width-self.borderWidth],self.borderWidth)
|
||||||
|
self.surface.draw.line(self.fg,[self.width/2,self.width-self.borderWidth],
|
||||||
|
[self.width-self.borderWidth,self.borderWidth],self.borderWidth)
|
||||||
def draw(self, win, pos):
|
def draw(self, win, pos):
|
||||||
self._generate(pos)
|
self._generate(pos)
|
||||||
win.blit(self.surface,pos)
|
win.blit(self.surface,pos)
|
||||||
|
@ -633,6 +643,51 @@ class checkBox(widget):
|
||||||
# def draw(self, win, pos):
|
# def draw(self, win, pos):
|
||||||
# self._generate(pos)
|
# self._generate(pos)
|
||||||
# win.blit(self.surface,pos)
|
# win.blit(self.surface,pos)
|
||||||
|
class tip(widget):
|
||||||
|
def __init__(self,text,responceWidth,responceHeight,fontSize=15,font=_df,
|
||||||
|
borderColor=(180,180,50),borderWidth=2,bg=(255,255,128),
|
||||||
|
fg=(35,35,5),waitBeforeShowing=0,
|
||||||
|
tipPosRelativeCursor=(10,10)):
|
||||||
|
super()._args(locals())
|
||||||
|
self.tick = -1
|
||||||
|
self.lcp = (0,0)
|
||||||
|
self.tprc = self.tipPosRelativeCursor
|
||||||
|
self._generate()
|
||||||
|
def _generate(self, position=None):
|
||||||
|
self.surface = _s((self.responceWidth,
|
||||||
|
self.responceHeight))
|
||||||
|
if position != None:
|
||||||
|
self.tick += 1
|
||||||
|
if self.lcp != _m.getPosition():
|
||||||
|
self.tick = 0
|
||||||
|
self.lcp = _m.getPosition()
|
||||||
|
if self.tick >= self.waitBeforeShowing:
|
||||||
|
mp = _m.getPosition()
|
||||||
|
mp = [mp[0]+self.tprc[0]-position[0],
|
||||||
|
mp[1]+self.tprc[1]-position[1]]
|
||||||
|
rect = _r(mp[0],mp[1],
|
||||||
|
self.font.size(self.text,self.fontSize)[0]+4,
|
||||||
|
self.font.size(self.text,self.fontSize)[1]+6)
|
||||||
|
if mp[0]<0 or mp[1]<0:return
|
||||||
|
if mp[0]>self.responceWidth:return
|
||||||
|
if mp[1]>self.responceHeight:return
|
||||||
|
if mp[0]>self.responceWidth-rect.w:
|
||||||
|
mp[0]=self.responceWidth-rect.w
|
||||||
|
if mp[1]>self.responceHeight-rect.h:
|
||||||
|
mp[1]=self.responceHeight-rect.h
|
||||||
|
rect = _r(mp[0],mp[1],
|
||||||
|
self.font.size(self.text,self.fontSize)[0]+4,
|
||||||
|
self.font.size(self.text,self.fontSize)[1]+6)
|
||||||
|
self.surface.draw.rect(self.bg,rect)
|
||||||
|
self.surface.draw.rect(
|
||||||
|
self.borderColor,rect,self.borderWidth)
|
||||||
|
ts = self.font.render(
|
||||||
|
self.text,self.fontSize,self.fg)
|
||||||
|
self.surface.blit(ts,(mp[0]+2,mp[1]+3))
|
||||||
|
def draw(self, win, pos):
|
||||||
|
self._generate(pos)
|
||||||
|
win.blit(self.surface,pos)
|
||||||
|
|
||||||
class base:
|
class base:
|
||||||
def __init__(self, win, bg=(128,128,128)):
|
def __init__(self, win, bg=(128,128,128)):
|
||||||
self._widgets = {}
|
self._widgets = {}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue