/usr/lib/python2.7/dist-packages/traitsui/wx/ui_window.py is in python-traitsui 4.4.0-1.3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | #------------------------------------------------------------------------------
#
# Copyright (c) 2008, Enthought, Inc.
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD
# license included in enthought/LICENSE.txt and may be redistributed only
# under the conditions described in the aforementioned license. The license
# is also available online at http://www.enthought.com/licenses/BSD.txt
#
# Thanks for using Enthought open source!
#
# Author: David C. Morrill
# Date: 08/23/2008
#
#------------------------------------------------------------------------------
""" A base class for creating custom Traits UI windows.
"""
#-------------------------------------------------------------------------------
# Imports:
#-------------------------------------------------------------------------------
import wx
from traits.api \
import HasPrivateTraits, Instance, Property
from helper \
import init_wx_handlers, BufferDC
#-------------------------------------------------------------------------------
# 'UIWindow' class:
#-------------------------------------------------------------------------------
class UIWindow ( HasPrivateTraits ):
""" A base class for creating custom Traits UI windows.
"""
# The wx.Window associated with this custom window:
control = Instance( wx.Window )
# The initial size of the window:
size = Instance( wx.Size, ( -1, -1 ) )
# The current width of the window:
width = Property
# The current height of the window:
height = Property
#-- Public Methods ---------------------------------------------------------
def __init__ ( self, parent, **traits ):
""" Creates and initializes the window.
"""
super( UIWindow, self ).__init__( **traits )
self.control = wx.Window( parent, -1,
size = self.size,
style = wx.FULL_REPAINT_ON_RESIZE )
init_wx_handlers( self.control, self )
def refresh ( self, x = None, y = None, dx = None, dy = None ):
""" Refreshes the contents of the window.
"""
if self.control is not None:
if x is None:
self.control.Refresh()
else:
self.control.Refresh( x, y, dx, dy )
def capture ( self ):
""" Capture the mouse.
"""
self.control.CaptureMouse()
def release ( self ):
""" Release the mouse.
"""
self.control.ReleaseMouse()
#-- wxPython Event Handlers ------------------------------------------------
def _erase_background ( self, event ):
""" Never, ever, do anything in this handler.
"""
pass
def _paint ( self, event ):
""" Paints the contents of the window.
"""
dc = BufferDC( self.control )
self._paint_dc( dc )
dc.copy()
def _paint_dc ( self, dc ):
""" This method should be overridden by sub-classes to do the actual
window painting.
"""
pass
#-- Property Implementations -----------------------------------------------
def _get_width ( self ):
return self.control.GetClientSize()[0]
def _set_width ( self, width ):
self.control.SetSize( width, self.height )
def _get_height ( self ):
return self.control.GetClientSize()[1]
def _set_height ( self, height ):
self.control.SetSize( self.width, height )
|