]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/include/wx/fl/antiflickpl.h
Avoid warnings from mgl headers if possible.
[wxWidgets.git] / contrib / include / wx / fl / antiflickpl.h
index 9b44d8508cec2716706c041b44585c2bb9ade73d..91a9cfa2795d98de20307eeca3c5f1138c88a086 100644 (file)
@@ -1,63 +1,85 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        No names yet.
-// Purpose:     Contrib. demo
+// Name:        antiflickpl.h
+// Purpose:     Double-buffering plugin class for reducing flicker
 // Author:      Aleksandras Gluchovas (@Lithuania)
 // Modified by:
 // Created:     23/10/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Aleksandras Gluchovas
-// Licence:    wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef __ANTIFLICKPL_G__
 #define __ANTIFLICKPL_G__
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
     #pragma interface "antiflickpl.h"
 #endif
 
 #include "wx/fl/controlbar.h"
 
-class cbAntiflickerPlugin : public cbPluginBase
+/*
+Implements double-buffering to reduce flicker.
+Bitmap and memory DC buffers are shared 'resources' among all instances of
+antiflicker plugins within the application.
+
+Locking for multithreaded applications is not yet implemented.
+*/
+
+class WXDLLIMPEXP_FL cbAntiflickerPlugin : public cbPluginBase
 {
-       DECLARE_DYNAMIC_CLASS( cbAntiflickerPlugin )
+    DECLARE_DYNAMIC_CLASS( cbAntiflickerPlugin )
 protected:
-       // double-buffers are shared "resource" among all instances of 
-       // antiflicker plugin within the application 
-       //
-       // TODO:: locking should be implemented, for multithreaded GUIs
 
-       static wxBitmap*   mpVertBuf;
-       static wxBitmap*   mpHorizBuf;
-       static wxMemoryDC* mpVertBufDc;
-       static wxMemoryDC* mpHorizBufDc;
+    static wxBitmap*   mpVertBuf;
+    static wxBitmap*   mpHorizBuf;
+    static wxMemoryDC* mpVertBufDc;
+    static wxMemoryDC* mpHorizBufDc;
 
-       static int mRefCount;
+    static int mRefCount;
 
-       wxDC*  mpLRUBufDc; // last-reacently-used buffer
-       wxRect mLRUArea;   // last-reacently-used area
+    wxDC*  mpLRUBufDc; // last-recently-used buffer
+    wxRect mLRUArea;   // last-recently-used area
 
 protected:
-       // returns NULL, if sutable buffer is not present
-       wxDC* FindSuitableBuffer( const wxRect& forArea );
-       wxDC* AllocNewBuffer( const wxRect& forArea );
-       wxDC& GetWindowDC();
+        // Finds a suitable buffer. Returns NULL if a suitable buffer is not present.
+
+    wxDC* FindSuitableBuffer( const wxRect& forArea );
+
+        // Allocates a suitable buffer.
+
+    wxDC* AllocNewBuffer( const wxRect& forArea );
+
+        // Gets the window device context.
+
+    wxDC& GetWindowDC();
 
-       wxDC& GetClientDC();
+        // Gets the client device context.
+
+    wxDC& GetClientDC();
 public:
 
-       cbAntiflickerPlugin(void);
+        // Default constructor.
+
+    cbAntiflickerPlugin(void);
+
+        // Constructor taking frame layout panel, and pane mask.
+
+    cbAntiflickerPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES );
+
+        // Destructor.
+
+    virtual ~cbAntiflickerPlugin();
 
-       cbAntiflickerPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES );
+        // Handler for plugin event.
 
-       virtual ~cbAntiflickerPlugin();
+    void OnStartDrawInArea ( cbStartDrawInAreaEvent& event );
 
-       // handlers for plugin events
+        // Handler for plugin event.
 
-       void OnStartDrawInArea ( cbStartDrawInAreaEvent& event );
-       void OnFinishDrawInArea( cbFinishDrawInAreaEvent& event );
+    void OnFinishDrawInArea( cbFinishDrawInAreaEvent& event );
 
-       DECLARE_EVENT_TABLE()
+    DECLARE_EVENT_TABLE()
 };
 
 #endif /* __ANTIFLICKPL_G__ */