- Use 72x72 icon instead of a bitmap
- Use correct control position and size for IDC_SPEAKIMG
- VolumeDlgProc: Add NULL check for DestroyIcon and fix cleanup order
Addendum to 781c247b.
- Fix IntLoadKeyboardLayout function to return the correct HKL value.
- Modify LAYOUT_LIST_NODE structure to add more information.
- Fix LayoutList_GetByHkl function to choose the IME HKLs correctly.
- Ignore DELETED entries correctly.
- Improve UI/UX.
CORE-11700, CORE-13244, CORE-18364
Signed-off-by: Andrei Miloiu <miloiuandrei@gmail.com>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
Reviewed-by: Ștefan Fulea <reactos-contributor@programmer.net>
- Use Unicode (WCHAR) instead of TCHAR
- Code formatting
- Use string safe functions
- Close handles after calling `CreateProcess`
- Save sound path as `REG_EXPAND_SZ` only if the path
contains '%' character, like Windows does
- Fix `wcsdup` leaks
Reviewed-by: Mark Jansen <mark.jansen@reactos.org>
Reviewed-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Reviewed-by: Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
Update of various French translation files for several modules:
CALC, LABEL, DXDIAG, MPLAY32, RAPPS, SHUTDOWN, SNDVOL32, EXPLORER, WINLOGON;
CONSOLE.CPL, MMSYS.CPL; NETCFGX.DLL, SHELL32.DLL, SHLWAPI.DLL, SYSSETUP.DLL
- Also insert curly-brackets for switch-case in GeneralPageProc
- Use correct printf data type for the system uptime
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
Reviewed-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
- CM_Locate_DevNodeW expects a Device Instance ID as second argument,
so it cannot be used for converting a Hardware ID.
- Use SetupAPI functions here instead, as documented in:
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-enumdisplaydevicesw
- Now our desk.cpl passes correct identifier to CPL extensions,
such as deskadp and deskmon, so clicking on "Properties" in the
advanced display properties now works in Windows XP.
- Also fix copypasta in DisplayAdvancedSettings that affected applet
built with MSVC - deskadp extension was loaded twice.
- Also fix magic flag value for EDD_GET_DEVICE_INTERFACE_NAME.
- Changed some wording according to the translation requirements.
- Fixed some mistakes.
- Changed my name.
Reviewed-by: He Yang <1160386205@qq.com>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
This effectively reverts a6005299c6, and
parts of c3da00c42c.
This call is not required, as umpnpmgr already does what is needed.
However, keep the call to EnumDisplayDevices(), so win32k knows that a
new graphic card has been installed.
CORE-18168
Reviewed all Chinese Simplified translation files and updated those
inappropriate or outdated ones.
Co-authored-by: Liu Wenyuan <15816141883@163.com>
Reviewed-by: Chan Chilung <eason066@gmail.com>
Reviewed-by: He Yang <1160386205@qq.com>
Reviewed-by: Zheng Jianping <robsean@126.com>
Reviewed-by: Luo Yufan <njlyf2011@hotmail.com>
Reviewed-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
- Added zh-HK translation for following files:
- [BASE/SERVICES/W32TIME]
- [BASE/SYSTEM/...] (except CMD console only applications)
- [FDEBUG]
- [DLL/CPL/...] (except Wine related applications)
- [DLL/SHELLEXT/...]
- [DLL/WIN32/...] (not all applications are translated, and Wine related applications are excluded from this part)
- [MODULES/ROSAPPS/APPLICATIONS/...] (not all applications are translated)
- [SCREENSAVERS]
- [NTVDM]
- [USERSRV]
- Translation Improvement
- Fix header for zh-TW and zh-HK translation files
Reviewed-by: Luo Yufan <njlyf2011@hotmail.com>
Reviewed-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
CORE-12451, CORE-17601, CORE-17803
Replaces PR #4281.
When changing the console output code page, check whether the current
font can support it. If not, try to find a suitable font for the new
code page. If none can be found:
- if we are creating a new console, forcefully switch to codepage 437
(OEM USA) and retry finding a font, falling back to "Terminal" if
none could be found;
- if we were just changing the current CP, just fail and keep the old
code page and font.
Rework the console font selection/creation functions for this new job
(see CreateConsoleFontEx() and friends). Elements of implementation
based from https://github.com/microsoft/terminal ; see code for more
information.
Silence the noisy IsValidConsoleFont2() diagnostic messages.
Add Doxygen documentation.
[CONSOLE.CPL] Only add "Terminal" to the enumerated list of faces
+ add a TODO implementation comment.
colors.c(129): warning C6287: Redundant code: the left and right sub-expressions are identical.
colors.c(159): warning C6001: Using uninitialized memory 'colorIndex'.
colors.c(180): warning C6385: Reading invalid data from 'ConInfo->ColorTable': the readable size is '64' bytes, but '259696' bytes may be read.
(I thank ThFabba for the suggestion fix.)
console.c(313): warning C6387: 'ConInfo->hWnd' could be '0': this does not adhere to the specification for the function 'SendMessageW'.
font.c(60): warning C6387: 'Preview->hFont' could be '0': this does not adhere to the specification for the function 'GetFontCellSize'.
font.c(230): warning C6001: Using uninitialized memory 'szFontSize'.
font.c(230): warning C6054: String 'szFontSize' might not be zero-terminated.
font.c(671): warning C6387: 'hFont' could be '0': this does not adhere to the specification for the function 'GetFontCellSize'.
layout.c(502): warning C6387: 'FontPreview.hFont' could be '0': this does not adhere to the specification for the function 'SelectObject'.
Any valid code page value name in System\CurrentControlSet\Control\Nls\CodePage
is a string representation of its corresponding decimal value, that
cannot be larger than MAXUSHORT == 65535, i.e. longer than 5+1
characters.
Noticed with the analyser warning
dll\cpl\console\options.c(74): warning C6262: Function uses '32808' bytes
of stack: exceeds /analyze:stacksize '16384'. Consider moving some data to heap.
Make the enumeration loop actually stop when ERROR_NO_MORE_ITEMS is
returned. If we got another error, e.g. because the value name was
too long (and thus, an invalid code page), just ignore and continue
looping.
- Added translation for:
- [W32TIME]
- [MODE]
- [TIMEOUT]
- [MODEMUI]
- [ARPING]
- [FRAGINATOR]
- and more
- Updated existing translation
- [WINNLS] Update cht (zh-TW) and zhh (zh-HK)
- [DOC] Update rules in Chinese translation notes.txt
- Wine translation sync
Some of the punctuation use in WIne has been converted to half-width,
so the punctuation will no longer synced.
Fix the issue of the changes of the environment values not being set sometimes through fancy dialog box:
Make sure the environment value buffer is always reallocated before taking the values.
Converted from Cantonese to HK-Style Written Chinese.
Also assign zh-HK translations to the ReactOS Chinese
translation team in the CODEOWNERS file.
Reviewed-by: He Yang <1160386205@qq.com>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
Reviewed-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
- Correctly handle the return values for WM_SIZING and WM_SIZE messages.
- Use NULL for hWndInsertAfter parameter of DeferWindowPos() when
we don't care about the Z-order.
- Specify SWP_NOMOVE for controls that don't move during resizing.
- Fix the IDOK and IDCANCEL buttons when resizing the environment
variables list dialog.
- Fix the dialog "moving" effect that happened whenever an attempt
was made to resize the dialog from either of the
top/left borders, or the top-right/top-left/bottom-left corners,
to a size smaller than the minimal one.
- Use DWLP_USER instead of GWLP_USERDATA when storing user-specific
data into the dialog, since the latter can be used internally by
the Win32 dialog manager implementation.
Improve the "Edit Environment Variable" dialog box to be functionally as similar to the one of Windows 10.
CORE-11733
- Improved the existing dialog box. In particular, allow it to be resizable.
- Implemented new "fancy" dialog box for variables containing multiple directories as values,
showing them in a list.
Co-authored-by: Gabriel Aguiar <fgygh5804@gmail.com>
Reviewed-by: Joachim Henze <Joachim.Henze@reactos.org>
Reviewed-by: Jose Carlos Jesus <zecarlos1957@hotmail.com>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
Signed-off-by: Gabriel Aguiar <fgsoftwarestudio@gmail.com>
- usetup: New bootsector page.
- shell32: Copy and paste, and moving elements.
Also, some strings related to the shutdown and logoff.
- Minor Spanish grammar fix - some female words and minor latin american typos.
- First revision of the .inf, that includes the translation of the Services,
audio, processors and other drivers and minor things.
CORE-17545
Addendum to commit d635ce0c.
dll/cpl/sysdm/general.c:156:25: warning: variable 'hCreditsDC' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (hDC == NULL)
^~~~~~~~~~~
dll/cpl/sysdm/general.c:216:25: note: uninitialized use occurs here
if (hCreditsDC != NULL) DeleteDC(hCreditsDC);
^~~~~~~~~~
and the same for hLogoDC:
dll/cpl/sysdm/general.c:215:25: note: uninitialized use occurs here
if (hLogoDC != NULL) DeleteDC(hLogoDC);
^~~~~~~
CORE-17545
Addendum to commit d635ce0c.
- Move the HDC variables initialization via function calls, out of
the variables declaration block.
- Fix warnings (and identical for base/system/userinit/livecd.c):
dll/cpl/sysdm/general.c:72:9: warning: variable 'hLogo' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (hDC == NULL || hDCLogo == NULL || hDCMask == NULL)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dll/cpl/sysdm/general.c:130:9: note: uninitialized use occurs here
if (hLogo != NULL) DeleteObject(hLogo);
^~~~~
and similar for hMask too:
dll/cpl/sysdm/general.c:129:9: note: uninitialized use occurs here
if (hMask != NULL) DeleteObject(hMask);
^~~~~
This fixes a regression with the AlphaBlending on single left-click
on the ros logo in general tab.
That regression was introduced by
0.4.15-dev-178-g d635ce0cc0
So it can be seen as an addendum to (#2707).
We luckily did not have any affected releases yet.
I tried initially to use Tag(e) but that does look too
crowded with the stuff after it. Since Windows is also not
consistent with the () for singular vs plural, I did chose
always plural "Tage".
Most often people will see "0 Tage" anyway, and that fits well.
The version string cutoff started to happen when we switched from SVN
with its short revision number to git with the longer hashes.
0.4.7-dev-502-gc2c66af was the first git-only rev (2017-Oct-03)
This brings the dialogs layout closer to XP.
Also fixes some other truncations for specific languages.
And unifies the touched text controls sizes for all languages.
The credits have been moved to readme.txt where they are more present and
we can avoid having to groom all languages files each time we want to add
a new dev (and sysdm.cpl to grow each time). Less maintenance.
0.4.15-dev-1629-g9aa73da gcc 8.4.0 dbg RosBE2.2.1 I18N=all binary size
sysdm.cpl before: 925.696bytes after: 705.024bytes
readme.txt still fits into a single NTFS cluster afterwards with 3702bytes
- Add Chinese Traditional language support for CHARMAP_NEW, DRWTSN32, UTILMAN, CHKDSK.
- Improve translation for CLIPBRD, MSCONFIG(_NEW), NOTEPAD, SHUTDOWN, SNDREC32, WINHLP32, DISKPART, FORMAT, REGSVR32, RUNDLL32, USERINIT, DESK.CPL and TIMEDATE.CPL.
If the registry key that holds the names of installed opengl drivers is missing, all list boxes in openglcfg are empty. This is a minor code rearrangement to fix this behavior.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
## Purpose
[SYSDM]
- When closing System Properties page, log show
(win32ss/user/ntuser/windc.c:749) err: [00060138] GetDC() without ReleaseDC()!
because GetDC() is called (multiple times) without properly calling ReleaseDC() as required in order to release a device context.
- This module also lacks some error management in case null DC are provided (on error).
- LiveCD Userinit, based on SYSDM is affected too.
[DESK]
- Fix missing ReleaseDC related to the spectrum (color depth)
## Proposed changes
- ReleaseDC() added.
- Error management in case of null DC.
- Overall alignement of LiveCD Userinit and SYSDM.
* [DESK] Add initial directory flag and set it to My Pictures. Also set OFN_EXPLORER style.
* Use CSIDL_MYPICTURES instead of environment variable concoction.
* Fix formatting.
It may happen that the time-zone information in the registry key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
contains an empty StandardName / DaylightName, or is too long for the
standard maximum 32-character length, and therefore is returned empty.
And/or it may happen as well that some of the standard names (value "Std")
present in some of the time zones listed in
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
are similarly too long, and therefore are returned as empty strings.
In case this happens, perform comparisons instead with the numerical
values Bias, StandardBias, DaylightBias, StandardDate and DaylightDate
in order to find a match.
It is interesting to note also that in Vista+ there is an additional
REG_SZ value "TimeZoneKeyName" in
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
that allows to directly find a match in the time zones list in
"Windows NT\CurrentVersion\Time Zones".
This small win32 library provides time-zone utility wrappers around
Win32 functions, that are used by different ReactOS modules such as
timedate.cpl, syssetup.dll, and a possible future 'tzutil' tool.
The code has been extracted from the common code found in both
timedate.cpl and syssetup.dll.
* [TRANSLATION] New PT translation to inetcpl
* [TRANSLATION] Fix SUBLANG in file cpl/joy/lang/pt-PT.rc to SUBLAG_NEUTRAL
* [TRANSLATION] New PT translation to cpl/mmsys/lang/pt-PT.rc
* [TRANSLATION] Fix SUBLANG in cryptui_Pt.rc file
Time/Date control panel applet displays the status of the NTP server synchronization with the system informing the user the actual condition of the said sync, if it has failed or suceeded. The commit also implements IDS_INETTIMEWELCOME which serves as a placeholder as Time/Date loads the last successful attempt of NTP synchronization which I don't know how the CPL remembers it. With that said, IDS_INETTIMEWELCOME will stay for a while until someone figures out how timedate.cpl works internally.
CORE-16684
This PR merely checks if the string is empty and displaying (only) a debug information to the debugger, at disposal of displaying a message box. I might implement such dynamic resource string to the CPL later in a next PR.
CORE-16654
- Currently used profiles cannot be copied or deleted.
- Unknown profiles cannot be copied.
- A double click on a profile opens the change profile type dialog.