4 #include <commctrl.h>
\r
6 #define MAX_DATEFORMAT_LEN 256
\r
8 ////////////////////////////////////
\r
10 ////////////////////////////////////
\r
12 #define PROP_N_PASSTIMEOUT 0
\r
13 #define PROP_N_DETAILSVIEW_KEEPCARET 1
\r
14 #define PROP_NDETAILSVIEW_TABSTOP 2
\r
15 #define PROP_N_SELECTVIEW_FONTSIZE 3
\r
16 #define PROP_N_SELECTVIEW_FONTQUALITY 4
\r
17 #define PROP_N_DETAILSVIEW_FONTSIZE 5
\r
18 #define PROP_N_DETAILSVIEW_FONTQUALITY 6
\r
19 #define PROP_N_AUTOSELECT_MODE 7
\r
20 #define PROP_N_SINGLECLICK_MODE 8
\r
21 #define PROP_N_USE_TWO_PANE 9
\r
22 #define PROP_N_SWITCH_WINDOW_TITLE 10
\r
23 #define PROP_N_KEEP_TITLE 11
\r
24 #define PROP_N_APP_BUTTON1 12
\r
25 #define PROP_N_APP_BUTTON2 13
\r
26 #define PROP_N_APP_BUTTON3 14
\r
27 #define PROP_N_APP_BUTTON4 15
\r
28 #define PROP_N_APP_BUTTON5 16
\r
29 #define PROP_N_CODEPAGE 17
\r
30 #define PROP_N_DISABLEEXTRAACTIONBUTTON 18 // PKTPC
\r
31 #define PROP_N_SIPSIZE_DELTA 19 // PKTPC
\r
32 #define PROP_N_HIDESTATUSBAR 20 // HPC, WIN32
\r
33 #define PROP_N_STAYTOPMOST 21 // WIN32
\r
34 #define PROP_N_HIDEREBAR 22 // WIN32
\r
35 #define PROP_N_WRAPTEXT 23
\r
36 #define PROP_N_OPENREADONLY 24
\r
37 #define PROP_N_DISABLESAVEDLG 25
\r
38 #define PROP_N_USEASSOC 26
\r
39 #define PROP_N_SAFEFILENAME 27
\r
40 #define PROP_N_TOMBO_WINSIZE3 28 // PKTPCVGA
\r
41 #define PROP_N_KEEP_LAST_OPEN 29
\r
42 #define PROP_N_USE_YAE 30
\r
43 #define PROP_N_DISABLE_YAE 31
\r
45 #define NUM_PROPS_NUM 32
\r
47 #define PROP_S_TOPDIR 0
\r
48 #define PROP_S_SELECTVIEW_FONTNAME 1
\r
49 #define PROP_S_DETAILSVIEW_FONTNAME 2
\r
50 #define PROP_S_DETAILSVIEW_DATEFORMAT1 3
\r
51 #define PROP_S_DETAILSVIEW_DATEFORMAT2 4
\r
52 #define PROP_S_DEFAULTNOTE 5
\r
53 #define PROP_S_EXTAPP1 6
\r
54 #define PROP_S_EXTAPP2 7
\r
55 #define PROP_S_WINSIZE 8
\r
56 #define PROP_S_LAST_OPEN_URI 9
\r
58 #define NUM_PROPS_STR 10
\r
60 // file encoding related defs
\r
61 #define TOMBO_CP_DEFAULT 0
\r
62 #define TOMBO_CP_UTF16LE 1200 // UTF-16LE
\r
63 #define TOMBO_CP_UTF8 65001 // UTF-8
\r
64 #define TOMBO_CP_GREEK 1253 // Greek
\r
66 ////////////////////////////////////
\r
67 // accessor generation macros
\r
68 ////////////////////////////////////
\r
70 #define STR_ACCESSOR(NAME, ATTR) \
\r
71 LPCTSTR Get##NAME##() { return pPropsStr[ATTR]; }\
\r
72 BOOL Set##NAME##(LPCTSTR pDir) { return SetStringProperty(ATTR, pDir); }
\r
74 #define NUM_ACCESSOR(NAME, ATTR) \
\r
75 DWORD Get##NAME##() { return nPropsNum[ATTR]; }\
\r
76 void Set##NAME##(DWORD n) { nPropsNum[ATTR] = n; }
\r
78 #define NUM_ACCESSOR_DECL(NAME) \
\r
79 DWORD Get##NAME##();\
\r
80 void Set##NAME##(DWORD n);
\r
84 class RepositoryImpl;
\r
85 class LocalFileRepository;
\r
87 ////////////////////////////////////
\r
89 ////////////////////////////////////
\r
98 DWORD nPropsNum[NUM_PROPS_NUM];
\r
99 LPTSTR pPropsStr[NUM_PROPS_STR];
\r
102 LPTSTR pSearchHistory;
\r
103 LPTSTR pTopDirHistory;
\r
105 #if defined(PLATFORM_HPC)
\r
106 LPCOMMANDBANDSRESTOREINFO pCmdBarInfo;
\r
109 // not persistent props
\r
110 LPTSTR pCmdlineAssignedTopDir;
\r
112 // internal helper funcs
\r
113 BOOL SetStringProperty(DWORD nPropId, LPCTSTR pValue);
\r
115 BOOL SaveToFile(File *pFile);
\r
116 BOOL LoadFromReg(BOOL *pStrict);
\r
117 BOOL LoadProperties();
\r
118 BOOL LoadDefaultProperties();
\r
120 RepositoryImpl **pRepos;
\r
121 LocalFileRepository *pDefaultRep;
\r
128 /////////////////////////////////
\r
129 // set default props
\r
131 BOOL SetDefaultROMode(BOOL) {return TRUE; }
\r
132 BOOL SetCmdLineAssignedTomboRoot(LPCTSTR p, DWORD nLen);
\r
134 /////////////////////////////////
\r
137 // Repository related
\r
138 DWORD GetNumSubRepository() { return nNumRepos; }
\r
139 // Clone RepsitoryImpl and return it
\r
140 RepositoryImpl *GetSubRepository(DWORD nIndex);
\r
144 STR_ACCESSOR(TopDir, PROP_S_TOPDIR) // TOMBO root directory
\r
146 LPCTSTR GetTomboRoot();
\r
148 NUM_ACCESSOR_DECL(KeepCaret) // whether keep caret position or not
\r
149 NUM_ACCESSOR_DECL(UseSafeFileName) // change crypted file name random
\r
150 NUM_ACCESSOR_DECL(KeepTitle) // keep file name even if headline has changed
\r
152 STR_ACCESSOR(LastOpenURI, PROP_S_LAST_OPEN_URI) // notes store folder
\r
153 NUM_ACCESSOR(KeepLastOpen, PROP_N_KEEP_LAST_OPEN) // when starting, the note last open is opened.
\r
154 STR_ACCESSOR(DefaultNote, PROP_S_DEFAULTNOTE) // use this uri when starting tombo
\r
157 STR_ACCESSOR(SelectViewFontName, PROP_S_SELECTVIEW_FONTNAME)
\r
158 NUM_ACCESSOR(SelectViewFontSize, PROP_N_SELECTVIEW_FONTSIZE) // selectview font size
\r
159 NUM_ACCESSOR(SelectViewFontQuality, PROP_N_SELECTVIEW_FONTQUALITY) // do use selectview ClearType font?
\r
160 STR_ACCESSOR(DetailsViewFontName, PROP_S_DETAILSVIEW_FONTNAME)
\r
161 NUM_ACCESSOR(DetailsViewFontSize, PROP_N_DETAILSVIEW_FONTSIZE) // editview font size
\r
162 NUM_ACCESSOR(DetailsViewFontQuality, PROP_N_DETAILSVIEW_FONTQUALITY) // do use editview ClearType font?
\r
163 HFONT SelectViewFont();
\r
164 HFONT DetailsViewFont();
\r
166 // editview related
\r
167 STR_ACCESSOR(DateFormat1, PROP_S_DETAILSVIEW_DATEFORMAT1)
\r
168 STR_ACCESSOR(DateFormat2, PROP_S_DETAILSVIEW_DATEFORMAT2)
\r
169 NUM_ACCESSOR(Tabstop, PROP_NDETAILSVIEW_TABSTOP) // tab stop
\r
170 NUM_ACCESSOR(WrapText, PROP_N_WRAPTEXT) // text wrapping on editview
\r
171 NUM_ACCESSOR(OpenReadOnly, PROP_N_OPENREADONLY) // always read only mode when open the nots.
\r
172 NUM_ACCESSOR(DisableSaveDlg, PROP_N_DISABLESAVEDLG) // disable asking save when closing notes
\r
173 NUM_ACCESSOR(CodePage, PROP_N_CODEPAGE) // Codepage selection
\r
176 NUM_ACCESSOR(PassTimeout, PROP_N_PASSTIMEOUT) // password timeout
\r
178 // MainFrame related
\r
179 NUM_ACCESSOR(AutoSelectMemo, PROP_N_AUTOSELECT_MODE) // display note when treeview selection is moving
\r
180 NUM_ACCESSOR(SingleClick, PROP_N_SINGLECLICK_MODE) // display note when clicking the tree item
\r
181 NUM_ACCESSOR(SwitchWindowTitle, PROP_N_SWITCH_WINDOW_TITLE) // is sync window text to note's name?
\r
182 NUM_ACCESSOR(UseTwoPane, PROP_N_USE_TWO_PANE) // is two pane mode?
\r
185 NUM_ACCESSOR(UseAssociation, PROP_N_USEASSOC) // use default file assosiation
\r
186 STR_ACCESSOR(ExtApp1, PROP_S_EXTAPP1)
\r
187 STR_ACCESSOR(ExtApp2, PROP_S_EXTAPP2)
\r
189 // Use YAEDIT component. On 1.x, always FALSE.
\r
190 NUM_ACCESSOR(UseYAEdit, PROP_N_USE_YAE)
\r
191 NUM_ACCESSOR(DisableYAEdit, PROP_N_DISABLE_YAE)
\r
194 NUM_ACCESSOR(AppButton1, PROP_N_APP_BUTTON1) // application buttons
\r
195 NUM_ACCESSOR(AppButton2, PROP_N_APP_BUTTON2)
\r
196 NUM_ACCESSOR(AppButton3, PROP_N_APP_BUTTON3)
\r
197 NUM_ACCESSOR(AppButton4, PROP_N_APP_BUTTON4)
\r
198 NUM_ACCESSOR(AppButton5, PROP_N_APP_BUTTON5)
\r
200 #if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)
\r
201 NUM_ACCESSOR(SipSizeDelta, PROP_N_SIPSIZE_DELTA)
\r
203 // Disable open/close notes when action button pushed
\r
204 NUM_ACCESSOR(DisableExtraActionButton, PROP_N_DISABLEEXTRAACTIONBUTTON)
\r
208 #if defined(PLATFORM_HPC) || defined(PLATFORM_WIN32)
\r
209 NUM_ACCESSOR(HideStatusBar, PROP_N_HIDESTATUSBAR) // Hide status bar
\r
210 void ToggleShowStatusBar() { nPropsNum[PROP_N_HIDESTATUSBAR] = !nPropsNum[PROP_N_HIDESTATUSBAR]; }
\r
212 DWORD GetHideStatusBar() { return TRUE; }
\r
213 void ToggleShowStatusBar() { /* nop */ }
\r
215 #if defined(PLATFORM_WIN32)
\r
216 NUM_ACCESSOR(StayTopMost, PROP_N_STAYTOPMOST) // keep tombo topmost of the window
\r
217 void ToggleStayTopMost() { nPropsNum[PROP_N_STAYTOPMOST] = !nPropsNum[PROP_N_STAYTOPMOST]; }
\r
219 NUM_ACCESSOR(HideRebar, PROP_N_HIDEREBAR) // hide rebar(toolbar)
\r
220 void ToggleShowRebar() { nPropsNum[PROP_N_HIDEREBAR] = !nPropsNum[PROP_N_HIDEREBAR]; }
\r
223 // save restore main window size
\r
224 BOOL SaveWinSize(UINT flags, UINT showCmd, LPRECT pWinRect, WORD nSelectViewWidth);
\r
225 BOOL GetWinSize(UINT *pFlags, UINT *pShowCmd, LPRECT pWinRect, LPWORD pSelectViewWidth);
\r
227 #if (defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)) && defined(FOR_VGA)
\r
228 NUM_ACCESSOR(WinSize2, PROP_N_TOMBO_WINSIZE3) // horizontal pane size
\r
231 LPCTSTR GetBookMark() { return pBookMark; }
\r
232 BOOL SetBookMark(LPCTSTR pBookMark);
\r
234 LPCTSTR GetSearchHist() { return pSearchHistory; }
\r
235 void SetSearchHist(LPTSTR pHist) { delete [] pSearchHistory; pSearchHistory = pHist; }
\r
237 LPCTSTR GetTopDirHist() { return pTopDirHistory; }
\r
238 void SetTopDirHist(LPTSTR pHist) { delete [] pTopDirHistory; pTopDirHistory = pHist; }
\r
240 #if defined(PLATFORM_HPC)
\r
241 // save commandbar position
\r
242 BOOL SetCommandbarInfo(LPCOMMANDBANDSRESTOREINFO p);
\r
243 void SetCommandbarInfoWithBuffer(LPCOMMANDBANDSRESTOREINFO p) { delete [] pCmdBarInfo; pCmdBarInfo = p; }
\r
244 BOOL GetCommandbarInfo(LPCOMMANDBANDSRESTOREINFO p, DWORD n);
\r
247 void SetNumberPropertyById(DWORD nId, DWORD nValue) { nPropsNum[nId] = nValue; }
\r
248 void SetStringPropertyWithBuffer(DWORD nId, LPTSTR pValue) { pPropsStr[nId] = pValue; }
\r
250 /////////////////////////////////
\r
253 // popup property dialog
\r
254 DWORD Popup(HINSTANCE hInst, HWND hWnd, const TomboURI *pCurrentSelectedURI);
\r
262 // check object status
\r
263 BOOL IsLoaded() { return bLoad; }
\r
264 BOOL IsNeedAskUser() { return bNeedAsk; }
\r
267 ////////////////////////////////////
\r
269 ////////////////////////////////////
\r
271 BOOL SetHistoryToComboBox(HWND hCombo, LPCTSTR pHistoryStr);
\r
272 LPTSTR GetHistoryFromComboBox(HWND hCombo, LPCTSTR pSelValue, DWORD nSave);
\r
274 ////////////////////////////////////
\r
275 // global var declaration
\r
276 ////////////////////////////////////
\r
277 extern Property g_Property;
\r
279 /////////////////////////////////////////////
\r
280 // attribute name definitions
\r
281 /////////////////////////////////////////////
\r
283 // some codes assumes this value is just '2'. check if this value is changed.
\r
284 #define NUM_COMMANDBAR 2
\r
286 /////////////////////////////////////////////
\r
287 // Code conversion related
\r
288 /////////////////////////////////////////////
\r
290 LPBYTE ConvTCharToFileEncoding(LPCTSTR p, LPDWORD pSize);
\r
292 // p is assumed terminated by '\0' if encoding is MBCS/UTF-8 and L'\0' if encoding is UTF-16
\r
293 LPTSTR ConvFileEncodingToTChar(LPBYTE p);
\r