Module Gnumed.wxpython.gmShadow

GNUmed widget shadowing.

A module to add shadowing to an arbitrary widget.

Classes

class Shadow (parent, id)
Expand source code
class Shadow (wx.Panel):
        def __init__(self, parent, id):
                """Create a new shadow.
                """
                wx.Panel.__init__ (self, parent, id)
                self.sh_width = 100
                wx.EVT_SIZE (self, self.OnSize)
                wx.EVT_PAINT (self, self.OnPaint)
        #-----------------------------------------------------
        def SetContents (self, widget):
                """Marry a widget and a shadow.

                Widget MUST have parent=Shadow widget, and pos=(0,0)
                """
                self.contents = widget
        #-----------------------------------------------------
        def OnSize (self, event):
                w, h = self.GetClientSize ()
                self.contents.SetClientSizeWH (w-self.sh_width, h-self.sh_width)
        #-----------------------------------------------------
        def OnPaint (self, event):
                dc = wx.PaintDC (self)
                w, h = self.GetClientSize ()
                dc.SetPen (wx.TRANSPARENT_PEN)
                #dc.SetBrush (wxWHITE_BRUSH)
                dc.SetBrush (wx.Brush (wx.Colour (240, 240, 240), wx.SOLID))
                # draw white bars
                dc.DrawRectangle (0, h-self.sh_width, w, self.sh_width)
                dc.DrawRectangle (w-self.sh_width, 0, self.sh_width, h)
                r, g, b = (1, 2, 3)
                dc.SetBrush (wx.Brush (wx.Colour (r, g, b), wx.SOLID))
                # draw grey bars half as thick
                dc.DrawRectangle (
                        self.sh_width/2,
                        h-self.sh_width,
                        w-self.sh_width,
                        self.sh_width/2
                )
                dc.DrawRectangle (
                        w-self.sh_width,
                        self.sh_width/2,
                        self.sh_width/2,
                        h-self.sh_width-self.sh_width/2
                )

Panel() Panel(parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize, style=TAB_TRAVERSAL, name=PanelNameStr)

A panel is a window on which controls are placed.

Create a new shadow.

Ancestors

  • wx._core.Panel
  • wx._core.Window
  • wx._core.WindowBase
  • wx._core.EvtHandler
  • wx._core.Object
  • wx._core.Trackable
  • sip.wrapper
  • sip.simplewrapper

Methods

def OnPaint(self, event)
Expand source code
def OnPaint (self, event):
        dc = wx.PaintDC (self)
        w, h = self.GetClientSize ()
        dc.SetPen (wx.TRANSPARENT_PEN)
        #dc.SetBrush (wxWHITE_BRUSH)
        dc.SetBrush (wx.Brush (wx.Colour (240, 240, 240), wx.SOLID))
        # draw white bars
        dc.DrawRectangle (0, h-self.sh_width, w, self.sh_width)
        dc.DrawRectangle (w-self.sh_width, 0, self.sh_width, h)
        r, g, b = (1, 2, 3)
        dc.SetBrush (wx.Brush (wx.Colour (r, g, b), wx.SOLID))
        # draw grey bars half as thick
        dc.DrawRectangle (
                self.sh_width/2,
                h-self.sh_width,
                w-self.sh_width,
                self.sh_width/2
        )
        dc.DrawRectangle (
                w-self.sh_width,
                self.sh_width/2,
                self.sh_width/2,
                h-self.sh_width-self.sh_width/2
        )
def OnSize(self, event)
Expand source code
def OnSize (self, event):
        w, h = self.GetClientSize ()
        self.contents.SetClientSizeWH (w-self.sh_width, h-self.sh_width)
def SetContents(self, widget)
Expand source code
def SetContents (self, widget):
        """Marry a widget and a shadow.

        Widget MUST have parent=Shadow widget, and pos=(0,0)
        """
        self.contents = widget

Marry a widget and a shadow.

Widget MUST have parent=Shadow widget, and pos=(0,0)