6 #include "FarPlugin.h"
\r
7 #include "Windows/Registry.h"
\r
11 namespace NFileOperationReturnCode
\r
15 kInterruptedByUser = -1,
\r
21 namespace NEditorReturnCode
\r
26 kFileWasChanged = 1,
\r
27 kFileWasNotChanged = 2,
\r
28 kInterruptedByUser = 3
\r
32 struct CInitDialogItem
\r
34 DialogItemTypes Type;
\r
38 unsigned int Flags; //FarDialogItemFlags Flags;
\r
41 const char *DataString;
\r
42 const char *HistoryName;
\r
43 // void InitToFarDialogItem(struct FarDialogItem &anItemDest);
\r
48 PluginStartupInfo m_Data;
\r
49 CSysString m_RegistryPath;
\r
51 CSysString GetFullKeyName(const CSysString &keyName) const;
\r
52 LONG CreateRegKey(HKEY parentKey,
\r
53 const CSysString &keyName, NWindows::NRegistry::CKey &destKey) const;
\r
54 LONG OpenRegKey(HKEY parentKey,
\r
55 const CSysString &keyName, NWindows::NRegistry::CKey &destKey) const;
\r
58 void Init(const PluginStartupInfo &pluginStartupInfo,
\r
59 const CSysString &pluginNameForRegestry);
\r
60 const char *GetMsgString(int messageId);
\r
61 int ShowMessage(unsigned int flags, const char *helpTopic,
\r
62 const char **items, int numItems, int numButtons);
\r
63 int ShowMessage(const char *message);
\r
64 int ShowMessageLines(const char *message);
\r
65 int ShowMessage(int messageId);
\r
67 int ShowDialog(int X1, int Y1, int X2, int Y2,
\r
68 const char *helpTopic, struct FarDialogItem *items, int numItems);
\r
69 int ShowDialog(int sizeX, int sizeY,
\r
70 const char *helpTopic, struct FarDialogItem *items, int numItems);
\r
72 void InitDialogItems(const CInitDialogItem *srcItems,
\r
73 FarDialogItem *destItems, int numItems);
\r
75 HANDLE SaveScreen(int X1, int Y1, int X2, int Y2);
\r
76 HANDLE SaveScreen();
\r
77 void RestoreScreen(HANDLE handle);
\r
79 void SetRegKeyValue(HKEY parentKey, const CSysString &keyName,
\r
80 const LPCTSTR valueName, LPCTSTR value) const;
\r
81 void SetRegKeyValue(HKEY hRoot, const CSysString &keyName,
\r
82 const LPCTSTR valueName, UINT32 value) const;
\r
83 void SetRegKeyValue(HKEY hRoot, const CSysString &keyName,
\r
84 const LPCTSTR valueName, bool value) const;
\r
86 CSysString QueryRegKeyValue(HKEY parentKey, const CSysString &keyName,
\r
87 LPCTSTR valueName, const CSysString &valueDefault) const;
\r
89 UINT32 QueryRegKeyValue(HKEY parentKey, const CSysString &keyName,
\r
90 LPCTSTR valueName, UINT32 valueDefault) const;
\r
92 bool QueryRegKeyValue(HKEY parentKey, const CSysString &keyName,
\r
93 LPCTSTR valueName, bool valueDefault) const;
\r
95 bool Control(HANDLE plugin, int command, void *param);
\r
96 bool ControlRequestActivePanel(int command, void *param);
\r
97 bool ControlGetActivePanelInfo(PanelInfo &panelInfo);
\r
98 bool ControlSetSelection(const PanelInfo &panelInfo);
\r
99 bool ControlGetActivePanelCurrentItemInfo(PluginPanelItem &pluginPanelItem);
\r
100 bool ControlGetActivePanelSelectedOrCurrentItems(
\r
101 CObjectVector<PluginPanelItem> &pluginPanelItems);
\r
103 bool ControlClearPanelSelection();
\r
109 unsigned int flags,
\r
111 const char *aBottom,
\r
112 const char *helpTopic,
\r
115 FarMenuItem *items,
\r
118 unsigned int flags,
\r
120 const char *helpTopic,
\r
121 FarMenuItem *items,
\r
125 unsigned int flags,
\r
127 const char *helpTopic,
\r
128 const CSysStringVector &items,
\r
131 int Editor(const char *fileName, const char *title,
\r
132 int X1, int Y1, int X2, int Y2, DWORD flags, int startLine, int startChar)
\r
133 { return m_Data.Editor((char *)fileName, (char *)title, X1, Y1, X2, Y2,
\r
134 flags, startLine, startChar); }
\r
135 int Editor(const char *fileName)
\r
136 { return Editor(fileName, NULL, 0, 0, -1, -1, 0, -1, -1); }
\r
138 int Viewer(const char *fileName, const char *title,
\r
139 int X1, int Y1, int X2, int Y2, DWORD flags)
\r
140 { return m_Data.Viewer((char *)fileName, (char *)title, X1, Y1, X2, Y2, flags); }
\r
141 int Viewer(const char *fileName)
\r
142 { return Viewer(fileName, NULL, 0, 0, -1, -1, VF_NONMODAL); }
\r
146 class CScreenRestorer
\r
151 CScreenRestorer(): m_Saved(false){};
\r
152 ~CScreenRestorer();
\r
158 extern CStartupInfo g_StartupInfo;
\r
160 void PrintErrorMessage(const char *message, int code);
\r
161 void PrintErrorMessage(const char *message, const char *text);
\r
162 void PrintErrorMessage(const char *message, const wchar_t *text);
\r
164 #define MY_TRY_BEGIN try\
\r
167 #define MY_TRY_END1(x) }\
\r
168 catch(int n) { PrintErrorMessage(x, n); return; }\
\r
169 catch(const CSysString &s) { PrintErrorMessage(x, s); return; }\
\r
170 catch(const char *s) { PrintErrorMessage(x, s); return; }\
\r
171 catch(...) { g_StartupInfo.ShowMessage(x); return; }
\r
173 #define MY_TRY_END2(x, y) }\
\r
174 catch(int n) { PrintErrorMessage(x, n); return y; }\
\r
175 catch(const AString &s) { PrintErrorMessage(x, s); return y; }\
\r
176 catch(const char *s) { PrintErrorMessage(x, s); return y; }\
\r
177 catch(const UString &s) { PrintErrorMessage(x, s); return y; }\
\r
178 catch(const wchar_t *s) { PrintErrorMessage(x, s); return y; }\
\r
179 catch(...) { g_StartupInfo.ShowMessage(x); return y; }
\r
181 bool WasEscPressed();
\r
182 void ShowErrorMessage(DWORD errorCode);
\r
183 void ShowLastErrorMessage();
\r