OSDN Git Service

BrowseRefsDlg: Resizable
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / LogFile.h
1 // TortoiseSVN - a Windows shell extension for easy version control\r
2 \r
3 // Copyright (C) 2007-2008 - TortoiseSVN\r
4 \r
5 // This program is free software; you can redistribute it and/or\r
6 // modify it under the terms of the GNU General Public License\r
7 // as published by the Free Software Foundation; either version 2\r
8 // of the License, or (at your option) any later version.\r
9 \r
10 // This program is distributed in the hope that it will be useful,\r
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 // GNU General Public License for more details.\r
14 \r
15 // You should have received a copy of the GNU General Public License\r
16 // along with this program; if not, write to the Free Software Foundation,\r
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r
18 //\r
19 #pragma once\r
20 #include "registry.h"\r
21 #include "TGitPath.h"\r
22 #include <list>\r
23 \r
24 /**\r
25  * \ingroup TortoiseProc\r
26  * CLogFile implements a log file with a limited size.\r
27  * The log file consists of multiple lines. The amount of lines can\r
28  * be limited with the registry entry Software\\TortoiseGit\\MaxLinesInLogfile\r
29  * and defaults to 4000 lines.\r
30  */\r
31 class CLogFile\r
32 {\r
33 public:\r
34         CLogFile(void);\r
35         ~CLogFile(void);\r
36 \r
37         /**\r
38          * Opens the log file and reads its contents\r
39          */\r
40         bool    Open(const CTGitPath& logfile);\r
41         /**\r
42          * Opens the default log file for TortoiseSVN and reads its contents\r
43          */\r
44         bool    Open();\r
45         /**\r
46          * Adds one line to the log file. The file is \b not yet written back to disk.\r
47          */\r
48         bool    AddLine(const CString& line);\r
49         /**\r
50          * Writes the contents to the disk.\r
51          */\r
52         bool    Close();\r
53 \r
54         /**\r
55          * Inserts a line with the current time and date to the log file.\r
56          */\r
57         bool    AddTimeLine();\r
58 protected:\r
59         void    AdjustSize();\r
60 \r
61 private:\r
62         CRegStdWORD                             m_maxlines;\r
63         CTGitPath                               m_logfile;\r
64         std::list<CString>              m_lines;\r
65 };\r