Tries now to map the "License" text set to "Freeware" to the
LICENSE_FREEWARE "LicenseType" so it is translated correctly (LoadString).
Fixes the following:
- If only the "License" field is set in the DB, nothing will change
(this applies to 99% of the current entries in the DB).
- If both "LicenseType" and "License" are set, both will be used
(no observable change in behavior): "Open Source (GPL v2)" etc.
- If only "LicenseType" is set, it will now display just the type
"Freeware" instead of "Freeware ()".
This is done only for "Freeware", because the others (the open source ones)
have many variations. "OpenSource", "Open Source", "Open Source (GPL)" etc.
- Convert icons/*_cur.ico to the cursor files (*.cur).
- The hot spot is (16, 16) (default).
- Rename icons/ folder as img/.
- Use LoadCursorW instead of LoadIconW
for cursors.
- Use CURSOR statements for cursor files
instead of ICON statements in rsrc.rc.
- I used GIMP to convert the icon files to the PNG files.
- I used RealWorld Cursor Editor to convert the PNG files to the cursor files.
CORE-19297
The Copy-To-File feature had some bugs that the user couldn't save.
- Modify SelectionModel::GetSelectionContents.
- Delete SelectionModel::CopyBitmap, SelectionModel::LockBitmap,
and SelectionModel::UnlockBitmap functions.
CORE-19186
Reduce code and binary size a bit. This will reduce 1024 bytes in binary.
Unify ToolBase::OnFinishDraw and ToolBase::OnCancelDraw to ToolBase::OnEndDraw.
CORE-19094
- Respect the toggle key settings.
- Change the hot key settings in
base/setup/lib/mui.c.
- Revert IntDefWindowProc function about
Alt+Shift handling.
- Delete some code in
co_IntProcessKeyboardMessage for Alt+Shift
handling.
- Add IntGetNextKL, IntLanguageToggle, and
IntCheckLanguageToggle helper functions.
- Modify ProcessKeyEvent and
UserGetLanguageToggle functions to
support [Left Alt]+Shift and Ctrl+Shift.
- Improve WM_INPUTLANGCHANGEREQUEST
handling.
- Message handling shouldn't access kbswitch
directly.
CORE-10667
- Use the same keypress 'C' to create either primary or logical partitions.
Their type is automatically determined, whether they are created in
general unpartitioned space, or space within an extended partition.
- Extensively adapt the translations to reflect these changes.
Do not do that yet for extended partitions (containers).
This is possible, because when creating partitions, we do that on
unpartitioned space that is already "tagged" as either being "logical"
or not, and the partition style is inherited from that.
The resulting code is simpler, yet working as it should.
This will also help in the future for supporting other platforms, where
the concept of "primary", "extended" and "logical" partitions do not
exist (basically all platforms except BIOS-based PC-AT).
Unify CREATE_{PRIMARY,EXTENDED,LOGICAL}_PARTITION_PAGE
(i.e. Create{Primary,Extended,Logical}PartitionPage() functions)
into a single CREATE_PARTITION_PAGE (i.e. CreatePartitionPage()).
A lot of code was duplicated there (display, size input, etc.) just
for calling ultimately the Create{Primary,Extended,Logical}Partition()
helper functions.
This will also help in the future for supporting other platforms, where
the concept of "primary", "extended" and "logical" partitions do not
exist (basically all platforms except BIOS-based PC-AT).
- Improve ImageModel::PushImageForUndo.
- Use FormatMessage in newly added
ShowOutOfMemory function.
- Call ShowOutOfMemory() when out of memory.
CORE-19227, CORE-19094
Some of the Menu-controls are just dummies in the RC,
because those controls are dynamically replaced at runtime
based on which tab/propsheet is active in taskmgr.
They are replaced by the IDS_MENU_* strings then.
Deduplicating them has many advantages:
1.) It shrinks binary size:
master taskmgr.exe RosBEWin2.2.2 GCC8.4.0dbg 708.608 -> 696.832 bytes
2.) Translators don't get lured into translating dead stuff,
assuming they translated the menu properly, while in fact they did not.
This is *real*. Happened even to me multiple times already, although
I am actually aware of the design.
3.) Some of them were offsync already between the dummy and the real thing.
4.) It reduces diff between en-US and other rc's.
* Aside of that improve alignment in some languages rcs in the "Shutdown"-menu-section,
* and improve a translation in de-DE, sq-AL, and zh-CN.
* [TASKMGR] id-ID.rc 2 accelerators in the same string is definitely wrong
* [TASKMGR] *.rc, make sure that warning is in all 30 langs, especially in en-US.rc
* [TASKMGR] for several translations add FIXME-comments regarding accelerator collisions
- Delete global zoomTo function.
- Add CCanvasWindow::zoomTo and
CCanvasWindow::getNewZoomRect functions.
- Rename CCanvasWindow::updateScrollInfo as
CCanvasWindow::updateScrollRange.
- Rename CCanvasWindow::resetScrollPos as
CCanvasWindow::updateScrollPos.
- Draw the proper zoom rectangle on mouse move.
- Revert the active tool on click when the tool
was Zoom.
CORE-19094
Drawing lines smoothly on big image.
- In CCanvasWindow::DoDraw, calculate the
intersection to reduce bits transfer.
- Improve SmoothDrawTool in handling Shift key.
CORE-19094, CORE-19237
This allows to move this choice sooner in the process, thus having all
the user key presses at first, then all the actual installation going
without any key presses needed anymore... (that is, unless you wanted
to install the bootloader on a removable device. Then it will prompt
you there!)
- Additional "cosmetic"/future-proof changes: Rename all instances
of "floppy" in the bootloader install variables to "RemovableDisk"
because it would be great to have this install choice later.
- Layout adjustments in the translated bootloader pages.
- Skip bootloader installation on upgrades. The idea here is that if
we were able to find a ReactOS installation to upgrade, this means
we were able to find a valid bootloader + boot entry.
See also PR #5633.
This logic may be slightly improved in the future to detect whether
the underlying bootloader is FreeLdr and if so, only update its files.
But this is for the future.
In some situations, the scroll position should be reset.
- Add CCanvasWindow::resetScrollPos method.
- Reset the scroll position on loading a file.
- Reset the scroll position on mirroring/rotating
the image.
CORE-19094