File: test_odcombo.py

package info (click to toggle)
wxpython4.0 4.2.3%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 221,752 kB
  • sloc: cpp: 962,555; python: 230,573; ansic: 170,731; makefile: 51,756; sh: 9,342; perl: 1,564; javascript: 584; php: 326; xml: 200
file content (67 lines) | stat: -rw-r--r-- 2,215 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import unittest
from unittests import wtc
import wx
import wx.adv


#---------------------------------------------------------------------------

class odcombo_Tests(wtc.WidgetTestCase):

    def test_odcombo1(self):
        wx.adv.ODCB_DCLICK_CYCLES
        wx.adv.ODCB_STD_CONTROL_PAINT
        wx.adv.ODCB_PAINTING_CONTROL
        wx.adv.ODCB_PAINTING_SELECTED


    def test_odcombo2(self):
        class MyODCombo(wx.adv.OwnerDrawnComboBox):
            def __init__(self, *args, **kw):
                wx.adv.OwnerDrawnComboBox.__init__(self, *args, **kw)

                self._OnDrawBackground_Called = False
                self._OnDrawItem_Called = False
                self._OnMeasureItem_Called = False
                self._OnMeasureItemWidth_Called = False

            def OnDrawBackground(self, dc, rect, item, flags):
                self._OnDrawBackground_Called = True
                wx.adv.OwnerDrawnComboBox.OnDrawBackground(self, dc, rect, item, flags)

            def OnDrawItem(self, dc, rect, item, flags):
                self._OnDrawItem_Called = True
                wx.adv.OwnerDrawnComboBox.OnDrawItem(self, dc, rect, item, flags)

            def OnMeasureItem(self, item):
                self._OnMeasureItem_Called = True
                return wx.adv.OwnerDrawnComboBox.OnMeasureItem(self, item)

            def OnMeasureItemWidth(self, item):
                self._OnMeasureItemWidth_Called = True
                return wx.adv.OwnerDrawnComboBox.OnMeasureItemWidth(self, item)


        pnl = wx.Panel(self.frame)
        cb = MyODCombo(pnl, pos=(10,10))
        cb.Append("one two three four".split())
        cb.SetSelection(2)
        self.assertEqual(cb.GetSelection(), 2)
        self.assertEqual(cb.GetString(1), 'two')

        self.waitFor(100)
        cb.Popup()
        self.waitFor(100)
        cb.Dismiss()
        self.myYield()

        self.assertTrue(cb._OnDrawBackground_Called)
        self.assertTrue(cb._OnDrawItem_Called)
        self.assertTrue(cb._OnMeasureItemWidth_Called)
        self.assertTrue(cb._OnMeasureItem_Called)


#---------------------------------------------------------------------------

if __name__ == '__main__':
    unittest.main()