[CHARMAP] Functionality Improvements and Bug Fixes (#2560)
authorCharles Ambrye <giawa@hotmail.com>
Sun, 7 Jun 2020 17:34:45 +0000 (10:34 -0700)
committerGitHub <noreply@github.com>
Sun, 7 Jun 2020 17:34:45 +0000 (19:34 +0200)
commit99dd292553132adacd7095c4d03f2c2a9fbbf2ab
treeae1e9528c1069bd52a48eb6d8351b5052211d5e9
parent31e00140d3dc90be67772c217a193b0c2deb5ceb
[CHARMAP] Functionality Improvements and Bug Fixes (#2560)

- Resize the window slightly when compiled with REMOVE_ADVANCED to avoid deadspace at the bottom of the window.

- Skip over the non-printable characters by starting with character ' ' + 1.

- Instead of iterating over every cell, simply compute the cell x and y using the CellSize.

- Modify behaviour of charmap to allow large character render on mouse move, only hiding the larger character on double click.

- Simplify math for moving window to be on desktop.
Added FIXME to highlight this doesn't work well on multi-monitor setups.
Changed xPos and yPos to LONG since negative numbers are valid on multi-monitor setups.

- Do not draw invalid glyphs on the map (can happen when switching fonts or filtering existing font).
- Do not allow mouse-over of invalid glyphs.

- Fix bug that caused the Help button to remain enabled as it was being modified before it was even created.
- Do a better job at finding the correct glyph under the mouse.

- Ensure the active cell is cleared correctly.

- Invalidate the rect around the previously active cell to ensure it gets redrawn as inactive.

- Fix bug from CORE-10518 (initial active cell was not being invalidated on scroll).

- Do not try to copy a character to the output if there is no active cell selected.

- Populate the advanced portion of the screen with several built-in code pages (the list is hardcoded so that we don't enumerate everything).

- Add functionality to filter the character map by a code page (called a character set in this program).

- Some fonts list 0x0000 as drawable, even when it isn't, so ignore any valid glyphs that contain it.
32 files changed:
base/applications/charmap/charmap.c
base/applications/charmap/lang/bg-BG.rc
base/applications/charmap/lang/ca-ES.rc
base/applications/charmap/lang/cs-CZ.rc
base/applications/charmap/lang/de-DE.rc
base/applications/charmap/lang/el-GR.rc
base/applications/charmap/lang/en-US.rc
base/applications/charmap/lang/es-ES.rc
base/applications/charmap/lang/et-EE.rc
base/applications/charmap/lang/fr-FR.rc
base/applications/charmap/lang/he-IL.rc
base/applications/charmap/lang/id-ID.rc
base/applications/charmap/lang/it-IT.rc
base/applications/charmap/lang/ja-JP.rc
base/applications/charmap/lang/ko-KR.rc
base/applications/charmap/lang/lt-LT.rc
base/applications/charmap/lang/nl-NL.rc
base/applications/charmap/lang/no-NO.rc
base/applications/charmap/lang/pl-PL.rc
base/applications/charmap/lang/pt-BR.rc
base/applications/charmap/lang/ro-RO.rc
base/applications/charmap/lang/ru-RU.rc
base/applications/charmap/lang/sk-SK.rc
base/applications/charmap/lang/sq-AL.rc
base/applications/charmap/lang/sv-SE.rc
base/applications/charmap/lang/tr-TR.rc
base/applications/charmap/lang/uk-UA.rc
base/applications/charmap/lang/zh-CN.rc
base/applications/charmap/lang/zh-TW.rc
base/applications/charmap/map.c
base/applications/charmap/precomp.h
base/applications/charmap/resource.h