CS 392F HW1 — Adrian Quark

Overview

To compile and run a program based on the equation file Basic.equation, run: ./run Basic.equation

To create new equation files, run: guidsl model.m

Features

model.m defines the feature model.

This implementation is very fine-grained, involving 11 features for a total of 3*28 possible programs.

Print
Print menu item and button.
FormatRaw
Formatting options for raw text (line wrapping and font). Requires TextRaw.
FormatStyled
Formatting options for styled text (regular/bold/italic). Requires TextStyled. This is more a proof of concept than a complete implementation of rich text formatting.
Find
Find and Find Again options.
Clipboard
Cut, Copy, Paste, and Select All.
Undo
Undo and Redo.
File
File New, Open, Save, and Save As.
MenuBar
Menu bar.
ToolBar
Tool bar. This simply enables the toolbar which is actually populated by the other features. As a future project it would be interesting to allow features to register "actions" in some higher-level abstract way so that tool bars and menu bars could be generated more flexibly.
TextRaw
Raw text editing area. Conflicts with TextStyled.
TextStyled
Styled text editing area. Conflicts with TextRaw.
Base
Base. Requires TextRaw or TextStyled.

I began experimenting with creating an "SWT" feature, but found it too tedious to create all the necessary interfaces to make the existing features toolkit-neutral.

Equation Files

Minimal.equation
A minimal scratch pad without even the capability to save.
Basic.equation
A basic editor with save, undo, clipboard, find, print.
FullRaw.equation
A fully-featured editor for plain text.
FullStyled.equation
A fully-featured editor for styled text.