]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/debugrpt.h
Resolve ambiguity between GetClientXXX() methods in wxOSX wxComboBox.
[wxWidgets.git] / interface / wx / debugrpt.h
index bb40cb19976d016e94b2b3c411a0f305efd828d5..77686c1ded6712d09598957fc9b3c491a24e3483 100644 (file)
@@ -3,12 +3,11 @@
 // Purpose:     interface of wxDebugReport*
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
     @class wxDebugReportPreview
-    @wxheader{debugrpt.h}
 
     This class presents the debug report to the user and allows him to veto
     report entirely or remove some parts of it. Although not mandatory, using
@@ -45,14 +44,13 @@ public:
                  chose to cancel report generation or removed all files from
                  it.
     */
-    virtual bool Show(wxDebugReport& dbgrpt) const;
+    virtual bool Show(wxDebugReport& dbgrpt) const = 0;
 };
 
 
 
 /**
     @class wxDebugReportCompress
-    @wxheader{debugrpt.h}
 
     wxDebugReportCompress is a wxDebugReport which compresses all the files in
     this debug report into a single ZIP file in its wxDebugReport::Process()
@@ -69,18 +67,55 @@ public:
     */
     wxDebugReportCompress();
 
+    /**
+        Set the directory where the debug report should be generated.
+
+        By default, the debug report is generated under user temporary files
+        directory. This is usually fine if it is meant to be processed in some
+        way (e.g. automatically uploaded to a remote server) but if the user is
+        asked to manually upload or send the report, it may be more convenient
+        to generate it in e.g. the users home directory and this function
+        allows to do this.
+
+        Notice that it should be called before wxDebugReport::Process() or it
+        has no effect.
+
+        @param dir
+            The full path to an existing directory where the debug report file
+            should be generated.
+
+        @since 2.9.1
+     */
+    void SetCompressedFileDirectory(const wxString& dir);
+
+    /**
+        Set the base name of the generated debug report file.
+
+        This function is similar to SetCompressedFileDirectory() but allows to
+        change the base name of the file. Notice that the file extension will
+        always be @c .zip.
+
+        By default, a unique name constructed from wxApp::GetAppName(), the
+        current process id and the current date and time is used.
+
+        @param name
+            The base name (i.e. without extension) of the file.
+
+        @since 2.9.1
+     */
+    void SetCompressedFileBaseName(const wxString& name);
+
     /**
         Returns the full path of the compressed file (empty if creation
         failed).
     */
-    const wxString GetCompressedFileName() const;
+    const wxString& GetCompressedFileName() const;
 };
 
 
 
 /**
     @class wxDebugReport
-    @wxheader{debugrpt.h}
 
     wxDebugReport is used to generate a debug report, containing information
     about the program current state. It is usually used from
@@ -138,7 +173,7 @@ public:
         constructor with all the files it contains. Call Reset() to prevent
         this from happening.
     */
-    ~wxDebugReport();
+    virtual ~wxDebugReport();
 
     /**
         Adds all available information to the report. Currently this includes a
@@ -151,7 +186,7 @@ public:
         Add an XML file containing the current or exception context and the
         stack trace.
     */
-    bool AddContext(Context ctx);
+    virtual bool AddContext(Context ctx);
 
     /**
         The same as calling AddContext(Context_Current).
@@ -170,7 +205,7 @@ public:
         (@c dbghlp32.dll can be installed under older systems to make minidumps
         available).
     */
-    bool AddDump(Context ctx);
+    virtual bool AddDump(Context ctx);
 
     /**
         The same as calling AddContext(Context_Exception).
@@ -185,13 +220,15 @@ public:
     /**
         Add another file to the report. If @a filename is an absolute path, it
         is copied to a file in the debug report directory with the same name.
-        Otherwise the file should already exist in this directory
-        @a description only exists to be displayed to the user in the report
-        summary shown by wxDebugReportPreview.
+        Otherwise the file will be searched in the temporary directory returned
+        by GetDirectory().
+        
+        The argument @a description only exists to be displayed to the user in 
+        the report summary shown by wxDebugReportPreview.
 
         @see GetDirectory(), AddText()
     */
-    void AddFile(const wxString& filename, const wxString& description);
+    virtual void AddFile(const wxString& filename, const wxString& description);
 
     /**
         This is a convenient wrapper around AddFile(). It creates the file with
@@ -204,30 +241,6 @@ public:
     bool AddText(const wxString& filename, const wxString& text,
                  const wxString& description);
 
-    /**
-        This function may be overridden to add arbitrary custom context to the
-        XML context file created by AddContext(). By default, it does nothing.
-    */
-    void DoAddCustomContext(wxXmlNode* nodeRoot);
-
-    /**
-        This function may be overridden to modify the contents of the exception
-        tag in the XML context file.
-    */
-    bool DoAddExceptionInfo(wxXmlNode* nodeContext);
-
-    /**
-        This function may be overridden to modify the contents of the modules
-        tag in the XML context file.
-    */
-    bool DoAddLoadedModules(wxXmlNode* nodeModules);
-
-    /**
-        This function may be overridden to modify the contents of the system
-        tag in the XML context file.
-    */
-    bool DoAddSystemInfo(wxXmlNode* nodeSystemInfo);
-
     /**
         This method should be used to construct the full name of the files
         which you wish to add to the report using AddFile().
@@ -235,12 +248,12 @@ public:
         @return The name of the temporary directory used for the files in this
                  report.
     */
-    const wxString GetDirectory() const;
+    const wxString& GetDirectory() const;
 
     /**
         Retrieves the name (relative to GetDirectory()) and the description of
         the file with the given index. If @a n is greater than or equal to the
-        number of filse, @false is returned.
+        number of files, then @false is returned.
     */
     bool GetFile(size_t n, wxString* name, wxString* desc) const;
 
@@ -253,7 +266,7 @@ public:
         Gets the name used as a base name for various files, by default
         wxApp::GetAppName() is used.
     */
-    wxString GetReportName() const;
+    virtual wxString GetReportName() const;
 
     /**
         Returns @true if the object was successfully initialized. If this
@@ -280,13 +293,38 @@ public:
         after this as it becomes uninitialized and invalid.
     */
     void Reset();
+
+protected:
+
+    /**
+        This function may be overridden to add arbitrary custom context to the
+        XML context file created by AddContext(). By default, it does nothing.
+    */
+    virtual void DoAddCustomContext(wxXmlNode* nodeRoot);
+
+    /**
+        This function may be overridden to modify the contents of the exception
+        tag in the XML context file.
+    */
+    virtual bool DoAddExceptionInfo(wxXmlNode* nodeContext);
+
+    /**
+        This function may be overridden to modify the contents of the modules
+        tag in the XML context file.
+    */
+    virtual bool DoAddLoadedModules(wxXmlNode* nodeModules);
+
+    /**
+        This function may be overridden to modify the contents of the system
+        tag in the XML context file.
+    */
+    virtual bool DoAddSystemInfo(wxXmlNode* nodeSystemInfo);
 };
 
 
 
 /**
     @class wxDebugReportPreviewStd
-    @wxheader{debugrpt.h}
 
     wxDebugReportPreviewStd is a standard debug report preview window. It
     displays a dialog allowing the user to examine the contents of a debug
@@ -315,7 +353,6 @@ public:
 
 /**
     @class wxDebugReportUpload
-    @wxheader{debugrpt.h}
 
     This class is used to upload a compressed file using HTTP POST request. As
     this class derives from wxDebugReportCompress, before upload the report is
@@ -340,12 +377,13 @@ public:
                         const wxString& action,
                         const wxString& curl = "curl");
 
+protected:
     /**
         This function may be overridden in a derived class to show the output
         from curl: this may be an HTML page or anything else that the server
         returned. Value returned by this function becomes the return value of
         wxDebugReport::Process().
     */
-    bool OnServerReply(const wxArrayString& reply);
+    virtual bool OnServerReply(const wxArrayString& reply);
 };