Offering {K,L,E,G,C} modes, the line composer enables the user to create a line as they would on a real hardware. For instance, switching to the E mode and pressing the Z key, the LN keyword appears.
There are currently some imperfections to the CSpectrumBase::CLineComposerPropGridEditor class.
Non-printable characters are not displayed. This is a major drawback as non-printable characters may appear in tweaked header files, particularly in name field. For instance, the name of the program of the Skull and Crossbones game is (hexa-decimally) 0x16, 0x01, 0x00, 0x53, 0x4B, 0x55, 0x4C, 0x4C, 0x06, 0x20. When loading, the name of the game looks as follows.
Non-printable characters cannot be typed in. To solve for this, a new mode "X" should be introduced in which user can type in hexa-decimal numbers, which immediately translate to corresponding (printable) characters, UDG graphics, or keywords.
The content doesn't scroll horizontally. It's thus impossible to edit the line "beyond" the visible rectangle. Instead, the line should be horizontally scrolled so that the cursor (and a bit of the line before and after it) is always visible.
The cursors {K,L,E,G,C} are just a painting. It thus may lead to confusing situations in which there are suddenly two "cursors" on the screen - one in the line composer component and one in another component (e.g. hexa-editor). Instead, the cursor should be represented as a caret, so that it's guaranteed that at any moment there is just one "cursor" on the screen.
The editor is mouse-unaware. When clicked into the line content, the ZX cursor should be positioned so that it's as close to the mouse cursor.
Offering {K,L,E,G,C} modes, the line composer enables the user to create a line as they would on a real hardware. For instance, switching to the E mode and pressing the Z key, the LN keyword appears.
There are currently some imperfections to the CSpectrumBase::CLineComposerPropGridEditor class.