wiki:BasicText

Version 10 (modified by deyan, 15 years ago) (diff)

--

Basic text requirements

Styling functional

Need to support

  • Java and OS fonts
    • The default font should be a java one in order to make sure that all users will have it
  • Text foreground coloring
    • Transparency
  • Text backround coroling
    • Transparency
  • Styles - Text should support more than one style. For now, styles that exclude each other won't be added. It will be best if text styles can be extended later. This means that it should be possible to add new types of styling. Layout should display only styles that it "knows" about.
    • Styles that should be available now
      • Normal
      • Bold
      • Italics
      • Underline
      • Strikethrough (stikeout)
    • Styles that may be considered later
      • Different underline styles
      • Double strikethrough
      • Superscript
      • Subscript
  • Highlighting - For now, there are 2 types of highlighting that should be available
    • Highlighting as text style - This one is applied when the user creates a link. The links should allow the same styling as the regular text (probably excluding font). Styling applied via link creation should be appended to the current style if possible (if they do not contradict), otherwise - link styling should be displayed (but it will be good old styling to be preserved for later use if needed)
    • Highlighting as external feature - Sophie should support external highlighting. This means that other features (and not the user directly) should be able to highlight text. Note that this should not be preserved in the text. As in the previous case, this highlighting should be appended to the current style if possible (if they do not contradict). This kind of higlighting will be used for book extras, search, spellcheck, etc.
  • User interaction - User should be able to:
    • Navigate in text - when clicking in a text frame (with mouse), the caret should be put in the most near possible position
      • Navigating with arrows - should move the caret in the desired position.
        • Left/right - if there is left/right position in this row, go to it, otherwise go to previous/next row (if any, otherwise do nothing)
        • Ctrl+left/right - same as above, but skip whole words (go to the prev/next space)
      • Up/Down - if there is previous/next row, go to the most near possible position on it, otherwise - do nothing
      • Create paragraphs - every time the user hits enter, end of paragraph should be inserted
      • Create new lines - every time the user hits shift+enter, a new line should be created (but not new paragraph)
    • Append text - append text in an existing position. Empty texts should have one position to begin from.
      • Style appended text - text should preserve its own styling information (if any - typed text should not have one). The styling of pasted text should not be appended to destination formatting
        • Later it may be considered to have different paste ways - for destination and source formatting
    • Remove text - text should be removed with its formatting
      • Delete - removes next character
      • Backspace - removes previous character
      • Ctrl+delete - removes next word
      • Ctrl+backspace - removes previous word
      • Hold Delete/backspace - removes characters one by one as fast as possible
    • Overwrite - When typing with "Insert" pressed, the text should be overwritten. The caret should look different
    • Select
      • Selection with mouse - Via drag while holding left mouse button
      • Via keyboard while holding shift key
      • Control key should allow complex selections
      • Caret should disappear when selecting
      • Selection in more than one frame - selection should be per user, a user should not be able to select in more than one frame (this should be discussed)
  • Text import