MCC TextEditor 15.50

@tboeckel tboeckel released this Jan 15, 2018

Version 15.50 of MCC TextEditor

Changes:

  • mcp/Dispatcher.c: add the unique names for private custom classes for MUI4
    and up only. With MUI 3.8 this causes crashes.
  • mcc/Dispatcher.c: don't trigger unwanted notifications in case an
    application sets an attribute like MUIA_TextEditor_HasChanged in parallel
    with MUIA_NoNotify=TRUE.
  • mcc/Dispatcher.c: forget about any possible detected changes due to the
    initial text import right during OM_NEW.
  • mcc/HandleInput.c: respect any meta data for triggering the attribute
    MUIA_TextEditor_MetaDataChanged in case a deleted block contains some.
  • mcc: optimized the handling of the new attributes to get notified about
    changes of contents and metadata. I.e. changing the alignment should no
    longer trigger MUIA_TextEditor_ContentsChanged.
  • mcc: implemented the attributes MUIA_TextEditor_ContentsChanged and
    MUIA_TextEditor_MetaDataChanged to complement the already existing but more
    global attribute MUIA_TextEditor_HasChanged. The latter attribute can
    reflect arbitrary changes only, while the former two attributes will
    distinguish between changed textual contents and changed meta data like
    alignment, color or style.
  • mcc/GetSetAttrs.c: reworked the global alignment handling. Setting the
    global alignment no longer destroys any previously set line based alignment
    and can also be set during OM_NEW. This finally closes #20.
  • mcc/GetSetAttrs.c, mcc/Navigation.c: implemented MUIA_TextEditor_GlobalFlow
    to set a global text alignment instead of a line based one. This refs #20.
  • mcc/Methods.c: the MUIM_TextEditor_IndexToCursorXY method now returns a
    boolean value which indicates whether the index could be successfully
    converted to an X/Y position pair or not.
  • mcp/Dispatcher.c: added unique names for private custom classes.
  • mcc, mcp: removed an unused pen setting.
  • mcp/CreatePrefsGroup.c: removed the explicit column numbers from the title
    format. These are of no use when the column order is static.
  • mcp/ObjectCreator.c: fixed the wrong attribute for the settings items
    MUICFG_TextEditor_BlockQual. A numeric value must not be pen spec. This refs
    #19.
  • mcc/HandleInput.c: explicitly check for no block qualifier (mouse only).
    This refs #19.
  • mcc/NewGfx.c: fixed a warning about using an uninitialized variable.
  • mcc/EditorStuff.c: Corrected raster scroll in accordance with bottom space
    usage.
  • mcc/GetSetAttrs.c: Corrected line dump in accordance w. bottom space usage.
  • mcc/HandleInput.c, mcc/Methods.c:
    Implemented new behaviour for user clicks in the bottom space.
  • mcc/MixedFunctions.c: Better cursor drawing and drawbottom evaluations and
    tweaks for bottom space usage
  • mcc/Navigation.c : Tweaks for bottom space usage.
  • mcc/PrintLinesWithStyles.c: A bug in separator drawing removed. Better
    evaluation for partial line drawing in double buffer mode.
  • mcc/Methods.c: horizontal autoscroll when block marking implemented.
  • mcc/private.h, mcc/GetSetAttrs.c, mcc/Dispatcher.c,
    mcc/MixedFunctions.c, mcc/PrintLinesWithStyles.c:
    • Correct horizontal pattern calculations and scroll implementations.
    • Graphic glithces at the bottom of the gadget removed.
    • data->xpos made LONG and typecasts removed.
  • mcc/CaseConversion.c, mcc/ColorOperators.c, mcc/Dispatcher.c,
    mcc/EditorStuff.c, mcc/GetSetAttrs.c, mcc/HandleInput.c, MixedFunctions.c,
    mcc/Navigation.c, mcc/NewGfx.c, mcc/PrintLineWithStyles.c,
    mcc/StyleOperators.c, mcc/UndoFunctions.c, mcc/private.h,
    include/mui/TextEditor_mcc.h:
    • Lots of (re-)implementations to support a horizontal scroller in
      NoWrapMode.
    • TextFitNew() and TextLengthNew() are re-implemented to support very large
      input/return values and instead of taking a dummy TextExtent, TextFitNew()
      now takes a TextExtentNew structure which uses LONG type members and fills
      it properly.
      So that its te.Width member can be used instead of calling another
      TextLengthNew(). This provides very good optimization.
    • Cursor being drawn out of gadget boundaries issue when in NoWrapMode
      resolved.
    • Issue of highlighted text changing color when edited resolved.
    • Passing a NULL to this MUIA_TextEditor_HorizontalScroll now acts as a
      switch for turning off horizontal scrolling even in NoWrapMode.
    • Behaviour of FLG_HScroll re-implemented
      (now keeps the state of horizontal scrolling on or off).
    • New public attribute MUIA_TextEditor_HorizontalSlider (passing a NULL to
      this attribute disables the horizontal scroll facilities).
  • library.c: moved the system and CPU description behind the copyright part.
  • all/Debug.c: declare inlined _INDENT() function as static to avoid warnings
    of GCC5.
  • mcp/Makefile: generate ISO8859-1 encoded catalogs instead of UTF8 encoded
    ones.
  • mcc/ClipboardServer.c: fixed a missing initialization of the session local
    instance data pointer which caused a crash when copying text to the
    clipboard. This closes #4.

MCC TextEditor 15.47

@jens-maus jens-maus released this Aug 6, 2016 · 74 commits to master since this release

Version 15.47 of MCC TextEditor

Changes:

  • create a fully layered rastport for double buffering instead of using a non-layered one. This fixes the issues with italic text starting in the first column. Italic text might cause drawing to coordinates left of the desired text position and hence requires proper clipping.
  • implemented a new method to cause asynchronous redraws. This is necessary, because MUI4 forbids recursive invokations of MUIM_Draw to avoid infinit loops. However, the best approach would be to fix this in TextEditor.mcc directly and NOT to call MUI_Redraw() recursively.
  • fixed a coloring issue in pen mode
  • implemented MUIA_TextEditor_RGBMode to completely avoid the usage of pens for text rendering. All pen numbers will be converted to direct RGB values as soon as their color information is available, i.e. MUIM_Setup was called for the TextEditor object.
  • reworked the RGB color handling to be independent of patches like AfAOS on AmigaOS3.
  • export the lower 24bits of the RGB color only for consistency with the documentation and the import functions.
  • use SetRPAttrs() only to set the text color
  • implemented support for direct RGB color specs as known from MUI4's text engine. Use escape sequences like \033P[RRGGBB] to set the RGB color "RRGGBB" encoded in hex. The visual display of such RGB colors requires a hi/truecolor screen and a graphics.library which is able to handle such RGB colors. The latter is true for AmigaOS 4, MorphOS and AROS. For AmigaOS 3.x a patch like AfAOS is required.
  • implemented an alternative way to handle the current cursor position. This way no longer treats the position as separate X and Y values but as an index into the text buffer. This index value is then converted into the known X and Y values automatically. Thanks to Andreas Falkenhahn for the suggestion.