wxMaxima
Loading...
Searching...
No Matches
Data Structures | Macros | Functions
test_WorksheetCursor.cpp File Reference

Pins the worksheet's cursor model before it is gathered into a cursor class. More...

#include <wx/app.h>
#include <wx/bitmap.h>
#include <wx/dcmemory.h>
#include <wx/frame.h>
#include <wx/log.h>
#include "Configuration.h"
#include "worksheet/Worksheet.h"
#include "cells/EditorCell.h"
#include "cells/GroupCell.h"
#include <cstdlib>
#include <unistd.h>
#include <catch2/catch.hpp>
Include dependency graph for test_WorksheetCursor.cpp:

Data Structures

class  TestApp
 

Functions

 SCENARIO ("Activating an editor cell deactivates the h-caret and the selection")
 
 SCENARIO ("Setting the h-caret deactivates the editor cursor")
 
 SCENARIO ("The h-caret at the document start is active with a null position")
 
 SCENARIO ("Deactivating the editor cursor does not re-activate the h-caret")
 
 SCENARIO ("Selecting a cell leaves the selection as the focus owner")
 
 SCENARIO ("SetHCaret clears an existing cell selection")
 
 SCENARIO ("ShowHCaret without a position places the caret at the document end")
 
 SCENARIO ("OpenHCaret opens a new cell at the h-caret and activates its editor")
 
 wxDECLARE_APP (TestApp)
 
int main (int argc, char **argv)
 

Detailed Description

Pins the worksheet's cursor model before it is gathered into a cursor class.

The worksheet has two cursors - the horizontal caret between group cells and the text cursor inside an active EditorCell - with the invariant that at most one is active at a time; while cells are selected, neither is. Today that invariant is re-established by hand at every mutation site, and the state is split between Worksheet (h-caret) and CellPointers (active cell, written by EditorCell itself). These scenarios pin the exact transition behavior so the planned WorksheetCursor extraction cannot change it.