mirror of
https://github.com/reactos/reactos
synced 2025-10-07 00:42:44 +02:00
Compare commits
1 Commits
Testbot
...
shell32_19
Author | SHA1 | Date | |
---|---|---|---|
|
442898a452 |
3
.gitattributes
vendored
3
.gitattributes
vendored
@@ -30,9 +30,6 @@
|
||||
*.TXT text
|
||||
*.y text
|
||||
|
||||
# Files with these extensions must always have LF (Unix) line endings.
|
||||
*.sh text eol=lf
|
||||
|
||||
# Files with these extensions end up in the built ReactOS system, so they
|
||||
# need to have CRLF line endings.
|
||||
*.bat text eol=crlf
|
||||
|
1
.github/FUNDING.yml
vendored
1
.github/FUNDING.yml
vendored
@@ -1 +1,2 @@
|
||||
custom: ['https://reactos.org/donate/', 'https://www.paypal.me/ReactOS']
|
||||
liberapay: ReactOS
|
||||
|
5
.github/PULL_REQUEST_TEMPLATE.md
vendored
5
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -17,8 +17,3 @@ _Use a TODO when your pull request is Work in Progress._
|
||||
|
||||
- [ ]
|
||||
- [ ]
|
||||
|
||||
## Testbot runs (Filled in by Devs)
|
||||
|
||||
- [ ] KVM x86:
|
||||
- [ ] KVM x64:
|
52
.github/labeler.yml
vendored
52
.github/labeler.yml
vendored
@@ -1,53 +1,29 @@
|
||||
# Labelling by the files touched
|
||||
|
||||
ATL:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- sdk/lib/atl/**
|
||||
- sdk/lib/atl/**
|
||||
|
||||
drivers:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- drivers/**
|
||||
- sdk/lib/drivers/**
|
||||
- all-globs-to-any-file:
|
||||
- win32ss/drivers/**
|
||||
- '!win32ss/drivers/font/**'
|
||||
- drivers/**
|
||||
- sdk/lib/drivers/**
|
||||
- any: ["win32ss/drivers/**", "!win32ss/drivers/font/**"]
|
||||
|
||||
freeldr:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- boot/freeldr/**
|
||||
- boot/freeldr/**
|
||||
|
||||
"kernel&hal":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- hal/**
|
||||
- ntoskrnl/**
|
||||
- hal/**
|
||||
- ntoskrnl/**
|
||||
|
||||
ROSTESTS:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/rostests/**
|
||||
- modules/rostests/**
|
||||
|
||||
shell:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- base/shell/explorer/**
|
||||
- base/shell/rshell/**
|
||||
- dll/shellext/**
|
||||
- dll/win32/browseui/**
|
||||
- dll/win32/shell32/**
|
||||
- base/shell/explorer/**
|
||||
- base/shell/rshell/**
|
||||
- dll/shellext/**
|
||||
- dll/win32/browseui/**
|
||||
- dll/win32/shell32/**
|
||||
|
||||
Win32SS:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- win32ss/**
|
||||
|
||||
"input method":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- base/ctf/**
|
||||
- win32ss/user/imm32/**
|
||||
- win32ss/user/ntuser/ime.c
|
||||
- win32ss/user/user32/misc/imm.c
|
||||
- win32ss/**
|
||||
|
132
.github/workflows/build.yml
vendored
132
.github/workflows/build.yml
vendored
@@ -8,25 +8,19 @@ jobs:
|
||||
compiler: [gcc, clang]
|
||||
arch: [i386, amd64]
|
||||
config: [Debug, Release]
|
||||
dllver: ['0x502', '0x600']
|
||||
exclude:
|
||||
- dllver: 0x600
|
||||
compiler: clang
|
||||
- dllver: 0x600
|
||||
config: Release
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get RosBE build specifics
|
||||
id: get_rosbe_spec
|
||||
run: |
|
||||
gcc -march=native -Q --help=target | grep "\-march= " | awk '{print $NF}'
|
||||
echo march-sha=$(gcc -march=native -Q --help=target | sha1sum | awk '{print $1}') >> $GITHUB_OUTPUT
|
||||
echo git-sha=$(git ls-remote https://github.com/zefklop/RosBE.git | grep unix_amd64 | awk '{print $1}') >> $GITHUB_OUTPUT
|
||||
echo ::set-output name=march-sha::$(gcc -march=native -Q --help=target | sha1sum | awk '{print $1}')
|
||||
echo ::set-output name=git-sha::$(git ls-remote https://github.com/zefklop/RosBE.git | grep unix_amd64 | awk '{print $1}')
|
||||
wget https://gist.githubusercontent.com/zefklop/b2d6a0b470c70183e93d5285a03f5899/raw/build_rosbe_ci.sh
|
||||
- name: Get RosBE
|
||||
id: get_rosbe
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: RosBE-CI
|
||||
key: RosBE-CI-${{runner.os}}-${{steps.get_rosbe_spec.outputs.march-sha}}-${{steps.get_rosbe_spec.outputs.git-sha}}-${{hashfiles('./build_rosbe_ci.sh')}}
|
||||
@@ -46,16 +40,16 @@ jobs:
|
||||
sudo ./llvm.sh $LLVM_VERSION
|
||||
echo "D_CLANG_VERSION=-DCLANG_VERSION=$LLVM_VERSION" >> $GITHUB_ENV
|
||||
- name: Source checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: src
|
||||
- name: Set up cache for ccache
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ccache
|
||||
key: ccache-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
|
||||
key: ccache-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
|
||||
restore-keys: |
|
||||
ccache-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-
|
||||
ccache-${{matrix.compiler}}-${{matrix.arch}}-
|
||||
- name: Set ccache settings
|
||||
run: |
|
||||
echo "CCACHE_BASEDIR=${{github.workspace}}" >> $GITHUB_ENV
|
||||
@@ -66,7 +60,7 @@ jobs:
|
||||
if: ${{ matrix.compiler == 'gcc' }}
|
||||
run: echo "CCACHE_COMPILERCHECK=string:${{steps.get_rosbe_spec.outputs.git-sha}}-${{hashfiles('./build_rosbe_ci.sh')}}" >> $GITHUB_ENV
|
||||
- name: Configure
|
||||
run: echo 'cmake -S ${{github.workspace}}/src -B ${{github.workspace}}/build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-${{matrix.compiler}}.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DDLL_EXPORT_VERSION=${{matrix.dllver}} -DENABLE_CCACHE=1 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{env.D_CLANG_VERSION}}' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
|
||||
run: echo 'cmake -S ${{github.workspace}}/src -B ${{github.workspace}}/build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-${{matrix.compiler}}.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DENABLE_CCACHE=1 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{env.D_CLANG_VERSION}}' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
|
||||
- name: Build
|
||||
run: echo 'cmake --build ${{github.workspace}}/build -- -k0' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
|
||||
- name: Generate ISOs
|
||||
@@ -74,9 +68,9 @@ jobs:
|
||||
- name: Print ccache statistics
|
||||
run: ccache -s
|
||||
- name: Upload ISOs
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
|
||||
name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
|
||||
path: |
|
||||
build/bootcd.iso
|
||||
build/livecd.iso
|
||||
@@ -84,16 +78,17 @@ jobs:
|
||||
build-msvc:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-latest]
|
||||
toolset: ['14','14.2'] # VS 2022, and 2019 (see below)
|
||||
os: [windows-latest, windows-2019]
|
||||
toolset: ['14.2', '14.1', '14.0'] # VS 2019, 2017, and 2015 (see below)
|
||||
arch: [i386, amd64]
|
||||
config: [Debug, Release]
|
||||
dllver: ['0x502', '0x600']
|
||||
exclude: # Build NT6 ISOs only with the latest toolset when compiled as a debug build
|
||||
- dllver: 0x600
|
||||
toolset: 14.2
|
||||
- dllver: 0x600
|
||||
config: Release
|
||||
exclude: # VS 2019, 2017 only with windows-latest; VS 2015 only with windows-2019
|
||||
- os: windows-2019
|
||||
toolset: '14.2'
|
||||
- os: windows-2019
|
||||
toolset: '14.1'
|
||||
- os: windows-latest
|
||||
toolset: '14.0'
|
||||
fail-fast: false
|
||||
runs-on: ${{matrix.os}}
|
||||
steps:
|
||||
@@ -119,33 +114,33 @@ jobs:
|
||||
arch: amd64
|
||||
toolset: ${{matrix.toolset}}
|
||||
- name: Source checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: src
|
||||
- name: Configure
|
||||
run: cmake -S src -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DDLL_EXPORT_VERSION=${{matrix.dllver}} -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1
|
||||
run: cmake -S src -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1
|
||||
- name: Build
|
||||
run: cmake --build build -- -k0
|
||||
- name: Generate ISOs
|
||||
run: cmake --build build --target bootcd --target livecd
|
||||
- name: Upload ISOs
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
|
||||
name: reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
|
||||
path: |
|
||||
build/bootcd.iso
|
||||
build/livecd.iso
|
||||
- name: Upload debug symbols
|
||||
if: ${{ matrix.config == 'Debug' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
|
||||
name: reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
|
||||
path: build/msvc_pdb
|
||||
|
||||
build-msvc-arm:
|
||||
strategy:
|
||||
matrix:
|
||||
toolset: ['14','14.2'] # VS 2022, 2019
|
||||
toolset: ['14.2', '14.1'] # VS 2019, 2017
|
||||
arch: [arm, arm64]
|
||||
config: [Debug, Release]
|
||||
fail-fast: false
|
||||
@@ -165,7 +160,6 @@ jobs:
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: amd64_arm
|
||||
sdk: 10.0.22621.0 # Windows SDK 10.0.26100.0 dropped support for 32-bit ARM
|
||||
toolset: ${{matrix.toolset}}
|
||||
- name: Activate VS cmd (arm64)
|
||||
if: ${{ matrix.arch == 'arm64' }}
|
||||
@@ -174,7 +168,7 @@ jobs:
|
||||
arch: amd64_arm64
|
||||
toolset: ${{matrix.toolset}}
|
||||
- name: Source checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: src
|
||||
- name: Configure
|
||||
@@ -188,21 +182,17 @@ jobs:
|
||||
- name: Build rosapps
|
||||
if: ${{ matrix.arch == 'arm' }}
|
||||
run: cmake --build build --target modules/rosapps/all
|
||||
- name: Build subsystems
|
||||
if: ${{ matrix.arch == 'arm' }}
|
||||
run: cmake --build build --target subsystems/all
|
||||
- name: Build some applications (arm64)
|
||||
if: ${{ matrix.arch == 'arm64' }}
|
||||
run: cmake --build build --target calc magnify mstsc notepad osk regedit taskmgr winmine wordpad base/applications/screensavers/all -- -k0
|
||||
- name: Upload compiled binaries
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
|
||||
path: |
|
||||
build/base
|
||||
build/dll/cpl
|
||||
build/modules/rosapps
|
||||
build/subsystems
|
||||
!**/CMakeFiles
|
||||
!**/cmake_install.cmake
|
||||
!**/*.asm
|
||||
@@ -218,12 +208,11 @@ jobs:
|
||||
!**/*.tlb
|
||||
- name: Upload debug symbols
|
||||
if: ${{ matrix.config == 'Debug' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
|
||||
path: build/msvc_pdb
|
||||
|
||||
# FIXME: Does not boot on toolset 14.1, 14.3+ is untested
|
||||
build-clang-cl:
|
||||
strategy:
|
||||
matrix:
|
||||
@@ -250,17 +239,17 @@ jobs:
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: amd64_x86
|
||||
toolset: '14'
|
||||
toolset: '14.1' # latest masm build known to make bootable builds
|
||||
- name: Activate VS cmd (amd64)
|
||||
if: ${{ matrix.arch == 'amd64' }}
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: amd64
|
||||
toolset: '14'
|
||||
toolset: '14.1' # latest masm build known to make bootable builds
|
||||
- name: Add LLVM to PATH
|
||||
run: echo "${env:LLVM_PATH}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
||||
- name: Source checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: src
|
||||
- name: Configure
|
||||
@@ -270,7 +259,7 @@ jobs:
|
||||
- name: Generate ISOs
|
||||
run: cmake --build build --target bootcd --target livecd
|
||||
- name: Upload ISOs
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: reactos-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
|
||||
path: |
|
||||
@@ -278,33 +267,34 @@ jobs:
|
||||
build/livecd.iso
|
||||
- name: Upload debug symbols
|
||||
if: ${{ matrix.config == 'Debug' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: reactos-syms-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
|
||||
path: build/msvc_pdb
|
||||
|
||||
build-msbuild-i386:
|
||||
name: MSBuild (i386)
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Install Flex and Bison
|
||||
run: |
|
||||
curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
|
||||
7z x flexbison.7z -O${{github.workspace}}\bin
|
||||
echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
||||
echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||
echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||
- name: Add CL to PATH
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: amd64_x86
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
path: src
|
||||
- name: Configure
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G "Visual Studio 17 2022" -A Win32 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=i386 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{github.workspace}}\src
|
||||
- name: Build
|
||||
run: cmake --build ${{github.workspace}}\build --target bootcd --target livecd
|
||||
# Disable MSBuild for the moment being until a proper fix is provided -- see CORE-18911
|
||||
# build-msbuild-i386:
|
||||
# name: MSBuild (i386)
|
||||
# runs-on: windows-2019
|
||||
# steps:
|
||||
# - name: Install Flex and Bison
|
||||
# run: |
|
||||
# curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
|
||||
# 7z x flexbison.7z -O${{github.workspace}}\bin
|
||||
# echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
||||
# echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||
# echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||
# - name: Add CL to PATH
|
||||
# uses: ilammy/msvc-dev-cmd@v1
|
||||
# with:
|
||||
# arch: amd64_x86
|
||||
# - uses: actions/checkout@v2
|
||||
# with:
|
||||
# path: src
|
||||
# - name: Configure
|
||||
# run: |
|
||||
# mkdir build
|
||||
# cd build
|
||||
# cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=i386 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{github.workspace}}\src
|
||||
# - name: Build
|
||||
# run: cmake --build ${{github.workspace}}\build --target bootcd --target livecd
|
||||
|
4
.github/workflows/labeler.yml
vendored
4
.github/workflows/labeler.yml
vendored
@@ -6,6 +6,6 @@ jobs:
|
||||
triage:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/labeler@v5
|
||||
- uses: actions/labeler@v3
|
||||
with:
|
||||
sync-labels: true
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
3
.github/workflows/stale.yml
vendored
3
.github/workflows/stale.yml
vendored
@@ -14,10 +14,11 @@ jobs:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/stale@v9
|
||||
- uses: actions/stale@v5
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
days-before-stale: 120
|
||||
|
@@ -68,9 +68,6 @@ include(sdk/cmake/config.cmake)
|
||||
# Compiler flags handling
|
||||
include(sdk/cmake/compilerflags.cmake)
|
||||
|
||||
# set_wine_module function
|
||||
include(sdk/cmake/set_wine_module.cmake)
|
||||
|
||||
add_definitions(
|
||||
-D__REACTOS__
|
||||
# swprintf without count argument is used in most of the codebase
|
||||
@@ -143,10 +140,6 @@ if(NOT CMAKE_CROSSCOMPILING)
|
||||
add_definitions(/D_X86_ /D__i386__ /DWIN32 /D_WINDOWS)
|
||||
elseif(ARCH STREQUAL "amd64")
|
||||
add_definitions(-D_AMD64_ -D__x86_64__ /DWIN32 -D_WINDOWS)
|
||||
elseif(ARCH STREQUAL "arm")
|
||||
add_definitions(-D__arm__)
|
||||
elseif(ARCH STREQUAL "arm64")
|
||||
add_definitions(-D__aarch64__)
|
||||
endif()
|
||||
if(MSVC_VERSION GREATER 1699)
|
||||
add_definitions(/D_ALLOW_KEYWORD_MACROS)
|
||||
@@ -160,10 +153,7 @@ if(NOT CMAKE_CROSSCOMPILING)
|
||||
|
||||
set(NATIVE_TARGETS asmpp bin2c widl gendib cabman fatten hpp isohybrid mkhive mkisofs obj2bin spec2def geninc mkshelllink utf16le xml2sdb)
|
||||
if(NOT MSVC)
|
||||
list(APPEND NATIVE_TARGETS pefixup)
|
||||
if (ARCH STREQUAL "i386")
|
||||
list(APPEND NATIVE_TARGETS rsym)
|
||||
endif()
|
||||
list(APPEND NATIVE_TARGETS rsym pefixup)
|
||||
endif()
|
||||
|
||||
install(TARGETS ${NATIVE_TARGETS})
|
||||
@@ -242,10 +232,7 @@ Enable this if the module uses typeid or dynamic_cast. You will probably need to
|
||||
-D_WIN32_WINNT=0x502
|
||||
-D_WIN32_WINDOWS=0x502
|
||||
-D_SETUPAPI_VER=0x502
|
||||
-DMINGW_HAS_SECURE_API=1
|
||||
-DD3D_UMD_INTERFACE_VERSION=0x000C # Vista
|
||||
-DDXGKDDI_INTERFACE_VERSION=0x1052 # Vista
|
||||
-DDLL_EXPORT_VERSION=${DLL_EXPORT_VERSION})
|
||||
-DMINGW_HAS_SECURE_API=1)
|
||||
|
||||
# Arch Options
|
||||
if(ARCH STREQUAL "i386")
|
||||
@@ -262,7 +249,7 @@ Enable this if the module uses typeid or dynamic_cast. You will probably need to
|
||||
elseif(ARCH STREQUAL "amd64")
|
||||
# clang-cl defines this one for itself
|
||||
if (NOT (MSVC AND CMAKE_C_COMPILER_ID STREQUAL "Clang"))
|
||||
add_compile_definitions(_M_AMD64 _M_X64)
|
||||
add_compile_definitions(_M_AMD64)
|
||||
endif()
|
||||
add_definitions(-D_AMD64_ -D__x86_64__ -D_WIN64)
|
||||
elseif(ARCH STREQUAL "arm")
|
||||
@@ -322,7 +309,6 @@ Enable this if the module uses typeid or dynamic_cast. You will probably need to
|
||||
sdk/include
|
||||
sdk/include/psdk
|
||||
sdk/include/dxsdk
|
||||
sdk/include/winrt
|
||||
${REACTOS_BINARY_DIR}/sdk/include
|
||||
${REACTOS_BINARY_DIR}/sdk/include/psdk
|
||||
${REACTOS_BINARY_DIR}/sdk/include/dxsdk
|
||||
@@ -330,12 +316,10 @@ Enable this if the module uses typeid or dynamic_cast. You will probably need to
|
||||
${REACTOS_BINARY_DIR}/sdk/include/reactos
|
||||
${REACTOS_BINARY_DIR}/sdk/include/reactos/mc
|
||||
sdk/include/crt
|
||||
sdk/include/vcruntime
|
||||
sdk/include/ddk
|
||||
sdk/include/ndk
|
||||
sdk/include/reactos
|
||||
sdk/include/reactos/libs
|
||||
sdk/lib/pseh/include)
|
||||
sdk/include/reactos/libs)
|
||||
|
||||
if(ARCH STREQUAL "arm")
|
||||
include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/arm)
|
||||
@@ -347,15 +331,18 @@ Enable this if the module uses typeid or dynamic_cast. You will probably need to
|
||||
add_subdirectory(sdk/include/xdk)
|
||||
add_subdirectory(sdk/include/psdk)
|
||||
add_subdirectory(sdk/include/dxsdk)
|
||||
add_subdirectory(sdk/include/reactos)
|
||||
add_subdirectory(sdk/include/reactos/wine)
|
||||
add_subdirectory(sdk/include/reactos/mc)
|
||||
add_subdirectory(sdk/include/asm)
|
||||
|
||||
if(ARCH MATCHES "64$")
|
||||
include(sdk/cmake/baseaddress64.cmake)
|
||||
elseif(NO_ROSSYM)
|
||||
if(NO_ROSSYM)
|
||||
include(sdk/cmake/baseaddress_dwarf.cmake)
|
||||
elseif(MSVC)
|
||||
include(sdk/cmake/baseaddress_msvc.cmake)
|
||||
if (ARCH STREQUAL "amd64")
|
||||
include(sdk/cmake/baseaddress_msvc_x64.cmake)
|
||||
else()
|
||||
include(sdk/cmake/baseaddress_msvc.cmake)
|
||||
endif()
|
||||
else()
|
||||
include(sdk/cmake/baseaddress.cmake)
|
||||
endif()
|
||||
|
164
CODEOWNERS
164
CODEOWNERS
@@ -96,7 +96,7 @@
|
||||
# Apisets
|
||||
# M: learn-more, learn_more, Mark Jansen
|
||||
# S: Maintained
|
||||
/sdk/lib/apisets/ @learn-more
|
||||
/dll/apisets/ @learn-more
|
||||
|
||||
# Application Compatibility subystem
|
||||
# M: learn-more, learn_more, Mark Jansen
|
||||
@@ -116,20 +116,6 @@
|
||||
# S: Abandoned
|
||||
/ntoskrnl/cache/
|
||||
|
||||
# Client/Server Runtime Subsystem
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# S: Maintained
|
||||
/sdk/include/reactos/subsys/csr/ @HBelusca
|
||||
/subsystems/csr/ @HBelusca
|
||||
/win32ss/user/ntuser/csr.* @HBelusca
|
||||
|
||||
# Clipboard Viewer
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# R: Mondgestein, Ricardo Hanke
|
||||
# S: Maintained
|
||||
/base/applications/clipbrd/ @HBelusca
|
||||
/base/applications/cmdutils/clip/ @HBelusca
|
||||
|
||||
# CMake Build Scripts
|
||||
# M:
|
||||
# R: learn-more, learn_more, Mark Jansen
|
||||
@@ -138,58 +124,6 @@
|
||||
/sdk/cmake/
|
||||
*.cmake
|
||||
|
||||
# Command-line Utilities
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# S: Maintained
|
||||
/base/applications/cmdutils/attrib/ @HBelusca
|
||||
/base/applications/cmdutils/chcp/ @HBelusca
|
||||
/base/applications/cmdutils/doskey/ @HBelusca
|
||||
/base/applications/cmdutils/eventcreate/ @HBelusca
|
||||
/base/applications/cmdutils/find/ @HBelusca
|
||||
/base/applications/cmdutils/help/ @HBelusca
|
||||
/base/applications/cmdutils/mode/ @HBelusca
|
||||
/base/applications/cmdutils/more/ @HBelusca
|
||||
/base/applications/cmdutils/taskkill/ @HBelusca
|
||||
/base/applications/cmdutils/timeout/ @HBelusca
|
||||
/sdk/lib/conutils/ @HBelusca
|
||||
|
||||
# Command-line Prompt Interpreter
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# S: Maintained
|
||||
/base/shell/cmd/ @HBelusca
|
||||
|
||||
# Console Client/Server Subsystem, Terminal Emulator / Text-Mode
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# S: Maintained
|
||||
/dll/cpl/console/ @HBelusca
|
||||
/dll/win32/kernel32/client/console/ @HBelusca
|
||||
/dll/win32/kernel32/include/console.h @HBelusca
|
||||
/drivers/base/condrv/ @HBelusca
|
||||
/drivers/setup/blue/ @HBelusca
|
||||
/modules/rostests/winetests/kernel32/console.c @HBelusca
|
||||
/sdk/include/psdk/wincon.h @HBelusca
|
||||
/sdk/include/reactos/wincon_undoc.h @HBelusca
|
||||
/sdk/include/reactos/drivers/condrv/ @HBelusca
|
||||
/sdk/include/reactos/drivers/blue/ @HBelusca
|
||||
/sdk/include/reactos/subsys/win/conmsg.h @HBelusca
|
||||
/sdk/include/reactos/subsys/win/console.h @HBelusca
|
||||
/win32ss/user/ntuser/console.c @HBelusca
|
||||
/win32ss/user/winsrv/concfg/ @HBelusca
|
||||
/win32ss/user/winsrv/consrv/ @HBelusca
|
||||
|
||||
# Event Log Subsystem
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# M: EricKohl, ekohl, Eric Kohl
|
||||
# S: Maintained
|
||||
/base/services/eventlog/ @EricKohl @HBelusca
|
||||
/dll/win32/advapi32/service/eventlog.c @EricKohl @HBelusca
|
||||
/sdk/lib/evtlib/ @HBelusca
|
||||
|
||||
# Event Log Viewer
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# S: Maintained
|
||||
/base/applications/mscutils/eventvwr/ @HBelusca
|
||||
|
||||
# File Patch API
|
||||
# M: learn-more, learn_more, Mark Jansen
|
||||
# S: Maintained
|
||||
@@ -205,7 +139,7 @@
|
||||
# Filesystem Filter Manager
|
||||
# M: gedmurphy, Ged, Ged Murphy
|
||||
# S: Maintained
|
||||
/drivers/filters/fltmgr/ @gedmurphy
|
||||
/drivers/filters/fltmgr/ @gedmurphy
|
||||
|
||||
# File Systems Run Time Library
|
||||
# M: HeisSpiter, Heis Spiter, Pierre Schweitzer
|
||||
@@ -216,13 +150,11 @@
|
||||
/sdk/lib/drivers/ntoskrnl_vista/fsrtl.c @HeisSpiter
|
||||
|
||||
# Freeloader
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# M:
|
||||
# R: tkreuzer, ThePhysicist, Timo Kreuzer
|
||||
# R: Extravert-ir, extravert34, Victor Perevertkin
|
||||
# S: Maintained
|
||||
/boot/freeldr/freeldr/ @HBelusca @tkreuzer @Extravert-ir
|
||||
/boot/rtl/ @HBelusca
|
||||
/ntoskrnl/config/cmboot.c @HBelusca
|
||||
/boot/freeldr/freeldr/ @tkreuzer @Extravert-ir
|
||||
|
||||
# HAL / APIC
|
||||
# M: tkreuzer, ThePhysicist, Timo Kreuzer
|
||||
@@ -255,12 +187,6 @@
|
||||
# S: Maintained
|
||||
/drivers/storage/mountmgr/ @HeisSpiter
|
||||
|
||||
# MSConfig
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# S: Maintained
|
||||
/base/applications/msconfig/ @HBelusca
|
||||
/base/applications/msconfig_new/ @HBelusca
|
||||
|
||||
# Network Drivers
|
||||
# M:
|
||||
# R: ThFabba, Thomas Faber
|
||||
@@ -289,29 +215,11 @@
|
||||
# S: Maintained
|
||||
/dll/ntdll/ @HeisSpiter @learn-more @ThFabba @tkreuzer
|
||||
|
||||
# NT Virtual DOS Machine
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# R: reactos573, aandrejevic, Aleksandar Andrejevic
|
||||
# S: Maintained
|
||||
/dll/win32/kernel32/client/vdm.c @reactos573 @HBelusca
|
||||
/dll/win32/kernel32/include/vdm.h @reactos573 @HBelusca
|
||||
/sdk/include/reactos/subsys/win/vdm.h @reactos573 @HBelusca
|
||||
/ntoskrnl/vdm/ @reactos573 @HBelusca
|
||||
/sdk/include/reactos/libs/fast486/ @reactos573 @HBelusca
|
||||
/sdk/lib/fast486/ @reactos573 @HBelusca
|
||||
/subsystems/mvdm/ @reactos573 @HBelusca
|
||||
/subsystems/win/basesrv/vdm.* @reactos573 @HBelusca
|
||||
|
||||
# Printing
|
||||
# M: ColinFinck, Colin Finck
|
||||
# S: Maintained
|
||||
/win32ss/printing/ @ColinFinck
|
||||
|
||||
# Program Manager
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# S: Maintained
|
||||
/base/shell/progman/ @HBelusca
|
||||
|
||||
# ReactOS API Tests
|
||||
# M:
|
||||
# R: learn-more, learn_more, Mark Jansen
|
||||
@@ -324,25 +232,7 @@
|
||||
# S: Maintained
|
||||
/modules/rostests/kmtests/ @ThFabba
|
||||
|
||||
# ReactOS Setup
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# R: EricKohl, ekohl, Eric Kohl
|
||||
# S: Maintained
|
||||
/base/setup/ @HBelusca
|
||||
/base/system/winlogon/setup.c @EricKohl
|
||||
/dll/win32/setupapi/
|
||||
/dll/win32/syssetup/ @EricKohl
|
||||
/drivers/setup/ @HBelusca
|
||||
/sdk/include/reactos/libs/syssetup/ @EricKohl
|
||||
|
||||
# ReactOS miscellaneous tools
|
||||
# M:
|
||||
# R: HBelusca, Hermès Bélusca-Maïto
|
||||
# S: Maintained
|
||||
/modules/rosapps/applications/cmdutils/cat/ @HBelusca
|
||||
/modules/rosapps/applications/sysutils/utils/partinfo/ @HBelusca
|
||||
|
||||
# ReactOS internals tools
|
||||
# ROS internals tools
|
||||
# M: HeisSpiter, Heis Spiter, Pierre Schweitzer
|
||||
# S: Maintained
|
||||
/modules/rosapps/applications/rosinternals/ @HeisSpiter
|
||||
@@ -362,26 +252,15 @@
|
||||
/modules/rostests/kmtests/ntos_se/ @GeoB99
|
||||
/ntoskrnl/se/ @GeoB99
|
||||
|
||||
# Session Manager Subsystem
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# S: Maintained
|
||||
/base/system/smss/ @HBelusca
|
||||
/sdk/include/reactos/subsys/sm/ @HBelusca
|
||||
/sdk/lib/smlib/ @HBelusca
|
||||
|
||||
# Shell
|
||||
# M:
|
||||
# R: learn-more, learn_more, Mark Jansen
|
||||
# R: yagoulas, Giannis Adamopoulos
|
||||
# R: HBelusca, Hermès Bélusca-Maïto
|
||||
# S: Maintained
|
||||
/base/shell/explorer/ @learn-more @yagoulas
|
||||
/base/shell/rshell/ @learn-more @yagoulas
|
||||
/dll/win32/browseui/ @learn-more @yagoulas
|
||||
/dll/win32/shell32/ @learn-more @yagoulas
|
||||
/dll/win32/shell32/CShellLink.* @HBelusca
|
||||
/dll/win32/shell32/CUserNotification.* @HBelusca
|
||||
/dll/win32/shell32/systray.cpp @HBelusca
|
||||
|
||||
# Shell Extensions
|
||||
# M:
|
||||
@@ -430,34 +309,10 @@
|
||||
/modules/rosapps/applications/cmdutils/vfdcmd/ @HeisSpiter
|
||||
/modules/rosapps/drivers/vfd/ @HeisSpiter
|
||||
|
||||
# Win32 Subsystem
|
||||
# M:
|
||||
# R: HBelusca, Hermès Bélusca-Maïto
|
||||
# S: Maintained
|
||||
/sdk/include/reactos/winbase_undoc.h @HBelusca
|
||||
/subsystems/win/basesrv/
|
||||
/win32ss/user/winsrv/
|
||||
/win32ss/user/winsrv/usersrv/harderror.c @HBelusca
|
||||
|
||||
# Win32 Subsystem - File functions
|
||||
# Win32 file functions
|
||||
# M: HeisSpiter, Heis Spiter, Pierre Schweitzer
|
||||
# R: HBelusca, Hermès Bélusca-Maïto
|
||||
# S: Maintained
|
||||
/dll/win32/kernel32/client/file/ @HeisSpiter
|
||||
/dll/win32/kernel32/client/file/find.c @HBelusca
|
||||
|
||||
# Win32 Subsystem - Shutdown
|
||||
# M: HBelusca, Hermès Bélusca-Maïto
|
||||
# R: EricKohl, ekohl, Eric Kohl
|
||||
# S: Maintained
|
||||
/base/system/winlogon/sas.c @EricKohl @HBelusca
|
||||
/base/system/winlogon/shutdown.c @EricKohl @HBelusca
|
||||
/dll/win32/advapi32/misc/shutdown.c @EricKohl
|
||||
/dll/win32/msgina/shutdown.c @EricKohl @HBelusca
|
||||
/win32ss/user/ntuser/shutdown.* @HBelusca
|
||||
/win32ss/user/user32/misc/exit.c @HBelusca
|
||||
/win32ss/user/winsrv/consrv/shutdown.c @HBelusca
|
||||
/win32ss/user/winsrv/usersrv/shutdown.c @HBelusca
|
||||
/dll/win32/kernel32/client/file/ @HeisSpiter
|
||||
|
||||
# Windows Network File Systems functions
|
||||
# M: HeisSpiter, Heis Spiter, Pierre Schweitzer
|
||||
@@ -483,11 +338,6 @@
|
||||
amd64/ @tkreuzer
|
||||
/boot/freeldr/freeldr/arch/realmode/amd64.S @tkreuzer
|
||||
|
||||
# Wine DirectX
|
||||
# M: DarkFire01, The_DarkFire_, Justin Miller
|
||||
# S: Upstream
|
||||
/dll/directx/wine/ @DarkFire01
|
||||
|
||||
# Translations
|
||||
# This is the list of translation teams in ReactOS GitHub organization.
|
||||
# If you want to be part of one - hit us at https://chat.reactos.org/
|
||||
|
356
CODING_STYLE.md
356
CODING_STYLE.md
@@ -1,356 +0,0 @@
|
||||
# Coding Style
|
||||
|
||||
This article describes general coding style guidelines, which should be used for new ReactOS code. These guidelines apply exclusively to C and C++ source files. The Members of ReactOS agreed on this document in the October 2013 meeting.
|
||||
|
||||
As much existing ReactOS code as possible should be converted to this style unless there are reasons against doing this (like if the code is going to be rewritten from scratch in the near future). See [Notes on reformatting existing code](#notes-on-reformatting-existing-code) for more details.
|
||||
|
||||
Code synchronized with other sources (like Wine) must not be rewritten. [3rd Party Files.txt](https://github.com/reactos/reactos/blob/master/media/doc/3rd%20Party%20Files.txt) and [WINESYNC.txt](https://github.com/reactos/reactos/blob/master/media/doc/WINESYNC.txt) files can be used for tracking synchronized files.
|
||||
|
||||
## File Structure
|
||||
|
||||
1. Every ReactOS source code file should include a file header like this:
|
||||
|
||||
```
|
||||
/*
|
||||
* PROJECT: ReactOS Kernel
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: Does cool things like Memory Management
|
||||
* COPYRIGHT: Copyright 2017 Arno Nymous <abc@mailaddress.com>
|
||||
* Copyright 2017 Mike Blablabla <mike@blabla.com>
|
||||
*/
|
||||
```
|
||||
|
||||
Please use SPDX license identifiers available at https://spdx.org/licenses.
|
||||
This makes our source file parseable by licensing tools!
|
||||
|
||||
You should add yourself to the `COPYRIGHT` section of a file if you did a major contribution to it and could take responsibility for the whole file or a part of it. Not more than 3 people shall be in that list for each file.
|
||||
|
||||
`FILE` line of the old header should be removed.
|
||||
|
||||
2. [Doxygen](https://doxygen.reactos.org/) documentation generator is used for ReactOS codebase, so use a proper header for functions, see [API Documentation](https://reactos.org/wiki/Documentation_Guidelines#API_Documentation) for details.
|
||||
|
||||
## Indentation and line width
|
||||
|
||||
1. Line width must be at most **100 characters**.
|
||||
2. Do not add a space or tab at the end of any line.
|
||||
3. Indent with **4 spaces**, don't use tabs!
|
||||
4. Indent both a case label and the case statement of a switch statement.
|
||||
|
||||
**Right:**
|
||||
```c
|
||||
switch (Condition)
|
||||
{
|
||||
case 1:
|
||||
DoSomething();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
{
|
||||
DoMany();
|
||||
ManyMore();
|
||||
OtherThings();
|
||||
break;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Wrong:**
|
||||
```c
|
||||
switch(Condition)
|
||||
{
|
||||
case 1:
|
||||
DoSomething();
|
||||
break;
|
||||
case 2:
|
||||
DoMany();
|
||||
ManyMore();
|
||||
OtherThings();
|
||||
break;
|
||||
}
|
||||
```
|
||||
|
||||
5. When a function call does not fit onto a line, align arguments like this:
|
||||
```c
|
||||
FunctionCall(arg1,
|
||||
arg2,
|
||||
arg3);
|
||||
```
|
||||
|
||||
6. Function headers should have this format (preserving the order as in the example):
|
||||
```c
|
||||
static // scope identifier
|
||||
CODE_SEG("PAGE") // section placement
|
||||
// other attributes
|
||||
BOOLEAN // return type
|
||||
FASTCALL // calling convention
|
||||
IsOdd(
|
||||
_In_ UINT32 Number);
|
||||
```
|
||||
|
||||
## Spacing
|
||||
|
||||
1. Do not use spaces around unary operators.
|
||||
**Right:** `i++;`
|
||||
**Wrong:** `i ++;`
|
||||
|
||||
2. Place spaces around binary and ternary operators.
|
||||
**Right:** `a = b + c;`
|
||||
**Wrong:** `a=b+c;`
|
||||
|
||||
3. Do not place spaces before comma and semicolon.
|
||||
|
||||
**Right:**
|
||||
```c
|
||||
for (int i = 0; i < 5; i++)
|
||||
DoSomething();
|
||||
|
||||
func1(a, b);
|
||||
```
|
||||
|
||||
**Wrong:**
|
||||
```c
|
||||
for (int i = 0; i < 5 ; i++)
|
||||
DoSomething();
|
||||
|
||||
func1(a , b) ;
|
||||
```
|
||||
|
||||
4. Place spaces between control statements and their parentheses.
|
||||
|
||||
**Right:**
|
||||
```c
|
||||
if (Condition)
|
||||
DoSomething();
|
||||
```
|
||||
|
||||
**Wrong:**
|
||||
```c
|
||||
if(Condition)
|
||||
DoSomething();
|
||||
```
|
||||
|
||||
5. Do not place spaces between a function and its parentheses, or between a parenthesis and its content.
|
||||
|
||||
**Right:**
|
||||
```c
|
||||
func(a, b);
|
||||
```
|
||||
|
||||
**Wrong:**
|
||||
```c
|
||||
func (a, b);
|
||||
func( a, b );
|
||||
```
|
||||
|
||||
## Line breaking
|
||||
|
||||
1. Each statement should get its own line.
|
||||
|
||||
**Right:**
|
||||
```c
|
||||
x++;
|
||||
y++;
|
||||
|
||||
if (Condition)
|
||||
DoSomething();
|
||||
```
|
||||
|
||||
**Wrong:**
|
||||
```c
|
||||
x++; y++;
|
||||
|
||||
if (Condition) DoSomething();
|
||||
```
|
||||
|
||||
## Braces
|
||||
|
||||
1. Always put braces (`{` and `}`) on their own lines.
|
||||
2. One-line control clauses may use braces, but this is not a requirement. An exception are one-line control clauses including additional comments.
|
||||
|
||||
**Right:**
|
||||
```c
|
||||
if (Condition)
|
||||
DoSomething();
|
||||
|
||||
if (Condition)
|
||||
{
|
||||
DoSomething();
|
||||
}
|
||||
|
||||
if (Condition)
|
||||
{
|
||||
// This is a comment
|
||||
DoSomething();
|
||||
}
|
||||
|
||||
if (A_Very || (Very && Long || Condition) &&
|
||||
On_Many && Lines)
|
||||
{
|
||||
DoSomething();
|
||||
}
|
||||
|
||||
if (Condition)
|
||||
DoSomething();
|
||||
else
|
||||
DoSomethingElse();
|
||||
|
||||
if (Condition)
|
||||
{
|
||||
DoSomething();
|
||||
}
|
||||
else
|
||||
{
|
||||
DoSomethingElse();
|
||||
YetAnother();
|
||||
}
|
||||
```
|
||||
|
||||
**Wrong:**
|
||||
```c
|
||||
if (Condition) {
|
||||
DoSomething();
|
||||
}
|
||||
|
||||
if (Condition)
|
||||
// This is a comment
|
||||
DoSomething();
|
||||
|
||||
if (A_Very || (Very && Long || Condition) &&
|
||||
On_Many && Lines)
|
||||
DoSomething();
|
||||
|
||||
if (Condition)
|
||||
DoSomething();
|
||||
else {
|
||||
DoSomethingElse();
|
||||
YetAnother();
|
||||
}
|
||||
```
|
||||
|
||||
## Control structures
|
||||
|
||||
1. Don't use inverse logic in control clauses.
|
||||
**Right:** `if (i == 1)`
|
||||
**Wrong:** `if (1 == i)`
|
||||
|
||||
2. Avoid too many levels of cascaded control structures. Prefer a "linear style" over a "tree style". Use `goto` when it helps to make the code cleaner (e.g. for cleanup paths).
|
||||
|
||||
**Right:**
|
||||
```c
|
||||
if (!func1())
|
||||
return;
|
||||
|
||||
i = func2();
|
||||
if (i == 0)
|
||||
return;
|
||||
|
||||
j = func3();
|
||||
if (j == 1)
|
||||
return;
|
||||
...
|
||||
```
|
||||
|
||||
**Wrong:**
|
||||
```c
|
||||
if (func1())
|
||||
{
|
||||
i = func2();
|
||||
if (func2())
|
||||
{
|
||||
j = func3();
|
||||
if (func3())
|
||||
{
|
||||
...
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Naming
|
||||
|
||||
1. Capitalize names of variables and functions. Hungarian Notation may be used when developing for Win32, but it is not required. If you don't use it, the first letter of a name must be a capital too (no lowerCamelCase). Do not use underscores as separators either.
|
||||
|
||||
**Right:**
|
||||
```c
|
||||
PLIST_ENTRY FirstEntry;
|
||||
VOID NTAPI IopDeleteIoCompletion(PVOID ObjectBody);
|
||||
PWSTR pwszTest;
|
||||
```
|
||||
|
||||
**Wrong:**
|
||||
```c
|
||||
PLIST_ENTRY first_entry;
|
||||
VOID NTAPI iop_delete_io_completion(PVOID objectBody);
|
||||
PWSTR pwsztest;
|
||||
```
|
||||
|
||||
2. Avoid abbreviating function and variable names, use descriptive verbs where possible.
|
||||
|
||||
3. Precede boolean values with meaningful verbs like "is" and "did" if possible and if it fits the usage.
|
||||
|
||||
**Right:**
|
||||
```c
|
||||
BOOLEAN IsValid;
|
||||
BOOLEAN DidSendData;
|
||||
```
|
||||
|
||||
**Wrong:**
|
||||
```c
|
||||
BOOLEAN Valid;
|
||||
BOOLEAN SentData;
|
||||
```
|
||||
|
||||
## Commenting
|
||||
|
||||
1. Avoid line-wasting comments, which could fit into a single line.
|
||||
|
||||
**Right:**
|
||||
```c
|
||||
// This is a one-line comment
|
||||
|
||||
/* This is a C-style comment */
|
||||
|
||||
// This is a comment over multiple lines.
|
||||
// We don't define any strict rules for it.
|
||||
```
|
||||
|
||||
**Wrong:**
|
||||
```c
|
||||
//
|
||||
// This comment wastes two lines
|
||||
//
|
||||
```
|
||||
|
||||
## Null, false and 0
|
||||
|
||||
1. The null pointer should be written as `NULL`. In the rare case that your environment recommends a different null pointer (e.g. C++11 `nullptr`), you may use this one of course. Just don't use the value `0`.
|
||||
|
||||
2. Win32/NT Boolean values should be written as `TRUE` and `FALSE`. In the rare case that you use C/C++ `bool` variables, you should write them as `true` and `false`.
|
||||
|
||||
3. When you need to terminate ANSI or OEM string, or check for its terminator, use `ANSI_NULL`. If the string is Unicode or Wide string, use `UNICODE_NULL`.
|
||||
|
||||
## Notes on reformatting existing code
|
||||
|
||||
- Never totally reformat a file and put a code change into it. Do this in separate commits.
|
||||
- If a commit only consists of formatting changes, say this clearly in the commit message by preceding it with *[FORMATTING]*.
|
||||
|
||||
## Other points
|
||||
|
||||
- Do not use `LARGE_INTEGER`/`ULARGE_INTEGER` unless needed for using APIs. Use `INT64`/`UINT64` instead
|
||||
- Use `#pragma once` instead of guard defines in headers
|
||||
- Don't specify a calling convention for a function unless required (usually for APIs or exported symbols)
|
||||
|
||||
## Using an automatic code style tool
|
||||
|
||||
TO BE ADDED BY User:Zefklop
|
||||
|
||||
## Points deliberately left out
|
||||
|
||||
Additional ideas were suggested during the discussion of this document, but a consensus couldn't be reached on them. Therefore we refrain from enforcing any rules on these points:
|
||||
|
||||
- TO BE ADDED BY User:Hbelusca
|
||||
|
||||
## See also
|
||||
|
||||
- [Kernel Coding Style](https://reactos.org/wiki/Kernel_Coding_Style)
|
||||
- [GNU Indent](https://reactos.org/wiki/GNU_Indent)
|
@@ -63,19 +63,13 @@ Our commit style is defined in a __[commit template]__. Use it as a reference or
|
||||
|
||||
### Rules and Recommendations
|
||||
|
||||
- *Use your __real name__ and __real email__.* We do not accept anonymous code contributions!
|
||||
- Every commit that changes code or translations should have author's full legal name (in latin letters, diacritics allowed).
|
||||
- It's recommended to have the same full name set in GitHub profile (in the [Name field here][GitHub Profile Settings]) that matches one specified in commits.
|
||||
- There is an exception for media changes, such as changes of art (wallpapers, themes, icons, sounds) and out-of-code documentation.
|
||||
- In these specific cases it's allowed to use a nickname or alias as author's name, and it's recommended to have the same name set in GitHub profile (in the [Name field here][GitHub Profile Settings]) matching one specified in commits.
|
||||
- In any case the author must use a real e-mail address, this includes git commits (`user.email` setting) and GitHub [e-mail settings][GitHub Email Settings] - the checkbox "Keep my email addresses private" must be unchecked there.
|
||||
- In order to *keep your privacy*, select appropriate "Primary email address" that will be applied to your commits in GitHub [e-mail settings][GitHub Email Settings].
|
||||
- *Use your __real name__ and __real email__.* We do not accept anonymous contributions!
|
||||
- *Ensure your contribution is properly described.* Include the relevant issue number if applicable.
|
||||
- *Put only related changes.* It will make reviewing easier as the reviewer needs to recall less information about the existing source code that is changed.
|
||||
- *Search for similar pull requests/patches before submitting.* It may be that a similar pull request or issue was opened previously. Comment and review on that one instead.
|
||||
- *Keep your contribution small and focused on the topic.* It can be tempting to fix existing issues as you come across them while reading the source code. Resist the temptation and put in a note in the source code instead, or (even better) put the issue in the issue tracking system.
|
||||
- *Respect our __[Coding Style]__ and __[Programming Guidelines]__.*
|
||||
- *Do not be afraid to ask questions.* Ask our developers in the [chat].
|
||||
- *Do not be afraid to ask questions.* Ask our developers on JIRA or [IRC] channel.
|
||||
|
||||
To amend your commit with your name and e-mail (in any case you've forgot to set your name/e-mail) please take a look at this [guide](https://reactos.org/wiki/ReactOS_Git_For_Dummies#Amending_your_commit_with_name.2FE-mail). To set your name/e-mail globally for future commits that you push, [read this](https://reactos.org/wiki/ReactOS_Git_For_Dummies#Assign_commits_with_your_name_.26_E-mail_automatically).
|
||||
|
||||
@@ -85,7 +79,7 @@ Finding a good project to start with can be a challenge, because when starting o
|
||||
|
||||
- Find a test that fails, and try to make it succeed: <https://reactos.org/testman/>
|
||||
- Look around in JIRA, and if you have problems finding nice projects to start with, there is a label for this: <https://jira.reactos.org/issues/?jql=labels%20%3D%20starter-project>
|
||||
- Ask for help in the [chat]
|
||||
- Ask for help on [IRC]
|
||||
- Additionally, there are some tests that cause crashes/hangs, but these might be slightly harder: <https://jira.reactos.org/browse/ROSTESTS-125>
|
||||
|
||||
[clean room reverse engineering]: https://en.wikipedia.org/wiki/Clean_room_design
|
||||
@@ -96,14 +90,12 @@ Finding a good project to start with can be a challenge, because when starting o
|
||||
[migration to GitHub]: https://reactos.org/project-news/reactos-repository-migrated-github/
|
||||
[humans are terrible at tracking large amount of information]: https://www.eurekalert.org/pub_releases/2005-03/aps-hmc030805.php
|
||||
[Pull requests]: https://help.github.com/articles/about-pull-requests/
|
||||
[GitHub Profile Settings]: https://github.com/settings/profile
|
||||
[GitHub Email Settings]: https://github.com/settings/emails
|
||||
[tips for reviewing patches]: https://www.drupal.org/patch/review
|
||||
[missing functionality]: https://reactos.org/wiki/Missing_ReactOS_Functionality
|
||||
[patch]: https://git-scm.com/docs/git-format-patch
|
||||
[Submitting Patches]: https://reactos.org/wiki/Submitting_Patches
|
||||
[Coding Style]: https://reactos.org/wiki/Coding_Style
|
||||
[chat]: https://reactos.org/wiki/Mattermost
|
||||
[IRC]: https://reactos.org/wiki/Connect_to_the_ReactOS_IRC_Channels
|
||||
[Programming Guidelines]: https://reactos.org/wiki/Programming_Guidelines
|
||||
[3rd Party Files.txt]: /media/doc/3rd_Party_Files.txt
|
||||
[README.WINE]: /media/doc/README.WINE
|
||||
|
@@ -14,17 +14,3 @@ In addition, in order to avoid coming off as rude to helpful contributors, pleas
|
||||
- Asking the contributor to do unrelated work
|
||||
- Closing without providing a reason
|
||||
- Merging with the intention to rewrite that code soon after
|
||||
|
||||
Before merging a PR, make sure it follows the [contributing rules](CONTRIBUTING.md#rules-and-recommendations), but more importantly:
|
||||
- Make sure the author has specified a real e-mail in all PR commits
|
||||
- If PR contains code or translations, make sure the author has not specified a nickname or alias, but a full legal name in all PR commits
|
||||
- If PR contains media (wallpapers, themes, icons, sounds) or out-of-code documentation, make sure the author has specified the name or alias in all PR commits
|
||||
- If PR contains mixed code with media changes, handle it as PR with code
|
||||
- Important notes before using "Squash and merge" strategy on a PR:
|
||||
- Make sure the author's name in GitHub profile matches one in commits. If this is not the case, ask the author to set it accordingly.
|
||||
- If the author does not want to set the name in GitHub profile:
|
||||
- "no squash merge" label needs to be added to a PR.
|
||||
- Make sure every commit message is formatted correctly as in [.gitmessage](https://github.com/reactos/reactos/blob/master/.gitmessage).
|
||||
- Finally in this case a PR has to be merged either using "Rebase and merge" strategy or manually.
|
||||
- By pressing "Squash and merge" button in a PR you can make sure the author does not use no-reply e-mail -
|
||||
under the commit message there will be a text label saying: `This commit will be authored by <address@email.com>`
|
||||
|
30
README.md
30
README.md
@@ -7,18 +7,24 @@
|
||||
---
|
||||
|
||||
<p align=center>
|
||||
<a href="https://reactos.org/project-news/reactos-0415-released/">
|
||||
<img alt="ReactOS 0.4.15 Release" src="https://img.shields.io/badge/release-0.4.15-0688CB.svg"></a>
|
||||
<a href="https://reactos.org/project-news/reactos-0414-released/">
|
||||
<img alt="ReactOS 0.4.14 Release" src="https://img.shields.io/badge/release-0.4.14-0688CB.svg">
|
||||
</a>
|
||||
<a href="https://reactos.org/download/">
|
||||
<img alt="Download ReactOS" src="https://img.shields.io/badge/download-latest-0688CB.svg"></a>
|
||||
<img alt="Download ReactOS" src="https://img.shields.io/badge/download-latest-0688CB.svg">
|
||||
</a>
|
||||
<a href="https://sourceforge.net/projects/reactos/">
|
||||
<img alt="SourceForge Download" src="https://img.shields.io/sourceforge/dm/reactos.svg?colorB=0688CB"></a>
|
||||
<img alt="SourceForge Download" src="https://img.shields.io/sourceforge/dm/reactos.svg?colorB=0688CB">
|
||||
</a>
|
||||
<a href="https://github.com/reactos/reactos/blob/master/COPYING">
|
||||
<img alt="License" src="https://img.shields.io/badge/license-GNU_GPL_2.0-0688CB.svg"></a>
|
||||
<img alt="License" src="https://img.shields.io/badge/license-GNU_GPL_2.0-0688CB.svg">
|
||||
</a>
|
||||
<a href="https://reactos.org/donate/">
|
||||
<img alt="Donate" src="https://img.shields.io/badge/%24-donate-E44E4A.svg"></a>
|
||||
<img alt="Donate" src="https://img.shields.io/badge/%24-donate-E44E4A.svg">
|
||||
</a>
|
||||
<a href="https://twitter.com/reactos">
|
||||
<img alt="Follow on Twitter" src="https://img.shields.io/twitter/follow/reactos.svg?style=social&label=Follow%20%40reactos"></a>
|
||||
<img alt="Follow on Twitter" src="https://img.shields.io/twitter/follow/reactos.svg?style=social&label=Follow%20%40reactos">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## Quick Links
|
||||
@@ -50,7 +56,7 @@ The code of ReactOS is licensed under [GNU GPL 2.0](https://github.com/reactos/r
|
||||
To build the system it is strongly advised to use the _ReactOS Build Environment (RosBE)._
|
||||
Up-to-date versions for Windows and for Unix/GNU-Linux are available from our download page at: ["Build Environment"](https://reactos.org/wiki/Build_Environment).
|
||||
|
||||
Alternatively one can use Microsoft Visual C++ (MSVC) version 2019+. Building with MSVC is covered here: ["Visual Studio or Microsoft Visual C++"](https://reactos.org/wiki/CMake#Visual_Studio_or_Microsoft_Visual_C.2B.2B).
|
||||
Alternatively one can use Microsoft Visual C++ (MSVC) version 2015+. Building with MSVC is covered here: ["Visual Studio or Microsoft Visual C++"](https://reactos.org/wiki/CMake#Visual_Studio_or_Microsoft_Visual_C.2B.2B).
|
||||
|
||||
See ["Building ReactOS"](https://reactos.org/wiki/Building_ReactOS) article for more details.
|
||||
|
||||
@@ -121,10 +127,10 @@ The main development is done on [GitHub](https://github.com/reactos/reactos). We
|
||||
There is also an obsolete [SVN archive repository](https://svn.reactos.org/reactos/) that is kept for historical purposes.
|
||||
|
||||
[coverity.badge]: https://scan.coverity.com/projects/205/badge.svg?flat=1
|
||||
[rosbewin.badge]: https://img.shields.io/badge/RosBE_Windows-2.2.1-0688CB.svg
|
||||
[rosbeunix.badge]: https://img.shields.io/badge/RosBE_Unix-2.2.1-0688CB.svg
|
||||
[rosbewin.badge]: https://img.shields.io/badge/RosBE_Windows-2.2.0-0688CB.svg
|
||||
[rosbeunix.badge]: https://img.shields.io/badge/RosBE_Unix-2.2-0688CB.svg
|
||||
[prwelcome.badge]: https://img.shields.io/badge/PR-welcome-0688CB.svg
|
||||
|
||||
[coverity.link]: https://scan.coverity.com/projects/205
|
||||
[rosbewin.link]: https://sourceforge.net/projects/reactos/files/RosBE-Windows/i386/2.2.1/
|
||||
[rosbeunix.link]: https://sourceforge.net/projects/reactos/files/RosBE-Unix/2.2.1/
|
||||
[rosbewin.link]: https://sourceforge.net/projects/reactos/files/RosBE-Windows/i386/2.2.0/
|
||||
[rosbeunix.link]: https://sourceforge.net/projects/reactos/files/RosBE-Unix/2.2/
|
||||
|
@@ -1,6 +1,5 @@
|
||||
|
||||
add_subdirectory(applications)
|
||||
add_subdirectory(ctf)
|
||||
add_subdirectory(services)
|
||||
add_subdirectory(setup)
|
||||
add_subdirectory(shell)
|
||||
|
@@ -3,7 +3,6 @@ add_subdirectory(atactl)
|
||||
add_subdirectory(cacls)
|
||||
add_subdirectory(calc)
|
||||
add_subdirectory(charmap)
|
||||
add_subdirectory(cleanmgr)
|
||||
add_subdirectory(clipbrd)
|
||||
add_subdirectory(cmdutils)
|
||||
add_subdirectory(control)
|
||||
|
@@ -35,4 +35,4 @@ typedef struct _SENDCMDINPARAMS {
|
||||
ULONG dwReserved[4];
|
||||
UCHAR bBuffer[1];
|
||||
} SENDCMDINPARAMS, *PSENDCMDINPARAMS, *LPSENDCMDINPARAMS;
|
||||
#include <poppack.h>
|
||||
#include <poppack.h>
|
@@ -1,11 +1,4 @@
|
||||
/*
|
||||
* PROJECT: ReactOS CACLS
|
||||
* LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
|
||||
* PURPOSE: Romanian resource file
|
||||
* TRANSLATORS: Copyright 2011-2018 Ștefan Fulea <stefan.fulea@mail.com>
|
||||
* Copyright 2024 Andrei Miloiu <miloiuandrei@gmail.com>
|
||||
*/
|
||||
|
||||
/* Translator: Ștefan Fulea (stefan dot fulea at mail dot com) */
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
|
||||
STRINGTABLE
|
||||
@@ -41,7 +34,7 @@ Abrevieri:\n\
|
||||
OI - Moștenire obiecte.\n\
|
||||
ACE moștenită de fișiere.\n\
|
||||
IO - Moștenire simplă.\n\
|
||||
ACE neaplicată folderelor/fișierelor curente.\n"
|
||||
ACE neaplicată dosarelor/fișierelor curente.\n"
|
||||
IDS_ABBR_CI "(CI)"
|
||||
IDS_ABBR_OI "(OI)"
|
||||
IDS_ABBR_IO "(IO)"
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#pragma once
|
||||
#ifndef __CALC_H__
|
||||
#define __CALC_H__
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
@@ -15,7 +16,6 @@
|
||||
#include <htmlhelp.h>
|
||||
#endif
|
||||
#include <limits.h>
|
||||
#include <strsafe.h>
|
||||
|
||||
/* RESOURCES */
|
||||
#include "resource.h"
|
||||
@@ -280,3 +280,5 @@ INT_PTR CALLBACK AboutDlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp);
|
||||
void ConvExecute(HWND hWnd);
|
||||
void ConvAdjust(HWND hWnd, int n_cat);
|
||||
void ConvInit(HWND hWnd);
|
||||
|
||||
#endif /* __CALC_H__ */
|
||||
|
@@ -181,7 +181,7 @@ static const conv_t conv_CURRENCY[] = {
|
||||
DECLARE_CONV_UNIT(CURRENCY, LITHUANIAN_LITAS, "$/3,45280", "$*3,45280")
|
||||
DECLARE_CONV_UNIT(CURRENCY, LUXEMBOURG_FRANC, "$/40,3399", "$*40,3399")
|
||||
DECLARE_CONV_UNIT(CURRENCY, MALTESE_LIRA, "$/0.42930", "$*0.42930")
|
||||
DECLARE_CONV_UNIT(CURRENCY, PORTUGUESE_ESCUDO, "$/200,482", "$*200,482")
|
||||
DECLARE_CONV_UNIT(CURRENCY, PORTOGUESE_ESCUDO, "$/200,482", "$*200,482")
|
||||
DECLARE_CONV_UNIT(CURRENCY, SLOVAK_KORUNA, "$/30,126", "$*30,126")
|
||||
DECLARE_CONV_UNIT(CURRENCY, SLOVENIAN_TOLAR, "$/239,640", "$*239,640")
|
||||
DECLARE_CONV_UNIT(CURRENCY, SPANISH_PESETA, "$/166,386", "$*166,386")
|
||||
|
@@ -1,22 +1,24 @@
|
||||
/* Превод на Български/ Bulgarian translation
|
||||
* https://reactos.org/wiki/Bulgarian_translation
|
||||
* FILE: base/applications/calc/lang/bg-BG.rc
|
||||
* Недовършен / Incomplete
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Калкулатор"
|
||||
CAPTION "Калкулатор за ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Шстн", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Дстн", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Осм", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Двоич", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Шстн", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Дстн", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Осм", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Двоич", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Обр", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Хип", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -133,13 +135,17 @@ BEGIN
|
||||
PUSHBUTTON "Дроб", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "ЧДума", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "ДДума", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Дума", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Байт", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Градуси", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Радиани", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Градиани", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "ЧДума", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "ДДума", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Дума", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Байт", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Градуси", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Радиани", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Градиани", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -150,9 +156,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Калкулатор"
|
||||
CAPTION "Калкулатор за ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -215,9 +221,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Калкулатор"
|
||||
CAPTION "Калкулатор за ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -309,8 +315,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "&Обработка"
|
||||
BEGIN
|
||||
MENUITEM "Запомняне\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Поставяне\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Запомняне\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Поставяне\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Изглед"
|
||||
BEGIN
|
||||
@@ -341,8 +347,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "&Обработка"
|
||||
BEGIN
|
||||
MENUITEM "Запомняне\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Поставяне\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Запомняне\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Поставяне\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Изглед"
|
||||
BEGIN
|
||||
@@ -374,8 +380,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "&Обработка"
|
||||
BEGIN
|
||||
MENUITEM "Запомняне\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Поставяне\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Запомняне\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Поставяне\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Изглед"
|
||||
BEGIN
|
||||
@@ -504,7 +510,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Люксембургски франк"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Малтийска лира"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Португалско ескудо"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Португалско ескудо"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Словашка крона"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Словенси толар"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Испанска песета"
|
||||
|
@@ -1,22 +1,23 @@
|
||||
/*
|
||||
* TRANSLATOR: 2010 Radek Liska (Black_Fox) <radekliska@gmail.com>
|
||||
/* FILE: base/applications/calc/lang/cs-CZ.rc
|
||||
* TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
|
||||
* UPDATED: 2010-05-30
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulačka"
|
||||
CAPTION "ReactOS kalkulačka"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -133,13 +134,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Stupně", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radiány", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Grady", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Stupně", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radiány", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Grady", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -150,9 +155,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulačka"
|
||||
CAPTION "ReactOS Kalkulačka"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -215,9 +220,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulačka"
|
||||
CAPTION "ReactOS Kalkulačka"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -309,8 +314,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "Úpravy"
|
||||
BEGIN
|
||||
MENUITEM "Kopírovat\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Vložit\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopírovat\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Vložit\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Zobrazit"
|
||||
BEGIN
|
||||
@@ -341,8 +346,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "Úpravy"
|
||||
BEGIN
|
||||
MENUITEM "Kopírovat\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Vložit\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopírovat\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Vložit\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Zobrazit"
|
||||
BEGIN
|
||||
@@ -374,8 +379,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "Úpravy"
|
||||
BEGIN
|
||||
MENUITEM "Kopírovat\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Vložit\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopírovat\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Vložit\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Zobrazit"
|
||||
BEGIN
|
||||
@@ -504,7 +509,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Lucemburský frank"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Maltská lira"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugalské escudo"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugalské escudo"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Slovenská koruna"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovinský tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Španělská peseta"
|
||||
|
@@ -2,17 +2,17 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Rechner"
|
||||
CAPTION "ReactOS Rechner"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dez", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Okt", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dez", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Okt", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -129,13 +129,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Degree", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radiant", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Grad", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Degree", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radiant", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Grad", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -146,9 +150,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Rechner"
|
||||
CAPTION "ReactOS Rechner"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -211,9 +215,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Rechner"
|
||||
CAPTION "ReactOS Rechner"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -303,89 +307,89 @@ END
|
||||
|
||||
IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "&Bearbeiten"
|
||||
POPUP "Bearbeiten"
|
||||
BEGIN
|
||||
MENUITEM "&Kopieren\tStrg-C", IDM_EDIT_COPY
|
||||
MENUITEM "&Einfügen\tStrg-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopieren\tSTRG-C", IDM_EDIT_COPY
|
||||
MENUITEM "Einfügen\tSTRG-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&Ansicht"
|
||||
POPUP "Ansicht"
|
||||
BEGIN
|
||||
MENUITEM "&Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Wissenschaftlich", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Kon&version", IDM_VIEW_CONVERSION
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Konversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "De&zimal\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "O&ktal\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "&Binär\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "Dezimal\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "Oktal\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "Binär\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Deg\tF2", IDM_VIEW_DEG, CHECKED
|
||||
MENUITEM "&Rad\tF3", IDM_VIEW_RAD, CHECKED
|
||||
MENUITEM "&Grad\tF4", IDM_VIEW_GRAD, CHECKED
|
||||
MENUITEM "Degree\tF2", IDM_VIEW_DEG, CHECKED
|
||||
MENUITEM "Radiant\tF3", IDM_VIEW_RAD, CHECKED
|
||||
MENUITEM "Grad\tF4", IDM_VIEW_GRAD, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Zifferngr&uppierung", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Zifferngruppierung", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "&?"
|
||||
POPUP "Hilfe"
|
||||
BEGIN
|
||||
MENUITEM "&Hilfethemen", IDM_HELP_HELP
|
||||
MENUITEM "Hilfethemen", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Info", IDM_HELP_ABOUT
|
||||
MENUITEM "Info", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "&Bearbeiten"
|
||||
POPUP "Bearbeiten"
|
||||
BEGIN
|
||||
MENUITEM "&Kopieren\tStrg-C", IDM_EDIT_COPY
|
||||
MENUITEM "&Einfügen\tStrg-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopieren\tSTRG-C", IDM_EDIT_COPY
|
||||
MENUITEM "Einfügen\tSTRG-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&Ansicht"
|
||||
POPUP "Ansicht"
|
||||
BEGIN
|
||||
MENUITEM "&Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Wissenschaftlich", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Kon&version", IDM_VIEW_CONVERSION
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Konversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "&Dezimal\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "O&ktal\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "Bi&när\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "Dezimal\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "Oktal\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "Binär\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Qword\tF12", IDM_VIEW_QWORD, CHECKED
|
||||
MENUITEM "Dw&ord\tF2", IDM_VIEW_DWORD, CHECKED
|
||||
MENUITEM "Wo&rd\tF3", IDM_VIEW_WORD, CHECKED
|
||||
MENUITEM "&Byte\tF4", IDM_VIEW_BYTE, CHECKED
|
||||
MENUITEM "Qword\tF12", IDM_VIEW_QWORD, CHECKED
|
||||
MENUITEM "Dword\tF2", IDM_VIEW_DWORD, CHECKED
|
||||
MENUITEM "Word\tF3", IDM_VIEW_WORD, CHECKED
|
||||
MENUITEM "Byte\tF4", IDM_VIEW_BYTE, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Zifferngr&uppierung", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Zifferngruppierung", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "&?"
|
||||
POPUP "Hilfe"
|
||||
BEGIN
|
||||
MENUITEM "&Hilfethemen", IDM_HELP_HELP
|
||||
MENUITEM "Hilfethemen", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Info", IDM_HELP_ABOUT
|
||||
MENUITEM "Über ReactOS Rechner", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "&Bearbeiten"
|
||||
POPUP "Bearbeiten"
|
||||
BEGIN
|
||||
MENUITEM "&Kopieren\tStrg-C", IDM_EDIT_COPY
|
||||
MENUITEM "&Einfügen\tStrg-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopieren\tSTRG-C", IDM_EDIT_COPY
|
||||
MENUITEM "Einfügen\tSTRG-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&Ansicht"
|
||||
POPUP "Ansicht"
|
||||
BEGIN
|
||||
MENUITEM "&Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Wissenschaftlich", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Kon&version", IDM_VIEW_CONVERSION
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Konversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Zifferngr&uppierung", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Zifferngruppierung", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "&?"
|
||||
POPUP "Hilfe"
|
||||
BEGIN
|
||||
MENUITEM "&Hilfethemen", IDM_HELP_HELP
|
||||
MENUITEM "Hilfethemen", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Info", IDM_HELP_ABOUT
|
||||
MENUITEM "Über ReactOS Rechner", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -500,7 +504,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxemburgische Franc"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Maltesische Lire"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugiesische Escudo"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugiesische Escudo"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Slowakische Krone"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenische Tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Spanische Peseta"
|
||||
|
@@ -2,17 +2,17 @@ LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Αριθμομηχανή"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -129,13 +129,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Βαθμοί", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Μοίρες", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Ακτίνια", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Βαθμοί", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Μοίρες", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Ακτίνια", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -146,7 +150,7 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Αριθμομηχανή"
|
||||
MENU IDR_MENU_STANDARD
|
||||
@@ -211,7 +215,7 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Αριθμομηχανή"
|
||||
MENU IDR_MENU_STANDARD
|
||||
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "Επεξεργασία"
|
||||
BEGIN
|
||||
MENUITEM "Αντιγραφή\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Επικόλληση\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Αντιγραφή\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Επικόλληση\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "View"
|
||||
BEGIN
|
||||
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "Επεξεργασία"
|
||||
BEGIN
|
||||
MENUITEM "Αντιγραφή\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Επικόλληση\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Αντιγραφή\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Επικόλληση\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "View"
|
||||
BEGIN
|
||||
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "Επεξεργασία"
|
||||
BEGIN
|
||||
MENUITEM "Αντιγραφή\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Επικόλληση\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Αντιγραφή\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Επικόλληση\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "View"
|
||||
BEGIN
|
||||
@@ -500,7 +504,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Μαλτέζικη λίρα"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Πορτογαλικό εσκούδο"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Πορτογαλικό εσκούδο"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Slovak koruna"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenian tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Ισπανική πεσέτα"
|
||||
|
@@ -2,17 +2,17 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculator"
|
||||
CAPTION "ReactOS Calculator"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -129,13 +129,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Degrees", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radians", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradians", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Degrees", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radians", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradians", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -146,9 +150,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculator"
|
||||
CAPTION "ReactOS Calculator"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -211,9 +215,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculator"
|
||||
CAPTION "ReactOS Calculator"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -500,7 +504,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Maltese lira"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portuguese escudo"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portuguese escudo"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Slovak koruna"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenian tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Spanish peseta"
|
||||
|
@@ -8,17 +8,17 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculadora"
|
||||
CAPTION "Calculadora de ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hipotenusa", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 37, 41, 48, 10
|
||||
@@ -135,13 +135,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Grados", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radianes", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradianes", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Grados", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 151, 21, 45, 10
|
||||
CONTROL "Radianes", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 198, 21, 45, 10
|
||||
CONTROL "Gradianes", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 248, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -152,9 +156,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculadora"
|
||||
CAPTION "Calculadora de ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -217,9 +221,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculadora"
|
||||
CAPTION "Calculadora de ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -311,8 +315,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "Edición"
|
||||
BEGIN
|
||||
MENUITEM "Copiar\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Pegar\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Copiar\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Pegar\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Ver"
|
||||
BEGIN
|
||||
@@ -343,8 +347,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "Edición"
|
||||
BEGIN
|
||||
MENUITEM "Copiar\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Pegar\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Copiar\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Pegar\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Ver"
|
||||
BEGIN
|
||||
@@ -376,8 +380,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "Edición"
|
||||
BEGIN
|
||||
MENUITEM "Copiar\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Pegar\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Copiar\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Pegar\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Ver"
|
||||
BEGIN
|
||||
@@ -506,7 +510,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Franco luxemburgués"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Lira maltesa"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo portugués"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo portugués"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Corona eslovaca"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar esloveno"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Peseta española"
|
||||
|
@@ -2,17 +2,17 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculatrice"
|
||||
CAPTION "Calculatrice ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -129,13 +129,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Q-mot", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "D-mot", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Mot", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Octet", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Degrés", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radians", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Grades", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Q-mot", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "D-mot", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Mot", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Octet", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Degrés", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radians", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Grades", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -146,9 +150,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculatrice"
|
||||
CAPTION "Calculatrice ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -211,9 +215,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculatrice"
|
||||
CAPTION "Calculatrice ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "Édition"
|
||||
BEGIN
|
||||
MENUITEM "Copier\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Coller\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Copier\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Coller\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Affichage"
|
||||
BEGIN
|
||||
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "Édition"
|
||||
BEGIN
|
||||
MENUITEM "Copier\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Coller\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Copier\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Coller\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Affichage"
|
||||
BEGIN
|
||||
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "Édition"
|
||||
BEGIN
|
||||
MENUITEM "Copier\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Coller\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Copier\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Coller\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Affichage"
|
||||
BEGIN
|
||||
@@ -500,7 +504,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Franc luxembourgeois"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Lire maltaise"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo portugaise"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo portugaise"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Couronne slovaque"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar slovène"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Peseta espagnole"
|
||||
|
@@ -1,21 +1,21 @@
|
||||
/* TRANSLATOR: Baruch Rutman */
|
||||
/* Translated by Baruch Rutman */
|
||||
|
||||
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_LAYOUTRTL
|
||||
CAPTION "מחשבון"
|
||||
CAPTION "מחשבון ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 4 ,14, 141, 20
|
||||
AUTORADIOBUTTON "הקס", IDC_RADIO_HEX, 6, 21, 30, 10
|
||||
AUTORADIOBUTTON "עשרוני", IDC_RADIO_DEC, 36, 21, 34, 10
|
||||
AUTORADIOBUTTON "אוקטלי", IDC_RADIO_OCT, 73, 21, 37, 10
|
||||
AUTORADIOBUTTON "בינרי", IDC_RADIO_BIN, 113, 21, 30, 10
|
||||
CONTROL "הקס", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 6, 21, 30, 10
|
||||
CONTROL "עשרוני", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 36, 21, 34, 10
|
||||
CONTROL "אוקטלי", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 73, 21, 37, 10
|
||||
CONTROL "בינרי", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 113, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 4, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -132,13 +132,17 @@ BEGIN
|
||||
PUSHBUTTON "A", IDC_BUTTON_A, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "מעלות", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "רדיאנים", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "גרדיאנים", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "מעלות", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "רדיאנים", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "גרדיאנים", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -149,10 +153,10 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_LAYOUTRTL
|
||||
CAPTION "מחשבון"
|
||||
CAPTION "מחשבון ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -215,10 +219,10 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_LAYOUTRTL
|
||||
CAPTION "מחשבון"
|
||||
CAPTION "מחשבון ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -506,7 +510,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "פרנק לוקסמבורגי"
|
||||
IDS_CURRENCY_MALTESE_LIRA "לירה מלטזי"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "אסקודו פורטגלי"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "אסקודו פורטגלי"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "קורונה סלובקית"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "טולר סלובני"
|
||||
IDS_CURRENCY_SPANISH_PESETA "פזטה ספרדית"
|
||||
|
@@ -1,25 +1,26 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Calculator
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: base/applications/calc/lang/hu-HU.rc
|
||||
* PURPOSE: Hungarian Language File for ReactOS Calc
|
||||
* TRANSLATOR: Nagy Tibor <xnagytibor@gmail.com>
|
||||
* TRANSLATOR: Nagy Tibor (xnagytibor at gmail dot com)
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Számológép"
|
||||
CAPTION "ReactOS Számológép"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -136,13 +137,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Négyszó", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Duplaszó", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Szó", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Bájt", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Fok", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radián", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradián", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Négyszó", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Duplaszó", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Szó", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Bájt", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Fok", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radián", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradián", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -153,9 +158,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Számológép"
|
||||
CAPTION "ReactOS Számológép"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -218,9 +223,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Számológép"
|
||||
CAPTION "ReactOS Számológép"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -447,12 +452,12 @@ BEGIN
|
||||
IDS_AREA_ACRES_FRANCE "Acre (Franciaország)"
|
||||
IDS_AREA_ACRES_SCOTS "Acre (Skót)"
|
||||
IDS_AREA_ACRES_US "Acre (Egyesült Államok)"
|
||||
IDS_AREA_ARES "Are"
|
||||
IDS_AREA_ARES "Are" // ?
|
||||
IDS_AREA_CHOU "Chou"
|
||||
IDS_AREA_DANBO "Danbo"
|
||||
IDS_AREA_HECTARES "Hektár"
|
||||
IDS_AREA_JEONGBO "Jeongbo"
|
||||
IDS_AREA_MORGEN_HUNGARY "Hold (Magyarország)"
|
||||
IDS_AREA_MORGEN_HUNGARY "Hold (Magyarország)" // ?
|
||||
IDS_AREA_MU "Mu"
|
||||
IDS_AREA_PING "Ping"
|
||||
IDS_AREA_PYEONG "Pyeong"
|
||||
@@ -460,19 +465,19 @@ BEGIN
|
||||
IDS_AREA_RAI "Rai"
|
||||
IDS_AREA_SE "Se"
|
||||
IDS_AREA_SQUARE_CENTIMETERS "Négyzetcentiméter"
|
||||
IDS_AREA_SQUARE_CHR "Négyzetchr"
|
||||
IDS_AREA_SQUARE_FATHOMS "Négyzetöl"
|
||||
IDS_AREA_SQUARE_FATHOMS_HUNGARY "Négyzetöl (Magyarország)"
|
||||
IDS_AREA_SQUARE_FEET "Négyzetláb"
|
||||
IDS_AREA_SQUARE_INCHES "Négyzethüvelyk"
|
||||
IDS_AREA_SQUARE_CHR "Négyzetchr" // ?
|
||||
IDS_AREA_SQUARE_FATHOMS "Négyzetöl" // Alt.: Négyszögöl
|
||||
IDS_AREA_SQUARE_FATHOMS_HUNGARY "Négyzetöl (Magyarország)" // Alt.: Négyszögöl (Magyarország)
|
||||
IDS_AREA_SQUARE_FEET "Négyzetláb" // Alt.: Négyszögláb
|
||||
IDS_AREA_SQUARE_INCHES "Négyzethüvelyk" // Alt.: Négyszöghüvelyk
|
||||
IDS_AREA_SQUARE_KILOMETERS "Négyzetkilométer"
|
||||
IDS_AREA_SQUARE_LAR "Négyzetlar"
|
||||
IDS_AREA_SQUARE_LAR "Négyzetlar" // ?
|
||||
IDS_AREA_SQUARE_METER "Négyzetméter"
|
||||
IDS_AREA_SQUARE_MILES "Négyzetmérföld"
|
||||
IDS_AREA_SQUARE_MILLIMETERS "Négyzetmilliméter"
|
||||
IDS_AREA_SQUARE_SHAKU "Négyzetshaku"
|
||||
IDS_AREA_SQUARE_TSUEN "Négyzettsuen"
|
||||
IDS_AREA_SQUARE_VA "Négyzetva"
|
||||
IDS_AREA_SQUARE_SHAKU "Négyzetshaku" // ?
|
||||
IDS_AREA_SQUARE_TSUEN "Négyzettsuen" // ?
|
||||
IDS_AREA_SQUARE_VA "Négyzetva" // ?
|
||||
IDS_AREA_SQUARE_YARD "Négyzetyard"
|
||||
IDS_AREA_TAN "Tan"
|
||||
IDS_AREA_TSUBO "Tsubo"
|
||||
@@ -507,7 +512,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxemburgi frank"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Máltai líra"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugál escudo"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugál escudo"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Szlovák korona"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Szlovén tolár"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Spanyol pezeta"
|
||||
|
@@ -9,17 +9,17 @@ LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulator"
|
||||
CAPTION "Kalkulator ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -136,13 +136,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Derajat", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radian", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradian", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Derajat", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radian", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradian", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -153,9 +157,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulator"
|
||||
CAPTION "Kalkulator ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -218,9 +222,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulator"
|
||||
CAPTION "Kalkulator ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -507,7 +511,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Litas Lithuania"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Franc Luksemburg"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Lira Malta"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo Portugis"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo Portugis"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Koruna Slovakia"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar Slovenia"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Peseta Spanyol"
|
||||
|
@@ -2,17 +2,17 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calcolatrice"
|
||||
CAPTION "Calcolatrice ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -129,13 +129,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Gradi", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radianti", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradienti", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Gradi", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radianti", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradienti", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -146,9 +150,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calcolatrice"
|
||||
CAPTION "Calcolatrice ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -211,9 +215,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calcolatrice"
|
||||
CAPTION "Calcolatrice ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "Modifica"
|
||||
BEGIN
|
||||
MENUITEM "Copia\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Incolla\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Copia\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Incolla\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Visualizza"
|
||||
BEGIN
|
||||
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "Modifica"
|
||||
BEGIN
|
||||
MENUITEM "Copia\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Incolla\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Copia\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Incolla\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Visualizza"
|
||||
BEGIN
|
||||
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "Modifica"
|
||||
BEGIN
|
||||
MENUITEM "Copia\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Incolla\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Copia\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Incolla\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Visualizza"
|
||||
BEGIN
|
||||
@@ -500,7 +504,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Franco Lussemburghese"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Lira maltese"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo portoghese"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo portoghese"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Corona slovacca"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Tallero sloveno"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Peseta spagnola"
|
||||
|
@@ -2,17 +2,17 @@ LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "電卓"
|
||||
CAPTION "ReactOS 電卓"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 9, "MS UI Gothic", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "16進", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "10進", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "8進", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "2進", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "16進", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "10進", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "8進", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "2進", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -129,13 +129,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Degrees", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radians", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradians", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Degrees", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radians", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradians", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -146,9 +150,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "電卓"
|
||||
CAPTION "ReactOS 電卓"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 9, "MS UI Gothic", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -211,9 +215,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "電卓"
|
||||
CAPTION "ReactOS 電卓"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 9, "MS UI Gothic"
|
||||
BEGIN
|
||||
@@ -373,7 +377,7 @@ BEGIN
|
||||
MENUITEM "コピー(&C)\tCtrl+C", IDM_EDIT_COPY
|
||||
MENUITEM "貼り付け(&P)\tCtrl+V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "表示(&V)"
|
||||
POPUP "表示"
|
||||
BEGIN
|
||||
MENUITEM "標準(&T)", IDM_VIEW_STANDARD
|
||||
MENUITEM "関数電卓(&S)", IDM_VIEW_SCIENTIFIC
|
||||
@@ -500,7 +504,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "ルクセンブルク フラン"
|
||||
IDS_CURRENCY_MALTESE_LIRA "マルタ リラ"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "ポルトガル エスクード"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "ポルトガル エスクード"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "スロバキア コルナ"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "スロベニア tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "スペイン ペセタ"
|
||||
|
@@ -4,17 +4,17 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "계산기"
|
||||
CAPTION "ReactOS 계산기"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 9, "굴림", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -131,13 +131,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Degrees", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radians", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradians", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Degrees", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radians", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradians", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -148,9 +152,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "계산기"
|
||||
CAPTION "ReactOS 계산기"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 9, "굴림", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -213,9 +217,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "계산기"
|
||||
CAPTION "ReactOS 계산기 정보"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 9, "굴림"
|
||||
BEGIN
|
||||
@@ -307,8 +311,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "편집"
|
||||
BEGIN
|
||||
MENUITEM "복사\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "붙여넣기\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "복사\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "붙여넣기\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "보기"
|
||||
BEGIN
|
||||
@@ -339,8 +343,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "편집"
|
||||
BEGIN
|
||||
MENUITEM "복사\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "붙여넣기\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "복사\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "붙여넣기\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "보기"
|
||||
BEGIN
|
||||
@@ -372,8 +376,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "편집"
|
||||
BEGIN
|
||||
MENUITEM "복사\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "붙여넣기\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "복사\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "붙여넣기\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "보기"
|
||||
BEGIN
|
||||
@@ -502,7 +506,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Maltese lira"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portuguese escudo"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portoguese escudo"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Slovak koruna"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenian tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Spanish peseta"
|
||||
|
@@ -2,17 +2,17 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Rekenmachine"
|
||||
CAPTION "ReactOS Rekenmachine"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -129,13 +129,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Graden", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radialen", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradiënten", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Graden", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radialen", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradiënten", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -146,9 +150,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Rekenmachine"
|
||||
CAPTION "ReactOS Rekenmachine"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -211,9 +215,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Rekenmachine"
|
||||
CAPTION "ReactOS Rekenmachine"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "Bewerken"
|
||||
BEGIN
|
||||
MENUITEM "Kopiëren\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Plakken\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopiëren\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Plakken\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Beeld"
|
||||
BEGIN
|
||||
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "Edit"
|
||||
BEGIN
|
||||
MENUITEM "Kopiëren\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Plakken\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopiëren\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Plakken\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Beeld"
|
||||
BEGIN
|
||||
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "Edit"
|
||||
BEGIN
|
||||
MENUITEM "Kopiëren\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Plakken\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopiëren\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Plakken\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "View"
|
||||
BEGIN
|
||||
@@ -500,7 +504,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxemburgse franc"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Maltese lira"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugese escudo"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugese escudo"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Slowaakse kroon"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Sloveense tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Spaanse peseta"
|
||||
|
@@ -2,17 +2,17 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulator"
|
||||
CAPTION "ReactOS Kalkulator"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Heks", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Des", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Okt", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Heks", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Des", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Okt", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -129,13 +129,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Tegn", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Grader", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radianer", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradienter", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Tegn", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Grader", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radianer", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradienter", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -146,9 +150,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulator"
|
||||
CAPTION "ReactOS Kalkulator"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -211,9 +215,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulator"
|
||||
CAPTION "ReactOS Kalkulator"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "Rediger"
|
||||
BEGIN
|
||||
MENUITEM "Kopier\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Lim inn\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopier\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Lim inn\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Vis"
|
||||
BEGIN
|
||||
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "Rediger"
|
||||
BEGIN
|
||||
MENUITEM "Kopier\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Lim inn\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopier\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Lim inn\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Vis"
|
||||
BEGIN
|
||||
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "Rediger"
|
||||
BEGIN
|
||||
MENUITEM "Kopier\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Lim inn\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopier\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Lim inn\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Vis"
|
||||
BEGIN
|
||||
@@ -500,7 +504,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Maltesisk lira"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugisisk escudo"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portogisisk escudo"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Slovansk koruna"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenansk tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Spansk peseta"
|
||||
|
@@ -1,25 +1,27 @@
|
||||
/*
|
||||
* Translated by Caemyr - Olaf Siejka 2008-2011
|
||||
* Use ReactOS forum PM or IRC to contact me
|
||||
* IRC: irc.freenode.net #reactos-pl;
|
||||
* Updated by Saibamen - Adam Stachowicz <saibamenppl@gmail.com> 2011
|
||||
* Translated by Caemyr - Olaf Siejka (Feb, Jun 2008)
|
||||
* Use ReactOS forum PM or IRC to contact me
|
||||
* https://reactos.org
|
||||
* IRC: irc.freenode.net #reactos-pl;
|
||||
* Updated by Saibamen - Adam Stachowicz (saibamenppl@gmail.com) (Apr, 2011)
|
||||
* UTF-8 conversion by Caemyr (May, 2011)
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulator"
|
||||
CAPTION "Kalkulator ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -136,13 +138,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Bajt", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Stopnie", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radiany", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradusy", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Bajt", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Stopnie", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radiany", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradusy", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -153,9 +159,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulator"
|
||||
CAPTION "Kalkulator ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -218,9 +224,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulator"
|
||||
CAPTION "Kalkulator ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -312,8 +318,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "Edycja"
|
||||
BEGIN
|
||||
MENUITEM "Kopiuj\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Wklej\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopiuj\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Wklej\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Wygląd"
|
||||
BEGIN
|
||||
@@ -344,8 +350,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "Edycja"
|
||||
BEGIN
|
||||
MENUITEM "Kopiuj\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Wklej\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopiuj\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Wklej\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Wygląd"
|
||||
BEGIN
|
||||
@@ -377,8 +383,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "Edycja"
|
||||
BEGIN
|
||||
MENUITEM "Kopiuj\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Wklej\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopiuj\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Wklej\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Wygląd"
|
||||
BEGIN
|
||||
@@ -507,7 +513,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Litewski lit"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luksemburski frank"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Maltańskie liry"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugalskie escudo"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugalskie escudo"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Słowacka korona"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Słoveński tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Hiszpańska peseta"
|
||||
|
@@ -1,20 +1,20 @@
|
||||
/* TRANSLATOR: 2011 mkbu95 <mkbu95@gmail.com> */
|
||||
/* Translation and UTF-8 Conversion by mkbu95 <mkbu95@gmail.com> (August, 2011) */
|
||||
|
||||
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculadora"
|
||||
CAPTION "Calculadora ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -131,13 +131,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Graus", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radianos", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Grados", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Graus", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radianos", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Grados", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -148,9 +152,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculadora"
|
||||
CAPTION "Calculadora ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -213,9 +217,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculadora"
|
||||
CAPTION "Calculadora ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -502,7 +506,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Franco luxemburguês"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Lira maltesa"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo português"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo português"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Coroa eslovaca"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Peseta"
|
||||
|
@@ -1,20 +1,20 @@
|
||||
/* TRANSLATOR: 2021 Gabriel Aguiar <fgygh5804@gmail.com,fgsoftwarestudio@gmail.com> */
|
||||
/* Translation and UTF-8 Conversion by Gabriel Aguiar <fgygh5804@gmail.com,fgsoftwarestudio@gmail.com> (July, 2021) */
|
||||
|
||||
LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculadora"
|
||||
CAPTION "Calculadora ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -131,13 +131,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Graus", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radianos", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Grados", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Graus", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radianos", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Grados", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -148,9 +152,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculadora"
|
||||
CAPTION "Calculadora ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -213,9 +217,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculadora"
|
||||
CAPTION "Calculadora ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -502,7 +506,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Franco luxemburguês"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Lira maltesa"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo português"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo português"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Coroa eslovaca"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Peseta"
|
||||
|
@@ -4,24 +4,24 @@
|
||||
* PURPOSE: Romanian resource file
|
||||
* TRANSLATORS: Copyright 2009 Petru Dimitriu <petrimetri@gmail.com>
|
||||
* Copyright 2011-2018 Ștefan Fulea <stefan.fulea@mail.com>
|
||||
* Copyright 2022-2024 Andrei Miloiu <miloiuandrei@gmail.com>
|
||||
* Copyright 2022 Andrei Miloiu <miloiuandrei@gmail.com>
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculator"
|
||||
CAPTION "Minicalculator"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -138,26 +138,30 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "64 biți", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "32 biți", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "16 biți", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "8 biți", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Grade", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radiani", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradiani", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "64 biți", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "32 biți", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "16 biți", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "8 biți", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Grade", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radiani", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradiani", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "Backspace", IDC_BUTTON_BACK, 177, 38, 43, 18, BS_CENTER |
|
||||
PUSHBUTTON "Înapoi", IDC_BUTTON_BACK, 177, 38, 43, 18, BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
RTEXT "", IDC_TEXT_OUTPUT, 5, 1, 305, 14, SS_CENTERIMAGE, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculator"
|
||||
CAPTION "Minicalculator"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -165,7 +169,7 @@ BEGIN
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 80, 23, 41, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "Backspace", IDC_BUTTON_BACK, 36, 23, 42, 18, BS_CENTER | BS_VCENTER |
|
||||
PUSHBUTTON "Înapoi", IDC_BUTTON_BACK, 36, 23, 42, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
RTEXT "", IDC_TEXT_OUTPUT, 5, 1, 159, 14, SS_CENTERIMAGE, WS_EX_CLIENTEDGE
|
||||
PUSHBUTTON "7", IDC_BUTTON_7, 36, 45, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -220,9 +224,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculator"
|
||||
CAPTION "Minicalculator"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -240,7 +244,7 @@ BEGIN
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP, 276, 24, 40, 17
|
||||
CONTROL "CE", IDC_BUTTON_CE, "Button", BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP, 232, 24, 40, 17
|
||||
CONTROL "Backspace", IDC_BUTTON_BACK, "Button", BS_OWNERDRAW | BS_CENTER |
|
||||
CONTROL "Înapoi", IDC_BUTTON_BACK, "Button", BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP, 188, 24, 40,17
|
||||
RTEXT "", IDC_TEXT_OUTPUT, 5, 1, 312, 14, SS_CENTERIMAGE, WS_EX_CLIENTEDGE
|
||||
CONTROL "7", IDC_BUTTON_7, "Button", BS_OWNERDRAW | BS_CENTER |
|
||||
@@ -314,31 +318,31 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "&Editare"
|
||||
BEGIN
|
||||
MENUITEM "&Copiere\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "&Lipire\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "&Copiază\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "&Lipește\tCtrl-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&Vizualizare"
|
||||
POPUP "&Afișare"
|
||||
BEGIN
|
||||
MENUITEM "&Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Ştiinţific", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Co&nversie", IDM_VIEW_CONVERSION
|
||||
MENUITEM "Mod st&andard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Mod știi&nțific", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Con&versie", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hexazecimal\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "&Zecimal\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "O&ctal\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "&Octal\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "&Binar\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Grade\tF2", IDM_VIEW_DEG, CHECKED
|
||||
MENUITEM "&Radiani\tF3", IDM_VIEW_RAD, CHECKED
|
||||
MENUITEM "Gra&diani\tF4", IDM_VIEW_GRAD, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "G&ruparea cifrelor", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Grupează &cifrele", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "Aj&utor"
|
||||
BEGIN
|
||||
MENUITEM "&Termeni din Ajutor", IDM_HELP_HELP
|
||||
MENUITEM "&Manual…", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Despre Calculator ReactOS", IDM_HELP_ABOUT
|
||||
MENUITEM "&Despre…", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -346,32 +350,32 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "&Editare"
|
||||
BEGIN
|
||||
MENUITEM "&Copiere\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "&Lipire\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "&Copiază\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "&Lipește\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&Vizualizare"
|
||||
POPUP "&Afișare"
|
||||
BEGIN
|
||||
MENUITEM "&Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Ştiinţific", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "G&ruparea cifrelor", IDM_VIEW_CONVERSION
|
||||
MENUITEM "Mod st&andard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Mod știi&nțific", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Con&versie", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hexazecimal\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "&Zecimal\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "&Octal\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "&Binar\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&64 de biți\tF12", IDM_VIEW_QWORD, CHECKED
|
||||
MENUITEM "&32 de biți\tF2", IDM_VIEW_DWORD, CHECKED
|
||||
MENUITEM "&64 biți\tF12", IDM_VIEW_QWORD, CHECKED
|
||||
MENUITEM "&32 biți\tF2", IDM_VIEW_DWORD, CHECKED
|
||||
MENUITEM "&16 biți\tF3", IDM_VIEW_WORD, CHECKED
|
||||
MENUITEM "&8 biți\tF4", IDM_VIEW_BYTE, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Gr&uparea cifrelor", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Grupează &cifrele", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "Aj&utor"
|
||||
BEGIN
|
||||
MENUITEM "&Termeni din Ajutor", IDM_HELP_HELP
|
||||
MENUITEM "&Manual…", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Despre Calculator ReactOS", IDM_HELP_ABOUT
|
||||
MENUITEM "&Despre…", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -379,22 +383,22 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "&Editare"
|
||||
BEGIN
|
||||
MENUITEM "&Copiere\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "&Lipire\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "&Copiază\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "&Lipește\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&Vizualizare"
|
||||
POPUP "&Afișare"
|
||||
BEGIN
|
||||
MENUITEM "&Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Ştiinţific", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Co&nversie", IDM_VIEW_CONVERSION
|
||||
MENUITEM "Mod st&andard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Mod știi&nțific", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Con&versie", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Gr&uparea cifrelor", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Grupează &cifre", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "Aj&utor"
|
||||
BEGIN
|
||||
MENUITEM "&Termeni din Ajutor", IDM_HELP_HELP
|
||||
MENUITEM "&Manual…", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Despre Calculator ReactOS", IDM_HELP_ABOUT
|
||||
MENUITEM "&Despre…", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -403,13 +407,13 @@ END
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_MATH_ERROR "Eroare"
|
||||
IDS_QUICKHELP "Termeni din Ajutor"
|
||||
IDS_QUICKHELP "Manual"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Calculator ReactOS"
|
||||
IDS_CALC_NAME "Minicalculator ReactOS"
|
||||
IDS_AUTHOR "Scris de Carlo Bramini"
|
||||
END
|
||||
|
||||
@@ -434,8 +438,8 @@ END
|
||||
/* Angles */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ANGLE_ARCMINUTES "Minut de arc"
|
||||
IDS_ANGLE_ARCSECONDS "Secundă de arc"
|
||||
IDS_ANGLE_ARCMINUTES "Minute of arc"
|
||||
IDS_ANGLE_ARCSECONDS "Second of arc"
|
||||
IDS_ANGLE_DEGREES "Grade"
|
||||
IDS_ANGLE_GRADIANS "Gradiani"
|
||||
IDS_ANGLE_RADIANS "Radiani"
|
||||
@@ -466,7 +470,7 @@ BEGIN
|
||||
IDS_AREA_SQUARE_FATHOMS "Fathomi pătrați"
|
||||
IDS_AREA_SQUARE_FATHOMS_HUNGARY "Fathomi pătrați (Ungaria)"
|
||||
IDS_AREA_SQUARE_FEET "Picioare pătrate"
|
||||
IDS_AREA_SQUARE_INCHES "Inci pătrați"
|
||||
IDS_AREA_SQUARE_INCHES "Țoli pătrați"
|
||||
IDS_AREA_SQUARE_KILOMETERS "Kilometri pătrați"
|
||||
IDS_AREA_SQUARE_LAR "Lar pătrați"
|
||||
IDS_AREA_SQUARE_METER "Metri pătrați"
|
||||
@@ -509,7 +513,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Litas lituanian"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Franc luxemburghez"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Litră malteză"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo portughez"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo portughez"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Coroană slovacă"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar sloven"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Peseta spaniolă"
|
||||
@@ -520,7 +524,7 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ENERGY_15_C_CALORIES "Calorii 15 °C"
|
||||
IDS_ENERGY_BTUS "Unități termale britanice"
|
||||
IDS_ENERGY_ERGS "Ergi"
|
||||
IDS_ENERGY_ERGS "Erg"
|
||||
IDS_ENERGY_EVS "Electroni-Volt"
|
||||
IDS_ENERGY_FOOT_POUNDS "Picioare-Livră"
|
||||
IDS_ENERGY_IT_CALORIES "Calorii Tabel Internațional"
|
||||
@@ -551,7 +555,7 @@ BEGIN
|
||||
IDS_LENGTH_GAN "Gan"
|
||||
IDS_LENGTH_HANDS "Palme"
|
||||
IDS_LENGTH_HUNH "Hunh"
|
||||
IDS_LENGTH_INCHES "Inci"
|
||||
IDS_LENGTH_INCHES "Țoli"
|
||||
IDS_LENGTH_JA "Ja"
|
||||
IDS_LENGTH_JEONG "Jeong"
|
||||
IDS_LENGTH_KABIET "Kabiet"
|
||||
@@ -588,7 +592,7 @@ END
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_POWER_BTUS_PER_MINUTE "Unități termice britanice pe minut"
|
||||
IDS_POWER_FPS_PER_MINUTE "Picior-lire pe minut"
|
||||
IDS_POWER_FPS_PER_MINUTE "Picior-livre pe minut"
|
||||
IDS_POWER_HORSEPOWER "Cai putere"
|
||||
IDS_POWER_KILOWATTS "Kilowați"
|
||||
IDS_POWER_MEGAWATTS "Megawați"
|
||||
@@ -604,7 +608,7 @@ BEGIN
|
||||
IDS_PRESSURE_KILOPASCALS "Kilopascali"
|
||||
IDS_PRESSURE_MM_OF_MERCURY "Milimetri coloană de mercur"
|
||||
IDS_PRESSURE_PASCALS "Pascali"
|
||||
IDS_PRESSURE_PSI "Livre-forță pe inci pătrați"
|
||||
IDS_PRESSURE_PSI "Livre-forță pe țol pătrat"
|
||||
END
|
||||
|
||||
/* Temperatures */
|
||||
@@ -653,7 +657,7 @@ BEGIN
|
||||
IDS_VOLUME_BUSHELS_US "Bushel (SUA)"
|
||||
IDS_VOLUME_CUBIC_CENTIMETERS "Centrimetri cubi"
|
||||
IDS_VOLUME_CUBIC_FEET "Picioare^3"
|
||||
IDS_VOLUME_CUBIC_INCHES "Inci cubi"
|
||||
IDS_VOLUME_CUBIC_INCHES "Țoli cubi"
|
||||
IDS_VOLUME_CUBIC_METERS "Metri cubi"
|
||||
IDS_VOLUME_CUBIC_YARDS "Yarzi cubi"
|
||||
IDS_VOLUME_DOE "Doe"
|
||||
@@ -704,11 +708,11 @@ BEGIN
|
||||
IDS_WEIGHT_OUNCES_AVOIRDUPOIS "Uncii, avoirdupois"
|
||||
IDS_WEIGHT_OUNCES_TROY "Uncii, troy"
|
||||
IDS_WEIGHT_POUNDS "Livre"
|
||||
IDS_WEIGHT_QUINTAL_METRIC "Quintale (metric)"
|
||||
IDS_WEIGHT_QUINTAL_METRIC "Chintale (metric)"
|
||||
IDS_WEIGHT_SALOUNG "Saloung"
|
||||
IDS_WEIGHT_STONES "Stones"
|
||||
IDS_WEIGHT_TAMLUNG "Tamlung"
|
||||
IDS_WEIGHT_TONNES "Tone"
|
||||
IDS_WEIGHT_TONNES "Tonni"
|
||||
IDS_WEIGHT_TONS_UK "Tone (Marea Britanie)"
|
||||
IDS_WEIGHT_TONS_US "Tone (SUA)"
|
||||
END
|
||||
|
@@ -2,17 +2,17 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Калькулятор ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -129,13 +129,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "8 байт", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "4 байт", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "2 байт", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "1 байт", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Градусы", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Радианы", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Грады", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "8 байт", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "4 байт", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "2 байт", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "1 байт", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Градусы", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Радианы", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Грады", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -146,7 +150,7 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Калькулятор ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
@@ -211,7 +215,7 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Калькулятор ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "&Правка"
|
||||
BEGIN
|
||||
MENUITEM "&Копировать\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Вст&авить\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "&Копировать\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Вст&авить\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "В&ид"
|
||||
BEGIN
|
||||
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "&Правка"
|
||||
BEGIN
|
||||
MENUITEM "&Копировать\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Вст&авить\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "&Копировать\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Вст&авить\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "В&ид"
|
||||
BEGIN
|
||||
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "&Правка"
|
||||
BEGIN
|
||||
MENUITEM "&Копировать\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Вст&авить\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "&Копировать\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Вст&авить\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "В&ид"
|
||||
BEGIN
|
||||
@@ -425,8 +429,8 @@ END
|
||||
/* Angles */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ANGLE_ARCMINUTES "Угловая минута"
|
||||
IDS_ANGLE_ARCSECONDS "Угловая секунда"
|
||||
IDS_ANGLE_ARCMINUTES "Minute of arc"
|
||||
IDS_ANGLE_ARCSECONDS "Second of arc"
|
||||
IDS_ANGLE_DEGREES "градус"
|
||||
IDS_ANGLE_GRADIANS "град"
|
||||
IDS_ANGLE_RADIANS "радиан"
|
||||
@@ -500,7 +504,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Литовский лит"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Люксембургский франк"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Мальтийская лира"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Португальское эскудо"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Португальское эскудо"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Словацкая крона"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Словенский толар"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Испанская песета"
|
||||
|
@@ -1,4 +1,7 @@
|
||||
/* TRANSLATOR: 2008-2011 Mário Kačmár /Mario Kacmar/ aka Kario <kario@szm.sk>
|
||||
/* TRANSLATOR : Mário Kačmár /Mario Kacmar/ aka Kario (kario@szm.sk)
|
||||
* DATE OF TR.: 30-01-2008
|
||||
* LAST CHANGE: 09-08-2011
|
||||
* ---------------------------------------
|
||||
* TODO: pridanie navigačných značiek "&" ?
|
||||
*/
|
||||
|
||||
@@ -6,17 +9,17 @@ LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulačka"
|
||||
CAPTION "Kalkulačka systému ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -133,13 +136,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Bajt", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Stupne", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radiány", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Grady", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Bajt", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Stupne", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radiány", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Grady", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -150,9 +157,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulačka"
|
||||
CAPTION "Kalkulačka systému ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -215,9 +222,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkulačka"
|
||||
CAPTION "Kalkulačka systému ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -309,8 +316,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "Úpravy"
|
||||
BEGIN
|
||||
MENUITEM "Kopírovať\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Prilepiť\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopírovať\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Prilepiť\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Zobraziť"
|
||||
BEGIN
|
||||
@@ -341,8 +348,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "Úpravy"
|
||||
BEGIN
|
||||
MENUITEM "Kopírovať\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Prilepiť\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopírovať\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Prilepiť\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Zobraziť"
|
||||
BEGIN
|
||||
@@ -374,8 +381,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "Úpravy"
|
||||
BEGIN
|
||||
MENUITEM "Kopírovať\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Prilepiť\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopírovať\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Prilepiť\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Zobraziť"
|
||||
BEGIN
|
||||
@@ -504,7 +511,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxemburský frank"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Maltská líra"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugalské escudo"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugalské escudo"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Slovenská koruna"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovinský toliar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Španielska peseta"
|
||||
|
@@ -1,21 +1,22 @@
|
||||
/* TRANSLATOR: 2013 Ardit Dani (Ard1t) <ardit.dani@gmail.com>
|
||||
/* TRANSLATOR : Ardit Dani (Ard1t) (ardit.dani@gmail.com)
|
||||
* DATE OF TR: 29-11-2013
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Makine Llogaritje"
|
||||
CAPTION "ReactOS Makine Llogaritje"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -132,13 +133,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Degrees", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radians", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradians", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Degrees", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radians", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradians", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -149,9 +154,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Makine Llogaritje"
|
||||
CAPTION "ReactOS Makine Llogaritje"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -214,9 +219,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Makine Llogaritje"
|
||||
CAPTION "ReactOS Makine Llogaritje"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -503,7 +508,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Lira Maltese"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo Portugez"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo Portugez"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Koruna Sllovake"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolari Slloven"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Peseta Spanjolle"
|
||||
|
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* PROJECT: ReactOS CALC
|
||||
* FILE: base/applications/calc/lang/sv-SE.rc
|
||||
* PURPOSE: Swedish resource file
|
||||
* Translation: Jaix Bly
|
||||
*/
|
||||
@@ -8,17 +9,17 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkylator"
|
||||
CAPTION "ReactOS Kalkylator"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Okt", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Okt", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -135,13 +136,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Grader", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radianer", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradienter", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Grader", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radianer", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradienter", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -152,9 +157,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkylator"
|
||||
CAPTION "ReactOS Kalkylator"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -217,9 +222,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kalkylator"
|
||||
CAPTION "ReactOS Kalkylator"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -311,8 +316,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "Redigera"
|
||||
BEGIN
|
||||
MENUITEM "Kopiera\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Klistra in\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopiera\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Klistra in\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Visa"
|
||||
BEGIN
|
||||
@@ -343,8 +348,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "Redigera"
|
||||
BEGIN
|
||||
MENUITEM "Kopiera\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Klistra in\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopiera\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Klistra in\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Vis"
|
||||
BEGIN
|
||||
@@ -376,8 +381,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "Redigera"
|
||||
BEGIN
|
||||
MENUITEM "Kopiera\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Klistra in\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Kopiera\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Klistra in\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Visa"
|
||||
BEGIN
|
||||
@@ -506,7 +511,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Litauenisk litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Maltesisk lire"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugisisk escudo"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugisisk escudo"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Slovakisk koruna"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovensk tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Spansk peseta"
|
||||
|
@@ -2,17 +2,17 @@ LANGUAGE LANG_THAI, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "เครื่องคิดเลข"
|
||||
CAPTION "เครื่องคิดเลข ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "สิบหก", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "สิบ", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "แปด", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "สอง", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "สิบหก", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "สิบ", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "แปด", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "สอง", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -129,13 +129,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "สี่เวิร์ด", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "สองเวิร์ด", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "เวิร์ด", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "ไบต", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "องศา", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "เกรเดียน", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradians", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "สี่เวิร์ด", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "สองเวิร์ด", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "เวิร์ด", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "ไบต์", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "องศา", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "เรเดียน", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "เกรเดียน", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -146,7 +150,7 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "สถานภาพทั่วไป"
|
||||
MENU IDR_MENU_STANDARD
|
||||
@@ -211,9 +215,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "เครื่องคิดเลข"
|
||||
CAPTION "เครื่องคิดเลข ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "แ&ก้ไข"
|
||||
BEGIN
|
||||
MENUITEM "คัดลอก\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "วาง\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "คัดลอก\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "วาง\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&มุมมอง"
|
||||
BEGIN
|
||||
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "แ&ก้ไข"
|
||||
BEGIN
|
||||
MENUITEM "คัดลอก\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "วาง\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "คัดลอก\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "วาง\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&มุมมอง"
|
||||
BEGIN
|
||||
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "แ&ก้ไข"
|
||||
BEGIN
|
||||
MENUITEM "คัดลอก\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "วาง\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "คัดลอก\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "วาง\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&มุมมอง"
|
||||
BEGIN
|
||||
@@ -500,7 +504,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Maltese lira"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portuguese escudo"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portoguese escudo"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Slovak koruna"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenian tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Spanish peseta"
|
||||
|
@@ -1,23 +1,23 @@
|
||||
/* TRANSLATOR:
|
||||
2013-2019 Erdem Ersoy (eersoy93) <erdemersoy@erdemersoy.net>
|
||||
2021 Süleyman Poyraz <zaryob.dev@gmail.com>
|
||||
2013-2014, 2016, 2019 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net),
|
||||
2021 Süleyman Poyraz (zaryob [dot] dev [at] gmail [dot] com)
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Hesap Makinesi"
|
||||
CAPTION "ReactOS Hesap Makinesi"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Onaltılık", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Onluk", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Sekizlik", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "İkilik", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Onaltılık", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Onluk", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Sekizlik", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "İkilik", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -134,13 +134,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Derece", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Radian", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Gradian", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Derece", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radian", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Gradian", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -151,9 +155,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Hesap Makinesi"
|
||||
CAPTION "ReactOS Hesap Makinesi"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -216,9 +220,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Hesap Makinesi"
|
||||
CAPTION "ReactOS Hesap Makinesi"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -505,7 +509,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Litvanya litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Lüksemburg Frangı"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Malta Lirası"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portekiz Esküdosu"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portekiz Esküdosu"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Slovak Korunası"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenya Toları"
|
||||
IDS_CURRENCY_SPANISH_PESETA "İspanyol Pesetası"
|
||||
|
@@ -1,7 +1,8 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Calc
|
||||
* PROJECT: ReactOS Calculator
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PURPOSE: Ukrainian Language File
|
||||
* FILE: base/applications/calc/lang/uk-UA.rc
|
||||
* PURPOSE: Ukraianian Language File for ReactOS Calc
|
||||
* TRANSLATORS: Artem Reznikov & Sakara Yevhen
|
||||
*/
|
||||
|
||||
@@ -9,17 +10,17 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Калькулятор"
|
||||
CAPTION "Калькулятор ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -136,13 +137,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "8 байт", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "4 байт", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "2 байт", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "1 байт", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Градуси", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "Радіани", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "Гради", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "8 байт", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "4 байт", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "2 байт", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "1 байт", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "Градуси", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Радіани", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Гради", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -153,9 +158,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Калькулятор"
|
||||
CAPTION "Калькулятор ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -218,9 +223,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Калькулятор"
|
||||
CAPTION "Калькулятор ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -312,8 +317,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "Правка"
|
||||
BEGIN
|
||||
MENUITEM "Копіювати\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Вставити\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Копіювати\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Вставити\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Вигляд"
|
||||
BEGIN
|
||||
@@ -344,8 +349,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "Правка"
|
||||
BEGIN
|
||||
MENUITEM "Копіювати\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Вставити\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Копіювати\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Вставити\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Вигляд"
|
||||
BEGIN
|
||||
@@ -377,8 +382,8 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "Правка"
|
||||
BEGIN
|
||||
MENUITEM "Копіювати\tCtrl-C", IDM_EDIT_COPY
|
||||
MENUITEM "Вставити\tCtrl-V", IDM_EDIT_PASTE
|
||||
MENUITEM "Копіювати\tCTRL-C", IDM_EDIT_COPY
|
||||
MENUITEM "Вставити\tCTRL-V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "Вигляд"
|
||||
BEGIN
|
||||
@@ -507,7 +512,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Люксембургський франк"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Мальтийськая ліра"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "Португальське ескудо"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Португальське ескудо"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "Словацька крона"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Словенський толар"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Іспанська песета"
|
||||
|
@@ -10,17 +10,17 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "计算器"
|
||||
CAPTION "ReactOS 计算器"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 9, "宋体", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -137,13 +137,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "四字", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "双字", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "字", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "字节", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "角度", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "弧度", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "梯度", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "四字", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "双字", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "字", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "字节", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "角度", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "弧度", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "梯度", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -154,9 +158,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "计算器"
|
||||
CAPTION "ReactOS 计算器"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 9, "宋体", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -219,9 +223,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "计算器"
|
||||
CAPTION "ReactOS 计算器"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 9, "宋体"
|
||||
BEGIN
|
||||
@@ -508,7 +512,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "卢森堡法郎"
|
||||
IDS_CURRENCY_MALTESE_LIRA "马耳他里拉"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "葡萄牙埃斯库多"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "葡萄牙埃斯库多"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "斯洛伐克克朗"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "斯洛文尼亚拖拉"
|
||||
IDS_CURRENCY_SPANISH_PESETA "西班牙比塞塔"
|
||||
|
@@ -10,17 +10,17 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_HONGKONG
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "計數機"
|
||||
CAPTION "ReactOS 計數機"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 9, "新細明體", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -137,13 +137,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "位元組", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "角度", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "弧度", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "梯度", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "位元組", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "角度", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "弧度", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "梯度", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -154,9 +158,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "計數機"
|
||||
CAPTION "ReactOS 計數機"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 9, "新細明體", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -219,9 +223,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "計數機"
|
||||
CAPTION "ReactOS 計數機"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 9, "新細明體"
|
||||
BEGIN
|
||||
@@ -508,7 +512,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "拉脫維亞拉分"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "盧森堡法郎"
|
||||
IDS_CURRENCY_MALTESE_LIRA "馬爾他里拉"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "葡萄牙埃斯庫多"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "葡萄牙埃斯庫多"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "斯洛伐克克朗"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "斯洛維尼亞拖拉"
|
||||
IDS_CURRENCY_SPANISH_PESETA "西班牙比塞塔"
|
||||
|
@@ -1,20 +1,20 @@
|
||||
// TRANSLATOR: 2021 Chan Chilung <eason066@gmail.com>
|
||||
// Traditional Chinese translation by 2021 Chan Chilung <eason066@gmail.com>
|
||||
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "計算機"
|
||||
CAPTION "ReactOS 計算機"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 9, "新細明體", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
|
||||
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
|
||||
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
|
||||
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
|
||||
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
|
||||
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
|
||||
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
|
||||
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
@@ -131,13 +131,17 @@ BEGIN
|
||||
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
|
||||
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "位元組", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "角度", IDC_RADIO_DEG, 150, 21, 45, 10
|
||||
AUTORADIOBUTTON "弧度", IDC_RADIO_RAD, 204, 21, 45, 10
|
||||
AUTORADIOBUTTON "梯度", IDC_RADIO_GRAD, 258, 21, 45, 10
|
||||
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 150, 21, 38, 10
|
||||
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 190, 21, 38, 10
|
||||
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 230, 21, 38, 10
|
||||
CONTROL "位元組", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
|
||||
NOT WS_VISIBLE, 270, 21, 38, 10
|
||||
CONTROL "角度", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "弧度", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "梯度", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -148,9 +152,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "計算機"
|
||||
CAPTION "ReactOS 計算機"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 9, "新細明體", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -213,9 +217,9 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "計算機"
|
||||
CAPTION "ReactOS 計算機"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 9, "新細明體"
|
||||
BEGIN
|
||||
@@ -502,7 +506,7 @@ BEGIN
|
||||
IDS_CURRENCY_LITHUANIAN_LITAS "拉脫維亞拉分"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "盧森堡法郎"
|
||||
IDS_CURRENCY_MALTESE_LIRA "馬爾他里拉"
|
||||
IDS_CURRENCY_PORTUGUESE_ESCUDO "葡萄牙埃斯庫多"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "葡萄牙埃斯庫多"
|
||||
IDS_CURRENCY_SLOVAK_KORUNA "斯洛伐克克朗"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "斯洛維尼亞拖拉"
|
||||
IDS_CURRENCY_SPANISH_PESETA "西班牙比塞塔"
|
||||
|
@@ -4,8 +4,6 @@
|
||||
#define IDC_STATIC -1
|
||||
#endif
|
||||
|
||||
#define CW_USEDEFAULT16 0x8000
|
||||
|
||||
#define IDS_CALC_NAME 1
|
||||
#define IDS_MATH_ERROR 2
|
||||
#define IDS_QUICKHELP 3
|
||||
@@ -194,7 +192,7 @@
|
||||
#define IDS_CURRENCY_LITHUANIAN_LITAS 2414
|
||||
#define IDS_CURRENCY_LUXEMBOURG_FRANC 2415
|
||||
#define IDS_CURRENCY_MALTESE_LIRA 2416
|
||||
#define IDS_CURRENCY_PORTUGUESE_ESCUDO 2417
|
||||
#define IDS_CURRENCY_PORTOGUESE_ESCUDO 2417
|
||||
#define IDS_CURRENCY_SLOVAK_KORUNA 2418
|
||||
#define IDS_CURRENCY_SLOVENIAN_TOLAR 2419
|
||||
#define IDS_CURRENCY_SPANISH_PESETA 2420
|
||||
|
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
|
||||
#include <windef.h>
|
||||
#include <winuser.rh>
|
||||
#include <winuser.h>
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
|
||||
/* Icons */
|
||||
IDI_CALC ICON "res/calc.ico"
|
||||
IDI_CALC ICON DISCARDABLE "res/calc.ico"
|
||||
|
||||
/* Manifest */
|
||||
#include <reactos/manifest_exe.rc>
|
||||
|
@@ -27,7 +27,7 @@ void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base)
|
||||
|
||||
switch (base) {
|
||||
case IDC_RADIO_HEX:
|
||||
StringCchPrintf(buffer, size, _T("%I64X"), rpn->i);
|
||||
_stprintf(buffer, _T("%I64X"), rpn->i);
|
||||
break;
|
||||
case IDC_RADIO_DEC:
|
||||
/*
|
||||
@@ -40,11 +40,11 @@ void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base)
|
||||
/* calculate the width of integer number */
|
||||
width = (rpn->f==0) ? 1 : (int)log10(fabs(rpn->f))+1;
|
||||
if (calc.sci_out == TRUE || width > MAX_LD_WIDTH || width < -MAX_LD_WIDTH)
|
||||
StringCchPrintf(buffer, size, _T("%#.*e"), MAX_LD_WIDTH-1, rpn->f);
|
||||
_stprintf(buffer, _T("%#.*e"), MAX_LD_WIDTH-1, rpn->f);
|
||||
else {
|
||||
TCHAR *ptr, *dst;
|
||||
|
||||
StringCchPrintfEx(buffer, size, &ptr, NULL, 0, _T("%#*.*f"), width, ((MAX_LD_WIDTH-width-1)>=0) ? MAX_LD_WIDTH-width-1 : 0, rpn->f);
|
||||
ptr = buffer + _stprintf(buffer, _T("%#*.*f"), width, ((MAX_LD_WIDTH-width-1)>=0) ? MAX_LD_WIDTH-width-1 : 0, rpn->f);
|
||||
/* format string ensures there is a '.': */
|
||||
dst = _tcschr(buffer, _T('.'));
|
||||
while (--ptr > dst)
|
||||
@@ -61,7 +61,7 @@ void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base)
|
||||
#undef MAX_LD_WIDTH
|
||||
break;
|
||||
case IDC_RADIO_OCT:
|
||||
StringCchPrintf(buffer, size, _T("%I64o"), rpn->i);
|
||||
_stprintf(buffer, _T("%I64o"), rpn->i);
|
||||
break;
|
||||
case IDC_RADIO_BIN:
|
||||
if (rpn->i == 0) {
|
||||
|
@@ -107,7 +107,7 @@ void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base)
|
||||
}
|
||||
mpz_clear(zz);
|
||||
mpf_clear(ff);
|
||||
StringCchPrintf(buffer, size, _T("%hs"), temp);
|
||||
_sntprintf(buffer, SIZEOF(calc.buffer), _T("%hs"), temp);
|
||||
}
|
||||
|
||||
void convert_text2number_2(calc_number_t *a)
|
||||
|
@@ -254,10 +254,10 @@ static void UpdateNumberIntl(void)
|
||||
{
|
||||
/* Get current user defaults */
|
||||
if (!GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, calc.sDecimal, SIZEOF(calc.sDecimal)))
|
||||
StringCbCopy(calc.sDecimal, sizeof(calc.sDecimal), _T("."));
|
||||
_tcscpy(calc.sDecimal, _T("."));
|
||||
|
||||
if (!GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, calc.sThousand, SIZEOF(calc.sThousand)))
|
||||
StringCbCopy(calc.sThousand, sizeof(calc.sThousand), _T(","));
|
||||
_tcscpy(calc.sThousand, _T(","));
|
||||
|
||||
/* get the string lengths */
|
||||
calc.sDecimal_len = _tcslen(calc.sDecimal);
|
||||
@@ -342,7 +342,7 @@ static void save_config(void)
|
||||
switch (osvi.dwPlatformId) {
|
||||
case VER_PLATFORM_WIN32s:
|
||||
case VER_PLATFORM_WIN32_WINDOWS:
|
||||
StringCbPrintf(buf, sizeof(buf), _T("%lu"), calc.layout);
|
||||
_stprintf(buf, _T("%lu"), calc.layout);
|
||||
WriteProfileString(_T("SciCalc"), _T("layout"), buf);
|
||||
WriteProfileString(_T("SciCalc"), _T("UseSep"), (calc.usesep==TRUE) ? _T("1") : _T("0"));
|
||||
break;
|
||||
@@ -496,16 +496,16 @@ static void update_lcd_display(HWND hwnd)
|
||||
TCHAR tmp[MAX_CALC_SIZE * 2 + 2];
|
||||
|
||||
if (calc.buffer[0] == _T('\0'))
|
||||
StringCbCopy(tmp, sizeof(tmp), _T("0"));
|
||||
_tcscpy(tmp, _T("0"));
|
||||
else
|
||||
StringCbCopy(tmp, sizeof(tmp), calc.buffer);
|
||||
_tcscpy(tmp, calc.buffer);
|
||||
|
||||
/* Add final '.' in decimal mode (if it's missing), but
|
||||
* only if it's a result: no append if it prints "ERROR".
|
||||
*/
|
||||
if (calc.base == IDC_RADIO_DEC && !calc.is_nan) {
|
||||
if (_tcschr(tmp, _T('.')) == NULL)
|
||||
StringCbCat(tmp, sizeof(tmp), _T("."));
|
||||
_tcscat(tmp, _T("."));
|
||||
}
|
||||
/* if separator mode is on, let's add an additional space */
|
||||
if (calc.usesep && !calc.sci_in && !calc.sci_out && !calc.is_nan) {
|
||||
@@ -573,14 +573,13 @@ static void update_parent_display(HWND hWnd)
|
||||
if (!n)
|
||||
str[0] = _T('\0');
|
||||
else
|
||||
StringCbPrintf(str, sizeof(str), _T("(=%d"), n);
|
||||
_stprintf(str,_T("(=%d"), n);
|
||||
SetDlgItemText(hWnd, IDC_TEXT_PARENT, str);
|
||||
}
|
||||
|
||||
static void build_operand(HWND hwnd, DWORD idc)
|
||||
{
|
||||
unsigned int i = 0, n;
|
||||
size_t cbPtr;
|
||||
|
||||
if (idc == IDC_BUTTON_DOT) {
|
||||
/* if dot is the first char, it's added automatically */
|
||||
@@ -618,14 +617,12 @@ static void build_operand(HWND hwnd, DWORD idc)
|
||||
if (idc != IDC_STATIC)
|
||||
calc.esp = (calc.esp * 10 + (key2code[i].key-'0')) % LOCAL_EXP_SIZE;
|
||||
if (calc.ptr == calc.buffer)
|
||||
StringCbPrintf(calc.ptr, sizeof(calc.buffer), _T("0.e%+d"), calc.esp);
|
||||
_stprintf(calc.ptr, _T("0.e%+d"), calc.esp);
|
||||
else {
|
||||
/* adds the dot at the end if the number has no decimal part */
|
||||
if (!_tcschr(calc.buffer, _T('.')))
|
||||
*calc.ptr++ = _T('.');
|
||||
|
||||
cbPtr = sizeof(calc.buffer) - ((BYTE*)calc.ptr - (BYTE*)calc.buffer);
|
||||
StringCbPrintf(calc.ptr, cbPtr, _T("e%+d"), calc.esp);
|
||||
_stprintf(calc.ptr, _T("e%+d"), calc.esp);
|
||||
}
|
||||
update_lcd_display(hwnd);
|
||||
return;
|
||||
@@ -640,11 +637,7 @@ static void build_operand(HWND hwnd, DWORD idc)
|
||||
return;
|
||||
break;
|
||||
}
|
||||
|
||||
cbPtr = sizeof(calc.buffer) - ((BYTE*)calc.ptr - (BYTE*)calc.buffer);
|
||||
StringCbPrintfEx(calc.ptr, cbPtr, &calc.ptr, NULL, STRSAFE_FILL_ON_FAILURE,
|
||||
_T("%C"), key2code[i].key);
|
||||
|
||||
calc.ptr += _stprintf(calc.ptr, _T("%C"), key2code[i].key);
|
||||
update_lcd_display(hwnd);
|
||||
}
|
||||
|
||||
@@ -857,11 +850,11 @@ static void update_memory_flag(HWND hWnd, BOOL mem_flag)
|
||||
SetDlgItemText(hWnd, IDC_TEXT_MEMORY, mem_flag ? _T("M") : _T(""));
|
||||
}
|
||||
|
||||
static void update_n_stats_items(HWND hWnd, TCHAR *buffer, size_t cbBuffer)
|
||||
static void update_n_stats_items(HWND hWnd, TCHAR *buffer)
|
||||
{
|
||||
unsigned int n = SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_GETCOUNT, 0, 0);
|
||||
|
||||
StringCbPrintf(buffer, cbBuffer, _T("n=%u"), n);
|
||||
_stprintf(buffer, _T("n=%u"), n);
|
||||
SetDlgItemText(hWnd, IDC_TEXT_NITEMS, buffer);
|
||||
}
|
||||
|
||||
@@ -912,7 +905,7 @@ static char *ReadConversion(const char *formula)
|
||||
str[len+1] = ')';
|
||||
str[len+2] = '\0';
|
||||
|
||||
StringCbCopy(calc.source, sizeof(calc.source), (*calc.buffer == _T('\0')) ? _T("0") : calc.buffer);
|
||||
_tcscpy(calc.source, (*calc.buffer == _T('\0')) ? _T("0") : calc.buffer);
|
||||
|
||||
/* clear display content before proceeding */
|
||||
calc.ptr = calc.buffer;
|
||||
@@ -949,13 +942,13 @@ static INT_PTR CALLBACK DlgStatProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
|
||||
if (n == LB_ERR)
|
||||
return TRUE;
|
||||
SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_DELETESTRING, (WPARAM)n, 0);
|
||||
update_n_stats_items(hWnd, buffer, sizeof(buffer));
|
||||
update_n_stats_items(hWnd, buffer);
|
||||
delete_stat_item(n);
|
||||
return TRUE;
|
||||
case IDC_BUTTON_CAD:
|
||||
SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_RESETCONTENT, 0, 0);
|
||||
clean_stat_list();
|
||||
update_n_stats_items(hWnd, buffer, sizeof(buffer));
|
||||
update_n_stats_items(hWnd, buffer);
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
@@ -971,7 +964,7 @@ static INT_PTR CALLBACK DlgStatProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
|
||||
buffer, SIZEOF(buffer),
|
||||
((statistic_t *)lp)->base);
|
||||
SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_ADDSTRING, 0, (LPARAM)buffer);
|
||||
update_n_stats_items(hWnd, buffer, sizeof(buffer));
|
||||
update_n_stats_items(hWnd, buffer);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
@@ -993,13 +986,11 @@ static void CopyMemToClipboard(void *ptr)
|
||||
if(OpenClipboard(NULL)) {
|
||||
HGLOBAL clipbuffer;
|
||||
TCHAR *buffer;
|
||||
size_t cbBuffer;
|
||||
|
||||
EmptyClipboard();
|
||||
cbBuffer = (_tcslen(ptr) + 1) * sizeof(TCHAR);
|
||||
clipbuffer = GlobalAlloc(GMEM_DDESHARE, cbBuffer);
|
||||
clipbuffer = GlobalAlloc(GMEM_DDESHARE, (_tcslen(ptr)+1)*sizeof(TCHAR));
|
||||
buffer = (TCHAR *)GlobalLock(clipbuffer);
|
||||
StringCbCopy(buffer, cbBuffer, ptr);
|
||||
_tcscpy(buffer, ptr);
|
||||
GlobalUnlock(clipbuffer);
|
||||
#ifdef UNICODE
|
||||
SetClipboardData(CF_UNICODETEXT,clipbuffer);
|
||||
@@ -1015,16 +1006,10 @@ static void handle_copy_command(HWND hWnd)
|
||||
TCHAR display[MAX_CALC_SIZE];
|
||||
UINT n;
|
||||
|
||||
// Read current text from output display
|
||||
n = GetDlgItemText(hWnd, IDC_TEXT_OUTPUT, display, SIZEOF(display));
|
||||
|
||||
// Check if result is a true number
|
||||
if (!calc.is_nan)
|
||||
{
|
||||
// Remove trailing decimal point if no decimal digits exist
|
||||
if (calc.base == IDC_RADIO_DEC && _tcschr(calc.buffer, _T('.')) == NULL)
|
||||
display[n - calc.sDecimal_len] = _T('\0');
|
||||
}
|
||||
if (calc.base == IDC_RADIO_DEC && _tcschr(calc.buffer, _T('.')) == NULL)
|
||||
display[n - calc.sDecimal_len] = _T('\0');
|
||||
|
||||
CopyMemToClipboard(display);
|
||||
}
|
||||
@@ -1071,8 +1056,9 @@ static char *handle_sequence_input(HWND hwnd, sequence_t *seq)
|
||||
}
|
||||
} else
|
||||
if (ch == '$') {
|
||||
StringCbCopyEx(calc.buffer, sizeof(calc.buffer), calc.source, &calc.ptr, NULL,
|
||||
STRSAFE_FILL_ON_FAILURE);
|
||||
calc.ptr =
|
||||
_tcscpy(calc.buffer, calc.source) +
|
||||
_tcslen(calc.source);
|
||||
} else {
|
||||
for (x=0; x<SIZEOF(key2code); x++) {
|
||||
if (!(key2code[x].mask & BITMASK_IS_ASCII) ||
|
||||
@@ -1641,7 +1627,7 @@ static INT_PTR CALLBACK DlgMainProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
|
||||
case IDC_BUTTON_D:
|
||||
case IDC_BUTTON_E:
|
||||
case IDC_BUTTON_F:
|
||||
if (calc.is_nan) break;
|
||||
calc.is_nan = FALSE;
|
||||
build_operand(hWnd, LOWORD(wp));
|
||||
return TRUE;
|
||||
case IDC_BUTTON_PERCENT:
|
||||
@@ -1707,7 +1693,6 @@ static INT_PTR CALLBACK DlgMainProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
|
||||
}
|
||||
return TRUE;
|
||||
case IDC_BUTTON_BACK:
|
||||
if (calc.is_nan) break;
|
||||
if (calc.sci_in) {
|
||||
if (calc.esp == 0) {
|
||||
TCHAR *ptr;
|
||||
@@ -1960,9 +1945,9 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
|
||||
hInstance,
|
||||
MAKEINTRESOURCE(IDI_CALC),
|
||||
IMAGE_ICON,
|
||||
0,
|
||||
0,
|
||||
LR_DEFAULTSIZE | LR_SHARED);
|
||||
GetSystemMetrics(SM_CXICON),
|
||||
GetSystemMetrics(SM_CYICON),
|
||||
0);
|
||||
|
||||
calc.hSmIcon = LoadImage(
|
||||
hInstance,
|
||||
@@ -1970,7 +1955,7 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
|
||||
IMAGE_ICON,
|
||||
GetSystemMetrics(SM_CXSMICON),
|
||||
GetSystemMetrics(SM_CYSMICON),
|
||||
LR_SHARED);
|
||||
0);
|
||||
|
||||
do {
|
||||
/* ignore hwnd: dialogs are already visible! */
|
||||
@@ -2000,6 +1985,12 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
|
||||
save_config();
|
||||
} while (calc.action != IDC_STATIC);
|
||||
|
||||
if (calc.hBgIcon != NULL)
|
||||
DestroyIcon(calc.hBgIcon);
|
||||
|
||||
if (calc.hSmIcon != NULL)
|
||||
DestroyIcon(calc.hSmIcon);
|
||||
|
||||
stop_rpn_engine();
|
||||
|
||||
Theme_Stop();
|
||||
|
@@ -2,7 +2,7 @@
|
||||
* FILE: base/applications/charmap/lang/ro-RO.rc
|
||||
* ReactOS Project (https://reactos.org)
|
||||
* TRANSLATORS: Copyright 2011-2018 Ștefan Fulea <stefan.fulea@mail.com>
|
||||
* Copyright 2023-2024 Andrei Miloiu <miloiuandrei@gmail.com>
|
||||
* Copyright 2023 Andrei Miloiu <miloiuandrei@gmail.com>
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
@@ -11,18 +11,18 @@ IDD_CHARMAP DIALOGEX 6, 6, 292, 224
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_VISIBLE
|
||||
BEGIN
|
||||
LTEXT "&Font:", IDC_STATIC, 6, 7, 24, 9
|
||||
LTEXT "F&ont:", IDC_STATIC, 6, 7, 24, 9
|
||||
COMBOBOX IDC_FONTCOMBO, 36, 5, 210, 210, WS_CHILD | WS_VISIBLE | WS_TABSTOP |
|
||||
WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT | CBS_HASSTRINGS
|
||||
PUSHBUTTON "Ajut&or", IDC_CMHELP, 249, 5, 35, 13
|
||||
PUSHBUTTON "&Manual…", IDC_CMHELP, 249, 5, 35, 13
|
||||
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP |
|
||||
WS_VSCROLL, 20, 22, 266, 156
|
||||
LTEXT "C&aractere de copiat:", IDC_STATIC, 6, 188, 66, 9
|
||||
CONTROL "", IDC_TEXTBOX, RICHEDIT_CLASS, ES_AUTOHSCROLL | WS_BORDER |
|
||||
WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
|
||||
DEFPUSHBUTTON "Se&lectare", IDC_SELECT, 194, 186, 44, 13
|
||||
PUSHBUTTON "&Copiere", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
|
||||
CONTROL "&Vizualizare complexă", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
|
||||
DEFPUSHBUTTON "S&electează", IDC_SELECT, 194, 186, 44, 13
|
||||
PUSHBUTTON "&Copiază", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
|
||||
CONTROL "Mod a&vansat", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP, 8, 208, 95, 10
|
||||
END
|
||||
|
||||
@@ -30,14 +30,14 @@ IDD_ADVANCED DIALOGEX 0, 0, 292, 64
|
||||
STYLE DS_SHELLFONT | WS_CHILD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Se&t de caractere:", IDC_STATIC, 8, 8, 60, 8
|
||||
LTEXT "Co&dificare:", IDC_STATIC, 8, 8, 48, 8
|
||||
COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "&Grupare după:", IDC_STATIC, 8, 28, 50, 8
|
||||
COMBOBOX IDC_COMBO_GROUPBY, 72, 24, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "Căutar&e", IDC_BUTTON_SEARCH, 200, 44, 50, 14
|
||||
PUSHBUTTON "&Caută", IDC_BUTTON_SEARCH, 200, 44, 50, 14
|
||||
EDITTEXT IDC_EDIT_SEARCH, 72, 44, 116, 14, ES_AUTOHSCROLL
|
||||
LTEXT "Că&utare:", IDC_STATIC, 8, 48, 42, 8
|
||||
LTEXT "U&nicode:", IDC_STATIC, 200, 8, 30, 8
|
||||
LTEXT "Căuta&re:", IDC_STATIC, 8, 48, 42, 8
|
||||
LTEXT "&Unicode:", IDC_STATIC, 200, 8, 30, 8
|
||||
EDITTEXT IDC_EDIT_UNICODE, 236, 4, 28, 12, ES_AUTOHSCROLL
|
||||
END
|
||||
|
||||
@@ -46,7 +46,7 @@ CAPTION "Despre"
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
|
||||
BEGIN
|
||||
LTEXT "Plan caractere v0.1\nDrept de autor (C) 2007 Ged Murphy (gedmurphy@reactos.org)\nTraducere de Ștefan Fulea (stefan.fulea@mail.com)", IDC_STATIC, 48, 7, 210, 36
|
||||
LTEXT "Hartă de caractere v0.1\nDrept de autor (C) 2007 Ged Murphy (gedmurphy@reactos.org)\nTraducere de Ștefan Fulea (stefan.fulea@mail.com)", IDC_STATIC, 48, 7, 210, 36
|
||||
PUSHBUTTON "Î&nchide", IDOK, 105, 162, 44, 15
|
||||
ICON IDI_ICON, IDC_STATIC, 10, 10, 7, 30
|
||||
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 254, 107, WS_VISIBLE | WS_VSCROLL |
|
||||
@@ -57,7 +57,7 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_LICENSE "Această aplicație este publică; fiind permisă modificarea și/sau (re)distribuția sa în termenii Licenței Publice Generale GNU publicată de Free Software Foundation; sau versiunea 2 a Licenței, sau (la alegere) a oricărei versiuni ulterioare.\r\n\r\nAceastă aplicație este distribuită doar în speranța de a fi utilă, FĂRĂ însă NICI O GARANȚIE; nici măcar cu garanția implicită a VANDABILITĂȚII sau a UTILITĂȚII ÎNTR-UN SCOP ANUME. Pentru mai multe detalii consultați Licența Publică Generală GNU.\r\n\r\nPuteți vedea această licență aici:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nDe asemenea puteți consulta traduceri neoficiale ale acestei licențe aici:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_ABOUT "&Despre…"
|
||||
IDS_TITLE "Plan caractere"
|
||||
IDS_TITLE "Hartă de caractere"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "Toate"
|
||||
END
|
||||
|
@@ -54,5 +54,5 @@ BEGIN
|
||||
IDS_ABOUT "&О программе..."
|
||||
IDS_TITLE "Таблица символов"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "Все"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
@@ -801,13 +801,11 @@ MapWndProc(HWND hwnd,
|
||||
infoPtr->CurrentFont.lfFaceName,
|
||||
SIZEOF(lfFaceName));
|
||||
SetFont(infoPtr, lfFaceName);
|
||||
SetCaretXY(infoPtr, infoPtr->CaretX, infoPtr->CaretY, FALSE, TRUE);
|
||||
break;
|
||||
|
||||
case FM_SETFONT:
|
||||
infoPtr->CaretX = infoPtr->CaretY = infoPtr->iYStart = 0;
|
||||
SetFont(infoPtr, (LPWSTR)lParam);
|
||||
SetCaretXY(infoPtr, infoPtr->CaretX, infoPtr->CaretY, FALSE, TRUE);
|
||||
break;
|
||||
|
||||
case FM_GETCHAR:
|
||||
|
@@ -93,7 +93,7 @@ extern void LoadSettings(void)
|
||||
lstatus = RegQueryValueEx(hKey, _T("Advanced"), NULL, &type, (LPBYTE)&dwAdvancedChecked, &size);
|
||||
if (lstatus == ERROR_SUCCESS && type == REG_DWORD && dwAdvancedChecked != FALSE)
|
||||
{
|
||||
SendDlgItemMessage(hCharmapDlg, IDC_CHECK_ADVANCED, BM_CLICK, 0, 0);
|
||||
SendDlgItemMessage(hCharmapDlg, IDC_CHECK_ADVANCED, BM_CLICK, MF_CHECKED, 0);
|
||||
}
|
||||
|
||||
RegCloseKey(hKey);
|
||||
|
@@ -91,4 +91,4 @@ CCell::SetCellCoordinates(
|
||||
)
|
||||
{
|
||||
m_CellCoordinates = Coordinates;
|
||||
}
|
||||
}
|
@@ -519,4 +519,4 @@ CGridView::SetCellFocus(
|
||||
// Set the new active cell and give it focus
|
||||
m_ActiveCell = NewActiveCell;
|
||||
m_ActiveCell->SetFocus(true);
|
||||
}
|
||||
}
|
@@ -81,4 +81,4 @@ private:
|
||||
|
||||
bool ChangeMapFont(
|
||||
);
|
||||
};
|
||||
};
|
@@ -51,4 +51,4 @@
|
||||
|
||||
//WINE_DEFAULT_DEBUG_CHANNEL(charmap);
|
||||
|
||||
#endif
|
||||
#endif
|
@@ -1,9 +0,0 @@
|
||||
|
||||
project(cleanmgr)
|
||||
|
||||
# The main application
|
||||
add_subdirectory(cleanmgr)
|
||||
|
||||
# Cleanup handlers
|
||||
#add_subdirectory(dataclen) # Data Driven Cleaner
|
||||
|
@@ -1,212 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Disk Cleanup
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: CCleanupHandler implementation
|
||||
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
|
||||
*/
|
||||
|
||||
#include "cleanmgr.h"
|
||||
|
||||
|
||||
CCleanupHandler::CCleanupHandler(CRegKey &subKey, const CStringW &keyName, const GUID &guid)
|
||||
: hSubKey(subKey)
|
||||
, KeyName(keyName)
|
||||
, Guid(guid)
|
||||
, dwFlags(0)
|
||||
, Priority(0)
|
||||
, StateFlags(0)
|
||||
, SpaceUsed(0)
|
||||
, ShowHandler(true)
|
||||
, hIcon(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
CCleanupHandler::~CCleanupHandler()
|
||||
{
|
||||
Deactivate();
|
||||
::DestroyIcon(hIcon);
|
||||
}
|
||||
|
||||
void
|
||||
CCleanupHandler::Deactivate()
|
||||
{
|
||||
if (Handler)
|
||||
{
|
||||
DWORD dwFlags = 0;
|
||||
Handler->Deactivate(&dwFlags);
|
||||
if (dwFlags & EVCF_REMOVEFROMLIST)
|
||||
UNIMPLEMENTED_DBGBREAK();
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
CCleanupHandler::Initialize(LPCWSTR pcwszVolume)
|
||||
{
|
||||
if (FAILED_UNEXPECTEDLY(
|
||||
::CoCreateInstance(Guid, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IEmptyVolumeCache, &Handler))))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
DWORD dwSize = sizeof(Priority);
|
||||
if (hSubKey.QueryBinaryValue(L"Priority", &Priority, &dwSize) != ERROR_SUCCESS)
|
||||
{
|
||||
if (hSubKey.QueryDWORDValue(L"Priority", Priority) != ERROR_SUCCESS)
|
||||
Priority = 200;
|
||||
}
|
||||
|
||||
dwSize = sizeof(StateFlags);
|
||||
if (hSubKey.QueryDWORDValue(L"StateFlags", StateFlags) != ERROR_SUCCESS)
|
||||
StateFlags = 0;
|
||||
|
||||
WCHAR PathBuffer[MAX_PATH] = {};
|
||||
ULONG nChars = _countof(PathBuffer);
|
||||
if (hSubKey.QueryStringValue(L"IconPath", PathBuffer, &nChars) != ERROR_SUCCESS)
|
||||
{
|
||||
CStringW Tmp;
|
||||
WCHAR GuidStr[50] = {};
|
||||
if (StringFromGUID2(Guid, GuidStr, _countof(GuidStr)))
|
||||
{
|
||||
Tmp.Format(L"CLSID\\%s\\DefaultIcon", GuidStr);
|
||||
CRegKey clsid;
|
||||
nChars = _countof(PathBuffer);
|
||||
if (clsid.Open(HKEY_CLASSES_ROOT, Tmp, KEY_READ) != ERROR_SUCCESS ||
|
||||
clsid.QueryStringValue(NULL, PathBuffer, &nChars) != ERROR_SUCCESS)
|
||||
{
|
||||
PathBuffer[0] = UNICODE_NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!PathBuffer[0])
|
||||
StringCchCopyW(PathBuffer, _countof(PathBuffer), L"%systemroot%\\system32\\shell32.dll");
|
||||
|
||||
int Index = 0;
|
||||
WCHAR *ptr = wcschr(PathBuffer, L',');
|
||||
if (ptr)
|
||||
{
|
||||
*ptr++ = UNICODE_NULL;
|
||||
Index = wcstol(ptr, NULL, 10);
|
||||
}
|
||||
HICON Large, Small;
|
||||
UINT Result = ExtractIconExW(PathBuffer, Index, &Large, &Small, 1);
|
||||
if (Result < 1)
|
||||
Result = ExtractIconExW(L"%systemroot%\\system32\\shell32.dll", 0, &Large, &Small, 1);
|
||||
if (Result >= 1)
|
||||
{
|
||||
hIcon = Small;
|
||||
if (!hIcon)
|
||||
{
|
||||
hIcon = Large;
|
||||
}
|
||||
else
|
||||
{
|
||||
::DestroyIcon(Large);
|
||||
}
|
||||
}
|
||||
|
||||
// These options should come from the command line
|
||||
// dwFlags |= EVCF_SETTINGSMODE;
|
||||
// dwFlags |= EVCF_OUTOFDISKSPACE;
|
||||
|
||||
CComPtr<IEmptyVolumeCache2> spHandler2;
|
||||
HRESULT hr = Handler->QueryInterface(IID_PPV_ARG(IEmptyVolumeCache2, &spHandler2));
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
hr = spHandler2->InitializeEx(
|
||||
hSubKey, pcwszVolume, KeyName, &wszDisplayName, &wszDescription, &wszBtnText, &dwFlags);
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return false;
|
||||
|
||||
// No files to clean will return S_FALSE;
|
||||
if (hr != S_OK)
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Observed behavior:
|
||||
// When Initialize is called, wszDescription is actually pointing to data
|
||||
// wszDescription.AllocateBytes(0x400u);
|
||||
hr = Handler->Initialize(hSubKey, pcwszVolume, &wszDisplayName, &wszDescription, &dwFlags);
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return false;
|
||||
|
||||
// No files to clean will return S_FALSE;
|
||||
if (hr != S_OK)
|
||||
return false;
|
||||
|
||||
CComPtr<IPropertyBag> spBag;
|
||||
WCHAR GuidStr[50] = {};
|
||||
nChars = _countof(GuidStr);
|
||||
if (hSubKey.QueryStringValue(L"PropertyBag", GuidStr, &nChars) == ERROR_SUCCESS)
|
||||
{
|
||||
GUID guid = {};
|
||||
if (!FAILED_UNEXPECTEDLY(CLSIDFromString(GuidStr, &guid)))
|
||||
{
|
||||
FAILED_UNEXPECTEDLY(
|
||||
CoCreateInstance(guid, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IPropertyBag, &spBag)));
|
||||
}
|
||||
}
|
||||
ReadProperty(L"Display", spBag, wszDisplayName);
|
||||
ReadProperty(L"Description", spBag, wszDescription);
|
||||
|
||||
if (dwFlags & EVCF_HASSETTINGS)
|
||||
{
|
||||
ReadProperty(L"AdvancedButtonText", spBag, wszBtnText);
|
||||
}
|
||||
}
|
||||
|
||||
if ((dwFlags & EVCF_ENABLEBYDEFAULT) && !(StateFlags & HANDLER_STATE_SELECTED))
|
||||
{
|
||||
StateFlags |= HANDLER_STATE_SELECTED;
|
||||
}
|
||||
|
||||
// For convenience
|
||||
if (!wszDisplayName)
|
||||
SHStrDupW(KeyName, &wszDisplayName);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
CCleanupHandler::ReadProperty(LPCWSTR Name, IPropertyBag *pBag, CComHeapPtr<WCHAR> &storage)
|
||||
{
|
||||
if (storage)
|
||||
return;
|
||||
|
||||
if (pBag)
|
||||
{
|
||||
CComVariant tmp;
|
||||
tmp.vt = VT_BSTR;
|
||||
HRESULT hr = pBag->Read(Name, &tmp, NULL);
|
||||
if (!FAILED_UNEXPECTEDLY(hr) && tmp.vt == VT_BSTR)
|
||||
{
|
||||
SHStrDupW(tmp.bstrVal, &storage);
|
||||
}
|
||||
}
|
||||
|
||||
if (!storage)
|
||||
{
|
||||
WCHAR TmpStr[0x200] = {};
|
||||
DWORD dwSize = _countof(TmpStr);
|
||||
|
||||
if (hSubKey.QueryStringValue(Name, TmpStr, &dwSize) == ERROR_SUCCESS)
|
||||
{
|
||||
WCHAR ResolvedStr[0x200] = {};
|
||||
SHLoadIndirectString(TmpStr, ResolvedStr, _countof(ResolvedStr), NULL);
|
||||
SHStrDupW(ResolvedStr, &storage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BOOL
|
||||
CCleanupHandler::HasSettings() const
|
||||
{
|
||||
return !!(dwFlags & EVCF_HASSETTINGS);
|
||||
}
|
||||
|
||||
BOOL
|
||||
CCleanupHandler::DontShowIfZero() const
|
||||
{
|
||||
return !!(dwFlags & EVCF_DONTSHOWIFZERO);
|
||||
}
|
||||
|
@@ -1,48 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Disk Cleanup
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: CCleanupHandler definition
|
||||
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
|
||||
*/
|
||||
|
||||
#define HANDLER_STATE_SELECTED 1
|
||||
|
||||
|
||||
struct CCleanupHandler
|
||||
{
|
||||
CCleanupHandler(CRegKey &subKey, const CStringW &keyName, const GUID &guid);
|
||||
~CCleanupHandler();
|
||||
|
||||
void Deactivate();
|
||||
|
||||
bool
|
||||
Initialize(LPCWSTR pcwszVolume);
|
||||
|
||||
void
|
||||
ReadProperty(LPCWSTR Name, IPropertyBag *pBag, CComHeapPtr<WCHAR> &storage);
|
||||
|
||||
BOOL
|
||||
HasSettings() const;
|
||||
|
||||
BOOL
|
||||
DontShowIfZero() const;
|
||||
|
||||
CRegKey hSubKey;
|
||||
CStringW KeyName;
|
||||
GUID Guid;
|
||||
|
||||
CComHeapPtr<WCHAR> wszDisplayName;
|
||||
CComHeapPtr<WCHAR> wszDescription;
|
||||
CComHeapPtr<WCHAR> wszBtnText;
|
||||
|
||||
CStringW IconPath;
|
||||
DWORD dwFlags;
|
||||
DWORD Priority;
|
||||
DWORD StateFlags;
|
||||
|
||||
CComPtr<IEmptyVolumeCache> Handler;
|
||||
DWORDLONG SpaceUsed;
|
||||
bool ShowHandler;
|
||||
HICON hIcon;
|
||||
};
|
||||
|
@@ -1,163 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Disk Cleanup
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: CCleanupHandlerList implementation
|
||||
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
|
||||
*/
|
||||
|
||||
#include "cleanmgr.h"
|
||||
|
||||
void CCleanupHandlerList::LoadHandlers(WCHAR Drive)
|
||||
{
|
||||
m_DriveStr.Format(L"%c:", Drive);
|
||||
|
||||
CRegKey VolumeCaches;
|
||||
if (VolumeCaches.Open(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VolumeCaches", KEY_READ) != ERROR_SUCCESS)
|
||||
return;
|
||||
|
||||
LONG ItemIndex = 0;
|
||||
WCHAR szKeyName[MAX_PATH];
|
||||
|
||||
WCHAR wszVolume[] = { Drive, L':', L'\\', UNICODE_NULL };
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
DWORD dwSize = _countof(szKeyName);
|
||||
if (VolumeCaches.EnumKey(ItemIndex++, szKeyName, &dwSize) != ERROR_SUCCESS)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
CRegKey hSubKey;
|
||||
if (hSubKey.Open(VolumeCaches, szKeyName, KEY_READ) == ERROR_SUCCESS)
|
||||
{
|
||||
WCHAR GuidStr[50] = {};
|
||||
dwSize = _countof(GuidStr);
|
||||
if (hSubKey.QueryStringValue(NULL, GuidStr, &dwSize) != ERROR_SUCCESS)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
GUID guid = {};
|
||||
if (FAILED_UNEXPECTEDLY(CLSIDFromString(GuidStr, &guid)))
|
||||
continue;
|
||||
|
||||
CCleanupHandler* handler = new CCleanupHandler(hSubKey, szKeyName, guid);
|
||||
|
||||
if (!handler->Initialize(wszVolume))
|
||||
{
|
||||
delete handler;
|
||||
continue;
|
||||
}
|
||||
|
||||
m_Handlers.AddTail(handler);
|
||||
}
|
||||
}
|
||||
|
||||
// Sort handlers
|
||||
BOOL fChanged = m_Handlers.GetCount() > 0;
|
||||
while (fChanged)
|
||||
{
|
||||
fChanged = FALSE;
|
||||
|
||||
for (size_t n = 0; n < m_Handlers.GetCount() - 1; n++)
|
||||
{
|
||||
POSITION leftPos = m_Handlers.FindIndex(n);
|
||||
POSITION rightPos = m_Handlers.FindIndex(n+1);
|
||||
CCleanupHandler* left = m_Handlers.GetAt(leftPos);
|
||||
CCleanupHandler* right = m_Handlers.GetAt(rightPos);
|
||||
|
||||
if (right->Priority < left->Priority)
|
||||
{
|
||||
m_Handlers.SwapElements(leftPos, rightPos);
|
||||
fChanged = TRUE;
|
||||
}
|
||||
else if (right->Priority == left->Priority)
|
||||
{
|
||||
CStringW leftStr(left->wszDisplayName);
|
||||
if (leftStr.Compare(right->wszDisplayName) > 0)
|
||||
{
|
||||
m_Handlers.SwapElements(leftPos, rightPos);
|
||||
fChanged = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DWORDLONG
|
||||
CCleanupHandlerList::ScanDrive(IEmptyVolumeCacheCallBack *picb)
|
||||
{
|
||||
CProgressDlg progress;
|
||||
CString Caption;
|
||||
Caption.Format(IDS_CALCULATING, m_DriveStr.GetString());
|
||||
CStringW Title(MAKEINTRESOURCE(IDS_DISK_CLEANUP));
|
||||
progress.Start((DWORD)m_Handlers.GetCount(), Title, Caption);
|
||||
int ItemIndex = 0;
|
||||
DWORDLONG TotalSpaceUsed = 0;
|
||||
ForEach(
|
||||
[&](CCleanupHandler *current)
|
||||
{
|
||||
Caption.Format(IDS_SCANNING, current->wszDisplayName.m_pData);
|
||||
progress.Step(++ItemIndex, Caption);
|
||||
|
||||
HRESULT hr = current->Handler->GetSpaceUsed(¤t->SpaceUsed, picb);
|
||||
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
{
|
||||
current->ShowHandler = false;
|
||||
current->StateFlags &= ~HANDLER_STATE_SELECTED;
|
||||
return;
|
||||
}
|
||||
|
||||
if (current->SpaceUsed == 0 && current->DontShowIfZero())
|
||||
{
|
||||
current->ShowHandler = false;
|
||||
current->StateFlags &= ~HANDLER_STATE_SELECTED;
|
||||
}
|
||||
TotalSpaceUsed += current->SpaceUsed;
|
||||
});
|
||||
progress.Stop();
|
||||
|
||||
return TotalSpaceUsed;
|
||||
}
|
||||
|
||||
void
|
||||
CCleanupHandlerList::ExecuteCleanup(IEmptyVolumeCacheCallBack *picb)
|
||||
{
|
||||
CProgressDlg progress;
|
||||
CString Caption;
|
||||
Caption.Format(IDS_CLEANING_CAPTION, m_DriveStr.GetString());
|
||||
|
||||
DWORD TotalSelected = 0;
|
||||
ForEach(
|
||||
[&](CCleanupHandler *current)
|
||||
{
|
||||
if (current->StateFlags & HANDLER_STATE_SELECTED)
|
||||
TotalSelected++;
|
||||
});
|
||||
|
||||
CStringW Title(MAKEINTRESOURCE(IDS_DISK_CLEANUP));
|
||||
progress.Start(TotalSelected, Title, Caption);
|
||||
int ItemIndex = 0;
|
||||
ForEach(
|
||||
[&](CCleanupHandler *current)
|
||||
{
|
||||
if (!(current->StateFlags & HANDLER_STATE_SELECTED))
|
||||
return;
|
||||
|
||||
Caption.Format(IDS_CLEANING, current->wszDisplayName.m_pData);
|
||||
progress.Step(++ItemIndex, Caption);
|
||||
|
||||
// If there is nothing to clean, we might get STG_E_NOMOREFILES
|
||||
if (current->SpaceUsed > 0)
|
||||
{
|
||||
HRESULT hr = current->Handler->Purge(-1, picb);
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return;
|
||||
}
|
||||
});
|
||||
progress.Stop();
|
||||
}
|
@@ -1,31 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Disk Cleanup
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: CCleanupHandlerList definition
|
||||
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
|
||||
*/
|
||||
|
||||
|
||||
class CCleanupHandlerList
|
||||
{
|
||||
private:
|
||||
CAtlList<CCleanupHandler *> m_Handlers;
|
||||
CStringW m_DriveStr;
|
||||
|
||||
public:
|
||||
|
||||
void LoadHandlers(WCHAR Drive);
|
||||
DWORDLONG ScanDrive(IEmptyVolumeCacheCallBack* picb);
|
||||
void ExecuteCleanup(IEmptyVolumeCacheCallBack *picb);
|
||||
|
||||
template<typename Fn>
|
||||
void ForEach(Fn callback)
|
||||
{
|
||||
for (POSITION it = m_Handlers.GetHeadPosition(); it; m_Handlers.GetNext(it))
|
||||
{
|
||||
CCleanupHandler *current = m_Handlers.GetAt(it);
|
||||
|
||||
callback(current);
|
||||
}
|
||||
}
|
||||
};
|
@@ -1,54 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Disk Cleanup
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: CEmptyVolumeCacheCallBack definition / implementation
|
||||
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
|
||||
*/
|
||||
|
||||
|
||||
// We don't really use this, but some windows handlers crash without it
|
||||
struct CEmptyVolumeCacheCallBack
|
||||
: public IEmptyVolumeCacheCallBack
|
||||
{
|
||||
|
||||
STDMETHOD_(ULONG, AddRef)() throw()
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
STDMETHOD_(ULONG, Release)() throw()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
STDMETHOD(QueryInterface)(
|
||||
REFIID riid,
|
||||
_COM_Outptr_ void** ppvObject) throw()
|
||||
{
|
||||
if (riid == IID_IUnknown || riid == IID_IEmptyVolumeCacheCallBack)
|
||||
{
|
||||
*ppvObject = (IUnknown*)this;
|
||||
return S_OK;
|
||||
}
|
||||
*ppvObject = NULL;
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
|
||||
STDMETHODIMP ScanProgress(
|
||||
_In_ DWORDLONG dwlSpaceUsed,
|
||||
_In_ DWORD dwFlags,
|
||||
_In_ LPCWSTR pcwszStatus) override
|
||||
{
|
||||
DPRINT("dwlSpaceUsed: %lld, dwFlags: %x\n", dwlSpaceUsed, dwFlags);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP PurgeProgress(
|
||||
_In_ DWORDLONG dwlSpaceFreed,
|
||||
_In_ DWORDLONG dwlSpaceToFree,
|
||||
_In_ DWORD dwFlags,
|
||||
_In_ LPCWSTR pcwszStatus) override
|
||||
{
|
||||
DPRINT("dwlSpaceFreed: %lld, dwlSpaceToFree: %lld, dwFlags: %x\n", dwlSpaceFreed, dwlSpaceToFree, dwFlags);
|
||||
return S_OK;
|
||||
}
|
||||
};
|
@@ -1,19 +0,0 @@
|
||||
|
||||
add_executable(cleanmgr
|
||||
cleanmgr.cpp
|
||||
cleanmgr.h
|
||||
cleanmgr.rc
|
||||
resource.h
|
||||
CEmptyVolumeCacheCallBack.hpp
|
||||
CProgressDlg.hpp
|
||||
CSelectDriveDlg.cpp
|
||||
CCleanupHandler.cpp
|
||||
CCleanupHandler.hpp
|
||||
CCleanupHandlerList.cpp
|
||||
CCleanupHandlerList.hpp
|
||||
)
|
||||
set_module_type(cleanmgr win32gui UNICODE)
|
||||
target_link_libraries(cleanmgr uuid cpprt atl_classes)
|
||||
add_importlibs(cleanmgr shlwapi oleaut32 ole32 shell32 comctl32 user32 advapi32 msvcrt kernel32 ntdll)
|
||||
add_dependencies(cleanmgr psdk)
|
||||
add_cd_file(TARGET cleanmgr DESTINATION reactos/system32 FOR all)
|
@@ -1,50 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Disk Cleanup
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Progress dialog implementation
|
||||
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
class CProgressDlg
|
||||
{
|
||||
CComPtr<IProgressDialog> m_spProgress;
|
||||
DWORD m_dwTotal = 0;
|
||||
public:
|
||||
|
||||
~CProgressDlg()
|
||||
{
|
||||
Stop();
|
||||
}
|
||||
|
||||
|
||||
void Start(DWORD dwTotalSteps, LPCWSTR Title, LPCWSTR Text)
|
||||
{
|
||||
HRESULT hr = CoCreateInstance(CLSID_ProgressDialog, NULL, CLSCTX_INPROC, IID_PPV_ARG(IProgressDialog, &m_spProgress));
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return;
|
||||
|
||||
m_dwTotal = dwTotalSteps;
|
||||
|
||||
m_spProgress->SetTitle(Title);
|
||||
m_spProgress->SetLine(2, Text, TRUE, NULL);
|
||||
m_spProgress->StartProgressDialog(NULL, NULL, PROGDLG_NOMINIMIZE, NULL);
|
||||
m_spProgress->SetProgress(0, m_dwTotal);
|
||||
}
|
||||
|
||||
void Step(DWORD dwProgress, LPCWSTR Text)
|
||||
{
|
||||
m_spProgress->SetProgress(dwProgress, m_dwTotal);
|
||||
m_spProgress->SetLine(1, Text, TRUE, NULL);
|
||||
}
|
||||
|
||||
void Stop()
|
||||
{
|
||||
if (m_spProgress)
|
||||
{
|
||||
m_spProgress->StopProgressDialog();
|
||||
m_spProgress.Release();
|
||||
}
|
||||
}
|
||||
};
|
@@ -1,80 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Disk Cleanup
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Drive selection dialog
|
||||
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
|
||||
*/
|
||||
|
||||
#include "cleanmgr.h"
|
||||
|
||||
class CSelectDriveDlg : public CDialogImpl<CSelectDriveDlg>
|
||||
{
|
||||
public:
|
||||
enum { IDD = IDD_SELECTDRIVE };
|
||||
|
||||
BEGIN_MSG_MAP(CSelectDriveDlg)
|
||||
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
||||
COMMAND_ID_HANDLER(IDOK, OnEndDialog)
|
||||
COMMAND_ID_HANDLER(IDCANCEL, OnEndDialog)
|
||||
END_MSG_MAP()
|
||||
|
||||
CSelectDriveDlg()
|
||||
:m_SelectedDrive(UNICODE_NULL)
|
||||
{
|
||||
}
|
||||
|
||||
LRESULT OnInitDialog(UINT, WPARAM, LPARAM, BOOL&)
|
||||
{
|
||||
// Try to find an existing instance of this dialog
|
||||
WCHAR buf[300];
|
||||
GetWindowTextW(buf, _countof(buf));
|
||||
for (HWND hNext = NULL, hFind; (hFind = ::FindWindowExW(NULL, hNext, NULL, buf)) != NULL; hNext = hFind)
|
||||
{
|
||||
if (hFind != *this && ::IsWindowVisible(hFind))
|
||||
{
|
||||
::SetForegroundWindow(hFind);
|
||||
EndDialog(IDCANCEL);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
CWindow cbo = GetDlgItem(IDC_DRIVES);
|
||||
WCHAR VolumeNameBuffer[MAX_PATH + 1];
|
||||
CStringW Tmp;
|
||||
for (WCHAR Drive = 'A'; Drive <= 'Z'; ++Drive)
|
||||
{
|
||||
WCHAR RootPathName[] = { Drive,':','\\',0 };
|
||||
UINT Type = GetDriveTypeW(RootPathName);
|
||||
if (Type == DRIVE_FIXED)
|
||||
{
|
||||
GetVolumeInformationW(RootPathName, VolumeNameBuffer, _countof(VolumeNameBuffer), 0, 0, 0, 0, 0);
|
||||
Tmp.Format(L"%s (%.2s)", VolumeNameBuffer, RootPathName);
|
||||
|
||||
int index = (int)cbo.SendMessage(CB_ADDSTRING, NULL, (LPARAM)Tmp.GetString());
|
||||
cbo.SendMessage(CB_SETITEMDATA, index, Drive);
|
||||
}
|
||||
}
|
||||
cbo.SendMessage(CB_SETCURSEL, 0);
|
||||
return 1;
|
||||
}
|
||||
LRESULT OnEndDialog(WORD, WORD wID, HWND, BOOL&)
|
||||
{
|
||||
CWindow cbo = GetDlgItem(IDC_DRIVES);
|
||||
m_SelectedDrive = (WCHAR)cbo.SendMessage(CB_GETITEMDATA, cbo.SendMessage(CB_GETCURSEL));
|
||||
EndDialog(wID);
|
||||
return 0;
|
||||
}
|
||||
|
||||
WCHAR m_SelectedDrive;
|
||||
};
|
||||
|
||||
|
||||
void
|
||||
SelectDrive(WCHAR &Drive)
|
||||
{
|
||||
CSelectDriveDlg dlgSelectDrive;
|
||||
if (dlgSelectDrive.DoModal() == IDOK)
|
||||
{
|
||||
Drive = dlgSelectDrive.m_SelectedDrive;
|
||||
}
|
||||
}
|
@@ -1,328 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Disk Cleanup
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Disk cleanup entrypoint
|
||||
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
|
||||
*/
|
||||
|
||||
#include "cleanmgr.h"
|
||||
|
||||
// for listview with extend style LVS_EX_CHECKBOXES, State image 1 is the unchecked box, and state image 2 is the
|
||||
// checked box. see this: https://docs.microsoft.com/en-us/windows/win32/controls/extended-list-view-styles
|
||||
#define STATEIMAGETOINDEX(x) (((x)&LVIS_STATEIMAGEMASK) >> 12)
|
||||
#define STATEIMAGE_UNCHECKED 1
|
||||
#define STATEIMAGE_CHECKED 2
|
||||
|
||||
|
||||
struct CCleanMgrProperties :
|
||||
public CPropertyPageImpl<CCleanMgrProperties>
|
||||
{
|
||||
enum { IDD = IDD_PROPERTIES_MAIN };
|
||||
CWindow m_HandlerListControl;
|
||||
WCHAR m_Drive;
|
||||
DWORDLONG m_TotalSpaceUsed;
|
||||
CCleanupHandlerList* m_HandlerList;
|
||||
bool m_IgnoreChanges = true;
|
||||
|
||||
|
||||
CCleanMgrProperties(WCHAR Drive, DWORDLONG TotalSpaceUsed, CCleanupHandlerList *handlerList)
|
||||
: m_Drive(Drive)
|
||||
, m_TotalSpaceUsed(TotalSpaceUsed)
|
||||
, m_HandlerList(handlerList)
|
||||
{
|
||||
}
|
||||
|
||||
int OnApply()
|
||||
{
|
||||
CStringW Title(MAKEINTRESOURCE(IDS_DISK_CLEANUP));
|
||||
CStringW Text(MAKEINTRESOURCE(IDS_CONFIRM_DELETE));
|
||||
|
||||
if (MessageBoxW(Text, Title, MB_YESNO | MB_ICONQUESTION) != IDYES)
|
||||
return PSNRET_INVALID;
|
||||
|
||||
return PSNRET_NOERROR;
|
||||
}
|
||||
|
||||
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
||||
{
|
||||
HICON hIcon = (HICON)::LoadImageW(
|
||||
_AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCEW(IDI_CLEANMGR), IMAGE_ICON, 0, 0,
|
||||
LR_DEFAULTSIZE | LR_SHARED);
|
||||
SendDlgItemMessage(IDC_DISKICON, STM_SETICON, (WPARAM)hIcon);
|
||||
|
||||
m_HandlerListControl = GetDlgItem(IDC_HANDLERLIST);
|
||||
RECT rc;
|
||||
m_HandlerListControl.GetClientRect(&rc);
|
||||
rc.right -= GetSystemMetrics(SM_CXVSCROLL);
|
||||
|
||||
LV_COLUMN column = {};
|
||||
column.mask = LVCF_FMT | LVCF_WIDTH;
|
||||
column.fmt = LVCFMT_LEFT;
|
||||
column.cx = rc.right * 80 / 100;
|
||||
ListView_InsertColumn(m_HandlerListControl, 0, &column);
|
||||
column.fmt = LVCFMT_RIGHT;
|
||||
column.cx = rc.right * 20 / 100;
|
||||
|
||||
ListView_InsertColumn(m_HandlerListControl, 1, &column);
|
||||
HIMAGELIST hImagelist = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR32, 1, 1);
|
||||
ListView_SetImageList(m_HandlerListControl, hImagelist, LVSIL_SMALL);
|
||||
|
||||
ListView_SetExtendedListViewStyleEx(m_HandlerListControl, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
|
||||
|
||||
m_HandlerList->ForEach(
|
||||
[&](CCleanupHandler *current)
|
||||
{
|
||||
if (!current->ShowHandler)
|
||||
return;
|
||||
|
||||
LV_ITEM item = {};
|
||||
item.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
|
||||
item.lParam = (LPARAM)current;
|
||||
item.pszText = (LPWSTR)current->wszDisplayName;
|
||||
item.iItem = ListView_GetItemCount(m_HandlerListControl);
|
||||
item.iImage = ImageList_AddIcon(hImagelist, current->hIcon);
|
||||
item.iItem = ListView_InsertItem(m_HandlerListControl, &item);
|
||||
ListView_SetCheckState(
|
||||
m_HandlerListControl, item.iItem, !!(current->StateFlags & HANDLER_STATE_SELECTED));
|
||||
|
||||
item.mask = LVIF_TEXT;
|
||||
WCHAR ByteSize[100] = {};
|
||||
StrFormatByteSizeW(current->SpaceUsed, ByteSize, _countof(ByteSize));
|
||||
ListView_SetItemText(m_HandlerListControl, item.iItem, 1, ByteSize);
|
||||
});
|
||||
|
||||
// Now we should start responding to changes
|
||||
m_IgnoreChanges = false;
|
||||
|
||||
// Select the first item
|
||||
ListView_SetItemState(m_HandlerListControl, 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
|
||||
|
||||
UpdateSpaceUsed();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
CCleanupHandler* GetHandler(int Index)
|
||||
{
|
||||
LVITEMW item = {};
|
||||
item.iItem = Index;
|
||||
if (item.iItem >= 0)
|
||||
{
|
||||
item.mask = LVIF_PARAM;
|
||||
ListView_GetItem(m_HandlerListControl, &item);
|
||||
return (CCleanupHandler*)item.lParam;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
LRESULT OnDetails(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
|
||||
{
|
||||
CCleanupHandler *handler = GetHandler(ListView_GetNextItem(m_HandlerListControl, -1, LVIS_FOCUSED));
|
||||
if (handler)
|
||||
{
|
||||
handler->Handler->ShowProperties(m_hWnd);
|
||||
}
|
||||
return 0L;
|
||||
}
|
||||
|
||||
LRESULT OnHandlerItemchanged(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
|
||||
{
|
||||
if (idCtrl == IDC_HANDLERLIST)
|
||||
{
|
||||
// We are still initializing, don't respond to changes just yet!
|
||||
if (m_IgnoreChanges)
|
||||
return 0L;
|
||||
|
||||
LPNMLISTVIEW pnic = (LPNMLISTVIEW)pnmh;
|
||||
|
||||
// We only care about state changes
|
||||
if (!(pnic->uChanged & LVIF_STATE))
|
||||
return 0L;
|
||||
|
||||
|
||||
INT ItemIndex = pnic->iItem;
|
||||
if (ItemIndex == -1 || ItemIndex >= ListView_GetItemCount(pnic->hdr.hwndFrom))
|
||||
{
|
||||
return 0L;
|
||||
}
|
||||
|
||||
bool GotSelected = (pnic->uNewState & LVIS_SELECTED) && !(pnic->uOldState & LVIS_SELECTED);
|
||||
if (GotSelected)
|
||||
{
|
||||
CWindow DetailsButton = GetDlgItem(IDC_DETAILS);
|
||||
CCleanupHandler* handler = (CCleanupHandler*)pnic->lParam;
|
||||
|
||||
SetDlgItemText(IDC_DESCRIPTION, handler->wszDescription ? handler->wszDescription : L"");
|
||||
if (handler->HasSettings())
|
||||
{
|
||||
DetailsButton.ShowWindow(SW_SHOW);
|
||||
DetailsButton.SetWindowText(handler->wszBtnText);
|
||||
}
|
||||
else
|
||||
{
|
||||
DetailsButton.ShowWindow(SW_HIDE);
|
||||
}
|
||||
}
|
||||
|
||||
int iOldState = STATEIMAGETOINDEX(pnic->uOldState);
|
||||
int iNewState = STATEIMAGETOINDEX(pnic->uNewState);
|
||||
|
||||
if ((iOldState ^ iNewState) == (STATEIMAGE_UNCHECKED ^ STATEIMAGE_CHECKED))
|
||||
{
|
||||
CCleanupHandler* handler = (CCleanupHandler*)pnic->lParam;
|
||||
if (iNewState == STATEIMAGE_CHECKED)
|
||||
handler->StateFlags |= HANDLER_STATE_SELECTED;
|
||||
else
|
||||
handler->StateFlags &= ~HANDLER_STATE_SELECTED;
|
||||
UpdateSpaceUsed();
|
||||
}
|
||||
}
|
||||
return 0L;
|
||||
}
|
||||
|
||||
void UpdateSpaceUsed()
|
||||
{
|
||||
CStringW tmp;
|
||||
WCHAR ByteSize[100];
|
||||
StrFormatByteSizeW(m_TotalSpaceUsed, ByteSize, _countof(ByteSize));
|
||||
|
||||
tmp.Format(IDS_TOTAL_CLEANABLE_CAPTION, ByteSize, m_Drive);
|
||||
SetDlgItemText(IDC_TOTAL_CLEANABLE, tmp);
|
||||
|
||||
DWORDLONG SelectedGained = 0;
|
||||
|
||||
m_HandlerList->ForEach(
|
||||
[&](CCleanupHandler *current)
|
||||
{
|
||||
if (current->StateFlags & HANDLER_STATE_SELECTED)
|
||||
{
|
||||
SelectedGained += current->SpaceUsed;
|
||||
}
|
||||
});
|
||||
|
||||
StrFormatByteSizeW(SelectedGained, ByteSize, _countof(ByteSize));
|
||||
SetDlgItemText(IDC_SELECTED_GAINED, ByteSize);
|
||||
}
|
||||
|
||||
BEGIN_MSG_MAP(CCleanMgrProperties)
|
||||
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
||||
COMMAND_ID_HANDLER(IDC_DETAILS, OnDetails)
|
||||
NOTIFY_HANDLER(IDC_HANDLERLIST, LVN_ITEMCHANGED, OnHandlerItemchanged)
|
||||
CHAIN_MSG_MAP(CPropertyPageImpl<CCleanMgrProperties>) // Allow the default handler to call 'OnApply' etc
|
||||
END_MSG_MAP()
|
||||
};
|
||||
|
||||
|
||||
|
||||
class CCleanMgrModule : public ATL::CAtlExeModuleT< CCleanMgrModule >
|
||||
{
|
||||
public:
|
||||
WCHAR m_Drive = UNICODE_NULL;
|
||||
|
||||
bool ParseCommandLine(
|
||||
_In_z_ LPCTSTR lpCmdLine,
|
||||
_Out_ HRESULT* pnRetCode) throw()
|
||||
{
|
||||
int argc = 0;
|
||||
CLocalPtr<LPWSTR> argv(CommandLineToArgvW(lpCmdLine, &argc));
|
||||
|
||||
for (int n = 1; n < argc; ++n)
|
||||
{
|
||||
if ((argv[n][0] == '/' || argv[n][0] == '-') && towlower(argv[n][1]) == 'd')
|
||||
{
|
||||
if (iswalpha(argv[n][2]))
|
||||
{
|
||||
m_Drive = towupper(argv[n][2]);
|
||||
continue;
|
||||
}
|
||||
if ((n + 1) < argc)
|
||||
{
|
||||
m_Drive = towupper(argv[n + 1][0]);
|
||||
++n;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
*pnRetCode = S_OK;
|
||||
return true;
|
||||
}
|
||||
|
||||
static inline UINT GetWindowProcessId(_In_ HWND hWnd)
|
||||
{
|
||||
DWORD pid;
|
||||
return GetWindowThreadProcessId(hWnd, &pid) ? pid : 0;
|
||||
}
|
||||
|
||||
static BOOL CALLBACK EnumSingleInstanceCallback(_In_ HWND hWnd, _In_ LPARAM lParam)
|
||||
{
|
||||
if (::IsWindowVisible(hWnd) && (LPARAM)GetWindowProcessId(hWnd) == lParam)
|
||||
{
|
||||
::SetForegroundWindow(hWnd);
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
HRESULT Run(_In_ int nShowCmd) throw()
|
||||
{
|
||||
if (m_Drive == UNICODE_NULL)
|
||||
{
|
||||
SelectDrive(m_Drive);
|
||||
}
|
||||
|
||||
if (m_Drive == UNICODE_NULL)
|
||||
return E_FAIL;
|
||||
|
||||
CStringW Title;
|
||||
Title.Format(IDS_PROPERTIES_MAIN_TITLE, m_Drive);
|
||||
|
||||
HWND hWndInstance = ::CreateWindowExW(WS_EX_TOOLWINDOW, WC_STATIC, Title, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
|
||||
for (HWND hNext = NULL, hFind; (hFind = ::FindWindowExW(NULL, hNext, WC_STATIC, Title)) != NULL; hNext = hFind)
|
||||
{
|
||||
if (hFind != hWndInstance)
|
||||
{
|
||||
::EnumWindows(EnumSingleInstanceCallback, GetWindowProcessId(hFind));
|
||||
return S_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
CCleanupHandlerList Handlers;
|
||||
CEmptyVolumeCacheCallBack CacheCallBack;
|
||||
|
||||
Handlers.LoadHandlers(m_Drive);
|
||||
DWORDLONG TotalSpaceUsed = Handlers.ScanDrive(&CacheCallBack);
|
||||
|
||||
CCleanMgrProperties cleanMgr(m_Drive, TotalSpaceUsed, &Handlers);
|
||||
HPROPSHEETPAGE hpsp[1] = { cleanMgr.Create() };
|
||||
|
||||
PROPSHEETHEADERW psh = { };
|
||||
psh.dwSize = sizeof(psh);
|
||||
psh.dwFlags = PSH_NOAPPLYNOW | PSH_USEICONID | PSH_NOCONTEXTHELP;
|
||||
psh.hInstance = _AtlBaseModule.GetResourceInstance();
|
||||
psh.pszIcon = MAKEINTRESOURCEW(IDI_CLEANMGR);
|
||||
psh.pszCaption = Title;
|
||||
psh.nPages = _countof(hpsp);
|
||||
psh.phpage = hpsp;
|
||||
|
||||
if (PropertySheetW(&psh) >= 1)
|
||||
{
|
||||
::DestroyWindow(hWndInstance); // Allow new "cleanmgr /D" without waiting for these handlers
|
||||
Handlers.ExecuteCleanup(&CacheCallBack);
|
||||
}
|
||||
else
|
||||
{
|
||||
::DestroyWindow(hWndInstance);
|
||||
}
|
||||
return S_OK;
|
||||
}
|
||||
};
|
||||
|
||||
CCleanMgrModule _AtlModule;
|
||||
|
||||
|
||||
|
||||
extern "C" int WINAPI wWinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/,
|
||||
LPWSTR /*lpCmdLine*/, int nShowCmd)
|
||||
{
|
||||
return _AtlModule.WinMain(nShowCmd);
|
||||
}
|
@@ -1,66 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Disk Cleanup
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Main header file
|
||||
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef STRICT
|
||||
#define STRICT
|
||||
#endif
|
||||
|
||||
#define _ATL_APARTMENT_THREADED
|
||||
#define _ATL_NO_AUTOMATIC_NAMESPACE
|
||||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
|
||||
#define ATL_NO_ASSERT_ON_DESTROY_NONEXISTENT_WINDOW
|
||||
|
||||
#define _FORCENAMELESSUNION
|
||||
|
||||
#include <ndk/rtlfuncs.h>
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <shlobj.h>
|
||||
#include <shlwapi.h>
|
||||
|
||||
|
||||
#include <atlbase.h>
|
||||
#include <atlcom.h>
|
||||
#include <atlstr.h>
|
||||
#include <strsafe.h>
|
||||
#include <emptyvc.h>
|
||||
#include <atlcoll.h>
|
||||
|
||||
|
||||
using namespace ATL;
|
||||
|
||||
#define NDEBUG
|
||||
#include <reactos/debug.h>
|
||||
#include <reactos/shellutils.h>
|
||||
#include <ui/rosdlgs.h>
|
||||
|
||||
|
||||
template <class T> class CLocalPtr
|
||||
: public CHeapPtr<T, CLocalAllocator>
|
||||
{
|
||||
public:
|
||||
CLocalPtr() throw()
|
||||
{
|
||||
}
|
||||
|
||||
explicit CLocalPtr(_In_ T* pData) throw() :
|
||||
CHeapPtr<T, CLocalAllocator>(pData)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
#include "resource.h"
|
||||
#include "CProgressDlg.hpp"
|
||||
#include "CCleanupHandler.hpp"
|
||||
#include "CCleanupHandlerList.hpp"
|
||||
#include "CEmptyVolumeCacheCallBack.hpp"
|
||||
|
||||
// CSelectDriveDlg.cpp
|
||||
void
|
||||
SelectDrive(WCHAR &Drive);
|
@@ -1,64 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Disk Cleanup
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Resources
|
||||
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
|
||||
*/
|
||||
|
||||
#include <windef.h>
|
||||
#include <winuser.h>
|
||||
#include <commctrl.h>
|
||||
#include "resource.h"
|
||||
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Disk Cleanup"
|
||||
#define REACTOS_STR_INTERNAL_NAME "cleanmgr"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "cleanmgr.exe"
|
||||
#include <reactos/version.rc>
|
||||
|
||||
#include <reactos/manifest_exe.rc>
|
||||
|
||||
IDI_CLEANMGR ICON "resources/cleanmgr.ico"
|
||||
|
||||
#pragma code_page(65001)
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_PROPERTIES_MAIN_TITLE "Disk Cleanup for (%c:)"
|
||||
IDS_TOTAL_CLEANABLE_CAPTION "You can use Disk Cleanup to free up to %s of disk space on (%c:)."
|
||||
IDS_DISK_CLEANUP "Disk Cleanup"
|
||||
IDS_CONFIRM_DELETE "Are you sure you want to delete these files permanently?"
|
||||
IDS_CALCULATING "Disk Cleanup is calculating how much space can be gained on (%s)."
|
||||
IDS_SCANNING "Scanning: %s"
|
||||
IDS_CLEANING_CAPTION "Disk Cleanup is cleaning up files on %s."
|
||||
IDS_CLEANING "Cleaning: %s"
|
||||
END
|
||||
|
||||
IDD_PROPERTIES_MAIN DIALOGEX 0, 0, 235, 215
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Disk Cleanup"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x0
|
||||
BEGIN
|
||||
CONTROL "",IDC_DISKICON,"Static",SS_ICON,6,6,20,20
|
||||
LTEXT "You can use Disk Cleanup to free up to 0.0MB of disk space on drive C.",IDC_TOTAL_CLEANABLE,36,6,192,18
|
||||
LTEXT "Files to delete:",IDC_STATIC,6,30,222,8
|
||||
CONTROL "",IDC_HANDLERLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOCOLUMNHEADER | WS_BORDER | WS_TABSTOP,6,42,222,66
|
||||
LTEXT "Total amount of disk space gained:",IDC_STATIC,6,114,144,8
|
||||
RTEXT "",IDC_SELECTED_GAINED,156,114,73,8
|
||||
GROUPBOX "Description",IDC_STATIC,6,126,222,84
|
||||
LTEXT "",IDC_DESCRIPTION,12,138,210,54
|
||||
PUSHBUTTON "Details...",IDC_DETAILS,150,192,74,14
|
||||
END
|
||||
|
||||
IDD_SELECTDRIVE DIALOGEX 0, 0, 177, 74
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Disk Cleanup - Select Drive"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,30,48,50,14
|
||||
PUSHBUTTON "E&xit",IDCANCEL,96,48,50,14
|
||||
LTEXT "Select the drive to clean up.",IDC_STATIC,12,6,150,8
|
||||
COMBOBOX IDC_DRIVES,12,24,150,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
||||
END
|
||||
|
@@ -1,30 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Disk Cleanup
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Resource definitions
|
||||
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
|
||||
*/
|
||||
|
||||
#define IDC_STATIC -1
|
||||
|
||||
#define IDI_CLEANMGR 100
|
||||
|
||||
#define IDD_PROPERTIES_MAIN 200
|
||||
#define IDC_DISKICON 201
|
||||
#define IDC_TOTAL_CLEANABLE 202
|
||||
#define IDC_HANDLERLIST 203
|
||||
#define IDC_SELECTED_GAINED 204
|
||||
#define IDC_DESCRIPTION 205
|
||||
#define IDC_DETAILS 206
|
||||
|
||||
#define IDD_SELECTDRIVE 220
|
||||
#define IDC_DRIVES 221
|
||||
|
||||
#define IDS_PROPERTIES_MAIN_TITLE 1000
|
||||
#define IDS_TOTAL_CLEANABLE_CAPTION 1001
|
||||
#define IDS_DISK_CLEANUP 1002
|
||||
#define IDS_CONFIRM_DELETE 1003
|
||||
#define IDS_CALCULATING 1004
|
||||
#define IDS_SCANNING 1005
|
||||
#define IDS_CLEANING_CAPTION 1006
|
||||
#define IDS_CLEANING 1007
|
Binary file not shown.
Before Width: | Height: | Size: 58 KiB |
@@ -248,11 +248,13 @@ static int OnCommand(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
case CMD_ABOUT:
|
||||
{
|
||||
HICON hIcon;
|
||||
WCHAR szTitle[MAX_STRING_LEN];
|
||||
|
||||
hIcon = LoadIconW(Globals.hInstance, MAKEINTRESOURCE(CLIPBRD_ICON));
|
||||
LoadStringW(Globals.hInstance, STRING_CLIPBOARD, szTitle, ARRAYSIZE(szTitle));
|
||||
ShellAboutW(Globals.hMainWnd, szTitle, NULL,
|
||||
LoadIconW(Globals.hInstance, MAKEINTRESOURCEW(CLIPBRD_ICON)));
|
||||
ShellAboutW(Globals.hMainWnd, szTitle, NULL, hIcon);
|
||||
DeleteObject(hIcon);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -358,13 +360,6 @@ static void OnPaint(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
}
|
||||
|
||||
case CF_HDROP:
|
||||
{
|
||||
GetClientRect(hWnd, &rc);
|
||||
HDropFromClipboard(hdc, &rc);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
GetClientRect(hWnd, &rc);
|
||||
|
@@ -50,9 +50,6 @@ CLPFILE_ICON ICON "res/clpfile.ico"
|
||||
#ifdef LANGUAGE_IT_IT
|
||||
#include "lang/it-IT.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_JA_JP
|
||||
#include "lang/ja-JP.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_PL_PL
|
||||
#include "lang/pl-PL.rc"
|
||||
#endif
|
||||
|
@@ -164,8 +164,7 @@ UINT GetAutomaticClipboardFormat(void)
|
||||
CF_DSPBITMAP,
|
||||
CF_DSPMETAFILEPICT,
|
||||
CF_DSPENHMETAFILE,
|
||||
CF_PALETTE,
|
||||
CF_HDROP
|
||||
CF_PALETTE
|
||||
};
|
||||
|
||||
return GetPriorityClipboardFormat(uFormatList, ARRAYSIZE(uFormatList));
|
||||
|
@@ -3,7 +3,6 @@
|
||||
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
|
||||
* PURPOSE: Implementation of Italian language for Clipboard Viewer
|
||||
* COPYRIGHT: Copyright 2018 George Bișoc (george.bisoc@reactos.org)
|
||||
* Copyright 2025 Gabriele Lo Re (gabrolr70@gmail.com)
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
||||
@@ -40,12 +39,12 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_CLIPBOARD "Visualizzatore Appunti condivisi"
|
||||
STRING_CLIPFILE "Elemento appunti condivisi"
|
||||
STRING_DELETE_MSG "Cancella i contenuti degli appunti condivisi?"
|
||||
STRING_DELETE_TITLE "Cancella appunti condivisi"
|
||||
STRING_FORMAT_NT "Appunti condivisi di ReactOS (*.clp)"
|
||||
STRING_FORMAT_GEN "Appunti condivisi (*.clp)"
|
||||
STRING_CLIPBOARD "Visualizzatore di Clipboard"
|
||||
STRING_CLIPFILE "Elemento Clipboard"
|
||||
STRING_DELETE_MSG "Cancella i contenuti del Clipboard?"
|
||||
STRING_DELETE_TITLE "Cancella Clipboard"
|
||||
STRING_FORMAT_NT "I file del Clipboard di ReactOS (*.clp)"
|
||||
STRING_FORMAT_GEN "I file Clipboard (*.clp)"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
@@ -68,6 +67,6 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ERROR_UNSUPPORTED_FORMAT "Gli appunti Condivisi contengono informazioni in formato data, che non possono essere visualizzate."
|
||||
ERROR_INVALID_FILE_FORMAT "Il file selezionato non è un file di tipo appunti condivisi valido."
|
||||
ERROR_UNSUPPORTED_FORMAT "Il Clipboard contiene informazioni in formato data, che non può essere visualizzato."
|
||||
ERROR_INVALID_FILE_FORMAT "Il file selezionato non è un file di tipo clipboard valido."
|
||||
END
|
||||
|
@@ -1,65 +0,0 @@
|
||||
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
||||
|
||||
ID_ACCEL ACCELERATORS
|
||||
BEGIN
|
||||
VK_DELETE, CMD_DELETE, VIRTKEY
|
||||
END
|
||||
|
||||
MAIN_MENU MENU
|
||||
BEGIN
|
||||
POPUP "ファイル(&F)"
|
||||
BEGIN
|
||||
MENUITEM "開く(&O)...", CMD_OPEN
|
||||
MENUITEM "名前を付けて保存(&A)...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "終了(&X)", CMD_EXIT
|
||||
END
|
||||
POPUP "編集(&E)"
|
||||
BEGIN
|
||||
MENUITEM "削除(&D)\tDel", CMD_DELETE
|
||||
END
|
||||
POPUP "表示(&D)"
|
||||
BEGIN
|
||||
MENUITEM "自動(&A)", CMD_AUTOMATIC
|
||||
END
|
||||
POPUP "ヘルプ(&H)"
|
||||
BEGIN
|
||||
MENUITEM "ヘルプ トピック(&H)", CMD_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "バージョン情報(&A)", CMD_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_CLIPBOARD "クリップボード ビュア"
|
||||
STRING_CLIPFILE "クリップボードの要素"
|
||||
STRING_DELETE_MSG "クリップボードの内容をクリアしますか?"
|
||||
STRING_DELETE_TITLE "クリップボードのクリア"
|
||||
STRING_FORMAT_NT "ReactOS 用のクリップボード ファイル (*.clp)"
|
||||
STRING_FORMAT_GEN "クリップボード ファイル (*.clp)"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_CF_UNKNOWN "未知の形式"
|
||||
STRING_CF_TEXT "テキスト"
|
||||
STRING_CF_BITMAP "ビットマップ"
|
||||
STRING_CF_OEMTEXT "OEM テキスト"
|
||||
STRING_CF_UNICODETEXT "Unicode テキスト"
|
||||
STRING_CF_DIB "DIB ビットマップ"
|
||||
STRING_CF_LOCALE "ロケール データ"
|
||||
STRING_CF_ENHMETAFILE "拡張メタファイル"
|
||||
STRING_CF_METAFILEPICT "メタファイル"
|
||||
STRING_CF_PALETTE "カラー パレット"
|
||||
STRING_CF_DIBV5 "DIB ビットマップ (バージョン 5)"
|
||||
STRING_CF_SYLK "シンボリック リンク形式"
|
||||
STRING_CF_DIF "データ交換フォーマット"
|
||||
STRING_CF_HDROP "ドロップ データ"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ERROR_UNSUPPORTED_FORMAT "表示できない形式のデータがクリップボードにあります。"
|
||||
ERROR_INVALID_FILE_FORMAT "選択したファイルは有効なクリップボードファイルではありません。"
|
||||
END
|
@@ -1,11 +1,4 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Clipboard
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: Romanian resource file
|
||||
* TRANSLATORS: Copyright 2011-2018 Ștefan Fulea <stefan.fulea@mail.com>
|
||||
* Copyright 2023-2024 Andrei Miloiu <miloiuandrei@gmail.com>
|
||||
*/
|
||||
|
||||
/* Translator: Ștefan Fulea (stefan dot fulea at mail dot com) */
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
|
||||
ID_ACCEL ACCELERATORS
|
||||
@@ -18,23 +11,23 @@ BEGIN
|
||||
POPUP "&Fișier"
|
||||
BEGIN
|
||||
MENUITEM "&Deschidere…", CMD_OPEN
|
||||
MENUITEM "&Salvare ca…", CMD_SAVE_AS
|
||||
MENUITEM "Păst&rare ca…", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "I&eșire", CMD_EXIT
|
||||
END
|
||||
POPUP "&Editare"
|
||||
BEGIN
|
||||
MENUITEM "Ș&tergere\tDel", CMD_DELETE
|
||||
MENUITEM "Șt&erge\tDel", CMD_DELETE
|
||||
END
|
||||
POPUP "&Afișare"
|
||||
BEGIN
|
||||
MENUITEM "A&utomată", CMD_AUTOMATIC
|
||||
MENUITEM "&Automată", CMD_AUTOMATIC
|
||||
END
|
||||
POPUP "A&jutor"
|
||||
POPUP "Aj&utor"
|
||||
BEGIN
|
||||
MENUITEM "Aj&utor", CMD_HELP
|
||||
MENUITEM "&Manual…", CMD_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Despre", CMD_ABOUT
|
||||
MENUITEM "&Despre…", CMD_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -42,8 +35,8 @@ STRINGTABLE
|
||||
BEGIN
|
||||
STRING_CLIPBOARD "Inspector de Clipboard"
|
||||
STRING_CLIPFILE "Element de Clipboard"
|
||||
STRING_DELETE_MSG "Eliminare conținut din Clipboard?"
|
||||
STRING_DELETE_TITLE "Curățare Clipboard"
|
||||
STRING_DELETE_MSG "Elimină conținutul din Clipboard?"
|
||||
STRING_DELETE_TITLE "Curăță Clipboard"
|
||||
STRING_FORMAT_NT "Fișiere clipboard pentru ReactOS (*.clp)"
|
||||
STRING_FORMAT_GEN "Fișiere clipboard (*.clp)"
|
||||
END
|
||||
@@ -60,10 +53,10 @@ BEGIN
|
||||
STRING_CF_ENHMETAFILE "Metafișier îmbunătățit"
|
||||
STRING_CF_METAFILEPICT "Metafișier"
|
||||
STRING_CF_PALETTE "Paletă de culori"
|
||||
STRING_CF_DIBV5 "Bitmap DIB (versiunea 5)"
|
||||
STRING_CF_DIBV5 "Bitmap DIB (versiune 5)"
|
||||
STRING_CF_SYLK "Format de legătură simbolică"
|
||||
STRING_CF_DIF "Format de schimb de date"
|
||||
STRING_CF_HDROP "Ștergere a datelor"
|
||||
STRING_CF_DIF "Format de transfer al datelor"
|
||||
STRING_CF_HDROP "Abandon date"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
@@ -257,9 +257,9 @@ void SetDIBitsToDeviceFromClipboard(UINT uFormat, PAINTSTRUCT ps, SCROLLSTATE st
|
||||
*
|
||||
* FIXME: investigate!!
|
||||
* ANSWER: this is a Windows bug; part of the answer is there:
|
||||
* https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/ac7ab3b5-8609-4478-b86a-976dab44c271/bug-clipboard-format-conversions-cfdib-cfdibv5-cfdib (DEAD_LINK)
|
||||
* https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/ac7ab3b5-8609-4478-b86a-976dab44c271/bug-clipboard-format-conversions-cfdib-cfdibv5-cfdib
|
||||
* May be related:
|
||||
* https://blog.talosintelligence.com/dangerous-clipboard/
|
||||
* https://blog.talosintelligence.com/2015/10/dangerous-clipboard.html
|
||||
*/
|
||||
#if 0
|
||||
if ((lpInfoHeader->biSize == sizeof(BITMAPINFOHEADER)) &&
|
||||
@@ -331,45 +331,6 @@ void PlayEnhMetaFileFromClipboard(HDC hdc, const RECT *lpRect)
|
||||
PlayEnhMetaFile(hdc, hEmf, lpRect);
|
||||
}
|
||||
|
||||
static LPWSTR AllocStrCat(LPWSTR psz, LPCWSTR cat)
|
||||
{
|
||||
INT cch;
|
||||
LPWSTR pszNew;
|
||||
|
||||
if (psz == NULL)
|
||||
return _wcsdup(cat);
|
||||
|
||||
cch = lstrlenW(psz) + lstrlenW(cat) + 1;
|
||||
pszNew = realloc(psz, cch * sizeof(WCHAR));
|
||||
if (!pszNew)
|
||||
return psz;
|
||||
|
||||
lstrcatW(pszNew, cat);
|
||||
return pszNew;
|
||||
}
|
||||
|
||||
void HDropFromClipboard(HDC hdc, const RECT *lpRect)
|
||||
{
|
||||
LPWSTR pszAlloc = NULL;
|
||||
WCHAR szFile[MAX_PATH + 2];
|
||||
HDROP hDrop = (HDROP)GetClipboardData(CF_HDROP);
|
||||
UINT iFile, cFiles = DragQueryFileW(hDrop, 0xFFFFFFFF, NULL, 0);
|
||||
RECT rc = *lpRect;
|
||||
|
||||
FillRect(hdc, &rc, (HBRUSH)(COLOR_WINDOW + 1));
|
||||
|
||||
for (iFile = 0; iFile < cFiles; ++iFile)
|
||||
{
|
||||
DragQueryFileW(hDrop, iFile, szFile, _countof(szFile));
|
||||
lstrcatW(szFile, L"\r\n");
|
||||
pszAlloc = AllocStrCat(pszAlloc, szFile);
|
||||
}
|
||||
|
||||
DrawTextW(hdc, pszAlloc, -1, &rc,
|
||||
DT_LEFT | DT_NOPREFIX | DT_EXTERNALLEADING | DT_WORD_ELLIPSIS);
|
||||
free(pszAlloc);
|
||||
}
|
||||
|
||||
BOOL RealizeClipboardPalette(HDC hdc)
|
||||
{
|
||||
BOOL Success;
|
||||
|
@@ -17,5 +17,4 @@ void BitBltFromClipboard(PAINTSTRUCT ps, SCROLLSTATE state, DWORD dwRop);
|
||||
void SetDIBitsToDeviceFromClipboard(UINT uFormat, PAINTSTRUCT ps, SCROLLSTATE state, UINT fuColorUse);
|
||||
void PlayMetaFileFromClipboard(HDC hdc, const RECT *lpRect);
|
||||
void PlayEnhMetaFileFromClipboard(HDC hdc, const RECT *lpRect);
|
||||
void HDropFromClipboard(HDC hdc, const RECT *lpRect);
|
||||
BOOL RealizeClipboardPalette(HDC hdc);
|
||||
|
@@ -19,7 +19,6 @@ add_subdirectory(mode)
|
||||
add_subdirectory(mofcomp)
|
||||
add_subdirectory(more)
|
||||
add_subdirectory(reg)
|
||||
add_subdirectory(replace)
|
||||
add_subdirectory(schtasks)
|
||||
add_subdirectory(sort)
|
||||
add_subdirectory(taskkill)
|
||||
|
@@ -9,7 +9,6 @@
|
||||
|
||||
/* UTF-8 */
|
||||
#pragma code_page(65001)
|
||||
|
||||
#ifdef LANGUAGE_DE_DE
|
||||
#include "lang/de-DE.rc"
|
||||
#endif
|
||||
|
@@ -1,10 +1,4 @@
|
||||
/*
|
||||
* PROJECT: ReactOS AT utility
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: Romanian resource file
|
||||
* TRANSLATORS: Copyright 2011-2019 Ștefan Fulea <stefan.fulea@mail.com>
|
||||
* Copyright 2023 Andrei Miloiu <miloiuandrei@gmail.com>
|
||||
*/
|
||||
/* Translator: Ștefan Fulea (stefan dot fulea at mail dot com) */
|
||||
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
|
||||
@@ -39,7 +33,7 @@ timp Specifică timpul de lansare a comenzii.\n\
|
||||
IDS_JOBS_LIST "ID stare Zi Oră Comanda\n"
|
||||
IDS_NO_ENTRIES "Nu există comenzi planificate.\n"
|
||||
|
||||
IDS_CONFIRM_QUESTION "Sigur doriți continuarea acestei operații? (D/N) [N]: "
|
||||
IDS_CONFIRM_QUESTION "Sigur doriți continuarea acestei operații? (D|N) [N]: "
|
||||
IDS_CONFIRM_INVALID "\nAcesta nu este un răspuns valid.\n"
|
||||
IDS_CONFIRM_YES "D"
|
||||
IDS_CONFIRM_NO "N"
|
||||
|
@@ -31,7 +31,7 @@ id Порядковый номер запланированно
|
||||
IDS_CONFIRM_YES "Y"
|
||||
IDS_CONFIRM_NO "N"
|
||||
|
||||
IDS_DELETE_ALL "Эта операция удалит все запланированные задачи.\n"
|
||||
IDS_DELETE_ALL "This operation will delete all scheduled jobs.\n"
|
||||
IDS_NEW_JOB "Добавлено новое задание с ID = %lu\n"
|
||||
IDS_JOBS_LIST "Статус ID День Время Команда\n"
|
||||
IDS_NO_ENTRIES "В списке нет запланированных задач.\n"
|
||||
|
@@ -1,10 +1,35 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Attrib Command
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: Displays or changes file attributes recursively.
|
||||
* COPYRIGHT: Copyright 1998-2019 Eric Kohl <eric.kohl@reactos.org>
|
||||
* Copyright 2021 Doug Lyons <douglyons@douglyons.com>
|
||||
* Copyright 2021-2023 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
|
||||
* ATTRIB.C - attrib internal command.
|
||||
*
|
||||
*
|
||||
* History:
|
||||
*
|
||||
* 04-Dec-1998 Eric Kohl
|
||||
* started
|
||||
*
|
||||
* 09-Dec-1998 Eric Kohl
|
||||
* implementation works, except recursion ("attrib /s").
|
||||
*
|
||||
* 05-Jan-1999 Eric Kohl
|
||||
* major rewrite.
|
||||
* fixed recursion ("attrib /s").
|
||||
* started directory support ("attrib /s /d").
|
||||
* updated help text.
|
||||
*
|
||||
* 14-Jan-1999 Eric Kohl
|
||||
* Unicode ready!
|
||||
*
|
||||
* 19-Jan-1999 Eric Kohl
|
||||
* Redirection ready!
|
||||
*
|
||||
* 21-Jan-1999 Eric Kohl
|
||||
* Added check for invalid filenames.
|
||||
*
|
||||
* 23-Jan-1999 Eric Kohl
|
||||
* Added handling of multiple filenames.
|
||||
*
|
||||
* 02-Apr-2005 (Magnus Olsen <magnus@greatlord.com>)
|
||||
* Remove all hardcoded strings in En.rc
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
@@ -14,22 +39,15 @@
|
||||
#include <winbase.h>
|
||||
#include <wincon.h>
|
||||
#include <winuser.h>
|
||||
#include <strsafe.h>
|
||||
|
||||
#include <conutils.h>
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
/* Enable to support extended attributes.
|
||||
* See https://ss64.com/nt/attrib.html for an exhaustive list. */
|
||||
// TODO: If you enable this, translations need to be updated as well!
|
||||
//#define EXTENDED_ATTRIBUTES
|
||||
|
||||
#define ALL_FILES_PATTERN L"*.*" // It may also be possible to use L"*" (shorter)
|
||||
|
||||
CON_SCREEN StdOutScreen = INIT_CON_SCREEN(StdOut);
|
||||
|
||||
static VOID
|
||||
static
|
||||
VOID
|
||||
ErrorMessage(
|
||||
_In_ DWORD dwErrorCode,
|
||||
_In_opt_ PCWSTR pszMsg,
|
||||
@@ -59,257 +77,217 @@ ErrorMessage(
|
||||
ConPrintf(StdErr, L" %s\n", pszMsg);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Displays attributes for the given file.
|
||||
* @return Always TRUE (success).
|
||||
**/
|
||||
static BOOL
|
||||
PrintAttributes(
|
||||
_In_ PWIN32_FIND_DATAW pFindData,
|
||||
_In_ PCWSTR pszFullName,
|
||||
_Inout_opt_ PVOID Context)
|
||||
/* Returns TRUE if anything is printed, FALSE otherwise */
|
||||
static
|
||||
BOOL
|
||||
PrintAttribute(
|
||||
LPWSTR pszPath,
|
||||
LPWSTR pszFile,
|
||||
BOOL bRecurse,
|
||||
BOOL bDirectories)
|
||||
{
|
||||
DWORD dwAttributes = pFindData->dwFileAttributes;
|
||||
|
||||
UNREFERENCED_PARAMETER(Context);
|
||||
|
||||
ConPrintf(StdOut,
|
||||
#ifdef EXTENDED_ATTRIBUTES
|
||||
L"%c %c%c%c %c %s\n",
|
||||
#else
|
||||
L"%c %c%c%c %s\n",
|
||||
#endif
|
||||
(dwAttributes & FILE_ATTRIBUTE_ARCHIVE) ? L'A' : L' ',
|
||||
(dwAttributes & FILE_ATTRIBUTE_SYSTEM) ? L'S' : L' ',
|
||||
(dwAttributes & FILE_ATTRIBUTE_HIDDEN) ? L'H' : L' ',
|
||||
(dwAttributes & FILE_ATTRIBUTE_READONLY) ? L'R' : L' ',
|
||||
#ifdef EXTENDED_ATTRIBUTES
|
||||
(dwAttributes & FILE_ATTRIBUTE_NOT_CONTENT_INDEXED) ? L'I' : L' ',
|
||||
#endif
|
||||
pszFullName);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
typedef struct _ATTRIBS_MASKS
|
||||
{
|
||||
DWORD dwMask;
|
||||
DWORD dwAttrib;
|
||||
} ATTRIBS_MASKS, *PATTRIBS_MASKS;
|
||||
|
||||
/**
|
||||
* @brief Changes attributes for the given file.
|
||||
* @return TRUE if anything changed, FALSE otherwise.
|
||||
**/
|
||||
static BOOL
|
||||
ChangeAttributes(
|
||||
_In_ PWIN32_FIND_DATAW pFindData,
|
||||
_In_ PCWSTR pszFullName,
|
||||
_Inout_opt_ PVOID Context)
|
||||
{
|
||||
PATTRIBS_MASKS AttribsMasks = (PATTRIBS_MASKS)Context;
|
||||
DWORD dwAttributes;
|
||||
|
||||
dwAttributes = ((pFindData->dwFileAttributes & ~AttribsMasks->dwMask) | AttribsMasks->dwAttrib);
|
||||
return SetFileAttributesW(pszFullName, dwAttributes);
|
||||
}
|
||||
|
||||
|
||||
#define ENUM_RECURSE 0x01
|
||||
#define ENUM_DIRECTORIES 0x02
|
||||
|
||||
typedef BOOL
|
||||
(*PENUMFILES_CALLBACK)(
|
||||
_In_ PWIN32_FIND_DATAW pFindData,
|
||||
_In_ PCWSTR pszFullName,
|
||||
_Inout_opt_ PVOID Context);
|
||||
|
||||
typedef struct _ENUMFILES_CTX
|
||||
{
|
||||
/* Fixed data */
|
||||
_In_ PCWSTR FileName;
|
||||
_In_ DWORD Flags;
|
||||
|
||||
/* Callback invoked on each enumerated file/directory */
|
||||
_In_ PENUMFILES_CALLBACK Callback;
|
||||
_In_ PVOID Context;
|
||||
|
||||
/* Dynamic data */
|
||||
WIN32_FIND_DATAW findData;
|
||||
ULONG uReparseLevel;
|
||||
|
||||
/* The full path buffer the function will act recursively */
|
||||
// PWSTR FullPath; // Use a relocated buffer once long paths become supported!
|
||||
size_t cchBuffer; // Buffer size
|
||||
WCHAR FullPathBuffer[MAX_PATH + _countof("\\" ALL_FILES_PATTERN)];
|
||||
|
||||
} ENUMFILES_CTX, *PENUMFILES_CTX;
|
||||
|
||||
/* Returns TRUE if anything is done, FALSE otherwise */
|
||||
static BOOL
|
||||
EnumFilesWorker(
|
||||
_Inout_ PENUMFILES_CTX EnumCtx,
|
||||
_Inout_ _off_t offFilePart) // Offset to the file name inside FullPathBuffer
|
||||
{
|
||||
BOOL bFound = FALSE;
|
||||
HRESULT hRes;
|
||||
HANDLE hFind;
|
||||
PWSTR findFileName = EnumCtx->findData.cFileName;
|
||||
PWSTR pFilePart = EnumCtx->FullPathBuffer + offFilePart;
|
||||
size_t cchRemaining = EnumCtx->cchBuffer - offFilePart;
|
||||
WCHAR szFullName[MAX_PATH];
|
||||
LPWSTR pszFileName;
|
||||
BOOL bFound = FALSE;
|
||||
BOOL bIsDir;
|
||||
BOOL bExactMatch;
|
||||
DWORD Error;
|
||||
|
||||
/* Recurse over all subdirectories */
|
||||
if (EnumCtx->Flags & ENUM_RECURSE)
|
||||
/* prepare full file name buffer */
|
||||
wcscpy(szFullName, pszPath);
|
||||
pszFileName = szFullName + wcslen(szFullName);
|
||||
|
||||
/* display all subdirectories */
|
||||
if (bRecurse)
|
||||
{
|
||||
/* Append '*.*' */
|
||||
hRes = StringCchCopyW(pFilePart, cchRemaining, ALL_FILES_PATTERN);
|
||||
if (hRes != S_OK)
|
||||
{
|
||||
if (hRes == STRSAFE_E_INSUFFICIENT_BUFFER)
|
||||
{
|
||||
// TODO: If this fails, try to reallocate EnumCtx->FullPathBuffer by
|
||||
// increasing its size by _countof(EnumCtx->findData.cFileName) + 1
|
||||
// to satisfy this copy, as well as the one made in the loop below.
|
||||
}
|
||||
// else
|
||||
ConPrintf(StdErr, L"Directory level too deep: %s\n", EnumCtx->FullPathBuffer);
|
||||
return FALSE;
|
||||
}
|
||||
/* append *.* */
|
||||
wcscpy(pszFileName, L"*.*");
|
||||
|
||||
hFind = FindFirstFileW(EnumCtx->FullPathBuffer, &EnumCtx->findData);
|
||||
hFind = FindFirstFileW(szFullName, &findData);
|
||||
if (hFind == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
DWORD Error = GetLastError();
|
||||
if ((Error != ERROR_DIRECTORY) &&
|
||||
(Error != ERROR_SHARING_VIOLATION) &&
|
||||
(Error != ERROR_FILE_NOT_FOUND))
|
||||
Error = GetLastError();
|
||||
if ((Error != ERROR_DIRECTORY) && (Error != ERROR_SHARING_VIOLATION)
|
||||
&& (Error != ERROR_FILE_NOT_FOUND))
|
||||
{
|
||||
ErrorMessage(Error, EnumCtx->FullPathBuffer);
|
||||
ErrorMessage(Error, pszFile);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
BOOL bIsReparse;
|
||||
size_t offNewFilePart;
|
||||
|
||||
if (!(EnumCtx->findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
|
||||
if (!(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
|
||||
continue;
|
||||
|
||||
if (!wcscmp(findFileName, L".") || !wcscmp(findFileName, L".."))
|
||||
continue;
|
||||
|
||||
/* Allow at most 2 levels of reparse points / symbolic links */
|
||||
bIsReparse = !!(EnumCtx->findData.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT);
|
||||
if (bIsReparse)
|
||||
if (!wcscmp(findData.cFileName, L".") ||
|
||||
!wcscmp(findData.cFileName, L".."))
|
||||
{
|
||||
if (EnumCtx->uReparseLevel < 2)
|
||||
EnumCtx->uReparseLevel++;
|
||||
else
|
||||
continue;
|
||||
continue;
|
||||
}
|
||||
|
||||
hRes = StringCchPrintfExW(pFilePart, cchRemaining,
|
||||
NULL, &offNewFilePart, 0,
|
||||
L"%s\\", findFileName);
|
||||
/* Offset to the new file name part */
|
||||
offNewFilePart = EnumCtx->cchBuffer - offNewFilePart;
|
||||
|
||||
bFound |= EnumFilesWorker(EnumCtx, offNewFilePart);
|
||||
|
||||
/* Recalculate the file part pointer and the number of characters
|
||||
* remaining: the buffer may have been enlarged and relocated. */
|
||||
pFilePart = EnumCtx->FullPathBuffer + offFilePart;
|
||||
cchRemaining = EnumCtx->cchBuffer - offFilePart;
|
||||
|
||||
/* If we went through a reparse point / symbolic link, decrease level */
|
||||
if (bIsReparse)
|
||||
EnumCtx->uReparseLevel--;
|
||||
wcscpy(pszFileName, findData.cFileName);
|
||||
wcscat(pszFileName, L"\\");
|
||||
bFound |= PrintAttribute(szFullName, pszFile, bRecurse, bDirectories);
|
||||
}
|
||||
while (FindNextFileW(hFind, &EnumCtx->findData));
|
||||
while (FindNextFileW(hFind, &findData));
|
||||
FindClose(hFind);
|
||||
}
|
||||
|
||||
/* Append the file name pattern to search for */
|
||||
hRes = StringCchCopyW(pFilePart, cchRemaining, EnumCtx->FileName);
|
||||
/* append file name */
|
||||
wcscpy(pszFileName, pszFile);
|
||||
|
||||
/* Search in the current directory */
|
||||
hFind = FindFirstFileW(EnumCtx->FullPathBuffer, &EnumCtx->findData);
|
||||
/* search current directory */
|
||||
hFind = FindFirstFileW(szFullName, &findData);
|
||||
if (hFind == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
return bFound;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
BOOL bIsDir = !!(EnumCtx->findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
|
||||
BOOL bExactMatch = (_wcsicmp(findFileName, EnumCtx->FileName) == 0);
|
||||
bIsDir = findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
|
||||
bExactMatch = wcsicmp(findData.cFileName, pszFile) == 0;
|
||||
|
||||
if (bIsDir && !(EnumCtx->Flags & ENUM_DIRECTORIES) && !bExactMatch)
|
||||
if (bIsDir && !bDirectories && !bExactMatch)
|
||||
continue;
|
||||
|
||||
if (!wcscmp(findFileName, L".") || !wcscmp(findFileName, L".."))
|
||||
if (!wcscmp(findData.cFileName, L".") ||
|
||||
!wcscmp(findData.cFileName, L".."))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
/* If we recursively enumerate files excluding directories,
|
||||
* exclude any directory from the enumeration. */
|
||||
if (bIsDir && !(EnumCtx->Flags & ENUM_DIRECTORIES) && (EnumCtx->Flags & ENUM_RECURSE))
|
||||
continue;
|
||||
wcscpy(pszFileName, findData.cFileName);
|
||||
|
||||
StringCchCopyW(pFilePart, cchRemaining, findFileName);
|
||||
/* bFound = */ EnumCtx->Callback(&EnumCtx->findData, EnumCtx->FullPathBuffer, EnumCtx->Context);
|
||||
ConPrintf(StdOut,
|
||||
L"%c %c%c%c %s\n",
|
||||
(findData.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) ? L'A' : L' ',
|
||||
(findData.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) ? L'S' : L' ',
|
||||
(findData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) ? L'H' : L' ',
|
||||
(findData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? L'R' : L' ',
|
||||
szFullName);
|
||||
bFound = TRUE;
|
||||
}
|
||||
while (FindNextFileW(hFind, &EnumCtx->findData));
|
||||
while (FindNextFileW(hFind, &findData));
|
||||
FindClose(hFind);
|
||||
|
||||
return bFound;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
AttribEnumFiles(
|
||||
_In_ PCWSTR pszPath,
|
||||
_In_ PCWSTR pszFile,
|
||||
_In_ DWORD fFlags,
|
||||
_In_ PATTRIBS_MASKS AttribsMasks)
|
||||
|
||||
/* Returns TRUE if anything changed, FALSE otherwise */
|
||||
static
|
||||
BOOL
|
||||
ChangeAttribute(
|
||||
LPWSTR pszPath,
|
||||
LPWSTR pszFile,
|
||||
BOOL bRecurse,
|
||||
BOOL bDirectories,
|
||||
DWORD dwMask,
|
||||
DWORD dwAttrib)
|
||||
{
|
||||
ENUMFILES_CTX EnumContext = {0};
|
||||
size_t offFilePart;
|
||||
HRESULT hRes;
|
||||
WIN32_FIND_DATAW findData;
|
||||
HANDLE hFind;
|
||||
WCHAR szFullName[MAX_PATH];
|
||||
LPWSTR pszFileName;
|
||||
BOOL bFound = FALSE;
|
||||
BOOL bIsDir;
|
||||
BOOL bExactMatch;
|
||||
DWORD dwAttribute;
|
||||
DWORD Error;
|
||||
|
||||
EnumContext.FileName = pszFile;
|
||||
EnumContext.Flags = fFlags;
|
||||
EnumContext.Callback = (AttribsMasks->dwMask == 0 ? PrintAttributes : ChangeAttributes);
|
||||
EnumContext.Context = (AttribsMasks->dwMask == 0 ? NULL : AttribsMasks);
|
||||
/* prepare full file name buffer */
|
||||
wcscpy(szFullName, pszPath);
|
||||
pszFileName = szFullName + wcslen(szFullName);
|
||||
|
||||
/* Prepare the full file path buffer */
|
||||
EnumContext.cchBuffer = _countof(EnumContext.FullPathBuffer);
|
||||
hRes = StringCchCopyExW(EnumContext.FullPathBuffer,
|
||||
EnumContext.cchBuffer,
|
||||
pszPath,
|
||||
NULL,
|
||||
&offFilePart,
|
||||
0);
|
||||
if (hRes != S_OK)
|
||||
return FALSE;
|
||||
|
||||
/* Offset to the file name part */
|
||||
offFilePart = EnumContext.cchBuffer - offFilePart;
|
||||
if (EnumContext.FullPathBuffer[offFilePart - 1] != L'\\')
|
||||
/* display all subdirectories */
|
||||
if (bRecurse)
|
||||
{
|
||||
EnumContext.FullPathBuffer[offFilePart] = L'\\';
|
||||
EnumContext.FullPathBuffer[offFilePart + 1] = UNICODE_NULL;
|
||||
offFilePart++;
|
||||
/* append *.* */
|
||||
wcscpy(pszFileName, L"*.*");
|
||||
|
||||
hFind = FindFirstFileW(szFullName, &findData);
|
||||
if (hFind == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
Error = GetLastError();
|
||||
if ((Error != ERROR_DIRECTORY) && (Error != ERROR_SHARING_VIOLATION)
|
||||
&& (Error != ERROR_FILE_NOT_FOUND))
|
||||
{
|
||||
ErrorMessage(Error, pszFile);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
if (!(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
|
||||
continue;
|
||||
|
||||
if (!wcscmp(findData.cFileName, L".") ||
|
||||
!wcscmp(findData.cFileName, L".."))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
wcscpy(pszFileName, findData.cFileName);
|
||||
wcscat(pszFileName, L"\\");
|
||||
bFound |= ChangeAttribute(szFullName, pszFile, bRecurse, bDirectories,
|
||||
dwMask, dwAttrib);
|
||||
}
|
||||
while (FindNextFileW(hFind, &findData));
|
||||
FindClose(hFind);
|
||||
}
|
||||
|
||||
return EnumFilesWorker(&EnumContext, offFilePart);
|
||||
/* append file name */
|
||||
wcscpy(pszFileName, pszFile);
|
||||
|
||||
/* search current directory */
|
||||
hFind = FindFirstFileW(szFullName, &findData);
|
||||
if (hFind == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
return bFound;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
bIsDir = findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
|
||||
bExactMatch = wcsicmp(findData.cFileName, pszFile) == 0;
|
||||
|
||||
if (bIsDir && !bDirectories && !bExactMatch)
|
||||
continue;
|
||||
|
||||
if (!wcscmp(findData.cFileName, L".") ||
|
||||
!wcscmp(findData.cFileName, L".."))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (bRecurse && bIsDir && !bDirectories)
|
||||
continue;
|
||||
|
||||
wcscpy(pszFileName, findData.cFileName);
|
||||
|
||||
dwAttribute = (findData.dwFileAttributes & ~dwMask) | dwAttrib;
|
||||
|
||||
SetFileAttributes(szFullName, dwAttribute);
|
||||
bFound = TRUE;
|
||||
}
|
||||
while (FindNextFileW(hFind, &findData));
|
||||
FindClose(hFind);
|
||||
|
||||
return bFound;
|
||||
}
|
||||
|
||||
int wmain(int argc, WCHAR *argv[])
|
||||
{
|
||||
INT i;
|
||||
DWORD dwEnumFlags = 0;
|
||||
ATTRIBS_MASKS AttribsMasks = {0};
|
||||
BOOL bRecurse = FALSE;
|
||||
BOOL bDirectories = FALSE;
|
||||
DWORD dwAttrib = 0;
|
||||
DWORD dwMask = 0;
|
||||
BOOL bFound = FALSE;
|
||||
PWSTR pszFileName;
|
||||
WCHAR szFilePath[MAX_PATH + 2] = L""; // + 2 to reserve an extra path separator and a NULL-terminator.
|
||||
@@ -330,10 +308,10 @@ int wmain(int argc, WCHAR *argv[])
|
||||
}
|
||||
else
|
||||
/* Retrieve the enumeration modes */
|
||||
if (_wcsicmp(argv[i], L"/s") == 0)
|
||||
dwEnumFlags |= ENUM_RECURSE;
|
||||
else if (_wcsicmp(argv[i], L"/d") == 0)
|
||||
dwEnumFlags |= ENUM_DIRECTORIES;
|
||||
if (wcsicmp(argv[i], L"/s") == 0)
|
||||
bRecurse = TRUE;
|
||||
else if (wcsicmp(argv[i], L"/d") == 0)
|
||||
bDirectories = TRUE;
|
||||
else
|
||||
{
|
||||
/* Unknown option */
|
||||
@@ -356,47 +334,37 @@ int wmain(int argc, WCHAR *argv[])
|
||||
switch (towupper(argv[i][1]))
|
||||
{
|
||||
case L'A':
|
||||
AttribsMasks.dwMask |= FILE_ATTRIBUTE_ARCHIVE;
|
||||
dwMask |= FILE_ATTRIBUTE_ARCHIVE;
|
||||
if (bAdd)
|
||||
AttribsMasks.dwAttrib |= FILE_ATTRIBUTE_ARCHIVE;
|
||||
dwAttrib |= FILE_ATTRIBUTE_ARCHIVE;
|
||||
else
|
||||
AttribsMasks.dwAttrib &= ~FILE_ATTRIBUTE_ARCHIVE;
|
||||
dwAttrib &= ~FILE_ATTRIBUTE_ARCHIVE;
|
||||
break;
|
||||
|
||||
case L'S':
|
||||
AttribsMasks.dwMask |= FILE_ATTRIBUTE_SYSTEM;
|
||||
dwMask |= FILE_ATTRIBUTE_SYSTEM;
|
||||
if (bAdd)
|
||||
AttribsMasks.dwAttrib |= FILE_ATTRIBUTE_SYSTEM;
|
||||
dwAttrib |= FILE_ATTRIBUTE_SYSTEM;
|
||||
else
|
||||
AttribsMasks.dwAttrib &= ~FILE_ATTRIBUTE_SYSTEM;
|
||||
dwAttrib &= ~FILE_ATTRIBUTE_SYSTEM;
|
||||
break;
|
||||
|
||||
case L'H':
|
||||
AttribsMasks.dwMask |= FILE_ATTRIBUTE_HIDDEN;
|
||||
dwMask |= FILE_ATTRIBUTE_HIDDEN;
|
||||
if (bAdd)
|
||||
AttribsMasks.dwAttrib |= FILE_ATTRIBUTE_HIDDEN;
|
||||
dwAttrib |= FILE_ATTRIBUTE_HIDDEN;
|
||||
else
|
||||
AttribsMasks.dwAttrib &= ~FILE_ATTRIBUTE_HIDDEN;
|
||||
dwAttrib &= ~FILE_ATTRIBUTE_HIDDEN;
|
||||
break;
|
||||
|
||||
case L'R':
|
||||
AttribsMasks.dwMask |= FILE_ATTRIBUTE_READONLY;
|
||||
dwMask |= FILE_ATTRIBUTE_READONLY;
|
||||
if (bAdd)
|
||||
AttribsMasks.dwAttrib |= FILE_ATTRIBUTE_READONLY;
|
||||
dwAttrib |= FILE_ATTRIBUTE_READONLY;
|
||||
else
|
||||
AttribsMasks.dwAttrib &= ~FILE_ATTRIBUTE_READONLY;
|
||||
dwAttrib &= ~FILE_ATTRIBUTE_READONLY;
|
||||
break;
|
||||
|
||||
#ifdef EXTENDED_ATTRIBUTES
|
||||
case L'I':
|
||||
AttribsMasks.dwMask |= FILE_ATTRIBUTE_NOT_CONTENT_INDEXED;
|
||||
if (bAdd)
|
||||
AttribsMasks.dwAttrib |= FILE_ATTRIBUTE_NOT_CONTENT_INDEXED;
|
||||
else
|
||||
AttribsMasks.dwAttrib &= ~FILE_ATTRIBUTE_NOT_CONTENT_INDEXED;
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
ConResPrintf(StdErr, STRING_ERROR_INVALID_PARAM_FORMAT, argv[i]);
|
||||
return -1;
|
||||
@@ -412,10 +380,19 @@ int wmain(int argc, WCHAR *argv[])
|
||||
/* If no file specification was found, operate on all files of the current directory */
|
||||
if (!bFound)
|
||||
{
|
||||
GetCurrentDirectoryW(_countof(szFilePath) - 2, szFilePath);
|
||||
pszFileName = ALL_FILES_PATTERN;
|
||||
DWORD len = GetCurrentDirectoryW(_countof(szFilePath) - 2, szFilePath);
|
||||
if (szFilePath[len - 1] != L'\\')
|
||||
{
|
||||
szFilePath[len] = L'\\';
|
||||
szFilePath[len + 1] = UNICODE_NULL;
|
||||
}
|
||||
pszFileName = L"*.*";
|
||||
|
||||
if (dwMask == 0)
|
||||
bFound = PrintAttribute(szFilePath, pszFileName, bRecurse, bDirectories);
|
||||
else
|
||||
bFound = ChangeAttribute(szFilePath, pszFileName, bRecurse, bDirectories, dwMask, dwAttrib);
|
||||
|
||||
bFound = AttribEnumFiles(szFilePath, pszFileName, dwEnumFlags, &AttribsMasks);
|
||||
if (!bFound)
|
||||
ConResPrintf(StdOut, STRING_FILE_NOT_FOUND, pszFileName);
|
||||
|
||||
@@ -442,7 +419,11 @@ int wmain(int argc, WCHAR *argv[])
|
||||
pszFileName = L"";
|
||||
}
|
||||
|
||||
bFound = AttribEnumFiles(szFilePath, pszFileName, dwEnumFlags, &AttribsMasks);
|
||||
if (dwMask == 0)
|
||||
bFound = PrintAttribute(szFilePath, pszFileName, bRecurse, bDirectories);
|
||||
else
|
||||
bFound = ChangeAttribute(szFilePath, pszFileName, bRecurse, bDirectories, dwMask, dwAttrib);
|
||||
|
||||
if (!bFound)
|
||||
ConResPrintf(StdOut, STRING_FILE_NOT_FOUND, argv[i]);
|
||||
}
|
||||
|
@@ -3,7 +3,6 @@
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: Romanian resource file
|
||||
* TRANSLATORS: Copyright 2011-2014 Ștefan Fulea <stefan.fulea@mail.com>
|
||||
* Copyright 2023 Andrei Miloiu <miloiuandrei@gmail.com>
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
@@ -24,6 +23,6 @@ ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] fișier ...\n\
|
||||
Tastați ATTRIB fără argumente pentru afișarea atributelor pentru\n\
|
||||
toate fișierele.\n"
|
||||
STRING_CONSOLE_ERROR "Eroare necunoscută: %d\n"
|
||||
STRING_FILE_NOT_FOUND "Fișierul nu a fost găsit - '%s'\n"
|
||||
STRING_FILE_NOT_FOUND "File not found - '%s'\n"
|
||||
STRING_ERROR_INVALID_PARAM_FORMAT "Formatul argumentului este eronat - %s\n"
|
||||
END
|
||||
|
@@ -26,6 +26,6 @@ ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] файл ...\n\
|
||||
/D Обработка и файлов, и папок.\n\n\
|
||||
Команда ATTRIB без параметров выводит атрибуты всех файлов.\n"
|
||||
STRING_CONSOLE_ERROR "Неизвестная ошибка: %d\n"
|
||||
STRING_FILE_NOT_FOUND "Файл не найден - '%s'\n"
|
||||
STRING_FILE_NOT_FOUND "File not found - '%s'\n"
|
||||
STRING_ERROR_INVALID_PARAM_FORMAT "Неверный формат параметра - %s\n"
|
||||
END
|
||||
|
@@ -2,14 +2,12 @@
|
||||
include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/conutils)
|
||||
|
||||
list(APPEND SOURCE
|
||||
asn.cpp
|
||||
certutil.cpp
|
||||
hashfile.cpp
|
||||
certutil.c
|
||||
precomp.h)
|
||||
|
||||
add_executable(certutil ${SOURCE})
|
||||
set_module_type(certutil win32cui UNICODE)
|
||||
target_link_libraries(certutil conutils ${PSEH_LIB})
|
||||
add_importlibs(certutil crypt32 advapi32 msvcrt kernel32)
|
||||
add_importlibs(certutil advapi32 msvcrt kernel32)
|
||||
add_pch(certutil precomp.h SOURCE)
|
||||
add_cd_file(TARGET certutil DESTINATION reactos/system32 FOR all)
|
||||
|
@@ -1,508 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS certutil
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: CertUtil asn implementation
|
||||
* COPYRIGHT: Copyright 2020 Mark Jansen (mark.jansen@reactos.org)
|
||||
*
|
||||
* NOTES:
|
||||
* To keep it simple, Tag and Class are combined in one identifier
|
||||
* See for more details:
|
||||
* https://en.wikipedia.org/wiki/X.690#BER_encoding
|
||||
* https://www.strozhevsky.com/free_docs/asn1_by_simple_words.pdf
|
||||
* http://mikk.net/~chris/asn1.pdf
|
||||
*
|
||||
* And for a test suite:
|
||||
* https://github.com/YuryStrozhevsky/asn1-test-suite
|
||||
*/
|
||||
|
||||
#include "precomp.h"
|
||||
#include <math.h>
|
||||
#include <wincrypt.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
#define ASN_TAG_IS_CONSTRUCTED 0x20
|
||||
|
||||
|
||||
#define ASN_TAG_BITSTRING 0x03
|
||||
#define ASN_TAG_OCTET_STRING 0x04
|
||||
#define ASN_TAG_OBJECT_ID 0x06
|
||||
|
||||
#define ASN_TAG_SEQUENCE_RAW 0x10
|
||||
#define ASN_TAG_SET_RAW 0x11
|
||||
|
||||
#define ASN_TAG_SEQUENCE 0x30
|
||||
#define ASN_TAG_SET 0x31
|
||||
|
||||
|
||||
#define ASN_TAG_CONTEXT_SPECIFIC 0x80
|
||||
#define ASN_TAG_CONTEXT_SPECIFIC_N(n) (ASN_TAG_CONTEXT_SPECIFIC | (n))
|
||||
|
||||
#define ASN_TAG_OPTIONAL 0xA0
|
||||
#define ASN_TAG_OPTIONAL_N(n) (ASN_TAG_OPTIONAL | (n))
|
||||
|
||||
/* NOTE: These names are not the names listed in f.e. the wikipedia pages,
|
||||
they are made to look like MS's names for this */
|
||||
LPCWSTR TagToName(DWORD dwTag)
|
||||
{
|
||||
switch (dwTag)
|
||||
{
|
||||
case 0x0: return L"EOC";
|
||||
case 0x1: return L"BOOL";
|
||||
case 0x2: return L"INTEGER";
|
||||
case ASN_TAG_BITSTRING: return L"BIT_STRING";
|
||||
case ASN_TAG_OCTET_STRING: return L"OCTET_STRING";
|
||||
case 0x5: return L"NULL";
|
||||
case ASN_TAG_OBJECT_ID: return L"OBJECT_ID";
|
||||
case 0x7: return L"Object Descriptor";
|
||||
case 0x8: return L"EXTERNAL";
|
||||
case 0x9: return L"REAL";
|
||||
case 0xA: return L"ENUMERATED";
|
||||
case 0xB: return L"EMBEDDED PDV";
|
||||
case 0xC: return L"UTF8String";
|
||||
case 0xD: return L"RELATIVE-OID";
|
||||
case 0xE: return L"TIME";
|
||||
case 0xF: return L"Reserved";
|
||||
case ASN_TAG_SEQUENCE_RAW: __debugbreak(); return L"SEQUENCE_RAW";
|
||||
case ASN_TAG_SET_RAW: __debugbreak(); return L"SET_RAW";
|
||||
case 0x12: return L"NumericString";
|
||||
case 0x13: return L"PRINTABLE_STRING";
|
||||
case 0x14: return L"T61String";
|
||||
case 0x15: return L"VideotexString";
|
||||
case 0x16: return L"IA5String";
|
||||
case 0x17: return L"UTC_TIME";
|
||||
case 0x18: return L"GeneralizedTime";
|
||||
case 0x19: return L"GraphicString";
|
||||
case 0x1A: return L"VisibleString";
|
||||
case 0x1B: return L"GeneralString";
|
||||
case 0x1C: return L"UniversalString";
|
||||
case 0x1D: return L"CHARACTER STRING";
|
||||
case 0x1E: return L"BMPString";
|
||||
case 0x1F: return L"DATE";
|
||||
case 0x20: return L"CONSTRUCTED";
|
||||
|
||||
case ASN_TAG_SEQUENCE: return L"SEQUENCE";
|
||||
case ASN_TAG_SET: return L"SET";
|
||||
|
||||
|
||||
case ASN_TAG_CONTEXT_SPECIFIC_N(0): return L"CONTEXT_SPECIFIC[0]";
|
||||
case ASN_TAG_CONTEXT_SPECIFIC_N(1): return L"CONTEXT_SPECIFIC[1]";
|
||||
case ASN_TAG_CONTEXT_SPECIFIC_N(2): return L"CONTEXT_SPECIFIC[2]";
|
||||
case ASN_TAG_CONTEXT_SPECIFIC_N(3): return L"CONTEXT_SPECIFIC[3]";
|
||||
case ASN_TAG_CONTEXT_SPECIFIC_N(4): return L"CONTEXT_SPECIFIC[4]";
|
||||
case ASN_TAG_CONTEXT_SPECIFIC_N(5): return L"CONTEXT_SPECIFIC[5]";
|
||||
case ASN_TAG_CONTEXT_SPECIFIC_N(6): return L"CONTEXT_SPECIFIC[6]";
|
||||
case ASN_TAG_CONTEXT_SPECIFIC_N(7): return L"CONTEXT_SPECIFIC[7]";
|
||||
case ASN_TAG_CONTEXT_SPECIFIC_N(8): return L"CONTEXT_SPECIFIC[8]";
|
||||
case ASN_TAG_CONTEXT_SPECIFIC_N(9): return L"CONTEXT_SPECIFIC[9]";
|
||||
/* Experiments show that Windows' certutil only goes up to 9 */
|
||||
|
||||
|
||||
case ASN_TAG_OPTIONAL_N(0): return L"OPTIONAL[0]";
|
||||
case ASN_TAG_OPTIONAL_N(1): return L"OPTIONAL[1]";
|
||||
case ASN_TAG_OPTIONAL_N(2): return L"OPTIONAL[2]";
|
||||
case ASN_TAG_OPTIONAL_N(3): return L"OPTIONAL[3]";
|
||||
case ASN_TAG_OPTIONAL_N(4): return L"OPTIONAL[4]";
|
||||
case ASN_TAG_OPTIONAL_N(5): return L"OPTIONAL[5]";
|
||||
case ASN_TAG_OPTIONAL_N(6): return L"OPTIONAL[6]";
|
||||
case ASN_TAG_OPTIONAL_N(7): return L"OPTIONAL[7]";
|
||||
case ASN_TAG_OPTIONAL_N(8): return L"OPTIONAL[8]";
|
||||
case ASN_TAG_OPTIONAL_N(9): return L"OPTIONAL[9]";
|
||||
/* Experiments show that Windows' certutil only goes up to 9 */
|
||||
|
||||
default:
|
||||
return L"???";
|
||||
}
|
||||
}
|
||||
|
||||
BOOL Move(DWORD dwLen, PBYTE& pData, DWORD& dwSize)
|
||||
{
|
||||
if (dwSize < dwLen)
|
||||
return FALSE;
|
||||
|
||||
pData += dwLen;
|
||||
dwSize -= dwLen;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ParseTag(PBYTE& pData, DWORD& dwSize, DWORD& dwTagAndClass)
|
||||
{
|
||||
if (dwSize == 0)
|
||||
return FALSE;
|
||||
|
||||
/* Is this a long form? */
|
||||
if ((pData[0] & 0x1f) != 0x1f)
|
||||
{
|
||||
/* No, so extract the tag and class (in one identifier) */
|
||||
dwTagAndClass = pData[0];
|
||||
return Move(1, pData, dwSize);
|
||||
}
|
||||
|
||||
DWORD dwClass = (pData[0] & 0xE0) >> 5;
|
||||
dwTagAndClass = 0;
|
||||
DWORD n;
|
||||
for (n = 1; n < dwSize; ++n)
|
||||
{
|
||||
dwTagAndClass <<= 7;
|
||||
dwTagAndClass |= (pData[n] & 0x7f);
|
||||
|
||||
if (!(pData[n] & 0x80))
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Move(n, pData, dwSize);
|
||||
|
||||
/* Any number bigger than this, we shift data out! */
|
||||
if (n > 4)
|
||||
return FALSE;
|
||||
|
||||
/* Just drop this in the hightest bits*/
|
||||
dwTagAndClass |= (dwClass << (32-3));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ParseLength(PBYTE& pData, DWORD& dwSize, DWORD& dwLength)
|
||||
{
|
||||
if (dwSize == 0)
|
||||
return FALSE;
|
||||
|
||||
if (!(pData[0] & 0x80))
|
||||
{
|
||||
dwLength = pData[0];
|
||||
return Move(1, pData, dwSize);
|
||||
}
|
||||
|
||||
DWORD dwBytes = pData[0] & 0x7f;
|
||||
if (dwBytes == 0 || dwBytes > 8 || dwBytes + 1 > dwSize)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
dwLength = 0;
|
||||
for (DWORD n = 0; n < dwBytes; ++n)
|
||||
{
|
||||
dwLength <<= 8;
|
||||
dwLength += pData[1 + n];
|
||||
}
|
||||
|
||||
return Move(dwBytes + 1, pData, dwSize);
|
||||
}
|
||||
|
||||
|
||||
DWORD HexDump(PBYTE pRoot, PBYTE pData, DWORD dwSize, PWSTR wszPrefix)
|
||||
{
|
||||
while (TRUE)
|
||||
{
|
||||
SIZE_T Address = pData - pRoot;
|
||||
ConPrintf(StdOut, L"%04x: ", Address);
|
||||
ConPuts(StdOut, wszPrefix);
|
||||
|
||||
for (DWORD n = 0; n < min(dwSize, 0x10); ++n)
|
||||
{
|
||||
ConPrintf(StdOut, L"%02x ", pData[n]);
|
||||
}
|
||||
|
||||
if (dwSize <= 0x10)
|
||||
break;
|
||||
|
||||
Move(0x10, pData, dwSize);
|
||||
ConPuts(StdOut, L"\n");
|
||||
}
|
||||
|
||||
return 3 * dwSize;
|
||||
}
|
||||
|
||||
void PrintTag(PBYTE pRoot, PBYTE pHeader, DWORD dwTag, DWORD dwTagLength, PBYTE pData, PWSTR wszPrefix)
|
||||
{
|
||||
DWORD dwRemainder = HexDump(pRoot, pHeader, pData - pHeader, wszPrefix);
|
||||
|
||||
LPCWSTR wszTag = TagToName(dwTag);
|
||||
DWORD dwPadding = dwRemainder + wcslen(wszPrefix);
|
||||
while (dwPadding > 50)
|
||||
dwPadding -= 50;
|
||||
ConPrintf(StdOut, L"%*s; %s (%x Bytes)\n", 50 - dwPadding, L"", wszTag, dwTagLength);
|
||||
}
|
||||
|
||||
struct OID_NAMES
|
||||
{
|
||||
CHAR* Oid;
|
||||
LPCWSTR Names[20];
|
||||
DWORD NumberOfNames;
|
||||
};
|
||||
|
||||
BOOL WINAPI CryptOIDEnumCallback(_In_ PCCRYPT_OID_INFO pInfo, _Inout_opt_ void *pvArg)
|
||||
{
|
||||
OID_NAMES* Names = (OID_NAMES*)pvArg;
|
||||
|
||||
if (pInfo && pInfo->pszOID && !_stricmp(pInfo->pszOID, Names->Oid))
|
||||
{
|
||||
if (Names->NumberOfNames < RTL_NUMBER_OF(Names->Names))
|
||||
{
|
||||
for (DWORD n = 0; n < Names->NumberOfNames; ++n)
|
||||
{
|
||||
// We already have this..
|
||||
if (!_wcsicmp(Names->Names[n], pInfo->pwszName))
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
Names->Names[Names->NumberOfNames++] = pInfo->pwszName;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void PrintOID(PBYTE pRoot, PBYTE pHeader, PBYTE pData, DWORD dwSize, PWSTR wszPrefix)
|
||||
{
|
||||
/* CryptFindOIDInfo expects the OID to be in ANSI.. */
|
||||
CHAR szOID[250];
|
||||
CHAR* ptr = szOID;
|
||||
size_t cchRemaining = RTL_NUMBER_OF(szOID);
|
||||
|
||||
/* CryptFindOIDInfo just returns the first, we want multiple */
|
||||
OID_NAMES Names = {0};
|
||||
|
||||
if (dwSize == 0)
|
||||
return;
|
||||
|
||||
DWORD dwValue = 0, count = 0;
|
||||
for (DWORD n = 0; n < dwSize; ++n)
|
||||
{
|
||||
dwValue <<= 7;
|
||||
dwValue |= pData[n] & 0x7f;
|
||||
|
||||
if (pData[n] & 0x80)
|
||||
{
|
||||
if (++count >= 4)
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
count = 0;
|
||||
|
||||
/* First & second octet have a special encoding */
|
||||
if (ptr == szOID)
|
||||
{
|
||||
DWORD id1 = dwValue / 40;
|
||||
DWORD id2 = dwValue % 40;
|
||||
|
||||
/* The first one can only be 0, 1 or 2, so handle special case: tc24.ber */
|
||||
if (id1 > 2)
|
||||
{
|
||||
id2 += (id1 - 2) * 40;
|
||||
id1 = 2;
|
||||
}
|
||||
StringCchPrintfExA(ptr, cchRemaining, &ptr, &cchRemaining, 0, "%d.%d", id1, id2);
|
||||
}
|
||||
else
|
||||
{
|
||||
StringCchPrintfExA(ptr, cchRemaining, &ptr, &cchRemaining, 0, ".%d", dwValue);
|
||||
}
|
||||
|
||||
dwValue = 0;
|
||||
}
|
||||
|
||||
if (dwValue || count)
|
||||
{
|
||||
/* We cannot format this, so just add abort */
|
||||
return;
|
||||
}
|
||||
|
||||
SIZE_T Address = pData - pRoot;
|
||||
/* Pad with spaces instead of printing the address again */
|
||||
DWORD addrDigits = (DWORD)log10((double)Address) + 1;
|
||||
ConPrintf(StdOut, L"%*s ", max(addrDigits, 4), L"");
|
||||
ConPrintf(StdOut, L"%s; %S", wszPrefix, szOID);
|
||||
|
||||
Names.Oid = szOID;
|
||||
|
||||
/* The order does not match a naive call with '0'... */
|
||||
CryptEnumOIDInfo(0, 0, &Names, CryptOIDEnumCallback);
|
||||
|
||||
for (DWORD n = 0; n < Names.NumberOfNames; ++n)
|
||||
{
|
||||
if (n == 0)
|
||||
ConPrintf(StdOut, L" %s", Names.Names[n]);
|
||||
else if (n == 1)
|
||||
ConPrintf(StdOut, L" (%s", Names.Names[n]);
|
||||
else
|
||||
ConPrintf(StdOut, L" / %s", Names.Names[n]);
|
||||
}
|
||||
|
||||
ConPrintf(StdOut, L"%s\n", Names.NumberOfNames > 1 ? L")" : L"");
|
||||
}
|
||||
|
||||
|
||||
BOOL ParseAsn(PBYTE pRoot, PBYTE pData, DWORD dwSize, PWSTR wszPrefix, BOOL fPrint)
|
||||
{
|
||||
while (dwSize)
|
||||
{
|
||||
PBYTE pHeader = pData;
|
||||
DWORD dwTagAndClass;
|
||||
|
||||
if (!ParseTag(pData, dwSize, dwTagAndClass))
|
||||
{
|
||||
if (fPrint)
|
||||
ConPrintf(StdOut, L"CertUtil: -asn command failed to parse tag near 0x%x\n", pHeader - pRoot);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
DWORD dwTagLength;
|
||||
if (!ParseLength(pData, dwSize, dwTagLength))
|
||||
{
|
||||
if (fPrint)
|
||||
ConPrintf(StdOut, L"CertUtil: -asn command failed to parse tag length near 0x%x\n", pHeader - pRoot);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (dwTagLength > dwSize)
|
||||
{
|
||||
if (fPrint)
|
||||
ConPrintf(StdOut, L"CertUtil: -asn command malformed tag length near 0x%x\n", pHeader - pRoot);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
if (fPrint)
|
||||
PrintTag(pRoot, pHeader, dwTagAndClass, dwTagLength, pData, wszPrefix);
|
||||
|
||||
size_t len = wcslen(wszPrefix);
|
||||
StringCchCatW(wszPrefix, MAX_PATH, dwTagLength != dwSize ? L"| " : L" ");
|
||||
|
||||
if (dwTagAndClass & ASN_TAG_IS_CONSTRUCTED)
|
||||
{
|
||||
if (!ParseAsn(pRoot, pData, dwTagLength, wszPrefix, fPrint))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (fPrint)
|
||||
{
|
||||
/* Special case for a bit string / octet string */
|
||||
if ((dwTagAndClass == ASN_TAG_BITSTRING || dwTagAndClass == ASN_TAG_OCTET_STRING) && dwTagLength)
|
||||
{
|
||||
if (dwTagAndClass == ASN_TAG_BITSTRING)
|
||||
{
|
||||
/* First, we print the 'unused bits' field of the bit string */
|
||||
HexDump(pRoot, pData, 1, wszPrefix);
|
||||
ConPuts(StdOut, L"\n");
|
||||
|
||||
/* Move past it */
|
||||
Move(1, pData, dwSize);
|
||||
dwTagLength--;
|
||||
}
|
||||
|
||||
/* Do we have any data left? */
|
||||
if (dwTagLength)
|
||||
{
|
||||
/* Try to parse this as ASN */
|
||||
if (ParseAsn(pRoot, pData, dwTagLength, wszPrefix, FALSE))
|
||||
{
|
||||
/* We succeeded, this _could_ be ASN, so display it as if it is */
|
||||
if (!ParseAsn(pRoot, pData, dwTagLength, wszPrefix, TRUE))
|
||||
{
|
||||
/* Uhhh, did someone edit the data? */
|
||||
ConPrintf(StdOut, L"CertUtil: -asn command unexpected failure parsing tag near 0x%x\n", pData - pRoot);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Move past what we just parsed */
|
||||
Move(dwTagLength, pData, dwSize);
|
||||
/* Lie about this so that we don't also print a hexdump */
|
||||
dwTagLength = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Is there any data (left) to print? */
|
||||
if (dwTagLength)
|
||||
{
|
||||
HexDump(pRoot, pData, dwTagLength, wszPrefix);
|
||||
ConPuts(StdOut, L"\n");
|
||||
|
||||
StringCchCatW(wszPrefix, MAX_PATH, L" ");
|
||||
|
||||
/* Do we have additional formatters? */
|
||||
switch (dwTagAndClass)
|
||||
{
|
||||
case ASN_TAG_OBJECT_ID:
|
||||
PrintOID(pRoot, pHeader, pData, dwTagLength, wszPrefix);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wszPrefix[len] = '\0';
|
||||
|
||||
if (!Move(dwTagLength, pData, dwSize))
|
||||
{
|
||||
/* This should not be possible, it was checked before! */
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL asn_dump(LPCWSTR Filename)
|
||||
{
|
||||
HANDLE hFile = CreateFileW(Filename, GENERIC_READ, FILE_SHARE_READ, NULL,
|
||||
OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
|
||||
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
ConPrintf(StdOut, L"CertUtil: -asn command failed to open: %d\n", GetLastError());
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
DWORD dwSize = GetFileSize(hFile, NULL);
|
||||
if (dwSize == INVALID_FILE_SIZE)
|
||||
{
|
||||
ConPrintf(StdOut, L"CertUtil: -asn command failed to get file size: %d\n", GetLastError());
|
||||
CloseHandle(hFile);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (dwSize == 0)
|
||||
{
|
||||
ConPrintf(StdOut, L"CertUtil: -asn command got an empty file\n");
|
||||
CloseHandle(hFile);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
PBYTE pData = (PBYTE)LocalAlloc(0, dwSize);
|
||||
if (!pData)
|
||||
{
|
||||
ConPrintf(StdOut, L"CertUtil: -asn command failed to allocate: %d\n", GetLastError());
|
||||
CloseHandle(hFile);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
DWORD cbRead;
|
||||
BOOL fRead = ReadFile(hFile, pData, dwSize, &cbRead, NULL);
|
||||
DWORD dwErr = GetLastError();
|
||||
CloseHandle(hFile);
|
||||
|
||||
if (!fRead || cbRead != dwSize)
|
||||
{
|
||||
ConPrintf(StdOut, L"CertUtil: -asn command failed to read: %d\n", dwErr);
|
||||
LocalFree(pData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
WCHAR Buffer[MAX_PATH] = {0};
|
||||
BOOL fSucceeded = ParseAsn(pData, pData, dwSize, Buffer, TRUE);
|
||||
|
||||
LocalFree(pData);
|
||||
return fSucceeded;
|
||||
}
|
||||
|
@@ -1,8 +1,10 @@
|
||||
/*
|
||||
* PROJECT: ReactOS certutil
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: CertUtil hashfile implementation
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: CertUtil stub
|
||||
* COPYRIGHT: Copyright 2020 Mark Jansen (mark.jansen@reactos.org)
|
||||
*
|
||||
* Note: Only -hashfile is implemented for now, the rest is not present!
|
||||
*/
|
||||
|
||||
#include "precomp.h"
|
||||
@@ -10,7 +12,7 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
BOOL hash_file(LPCWSTR Filename)
|
||||
static BOOL hash_file(LPCWSTR Filename)
|
||||
{
|
||||
HCRYPTPROV hProv;
|
||||
BOOL bSuccess = FALSE;
|
||||
@@ -85,3 +87,69 @@ BOOL hash_file(LPCWSTR Filename)
|
||||
return bSuccess;
|
||||
}
|
||||
|
||||
|
||||
static void print_usage()
|
||||
{
|
||||
ConPuts(StdOut, L"Verbs:\n");
|
||||
ConPuts(StdOut, L" -hashfile -- Display cryptographic hash over a file\n");
|
||||
ConPuts(StdOut, L"\n");
|
||||
ConPuts(StdOut, L"CertUtil -? -- Display a list of all verbs\n");
|
||||
ConPuts(StdOut, L"CertUtil -hashfile -? -- Display help text for the 'hashfile' verb\n");
|
||||
}
|
||||
|
||||
int wmain(int argc, WCHAR *argv[])
|
||||
{
|
||||
int n;
|
||||
|
||||
/* Initialize the Console Standard Streams */
|
||||
ConInitStdStreams();
|
||||
|
||||
if (argc == 1) /* i.e. no commandline arguments given */
|
||||
{
|
||||
print_usage();
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
for (n = 1; n < argc; ++n)
|
||||
{
|
||||
if (!_wcsicmp(argv[n], L"-?"))
|
||||
{
|
||||
print_usage();
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
else if (!_wcsicmp(argv[n], L"-hashfile"))
|
||||
{
|
||||
if (argc == 3)
|
||||
{
|
||||
if (!_wcsicmp(argv[n+1], L"-?"))
|
||||
{
|
||||
print_usage();
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!hash_file(argv[n+1]))
|
||||
{
|
||||
/* hash_file prints the failure itself */
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
ConPuts(StdOut, L"CertUtil: -hashfile command completed successfully\n");
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ConPrintf(StdOut, L"CertUtil: -hashfile expected 1 argument, got %d\n", argc - 2);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ConPrintf(StdOut, L"CertUtil: Unknown verb: %s\n", argv[n]);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
@@ -1,107 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS certutil
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: CertUtil commandline handling
|
||||
* COPYRIGHT: Copyright 2020 Mark Jansen (mark.jansen@reactos.org)
|
||||
*
|
||||
* Note: Only -hashfile and -asn are implemented for now, the rest is not present!
|
||||
*/
|
||||
|
||||
#include "precomp.h"
|
||||
#include <wincrypt.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
LPCWSTR Name;
|
||||
BOOL (*pfn)(LPCWSTR Filename);
|
||||
} Verb;
|
||||
|
||||
|
||||
Verb verbs[] = {
|
||||
{ L"hashfile", hash_file },
|
||||
{ L"asn", asn_dump },
|
||||
};
|
||||
|
||||
static void print_usage()
|
||||
{
|
||||
ConPuts(StdOut, L"Verbs:\n");
|
||||
ConPuts(StdOut, L" -hashfile -- Display cryptographic hash over a file\n");
|
||||
ConPuts(StdOut, L" -asn -- Display ASN.1 encoding of a file\n");
|
||||
ConPuts(StdOut, L"\n");
|
||||
ConPuts(StdOut, L"CertUtil -? -- Display a list of all verbs\n");
|
||||
ConPuts(StdOut, L"CertUtil -hashfile -? -- Display help text for the 'hashfile' verb\n");
|
||||
}
|
||||
|
||||
|
||||
Verb* MatchVerb(LPCWSTR arg)
|
||||
{
|
||||
if (arg[0] != '-' && arg[0] != '/')
|
||||
return NULL;
|
||||
|
||||
for (size_t n = 0; n < RTL_NUMBER_OF(verbs); ++n)
|
||||
{
|
||||
if (!_wcsicmp(verbs[n].Name, arg + 1))
|
||||
{
|
||||
return verbs + n;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int wmain(int argc, WCHAR *argv[])
|
||||
{
|
||||
int n;
|
||||
|
||||
/* Initialize the Console Standard Streams */
|
||||
ConInitStdStreams();
|
||||
|
||||
if (argc == 1) /* i.e. no commandline arguments given */
|
||||
{
|
||||
print_usage();
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
for (n = 1; n < argc; ++n)
|
||||
{
|
||||
if (!_wcsicmp(argv[n], L"-?"))
|
||||
{
|
||||
print_usage();
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
Verb* verb = MatchVerb(argv[n]);
|
||||
|
||||
if (verb)
|
||||
{
|
||||
if (argc != 3)
|
||||
{
|
||||
ConPrintf(StdOut, L"CertUtil: -%s expected 1 argument, got %d\n", verb->Name, argc - 2);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
if (!_wcsicmp(argv[n+1], L"-?"))
|
||||
{
|
||||
print_usage();
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
if (!verb->pfn(argv[n+1]))
|
||||
{
|
||||
/* The verb prints the failure */
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
ConPrintf(StdOut, L"CertUtil: -%s command completed successfully\n", verb->Name);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
ConPrintf(StdOut, L"CertUtil: Unknown verb: %s\n", argv[n]);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
@@ -7,14 +7,10 @@
|
||||
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <strsafe.h>
|
||||
#include <winreg.h>
|
||||
#include <winuser.h>
|
||||
|
||||
#include <conutils.h>
|
||||
|
||||
|
||||
BOOL hash_file(LPCWSTR Filename);
|
||||
BOOL asn_dump(LPCWSTR Filename);
|
||||
|
||||
|
||||
|
||||
#endif /* __CERTUTIL_PRECOMP_H */
|
||||
|
@@ -9,7 +9,7 @@ COMP [/L] [/A] [данные1] [данные2]\n\n\
|
||||
/A Вывод различий в формате ASCII (по умолчанию: шестнадцатиричный).\n\
|
||||
/L Вывод номеров строк, в которых обнаружены различия.\n"
|
||||
IDS_INVALIDSWITCH "Недопустимый ключ - /%c\n"
|
||||
IDS_BADSYNTAX "Неверный формат командной строки\n"
|
||||
IDS_BADSYNTAX "Не верный формат командной строки\n"
|
||||
IDS_FILEERROR "Не удалось найти/открыть файл: %s\n"
|
||||
IDS_COMPARING "Сравнение %s и %s...\n"
|
||||
IDS_FILESIZEERROR "Не удалось определить размер файла: %s\n"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
|
||||
add_definitions(-DCSCRIPT_BUILD)
|
||||
add_definitions(-DCSCRIPT_BUILD -D__WINESRC__)
|
||||
set(wscript_folder ${REACTOS_SOURCE_DIR}/base/applications/cmdutils/wscript)
|
||||
include_directories(${wscript_folder})
|
||||
|
||||
@@ -13,11 +13,9 @@ add_executable(cscript ${SOURCE} rsrc.rc)
|
||||
add_idl_headers(cscript_idlheader ihost.idl)
|
||||
add_typelib(ihost.idl)
|
||||
set_source_files_properties(rsrc.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ihost.tlb)
|
||||
target_link_libraries(cscript uuid wine oldnames)
|
||||
target_link_libraries(cscript uuid wine)
|
||||
set_module_type(cscript win32cui UNICODE)
|
||||
add_delay_importlibs(cscript shlwapi)
|
||||
add_importlibs(cscript shell32 oleaut32 ole32 advapi32 user32 msvcrt kernel32 ntdll)
|
||||
add_dependencies(cscript stdole2 cscript_idlheader)
|
||||
add_pch(cscript ${wscript_folder}/precomp.h SOURCE)
|
||||
add_cd_file(TARGET cscript DESTINATION reactos/system32 FOR all)
|
||||
set_wine_module_FIXME(cscript) # CORE-5743: No ARRAY_SIZE macro
|
||||
|
@@ -15,7 +15,28 @@
|
||||
#include <winbase.h>
|
||||
#include <winuser.h>
|
||||
#include <wincon.h>
|
||||
#include <wincon_undoc.h>
|
||||
|
||||
/* Console API functions which are absent from wincon.h */
|
||||
#define EXENAME_LENGTH (255 + 1)
|
||||
|
||||
VOID
|
||||
WINAPI
|
||||
ExpungeConsoleCommandHistoryW(LPCWSTR lpExeName);
|
||||
|
||||
DWORD
|
||||
WINAPI
|
||||
GetConsoleCommandHistoryW(LPWSTR lpHistory,
|
||||
DWORD cbHistory,
|
||||
LPCWSTR lpExeName);
|
||||
|
||||
DWORD
|
||||
WINAPI
|
||||
GetConsoleCommandHistoryLengthW(LPCWSTR lpExeName);
|
||||
|
||||
BOOL
|
||||
WINAPI
|
||||
SetConsoleNumberOfCommandsW(DWORD dwNumCommands,
|
||||
LPCWSTR lpExeName);
|
||||
|
||||
#include "doskey.h"
|
||||
|
||||
@@ -284,8 +305,8 @@ wmain(VOID)
|
||||
{
|
||||
pszExeName = RemoveQuotes(pArgStart + 9);
|
||||
}
|
||||
else if (!_wcsicmp(pArgStart, L"/H") ||
|
||||
!_wcsicmp(pArgStart, L"/HISTORY"))
|
||||
else if (!wcsicmp(pArgStart, L"/H") ||
|
||||
!wcsicmp(pArgStart, L"/HISTORY"))
|
||||
{
|
||||
PrintHistory();
|
||||
}
|
||||
@@ -293,20 +314,20 @@ wmain(VOID)
|
||||
{
|
||||
SetConsoleNumberOfCommandsW(_wtoi(pArgStart + 10), pszExeName);
|
||||
}
|
||||
else if (!_wcsicmp(pArgStart, L"/REINSTALL"))
|
||||
else if (!wcsicmp(pArgStart, L"/REINSTALL"))
|
||||
{
|
||||
ExpungeConsoleCommandHistoryW(pszExeName);
|
||||
}
|
||||
else if (!_wcsicmp(pArgStart, L"/INSERT"))
|
||||
else if (!wcsicmp(pArgStart, L"/INSERT"))
|
||||
{
|
||||
SetInsert(ENABLE_INSERT_MODE);
|
||||
}
|
||||
else if (!_wcsicmp(pArgStart, L"/OVERSTRIKE"))
|
||||
else if (!wcsicmp(pArgStart, L"/OVERSTRIKE"))
|
||||
{
|
||||
SetInsert(0);
|
||||
}
|
||||
else if (!_wcsicmp(pArgStart, L"/M") ||
|
||||
!_wcsicmp(pArgStart, L"/MACROS"))
|
||||
else if (!wcsicmp(pArgStart, L"/M") ||
|
||||
!wcsicmp(pArgStart, L"/MACROS"))
|
||||
{
|
||||
PrintMacros(pszExeName, L"");
|
||||
}
|
||||
@@ -314,7 +335,7 @@ wmain(VOID)
|
||||
!_wcsnicmp(pArgStart, L"/MACROS:", 8))
|
||||
{
|
||||
LPWSTR exe = RemoveQuotes(wcschr(pArgStart, L':') + 1);
|
||||
if (!_wcsicmp(exe, L"ALL"))
|
||||
if (!wcsicmp(exe, L"ALL"))
|
||||
PrintAllMacros();
|
||||
else
|
||||
PrintMacros(exe, L"");
|
||||
|
@@ -6,9 +6,7 @@
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "fc.exe"
|
||||
#include <reactos/version.rc>
|
||||
|
||||
/* UTF-8 */
|
||||
#pragma code_page(65001)
|
||||
|
||||
#pragma code_page(65001) /* UTF-8 */
|
||||
#ifdef LANGUAGE_BG_BG
|
||||
#include "lang/bg-BG.rc"
|
||||
#endif
|
||||
|
@@ -2,40 +2,40 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "Compare deux fichiers ou un ensemble de fichiers et affiche les différences\n\
|
||||
entre eux.\n\
|
||||
IDS_USAGE "Compares two files or sets of files and displays the differences between\n\
|
||||
them.\n\
|
||||
\n\
|
||||
FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W] [/nnnn]\n\
|
||||
[drive1:][path1]filename1 [drive2:][path2]filename2\n\
|
||||
FC /B [drive1:][path1]filename1 [drive2:][path2]filename2\n\
|
||||
\n\
|
||||
/A Affiche uniquement la première et la dernière ligne pour chaque ensemble de différences.\n\
|
||||
/B Effectue une comparaison binaire.\n\
|
||||
/C Ne tient pas compte de la casse des lettres.\n\
|
||||
/L Compare les fichiers sous forme de texte ASCII.\n\
|
||||
/LBn Définit le nombre maximal de différences consécutives\n\
|
||||
au nombre de lignes spécifié (par défaut : 100).\n\
|
||||
/N Affiche les numéros de ligne sur une comparaison ASCII.\n\
|
||||
/OFF[LINE] N'ignore pas les fichiers ayant l'attribut hors-ligne.\n\
|
||||
/T Ne transforme pas les tabulations en espaces (par défaut : transformer).\n\
|
||||
/U Compare les fichiers en tant que fichiers texte UNICODE.\n\
|
||||
/W Compresse les espaces blancs (tabulations et espaces) pour la comparaison.\n\
|
||||
/nnnn Spécifie le nombre de lignes consécutives qui doivent correspondre\n\
|
||||
après une différence (par défaut : 2).\n\
|
||||
/A Displays only first and last lines for each set of differences.\n\
|
||||
/B Performs a binary comparison.\n\
|
||||
/C Disregards the case of letters.\n\
|
||||
/L Compares files as ASCII text.\n\
|
||||
/LBn Sets the maximum consecutive mismatches to the specified\n\
|
||||
number of lines (default: 100).\n\
|
||||
/N Displays the line numbers on an ASCII comparison.\n\
|
||||
/OFF[LINE] Doesn't skip files with offline attribute set.\n\
|
||||
/T Doesn't expand tabs to spaces (default: expand).\n\
|
||||
/U Compare files as UNICODE text files.\n\
|
||||
/W Compresses white space (tabs and spaces) for comparison.\n\
|
||||
/nnnn Specifies the number of consecutive lines that must match\n\
|
||||
after a mismatch (default: 2).\n\
|
||||
[drive1:][path1]filename1\n\
|
||||
Spécifie le premier fichier ou ensemble de fichiers à comparer.\n\
|
||||
Specifies the first file or set of files to compare.\n\
|
||||
[drive2:][path2]filename2\n\
|
||||
Spécifie le second fichier ou ensemble de fichiers à comparer.\n"
|
||||
IDS_NO_DIFFERENCE "FC: Aucune différence constatée\n"
|
||||
IDS_LONGER_THAN "FC: %ls plus grand que %ls\n"
|
||||
IDS_COMPARING "Compare les fichiers %ls et %ls\n"
|
||||
IDS_OUT_OF_MEMORY "FC: Dépassement de mémoire\n"
|
||||
IDS_CANNOT_READ "FC: Ne peut pas lire depuis %ls\n"
|
||||
IDS_INVALID_SWITCH "FC: Option invalide\n"
|
||||
IDS_CANNOT_OPEN "FC: Ne peut pas ouvrir %ls - Fichier ou répertoire inexistant\n"
|
||||
IDS_NEEDS_FILES "FC: Nombre insuffisant de fichiers spécifiés\n"
|
||||
IDS_CANT_USE_WILDCARD "Les caractères joker ('*' et '?') ne sont pas encore supportés\n"
|
||||
IDS_DIFFERENT "FC: Les fichiers %ls et %ls sont différents\n"
|
||||
IDS_TOO_LARGE "FC: Fichier %ls trop grand\n"
|
||||
IDS_RESYNC_FAILED "La resynchronisation a échoué. Les fichiers sont trop différents.\n"
|
||||
Specifies the second file or set of files to compare.\n"
|
||||
IDS_NO_DIFFERENCE "FC: no differences encountered\n"
|
||||
IDS_LONGER_THAN "FC: %ls longer than %ls\n"
|
||||
IDS_COMPARING "Comparing files %ls and %ls\n"
|
||||
IDS_OUT_OF_MEMORY "FC: Out of memory\n"
|
||||
IDS_CANNOT_READ "FC: cannot read from %ls\n"
|
||||
IDS_INVALID_SWITCH "FC: Invalid Switch\n"
|
||||
IDS_CANNOT_OPEN "FC: cannot open %ls - No such file or folder\n"
|
||||
IDS_NEEDS_FILES "FC: Insufficient number of file specifications\n"
|
||||
IDS_CANT_USE_WILDCARD "Wildcard ('*' and '?') are not supported yet\n"
|
||||
IDS_DIFFERENT "FC: File %ls and %ls are different\n"
|
||||
IDS_TOO_LARGE "FC: File %ls too large\n"
|
||||
IDS_RESYNC_FAILED "Resync failed. Files are too different.\n"
|
||||
END
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user