[NEW_FEATURE] Add find characters in range feature.
[NEW_FEATURE] Add file switcher (list) dialog (in progress). git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@756 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
166d513c7b
commit
6eb08d415b
@ -30,6 +30,9 @@
|
||||
#include "TaskListDlg.h"
|
||||
#include "xmlMatchedTagsHighlighter.h"
|
||||
#include "EncodingMapper.h"
|
||||
#include "ansiCharPanel.h"
|
||||
#include "clipboardHistoryPanel.h"
|
||||
#include "VerticalFileSwitcher.h"
|
||||
|
||||
enum tb_stat {tb_saved, tb_unsaved, tb_ro};
|
||||
#define DIR_LEFT true
|
||||
@ -104,7 +107,7 @@ ToolBarButtonUnit toolBarIcons[] = {
|
||||
|
||||
Notepad_plus::Notepad_plus(): _mainWindowStatus(0), _pDocTab(NULL), _pEditView(NULL),
|
||||
_pMainSplitter(NULL),
|
||||
_recordingMacro(false), _pTrayIco(NULL), _isUDDocked(false),
|
||||
_recordingMacro(false), _pTrayIco(NULL), _isUDDocked(false), _pFileSwitcherPanel(NULL),
|
||||
_linkTriggered(true), _isDocModifing(false), _isHotspotDblClicked(false), _sysMenuEntering(false),
|
||||
_autoCompleteMain(&_mainEditView), _autoCompleteSub(&_subEditView), _smartHighlighter(&_findReplaceDlg),
|
||||
_isFileOpening(false), _rememberThisSession(true), _pAnsiCharPanel(NULL), _pClipboardHistoryPanel(NULL)
|
||||
@ -150,6 +153,9 @@ Notepad_plus::~Notepad_plus()
|
||||
|
||||
if (_pClipboardHistoryPanel)
|
||||
delete _pClipboardHistoryPanel;
|
||||
|
||||
if (_pFileSwitcherPanel)
|
||||
delete _pFileSwitcherPanel;
|
||||
}
|
||||
|
||||
|
||||
@ -533,6 +539,7 @@ LRESULT Notepad_plus::init(HWND hwnd)
|
||||
_incrementFindDlg.init(_pPublicInterface->getHinst(), hwnd, &_findReplaceDlg, _nativeLangSpeaker.isRTL());
|
||||
_incrementFindDlg.addToRebar(&_rebarBottom);
|
||||
_goToLineDlg.init(_pPublicInterface->getHinst(), hwnd, &_pEditView);
|
||||
_findCharsInRangeDlg.init(_pPublicInterface->getHinst(), hwnd, &_pEditView);
|
||||
_colEditorDlg.init(_pPublicInterface->getHinst(), hwnd, &_pEditView);
|
||||
_aboutDlg.init(_pPublicInterface->getHinst(), hwnd);
|
||||
_runDlg.init(_pPublicInterface->getHinst(), hwnd);
|
||||
@ -578,12 +585,12 @@ LRESULT Notepad_plus::init(HWND hwnd)
|
||||
|
||||
for (size_t i = 0 ; i < dmd._pluginDockInfo.size() ; i++)
|
||||
{
|
||||
PlugingDlgDockingInfo & pdi = dmd._pluginDockInfo[i];
|
||||
PluginDlgDockingInfo & pdi = dmd._pluginDockInfo[i];
|
||||
if (pdi._isVisible)
|
||||
{
|
||||
if (pdi._name == NPP_INTERNAL_FUCTION_STR)
|
||||
{
|
||||
::SendMessage(hwnd, WM_COMMAND, pdi._internalID, 0);
|
||||
_internalFuncIDs.push_back(pdi._internalID);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -688,7 +695,7 @@ void Notepad_plus::saveDockingParams()
|
||||
nppGUI._dockingData._containerTabInfo.clear();
|
||||
|
||||
// create a vector to save the current information
|
||||
vector<PlugingDlgDockingInfo> vPluginDockInfo;
|
||||
vector<PluginDlgDockingInfo> vPluginDockInfo;
|
||||
vector<FloatingWindowInfo> vFloatingWindowInfo;
|
||||
|
||||
// save every container
|
||||
@ -703,7 +710,7 @@ void Notepad_plus::saveDockingParams()
|
||||
{
|
||||
if (vDataVis[j]->pszName && vDataVis[j]->pszName[0])
|
||||
{
|
||||
PlugingDlgDockingInfo pddi(vDataVis[j]->pszModuleName, vDataVis[j]->dlgID, i, vDataVis[j]->iPrevCont, true);
|
||||
PluginDlgDockingInfo pddi(vDataVis[j]->pszModuleName, vDataVis[j]->dlgID, i, vDataVis[j]->iPrevCont, true);
|
||||
vPluginDockInfo.push_back(pddi);
|
||||
}
|
||||
}
|
||||
@ -715,7 +722,7 @@ void Notepad_plus::saveDockingParams()
|
||||
{
|
||||
if ((vDataAll[j]->pszName && vDataAll[j]->pszName[0]) && (!vCont[i]->isTbVis(vDataAll[j])))
|
||||
{
|
||||
PlugingDlgDockingInfo pddi(vDataAll[j]->pszModuleName, vDataAll[j]->dlgID, i, vDataAll[j]->iPrevCont, false);
|
||||
PluginDlgDockingInfo pddi(vDataAll[j]->pszModuleName, vDataAll[j]->dlgID, i, vDataAll[j]->iPrevCont, false);
|
||||
vPluginDockInfo.push_back(pddi);
|
||||
}
|
||||
}
|
||||
@ -2467,7 +2474,6 @@ int Notepad_plus::wordCount()
|
||||
{
|
||||
FindOption env;
|
||||
env._str2Search = TEXT("[^ \\\\.,;:!?()+\\-\\*/=\\]\\[{}&~\"'`|@$%§<>\\^]+");
|
||||
//printStr(env._str2Search.c_str());
|
||||
env._searchType = FindRegex;
|
||||
return _findReplaceDlg.processAll(ProcessCountAll, &env, true);
|
||||
}
|
||||
@ -3829,7 +3835,7 @@ bool Notepad_plus::getIntegralDockingData(tTbData & dockData, int & iCont, bool
|
||||
|
||||
for (size_t i = 0 ; i < dockingData._pluginDockInfo.size() ; i++)
|
||||
{
|
||||
const PlugingDlgDockingInfo & pddi = dockingData._pluginDockInfo[i];
|
||||
const PluginDlgDockingInfo & pddi = dockingData._pluginDockInfo[i];
|
||||
|
||||
if (!generic_stricmp(pddi._name.c_str(), dockData.pszModuleName) && (pddi._internalID == dockData.dlgID))
|
||||
{
|
||||
@ -3842,7 +3848,7 @@ bool Notepad_plus::getIntegralDockingData(tTbData & dockData, int & iCont, bool
|
||||
int cont = (pddi._currContainer < DOCKCONT_MAX ? pddi._prevContainer : pddi._currContainer);
|
||||
RECT *pRc = dockingData.getFloatingRCFrom(cont);
|
||||
if (pRc)
|
||||
dockData.rcFloat = *pRc;
|
||||
dockData.rcFloat = *pRc;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -4555,9 +4561,9 @@ bool Notepad_plus::reloadLang()
|
||||
_nativeLangSpeaker.changeDlgLang(_runMacroDlg.getHSelf(), "MultiMacro");
|
||||
}
|
||||
|
||||
if (_goToLineDlg.isCreated())
|
||||
if (_findCharsInRangeDlg.isCreated())
|
||||
{
|
||||
_nativeLangSpeaker.changeDlgLang(_goToLineDlg.getHSelf(), "GoToLine");
|
||||
_nativeLangSpeaker.changeDlgLang(_findCharsInRangeDlg.getHSelf(), "FindCharsInRange");
|
||||
}
|
||||
|
||||
if (_colEditorDlg.isCreated())
|
||||
@ -4601,6 +4607,32 @@ void Notepad_plus::launchClipboardHistoryPanel()
|
||||
_pClipboardHistoryPanel->display();
|
||||
}
|
||||
|
||||
void Notepad_plus::launchFileSwitcherPanel()
|
||||
{
|
||||
if (!_pFileSwitcherPanel)
|
||||
{
|
||||
_pFileSwitcherPanel = new VerticalFileSwitcher;
|
||||
HIMAGELIST hImgLst = _docTabIconList.getHandle();
|
||||
_pFileSwitcherPanel->init(_pPublicInterface->getHinst(), _pPublicInterface->getHSelf(), hImgLst);
|
||||
|
||||
tTbData data = {0};
|
||||
_pFileSwitcherPanel->create(&data);
|
||||
|
||||
::SendMessage(_pPublicInterface->getHSelf(), NPPM_MODELESSDIALOG, MODELESSDIALOGREMOVE, (WPARAM)_pFileSwitcherPanel->getHSelf());
|
||||
// define the default docking behaviour
|
||||
data.uMask = DWS_DF_CONT_LEFT | DWS_ICONTAB;
|
||||
//data.hIconTab = (HICON)::LoadImage(_pPublicInterface->getHinst(), MAKEINTRESOURCE(IDI_FIND_RESULT_ICON), IMAGE_ICON, 0, 0, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||
data.pszModuleName = NPP_INTERNAL_FUCTION_STR;
|
||||
|
||||
// the dlgDlg should be the index of funcItem where the current function pointer is
|
||||
// in this case is DOCKABLE_DEMO_INDEX
|
||||
// In the case of Notepad++ internal function, it'll be the command ID which triggers this dialog
|
||||
data.dlgID = IDM_VIEW_FILESWITCHER_PANEL;
|
||||
::SendMessage(_pPublicInterface->getHSelf(), NPPM_DMMREGASDCKDLG, 0, (LPARAM)&data);
|
||||
}
|
||||
_pFileSwitcherPanel->display();
|
||||
}
|
||||
|
||||
void Notepad_plus::launchAnsiCharPanel()
|
||||
{
|
||||
if (!_pAnsiCharPanel)
|
||||
@ -4614,7 +4646,7 @@ void Notepad_plus::launchAnsiCharPanel()
|
||||
|
||||
::SendMessage(_pPublicInterface->getHSelf(), NPPM_MODELESSDIALOG, MODELESSDIALOGREMOVE, (WPARAM)_pAnsiCharPanel->getHSelf());
|
||||
// define the default docking behaviour
|
||||
data.uMask = DWS_DF_CONT_RIGHT | DWS_ICONTAB/* | DWS_ADDINFO*/;
|
||||
data.uMask = DWS_DF_CONT_RIGHT | DWS_ICONTAB;
|
||||
//data.hIconTab = (HICON)::LoadImage(_pPublicInterface->getHinst(), MAKEINTRESOURCE(IDI_FIND_RESULT_ICON), IMAGE_ICON, 0, 0, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||
data.pszModuleName = NPP_INTERNAL_FUCTION_STR;
|
||||
|
||||
@ -4626,4 +4658,3 @@ void Notepad_plus::launchAnsiCharPanel()
|
||||
}
|
||||
_pAnsiCharPanel->display();
|
||||
}
|
||||
|
||||
|
@ -54,6 +54,10 @@
|
||||
#include "GoToLineDlg.h"
|
||||
#endif //GOTILINE_DLG_H
|
||||
|
||||
#ifndef FINDCHARSINRANGE_DLG_H
|
||||
#include "FindCharsInRange.h"
|
||||
#endif //FINDCHARSINRANGE_DLG_H
|
||||
|
||||
#ifndef COLUMNEDITOR_H
|
||||
#include "columnEditor.h"
|
||||
#endif //COLUMNEDITOR_H
|
||||
@ -111,8 +115,7 @@
|
||||
#endif //SIZE_DLG_H
|
||||
|
||||
#include "localization.h"
|
||||
#include "ansiCharPanel.h"
|
||||
#include "clipboardHistoryPanel.h"
|
||||
|
||||
|
||||
#define MENU 0x01
|
||||
#define TOOLBAR 0x02
|
||||
@ -168,7 +171,9 @@ struct VisibleGUIConf {
|
||||
class FileDialog;
|
||||
class Notepad_plus_Window;
|
||||
class AnsiCharPanel;
|
||||
|
||||
class ClipboardHistoryPanel;
|
||||
class VerticalFileSwitcher;
|
||||
|
||||
class Notepad_plus {
|
||||
|
||||
friend class Notepad_plus_Window;
|
||||
@ -278,6 +283,7 @@ private:
|
||||
Notepad_plus_Window *_pPublicInterface;
|
||||
Window *_pMainWindow;
|
||||
DockingManager _dockingManager;
|
||||
vector<int> _internalFuncIDs;
|
||||
|
||||
AutoCompletion _autoCompleteMain;
|
||||
AutoCompletion _autoCompleteSub; //each Scintilla has its own autoComplete
|
||||
@ -319,6 +325,7 @@ private:
|
||||
ColumnEditorDlg _colEditorDlg;
|
||||
WordStyleDlg _configStyleDlg;
|
||||
PreferenceDlg _preference;
|
||||
FindCharsInRangeDlg _findCharsInRangeDlg;
|
||||
|
||||
// a handle list of all the Notepad++ dialogs
|
||||
vector<HWND> _hModelessDlgs;
|
||||
@ -391,6 +398,7 @@ private:
|
||||
|
||||
AnsiCharPanel *_pAnsiCharPanel;
|
||||
ClipboardHistoryPanel *_pClipboardHistoryPanel;
|
||||
VerticalFileSwitcher *_pFileSwitcherPanel;
|
||||
|
||||
BOOL notify(SCNotification *notification);
|
||||
void specialCmd(int id);
|
||||
@ -576,6 +584,7 @@ private:
|
||||
void doTrim(trimOp whichPart);
|
||||
void launchAnsiCharPanel();
|
||||
void launchClipboardHistoryPanel();
|
||||
void launchFileSwitcherPanel();
|
||||
};
|
||||
|
||||
|
||||
|
@ -351,6 +351,8 @@ BEGIN
|
||||
MENUITEM "Remove Unmarked Lines", IDM_SEARCH_DELETEUNMARKEDLINES
|
||||
MENUITEM "Inverse Bookmark", IDM_SEARCH_INVERSEMARKS
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Find characters in range...", IDM_SEARCH_FINDCHARINRANGE
|
||||
END
|
||||
|
||||
POPUP "&View"
|
||||
|
@ -193,6 +193,9 @@ void Notepad_plus_Window::init(HINSTANCE hInst, HWND parent, const TCHAR *cmdLin
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t i = 0 ; i < _notepad_plus_plus_core._internalFuncIDs.size() ; i++)
|
||||
::SendMessage(_hSelf, WM_COMMAND, _notepad_plus_plus_core._internalFuncIDs[i], 0);
|
||||
|
||||
// Notify plugins that Notepad++ is ready
|
||||
SCNotification scnN;
|
||||
scnN.nmhdr.code = NPPN_READY;
|
||||
|
@ -43,12 +43,17 @@ void Notepad_plus::command(int id)
|
||||
switch (id)
|
||||
{
|
||||
case IDM_FILE_NEW:
|
||||
{
|
||||
fileNew();
|
||||
break;
|
||||
//launchFileSwitcherPanel();
|
||||
}
|
||||
break;
|
||||
|
||||
case IDM_FILE_OPEN:
|
||||
{
|
||||
fileOpen();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case IDM_FILE_RELOAD:
|
||||
fileReload();
|
||||
@ -287,6 +292,12 @@ void Notepad_plus::command(int id)
|
||||
}
|
||||
break;
|
||||
|
||||
case IDM_VIEW_FILESWITCHER_PANEL:
|
||||
{
|
||||
launchFileSwitcherPanel();
|
||||
}
|
||||
break;
|
||||
|
||||
case IDM_EDIT_DELETE:
|
||||
_pEditView->execute(WM_CLEAR);
|
||||
break;
|
||||
@ -602,6 +613,15 @@ void Notepad_plus::command(int id)
|
||||
break;
|
||||
}
|
||||
|
||||
case IDM_SEARCH_FINDCHARINRANGE :
|
||||
{
|
||||
bool isFirstTime = !_findCharsInRangeDlg.isCreated();
|
||||
_findCharsInRangeDlg.doDialog(_nativeLangSpeaker.isRTL());
|
||||
if (isFirstTime)
|
||||
_nativeLangSpeaker.changeDlgLang(_findCharsInRangeDlg.getHSelf(), "FindCharsInRange");
|
||||
break;
|
||||
}
|
||||
|
||||
case IDM_EDIT_COLUMNMODETIP :
|
||||
{
|
||||
_nativeLangSpeaker.messageBox("ColumnModeTip",
|
||||
|
@ -3854,7 +3854,7 @@ void NppParameters::feedDockingManager(TiXmlNode *node)
|
||||
isVisible = (lstrcmp(val, TEXT("yes")) == 0);
|
||||
}
|
||||
|
||||
_nppGUI._dockingData._pluginDockInfo.push_back(PlugingDlgDockingInfo(name, id, curr, prev, isVisible));
|
||||
_nppGUI._dockingData._pluginDockInfo.push_back(PluginDlgDockingInfo(name, id, curr, prev, isVisible));
|
||||
}
|
||||
}
|
||||
|
||||
@ -4602,7 +4602,7 @@ void NppParameters::insertDockingParamNode(TiXmlNode *GUIRoot)
|
||||
|
||||
for (size_t i = 0 ; i < _nppGUI._dockingData._pluginDockInfo.size() ; i++)
|
||||
{
|
||||
PlugingDlgDockingInfo & pdi = _nppGUI._dockingData._pluginDockInfo[i];
|
||||
PluginDlgDockingInfo & pdi = _nppGUI._dockingData._pluginDockInfo[i];
|
||||
TiXmlElement PDNode(TEXT("PluginDlg"));
|
||||
PDNode.SetAttribute(TEXT("pluginName"), pdi._name);
|
||||
PDNode.SetAttribute(TEXT("id"), pdi._internalID);
|
||||
|
@ -185,7 +185,7 @@ struct FloatingWindowInfo {
|
||||
};
|
||||
};
|
||||
|
||||
struct PlugingDlgDockingInfo {
|
||||
struct PluginDlgDockingInfo {
|
||||
generic_string _name;
|
||||
int _internalID;
|
||||
|
||||
@ -193,9 +193,9 @@ struct PlugingDlgDockingInfo {
|
||||
int _prevContainer;
|
||||
bool _isVisible;
|
||||
|
||||
PlugingDlgDockingInfo(const TCHAR *pluginName, int id, int curr, int prev, bool isVis) : _internalID(id), _currContainer(curr), _prevContainer(prev), _isVisible(isVis), _name(pluginName){};
|
||||
PluginDlgDockingInfo(const TCHAR *pluginName, int id, int curr, int prev, bool isVis) : _internalID(id), _currContainer(curr), _prevContainer(prev), _isVisible(isVis), _name(pluginName){};
|
||||
|
||||
friend inline const bool operator==(const PlugingDlgDockingInfo & a, const PlugingDlgDockingInfo & b) {
|
||||
friend inline const bool operator==(const PluginDlgDockingInfo & a, const PluginDlgDockingInfo & b) {
|
||||
if ((a._name == b._name) && (a._internalID == b._internalID))
|
||||
return true;
|
||||
else
|
||||
@ -219,7 +219,7 @@ struct DockingManagerData {
|
||||
DockingManagerData() : _leftWidth(200), _rightWidth(200), _topHeight(200), _bottomHight(200) {};
|
||||
|
||||
vector<FloatingWindowInfo> _flaotingWindowInfo;
|
||||
vector<PlugingDlgDockingInfo> _pluginDockInfo;
|
||||
vector<PluginDlgDockingInfo> _pluginDockInfo;
|
||||
vector<ContainerTabInfo> _containerTabInfo;
|
||||
|
||||
RECT * getFloatingRCFrom(int floatCont) {
|
||||
|
@ -162,7 +162,7 @@ generic_string ListView::getAscii(unsigned char value)
|
||||
ascii[1] = '\0';
|
||||
MultiByteToWideChar(_codepage, 0, ascii, -1, charStr, sizeof(charStr));
|
||||
#else
|
||||
charStr[0] = (unsigned char)i;
|
||||
charStr[0] = (unsigned char)value;
|
||||
charStr[1] = '\0';
|
||||
#endif
|
||||
return charStr;
|
||||
|
@ -33,9 +33,6 @@ BOOL CALLBACK AnsiCharPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPa
|
||||
{
|
||||
case WM_INITDIALOG :
|
||||
{
|
||||
TCHAR asciiStr[2];
|
||||
asciiStr[1] = '\0';
|
||||
|
||||
_listView.init(_hInst, _hSelf);
|
||||
int codepage = (*_ppEditView)->getCurrentBuffer()->getEncoding();
|
||||
_listView.setValues(codepage==-1?0:codepage);
|
||||
|
@ -0,0 +1,163 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2003 Don HO ( donho@altern.org )
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "FindCharsInRange.h"
|
||||
#include "FindCharsInRange_rc.h"
|
||||
|
||||
BOOL CALLBACK FindCharsInRangeDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM)
|
||||
{
|
||||
switch (message)
|
||||
{
|
||||
case WM_INITDIALOG :
|
||||
{
|
||||
::SendDlgItemMessage(_hSelf, IDC_RANGESTART_EDIT, EM_LIMITTEXT, 3, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_RANGEEND_EDIT, EM_LIMITTEXT, 3, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_NONASCCI_RADIO, BM_SETCHECK, TRUE, 0);
|
||||
::SendDlgItemMessage(_hSelf, ID_FINDCHAR_DIRDOWN, BM_SETCHECK, TRUE, 0);
|
||||
goToCenter();
|
||||
return TRUE;
|
||||
}
|
||||
case WM_COMMAND :
|
||||
{
|
||||
switch (wParam)
|
||||
{
|
||||
case IDCANCEL : // Close
|
||||
display(false);
|
||||
return TRUE;
|
||||
|
||||
case ID_FINDCHAR_NEXT:
|
||||
{
|
||||
int currentPos = (*_ppEditView)->execute(SCI_GETCURRENTPOS);
|
||||
unsigned char startRange = 0;
|
||||
unsigned char endRange = 255;
|
||||
bool direction = dirDown;
|
||||
bool isWrap = true;
|
||||
if (!getRangeFromUI(startRange, endRange))
|
||||
{
|
||||
//STOP!
|
||||
::MessageBox(_hSelf, TEXT("You should type between from 0 to 255."), TEXT("Range Value problem"), MB_OK);
|
||||
return TRUE;
|
||||
}
|
||||
getDirectionFromUI(direction, isWrap);
|
||||
findCharInRange(startRange, endRange, currentPos, direction, isWrap);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default :
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
default :
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
bool FindCharsInRangeDlg::findCharInRange(unsigned char beginRange, unsigned char endRange, int startPos, bool direction, bool wrap)
|
||||
{
|
||||
int totalSize = (*_ppEditView)->getCurrentDocLen();
|
||||
if (startPos == -1)
|
||||
startPos = direction==dirDown?0:totalSize-1;
|
||||
if (startPos > totalSize)
|
||||
return false;
|
||||
|
||||
char *content = new char[totalSize+1];
|
||||
(*_ppEditView)->getText(content, 0, totalSize);
|
||||
int found = -1;
|
||||
|
||||
for (int i = startPos-(direction == dirUp?1:0);
|
||||
(direction == dirDown)?i < totalSize:i >= 0 ;
|
||||
(direction == dirDown)?(i++):(i--))
|
||||
{
|
||||
if ((unsigned char)content[i] >= beginRange && (unsigned char)content[i] <= endRange)
|
||||
{
|
||||
found = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (found == -1)
|
||||
{
|
||||
if (wrap)
|
||||
{
|
||||
for (int i = (direction == dirUp?totalSize-1:0);
|
||||
(direction == dirDown)?i < totalSize:i >= 0 ;
|
||||
(direction == dirDown)?(i++):(i--))
|
||||
{
|
||||
if ((unsigned char)content[i] >= beginRange && (unsigned char)content[i] <= endRange)
|
||||
{
|
||||
found = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (found != -1)
|
||||
{
|
||||
//printInt(found);
|
||||
int sci_line = (*_ppEditView)->execute(SCI_LINEFROMPOSITION, found);
|
||||
(*_ppEditView)->execute(SCI_ENSUREVISIBLE, sci_line);
|
||||
(*_ppEditView)->execute(SCI_GOTOPOS, found);
|
||||
(*_ppEditView)->execute(SCI_SETSEL, (direction == dirDown)?found:found+1, (direction == dirDown)?found+1:found);
|
||||
}
|
||||
delete [] content;
|
||||
return (found != -1);
|
||||
}
|
||||
|
||||
void FindCharsInRangeDlg::getDirectionFromUI(bool & whichDirection, bool & isWrap)
|
||||
{
|
||||
whichDirection = isCheckedOrNot(ID_FINDCHAR_DIRUP);
|
||||
isWrap = isCheckedOrNot(ID_FINDCHAR_WRAP);
|
||||
}
|
||||
|
||||
bool FindCharsInRangeDlg::getRangeFromUI(unsigned char & startRange, unsigned char & endRange)
|
||||
{
|
||||
if (isCheckedOrNot(IDC_NONASCCI_RADIO))
|
||||
{
|
||||
startRange = 128;
|
||||
endRange = 255;
|
||||
return true;
|
||||
}
|
||||
if (isCheckedOrNot(IDC_ASCCI_RADIO))
|
||||
{
|
||||
startRange = 0;
|
||||
endRange = 127;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (isCheckedOrNot(IDC_MYRANGE_RADIO))
|
||||
{
|
||||
BOOL startBool, endBool;
|
||||
int start = ::GetDlgItemInt(_hSelf, IDC_RANGESTART_EDIT, &startBool, FALSE);
|
||||
int end = ::GetDlgItemInt(_hSelf, IDC_RANGEEND_EDIT, &endBool, FALSE);
|
||||
|
||||
if (!startBool || !endBool)
|
||||
return false;
|
||||
if (start > 255 || end > 255)
|
||||
return false;
|
||||
if (start > end)
|
||||
return false;
|
||||
startRange = (unsigned char)start;
|
||||
endRange = (unsigned char)end;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2003 Don HO ( donho@altern.org )
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#ifndef FINDCHARSINRANGE_DLG_H
|
||||
#define FINDCHARSINRANGE_DLG_H
|
||||
|
||||
#ifndef FINDCHARSINRANGE_RC_H
|
||||
#include "findCharsInRange_rc.h"
|
||||
#endif //FINDCHARSINRANGE_RC_H
|
||||
|
||||
#ifndef SCINTILLA_EDIT_VIEW_H
|
||||
#include "ScintillaEditView.h"
|
||||
#endif //SCINTILLA_EDIT_VIEW_H
|
||||
|
||||
class FindCharsInRangeDlg : public StaticDialog
|
||||
{
|
||||
public :
|
||||
FindCharsInRangeDlg() : StaticDialog() {};
|
||||
|
||||
void init(HINSTANCE hInst, HWND hPere, ScintillaEditView **ppEditView) {
|
||||
Window::init(hInst, hPere);
|
||||
if (!ppEditView)
|
||||
throw std::runtime_error("FindCharsInRangeDlg::init : ppEditView is null.");
|
||||
_ppEditView = ppEditView;
|
||||
};
|
||||
|
||||
virtual void create(int dialogID, bool isRTL = false) {
|
||||
StaticDialog::create(dialogID, isRTL);
|
||||
};
|
||||
|
||||
void doDialog(bool isRTL = false) {
|
||||
if (!isCreated())
|
||||
create(IDD_FINDCHARACTERS, isRTL);
|
||||
display();
|
||||
};
|
||||
|
||||
virtual void display(bool toShow = true) const {
|
||||
Window::display(toShow);
|
||||
};
|
||||
|
||||
protected :
|
||||
virtual BOOL CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
private :
|
||||
ScintillaEditView **_ppEditView;
|
||||
bool findCharInRange(unsigned char beginRange, unsigned char endRange, int startPos, bool direction, bool wrap);
|
||||
bool getRangeFromUI(unsigned char & startRange, unsigned char & endRange);
|
||||
void getDirectionFromUI(bool & whichDirection, bool & isWrap);
|
||||
bool isCheckedOrNot(int checkControlID) const {
|
||||
return (BST_CHECKED == ::SendMessage(::GetDlgItem(_hSelf, checkControlID), BM_GETCHECK, 0, 0));
|
||||
};
|
||||
};
|
||||
|
||||
#endif //FINDCHARSINRANGE_DLG_H
|
@ -0,0 +1,39 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2011 Don HO <donho@altern.org>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include <windows.h>
|
||||
#include "findCharsInRange_rc.h"
|
||||
|
||||
IDD_FINDCHARACTERS DIALOGEX 26, 41, 263, 126
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_WINDOWEDGE
|
||||
CAPTION "Find Characters in Range..."
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
CONTROL "Non-ASCII Characters (128-255)",IDC_NONASCCI_RADIO,"Button",BS_AUTORADIOBUTTON,22,13,146,10
|
||||
CONTROL "ASCII Characters (0 - 127)",IDC_ASCCI_RADIO,"Button",BS_AUTORADIOBUTTON,22,32,151,10
|
||||
CONTROL "My Range:",IDC_MYRANGE_RADIO,"Button",BS_AUTORADIOBUTTON,22,51,67,10
|
||||
EDITTEXT IDC_RANGESTART_EDIT,91,49,25,14,ES_AUTOHSCROLL | ES_NUMBER
|
||||
LTEXT "-",IDC_STATIC,122,52,8,8
|
||||
EDITTEXT IDC_RANGEEND_EDIT,129,49,25,14,ES_AUTOHSCROLL | ES_NUMBER
|
||||
CONTROL "&Up",ID_FINDCHAR_DIRUP,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,25,91,64,12
|
||||
CONTROL "&Down",ID_FINDCHAR_DIRDOWN,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,25,103,63,12
|
||||
GROUPBOX "Direction",IDC_FINDCHAR_DIR_STATIC,19,79,74,42,WS_GROUP
|
||||
CONTROL "Wra&p around",ID_FINDCHAR_WRAP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,105,102,110,15
|
||||
DEFPUSHBUTTON "Find",ID_FINDCHAR_NEXT,182,8,70,14,BS_NOTIFY
|
||||
PUSHBUTTON "Close",IDCANCEL,181,27,70,14,BS_NOTIFY
|
||||
END
|
@ -0,0 +1,32 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2011 Don HO <donho@altern.org>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#ifndef IDC_STATIC
|
||||
#define IDC_STATIC -1
|
||||
#endif
|
||||
|
||||
#define IDD_FINDCHARACTERS 2900
|
||||
#define IDC_NONASCCI_RADIO (IDD_FINDCHARACTERS + 1)
|
||||
#define IDC_ASCCI_RADIO (IDD_FINDCHARACTERS + 2)
|
||||
#define IDC_MYRANGE_RADIO (IDD_FINDCHARACTERS + 3)
|
||||
#define IDC_RANGESTART_EDIT (IDD_FINDCHARACTERS + 4)
|
||||
#define IDC_RANGEEND_EDIT (IDD_FINDCHARACTERS + 5)
|
||||
#define ID_FINDCHAR_DIRUP (IDD_FINDCHARACTERS + 6)
|
||||
#define ID_FINDCHAR_DIRDOWN (IDD_FINDCHARACTERS + 7)
|
||||
#define IDC_FINDCHAR_DIR_STATIC (IDD_FINDCHARACTERS + 8)
|
||||
#define ID_FINDCHAR_WRAP (IDD_FINDCHARACTERS + 9)
|
||||
#define ID_FINDCHAR_NEXT (IDD_FINDCHARACTERS + 10)
|
@ -0,0 +1,63 @@
|
||||
/*
|
||||
this file is part of notepad++
|
||||
Copyright (C)2011 Don HO <donho@altern.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a Copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "VerticalFileSwitcher.h"
|
||||
|
||||
BOOL CALLBACK VerticalFileSwitcher::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (message)
|
||||
{
|
||||
case WM_INITDIALOG :
|
||||
{
|
||||
|
||||
_fileListView.init(_hInst, _hSelf, _hImaLst);
|
||||
_fileListView.initList();
|
||||
_fileListView.display();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
/*
|
||||
case WM_NOTIFY:
|
||||
{
|
||||
switch (((LPNMHDR)lParam)->code)
|
||||
{
|
||||
case NM_DBLCLK:
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
*/
|
||||
case WM_SIZE:
|
||||
{
|
||||
int width = LOWORD(lParam);
|
||||
int height = HIWORD(lParam);
|
||||
::MoveWindow(_fileListView.getHSelf(), 0, 0, width, height, TRUE);
|
||||
break;
|
||||
}
|
||||
|
||||
default :
|
||||
return DockingDlgInterface::run_dlgProc(message, wParam, lParam);
|
||||
}
|
||||
return DockingDlgInterface::run_dlgProc(message, wParam, lParam);
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
/*
|
||||
this file is part of notepad++
|
||||
Copyright (C)2011 Don HO <donho@altern.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a Copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef VERTICALFILESWITCHER_H
|
||||
#define VERTICALFILESWITCHER_H
|
||||
|
||||
//#include <windows.h>
|
||||
#ifndef DOCKINGDLGINTERFACE_H
|
||||
#include "DockingDlgInterface.h"
|
||||
#endif //DOCKINGDLGINTERFACE_H
|
||||
|
||||
#include "VerticalFileSwitcher_rc.h"
|
||||
#include "VerticalFileSwitcherListView.h"
|
||||
|
||||
class VerticalFileSwitcher : public DockingDlgInterface {
|
||||
public:
|
||||
VerticalFileSwitcher(): DockingDlgInterface(IDD_FILESWITCHER_PANEL) {};
|
||||
|
||||
void init(HINSTANCE hInst, HWND hPere, HIMAGELIST hImaLst) {
|
||||
DockingDlgInterface::init(hInst, hPere);
|
||||
_hImaLst = hImaLst;
|
||||
};
|
||||
|
||||
virtual void display(bool toShow = true) const {
|
||||
DockingDlgInterface::display(toShow);
|
||||
};
|
||||
|
||||
void setParent(HWND parent2set){
|
||||
_hParent = parent2set;
|
||||
};
|
||||
|
||||
protected:
|
||||
virtual BOOL CALLBACK VerticalFileSwitcher::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
private:
|
||||
VerticalFileSwitcherListView _fileListView;
|
||||
HIMAGELIST _hImaLst;
|
||||
};
|
||||
#endif // VERTICALFILESWITCHER_H
|
@ -0,0 +1,30 @@
|
||||
/*
|
||||
this file is part of notepad++
|
||||
Copyright (C)2011 Don HO <donho@altern.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a Copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include "VerticalFileSwitcher_rc.h"
|
||||
|
||||
IDD_FILESWITCHER_PANEL DIALOGEX 26, 41, 142, 324
|
||||
STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_WINDOWEDGE
|
||||
CAPTION "File Switcher"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
//LISTBOX IDC_LIST_FILESWITCHER,50,44,78,120,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
||||
END
|
@ -0,0 +1,101 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2011 Don HO <donho@altern.org>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "VerticalFileSwitcherListView.h"
|
||||
|
||||
void VerticalFileSwitcherListView::init(HINSTANCE hInst, HWND parent, HIMAGELIST hImaLst)
|
||||
{
|
||||
Window::init(hInst, parent);
|
||||
_hImaLst = hImaLst;
|
||||
INITCOMMONCONTROLSEX icex;
|
||||
|
||||
// Ensure that the common control DLL is loaded.
|
||||
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
|
||||
icex.dwICC = ICC_LISTVIEW_CLASSES;
|
||||
InitCommonControlsEx(&icex);
|
||||
|
||||
// Create the list-view window in report view with label editing enabled.
|
||||
int listViewStyles = LVS_REPORT | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER\
|
||||
| LVS_SINGLESEL | LVS_AUTOARRANGE\
|
||||
| LVS_SHAREIMAGELISTS /*| WS_BORDER*/;
|
||||
|
||||
_hSelf = ::CreateWindow(WC_LISTVIEW,
|
||||
TEXT(""),
|
||||
WS_CHILD | listViewStyles,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
_hParent,
|
||||
(HMENU) NULL,
|
||||
hInst,
|
||||
NULL);
|
||||
if (!_hSelf)
|
||||
{
|
||||
throw std::runtime_error("VerticalFileSwitcherListView::init : CreateWindowEx() function return null");
|
||||
}
|
||||
|
||||
::SetWindowLongPtr(_hSelf, GWLP_USERDATA, (LONG_PTR)this);
|
||||
_defaultProc = reinterpret_cast<WNDPROC>(::SetWindowLongPtr(_hSelf, GWLP_WNDPROC, (LONG_PTR)staticProc));
|
||||
|
||||
DWORD exStyle = ListView_GetExtendedListViewStyle(_hSelf);
|
||||
exStyle |= LVS_EX_FULLROWSELECT | LVS_EX_BORDERSELECT ;
|
||||
ListView_SetExtendedListViewStyle(_hSelf, exStyle);
|
||||
|
||||
LVCOLUMN lvColumn;
|
||||
lvColumn.mask = LVCF_WIDTH;
|
||||
|
||||
lvColumn.cx = 200;
|
||||
|
||||
ListView_InsertColumn(_hSelf, 0, &lvColumn);
|
||||
|
||||
ListView_SetItemCountEx(_hSelf, 50, LVSICF_NOSCROLL);
|
||||
ListView_SetImageList(_hSelf, _hImaLst, LVSIL_SMALL);
|
||||
|
||||
ListView_SetItemState(_hSelf, 0, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
|
||||
//ListView_SetBkColor(_hSelf, lightYellow);
|
||||
}
|
||||
|
||||
void VerticalFileSwitcherListView::destroy()
|
||||
{
|
||||
::DestroyWindow(_hSelf);
|
||||
_hSelf = NULL;
|
||||
}
|
||||
|
||||
LRESULT VerticalFileSwitcherListView::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
return ::CallWindowProc(_defaultProc, hwnd, Message, wParam, lParam);
|
||||
}
|
||||
|
||||
void VerticalFileSwitcherListView::initList()
|
||||
{
|
||||
::SendMessage(::GetParent(_hParent), WM_GETTASKLISTINFO, (WPARAM)&_taskListInfo, 0);
|
||||
for (size_t i = 0 ; i < _taskListInfo._tlfsLst.size() ; i++)
|
||||
{
|
||||
TaskLstFnStatus & fileNameStatus = _taskListInfo._tlfsLst[i];
|
||||
|
||||
LVITEM item;
|
||||
item.mask = LVIF_TEXT | LVIF_IMAGE;
|
||||
|
||||
item.pszText = (TCHAR *)::PathFindFileName(fileNameStatus._fn.c_str());
|
||||
item.iItem = i;
|
||||
item.iSubItem = 0;
|
||||
item.iImage = fileNameStatus._status;
|
||||
ListView_InsertItem(_hSelf, &item);
|
||||
}
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2011 Don HO <donho@altern.org>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#ifndef VERTICALFILESWITCHERLISTVIEW_H
|
||||
#define VERTICALFILESWITCHERLISTVIEW_H
|
||||
|
||||
#include "window.h"
|
||||
#include "TaskListDlg.h"
|
||||
|
||||
class VerticalFileSwitcherListView : public Window
|
||||
{
|
||||
public:
|
||||
VerticalFileSwitcherListView() : Window() {};
|
||||
|
||||
virtual ~VerticalFileSwitcherListView() {};
|
||||
virtual void init(HINSTANCE hInst, HWND parent, HIMAGELIST hImaLst);
|
||||
virtual void destroy();
|
||||
void initList();
|
||||
|
||||
protected:
|
||||
TaskListInfo _taskListInfo;
|
||||
HIMAGELIST _hImaLst;
|
||||
WNDPROC _defaultProc;
|
||||
LRESULT runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
static LRESULT CALLBACK staticProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
|
||||
return (((VerticalFileSwitcherListView *)(::GetWindowLongPtr(hwnd, GWL_USERDATA)))->runProc(hwnd, Message, wParam, lParam));
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
#endif // VERTICALFILESWITCHERLISTVIEW_H
|
@ -0,0 +1,25 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2011 Don HO <donho@altern.org>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#ifndef VERTICALFILESWITCHER_RC_H
|
||||
#define VERTICALFILESWITCHER_RC_H
|
||||
|
||||
#define IDD_FILESWITCHER_PANEL 3000
|
||||
#define IDC_LIST_FILESWITCHER (IDD_FILESWITCHER_PANEL + 1)
|
||||
|
||||
#endif // VERTICALFILESWITCHER_RC_H
|
||||
|
@ -169,6 +169,7 @@
|
||||
#define IDM_SEARCH_SETANDFINDPREV (IDM_SEARCH + 49)
|
||||
#define IDM_SEARCH_INVERSEMARKS (IDM_SEARCH + 50)
|
||||
#define IDM_SEARCH_DELETEUNMARKEDLINES (IDM_SEARCH + 51)
|
||||
#define IDM_SEARCH_FINDCHARINRANGE (IDM_SEARCH + 52)
|
||||
|
||||
#define IDM_VIEW (IDM + 4000)
|
||||
//#define IDM_VIEW_TOOLBAR_HIDE (IDM_VIEW + 1)
|
||||
@ -231,7 +232,7 @@
|
||||
#define IDM_VIEW_FOLD_7 (IDM_VIEW_FOLD + 7)
|
||||
#define IDM_VIEW_FOLD_8 (IDM_VIEW_FOLD + 8)
|
||||
|
||||
#define IDM_VIEW_UNFOLD (IDM_VIEW + 60)
|
||||
#define IDM_VIEW_UNFOLD (IDM_VIEW + 60)
|
||||
#define IDM_VIEW_UNFOLD_1 (IDM_VIEW_UNFOLD + 1)
|
||||
#define IDM_VIEW_UNFOLD_2 (IDM_VIEW_UNFOLD + 2)
|
||||
#define IDM_VIEW_UNFOLD_3 (IDM_VIEW_UNFOLD + 3)
|
||||
@ -240,7 +241,9 @@
|
||||
#define IDM_VIEW_UNFOLD_6 (IDM_VIEW_UNFOLD + 6)
|
||||
#define IDM_VIEW_UNFOLD_7 (IDM_VIEW_UNFOLD + 7)
|
||||
#define IDM_VIEW_UNFOLD_8 (IDM_VIEW_UNFOLD + 8)
|
||||
|
||||
|
||||
#define IDM_VIEW_FILESWITCHER_PANEL (IDM_VIEW + 70)
|
||||
|
||||
#define IDM_VIEW_GOTO_ANOTHER_VIEW 10001
|
||||
#define IDM_VIEW_CLONE_TO_ANOTHER_VIEW 10002
|
||||
#define IDM_VIEW_GOTO_NEW_INSTANCE 10003
|
||||
|
@ -292,6 +292,15 @@
|
||||
//See ansiCharPanel_rc.h
|
||||
//#define IDD_ANSIASCII_PANEL 2700
|
||||
|
||||
//See clipboardHistoryPanel_rc.h
|
||||
//#define IDD_CLIPBOARDHISTORY_PANEL 2800
|
||||
|
||||
//See findCharsInRange_rc.h
|
||||
//#define IDD_FINDCHARACTERS 2900
|
||||
|
||||
//See VerticalFileSwitcher_rc.h
|
||||
//#define IDC_LIST_FILESWITCHER 3000
|
||||
|
||||
// See regExtDlg.h
|
||||
//#define IDD_REGEXT 4000
|
||||
|
||||
|
@ -133,7 +133,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
FavorSizeOrSpeed="0"
|
||||
AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel;..\src\WinControls\ClipboardHistory"
|
||||
AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel;..\src\WinControls\ClipboardHistory;..\src\WinControls\FindCharsInRange;..\src\WinControls\VerticalFileSwitcher"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL"
|
||||
MinimalRebuild="true"
|
||||
ExceptionHandling="2"
|
||||
@ -228,7 +228,7 @@
|
||||
FavorSizeOrSpeed="1"
|
||||
OmitFramePointers="false"
|
||||
WholeProgramOptimization="false"
|
||||
AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel;..\src\WinControls\ClipboardHistory"
|
||||
AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel;..\src\WinControls\ClipboardHistory;..\src\WinControls\FindCharsInRange;..\src\WinControls\VerticalFileSwitcher"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL"
|
||||
GeneratePreprocessedFile="0"
|
||||
StringPooling="true"
|
||||
@ -325,7 +325,7 @@
|
||||
FavorSizeOrSpeed="1"
|
||||
OmitFramePointers="false"
|
||||
WholeProgramOptimization="false"
|
||||
AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel"
|
||||
AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel;..\src\WinControls\FindCharsInRange;..\src\WinControls\ClipboardHistory"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="2"
|
||||
@ -421,7 +421,7 @@
|
||||
FavorSizeOrSpeed="1"
|
||||
OmitFramePointers="false"
|
||||
WholeProgramOptimization="false"
|
||||
AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA"
|
||||
AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\FindCharsInRange"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL"
|
||||
GeneratePreprocessedFile="0"
|
||||
StringPooling="true"
|
||||
@ -571,6 +571,10 @@
|
||||
RelativePath="..\src\WinControls\OpenSaveFileDialog\FileDialog.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\WinControls\FindCharsInRange\FindCharsInRange.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ScitillaComponent\FindReplaceDlg.cpp"
|
||||
>
|
||||
@ -787,6 +791,14 @@
|
||||
RelativePath="..\src\Utf8_16.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\WinControls\VerticalFileSwitcher\VerticalFileSwitcher.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\WinControls\VerticalFileSwitcher\VerticalFileSwitcherListView.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\MISC\Exception\Win32Exception.cpp"
|
||||
>
|
||||
@ -945,6 +957,10 @@
|
||||
RelativePath="..\src\icons\find_on.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\WinControls\FindCharsInRange\findCharsInRange.rc"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\icons\findrep_off.ico"
|
||||
>
|
||||
@ -1317,6 +1333,10 @@
|
||||
RelativePath="..\src\icons\userDefineDlg_on.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\WinControls\VerticalFileSwitcher\VerticalFileSwitcher.rc"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\WinControls\WindowsDlg\WindowsDlg.rc"
|
||||
>
|
||||
@ -1466,6 +1486,10 @@
|
||||
RelativePath="..\src\MISC\FileNameStringSplitter.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\WinControls\FindCharsInRange\FindCharsInRange.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ScitillaComponent\FindReplaceDlg.h"
|
||||
>
|
||||
@ -1694,6 +1718,18 @@
|
||||
RelativePath="..\src\Utf8_16.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\WinControls\VerticalFileSwitcher\VerticalFileSwitcher.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\WinControls\VerticalFileSwitcher\VerticalFileSwitcher_rc.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\WinControls\VerticalFileSwitcher\VerticalFileSwitcherListView.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\MISC\Exception\Win32Exception.h"
|
||||
>
|
||||
|
Loading…
Reference in New Issue
Block a user