.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc

.. currentmodule:: wx.lib.ogl.drawn

.. highlight:: python



.. _wx.lib.ogl.drawn.DrawnShape:

==========================================================================================================================================
|phoenix_title|  **wx.lib.ogl.drawn.DrawnShape**
==========================================================================================================================================

Draws a pseudo-metafile shape, which can be loaded from a simple
Windows metafile.

wxDrawnShape allows you to specify a different shape for each of four
orientations (North, West, South and East). It also provides a set of
drawing functions for programmatic drawing of a shape, so that during
construction of the shape you can draw into it as if it were a device
context.

Derived from:
  RectangleShape



|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>DrawnShape</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.lib.ogl.drawn.DrawnShape_inheritance.svg" alt="Inheritance diagram of DrawnShape" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.lib.ogl.drawn.DrawnShape.html" title="Draws a pseudo-metafile shape, which can be loaded from a simple" alt="" coords="19,236,261,265"/> <area shape="rect" id="node2" href="wx.lib.ogl.basic.RectangleShape.html" title="The wx.RectangleShape class has rounded or square corners." alt="" coords="9,159,271,188"/> <area shape="rect" id="node3" href="wx.lib.ogl.basic.Shape.html" title="The Shape is the base class for OGL shapes." alt="" coords="45,82,234,111"/> <area shape="rect" id="node4" href="wx.lib.ogl.basic.ShapeEvtHandler.html" title="The ShapeEvtHandler class." alt="" coords="5,5,274,34"/> </map> 
   </p>
   </div>

|


|super_classes| Known Superclasses
==================================

:class:`wx.lib.ogl.basic.RectangleShape`

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.lib.ogl.drawn.DrawnShape.__init__`                                    Default class constructor
:meth:`~wx.lib.ogl.drawn.DrawnShape.CalculateSize`                               Calculate the wxDrawnShape size from the current metafile.
:meth:`~wx.lib.ogl.drawn.DrawnShape.DestroyClippingRect`                         Destroy the clipping rectangle.
:meth:`~wx.lib.ogl.drawn.DrawnShape.DetermineMetaFile`                           
:meth:`~wx.lib.ogl.drawn.DrawnShape.DrawArc`                                     Draw an arc.
:meth:`~wx.lib.ogl.drawn.DrawnShape.DrawAtAngle`                                 Set the metafile for the given orientation, which can be one of
:meth:`~wx.lib.ogl.drawn.DrawnShape.DrawEllipse`                                 
:meth:`~wx.lib.ogl.drawn.DrawnShape.DrawEllipticArc`                             Draw an elliptic arc.
:meth:`~wx.lib.ogl.drawn.DrawnShape.DrawLine`                                    
:meth:`~wx.lib.ogl.drawn.DrawnShape.DrawLines`                                   
:meth:`~wx.lib.ogl.drawn.DrawnShape.DrawPoint`                                   
:meth:`~wx.lib.ogl.drawn.DrawnShape.DrawPolygon`                                 Draw a polygon.
:meth:`~wx.lib.ogl.drawn.DrawnShape.DrawRectangle`                               
:meth:`~wx.lib.ogl.drawn.DrawnShape.DrawRoundedRectangle`                        Draw a rounded rectangle.
:meth:`~wx.lib.ogl.drawn.DrawnShape.DrawSpline`                                  
:meth:`~wx.lib.ogl.drawn.DrawnShape.DrawText`                                    
:meth:`~wx.lib.ogl.drawn.DrawnShape.GetAngle`                                    Return the current orientation, which can be one of
:meth:`~wx.lib.ogl.drawn.DrawnShape.GetMetaFile`                                 Return a reference to the internal 'pseudo-metafile'.
:meth:`~wx.lib.ogl.drawn.DrawnShape.GetPerimeterPoint`                           Get the perimeter point.
:meth:`~wx.lib.ogl.drawn.DrawnShape.GetRotation`                                 Return the current rotation of the shape in radians.
:meth:`~wx.lib.ogl.drawn.DrawnShape.LoadFromMetaFile`                            Load a (very simple) Windows metafile, created for example by
:meth:`~wx.lib.ogl.drawn.DrawnShape.OnDraw`                                      The draw handler.
:meth:`~wx.lib.ogl.drawn.DrawnShape.OnDrawOutline`                               The draw outline handler.
:meth:`~wx.lib.ogl.drawn.DrawnShape.Rotate`                                      Rotate about the given axis by the given amount in radians.
:meth:`~wx.lib.ogl.drawn.DrawnShape.Scale`                                       Scale the shape by the given amount.
:meth:`~wx.lib.ogl.drawn.DrawnShape.SetClippingRect`                             Set the clipping rectangle.
:meth:`~wx.lib.ogl.drawn.DrawnShape.SetDrawnBackgroundColour`                    Set the current background colour for the current metafile.
:meth:`~wx.lib.ogl.drawn.DrawnShape.SetDrawnBackgroundMode`                      Set the current background mode for the current metafile.
:meth:`~wx.lib.ogl.drawn.DrawnShape.SetDrawnBrush`                               Set the brush for this metafile.
:meth:`~wx.lib.ogl.drawn.DrawnShape.SetDrawnFont`                                
:meth:`~wx.lib.ogl.drawn.DrawnShape.SetDrawnPen`                                 Set the pen for this metafile.
:meth:`~wx.lib.ogl.drawn.DrawnShape.SetDrawnTextColour`                          Set the current text colour for the current metafile.
:meth:`~wx.lib.ogl.drawn.DrawnShape.SetSaveToFile`                               If save is True, the image will be saved along with the shape's
:meth:`~wx.lib.ogl.drawn.DrawnShape.SetSize`                                     Set the size.
:meth:`~wx.lib.ogl.drawn.DrawnShape.Translate`                                   Translate the shape by the given amount.
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: DrawnShape(RectangleShape)

   Draws a pseudo-metafile shape, which can be loaded from a simple
   Windows metafile.
   
   wxDrawnShape allows you to specify a different shape for each of four
   orientations (North, West, South and East). It also provides a set of
   drawing functions for programmatic drawing of a shape, so that during
   construction of the shape you can draw into it as if it were a device
   context.
   
   Derived from:
     RectangleShape

   .. method:: __init__(self)

      Default class constructor
      
      :param float `w`: the width
      :param float `h`: the height


   .. method:: CalculateSize(self)

      Calculate the wxDrawnShape size from the current metafile.
      
      Call this after you have drawn into the shape.


   .. method:: DestroyClippingRect(self)

      Destroy the clipping rectangle.


   .. method:: DetermineMetaFile(self, rotation)


   .. method:: DrawArc(self, centrePt, startPt, endPt)

      Draw an arc.


   .. method:: DrawAtAngle(self, angle)

      Set the metafile for the given orientation, which can be one of:
      
      * DRAWN_ANGLE_0
      * DRAWN_ANGLE_90
      * DRAWN_ANGLE_180
      * DRAWN_ANGLE_270


   .. method:: DrawEllipse(self, rect)


   .. method:: DrawEllipticArc(self, rect, startAngle, endAngle)

      Draw an elliptic arc.


   .. method:: DrawLine(self, pt1, pt2)


   .. method:: DrawLines(self, pts)


   .. method:: DrawPoint(self, pt)


   .. method:: DrawPolygon(self, pts, flags = 0)

      Draw a polygon.
      
      flags can be one or more of:
      METAFLAGS_OUTLINE (use this polygon for the drag outline) and
      METAFLAGS_ATTACHMENTS (use the vertices of this polygon for attachments).


   .. method:: DrawRectangle(self, rect)


   .. method:: DrawRoundedRectangle(self, rect, radius)

      Draw a rounded rectangle.
      
      radius is the corner radius. If radius is negative, it expresses
      the radius as a proportion of the smallest dimension of the rectangle.


   .. method:: DrawSpline(self, pts)


   .. method:: DrawText(self, text, pt)


   .. method:: GetAngle(self)

      Return the current orientation, which can be one of:
      
      * DRAWN_ANGLE_0
      * DRAWN_ANGLE_90
      * DRAWN_ANGLE_180
      * DRAWN_ANGLE_270


   .. method:: GetMetaFile(self, which = 0)

      Return a reference to the internal 'pseudo-metafile'.


   .. method:: GetPerimeterPoint(self, x1, y1, x2, y2)

      Get the perimeter point.
      
      :param `x1`: ???
      :param `y1`: ???
      :param `x2`: ???
      :param `y2`: ???


   .. method:: GetRotation(self)

      Return the current rotation of the shape in radians.


   .. method:: LoadFromMetaFile(self, filename)

      Load a (very simple) Windows metafile, created for example by
      Top Draw, the Windows shareware graphics package.


   .. method:: OnDraw(self, dc)

      The draw handler.


   .. method:: OnDrawOutline(self, dc, x, y, w, h)

      The draw outline handler.


   .. method:: Rotate(self, x, y, theta)

      Rotate about the given axis by the given amount in radians.


   .. method:: Scale(self, sx, sy)

      Scale the shape by the given amount.


   .. method:: SetClippingRect(self, rect)

      Set the clipping rectangle.


   .. method:: SetDrawnBackgroundColour(self, colour)

      Set the current background colour for the current metafile.


   .. method:: SetDrawnBackgroundMode(self, mode)

      Set the current background mode for the current metafile.


   .. method:: SetDrawnBrush(self, brush, isFill = False)

      Set the brush for this metafile.
      
      If isFill is True, the brush is used as the fill brush.


   .. method:: SetDrawnFont(self, font)


   .. method:: SetDrawnPen(self, pen, isOutline = False)

      Set the pen for this metafile.
      
      If isOutline is True, this pen is taken to indicate the outline
      (and if the outline pen is changed for the whole shape, the pen
      will be replaced with the outline pen).


   .. method:: SetDrawnTextColour(self, colour)

      Set the current text colour for the current metafile.


   .. method:: SetSaveToFile(self, save)

      If save is True, the image will be saved along with the shape's
      other attributes. The reason why this might not be desirable is that
      if there are many shapes with the same image, it would be more
      efficient for the application to save one copy, and not duplicate
      the information for every shape. The default is True.


   .. method:: SetSize(self, w, h, recursive = True)

      Set the size.
      
      :param `x`: the width
      :param `y`: the height
      :param `recursive`: not used


   .. method:: Translate(self, x, y)

      Translate the shape by the given amount.