#ifndef WTEXTPAGE_H
#define WTEXTPAGE_H
#include <wx/wx.h>
#include "wcryptote.h"
class WTextPage : public WNotePage
{
public:
WTextPage(class WCryptoTE* parent);
enum {
myID_FIRST = wxID_HIGHEST + 1,
myID_EDITCTRL,
};
enum StyleNum {
STYLE_FINDHIGHLIGHT = 16,
};
enum MarginNum {
MARGIN_LINENUMBER = 0
};
virtual wxString GetCaption();
bool LoadSubFile(unsigned int sfid);
bool LoadSubFileMetaSettings();
void SaveSubFileMetaSettings();
virtual size_t ImportFile(wxFile& file);
virtual void ExportBuffer(wxOutputStream& outstream);
void AddText(const wxString& text);
void PrepareQuickFind(bool backwards, bool reset);
void DoQuickFind(bool backwards, const wxString& findtext);
virtual void StopQuickFind();
void OnContextMenu(wxContextMenuEvent& event);
void OnMenuEditUndo(wxCommandEvent& event);
void OnMenuEditRedo(wxCommandEvent& event);
void OnMenuEditCut(wxCommandEvent& event);
void OnMenuEditCopy(wxCommandEvent& event);
void OnMenuEditPaste(wxCommandEvent& event);
void OnMenuEditDelete(wxCommandEvent& event);
void OnMenuEditSelectAll(wxCommandEvent &event);
void OnMenuEditSelectLine(wxCommandEvent &event);
virtual void PageFocused();
virtual void PageBlurred();
virtual void PageSaveData();
virtual void PageClosed();
virtual bool DoQuickGoto(const wxString& gototext);
void OnScintillaUpdateUI(class wxStyledTextEvent& event);
void OnScintillaSavePointReached(class wxStyledTextEvent& event);
void OnScintillaSavePointLeft(class wxStyledTextEvent& event);
void OnScintillaZoom(class wxStyledTextEvent& event);
void OnScintillaPainted(class wxStyledTextEvent& event);
class wxStyledTextCtrl* editctrl;
void SetViewLineWrap(bool on);
bool GetViewLineWrap();
void SetViewLineNumber(bool on);
bool GetViewLineNumber();
void SetViewWhitespace(bool on);
bool GetViewWhitespace();
void SetViewEndOfLine(bool on);
bool GetViewEndOfLine();
void SetViewIndentGuide(bool on);
bool GetViewIndentGuide();
void SetViewLonglineGuide(bool on);
bool GetViewLonglineGuide();
void SetZoom(int level);
int GetZoom();
protected:
int quickfind_startpos;
int quickfind_length;
bool view_linewrap;
bool view_linenumber;
bool view_whitespace;
bool view_endofline;
bool view_indentguide;
bool view_longlineguide;
int cursor_firstvisibleline;
int cursor_xoffset;
int cursor_currentpos;
struct MetaSettingsv00000001
{
uint32_t version;
unsigned char view_linewrap;
unsigned char view_linenumber;
unsigned char view_whitespace;
unsigned char view_endofline;
unsigned char view_indentguide;
unsigned char view_longlineguide;
int view_zoom;
int cursor_firstvisibleline;
int cursor_xoffset;
int cursor_currentpos;
}
__attribute__((packed));
private:
DECLARE_EVENT_TABLE();
DECLARE_ABSTRACT_CLASS(WTextPage);
};
class WQuickFindBar : public wxPanel
{
public:
WQuickFindBar(class WCryptoTE* wmain);
void set_bitmaps();
class wxBoxSizer* sizerQuickFind;
wxBitmapButton* buttonQuickFindClose;
class wxTextCtrl* textctrlQuickFind;
wxBitmapButton* buttonQuickFindNext;
wxBitmapButton* buttonQuickFindPrev;
};
class WQuickGotoBar : public wxPanel
{
public:
WQuickGotoBar(class WCryptoTE* wmain);
void set_bitmaps();
wxBitmapButton* buttonGotoCancel;
class wxBoxSizer* sizerQuickGoto;
class wxTextCtrl* textctrlGoto;
wxBitmapButton* buttonGotoGo;
};
#endif