File: DialogUnits.py

package info (click to toggle)
wxpython3.0 3.0.2.0%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 482,760 kB
  • ctags: 518,293
  • sloc: cpp: 2,127,226; python: 294,045; makefile: 51,942; ansic: 19,033; sh: 3,013; xml: 1,629; perl: 17
file content (127 lines) | stat: -rw-r--r-- 3,933 bytes parent folder | download | duplicates (3)
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/usr/bin/env python
#----------------------------------------------------------------------------
# Name:         DialogUnits.py
# Purpose:      A minimal wxPython program that is a bit smarter than test1.
#
# Author:       Robin Dunn
#
# Created:      A long time ago, in a galaxy far, far away...
# RCS-ID:       $Id$
# Copyright:    (c) 1998 by Total Control Software
# Licence:      wxWindows license
#----------------------------------------------------------------------------
#

import  wx

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

# Create a new frame class, derived from the wxPython Frame.
class MyFrame(wx.Frame):

    def __init__(self, parent, id, title):
        # First, call the base class' __init__ method to create the frame
        wx.Frame.__init__(self, parent, id, title, (100, 100), (160, 100))

        # Associate some events with methods of this class
        self.Bind(wx.EVT_SIZE, self.OnSize)
        self.Bind(wx.EVT_MOVE, self.OnMove)
        self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)

        # Add a panel and some controls to display the size and position
        panel = wx.Panel(self, -1)

        wx.StaticText(panel, -1, "Size:", 
            wx.DLG_PNT(panel, (4, 4)),  wx.DefaultSize
            )

        wx.StaticText(panel, -1, "Pos:", 
            wx.DLG_PNT(panel, (4, 16)), wx.DefaultSize
            )

        self.sizeCtrl = wx.TextCtrl(panel, -1, "", 
                            wx.DLG_PNT(panel, (24, 4)),
                            wx.DLG_SZE(panel, (36, -1)),
                            wx.TE_READONLY)

        self.posCtrl = wx.TextCtrl(panel, -1, "", 
                            wx.DLG_PNT(panel, (24, 16)),
                            wx.DLG_SZE(panel, (36, -1)),
                            wx.TE_READONLY)

        #print wx.DLG_PNT(panel, (24, 4)), wx.DLG_SZE(panel, (36, -1))
        #print wx.DLG_PNT(panel, (24, 16)),wx.DLG_SZE(panel, (36, -1))

    # This method is called automatically when the CLOSE event is
    # sent to this window
    def OnCloseWindow(self, event):
        # tell the window to kill itself
        self.Destroy()

    # This method is called by the System when the window is resized,
    # because of the association above.
    def OnSize(self, event):
        size = event.GetSize()
        self.sizeCtrl.SetValue("%s, %s" % (size.width, size.height))

        # tell the event system to continue looking for an event handler,
        # so the default handler will get called.
        event.Skip()

    # This method is called by the System when the window is moved,
    # because of the association above.
    def OnMove(self, event):
        pos = event.GetPosition()
        self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y))



#---------------------------------------------------------------------------
# if running standalone

if __name__ == "__main__":
    # Every wxWindows application must have a class derived from wxApp
    class MyApp(wx.App):

        # wxWindows calls this method to initialize the application
        def OnInit(self):

            # Create an instance of our customized Frame class
            frame = MyFrame(None, -1, "This is a test")
            frame.Show(True)

            # Tell wxWindows that this is our main window
            self.SetTopWindow(frame)

            # Return a success flag
            return True


    app = MyApp(0)     # Create an instance of the application class
    app.MainLoop()     # Tell it to start processing events


#---------------------------------------------------------------------------
# if running as part of the Demo Framework...

def runTest(frame, nb, log):
    win = MyFrame(frame, -1, "This is a test")
    frame.otherWin = win
    win.Show(True)


overview = """\
A simple example that shows how to use Dialog Units.
"""

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