[commit] r2332 - trunk/Tests/svngui

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Tue Sep 3 17:00:54 CDT 2013


Author: volgy
Date: Tue Sep  3 17:00:54 2013
New Revision: 2332

Log:


Modified:
   trunk/Tests/svngui/SVNClient.cpp
   trunk/Tests/svngui/SVNClient.h
   trunk/Tests/svngui/svngui.cpp
   trunk/Tests/svngui/svngui.h
   trunk/Tests/svngui/svngui.vcxproj
   trunk/Tests/svngui/svnguiDoc.cpp
   trunk/Tests/svngui/svnguiDoc.h

Modified: trunk/Tests/svngui/SVNClient.cpp
==============================================================================
--- trunk/Tests/svngui/SVNClient.cpp	Tue Sep  3 15:49:37 2013	(r2331)
+++ trunk/Tests/svngui/SVNClient.cpp	Tue Sep  3 17:00:54 2013	(r2332)
@@ -3,7 +3,6 @@
 #include "svngui.h"
 
 #include "SVNClient.h"
-#include "svn_client.h"
 #include "svn_pools.h"
 #include "svn_dso.h"
 #include "svn_utf.h"
@@ -72,7 +71,7 @@
 	svn_error_clear(svnError);
 }
 
-CString CSVNError::msg()
+CString CSVNError::msg() const
 {
 	char buf[SVN_ERROR_MSG_MAX];
 
@@ -80,7 +79,7 @@
 	return CString(buf);
 }
 
-CSVNClient::CSVNClient() : isInitialized(false)
+CSVNClient::CSVNClient() : isInitialized(false), ctx(NULL), pool(NULL)
 {
 }
 
@@ -98,9 +97,6 @@
 void CSVNClient::initialize(void)
 {
 	apr_status_t status;
-	apr_pool_t *pool;
-	svn_error_t *err;
-	svn_client_ctx_t *ctx;
 
 	// TODO: subversion/libsvn_subr/cmdline.c contains a lot of esoteric stuff
 	// such as "setvbuf", input/output encodings, exception handlers, locale settings, etc.
@@ -135,7 +131,7 @@
 	SVNTHROW(svn_ra_initialize(pool));
 
 	/* Make sure the ~/.subversion run-time config files exist */
-	SVNTHROW(svn_config_ensure (NULL, pool));
+	SVNTHROW(svn_config_ensure(NULL, pool));
 
 
 	/* All clients need to fill out a client_ctx object. */
@@ -156,29 +152,27 @@
 			SVNTHROW(svn_wc_set_adm_dir ("_svn", pool));
 		}
 
-		/* Depending on what your client does, you'll want to read about
-		(and implement) the various callback function types below.  */
+		/* Callbacks */
 
-		/* A func (& context) which receives event signals during
-		checkouts, updates, commits, etc.  */
-		/* ctx->notify_func2 = my_notification_func;
-		ctx->notify_baton2 = NULL; */
+		/* A func (& context) which receives event signals during checkouts, updates, commits, etc.  */
+		ctx->notify_func2 = cbNotify;
+		ctx->notify_baton2 = this;
 
 		/* A func (& context) which can receive log messages */
-		/* ctx->log_msg_func3 = my_log_msg_receiver_func;
-		ctx->log_msg_baton3 = NULL; */
+		ctx->log_msg_func3 = cbLog;
+		ctx->log_msg_baton3 = this;
 
 		/* A func (& context) which checks whether the user cancelled */
-		/* ctx->cancel_func = my_cancel_checking_func;
-		ctx->cancel_baton = NULL; */
+		ctx->cancel_func = cbCancel;
+		ctx->cancel_baton = this;
 
 		/* A func (& context) for network progress */
-		/* ctx->progress_func = my_progress_func;
-		ctx->progress_baton = NULL; */
+		ctx->progress_func = cbProgress;
+		ctx->progress_baton = this;
 		
 		/* A func (& context) for conflict resolution */
-		/* ctx->conflict_func2 = my_conflict_func;
-		ctx->conflict_baton2 = NULL; */
+		ctx->conflict_func2 = cbConflict;
+		ctx->conflict_baton2 = this;
 
 		/* Make the client_ctx capable of authenticating users */
 		{
@@ -189,7 +183,7 @@
 			SVNTHROW(svn_auth_get_platform_specific_client_providers(&providers, cfg_config, pool));
 
 			/* For caching unencrypted username/password (also from config file) - prompting only to confirm storing creds in cleartext */
-			svn_auth_get_simple_provider2(&provider,svn_cmdline_auth_plaintext_prompt, NULL /* prompt baton */, pool);
+			svn_auth_get_simple_provider2(&provider, cbAuthPlaintextPrompt, this, pool);
 			APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
 
 			/* For guessing and optionally saving username - no prompting */
@@ -208,19 +202,19 @@
 			svn_auth_get_ssl_client_cert_file_provider(&provider, pool);
 			APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
 
-			svn_auth_get_ssl_client_cert_pw_file_provider2(&provider, svn_cmdline_auth_plaintext_passphrase_prompt, NULL /* prompt baton */, pool);
+			svn_auth_get_ssl_client_cert_pw_file_provider2(&provider, cbAuthPlaintextPassphrasePrompt, this, pool);
 			APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
 
-			svn_auth_get_simple_prompt_provider(&provider, svn_cmdline_auth_simple_prompt, NULL /* prompt baton */, 2 /* retry limit */, pool);
+			svn_auth_get_simple_prompt_provider(&provider, cbAuthSimplePrompt, this, 2 /* retry limit */, pool);
 			APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
 
-			svn_auth_get_username_prompt_provider(&provider, svn_cmdline_auth_username_prompt, NULL /* prompt baton */, 2 /* retry limit */, pool);
+			svn_auth_get_username_prompt_provider(&provider, cbAuthUsernamePrompt, this, 2 /* retry limit */, pool);
 			APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
 
-			svn_auth_get_ssl_server_trust_prompt_provider(&provider, svn_cmdline_auth_ssl_server_trust_prompt, NULL /* prompt baton */, pool);
+			svn_auth_get_ssl_server_trust_prompt_provider(&provider, cbAuthSSLServerTrustPrompt, this, pool);
 			APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
 
-			svn_auth_get_ssl_client_cert_pw_prompt_provider(&provider, svn_cmdline_auth_ssl_client_cert_pw_prompt, NULL /* prompt baton */, 2 /* retry limit */, pool);
+			svn_auth_get_ssl_client_cert_pw_prompt_provider(&provider, cbAuthSSLClientCertPWPrompt, this, 2 /* retry limit */, pool);
 			APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
 
 			/* If configuration allows, add a provider for client-cert path
@@ -232,7 +226,7 @@
 										FALSE));
 			if (ssl_client_cert_file_prompt)
 			{
-				svn_auth_get_ssl_client_cert_prompt_provider(&provider, svn_cmdline_auth_ssl_client_cert_prompt, NULL /* prompt baton */, 2 /* retry limit */, pool);
+				svn_auth_get_ssl_client_cert_prompt_provider(&provider, cbAuthSSLClientCertPrompt, this, 2 /* retry limit */, pool);
 				APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
 			}
 
@@ -267,6 +261,97 @@
 	}
 }
 
+// Context Callbacks
+void CSVNClient::cbNotify(void *baton, const svn_wc_notify_t *notify, apr_pool_t *pool)
+{
+	//TODO: implement this
+}
+
+svn_error_t* CSVNClient::cbLog(const char **log_msg, const char **tmp_file, const apr_array_header_t *commit_items, void *baton, apr_pool_t *pool)
+{
+	//TODO: implement this
+	return SVN_NO_ERROR;
+}
+
+svn_error_t* CSVNClient::cbCancel(void *cancel_baton)
+{
+	//TODO: implement this
+	return SVN_NO_ERROR;
+}
+
+void CSVNClient::cbProgress(apr_off_t progress, apr_off_t total, void *baton, apr_pool_t *pool)
+{
+	//TODO: implement this
+}
+
+svn_error_t* CSVNClient::cbConflict(svn_wc_conflict_result_t **result, const svn_wc_conflict_description2_t *description, void *baton, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
+{
+	//TODO: implement this
+	return SVN_NO_ERROR;
+}
+
+// Auth Callbacks
+svn_error_t* CSVNClient::cbAuthPlaintextPrompt(svn_boolean_t *may_save_plaintext, const char *realmstring, void *baton, apr_pool_t *pool)
+{
+	//TODO: implement this
+	may_save_plaintext = FALSE;
+	return SVN_NO_ERROR;
+}
+
+svn_error_t* CSVNClient::cbAuthPlaintextPassphrasePrompt(svn_boolean_t *may_save_plaintext, const char *realmstring, void *baton, apr_pool_t *pool)
+{
+	//TODO: implement this
+	may_save_plaintext = FALSE;
+	return SVN_NO_ERROR;
+}
+
+svn_error_t* CSVNClient::cbAuthSimplePrompt(svn_auth_cred_simple_t **cred, void *baton, const char *realm, const char *username, svn_boolean_t may_save, apr_pool_t *pool)
+{
+	//TODO: implement this
+	svn_auth_cred_simple_t *ret = (svn_auth_cred_simple_t *)apr_pcalloc(pool, sizeof(*ret));
+	ret->username = NULL;
+	ret->password = NULL;
+	ret->may_save = may_save;
+	return SVN_NO_ERROR;
+}
+
+svn_error_t* CSVNClient::cbAuthUsernamePrompt(svn_auth_cred_username_t **cred, void *baton, const char *realm, svn_boolean_t may_save, apr_pool_t *pool)
+{
+	//TODO: implement this
+	svn_auth_cred_username_t *ret = (svn_auth_cred_username_t *)apr_pcalloc(pool, sizeof(*ret));
+	ret->username = NULL;
+	ret->may_save = may_save;
+	return SVN_NO_ERROR;
+}
+
+svn_error_t* CSVNClient::cbAuthSSLServerTrustPrompt(svn_auth_cred_ssl_server_trust_t **cred, void *baton, const char *realm, apr_uint32_t failures, const svn_auth_ssl_server_cert_info_t *cert_info, svn_boolean_t may_save, apr_pool_t *pool)
+{
+	//TODO: implement this
+	svn_auth_cred_ssl_server_trust_t *ret = (svn_auth_cred_ssl_server_trust_t *)apr_pcalloc(pool, sizeof(*ret));
+	ret->accepted_failures = failures; 
+	ret->may_save = may_save;
+	return SVN_NO_ERROR;
+}
+
+svn_error_t* CSVNClient::cbAuthSSLClientCertPWPrompt(svn_auth_cred_ssl_client_cert_pw_t **cred, void *baton, const char *realm, svn_boolean_t may_save, apr_pool_t *pool)
+{
+	//TODO: implement this
+	svn_auth_cred_ssl_client_cert_pw_t *ret = (svn_auth_cred_ssl_client_cert_pw_t *)apr_pcalloc(pool, sizeof(*ret));
+	ret->password = NULL;
+	ret->may_save = may_save;
+	return SVN_NO_ERROR;
+}
+
+svn_error_t* CSVNClient::cbAuthSSLClientCertPrompt(svn_auth_cred_ssl_client_cert_t **cred, void *baton, const char *realm, svn_boolean_t may_save, apr_pool_t *pool)
+{
+	//TODO: implement this
+	svn_auth_cred_ssl_client_cert_t *ret = (svn_auth_cred_ssl_client_cert_t *)apr_pcalloc(pool, sizeof(*ret));
+	ret->cert_file = NULL;
+	ret->may_save = may_save;
+	return SVN_NO_ERROR;
+}
+
+
 CSVNFile::CSVNFile(const CString & filePath)
 {
 }

Modified: trunk/Tests/svngui/SVNClient.h
==============================================================================
--- trunk/Tests/svngui/SVNClient.h	Tue Sep  3 15:49:37 2013	(r2331)
+++ trunk/Tests/svngui/SVNClient.h	Tue Sep  3 17:00:54 2013	(r2332)
@@ -16,7 +16,7 @@
 
 public:
 	virtual ~CSVNError();
-	CString msg();
+	CString msg() const;
 
 private:
 	svn_error_t	*svnError;
@@ -53,13 +53,32 @@
 	void initialize();
 
 	CSVNFile* embraceFile(const CString & filePath);
+	void forgetFile(CSVNFile* svnFile);
 
 private:
-	void forgetFile(CSVNFile* svnFile);
+	// Context Callbacks
+	static void cbNotify(void *baton, const svn_wc_notify_t *notify, apr_pool_t *pool);
+	static svn_error_t* cbLog(const char **log_msg, const char **tmp_file, const apr_array_header_t *commit_items, void *baton, apr_pool_t *pool);
+	static svn_error_t* cbCancel(void *cancel_baton);
+	static void cbProgress(apr_off_t progress, apr_off_t total, void *baton, apr_pool_t *pool);
+	static svn_error_t* cbConflict(svn_wc_conflict_result_t **result, const svn_wc_conflict_description2_t *description, void *baton, apr_pool_t *result_pool, apr_pool_t *scratch_pool);
+
+	// Auth Callbacks
+	static svn_error_t* cbAuthPlaintextPrompt(svn_boolean_t *may_save_plaintext, const char *realmstring, void *baton, apr_pool_t *pool);
+	static svn_error_t* cbAuthPlaintextPassphrasePrompt(svn_boolean_t *may_save_plaintext, const char *realmstring, void *baton, apr_pool_t *pool);
+	static svn_error_t* cbAuthSimplePrompt(svn_auth_cred_simple_t **cred, void *baton, const char *realm, const char *username, svn_boolean_t may_save, apr_pool_t *pool);
+	static svn_error_t* cbAuthUsernamePrompt(svn_auth_cred_username_t **cred, void *baton, const char *realm, svn_boolean_t may_save, apr_pool_t *pool);
+	static svn_error_t* cbAuthSSLServerTrustPrompt(svn_auth_cred_ssl_server_trust_t **cred, void *baton, const char *realm, apr_uint32_t failures, const svn_auth_ssl_server_cert_info_t *cert_info, svn_boolean_t may_save, apr_pool_t *pool);
+	static svn_error_t* cbAuthSSLClientCertPWPrompt(svn_auth_cred_ssl_client_cert_pw_t **cred, void *baton, const char *realm, svn_boolean_t may_save, apr_pool_t *pool);
+	static svn_error_t* cbAuthSSLClientCertPrompt(svn_auth_cred_ssl_client_cert_t **cred, void *baton, const char *realm, svn_boolean_t may_save, apr_pool_t *pool);
 
 private:
 	CList<CSVNFile*, CSVNFile*> svnFiles;
+	
 	bool isInitialized;
 
+	// These are valid only if initialized
+	svn_client_ctx_t *ctx;
+	apr_pool_t *pool;
 };
 

Modified: trunk/Tests/svngui/svngui.cpp
==============================================================================
--- trunk/Tests/svngui/svngui.cpp	Tue Sep  3 15:49:37 2013	(r2331)
+++ trunk/Tests/svngui/svngui.cpp	Tue Sep  3 17:00:54 2013	(r2332)
@@ -143,10 +143,10 @@
 	m_pMainWnd->DragAcceptFiles();
 
 	try {
-		svn = new CSVNClient();
+		svn.initialize();
 	} 
 	catch (const CSVNError& svnError) {
-		//Log(svnError->msg());
+		Log(svnError.msg());
 	}
 
 	return TRUE;
@@ -156,9 +156,6 @@
 {
 	//TODO: handle additional resources you may have added
 	AfxOleTerm(FALSE);
-
-	delete svn;
-	apr_terminate();
 	return CWinAppEx::ExitInstance();
 }
 

Modified: trunk/Tests/svngui/svngui.h
==============================================================================
--- trunk/Tests/svngui/svngui.h	Tue Sep  3 15:49:37 2013	(r2331)
+++ trunk/Tests/svngui/svngui.h	Tue Sep  3 17:00:54 2013	(r2332)
@@ -32,7 +32,7 @@
 
 // Implementation
 	BOOL  m_bHiColorIcons;
-	CSVNClient *svn;
+	CSVNClient svn;
 
 	virtual void PreLoadState();
 	virtual void LoadCustomState();

Modified: trunk/Tests/svngui/svngui.vcxproj
==============================================================================
--- trunk/Tests/svngui/svngui.vcxproj	Tue Sep  3 15:49:37 2013	(r2331)
+++ trunk/Tests/svngui/svngui.vcxproj	Tue Sep  3 17:00:54 2013	(r2332)
@@ -41,13 +41,13 @@
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LinkIncremental>true</LinkIncremental>
-    <IncludePath>$(SolutionDir)\include\apr;$(SolutionDir)\include\apr-util;$(SolutionDir)\include\apr-iconv;$(SolutionDir)\include\subversion;$(IncludePath)</IncludePath>
-    <LibraryPath>$(SolutionDir)\lib;$(SolutionDir)\lib\subv_$(Configuration);$(LibraryPath)</LibraryPath>
+    <IncludePath>$(SolutionDir)\..\..\GME\include\apr;$(SolutionDir)\..\..\GME\include\apr-util;$(SolutionDir)\..\..\GME\include\apr-iconv;$(SolutionDir)\..\..\GME\include\subversion;$(IncludePath)</IncludePath>
+    <LibraryPath>$(SolutionDir)\..\..\GME\lib;$(SolutionDir)\..\..\GME\lib\subv_$(Configuration);$(LibraryPath)</LibraryPath>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LinkIncremental>false</LinkIncremental>
-    <IncludePath>$(SolutionDir)\include\apr;$(SolutionDir)\include\apr-util;$(SolutionDir)\include\apr-iconv;$(SolutionDir)\include\subversion;$(IncludePath)</IncludePath>
-    <LibraryPath>$(SolutionDir)\lib;$(SolutionDir)\lib\subv_$(Configuration);$(LibraryPath)</LibraryPath>
+    <IncludePath>$(SolutionDir)\..\..\GME\include\apr;$(SolutionDir)\..\..\GME\include\apr-util;$(SolutionDir)\..\..\GME\include\apr-iconv;$(SolutionDir)\..\..\GME\include\subversion;$(IncludePath)</IncludePath>
+    <LibraryPath>$(SolutionDir)\..\..\GME\lib;$(SolutionDir)\..\..\GME\lib\subv_$(Configuration);$(LibraryPath)</LibraryPath>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
@@ -71,11 +71,11 @@
       <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <CustomBuildStep>
-      <Command>xcopy /Y/D/F ..\lib\libeay32.dll  "$(OutDir)" &amp;&amp; ^
-xcopy /Y/D/F ..\lib\ssleay32.dll  "$(OutDir)" &amp;&amp; ^
-xcopy /Y/D/F ..\lib\subv_$(ConfigurationName)\libapr-1.dll "$(OutDir)" &amp;&amp; ^
-xcopy /Y/D/F ..\lib\subv_$(ConfigurationName)\libaprutil-1.dll "$(OutDir)" &amp;&amp; ^
-xcopy /Y/D/F ..\lib\subv_$(ConfigurationName)\libapriconv-1.dll "$(OutDir)" &amp;&amp; ^
+      <Command>xcopy /Y/D/F $(SolutionDir)\..\..\GME\lib\libeay32.dll  "$(OutDir)" &amp;&amp; ^
+xcopy /Y/D/F $(SolutionDir)\..\..\GME\lib\ssleay32.dll  "$(OutDir)" &amp;&amp; ^
+xcopy /Y/D/F $(SolutionDir)\..\..\GME\lib\subv_$(ConfigurationName)\libapr-1.dll "$(OutDir)" &amp;&amp; ^
+xcopy /Y/D/F $(SolutionDir)\..\..\GME\lib\subv_$(ConfigurationName)\libaprutil-1.dll "$(OutDir)" &amp;&amp; ^
+xcopy /Y/D/F $(SolutionDir)\..\..\GME\lib\subv_$(ConfigurationName)\libapriconv-1.dll "$(OutDir)"
 </Command>
     </CustomBuildStep>
     <CustomBuildStep>
@@ -111,11 +111,11 @@
       <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <CustomBuildStep>
-      <Command>xcopy /Y/D/F ..\lib\libeay32.dll  "$(OutDir)" &amp;&amp; ^
-xcopy /Y/D/F ..\lib\ssleay32.dll  "$(OutDir)" &amp;&amp; ^
-xcopy /Y/D/F ..\lib\subv_$(ConfigurationName)\libapr-1.dll "$(OutDir)" &amp;&amp; ^
-xcopy /Y/D/F ..\lib\subv_$(ConfigurationName)\libaprutil-1.dll "$(OutDir)" &amp;&amp; ^
-xcopy /Y/D/F ..\lib\subv_$(ConfigurationName)\libapriconv-1.dll "$(OutDir)" &amp;&amp; ^
+      <Command>xcopy /Y/D/F $(SolutionDir)\..\..\GME\lib\libeay32.dll  "$(OutDir)" &amp;&amp; ^
+xcopy /Y/D/F $(SolutionDir)\..\..\GME\lib\ssleay32.dll  "$(OutDir)" &amp;&amp; ^
+xcopy /Y/D/F $(SolutionDir)\..\..\GME\lib\subv_$(ConfigurationName)\libapr-1.dll "$(OutDir)" &amp;&amp; ^
+xcopy /Y/D/F $(SolutionDir)\..\..\GME\lib\subv_$(ConfigurationName)\libaprutil-1.dll "$(OutDir)" &amp;&amp; ^
+xcopy /Y/D/F $(SolutionDir)\..\..\GME\lib\subv_$(ConfigurationName)\libapriconv-1.dll "$(OutDir)"
 </Command>
     </CustomBuildStep>
     <CustomBuildStep>
@@ -166,4 +166,9 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
+  <ProjectExtensions>
+    <VisualStudio>
+      <UserProperties RESOURCE_FILE="svngui.rc" />
+    </VisualStudio>
+  </ProjectExtensions>
 </Project>
\ No newline at end of file

Modified: trunk/Tests/svngui/svnguiDoc.cpp
==============================================================================
--- trunk/Tests/svngui/svnguiDoc.cpp	Tue Sep  3 15:49:37 2013	(r2331)
+++ trunk/Tests/svngui/svnguiDoc.cpp	Tue Sep  3 17:00:54 2013	(r2332)
@@ -152,3 +152,40 @@
 
 
 // CsvnguiDoc commands
+
+
+BOOL CsvnguiDoc::OnOpenDocument(LPCTSTR lpszPathName)
+{
+	if (!CDocument::OnOpenDocument(lpszPathName))
+		return FALSE;
+
+	svnFile = theApp.svn.embraceFile(lpszPathName);
+
+	return TRUE;
+}
+
+
+void CsvnguiDoc::OnCloseDocument()
+{
+	// TODO: Add your specialized code here and/or call the base class
+
+	CDocument::OnCloseDocument();
+
+	theApp.svn.forgetFile(svnFile);
+}
+
+
+BOOL CsvnguiDoc::OnSaveDocument(LPCTSTR lpszPathName)
+{
+	// TODO: Add your specialized code here and/or call the base class
+
+	return CDocument::OnSaveDocument(lpszPathName);
+}
+
+
+BOOL CsvnguiDoc::SaveModified()
+{
+	// TODO: Add your specialized code here and/or call the base class
+
+	return CDocument::SaveModified();
+}

Modified: trunk/Tests/svngui/svnguiDoc.h
==============================================================================
--- trunk/Tests/svngui/svnguiDoc.h	Tue Sep  3 15:49:37 2013	(r2331)
+++ trunk/Tests/svngui/svnguiDoc.h	Tue Sep  3 17:00:54 2013	(r2332)
@@ -5,6 +5,8 @@
 
 #pragma once
 
+#include "SVNClient.h"
+
 
 class CsvnguiDoc : public CDocument
 {
@@ -51,4 +53,12 @@
 	CString m_strSearchContent;
 	CString m_strThumbnailContent;
 #endif // SHARED_HANDLERS
+public:
+	virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
+	virtual void OnCloseDocument();
+	virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);
+	virtual BOOL SaveModified();
+
+private:
+	CSVNFile *svnFile;
 };


More information about the gme-commit mailing list