From: <ct...@us...> - 2011-02-26 06:05:36
|
Revision: 1658 http://colorer.svn.sourceforge.net/colorer/?rev=1658&view=rev Author: ctapmex Date: 2011-02-26 06:05:28 +0000 (Sat, 26 Feb 2011) Log Message: ----------- continue to adapt the code to far3api Modified Paths: -------------- trunk/far3colorer/changelog trunk/far3colorer/far3sdk/farcolor.hpp trunk/far3colorer/far3sdk/farkeys.hpp trunk/far3colorer/far3sdk/plugin.hpp trunk/far3colorer/src/FarEditor.cpp trunk/far3colorer/src/FarEditorSet.cpp trunk/far3colorer/src/FarEditorSet.h trunk/far3colorer/src/pcolorer.cpp trunk/far3colorer/src/pcolorer.h Removed Paths: ------------- trunk/far3colorer/src/registry_wide.cpp trunk/far3colorer/src/registry_wide.h Modified: trunk/far3colorer/changelog =================================================================== --- trunk/far3colorer/changelog 2011-02-24 12:15:01 UTC (rev 1657) +++ trunk/far3colorer/changelog 2011-02-26 06:05:28 UTC (rev 1658) @@ -1,5 +1,12 @@ $Revision$ $Author$ $Date$ + 1. обновлен far3sdk + 2. продолжаем адаптацию к новому API + - читаем настройки и сохраняем через far api (пока кроме hrc настроек) + - исправление вызова EditorControl , теперь колорер работает в редакторе + +#Revision: 1657 + Author: ctapmex Date: 2011-02-24 17:15:01 +0500 (Чт, 24 фев 2011) 1. адаптация к нововму API - исправление вызова функций, добавлены новые экспортируеммые функции. Часть кода пока закомментировано. плагин собирается, с фаром запускается. но не более. Modified: trunk/far3colorer/far3sdk/farcolor.hpp =================================================================== --- trunk/far3colorer/far3sdk/farcolor.hpp 2011-02-24 12:15:01 UTC (rev 1657) +++ trunk/far3colorer/far3sdk/farcolor.hpp 2011-02-26 06:05:28 UTC (rev 1658) @@ -4,7 +4,7 @@ /* farcolor.hpp - Colors Index for FAR Manager 3.0 build 1888 + Colors Index for FAR Manager 3.0 build 1893 HKCU\Software\Far Manager\Colors\CurrentPalette */ Modified: trunk/far3colorer/far3sdk/farkeys.hpp =================================================================== --- trunk/far3colorer/far3sdk/farkeys.hpp 2011-02-24 12:15:01 UTC (rev 1657) +++ trunk/far3colorer/far3sdk/farkeys.hpp 2011-02-26 06:05:28 UTC (rev 1658) @@ -4,7 +4,7 @@ /* farkeys.hpp - Inside KeyName for Far Manager 3.0 build 1888 + Inside KeyName for Far Manager 3.0 build 1893 */ /* Modified: trunk/far3colorer/far3sdk/plugin.hpp =================================================================== --- trunk/far3colorer/far3sdk/plugin.hpp 2011-02-24 12:15:01 UTC (rev 1657) +++ trunk/far3colorer/far3sdk/plugin.hpp 2011-02-26 06:05:28 UTC (rev 1658) @@ -5,7 +5,7 @@ /* plugin.hpp - Plugin API for Far Manager 3.0 build 1888 + Plugin API for Far Manager 3.0 build 1893 */ /* @@ -42,7 +42,7 @@ #define FARMANAGERVERSION_MAJOR 3 #define FARMANAGERVERSION_MINOR 0 -#define FARMANAGERVERSION_BUILD 1888 +#define FARMANAGERVERSION_BUILD 1893 #ifndef RC_INVOKED @@ -50,7 +50,7 @@ #define FARMANAGERVERSION MAKEFARVERSION(FARMANAGERVERSION_MAJOR,FARMANAGERVERSION_MINOR,FARMANAGERVERSION_BUILD) -#include<windows.h> +#include <windows.h> #undef DefDlgProc @@ -648,7 +648,7 @@ PTYPE_INFOPANEL }; -enum OPENPLUGININFO_SORTMODES +enum OPENPANELINFO_SORTMODES { SM_DEFAULT = 0, SM_UNSORTED = 1, @@ -680,7 +680,7 @@ int CurrentItem; int TopPanelItem; int ViewMode; - OPENPLUGININFO_SORTMODES SortMode; + OPENPANELINFO_SORTMODES SortMode; PANELINFOFLAGS Flags; DWORD Reserved; }; @@ -704,7 +704,7 @@ enum FILE_CONTROL_COMMANDS { - FCTL_CLOSEPLUGIN, + FCTL_CLOSEPANEL, FCTL_GETPANELINFO, FCTL_UPDATEPANEL, FCTL_REDRAWPANEL, @@ -760,7 +760,7 @@ typedef int (WINAPI *FARAPIGETPLUGINDIRLIST)( const GUID* PluginId, - HANDLE hPlugin, + HANDLE hPanel, const wchar_t *Dir, struct PluginPanelItem **pPanelItem, int *pItemsNumber @@ -1641,7 +1641,7 @@ }; typedef int (WINAPI *FARAPICONTROL)( - HANDLE hPlugin, + HANDLE hPanel, FILE_CONTROL_COMMANDS Command, int Param1, INT_PTR Param2 @@ -1981,8 +1981,8 @@ PANELMODE_FLAGS Flags; }; -typedef unsigned __int64 OPENPLUGININFO_FLAGS; -static const OPENPLUGININFO_FLAGS +typedef unsigned __int64 OPENPANELINFO_FLAGS; +static const OPENPANELINFO_FLAGS OPIF_NONE = 0, OPIF_DISABLEFILTER = 0x0000000000000001ULL, OPIF_DISABLESORTGROUPS = 0x0000000000000002ULL, @@ -2027,10 +2027,10 @@ OPM_QUICKVIEW =0x0000000000000040ULL, OPM_PGDN =0x0000000000000080ULL; -struct OpenPluginInfo +struct OpenPanelInfo { size_t StructSize; - OPENPLUGININFO_FLAGS Flags; + OPENPANELINFO_FLAGS Flags; const wchar_t *HostFile; const wchar_t *CurDir; const wchar_t *Format; @@ -2042,15 +2042,24 @@ const struct PanelMode *PanelModesArray; int PanelModesNumber; int StartPanelMode; - OPENPLUGININFO_SORTMODES StartSortMode; + OPENPANELINFO_SORTMODES StartSortMode; int StartSortOrder; const struct KeyBarTitles *KeyBar; const wchar_t *ShortcutData; unsigned __int64 FreeSize; }; -enum OPENPLUGIN_OPENFROM +struct AnalyseData { + size_t StructSize; + const wchar_t *FileName; + void *Buffer; + size_t BufferSize; + OPERATION_MODES OpMode; +}; + +enum OPENPANEL_OPENFROM +{ OPEN_FROM_MASK = 0x000000FF, OPEN_LEFTDISKMENU = 0, @@ -2091,33 +2100,33 @@ #endif // Exported Functions - void WINAPI ClosePluginW(HANDLE hPlugin); - int WINAPI CompareW(HANDLE hPlugin,const struct PluginPanelItem *Item1,const struct PluginPanelItem *Item2,OPENPLUGININFO_SORTMODES Mode); + int WINAPI AnalyseW(const struct AnalyseData *Data); + void WINAPI ClosePanelW(HANDLE hPanel); + int WINAPI CompareW(HANDLE hPanel,const struct PluginPanelItem *Item1,const struct PluginPanelItem *Item2,OPENPANELINFO_SORTMODES Mode); int WINAPI ConfigureW(const GUID* Guid); - int WINAPI DeleteFilesW(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber,OPERATION_MODES OpMode); + int WINAPI DeleteFilesW(HANDLE hPanel,struct PluginPanelItem *PanelItem,int ItemsNumber,OPERATION_MODES OpMode); void WINAPI ExitFARW(void); - void WINAPI FreeFindDataW(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber); - void WINAPI FreeVirtualFindDataW(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber); - int WINAPI GetFilesW(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber,int Move,const wchar_t **DestPath,OPERATION_MODES OpMode); - int WINAPI GetFindDataW(HANDLE hPlugin,struct PluginPanelItem **pPanelItem,int *pItemsNumber,OPERATION_MODES OpMode); + void WINAPI FreeFindDataW(HANDLE hPanel,struct PluginPanelItem *PanelItem,int ItemsNumber); + void WINAPI FreeVirtualFindDataW(HANDLE hPanel,struct PluginPanelItem *PanelItem,int ItemsNumber); + int WINAPI GetFilesW(HANDLE hPanel,struct PluginPanelItem *PanelItem,int ItemsNumber,int Move,const wchar_t **DestPath,OPERATION_MODES OpMode); + int WINAPI GetFindDataW(HANDLE hPanel,struct PluginPanelItem **pPanelItem,int *pItemsNumber,OPERATION_MODES OpMode); void WINAPI GetGlobalInfoW(struct GlobalInfo *Info); - void WINAPI GetOpenPluginInfoW(HANDLE hPlugin,struct OpenPluginInfo *Info); + void WINAPI GetOpenPanelInfoW(HANDLE hPanel,struct OpenPanelInfo *Info); void WINAPI GetPluginInfoW(struct PluginInfo *Info); - int WINAPI GetVirtualFindDataW(HANDLE hPlugin,struct PluginPanelItem **pPanelItem,int *pItemsNumber,const wchar_t *Path); - int WINAPI MakeDirectoryW(HANDLE hPlugin,const wchar_t **Name,OPERATION_MODES OpMode); - HANDLE WINAPI OpenFilePluginW(const wchar_t *Name,const unsigned char *Data,int DataSize,OPERATION_MODES OpMode); - HANDLE WINAPI OpenPluginW(OPENPLUGIN_OPENFROM OpenFrom,const GUID* Guid,INT_PTR Data); + int WINAPI GetVirtualFindDataW(HANDLE hPanel,struct PluginPanelItem **pPanelItem,int *pItemsNumber,const wchar_t *Path); + int WINAPI MakeDirectoryW(HANDLE hPanel,const wchar_t **Name,OPERATION_MODES OpMode); + HANDLE WINAPI OpenPanelW(OPENPANEL_OPENFROM OpenFrom,const GUID* Guid,INT_PTR Data); int WINAPI ProcessDialogEventW(int Event,void *Param); int WINAPI ProcessEditorEventW(int Event,void *Param); int WINAPI ProcessEditorInputW(const INPUT_RECORD *Rec); - int WINAPI ProcessEventW(HANDLE hPlugin,int Event,void *Param); - int WINAPI ProcessHostFileW(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber,OPERATION_MODES OpMode); - int WINAPI ProcessKeyW(HANDLE hPlugin,const INPUT_RECORD *Rec); + int WINAPI ProcessEventW(HANDLE hPanel,int Event,void *Param); + int WINAPI ProcessHostFileW(HANDLE hPanel,struct PluginPanelItem *PanelItem,int ItemsNumber,OPERATION_MODES OpMode); + int WINAPI ProcessKeyW(HANDLE hPanel,const INPUT_RECORD *Rec); int WINAPI ProcessSynchroEventW(int Event,void *Param); int WINAPI ProcessViewerEventW(int Event,void *Param); - int WINAPI PutFilesW(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber,int Move,const wchar_t *SrcPath,OPERATION_MODES OpMode); - int WINAPI SetDirectoryW(HANDLE hPlugin,const wchar_t *Dir,OPERATION_MODES OpMode); - int WINAPI SetFindListW(HANDLE hPlugin,const struct PluginPanelItem *PanelItem,int ItemsNumber); + int WINAPI PutFilesW(HANDLE hPanel,struct PluginPanelItem *PanelItem,int ItemsNumber,int Move,const wchar_t *SrcPath,OPERATION_MODES OpMode); + int WINAPI SetDirectoryW(HANDLE hPanel,const wchar_t *Dir,OPERATION_MODES OpMode); + int WINAPI SetFindListW(HANDLE hPanel,const struct PluginPanelItem *PanelItem,int ItemsNumber); void WINAPI SetStartupInfoW(const struct PluginStartupInfo *Info); #ifdef __cplusplus Modified: trunk/far3colorer/src/FarEditor.cpp =================================================================== --- trunk/far3colorer/src/FarEditor.cpp 2011-02-24 12:15:01 UTC (rev 1657) +++ trunk/far3colorer/src/FarEditor.cpp 2011-02-26 06:05:28 UTC (rev 1658) @@ -5,7 +5,7 @@ parserFactory = pf; baseEditor = new BaseEditor(parserFactory, this); this->info = info; - info->EditorControl(0, ECTL_GETINFO, NULL, (INT_PTR)&ei); + info->EditorControl(-1, ECTL_GETINFO, NULL, (INT_PTR)&ei); cursorRegion = NULL; prevLinePosition = 0; blockTopPosition = -1; @@ -60,7 +60,7 @@ es.StringNumber = lno; es.StringText = NULL; - if (info->EditorControl(0, ECTL_GETSTRING, NULL, (INT_PTR)&es)){ + if (info->EditorControl(-1, ECTL_GETSTRING, NULL, (INT_PTR)&es)){ len = es.StringLength; } @@ -266,7 +266,7 @@ } }; - info->EditorControl(0, ECTL_SETPOSITION, NULL, (INT_PTR)&esp); + info->EditorControl(-1, ECTL_SETPOSITION, NULL, (INT_PTR)&esp); baseEditor->releasePairMatch(pm); } @@ -301,7 +301,7 @@ es.BlockHeight = Y2 - Y1 + 1; es.BlockWidth = X2 - X1 + 1; - info->EditorControl(0, ECTL_SELECT, NULL, (INT_PTR)&es); + info->EditorControl(-1, ECTL_SELECT, NULL, (INT_PTR)&es); baseEditor->releasePairMatch(pm); } @@ -337,7 +337,7 @@ es.BlockHeight = Y2 - Y1 + 1; es.BlockWidth = X2 - X1 + 1; - info->EditorControl(0, ECTL_SELECT, NULL, (INT_PTR)&es); + info->EditorControl(-1, ECTL_SELECT, NULL, (INT_PTR)&es); baseEditor->releasePairMatch(pm); } @@ -348,7 +348,7 @@ EditorGetString egs; enterHandler(); egs.StringNumber = ei.CurLine; - info->EditorControl(0, ECTL_GETSTRING, NULL, (INT_PTR)&egs); + info->EditorControl(-1, ECTL_GETSTRING, NULL, (INT_PTR)&egs); if (cursorRegion != NULL){ int end = cursorRegion->end; @@ -362,7 +362,7 @@ es.BlockStartPos = cursorRegion->start; es.BlockHeight = 1; es.BlockWidth = end - cursorRegion->start; - info->EditorControl(0, ECTL_SELECT, NULL, (INT_PTR)&es); + info->EditorControl(-1, ECTL_SELECT, NULL, (INT_PTR)&es); }; } } @@ -450,9 +450,9 @@ esp.TopScreenLine = 0; } - info->EditorControl(0, ECTL_SETPOSITION, NULL, (INT_PTR)&esp); - info->EditorControl(0, ECTL_REDRAW, NULL, NULL); - info->EditorControl(0, ECTL_GETINFO, NULL, (INT_PTR)&ei); + info->EditorControl(-1, ECTL_SETPOSITION, NULL, (INT_PTR)&esp); + info->EditorControl(-1, ECTL_REDRAW, NULL, NULL); + info->EditorControl(-1, ECTL_GETINFO, NULL, (INT_PTR)&ei); return; }; @@ -477,7 +477,7 @@ idleCount = 10; } baseEditor->idleJob(idleCount*10); - info->EditorControl(0, ECTL_REDRAW, NULL, NULL); + info->EditorControl(-1, ECTL_REDRAW, NULL, NULL); } } else @@ -528,7 +528,7 @@ EditorConvertPos ecp, ecp_cl; ecp.StringNumber = -1; ecp.SrcPos = ei.CurPos; - info->EditorControl(0, ECTL_REALTOTAB, NULL, (INT_PTR)&ecp); + info->EditorControl(-1, ECTL_REALTOTAB, NULL, (INT_PTR)&ecp); delete cursorRegion; cursorRegion = NULL; @@ -551,7 +551,7 @@ addFARColor(lno, -1, 0, color()); EditorGetString egs; egs.StringNumber = lno; - info->EditorControl(0, ECTL_GETSTRING, NULL, (INT_PTR)&egs); + info->EditorControl(-1, ECTL_GETSTRING, NULL, (INT_PTR)&egs); int llen = egs.StringLength; // fills back @@ -570,7 +570,7 @@ if (showVerticalCross && !TrueMod){ ecp_cl.StringNumber = lno; ecp_cl.SrcPos = ecp.DestPos; - info->EditorControl(0, ECTL_TABTOREAL, NULL, (INT_PTR)&ecp_cl); + info->EditorControl(-1, ECTL_TABTOREAL, NULL, (INT_PTR)&ecp_cl); vertCrossColor.concolor |= 0x10000; addFARColor(lno, ecp_cl.DestPos, ecp_cl.DestPos+1, vertCrossColor); }; @@ -635,7 +635,7 @@ ecp_cl.StringNumber = lno; ecp_cl.SrcPos = ecp.DestPos; - info->EditorControl(0, ECTL_TABTOREAL, NULL, (INT_PTR)&ecp_cl); + info->EditorControl(-1, ECTL_TABTOREAL, NULL, (INT_PTR)&ecp_cl); col.concolor|=0x10000; addFARColor(lno, ecp_cl.DestPos, ecp_cl.DestPos+1, col); vertCrossDone = true; @@ -646,7 +646,7 @@ if (!TrueMod && showVerticalCross && !vertCrossDone){ ecp_cl.StringNumber = lno; ecp_cl.SrcPos = ecp.DestPos; - info->EditorControl(0, ECTL_TABTOREAL ,NULL, (INT_PTR)&ecp_cl); + info->EditorControl(-1, ECTL_TABTOREAL ,NULL, (INT_PTR)&ecp_cl); vertCrossColor.concolor |= 0x10000; addFARColor(lno, ecp_cl.DestPos, ecp_cl.DestPos+1, vertCrossColor); }; @@ -708,7 +708,7 @@ addFARColor(pm->eline, pm->end->start, pm->end->end, col); ecp.StringNumber = pm->eline; ecp.SrcPos = ecp.DestPos; - info->EditorControl(0, ECTL_TABTOREAL, NULL, (INT_PTR)&ecp); + info->EditorControl(-1, ECTL_TABTOREAL, NULL, (INT_PTR)&ecp); // if (!TrueMod && showVerticalCross && pm->end->start <= ecp.DestPos && ecp.DestPos < pm->end->end){ @@ -733,7 +733,7 @@ if (param != EEREDRAW_ALL){ inRedraw = true; - info->EditorControl(0, ECTL_REDRAW, NULL, (INT_PTR)NULL); + info->EditorControl(-1, ECTL_REDRAW, NULL, (INT_PTR)NULL); inRedraw = false; }; @@ -943,7 +943,7 @@ // esp.TopScreenLine = 0; // } - // info->EditorControl(0, ECTL_SETPOSITION, NULL, (INT_PTR)&esp); + // info->EditorControl(-1, ECTL_SETPOSITION, NULL, (INT_PTR)&esp); // stopMenu = true; // moved = true; // break; @@ -993,9 +993,9 @@ // esp.TopScreenLine = 0; // } - // info->EditorControl(0, ECTL_SETPOSITION, NULL, (INT_PTR)&esp); - // info->EditorControl(0, ECTL_REDRAW, NULL, NULL); - // info->EditorControl(0, ECTL_GETINFO, NULL, (INT_PTR)&ei); + // info->EditorControl(-1, ECTL_SETPOSITION, NULL, (INT_PTR)&esp); + // info->EditorControl(-1, ECTL_REDRAW, NULL, NULL); + // info->EditorControl(-1, ECTL_GETINFO, NULL, (INT_PTR)&ei); // break; // } // case 6: // ctrl-down @@ -1021,9 +1021,9 @@ // esp.TopScreenLine = 0; // } - // info->EditorControl(0, ECTL_SETPOSITION, NULL, (INT_PTR)&esp); - // info->EditorControl(0, ECTL_REDRAW, NULL, NULL); - // info->EditorControl(0, ECTL_GETINFO, NULL, (INT_PTR)&ei); + // info->EditorControl(-1, ECTL_SETPOSITION, NULL, (INT_PTR)&esp); + // info->EditorControl(-1, ECTL_REDRAW, NULL, NULL); + // info->EditorControl(-1, ECTL_GETINFO, NULL, (INT_PTR)&ei); // break; // } // case 7: // ctrl-left @@ -1051,7 +1051,7 @@ // case 9: // ctrl-return // { // OutlineItem *item = *(OutlineItem**)(&menu[sel].Text[124]); - // info->EditorControl(0, ECTL_INSERTTEXT, NULL, (INT_PTR)item->token->getWChars()); + // info->EditorControl(-1, ECTL_INSERTTEXT, NULL, (INT_PTR)item->token->getWChars()); // stopMenu = true; // break; // } @@ -1111,7 +1111,7 @@ // esp.TopScreenLine = ei.TopScreenLine; // esp.LeftPos = ei.LeftPos; // esp.Overtype = ei.Overtype; - // info->EditorControl(0, ECTL_SETPOSITION, NULL, (INT_PTR)&esp); + // info->EditorControl(-1, ECTL_SETPOSITION, NULL, (INT_PTR)&esp); //} //if (items_num == 0){ @@ -1122,7 +1122,7 @@ void FarEditor::enterHandler() { - info->EditorControl(0, ECTL_GETINFO, NULL, (INT_PTR)&ei); + info->EditorControl(-1, ECTL_GETINFO, NULL, (INT_PTR)&ei); ret_strNumber = -1; } @@ -1201,7 +1201,7 @@ ec.EndPos = e-1; ec.Color = col.concolor; CLR_TRACE("FarEditor", "line:%d, %d-%d, color:%x", lno, s, e, col); - info->EditorControl(0, ECTL_ADDCOLOR, NULL, (INT_PTR)&ec); + info->EditorControl(-1, ECTL_ADDCOLOR, NULL, (INT_PTR)&ec); CLR_TRACE("FarEditor", "line %d: %d-%d: color=%x", lno, s, e, col); } @@ -1215,7 +1215,7 @@ ea.StartPos = s; ea.EndPos = e-1; memcpy(ea.annotation_raw, ai.raw, sizeof(ai.raw)); - info->EditorControl(0, ECTL_ADDANNOTATION, NULL, (INT_PTR)&ea); + info->EditorControl(-1, ECTL_ADDANNOTATION, NULL, (INT_PTR)&ea); } const wchar_t *FarEditor::GetMsg(int msg) @@ -1232,7 +1232,7 @@ for (int i=0; i<ei.TotalLines; i++){ EditorGetString egs; egs.StringNumber=i; - info->EditorControl(0, ECTL_GETSTRING, NULL, (INT_PTR)&egs); + info->EditorControl(-1, ECTL_GETSTRING, NULL, (INT_PTR)&egs); if (ei.LeftPos + ei.WindowSizeX>egs.StringLength){ addFARColor(i,0,ei.LeftPos + ei.WindowSizeX,col); Modified: trunk/far3colorer/src/FarEditorSet.cpp =================================================================== --- trunk/far3colorer/src/FarEditorSet.cpp 2011-02-24 12:15:01 UTC (rev 1657) +++ trunk/far3colorer/src/FarEditorSet.cpp 2011-02-26 06:05:28 UTC (rev 1658) @@ -7,17 +7,75 @@ return _vsnwprintf(string, count, format, arglist); } -FarEditorSet::FarEditorSet() +DWORD FarEditorSet::rGetValueDw(size_t Root, const wchar_t *name, DWORD DefaultValue) { - wchar_t key[255]; - //v3// _snwprintf(key,255, L"%s\\colorer", Info.RootKey); + FarSettingsItem fsi; + fsi.Root = Root; + fsi.Type = FST_QWORD; + fsi.Name = name; - DWORD res =rOpenKey(HKEY_CURRENT_USER, key, hPluginRegistry); - if (res == REG_CREATED_NEW_KEY){ - SetDefaultSettings(); + if (Info.SettingsControl(farSettingHandle, SCTL_GET, NULL, (INT_PTR)&fsi)){ + return fsi.Number; } + else{ + return DefaultValue; + } +} - rEnabled = !!rGetValueDw(hPluginRegistry, cRegEnabled, cEnabledDefault); +const wchar_t *FarEditorSet::rGetValueSz(size_t Root, const wchar_t *name, const wchar_t *DefaultValue) +{ + FarSettingsItem fsi; + fsi.Root = Root; + fsi.Type = FST_STRING; + fsi.Name = name; + + if (Info.SettingsControl(farSettingHandle, SCTL_GET, NULL, (INT_PTR)&fsi)){ + return fsi.String; + } + else{ + return DefaultValue; + } + +} + +bool FarEditorSet::rSetValueDw(size_t Root, const wchar_t *name, DWORD val) +{ + FarSettingsItem fsi; + fsi.Root = Root; + fsi.Type = FST_QWORD; + fsi.Name = name; + fsi.Number = val; + + return !!Info.SettingsControl(farSettingHandle, SCTL_SET, NULL, (INT_PTR)&fsi); + +} + +bool FarEditorSet::rSetValueSz(size_t Root, const wchar_t *name, const wchar_t *val) +{ + FarSettingsItem fsi; + fsi.Root = Root; + fsi.Type = FST_STRING; + fsi.Name = name; + fsi.String = val; + + return !!Info.SettingsControl(farSettingHandle, SCTL_SET, NULL, (INT_PTR)&fsi); + +} + +FarEditorSet::FarEditorSet() +{ + + FarSettingsCreate fsc; + fsc.Guid = MainGuid; + fsc.StructSize = sizeof(FarSettingsCreate); + if (Info.SettingsControl(INVALID_HANDLE_VALUE, SCTL_CREATE, NULL, (INT_PTR)&fsc)){ + farSettingHandle = fsc.Handle; + } + else{ + //error + } + + rEnabled = !!rGetValueDw(0, cRegEnabled, cEnabledDefault); parserFactory = NULL; regionMapper = NULL; hrcParser = NULL; @@ -39,7 +97,7 @@ FarEditorSet::~FarEditorSet() { dropAllEditors(false); - RegCloseKey(hPluginRegistry); + Info.SettingsControl(farSettingHandle, SCTL_FREE, NULL, NULL); delete sHrdName; delete sHrdNameTm; delete sCatalogPath; @@ -909,18 +967,18 @@ } EditorInfo ei; - Info.EditorControl(0, ECTL_GETINFO, NULL, (INT_PTR)&ei); + Info.EditorControl(-1, ECTL_GETINFO, NULL, (INT_PTR)&ei); FarEditor *editor = new FarEditor(&Info, parserFactory); farEditorInstances.put(&SString(ei.EditorID), editor); LPWSTR FileName=NULL; - size_t FileNameSize=Info.EditorControl(0, ECTL_GETFILENAME, NULL, NULL); + size_t FileNameSize=Info.EditorControl(-1, ECTL_GETFILENAME, NULL, NULL); if (FileNameSize){ FileName=new wchar_t[FileNameSize]; if (FileName){ - Info.EditorControl(0, ECTL_GETFILENAME, NULL, (INT_PTR)FileName); + Info.EditorControl(-1, ECTL_GETFILENAME, NULL, (INT_PTR)FileName); } } @@ -947,7 +1005,7 @@ FarEditor *FarEditorSet::getCurrentEditor() { EditorInfo ei; - Info.EditorControl(0, ECTL_GETINFO, NULL, (INT_PTR)&ei); + Info.EditorControl(-1, ECTL_GETINFO, NULL, (INT_PTR)&ei); FarEditor *editor = farEditorInstances.get(&SString(ei.EditorID)); return editor; @@ -961,14 +1019,14 @@ void FarEditorSet::enableColorer(bool fromEditor) { rEnabled = true; - rSetValue(hPluginRegistry, cRegEnabled, rEnabled); + rSetValueDw(0, cRegEnabled, rEnabled); ReloadBase(); } void FarEditorSet::disableColorer() { rEnabled = false; - rSetValue(hPluginRegistry, cRegEnabled, rEnabled); + rSetValueDw(0, cRegEnabled, rEnabled); dropCurrentEditor(true); @@ -992,7 +1050,7 @@ void FarEditorSet::dropCurrentEditor(bool clean) { EditorInfo ei; - Info.EditorControl(0, ECTL_GETINFO, NULL, (INT_PTR)&ei); + Info.EditorControl(-1, ECTL_GETINFO, NULL, (INT_PTR)&ei); FarEditor *editor = farEditorInstances.get(&SString(ei.EditorID)); if (editor){ if (clean){ @@ -1001,7 +1059,7 @@ farEditorInstances.remove(&SString(ei.EditorID)); delete editor; } - Info.EditorControl(0, ECTL_REDRAW, NULL, NULL); + Info.EditorControl(-1, ECTL_REDRAW, NULL, NULL); } void FarEditorSet::dropAllEditors(bool clean) @@ -1019,11 +1077,11 @@ void FarEditorSet::ReadSettings() { - wchar_t *hrdName = rGetValueSz(hPluginRegistry, cRegHrdName, cHrdNameDefault); - wchar_t *hrdNameTm = rGetValueSz(hPluginRegistry, cRegHrdNameTm, cHrdNameTmDefault); - wchar_t *catalogPath = rGetValueSz(hPluginRegistry, cRegCatalog, cCatalogDefault); - wchar_t *userHrdPath = rGetValueSz(hPluginRegistry, cRegUserHrdPath, cUserHrdPathDefault); - wchar_t *userHrcPath = rGetValueSz(hPluginRegistry, cRegUserHrcPath, cUserHrcPathDefault); + const wchar_t *hrdName = rGetValueSz(0, cRegHrdName, cHrdNameDefault); + const wchar_t *hrdNameTm = rGetValueSz(0, cRegHrdNameTm, cHrdNameTmDefault); + const wchar_t *catalogPath = rGetValueSz(0, cRegCatalog, cCatalogDefault); + const wchar_t *userHrdPath = rGetValueSz(0, cRegUserHrdPath, cUserHrdPathDefault); + const wchar_t *userHrcPath = rGetValueSz(0, cRegUserHrcPath, cUserHrcPathDefault); delete sHrdName; delete sHrdNameTm; @@ -1041,13 +1099,13 @@ sUserHrcPath = NULL; sUserHrcPathExp = NULL; - sHrdName = new SString(hrdName); - sHrdNameTm = new SString(hrdNameTm); - sCatalogPath = new SString(catalogPath); + sHrdName = new SString(DString(hrdName)); + sHrdNameTm = new SString(DString(hrdNameTm)); + sCatalogPath = new SString(DString(catalogPath)); sCatalogPathExp = PathToFullS(catalogPath,false); - sUserHrdPath = new SString(userHrdPath); + sUserHrdPath = new SString(DString(userHrdPath)); sUserHrdPathExp = PathToFullS(userHrdPath,false); - sUserHrcPath = new SString(userHrcPath); + sUserHrcPath = new SString(DString(userHrcPath)); sUserHrcPathExp = PathToFullS(userHrcPath,false); delete[] hrdName; @@ -1057,45 +1115,30 @@ delete[] userHrcPath; // two '!' disable "Compiler Warning (level 3) C4800" and slightly faster code - rEnabled = !!rGetValueDw(hPluginRegistry, cRegEnabled, cEnabledDefault); - drawCross = rGetValueDw(hPluginRegistry, cRegCrossDraw, cCrossDrawDefault); - drawPairs = !!rGetValueDw(hPluginRegistry, cRegPairsDraw, cPairsDrawDefault); - drawSyntax = !!rGetValueDw(hPluginRegistry, cRegSyntaxDraw, cSyntaxDrawDefault); - oldOutline = !!rGetValueDw(hPluginRegistry, cRegOldOutLine, cOldOutLineDefault); - TrueModOn = !!rGetValueDw(hPluginRegistry, cRegTrueMod, cTrueMod); - ChangeBgEditor = !!rGetValueDw(hPluginRegistry, cRegChangeBgEditor, cChangeBgEditor); + rEnabled = !!rGetValueDw(0, cRegEnabled, cEnabledDefault); + drawCross = rGetValueDw(0, cRegCrossDraw, cCrossDrawDefault); + drawPairs = !!rGetValueDw(0, cRegPairsDraw, cPairsDrawDefault); + drawSyntax = !!rGetValueDw(0, cRegSyntaxDraw, cSyntaxDrawDefault); + oldOutline = !!rGetValueDw(0, cRegOldOutLine, cOldOutLineDefault); + TrueModOn = !!rGetValueDw(0, cRegTrueMod, cTrueMod); + ChangeBgEditor = !!rGetValueDw(0, cRegChangeBgEditor, cChangeBgEditor); } -void FarEditorSet::SetDefaultSettings() -{ - rSetValue(hPluginRegistry, cRegEnabled, cEnabledDefault); - rSetValue(hPluginRegistry, cRegHrdName, REG_SZ, cHrdNameDefault, static_cast<DWORD>(sizeof(wchar_t)*(wcslen(cHrdNameDefault)+1))); - rSetValue(hPluginRegistry, cRegHrdNameTm, REG_SZ, cHrdNameTmDefault, static_cast<DWORD>(sizeof(wchar_t)*(wcslen(cHrdNameTmDefault)+1))); - rSetValue(hPluginRegistry, cRegCatalog, REG_SZ, cCatalogDefault, static_cast<DWORD>(sizeof(wchar_t)*(wcslen(cCatalogDefault)+1))); - rSetValue(hPluginRegistry, cRegCrossDraw, cCrossDrawDefault); - rSetValue(hPluginRegistry, cRegPairsDraw, cPairsDrawDefault); - rSetValue(hPluginRegistry, cRegSyntaxDraw, cSyntaxDrawDefault); - rSetValue(hPluginRegistry, cRegOldOutLine, cOldOutLineDefault); - rSetValue(hPluginRegistry, cRegTrueMod, cTrueMod); - rSetValue(hPluginRegistry, cRegChangeBgEditor, cChangeBgEditor); - rSetValue(hPluginRegistry, cRegUserHrdPath, REG_SZ, cUserHrdPathDefault, static_cast<DWORD>(sizeof(wchar_t)*(wcslen(cUserHrdPathDefault)+1))); - rSetValue(hPluginRegistry, cRegUserHrcPath, REG_SZ, cUserHrcPathDefault, static_cast<DWORD>(sizeof(wchar_t)*(wcslen(cUserHrcPathDefault)+1))); -} void FarEditorSet::SaveSettings() { - rSetValue(hPluginRegistry, cRegEnabled, rEnabled); - rSetValue(hPluginRegistry, cRegHrdName, REG_SZ, sHrdName->getWChars(), sizeof(wchar_t)*(sHrdName->length()+1)); - rSetValue(hPluginRegistry, cRegHrdNameTm, REG_SZ, sHrdNameTm->getWChars(), sizeof(wchar_t)*(sHrdNameTm->length()+1)); - rSetValue(hPluginRegistry, cRegCatalog, REG_SZ, sCatalogPath->getWChars(), sizeof(wchar_t)*(sCatalogPath->length()+1)); - rSetValue(hPluginRegistry, cRegCrossDraw, drawCross); - rSetValue(hPluginRegistry, cRegPairsDraw, drawPairs); - rSetValue(hPluginRegistry, cRegSyntaxDraw, drawSyntax); - rSetValue(hPluginRegistry, cRegOldOutLine, oldOutline); - rSetValue(hPluginRegistry, cRegTrueMod, TrueModOn); - rSetValue(hPluginRegistry, cRegChangeBgEditor, ChangeBgEditor); - rSetValue(hPluginRegistry, cRegUserHrdPath, REG_SZ, sUserHrdPath->getWChars(), sizeof(wchar_t)*(sUserHrdPath->length()+1)); - rSetValue(hPluginRegistry, cRegUserHrcPath, REG_SZ, sUserHrcPath->getWChars(), sizeof(wchar_t)*(sUserHrcPath->length()+1)); + rSetValueDw(0, cRegEnabled, rEnabled); + rSetValueSz(0, cRegHrdName, sHrdName->getWChars()); + rSetValueSz(0, cRegHrdNameTm, sHrdNameTm->getWChars()); + rSetValueSz(0, cRegCatalog, sCatalogPath->getWChars()); + rSetValueDw(0, cRegCrossDraw, drawCross); + rSetValueDw(0, cRegPairsDraw, drawPairs); + rSetValueDw(0, cRegSyntaxDraw, drawSyntax); + rSetValueDw(0, cRegOldOutLine, oldOutline); + rSetValueDw(0, cRegTrueMod, TrueModOn); + rSetValueDw(0, cRegChangeBgEditor, ChangeBgEditor); + rSetValueSz(0, cRegUserHrdPath, sUserHrdPath->getWChars()); + rSetValueSz(0, cRegUserHrcPath, sUserHrcPath->getWChars()); } bool FarEditorSet::checkConEmu() @@ -1116,7 +1159,7 @@ ea.StringNumber = 1; ea.StartPos = 1; ea.EndPos = 2; - return !!Info.EditorControl(0, ECTL_ADDANNOTATION, NULL, (INT_PTR)&ea); + return !!Info.EditorControl(-1, ECTL_ADDANNOTATION, NULL, (INT_PTR)&ea); } bool FarEditorSet::checkConsoleAnnotationAvailable() Modified: trunk/far3colorer/src/FarEditorSet.h =================================================================== --- trunk/far3colorer/src/FarEditorSet.h 2011-02-24 12:15:01 UTC (rev 1657) +++ trunk/far3colorer/src/FarEditorSet.h 2011-02-26 06:05:28 UTC (rev 1658) @@ -133,8 +133,7 @@ const wchar_t *GetMsg(int msg); /** Applies the current settings for editors*/ void ApplySettingsToEditors(); - /** writes the default settings in the registry*/ - void SetDefaultSettings(); + /** writes settings in the registry*/ void SaveSettings(); /** Kills all currently opened editors*/ @@ -179,6 +178,11 @@ HRCParser *hrcParser; HKEY hPluginRegistry; + HANDLE farSettingHandle; + DWORD rGetValueDw(size_t Root, const wchar_t *name, DWORD DefaultValue); + const wchar_t *rGetValueSz(size_t Root, const wchar_t *name, const wchar_t *DefaultValue); + bool rSetValueDw(size_t Root, const wchar_t *name, DWORD val); + bool rSetValueSz(size_t Root, const wchar_t *name, const wchar_t *val); /**current value*/ DString hrdClass; DString hrdName; Modified: trunk/far3colorer/src/pcolorer.cpp =================================================================== --- trunk/far3colorer/src/pcolorer.cpp 2011-02-24 12:15:01 UTC (rev 1657) +++ trunk/far3colorer/src/pcolorer.cpp 2011-02-26 06:05:28 UTC (rev 1658) @@ -123,7 +123,7 @@ /** Configures plugin. */ -int WINAPI ConfigureW(int ItemNumber) +int WINAPI ConfigureW(const GUID* Guid) { if (!editorSet){ editorSet = new FarEditorSet(); @@ -146,9 +146,9 @@ return editorSet->editorEvent(Event, Param); }; -int WINAPI ProcessEditorInputW(const INPUT_RECORD *ir) +int WINAPI ProcessEditorInputW(const INPUT_RECORD *Rec) { - return editorSet->editorInput(ir); + return editorSet->editorInput(Rec); } /* ***** BEGIN LICENSE BLOCK ***** Modified: trunk/far3colorer/src/pcolorer.h =================================================================== --- trunk/far3colorer/src/pcolorer.h 2011-02-24 12:15:01 UTC (rev 1657) +++ trunk/far3colorer/src/pcolorer.h 2011-02-26 06:05:28 UTC (rev 1658) @@ -19,7 +19,6 @@ #include<wctype.h> #include<wchar.h> #include<windows.h> -#include "registry_wide.h" #include<unicode/StringBuffer.h> #include <initguid.h> Deleted: trunk/far3colorer/src/registry_wide.cpp =================================================================== --- trunk/far3colorer/src/registry_wide.cpp 2011-02-24 12:15:01 UTC (rev 1657) +++ trunk/far3colorer/src/registry_wide.cpp 2011-02-26 06:05:28 UTC (rev 1658) @@ -1,95 +0,0 @@ -#include "registry_wide.h" - -DWORD rOpenKey(HKEY hReg, const wchar_t *Name, HKEY &hKey) -{ - DWORD dwDisposition; - if (RegCreateKeyExW(hReg, Name, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, - NULL, &hKey, &dwDisposition)==ERROR_SUCCESS){ - return dwDisposition; - } - return 0; - -}; - -LONG rSetValue(HKEY hReg, const wchar_t *VName, DWORD val) -{ - return RegSetValueExW(hReg, VName, 0, REG_DWORD, (UCHAR*)(&val), 4); -}; - -LONG rSetValue(HKEY hReg, const wchar_t *VName, DWORD Type, const void *Data, DWORD Len) -{ - return RegSetValueExW(hReg, VName, 0, Type, (const BYTE*)Data, Len); -}; - -wchar_t *rGetValueSz(HKEY hReg, const wchar_t *name, const wchar_t *DefaultValue) -{ - wchar_t *Data; - DWORD i, Len=0; - i=RegQueryValueExW(hReg, name, 0, NULL, NULL, &Len); - if (i==ERROR_SUCCESS){ - int l=Len / sizeof(wchar_t); - Data=new wchar_t[l]; - i=RegQueryValueExW(hReg, name, 0, NULL, (PBYTE)Data, &Len); - if (i==ERROR_SUCCESS){ - return Data; - } - else{ - delete [] Data; - } - } - if (DefaultValue){ - size_t k = wcslen(DefaultValue); - Data = new wchar_t[k+1]; - wcscpy(Data,DefaultValue); - return Data; - } - return NULL; -}; - -DWORD rGetValueDw(HKEY hReg, const wchar_t *name, DWORD DefaultValue) -{ - DWORD data = 0; - DWORD i = sizeof(DWORD); - if (RegQueryValueExW(hReg, name, 0, NULL, (PBYTE)&data, &i) == ERROR_SUCCESS){ - return data; - } - else{ - return DefaultValue; - } -}; - -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Colorer Library. - * - * The Initial Developer of the Original Code is - * Cail Lomecb <ca...@nm...>. - * Portions created by the Initial Developer are Copyright (C) 1999-2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ Deleted: trunk/far3colorer/src/registry_wide.h =================================================================== --- trunk/far3colorer/src/registry_wide.h 2011-02-24 12:15:01 UTC (rev 1657) +++ trunk/far3colorer/src/registry_wide.h 2011-02-26 06:05:28 UTC (rev 1658) @@ -1,55 +0,0 @@ -#ifndef __REGISTRY_WIDE_H__ -#define __REGISTRY_WIDE_H__ - -#include <windows.h> - -#ifdef __CYGWIN__ - #define wcsncpy_s(s,l,ds,dl) wcsncpy(s,ds,dl) - #define wcscpy_s(s,l,d) wcscpy(s,d) - #define wcscat_s(s,l,d) wcscat(s,d) - int _snwprintf_s (wchar_t *string, size_t sizeInWords, size_t count, const wchar_t *format, ...); -#endif - -DWORD rOpenKey(HKEY hReg, const wchar_t *Name, HKEY &hKey); -LONG rSetValue(HKEY hReg, const wchar_t *VName, DWORD val); -LONG rSetValue(HKEY hReg, const wchar_t *VName, DWORD Type, const void *Data, DWORD Len); -wchar_t *rGetValueSz(HKEY hReg, const wchar_t *name, const wchar_t *DefaultValue); -DWORD rGetValueDw(HKEY hReg, const wchar_t *name, DWORD DefaultValue); - -#endif - -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Colorer Library. - * - * The Initial Developer of the Original Code is - * Cail Lomecb <ca...@nm...>. - * Portions created by the Initial Developer are Copyright (C) 1999-2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |