forked from sakura-editor/sakura
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCAutoReloadAgent.h
68 lines (56 loc) · 2.4 KB
/
CAutoReloadAgent.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*! @file */
/*
Copyright (C) 2008, kobake
Copyright (C) 2018-2022, Sakura Editor Organization
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented;
you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is
not required.
2. Altered source versions must be plainly marked as such,
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#ifndef SAKURA_CAUTORELOADAGENT_6340340B_4677_4748_8240_689427F4AE3D_H_
#define SAKURA_CAUTORELOADAGENT_6340340B_4677_4748_8240_689427F4AE3D_H_
#pragma once
#include "doc/CDocListener.h"
// ファイルが更新された場合に再読込を行うかどうかのフラグ
enum WatchUpdate {
WU_QUERY, //!< 再読込を行うかどうかダイアログボックスで問い合わせる
WU_NOTIFY, //!< 更新されたことをステータスバーで通知
WU_NONE, //!< 更新監視を行わない
WU_AUTOLOAD,//!< 更新され未編集の場合に再ロード
};
class CAutoReloadAgent : public CDocListenerEx{
public:
CAutoReloadAgent();
void OnBeforeSave(const SSaveInfo& sSaveInfo) override;
void OnAfterSave(const SSaveInfo& sSaveInfo) override;
void OnAfterLoad(const SLoadInfo& sLoadInfo) override;
//監視の一時停止
void PauseWatching(){ m_nPauseCount++; }
void ResumeWatching()
{
m_nPauseCount--;
assert(m_nPauseCount>=0);
}
bool IsPausing() const{ return m_nPauseCount>=1; }
public://#####仮
bool _ToDoChecking() const;
bool _IsFileUpdatedByOther(FILETIME* pNewFileTime) const;
void CheckFileTimeStamp(); // ファイルのタイムスタンプのチェック処理
public:
WatchUpdate m_eWatchUpdate; //!< 更新監視方法
private:
int m_nPauseCount; //これが1以上の場合は監視をしない
int m_nDelayCount; //未編集で再ロード時の遅延カウンタ
};
#endif /* SAKURA_CAUTORELOADAGENT_6340340B_4677_4748_8240_689427F4AE3D_H_ */