]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/screenshotgen/src/autocapture.h
Removed dummy wxFont == operator implementation (IIRC was needed to compile with...
[wxWidgets.git] / utils / screenshotgen / src / autocapture.h
index 10ea3c8bd4cb52b8509dda046ff31d04b4fd3db3..e0aed4d36e89c64423a7335322d8f940cd494838 100644 (file)
@@ -6,18 +6,16 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef AUTOCAP_H
-#define AUTOCAP_H
+#ifndef _AUTOCAPTURE_H_
+#define _AUTOCAPTURE_H_
 
-#include <wx/notebook.h>
-#include <wx/settings.h>
 #include <vector>
 #include <ctime>
 
-// Global helper functions. to take screenshot for a rect region
-wxBitmap Capture(wxRect rect);
-wxBitmap Capture(int x, int y, int width, int height);
+#include <wx/notebook.h>
+
 
+// TODO: document what these flags mean
 enum AdjustFlags
 {
     AJ_Normal = 0,
@@ -36,7 +34,7 @@ enum AdjustFlags
 class AutoCaptureMechanism
 {
 public:
-    AutoCaptureMechanism(wxNotebook * notebook,
+    AutoCaptureMechanism(wxNotebook *notebook,
                          wxString directory = wxT("screenshots"),
                          int border = 5)
         : m_notebook(notebook), m_dir(directory), m_border(border) {}
@@ -63,9 +61,18 @@ public:
         m_controlList.push_back(Control(0, wxT(""), AJ_TurnPage));
     }
 
+    // capture all controls of the associated notebook
     void CaptureAll();
 
-protected:      // internal utils
+    // take a screenshot only of the given rect
+    // delay is only useful for Mac, for fixing a delay bug
+    static wxBitmap Capture(wxRect rect, int delay = 0);
+    static wxBitmap Capture(int x, int y, int width, int height, int delay = 0);
+
+    static void Delay(int seconds);
+
+
+private:      // internal utils
     struct Control
     {
         Control() {}
@@ -80,18 +87,17 @@ protected:      // internal utils
 
     wxBitmap Capture(Control & ctrl);
 
-    //if AJ_RegionAdjust is specified, the following line will use the label trick to adjust
-    //the region position and size
+    // if AJ_RegionAdjust is specified, the following line will use the label
+    // trick to adjust the region position and size
     wxRect GetRect(wxWindow* ctrl, int flag);
 
-    //put the control back after the label trick(Using reparent/resizer approach)
+    // put the control back after the label trick(Using reparent/resizer approach)
     void PutBack(wxWindow * ctrl);
 
     wxBitmap Union(wxBitmap pic1, wxBitmap pic2);
 
     void Save(wxBitmap screenshot, wxString fileName);
 
-private:
     typedef std::vector<Control> ControlList;
     ControlList m_controlList;
 
@@ -106,6 +112,6 @@ private:
     int m_border;
 };
 
-#endif // AUTOCAP_H
+#endif // _AUTOCAPTURE_H_