mirror of
https://github.com/reactos/reactos.git
synced 2024-11-06 14:44:19 +00:00
166 lines
3.9 KiB
C
166 lines
3.9 KiB
C
|
/********************************************************************
|
||
|
* Module: editor.h. This is part of Visual-MinGW.
|
||
|
*
|
||
|
* License: Visual-MinGW is covered by GNU General Public License,
|
||
|
* Copyright (C) 2001 Manu B.
|
||
|
* See license.htm for more details.
|
||
|
*
|
||
|
*******************************************************************/
|
||
|
#ifndef EDITOR_H
|
||
|
#define EDITOR_H
|
||
|
|
||
|
#include "Scintilla.h"
|
||
|
#include "SciLexer.h"
|
||
|
#include "winui.h"
|
||
|
|
||
|
#define U_FILE 3
|
||
|
#define H_FILE (U_FILE+1)
|
||
|
#define C_FILE (U_FILE+2)
|
||
|
#define RC_FILE (U_FILE+3)
|
||
|
|
||
|
// Default block size.
|
||
|
const int blockSize = 131072;
|
||
|
|
||
|
// Default colors.
|
||
|
const COLORREF black = RGB(0,0,0);
|
||
|
const COLORREF white = RGB(0xff,0xff,0xff);
|
||
|
const COLORREF darkBlue = RGB(0, 0, 0x7f);
|
||
|
const COLORREF Green = RGB(0, 0x7f, 0);
|
||
|
const COLORREF darkGreen = RGB(0x3f, 0x70, 0x3f);
|
||
|
const COLORREF Purple = RGB(0x7f, 0x00, 0x7f);
|
||
|
const COLORREF Ice = RGB(0x00, 0x7f, 0x7f);
|
||
|
const COLORREF Olive = RGB(0x7f, 0x7f, 0x00);
|
||
|
|
||
|
// Default Cpp keywords.
|
||
|
const char cppKeyWords[] =
|
||
|
"asm auto bool break case catch char class const const_cast continue "
|
||
|
"default delete do double dynamic_cast else enum explicit export extern false float for "
|
||
|
"friend goto if inline int long mutable namespace new operator private protected public "
|
||
|
"register reinterpret_cast return short signed sizeof static static_cast struct switch "
|
||
|
"template this throw true try typedef typeid typename union unsigned using "
|
||
|
"virtual void volatile wchar_t while";
|
||
|
|
||
|
void EnsureRangeVisible(HWND hwndCtrl, int posStart, int posEnd, bool enforcePolicy);
|
||
|
int LengthDocument(HWND hwndCtrl);
|
||
|
CharacterRange GetSelection(HWND hwndCtrl);
|
||
|
|
||
|
class CFileItem : public CNode
|
||
|
{
|
||
|
public:
|
||
|
CFileItem();
|
||
|
~CFileItem();
|
||
|
|
||
|
// File name.
|
||
|
char szFileName[MAX_PATH];
|
||
|
WORD nFileOffset;
|
||
|
WORD nFileExtension;
|
||
|
|
||
|
// Owner tree view.
|
||
|
CTreeView * pTreeView;
|
||
|
HTREEITEM _hItem;
|
||
|
HTREEITEM _hDirItem;
|
||
|
|
||
|
// Owner child window.
|
||
|
CMDIChild * pMdiChild;
|
||
|
int show;
|
||
|
bool isInProject;
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
};
|
||
|
|
||
|
void GetFileType(CFileItem * file);
|
||
|
|
||
|
class CEditor : public CScintilla
|
||
|
{
|
||
|
public:
|
||
|
CEditor();
|
||
|
~CEditor();
|
||
|
|
||
|
void LoadFile(CFileItem * file);
|
||
|
void SaveFile(char * fullPath);
|
||
|
int GetCurrentPos(void);
|
||
|
void GotoLine(int line, char * fileName = NULL);
|
||
|
int caretPos;
|
||
|
void SetLexer(int fileType);
|
||
|
void SetCppLexer(void);
|
||
|
bool MarginClick(int position, int modifiers);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
void DefineMarker(int marker, int markerType, COLORREF fore, COLORREF back);
|
||
|
void GetRange(int start, int end, char *text);
|
||
|
void SetAStyle(int style, COLORREF fore, COLORREF back, int size, const char *face);
|
||
|
void Expand(int &line, bool doExpand, bool force = false,
|
||
|
int visLevels = 0, int level = -1);
|
||
|
};
|
||
|
|
||
|
#define FR_MAX_LEN 200
|
||
|
|
||
|
class CFindReplaceDlg : public CDlgBase
|
||
|
{
|
||
|
public:
|
||
|
CFindReplaceDlg();
|
||
|
virtual ~CFindReplaceDlg();
|
||
|
|
||
|
HWND Find(CScintilla * pEditor);
|
||
|
HWND Replace(CScintilla * pEditor);
|
||
|
|
||
|
protected:
|
||
|
void FindNext(bool reverseDirection, bool showWarnings);
|
||
|
virtual LRESULT CALLBACK CDlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||
|
BOOL OnInitDialog(HWND hwndFocus, LPARAM lInitParam);
|
||
|
BOOL Find_OnInitDialog(void);
|
||
|
BOOL Replace_OnInitDialog(void);
|
||
|
BOOL OnCommand(WORD wNotifyCode, WORD wID, HWND hwndCtl);
|
||
|
BOOL Find_OnCommand(WORD wIDl);
|
||
|
BOOL Replace_OnCommand(WORD wID);
|
||
|
BOOL HandleReplaceCommand(int cmd);
|
||
|
void ReplaceOnce(void);
|
||
|
void ReplaceAll(bool inSelection);
|
||
|
|
||
|
private:
|
||
|
HWND hFindWhat;
|
||
|
HWND hReplaceWith;
|
||
|
HWND hWholeWord;
|
||
|
HWND hMatchCase;
|
||
|
HWND hRegExp;
|
||
|
HWND hWrap;
|
||
|
HWND hUnSlash;
|
||
|
HWND hUp;
|
||
|
HWND hDown;
|
||
|
char findWhat[FR_MAX_LEN + 1];
|
||
|
char replaceWhat[FR_MAX_LEN + 1];
|
||
|
|
||
|
bool bWholeWord;
|
||
|
bool bMatchCase;
|
||
|
bool bRegExp;
|
||
|
bool bWrapFind;
|
||
|
bool bUnSlash;
|
||
|
bool bReverseFind;
|
||
|
bool bHavefound;
|
||
|
|
||
|
CEditor * pEditor;
|
||
|
HWND hEditor;
|
||
|
int resId;
|
||
|
};
|
||
|
|
||
|
class CChooseFontDlg : public CWindow
|
||
|
{
|
||
|
public:
|
||
|
CChooseFontDlg();
|
||
|
~CChooseFontDlg();
|
||
|
|
||
|
bool Create(CWindow * pWindow);
|
||
|
|
||
|
protected:
|
||
|
CHOOSEFONT cf;
|
||
|
LOGFONT lf;
|
||
|
|
||
|
private:
|
||
|
};
|
||
|
|
||
|
#endif
|