aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/CellBuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/CellBuffer.h')
-rw-r--r--src/CellBuffer.h70
1 files changed, 44 insertions, 26 deletions
diff --git a/src/CellBuffer.h b/src/CellBuffer.h
index 7cd79336d..d078c22c0 100644
--- a/src/CellBuffer.h
+++ b/src/CellBuffer.h
@@ -1,28 +1,35 @@
// Scintilla source code edit control
-// CellBuffer.h - manages the text of the document
+/** @file CellBuffer.h
+ ** Manages the text of the document.
+ **/
// Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org>
// The License.txt file describes the conditions under which this software may be distributed.
#ifndef CELLBUFFER_H
#define CELLBUFFER_H
-// This holds the marker identifier and the marker type to display.
-// MarkerHandleNumbers are members of lists.
+/**
+ * This holds the marker identifier and the marker type to display.
+ * MarkerHandleNumbers are members of lists.
+ */
struct MarkerHandleNumber {
int handle;
int number;
MarkerHandleNumber *next;
};
-// A marker handle set contains any number of MarkerHandleNumbers
+/**
+ * A marker handle set contains any number of MarkerHandleNumbers.
+ */
class MarkerHandleSet {
MarkerHandleNumber *root;
+
public:
MarkerHandleSet();
~MarkerHandleSet();
int Length();
int NumberFromHandle(int handle);
- int MarkValue(); // Bit set of marker numbers
+ int MarkValue(); ///< Bit set of marker numbers.
bool Contains(int handle);
bool InsertHandle(int handle, int markerNum);
void RemoveHandle(int handle);
@@ -30,8 +37,10 @@ public:
void CombineWith(MarkerHandleSet *other);
};
-// Each line stores the starting position of the first character of the line in the cell buffer
-// and potentially a marker handle set. Often a line will not have any attached markers.
+/**
+ * Each line stores the starting position of the first character of the line in the cell buffer
+ * and potentially a marker handle set. Often a line will not have any attached markers.
+ */
struct LineData {
int startPosition;
MarkerHandleSet *handleSet;
@@ -39,7 +48,9 @@ struct LineData {
}
};
-// The line vector contains information about each of the lines in a cell buffer.
+/**
+ * The line vector contains information about each of the lines in a cell buffer.
+ */
class LineVector {
public:
enum { growSize = 4000 };
@@ -49,7 +60,7 @@ public:
int *levels;
int sizeLevels;
- // Handles are allocated sequentially and should never have to be reused as 32 bit ints are very big.
+ /// Handles are allocated sequentially and should never have to be reused as 32 bit ints are very big.
int handleCurrent;
LineVector();
@@ -71,9 +82,11 @@ public:
int LineFromHandle(int markerHandle);
};
-// Actions are used to store all the information required to perform one undo/redo step.
enum actionType { insertAction, removeAction, startAction };
+/**
+ * Actions are used to store all the information required to perform one undo/redo step.
+ */
class Action {
public:
actionType at;
@@ -89,6 +102,9 @@ public:
void Grab(Action *source);
};
+/**
+ *
+ */
class UndoHistory {
Action *actions;
int lenActions;
@@ -110,13 +126,13 @@ public:
void DropUndoSequence();
void DeleteUndoHistory();
- // The save point is a marker in the undo stack where the container has stated that
- // the buffer was saved. Undo and redo can move over the save point.
+ /// The save point is a marker in the undo stack where the container has stated that
+ /// the buffer was saved. Undo and redo can move over the save point.
void SetSavePoint();
bool IsSavePoint() const;
- // To perform an undo, StartUndo is called to retrieve the number of steps, then UndoStep is
- // called that many times. Similarly for redo.
+ /// To perform an undo, StartUndo is called to retrieve the number of steps, then UndoStep is
+ /// called that many times. Similarly for redo.
bool CanUndo() const;
int StartUndo();
const Action &GetUndoStep() const;
@@ -127,9 +143,11 @@ public:
void CompletedRedoStep();
};
-// Holder for an expandable array of characters that supports undo and line markers
-// Based on article "Data Structures in a Bit-Mapped Text Editor"
-// by Wilfred J. Hansen, Byte January 1987, page 183
+/**
+ * Holder for an expandable array of characters that supports undo and line markers.
+ * Based on article "Data Structures in a Bit-Mapped Text Editor"
+ * by Wilfred J. Hansen, Byte January 1987, page 183.
+ */
class CellBuffer {
private:
char *body;
@@ -158,7 +176,7 @@ public:
CellBuffer(int initialLength = 4000);
~CellBuffer();
- // Retrieving positions outside the range of the buffer works and returns 0
+ /// Retrieving positions outside the range of the buffer works and returns 0
char CharAt(int position);
void GetCharRange(char *buffer, int position, int lengthRetrieve);
char StyleAt(int position);
@@ -171,8 +189,8 @@ public:
const char *InsertString(int position, char *s, int insertLength);
void InsertCharStyle(int position, char ch, char style);
- // Setting styles for positions outside the range of the buffer is safe and has no effect.
- // True is returned if the style of a character changed.
+ /// Setting styles for positions outside the range of the buffer is safe and has no effect.
+ /// @return true if the style of a character is changed.
bool SetStyleAt(int position, char style, char mask='\377');
bool SetStyleFor(int position, int length, char style, char mask);
@@ -181,12 +199,12 @@ public:
bool IsReadOnly();
void SetReadOnly(bool set);
- // The save point is a marker in the undo stack where the container has stated that
- // the buffer was saved. Undo and redo can move over the save point.
+ /// The save point is a marker in the undo stack where the container has stated that
+ /// the buffer was saved. Undo and redo can move over the save point.
void SetSavePoint();
bool IsSavePoint();
- // Line marker functions
+ /// Line marker functions
int AddMark(int line, int markerNum);
void DeleteMark(int line, int markerNum);
void DeleteMarkFromHandle(int markerHandle);
@@ -194,7 +212,7 @@ public:
void DeleteAllMarks(int markerNum);
int LineFromHandle(int markerHandle);
- // Without undo
+ /// Actions without undo
void BasicInsertString(int position, char *s, int insertLength);
void BasicDeleteChars(int position, int deleteLength);
@@ -204,8 +222,8 @@ public:
void EndUndoAction();
void DeleteUndoHistory();
- // To perform an undo, StartUndo is called to retrieve the number of steps, then UndoStep is
- // called that many times. Similarly for redo.
+ /// To perform an undo, StartUndo is called to retrieve the number of steps, then UndoStep is
+ /// called that many times. Similarly for redo.
bool CanUndo();
int StartUndo();
const Action &GetUndoStep() const;