.. 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.agw.speedmeter

.. highlight:: python



.. _wx.lib.agw.speedmeter.BufferedWindow:

==========================================================================================================================================
|phoenix_title|  **wx.lib.agw.speedmeter.BufferedWindow**
==========================================================================================================================================

A buffered window class.

To use it, subclass it and define a `Draw(dc)` method that takes a `dc`
to draw to. In that method, put the code needed to draw the picture
you want. The window will automatically be double buffered, and the
screen will be automatically updated when a Paint event is received.

When the drawing needs to change, you app needs to call the
:meth:`BufferedWindow.UpdateDrawing() <BufferedWindow.UpdateDrawing>` method. Since the drawing is stored in a bitmap, you
can also save the drawing to file by calling the
`SaveToFile(self, file_name, file_type)` method.



|

|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>BufferedWindow</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.agw.speedmeter.BufferedWindow_inheritance.png" alt="Inheritance diagram of BufferedWindow" 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.agw.speedmeter.BufferedWindow.html" title="wx.lib.agw.speedmeter.BufferedWindow" alt="" coords="5,315,288,344"/> <area shape="rect" id="node2" href="wx.Window.html" title="wx.Window" alt="" coords="98,237,195,267"/> <area shape="rect" id="node3" href="wx.WindowBase.html" title="wx.WindowBase" alt="" coords="82,160,211,189"/> <area shape="rect" id="node4" href="wx.EvtHandler.html" title="wx.EvtHandler" alt="" coords="88,83,205,112"/> <area shape="rect" id="node5" href="wx.Object.html" title="wx.Object" alt="" coords="43,5,130,35"/> <area shape="rect" id="node6" href="wx.Trackable.html" title="wx.Trackable" alt="" coords="155,5,261,35"/> </map> 
   </p>
   </div>

|


|sub_classes| Known Subclasses
==============================

:class:`wx.lib.agw.speedmeter.SpeedMeter`

|


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

:class:`wx.Window`

|


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

================================================================================ ================================================================================
:meth:`~wx.lib.agw.speedmeter.BufferedWindow.__init__`                           Default class constructor.
:meth:`~wx.lib.agw.speedmeter.BufferedWindow.doSetWindowCreated`                 Method to call OnSize on GTK when window is created.
:meth:`~wx.lib.agw.speedmeter.BufferedWindow.Draw`                               This method should be overridden when sub-classed.
:meth:`~wx.lib.agw.speedmeter.BufferedWindow.OnPaint`                            Handles the ``wx.EVT_PAINT`` event for :class:`BufferedWindow`.
:meth:`~wx.lib.agw.speedmeter.BufferedWindow.OnSize`                             Handles the ``wx.EVT_SIZE`` event for :class:`BufferedWindow`.
:meth:`~wx.lib.agw.speedmeter.BufferedWindow.UpdateDrawing`                      This would get called if the drawing needed to change, for whatever reason.
================================================================================ ================================================================================


|


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


.. class:: BufferedWindow(wx.Window)

   A buffered window class.
   
   To use it, subclass it and define a `Draw(dc)` method that takes a `dc`
   to draw to. In that method, put the code needed to draw the picture
   you want. The window will automatically be double buffered, and the
   screen will be automatically updated when a Paint event is received.
   
   When the drawing needs to change, you app needs to call the
   :meth:`BufferedWindow.UpdateDrawing() <BufferedWindow.UpdateDrawing>` method. Since the drawing is stored in a bitmap, you
   can also save the drawing to file by calling the
   `SaveToFile(self, file_name, file_type)` method.

   .. method:: __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.NO_FULL_REPAINT_ON_RESIZE, bufferedstyle=SM_BUFFERED_DC)

      Default class constructor.
      
      :param `parent`: parent window. Must not be ``None``;
      :param `id`: window identifier. A value of -1 indicates a default value;
      :param `pos`: the control position. A value of (-1, -1) indicates a default position,
       chosen by either the windowing system or wxPython, depending on platform;
      :param `size`: the control size. A value of (-1, -1) indicates a default size,
       chosen by either the windowing system or wxPython, depending on platform;
      :param `style`: the window style;
      :param `bufferedstyle`: if set to ``SM_BUFFERED_DC``, double-buffering will
       be used.


   .. method:: doSetWindowCreated(self, evt)

      Method to call OnSize on GTK when window is created.


   .. method:: Draw(self, dc)

      This method should be overridden when sub-classed.
      
      :param `dc`: an instance of :class:`wx.DC`.


   .. method:: OnPaint(self, event)

      Handles the ``wx.EVT_PAINT`` event for :class:`BufferedWindow`.
      
      :param `event`: a :class:`PaintEvent` event to be processed.


   .. method:: OnSize(self,event)

      Handles the ``wx.EVT_SIZE`` event for :class:`BufferedWindow`.
      
      :param `event`: a :class:`wx.SizeEvent` event to be processed.


   .. method:: UpdateDrawing(self)

      This would get called if the drawing needed to change, for whatever reason.
      
      The idea here is that the drawing is based on some data generated
      elsewhere in the system. if that data changes, the drawing needs to
      be updated.


