mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2025-07-21 12:41:10 +02:00
197 lines
5.0 KiB
Python
197 lines
5.0 KiB
Python
import unittest
|
|
from unittests import wtc
|
|
import wx
|
|
import os
|
|
import warnings
|
|
|
|
pngFile = os.path.join(os.path.dirname(__file__), 'toucan.png')
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
class dc_Tests(wtc.WidgetTestCase):
|
|
|
|
def test_ConstantsExist(self):
|
|
wx.CLEAR
|
|
wx.XOR
|
|
wx.INVERT
|
|
wx.OR_REVERSE
|
|
wx.AND_REVERSE
|
|
wx.COPY
|
|
wx.AND
|
|
wx.AND_INVERT
|
|
wx.NO_OP
|
|
wx.NOR
|
|
wx.EQUIV
|
|
wx.SRC_INVERT
|
|
wx.OR_INVERT
|
|
wx.NAND
|
|
wx.OR
|
|
wx.SET
|
|
|
|
wx.FLOOD_SURFACE
|
|
wx.FLOOD_BORDER
|
|
|
|
wx.MM_TEXT
|
|
wx.MM_METRIC
|
|
wx.MM_LOMETRIC
|
|
wx.MM_TWIPS
|
|
wx.MM_POINTS
|
|
|
|
|
|
|
|
def test_FontMetrics(self):
|
|
fm = wx.FontMetrics()
|
|
fm.height
|
|
fm.ascent
|
|
fm.descent
|
|
fm.internalLeading
|
|
fm.externalLeading
|
|
fm.averageWidth
|
|
|
|
|
|
def test_DCClipper(self):
|
|
dc = wx.ClientDC(self.frame)
|
|
c = wx.DCClipper(dc, wx.Rect(10,10,25,25))
|
|
del c
|
|
c = wx.DCClipper(dc, (10,10,25,25))
|
|
del c
|
|
c = wx.DCClipper(dc, 10,10,25,25)
|
|
del c
|
|
r = wx.Region(10,10,25,25)
|
|
c = wx.DCClipper(dc, r)
|
|
del c
|
|
|
|
|
|
def test_DCBrushChanger(self):
|
|
dc = wx.ClientDC(self.frame)
|
|
c = wx.DCBrushChanger(dc, wx.Brush('blue'))
|
|
del c
|
|
|
|
|
|
def test_DCPenChanger(self):
|
|
dc = wx.ClientDC(self.frame)
|
|
c = wx.DCPenChanger(dc, wx.Pen('blue'))
|
|
del c
|
|
|
|
|
|
def test_DCTextColourChanger(self):
|
|
dc = wx.ClientDC(self.frame)
|
|
c = wx.DCTextColourChanger(dc)
|
|
c.Set('blue')
|
|
del c
|
|
c = wx.DCTextColourChanger(dc, 'blue')
|
|
del c
|
|
|
|
|
|
def test_DCFontChanger(self):
|
|
dc = wx.ClientDC(self.frame)
|
|
font = wx.FFont(12, wx.FONTFAMILY_SWISS)
|
|
c = wx.DCFontChanger(dc)
|
|
c.Set(font)
|
|
del c
|
|
c = wx.DCFontChanger(dc, font)
|
|
del c
|
|
|
|
|
|
def test_NativeHandle(self):
|
|
dc = wx.MemoryDC(wx.Bitmap(10,10))
|
|
h = dc.GetHandle()
|
|
self.assertTrue(h is not None)
|
|
self.assertNotEqual(int(h), 0)
|
|
|
|
|
|
def test_NativeWinHandle(self):
|
|
dc = wx.ClientDC(self.frame)
|
|
with warnings.catch_warnings():
|
|
warnings.simplefilter("error")
|
|
with self.assertRaises(wx.wxPyDeprecationWarning):
|
|
try:
|
|
h = dc.GetHDC()
|
|
except NotImplementedError:
|
|
pass
|
|
|
|
|
|
def test_NativeGTKHandle(self):
|
|
dc = wx.ClientDC(self.frame)
|
|
with warnings.catch_warnings():
|
|
warnings.simplefilter("error")
|
|
with self.assertRaises(wx.wxPyDeprecationWarning):
|
|
try:
|
|
h = dc.GetGdkDrawable()
|
|
except NotImplementedError:
|
|
pass
|
|
|
|
def test_NativeMacHandle(self):
|
|
dc = wx.MemoryDC(wx.Bitmap(10,10))
|
|
with warnings.catch_warnings():
|
|
warnings.simplefilter("error")
|
|
with self.assertRaises(wx.wxPyDeprecationWarning):
|
|
try:
|
|
h = dc.GetCGContext()
|
|
except NotImplementedError:
|
|
pass
|
|
|
|
|
|
def test_dcTextExtents(self):
|
|
dc = wx.ClientDC(self.frame)
|
|
|
|
size = dc.GetTextExtent('Test String')
|
|
assert isinstance(size, wx.Size)
|
|
assert size.Get() > (0,0)
|
|
|
|
mlsize = dc.GetMultiLineTextExtent('Test String\n2nd line')
|
|
assert isinstance(mlsize, wx.Size)
|
|
assert mlsize.Get() > (0,0)
|
|
assert mlsize.Get() > size.Get()
|
|
|
|
|
|
def test_dcFullTextExtents(self):
|
|
dc = wx.ClientDC(self.frame)
|
|
|
|
size = dc.GetFullTextExtent('Test String')
|
|
assert isinstance(size, tuple)
|
|
assert len(size) == 4
|
|
|
|
mlsize = dc.GetFullMultiLineTextExtent('Test String\n2nd line')
|
|
assert isinstance(mlsize, tuple)
|
|
assert len(mlsize) == 3
|
|
|
|
|
|
|
|
def test_trickyStuff(self):
|
|
# execute some tricky tweaks to make sure they work are as they are supposed to.
|
|
dc = wx.ClientDC(self.frame)
|
|
bmp = wx.Bitmap(pngFile)
|
|
dc.DrawLabel("toucan", bmp, (10,10, 200, 100))
|
|
|
|
values = dc.GetPartialTextExtents("Hello")
|
|
self.assertTrue(type(values) == list)
|
|
self.assertTrue(len(values) == 5)
|
|
|
|
|
|
def test_dcPointLists(self):
|
|
dc = wx.ClientDC(self.frame)
|
|
dc.DrawLines([wx.Point(5,5), wx.Point(25,5), wx.Point(25,25), wx.Point(25,5), wx.Point(5,5)])
|
|
dc.DrawLines( [(15,15), (35,15), (35,35), (35,15), (15,15)] )
|
|
|
|
|
|
def test_dcContextManager(self):
|
|
import wx.siplib
|
|
with wx.ClientDC(self.frame) as dc:
|
|
dc.DrawLine(0,0,100,100)
|
|
|
|
# check ownership
|
|
assert wx.siplib.ispyowned(dc)
|
|
assert not wx.siplib.isdeleted(dc)
|
|
|
|
# check the DC's ownership has changed
|
|
assert not wx.siplib.ispyowned(dc)
|
|
assert wx.siplib.isdeleted(dc)
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|