mirror of
https://github.com/reactos/reactos
synced 2025-10-07 17:02:50 +02:00
Compare commits
14 Commits
backups/Re
...
ReactOS-0.
Author | SHA1 | Date | |
---|---|---|---|
|
1bca06c493 | ||
|
6aa4e564dc | ||
|
49d4e58f50 | ||
|
af6d8b9f7e | ||
|
aaf904d84c | ||
|
72e480c82f | ||
|
e2a4ce772f | ||
|
0a58d8b96a | ||
|
7c6256087f | ||
|
e7eb27c6cd | ||
|
4571891449 | ||
|
f112613d39 | ||
|
122fe51263 | ||
|
d8434fa72f |
31
reactos/.hgeol
Normal file
31
reactos/.hgeol
Normal file
@@ -0,0 +1,31 @@
|
||||
[patterns]
|
||||
**.txt = native
|
||||
**.cmake = native
|
||||
**.asm = native
|
||||
**.S = native
|
||||
**.cxx = native
|
||||
**.cpp = native
|
||||
**.hpp = native
|
||||
**.hxx = native
|
||||
**.c = native
|
||||
**.h = native
|
||||
**.py = native
|
||||
**.rc = native
|
||||
**.html = native
|
||||
**.bat = native
|
||||
**.cmd = native
|
||||
**.mak = native
|
||||
**makefile = native
|
||||
**.manifest = native
|
||||
**.properties = native
|
||||
**.dsp = native
|
||||
**.sln = native
|
||||
**.vcproj = native
|
||||
**.gen = native
|
||||
**.bmp = BIN
|
||||
**.cur = BIN
|
||||
**.ico = BIN
|
||||
**.jpg = BIN
|
||||
**.png = BIN
|
||||
tgzsrc = LF
|
||||
scripts/ba = LF
|
@@ -1,30 +1,15 @@
|
||||
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
|
||||
if(POLICY CMP0017)
|
||||
# Shadow cmake provided modules
|
||||
cmake_policy(SET CMP0017 OLD)
|
||||
endif()
|
||||
|
||||
if(POLICY CMP0026)
|
||||
# Allow use of the LOCATION property
|
||||
cmake_policy(SET CMP0026 OLD)
|
||||
endif()
|
||||
|
||||
if(POLICY CMP0051)
|
||||
# List TARGET_OBJECTS in SOURCES target property
|
||||
cmake_policy(SET CMP0051 NEW)
|
||||
endif()
|
||||
|
||||
if(POLICY CMP0058)
|
||||
# Ninja requires custom command byproducts to be explicit
|
||||
cmake_policy(SET CMP0058 OLD)
|
||||
endif()
|
||||
|
||||
project(REACTOS)
|
||||
|
||||
# Versioning
|
||||
include(sdk/include/reactos/version.cmake)
|
||||
include(include/reactos/version.cmake)
|
||||
|
||||
# Don't escape preprocessor definition values added via add_definitions
|
||||
cmake_policy(SET CMP0005 OLD)
|
||||
@@ -40,9 +25,10 @@ set(CMAKE_SKIP_PREPROCESSED_SOURCE_RULES TRUE)
|
||||
set(CMAKE_SKIP_ASSEMBLY_SOURCE_RULES TRUE)
|
||||
set(CMAKE_COLOR_MAKEFILE OFF)
|
||||
#set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
|
||||
set(CMAKE_SKIP_INSTALL_RULES ON)
|
||||
|
||||
if(NOT DEFINED NEW_STYLE_BUILD)
|
||||
set(NEW_STYLE_BUILD TRUE)
|
||||
if(NOT CMAKE_VERSION STREQUAL "2.8.12.1-ReactOS")
|
||||
set(CMAKE_DISABLE_NINJA_DEPSLOG TRUE)
|
||||
endif()
|
||||
|
||||
if(NOT ARCH)
|
||||
@@ -57,37 +43,20 @@ string(TOLOWER ${ARCH} ARCH)
|
||||
|
||||
# Compile options
|
||||
if(ARCH STREQUAL "i386")
|
||||
include(sdk/cmake/config.cmake)
|
||||
include(cmake/config.cmake)
|
||||
elseif(ARCH STREQUAL "amd64")
|
||||
include(sdk/cmake/config-amd64.cmake)
|
||||
include(cmake/config-amd64.cmake)
|
||||
elseif(ARCH STREQUAL "arm")
|
||||
include(sdk/cmake/config-arm.cmake)
|
||||
include(cmake/config-arm.cmake)
|
||||
endif()
|
||||
|
||||
# Compiler flags handling
|
||||
include(sdk/cmake/compilerflags.cmake)
|
||||
include(cmake/compilerflags.cmake)
|
||||
|
||||
add_definitions(-D__REACTOS__)
|
||||
|
||||
if(MSVC_IDE)
|
||||
add_compile_flags("/MP")
|
||||
endif()
|
||||
|
||||
# We don't need CMake importlib handling.
|
||||
# FIXME: Remove the MSVC_IDE condition when the upcoming RosBE lands.
|
||||
if(NOT MSVC_IDE)
|
||||
unset(CMAKE_IMPORT_LIBRARY_SUFFIX)
|
||||
endif()
|
||||
|
||||
# Bison and Flex support
|
||||
# include(sdk/cmake/bison-flex.cmake)
|
||||
|
||||
if(NOT CMAKE_CROSSCOMPILING)
|
||||
|
||||
if(NEW_STYLE_BUILD)
|
||||
set(TOOLS_FOLDER ${CMAKE_CURRENT_BINARY_DIR})
|
||||
endif()
|
||||
|
||||
add_definitions(-DTARGET_${ARCH})
|
||||
|
||||
if(MSVC)
|
||||
@@ -98,33 +67,26 @@ if(NOT CMAKE_CROSSCOMPILING)
|
||||
add_definitions(/D_ALLOW_KEYWORD_MACROS)
|
||||
endif()
|
||||
add_definitions(/Dinline=__inline)
|
||||
else()
|
||||
add_compile_flags("-fshort-wchar -Wno-multichar")
|
||||
endif()
|
||||
|
||||
include_directories(sdk/include/host)
|
||||
include_directories(include/host)
|
||||
|
||||
if(NOT MSVC)
|
||||
add_subdirectory(dll/win32/dbghelp)
|
||||
endif()
|
||||
add_subdirectory(sdk/tools)
|
||||
add_subdirectory(sdk/lib)
|
||||
add_subdirectory(tools)
|
||||
add_subdirectory(lib)
|
||||
|
||||
if(NOT NEW_STYLE_BUILD)
|
||||
if(NOT MSVC)
|
||||
export(TARGETS bin2c widl gendib cabman fatten hpp isohybrid mkhive mkisofs obj2bin spec2def geninc rsym mkshelllink utf16le xml2sdb FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
|
||||
else()
|
||||
export(TARGETS bin2c widl gendib cabman fatten hpp isohybrid mkhive mkisofs obj2bin spec2def geninc mkshelllink utf16le xml2sdb FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
|
||||
endif()
|
||||
if(NOT MSVC)
|
||||
export(TARGETS bin2c widl gendib cabman cdmake mkhive obj2bin spec2def geninc rsym mkshelllink utf16le FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
|
||||
else()
|
||||
export(TARGETS bin2c widl gendib cabman cdmake mkhive obj2bin spec2def geninc mkshelllink utf16le FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
|
||||
endif()
|
||||
|
||||
else()
|
||||
|
||||
if(NEW_STYLE_BUILD)
|
||||
include(sdk/cmake/host-tools.cmake)
|
||||
endif()
|
||||
|
||||
# Print build type
|
||||
message("-- Build Type: ${CMAKE_BUILD_TYPE}")
|
||||
|
||||
# adjust the default behaviour of the FIND_XXX() commands:
|
||||
# search headers and libraries in the target environment, search
|
||||
# programs in the host environment
|
||||
@@ -135,6 +97,15 @@ else()
|
||||
#useful stuff!
|
||||
include(CMakeParseArguments)
|
||||
|
||||
if(ENABLE_CCACHE)
|
||||
set(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES OFF)
|
||||
set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES OFF)
|
||||
endif()
|
||||
|
||||
# Default to Debug for the build type
|
||||
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
|
||||
"Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
|
||||
|
||||
# Do some cleanup
|
||||
file(REMOVE
|
||||
${REACTOS_BINARY_DIR}/dependencies.graphml
|
||||
@@ -145,14 +116,13 @@ else()
|
||||
${REACTOS_BINARY_DIR}/boot/ros_cab.txt
|
||||
${REACTOS_BINARY_DIR}/boot/ros_cab_target.txt)
|
||||
|
||||
if(NOT NEW_STYLE_BUILD)
|
||||
if(NOT DEFINED REACTOS_BUILD_TOOLS_DIR)
|
||||
set(REACTOS_BUILD_TOOLS_DIR ${REACTOS_SOURCE_DIR}/build)
|
||||
endif()
|
||||
set(IMPORT_EXECUTABLES "${REACTOS_BUILD_TOOLS_DIR}/ImportExecutables.cmake" CACHE FILEPATH "Host executables")
|
||||
include(${IMPORT_EXECUTABLES})
|
||||
if(NOT DEFINED REACTOS_BUILD_TOOLS_DIR)
|
||||
set(REACTOS_BUILD_TOOLS_DIR ${REACTOS_SOURCE_DIR}/build)
|
||||
endif()
|
||||
|
||||
set(IMPORT_EXECUTABLES "${REACTOS_BUILD_TOOLS_DIR}/ImportExecutables.cmake" CACHE FILEPATH "Host executables")
|
||||
include(${IMPORT_EXECUTABLES})
|
||||
|
||||
if(DBG)
|
||||
add_definitions(-DDBG=1 -D_SEH_ENABLE_TRACE)
|
||||
else()
|
||||
@@ -167,7 +137,7 @@ else()
|
||||
add_definitions(-D_WINKD_=1)
|
||||
endif()
|
||||
|
||||
if(CMAKE_VERSION MATCHES "ReactOS")
|
||||
if(CMAKE_VERSION STREQUAL "2.8.12.1-ReactOS")
|
||||
set(PCH 1 CACHE BOOL "Whether to use precompiled headers")
|
||||
else()
|
||||
set(PCH 0 CACHE BOOL "Whether to use precompiled headers")
|
||||
@@ -187,10 +157,7 @@ else()
|
||||
add_definitions(-D_M_AMD64 -D_AMD64_ -D__x86_64__ -D_WIN64)
|
||||
elseif(ARCH STREQUAL "arm")
|
||||
# _M_ARM is already defined by toolchain
|
||||
add_definitions(-D_ARM_ -D__arm__ -DWIN32)
|
||||
if(SARCH STREQUAL "omap-zoom2")
|
||||
add_definitions(-D_ZOOM2_)
|
||||
endif()
|
||||
add_definitions(-D_ARM_ -D__arm__)
|
||||
endif()
|
||||
|
||||
# Other
|
||||
@@ -199,7 +166,7 @@ else()
|
||||
elseif(ARCH STREQUAL "amd64")
|
||||
add_definitions(-DUSE_COMPILER_EXCEPTIONS -DNO_UNDERSCORE_PREFIX)
|
||||
elseif(ARCH STREQUAL "arm")
|
||||
add_definitions(-DUSE_COMPILER_EXCEPTIONS -DNO_UNDERSCORE_PREFIX)
|
||||
add_definitions(-DUSE_COMPILER_EXCEPTIONS)
|
||||
endif()
|
||||
|
||||
# Activate support for assembly source files
|
||||
@@ -209,60 +176,55 @@ else()
|
||||
enable_language(RC)
|
||||
|
||||
# Localization definitions
|
||||
include(sdk/cmake/localization.cmake)
|
||||
include(cmake/localization.cmake)
|
||||
set(I18N_DEFS "")
|
||||
# This will set I18N_DEFS for later use
|
||||
set_i18n_language(${I18N_LANG})
|
||||
|
||||
# Compiler specific definitions and macros
|
||||
if(MSVC)
|
||||
include(sdk/cmake/msvc.cmake)
|
||||
include(cmake/msvc.cmake)
|
||||
else()
|
||||
include(sdk/cmake/gcc.cmake)
|
||||
include(cmake/gcc.cmake)
|
||||
endif()
|
||||
|
||||
# Generic macros
|
||||
include(sdk/cmake/CMakeMacros.cmake)
|
||||
include(cmake/CMakeMacros.cmake)
|
||||
|
||||
# IDL macros for widl/midl
|
||||
# We're using widl now for both MSVC and GCC builds
|
||||
include(sdk/cmake/widl-support.cmake)
|
||||
include(cmake/widl-support.cmake)
|
||||
|
||||
include_directories(
|
||||
sdk/include
|
||||
sdk/include/psdk
|
||||
sdk/include/dxsdk
|
||||
${REACTOS_BINARY_DIR}/sdk/include
|
||||
${REACTOS_BINARY_DIR}/sdk/include/psdk
|
||||
${REACTOS_BINARY_DIR}/sdk/include/dxsdk
|
||||
${REACTOS_BINARY_DIR}/sdk/include/ddk
|
||||
${REACTOS_BINARY_DIR}/sdk/include/reactos
|
||||
${REACTOS_BINARY_DIR}/sdk/include/reactos/mc
|
||||
sdk/include/crt
|
||||
sdk/include/ddk
|
||||
sdk/include/ndk
|
||||
sdk/include/reactos
|
||||
sdk/include/reactos/libs)
|
||||
include
|
||||
include/psdk
|
||||
include/dxsdk
|
||||
${REACTOS_BINARY_DIR}/include
|
||||
${REACTOS_BINARY_DIR}/include/psdk
|
||||
${REACTOS_BINARY_DIR}/include/dxsdk
|
||||
${REACTOS_BINARY_DIR}/include/reactos
|
||||
include/crt
|
||||
include/ddk
|
||||
include/ndk
|
||||
include/reactos
|
||||
include/reactos/libs)
|
||||
|
||||
if(ARCH STREQUAL "arm")
|
||||
include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/arm)
|
||||
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/arm)
|
||||
endif()
|
||||
|
||||
add_dependency_header()
|
||||
|
||||
add_subdirectory(sdk/include/xdk)
|
||||
add_subdirectory(sdk/include/psdk)
|
||||
add_subdirectory(sdk/include/dxsdk)
|
||||
add_subdirectory(sdk/include/reactos/wine)
|
||||
add_subdirectory(sdk/include/reactos/mc)
|
||||
add_subdirectory(sdk/include/asm)
|
||||
add_subdirectory(include/psdk)
|
||||
add_subdirectory(include/dxsdk)
|
||||
add_subdirectory(include/reactos/wine)
|
||||
add_subdirectory(include/reactos/mc)
|
||||
add_subdirectory(include/asm)
|
||||
|
||||
if(NO_ROSSYM)
|
||||
include(sdk/cmake/baseaddress_dwarf.cmake)
|
||||
elseif(MSVC)
|
||||
include(sdk/cmake/baseaddress_msvc.cmake)
|
||||
include(cmake/baseaddress_dwarf.cmake)
|
||||
else()
|
||||
include(sdk/cmake/baseaddress.cmake)
|
||||
include(cmake/baseaddress.cmake)
|
||||
endif()
|
||||
|
||||
# For MSVC builds, this puts all debug symbols file in the same directory.
|
||||
@@ -274,21 +236,18 @@ else()
|
||||
add_subdirectory(dll)
|
||||
add_subdirectory(drivers)
|
||||
add_subdirectory(hal)
|
||||
add_subdirectory(sdk/lib)
|
||||
add_subdirectory(lib)
|
||||
add_subdirectory(media)
|
||||
add_subdirectory(modules)
|
||||
add_subdirectory(ntoskrnl)
|
||||
add_subdirectory(subsystems)
|
||||
add_subdirectory(sdk/tools/wpp)
|
||||
add_subdirectory(tools/wpp)
|
||||
add_subdirectory(win32ss)
|
||||
|
||||
# Create the registry hives
|
||||
create_registry_hives()
|
||||
|
||||
# Create {bootcd, livecd, bootcdregtest}.lst
|
||||
create_iso_lists()
|
||||
|
||||
file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/sdk/include/reactos)
|
||||
file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/include/reactos)
|
||||
|
||||
add_dependency_footer()
|
||||
endif()
|
||||
|
@@ -13,7 +13,6 @@ Brian Palmer <brianp@sginet.com>
|
||||
Cameron M. Gutman <cgutman@reactos.org>
|
||||
Casper S. Hornstrup <chorns@users.sourceforge.net>
|
||||
Christoph von Wittich <christoph_vw@reactos.org>
|
||||
Colin Finck <colin@reactos.org>
|
||||
Daniel Reimer <reimer.daniel@freenet.de>
|
||||
David Welch <welch@cwcom.net>
|
||||
Dmitry Chapyshev <dmitry@reactos.org>
|
||||
@@ -68,7 +67,7 @@ Robert Dickenson <robd@reactos.org>
|
||||
Royce Mitchell III <royce3@ev1.net>
|
||||
Samuel Serapi<70>n <samdwise51@gmail.com>
|
||||
Saveliy Tretiakov <saveliyt@mail.ru>
|
||||
Stefan Ginsberg <stefan.ginsberg@reactos.org>
|
||||
Stefan Ginsberg <stefan__100__@hotmail.com>
|
||||
Steven Edwards <winehacker@gmail.com>
|
||||
Thomas Weidenmueller <w3seek@users.sourceforge.net>
|
||||
Timo Kreuzer <timo.kreuzer@reactos.org>
|
||||
|
2615
reactos/Doxyfile
2615
reactos/Doxyfile
File diff suppressed because it is too large
Load Diff
@@ -1,41 +1,28 @@
|
||||
1. Build environment
|
||||
--------------------
|
||||
|
||||
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: http://www.reactos.org/wiki/Build_Environment/
|
||||
|
||||
Alternatively one can use Microsoft Visual C++ (MSVC) version 2010+, together
|
||||
with separate installations of CMake and the Ninja build utility.
|
||||
To build the system you need either mingw32 installed on Windows or a mingw32
|
||||
cross compiler running on unix. You may obtain MinGW binaries that build
|
||||
ReactOS from http://www.reactos.org/.
|
||||
|
||||
|
||||
2. Building ReactOS
|
||||
-------------------
|
||||
|
||||
A throughout guide for how to build ReactOS can be found at:
|
||||
http://www.reactos.org/wiki/Building_ReactOS
|
||||
|
||||
In the following we only make a quick overview.
|
||||
|
||||
|
||||
2.1 Building the binaries
|
||||
|
||||
To build ReactOS run 'ninja' (without the quotes), or alternatively run
|
||||
'make' if you are using the Make utility, from the top directory.
|
||||
NOTE: In the other examples listed in the following, similar modification
|
||||
holds if you are using the Make utility instead of Ninja.
|
||||
If you are using RosBE, follow on-screen instructions.
|
||||
To build ReactOS run 'make' (without the quotes) if you are building on Linux
|
||||
or 'mingw32-make' if you are building on Windows (or ReactOS) from the top
|
||||
directory. If you are using RosBE, follow on-screen instructions.
|
||||
|
||||
|
||||
2.2 Building a bootable CD image
|
||||
|
||||
To build a bootable CD image run 'ninja bootcd' (without the quotes) from the
|
||||
top directory. This will create a CD image with a filename, ReactOS.iso, in
|
||||
the top directory.
|
||||
To build a bootable CD image run 'make bootcd' (without the quotes) if you are
|
||||
building on Linux or 'mingw32-make bootcd' if you are building on Windows (or
|
||||
ReactOS) from the top directory. This will create a CD image with a filename,
|
||||
ReactOS.iso, in the top directory.
|
||||
|
||||
|
||||
3. Installation
|
||||
---------------
|
||||
|
||||
ReactOS can only be installed on a machine that has a FAT16 or FAT32 partition
|
||||
as the active (bootable) partition. The partition on which ReactOS is to be
|
||||
@@ -54,13 +41,13 @@ build a bootable CD as described above. Burn the CD image, boot from it, and
|
||||
follow the instructions to install ReactOS.
|
||||
|
||||
If you have an existing ReactOS installation you want to upgrade, then to
|
||||
install ReactOS after building it, type 'ninja install'. This will create
|
||||
the directory 'reactos' in the top directory. Copy the contents of this
|
||||
directory over the existing installation.
|
||||
install ReactOS after building it, type 'make install' or
|
||||
'mingw32-make install'. This will create the directory 'reactos' in the top
|
||||
directory. Copy the contents of this directory over the existing installation.
|
||||
|
||||
If you don't want to copy the files manually every time you run a
|
||||
'ninja install', then you can specify the directory where the files are
|
||||
to be copied to during installation.
|
||||
'make install' or 'mingw32-make install', then you can specify the directory
|
||||
where the files are to be copied to during installation.
|
||||
|
||||
Set the ROS_INSTALL environment variable. If you are on Windows this could be
|
||||
done by:
|
||||
@@ -71,7 +58,8 @@ If you are on Linux this could be done by:
|
||||
|
||||
export ROS_INSTALL=/mnt/windows/reactos
|
||||
|
||||
Now run 'ninja install' to install the files to the new location.
|
||||
Now run 'make install' or 'mingw32-make install' to install the files to the
|
||||
new location.
|
||||
|
||||
|
||||
3.2 Installation from bootable CD distribution
|
||||
@@ -80,13 +68,12 @@ To install ReactOS from the bootable CD distribution, extract the archive
|
||||
contents. Then burn the CD image, boot from it, and follow instructions.
|
||||
|
||||
|
||||
4. Help
|
||||
-------
|
||||
5. Help
|
||||
|
||||
If you run into problems or have suggestions for making ReactOS better, please
|
||||
visit the address below. Mailing lists are available for a variety of topics,
|
||||
bugs should be submitted to JIRA and general chat takes place in the forums,
|
||||
or #reactos on freenode.
|
||||
or #reactos on freenode
|
||||
|
||||
http://www.reactos.org/
|
||||
|
||||
|
@@ -4,7 +4,7 @@ STRING(REPLACE "/PreLoad.cmake" "" REACTOS_HOME_DIR ${CMAKE_CURRENT_LIST_FILE})
|
||||
|
||||
#message("/PreLoad.cmake ... ${REACTOS_HOME_DIR}")
|
||||
|
||||
SET(CMAKE_MODULE_PATH "${REACTOS_HOME_DIR}/sdk/cmake" CACHE INTERNAL "")
|
||||
SET(CMAKE_MODULE_PATH "${REACTOS_HOME_DIR}/cmake" CACHE INTERNAL "")
|
||||
|
||||
#message("CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}")
|
||||
|
||||
|
@@ -1,32 +1,29 @@
|
||||
========================
|
||||
ReactOS<EFBFBD> Version 0.4.x
|
||||
Updated January 5, 2016
|
||||
ReactOS Version 0.3.x
|
||||
Updated Dec 16, 2006
|
||||
========================
|
||||
|
||||
1. What is ReactOS?
|
||||
-------------------
|
||||
|
||||
ReactOS<EFBFBD> is an Open Source effort to develop a quality operating system that is
|
||||
compatible with applications and drivers written for the Microsoft<66> Windows<77> NT
|
||||
family of operating systems (NT4, 2000, XP, 2003, Vista, Seven).
|
||||
ReactOS is an Open Source effort to develop a quality operating system
|
||||
that is compatible with Windows NT applications and drivers.
|
||||
|
||||
The ReactOS project, although currently focused on Windows Server 2003
|
||||
compatibility, is always keeping an eye toward compatibility with
|
||||
Windows Vista and future Windows NT releases.
|
||||
The ReactOS project, although currently focused on Windows XP/2003
|
||||
drivers compatibility, is always keeping an eye toward compatibility with
|
||||
older version of Windows NT family ( NT 4.0, 2000 (NT 5.0)) and new
|
||||
Windows NT releases (Vista, etc). Applications (Win32 API) compatibility
|
||||
focus is Windows XP.
|
||||
|
||||
More information is available at: https://www.reactos.org
|
||||
More information is available at http://www.reactos.org/.
|
||||
|
||||
2. Building ReactOS
|
||||
-------------------
|
||||
|
||||
See the INSTALL file for more details.
|
||||
|
||||
3. More information
|
||||
-------------------
|
||||
|
||||
See the media\doc subdirectory for some sparse notes.
|
||||
|
||||
4. Who is responsible
|
||||
---------------------
|
||||
|
||||
See the CREDITS file.
|
||||
|
@@ -3,13 +3,11 @@ add_subdirectory(atactl)
|
||||
add_subdirectory(cacls)
|
||||
add_subdirectory(calc)
|
||||
add_subdirectory(charmap)
|
||||
add_subdirectory(clipbrd)
|
||||
add_subdirectory(cmdutils)
|
||||
add_subdirectory(control)
|
||||
add_subdirectory(dxdiag)
|
||||
add_subdirectory(extrac32)
|
||||
add_subdirectory(findstr)
|
||||
add_subdirectory(fltmc)
|
||||
add_subdirectory(fontview)
|
||||
add_subdirectory(games)
|
||||
add_subdirectory(hh)
|
||||
@@ -20,15 +18,12 @@ add_subdirectory(magnify)
|
||||
add_subdirectory(mmc)
|
||||
add_subdirectory(mplay32)
|
||||
add_subdirectory(msconfig)
|
||||
add_subdirectory(msconfig_new)
|
||||
add_subdirectory(mscutils)
|
||||
add_subdirectory(mspaint)
|
||||
add_subdirectory(mstsc)
|
||||
add_subdirectory(network)
|
||||
add_subdirectory(notepad)
|
||||
add_subdirectory(osk)
|
||||
add_subdirectory(mspaint)
|
||||
add_subdirectory(rapps)
|
||||
add_subdirectory(rapps_new)
|
||||
add_subdirectory(regedit)
|
||||
add_subdirectory(regedt32)
|
||||
add_subdirectory(sc)
|
||||
|
@@ -1,8 +1,10 @@
|
||||
|
||||
set_cpp()
|
||||
|
||||
add_definitions(-DUSER_MODE)
|
||||
include_directories(${REACTOS_SOURCE_DIR}/drivers/storage/ide/uniata)
|
||||
add_executable(atactl atactl.cpp atactl.rc)
|
||||
set_module_type(atactl win32cui)
|
||||
add_importlibs(atactl advapi32 msvcrt kernel32 ntdll)
|
||||
|
||||
add_cd_file(TARGET atactl DESTINATION reactos/system32 FOR all)
|
||||
|
@@ -91,14 +91,14 @@ void print_help() {
|
||||
" will switch device at Scsi2, bus 1, taget_id 1 to UDMA0 mode\n"
|
||||
" atactl -h -d 30 c1:b0:d0:l0 \n"
|
||||
" will hide Master (d0:l0) device on secondary (c1:b0) IDE channel\n"
|
||||
" and lock i/o on this channel for 30 seconds to ensure safety\n"
|
||||
" and lock i/o on this channel for 30 seconds to ensure safity\n"
|
||||
" of removal process"
|
||||
"------\n"
|
||||
"Device address format:\n"
|
||||
"\n"
|
||||
"s<controller id> number of controller in system. Is assigned during hardware\n"
|
||||
" detection. Usually s0/s1 are ATA Pri/Sec.\n"
|
||||
" Note, due do NT internal design ATA controllers are represented\n"
|
||||
" Note, due do NT internal desing ATA controllers are represented\n"
|
||||
" as SCSI controllers.\n"
|
||||
"b<bus id> For ATA controllers it is channel number.\n"
|
||||
" Note, usually onboard controller is represented as 2 legacy\n"
|
||||
@@ -1283,7 +1283,7 @@ ata_scan(
|
||||
to.WaitForPhysicalLink = lock;
|
||||
to.Flags = unhide ? UNIATA_ADD_FLAGS_UNHIDE : 0;
|
||||
|
||||
printf("Scanning bus for new devices.\n");
|
||||
printf("Scaning bus for new devices.\n");
|
||||
if(lock) {
|
||||
printf("You have %d seconds to connect device.\n", lock);
|
||||
}
|
||||
|
@@ -1,8 +1,6 @@
|
||||
|
||||
include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/conutils)
|
||||
|
||||
add_executable(cacls cacls.c cacls.rc)
|
||||
list(APPEND SOURCE cacls.c cacls.rc)
|
||||
add_executable(cacls ${SOURCE})
|
||||
set_module_type(cacls win32cui UNICODE)
|
||||
target_link_libraries(cacls conutils ${PSEH_LIB})
|
||||
add_importlibs(cacls advapi32 user32 shell32 msvcrt kernel32)
|
||||
add_cd_file(TARGET cacls DESTINATION reactos/system32 FOR all)
|
||||
|
@@ -19,11 +19,6 @@
|
||||
|
||||
#include "precomp.h"
|
||||
|
||||
/* command line options */
|
||||
BOOL OptionT = FALSE, OptionE = FALSE, OptionC = FALSE;
|
||||
BOOL OptionG = FALSE, OptionR = FALSE, OptionP = FALSE, OptionD = FALSE;
|
||||
LPCTSTR GUser, GPerm, RUser, PUser, PPerm, DUser;
|
||||
|
||||
static GENERIC_MAPPING FileGenericMapping =
|
||||
{
|
||||
FILE_GENERIC_READ,
|
||||
@@ -33,17 +28,155 @@ static GENERIC_MAPPING FileGenericMapping =
|
||||
};
|
||||
|
||||
|
||||
static VOID
|
||||
PrintError(DWORD dwError)
|
||||
static
|
||||
INT
|
||||
LengthOfStrResource(IN HINSTANCE hInst,
|
||||
IN UINT uID)
|
||||
{
|
||||
if (dwError == ERROR_SUCCESS)
|
||||
return;
|
||||
HRSRC hrSrc;
|
||||
HGLOBAL hRes;
|
||||
LPWSTR lpName, lpStr;
|
||||
|
||||
ConMsgPuts(StdErr, FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL, dwError, LANG_USER_DEFAULT);
|
||||
if (hInst == NULL)
|
||||
{
|
||||
hInst = GetModuleHandle(NULL);
|
||||
}
|
||||
|
||||
/* There are always blocks of 16 strings */
|
||||
lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1);
|
||||
|
||||
/* Find the string table block */
|
||||
hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING);
|
||||
if (hrSrc)
|
||||
{
|
||||
hRes = LoadResource(hInst, hrSrc);
|
||||
if (hRes)
|
||||
{
|
||||
lpStr = LockResource(hRes);
|
||||
if (lpStr)
|
||||
{
|
||||
UINT x;
|
||||
|
||||
/* Find the string we're looking for */
|
||||
uID &= 0xF; /* position in the block, same as % 16 */
|
||||
for (x = 0; x < uID; x++)
|
||||
{
|
||||
lpStr += (*lpStr) + 1;
|
||||
}
|
||||
|
||||
/* Found the string */
|
||||
return (int)(*lpStr);
|
||||
}
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
|
||||
static
|
||||
INT
|
||||
AllocAndLoadString(OUT LPTSTR *lpTarget,
|
||||
IN HINSTANCE hInst,
|
||||
IN UINT uID)
|
||||
{
|
||||
INT ln;
|
||||
|
||||
ln = LengthOfStrResource(hInst,
|
||||
uID);
|
||||
if (ln++ > 0)
|
||||
{
|
||||
(*lpTarget) = (LPTSTR)HeapAlloc(GetProcessHeap(),
|
||||
0,
|
||||
ln * sizeof(TCHAR));
|
||||
if ((*lpTarget) != NULL)
|
||||
{
|
||||
INT Ret;
|
||||
Ret = LoadString(hInst,
|
||||
uID,
|
||||
*lpTarget,
|
||||
ln);
|
||||
if (!Ret)
|
||||
{
|
||||
HeapFree(GetProcessHeap(),
|
||||
0,
|
||||
*lpTarget);
|
||||
}
|
||||
return Ret;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
PrintHelp(VOID)
|
||||
{
|
||||
LPTSTR szHelp;
|
||||
|
||||
if (AllocAndLoadString(&szHelp,
|
||||
NULL,
|
||||
IDS_HELP) != 0)
|
||||
{
|
||||
_tprintf(_T("%s"),
|
||||
szHelp);
|
||||
|
||||
HeapFree(GetProcessHeap(),
|
||||
0,
|
||||
szHelp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
PrintErrorMessage(IN DWORD dwError)
|
||||
{
|
||||
LPTSTR szError;
|
||||
|
||||
if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
||||
FORMAT_MESSAGE_IGNORE_INSERTS |
|
||||
FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL,
|
||||
dwError,
|
||||
MAKELANGID(LANG_NEUTRAL,
|
||||
SUBLANG_DEFAULT),
|
||||
(LPTSTR)&szError,
|
||||
0,
|
||||
NULL) != 0)
|
||||
{
|
||||
_tprintf(_T("%s"),
|
||||
szError);
|
||||
LocalFree((HLOCAL)szError);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
DWORD
|
||||
LoadAndPrintString(IN HINSTANCE hInst,
|
||||
IN UINT uID)
|
||||
{
|
||||
TCHAR szTemp[255];
|
||||
DWORD Len;
|
||||
|
||||
Len = (DWORD)LoadString(hInst,
|
||||
uID,
|
||||
szTemp,
|
||||
sizeof(szTemp) / sizeof(szTemp[0]));
|
||||
|
||||
if (Len != 0)
|
||||
{
|
||||
_tprintf(_T("%s"),
|
||||
szTemp);
|
||||
}
|
||||
|
||||
return Len;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
BOOL
|
||||
PrintFileDacl(IN LPTSTR FilePath,
|
||||
IN LPTSTR FileName)
|
||||
{
|
||||
@@ -61,8 +194,10 @@ PrintFileDacl(IN LPTSTR FilePath,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
_tcscpy(FullFileName, FilePath);
|
||||
_tcscat(FullFileName, FileName);
|
||||
_tcscpy(FullFileName,
|
||||
FilePath);
|
||||
_tcscat(FullFileName,
|
||||
FileName);
|
||||
|
||||
/* find out how much memory we need */
|
||||
if (!GetFileSecurity(FullFileName,
|
||||
@@ -178,7 +313,8 @@ BuildSidString:
|
||||
}
|
||||
|
||||
/* print the file name or space */
|
||||
ConPrintf(StdOut, L"%s ", FullFileName);
|
||||
_tprintf(_T("%s "),
|
||||
FullFileName);
|
||||
|
||||
/* attempt to map the SID to a user name */
|
||||
if (AceIndex == 0)
|
||||
@@ -194,29 +330,35 @@ BuildSidString:
|
||||
/* print the domain and/or user if possible, or the SID string */
|
||||
if (Name != NULL && Domain[0] != _T('\0'))
|
||||
{
|
||||
ConPrintf(StdOut, L"%s\\%s:", Domain, Name);
|
||||
_tprintf(_T("%s\\%s:"),
|
||||
Domain,
|
||||
Name);
|
||||
IndentAccess = (DWORD)_tcslen(Domain) + _tcslen(Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
LPTSTR DisplayString = (Name != NULL ? Name : SidString);
|
||||
|
||||
ConPrintf(StdOut, L"%s:", DisplayString);
|
||||
_tprintf(_T("%s:"),
|
||||
DisplayString);
|
||||
IndentAccess = (DWORD)_tcslen(DisplayString);
|
||||
}
|
||||
|
||||
/* print the ACE Flags */
|
||||
if (Ace->Header.AceFlags & CONTAINER_INHERIT_ACE)
|
||||
{
|
||||
IndentAccess += ConResPuts(StdOut, IDS_ABBR_CI);
|
||||
IndentAccess += LoadAndPrintString(NULL,
|
||||
IDS_ABBR_CI);
|
||||
}
|
||||
if (Ace->Header.AceFlags & OBJECT_INHERIT_ACE)
|
||||
{
|
||||
IndentAccess += ConResPuts(StdOut, IDS_ABBR_OI);
|
||||
IndentAccess += LoadAndPrintString(NULL,
|
||||
IDS_ABBR_OI);
|
||||
}
|
||||
if (Ace->Header.AceFlags & INHERIT_ONLY_ACE)
|
||||
{
|
||||
IndentAccess += ConResPuts(StdOut, IDS_ABBR_IO);
|
||||
IndentAccess += LoadAndPrintString(NULL,
|
||||
IDS_ABBR_IO);
|
||||
}
|
||||
|
||||
IndentAccess += 2;
|
||||
@@ -228,11 +370,13 @@ BuildSidString:
|
||||
{
|
||||
if (AccessMask == FILE_ALL_ACCESS)
|
||||
{
|
||||
ConResPuts(StdOut, IDS_ABBR_NONE);
|
||||
LoadAndPrintString(NULL,
|
||||
IDS_ABBR_NONE);
|
||||
}
|
||||
else
|
||||
{
|
||||
ConResPuts(StdOut, IDS_DENY);
|
||||
LoadAndPrintString(NULL,
|
||||
IDS_DENY);
|
||||
goto PrintSpecialAccess;
|
||||
}
|
||||
}
|
||||
@@ -240,20 +384,24 @@ BuildSidString:
|
||||
{
|
||||
if (AccessMask == FILE_ALL_ACCESS)
|
||||
{
|
||||
ConResPuts(StdOut, IDS_ABBR_FULL);
|
||||
LoadAndPrintString(NULL,
|
||||
IDS_ABBR_FULL);
|
||||
}
|
||||
else if (!(Ace->Mask & (GENERIC_READ | GENERIC_EXECUTE)) &&
|
||||
AccessMask == (FILE_GENERIC_READ | FILE_EXECUTE))
|
||||
{
|
||||
ConResPuts(StdOut, IDS_ABBR_READ);
|
||||
LoadAndPrintString(NULL,
|
||||
IDS_ABBR_READ);
|
||||
}
|
||||
else if (AccessMask == (FILE_GENERIC_READ | FILE_GENERIC_WRITE | FILE_EXECUTE | DELETE))
|
||||
{
|
||||
ConResPuts(StdOut, IDS_ABBR_CHANGE);
|
||||
LoadAndPrintString(NULL,
|
||||
IDS_ABBR_CHANGE);
|
||||
}
|
||||
else if (AccessMask == FILE_GENERIC_WRITE)
|
||||
{
|
||||
ConResPuts(StdOut, IDS_ABBR_WRITE);
|
||||
LoadAndPrintString(NULL,
|
||||
IDS_ABBR_WRITE);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -293,32 +441,38 @@ BuildSidString:
|
||||
{STANDARD_RIGHTS_ALL, IDS_STANDARD_RIGHTS_ALL},
|
||||
};
|
||||
|
||||
ConResPuts(StdOut, IDS_ALLOW);
|
||||
LoadAndPrintString(NULL,
|
||||
IDS_ALLOW);
|
||||
|
||||
PrintSpecialAccess:
|
||||
ConResPuts(StdOut, IDS_SPECIAL_ACCESS);
|
||||
LoadAndPrintString(NULL,
|
||||
IDS_SPECIAL_ACCESS);
|
||||
|
||||
/* print the special access rights */
|
||||
x = ARRAYSIZE(AccessRights);
|
||||
x = sizeof(AccessRights) / sizeof(AccessRights[0]);
|
||||
while (x-- != 0)
|
||||
{
|
||||
if ((Ace->Mask & AccessRights[x].Access) == AccessRights[x].Access)
|
||||
{
|
||||
ConPrintf(StdOut, L"\n%s ", FullFileName);
|
||||
for (x2 = 0; x2 < IndentAccess; x2++)
|
||||
_tprintf(_T("\n%s "),
|
||||
FullFileName);
|
||||
for (x2 = 0;
|
||||
x2 < IndentAccess;
|
||||
x2++)
|
||||
{
|
||||
ConPuts(StdOut, L" ");
|
||||
_tprintf(_T(" "));
|
||||
}
|
||||
|
||||
ConResPuts(StdOut, AccessRights[x].uID);
|
||||
LoadAndPrintString(NULL,
|
||||
AccessRights[x].uID);
|
||||
}
|
||||
}
|
||||
|
||||
ConPuts(StdOut, L"\n");
|
||||
_tprintf(_T("\n"));
|
||||
}
|
||||
}
|
||||
|
||||
ConPuts(StdOut, L"\n");
|
||||
_tprintf(_T("\n"));
|
||||
|
||||
/* free up all resources */
|
||||
if (Name != NULL)
|
||||
@@ -358,507 +512,92 @@ PrintSpecialAccess:
|
||||
return Ret;
|
||||
}
|
||||
|
||||
/* add a backslash at end to a path string if necessary */
|
||||
static VOID
|
||||
AddBackslash(LPTSTR FilePath)
|
||||
|
||||
int
|
||||
__cdecl
|
||||
_tmain(int argc, const TCHAR *argv[])
|
||||
{
|
||||
INT len = lstrlen(FilePath);
|
||||
LPTSTR pch = CharPrev(FilePath, FilePath + len);
|
||||
if (*pch != _T('\\'))
|
||||
lstrcat(pch, _T("\\"));
|
||||
}
|
||||
|
||||
static BOOL
|
||||
GetPathOfFile(LPTSTR FilePath, LPCTSTR pszFiles)
|
||||
{
|
||||
TCHAR FullPath[MAX_PATH];
|
||||
LPTSTR pch;
|
||||
DWORD attrs;
|
||||
|
||||
lstrcpyn(FilePath, pszFiles, MAX_PATH);
|
||||
pch = _tcsrchr(FilePath, _T('\\'));
|
||||
if (pch != NULL)
|
||||
if (argc < 2)
|
||||
{
|
||||
*pch = 0;
|
||||
if (!GetFullPathName(FilePath, MAX_PATH, FullPath, NULL))
|
||||
{
|
||||
PrintError(GetLastError());
|
||||
return FALSE;
|
||||
}
|
||||
lstrcpyn(FilePath, FullPath, MAX_PATH);
|
||||
|
||||
attrs = GetFileAttributes(FilePath);
|
||||
if (attrs == 0xFFFFFFFF || !(attrs & FILE_ATTRIBUTE_DIRECTORY))
|
||||
{
|
||||
PrintError(ERROR_DIRECTORY);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
GetCurrentDirectory(MAX_PATH, FilePath);
|
||||
|
||||
AddBackslash(FilePath);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
PrintDaclsOfFiles(LPCTSTR pszFiles)
|
||||
{
|
||||
TCHAR FilePath[MAX_PATH];
|
||||
WIN32_FIND_DATA FindData;
|
||||
HANDLE hFind;
|
||||
DWORD LastError;
|
||||
|
||||
/*
|
||||
* get the file path
|
||||
*/
|
||||
if (!GetPathOfFile(FilePath, pszFiles))
|
||||
return FALSE;
|
||||
|
||||
/*
|
||||
* search for the files
|
||||
*/
|
||||
hFind = FindFirstFile(pszFiles, &FindData);
|
||||
if (hFind == INVALID_HANDLE_VALUE)
|
||||
return FALSE;
|
||||
|
||||
do
|
||||
{
|
||||
if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
|
||||
continue;
|
||||
|
||||
if (!PrintFileDacl(FilePath, FindData.cFileName))
|
||||
{
|
||||
LastError = GetLastError();
|
||||
if (LastError == ERROR_ACCESS_DENIED)
|
||||
{
|
||||
PrintError(LastError);
|
||||
if (!OptionC)
|
||||
{
|
||||
FindClose(hFind);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ConPuts(StdOut, L"\n");
|
||||
}
|
||||
} while(FindNextFile(hFind, &FindData));
|
||||
LastError = GetLastError();
|
||||
FindClose(hFind);
|
||||
|
||||
if (LastError != ERROR_NO_MORE_FILES)
|
||||
{
|
||||
PrintError(LastError);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
GrantUserAccessRights(LPCTSTR FilePath, LPCTSTR File, LPCTSTR User, TCHAR Perm)
|
||||
{
|
||||
/* TODO & FIXME */
|
||||
switch(Perm)
|
||||
{
|
||||
case _T('R'): // Read
|
||||
break;
|
||||
case _T('W'): // Write
|
||||
break;
|
||||
case _T('C'): // Change (write)
|
||||
break;
|
||||
case _T('F'): // Full control
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
ReplaceUserAccessRights(
|
||||
LPCTSTR FilePath,
|
||||
LPCTSTR File,
|
||||
LPCTSTR User,
|
||||
TCHAR Perm)
|
||||
{
|
||||
/* TODO & FIXME */
|
||||
switch(Perm)
|
||||
{
|
||||
case _T('N'): // None
|
||||
break;
|
||||
case _T('R'): // Read
|
||||
break;
|
||||
case _T('W'): // Write
|
||||
break;
|
||||
case _T('C'): // Change (write)
|
||||
break;
|
||||
case _T('F'): // Full control
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
EditUserAccessRights(
|
||||
LPCTSTR FilePath,
|
||||
LPCTSTR File,
|
||||
LPCTSTR User,
|
||||
TCHAR Perm)
|
||||
{
|
||||
/* TODO & FIXME */
|
||||
switch(Perm)
|
||||
{
|
||||
case _T('N'): // None
|
||||
break;
|
||||
case _T('R'): // Read
|
||||
break;
|
||||
case _T('W'): // Write
|
||||
break;
|
||||
case _T('C'): // Change (write)
|
||||
break;
|
||||
case _T('F'): // Full control
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
DenyUserAccess(LPCTSTR FilePath, LPCTSTR File, LPCTSTR User)
|
||||
{
|
||||
/* TODO & FIXME */
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
RevokeUserAccessRights(LPCTSTR FilePath, LPCTSTR File, LPCTSTR User)
|
||||
{
|
||||
/* TODO & FIXME */
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
ChangeFileACL(LPCTSTR FilePath, LPCTSTR File)
|
||||
{
|
||||
if (OptionG)
|
||||
{
|
||||
/* Grant specified user access rights. */
|
||||
GrantUserAccessRights(FilePath, File, GUser, *GPerm);
|
||||
}
|
||||
|
||||
if (OptionP)
|
||||
{
|
||||
if (!OptionE)
|
||||
{
|
||||
/* Replace specified user's access rights. */
|
||||
ReplaceUserAccessRights(FilePath, File, PUser, *PPerm);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Edit ACL instead of replacing it. */
|
||||
EditUserAccessRights(FilePath, File, PUser, *PPerm);
|
||||
}
|
||||
}
|
||||
|
||||
if (OptionD)
|
||||
{
|
||||
/* Deny specified user access. */
|
||||
DenyUserAccess(FilePath, File, DUser);
|
||||
}
|
||||
|
||||
if (OptionR)
|
||||
{
|
||||
/* Revoke specified user's access rights. */
|
||||
RevokeUserAccessRights(FilePath, File, RUser);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
ChangeACLsOfFiles(LPCTSTR pszFiles)
|
||||
{
|
||||
TCHAR FilePath[MAX_PATH];
|
||||
HANDLE hFind;
|
||||
WIN32_FIND_DATA FindData;
|
||||
DWORD LastError;
|
||||
|
||||
/*
|
||||
* get the file path
|
||||
*/
|
||||
if (!GetPathOfFile(FilePath, pszFiles))
|
||||
return FALSE;
|
||||
|
||||
/*
|
||||
* search for files in current directory
|
||||
*/
|
||||
hFind = FindFirstFile(pszFiles, &FindData);
|
||||
if (hFind == INVALID_HANDLE_VALUE)
|
||||
return FALSE;
|
||||
|
||||
do
|
||||
{
|
||||
if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
|
||||
continue;
|
||||
|
||||
if (!ChangeFileACL(FilePath, FindData.cFileName))
|
||||
{
|
||||
LastError = GetLastError();
|
||||
if (LastError == ERROR_ACCESS_DENIED)
|
||||
{
|
||||
PrintError(LastError);
|
||||
if (!OptionC)
|
||||
{
|
||||
FindClose(hFind);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
} while(FindNextFile(hFind, &FindData));
|
||||
|
||||
LastError = GetLastError();
|
||||
FindClose(hFind);
|
||||
|
||||
if (LastError != ERROR_NO_MORE_FILES)
|
||||
{
|
||||
PrintError(LastError);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
ChangeACLsOfFilesInCurDir(LPCTSTR pszFiles)
|
||||
{
|
||||
HANDLE hFind;
|
||||
WIN32_FIND_DATA FindData;
|
||||
TCHAR szCurDir[MAX_PATH];
|
||||
DWORD LastError;
|
||||
|
||||
/*
|
||||
* get the file path (current directory)
|
||||
*/
|
||||
GetCurrentDirectory(MAX_PATH, szCurDir);
|
||||
AddBackslash(szCurDir);
|
||||
|
||||
/*
|
||||
* search for files in current directory
|
||||
*/
|
||||
hFind = FindFirstFile(pszFiles, &FindData);
|
||||
if (hFind == INVALID_HANDLE_VALUE)
|
||||
return FALSE;
|
||||
|
||||
do
|
||||
{
|
||||
if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
|
||||
continue;
|
||||
|
||||
if (!ChangeFileACL(szCurDir, FindData.cFileName))
|
||||
{
|
||||
LastError = GetLastError();
|
||||
if (LastError == ERROR_ACCESS_DENIED)
|
||||
{
|
||||
PrintError(LastError);
|
||||
if (!OptionC)
|
||||
{
|
||||
FindClose(hFind);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
} while(FindNextFile(hFind, &FindData));
|
||||
|
||||
LastError = GetLastError();
|
||||
FindClose(hFind);
|
||||
|
||||
if (LastError != ERROR_NO_MORE_FILES)
|
||||
{
|
||||
PrintError(LastError);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* search for subdirectory in current directory
|
||||
*/
|
||||
hFind = FindFirstFile(_T("*"), &FindData);
|
||||
if (hFind == INVALID_HANDLE_VALUE)
|
||||
return FALSE;
|
||||
do
|
||||
{
|
||||
if (_tcscmp(FindData.cFileName, _T(".")) == 0 ||
|
||||
_tcscmp(FindData.cFileName, _T("..")) == 0)
|
||||
continue;
|
||||
|
||||
if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
|
||||
{
|
||||
GetCurrentDirectory(MAX_PATH, szCurDir);
|
||||
if (SetCurrentDirectory(FindData.cFileName))
|
||||
{
|
||||
ChangeACLsOfFilesInCurDir(pszFiles);
|
||||
SetCurrentDirectory(szCurDir);
|
||||
}
|
||||
else
|
||||
{
|
||||
LastError = GetLastError();
|
||||
if (LastError == ERROR_ACCESS_DENIED)
|
||||
{
|
||||
PrintError(LastError);
|
||||
if (!OptionC)
|
||||
{
|
||||
FindClose(hFind);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
} while(FindNextFile(hFind, &FindData));
|
||||
LastError = GetLastError();
|
||||
FindClose(hFind);
|
||||
|
||||
if (LastError != ERROR_NO_MORE_FILES)
|
||||
{
|
||||
PrintError(LastError);
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int _tmain(int argc, const TCHAR *argv[])
|
||||
{
|
||||
INT i;
|
||||
LPTSTR pch;
|
||||
BOOL InvalidParameter = FALSE;
|
||||
|
||||
/* Initialize the Console Standard Streams */
|
||||
ConInitStdStreams();
|
||||
|
||||
if (argc <= 1)
|
||||
{
|
||||
ConResPuts(StdOut, IDS_HELP);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// FIXME: Convert to proper parsing, with support for /?
|
||||
|
||||
/*
|
||||
* parse command line options
|
||||
*/
|
||||
for (i = 2; i < argc; i++)
|
||||
{
|
||||
if (lstrcmpi(argv[i], _T("/T")) == 0)
|
||||
{
|
||||
OptionT = TRUE;
|
||||
}
|
||||
else if (lstrcmpi(argv[i], _T("/E")) == 0)
|
||||
{
|
||||
OptionE = TRUE;
|
||||
}
|
||||
else if (lstrcmpi(argv[i], _T("/C")) == 0)
|
||||
{
|
||||
OptionC = TRUE;
|
||||
}
|
||||
else if (lstrcmpi(argv[i], _T("/G")) == 0)
|
||||
{
|
||||
if (i + 1 < argc)
|
||||
{
|
||||
pch = _tcschr(argv[++i], _T(':'));
|
||||
if (pch != NULL)
|
||||
{
|
||||
OptionG = TRUE;
|
||||
*pch = 0;
|
||||
GUser = argv[i];
|
||||
GPerm = pch + 1;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
InvalidParameter = TRUE;
|
||||
break;
|
||||
}
|
||||
else if (lstrcmpi(argv[i], _T("/R")) == 0)
|
||||
{
|
||||
if (i + 1 < argc)
|
||||
{
|
||||
RUser = argv[++i];
|
||||
OptionR = TRUE;
|
||||
continue;
|
||||
}
|
||||
InvalidParameter = TRUE;
|
||||
break;
|
||||
}
|
||||
else if (lstrcmpi(argv[i], _T("/P")) == 0)
|
||||
{
|
||||
if (i + 1 < argc)
|
||||
{
|
||||
pch = _tcschr(argv[++i], _T(':'));
|
||||
if (pch != NULL)
|
||||
{
|
||||
OptionP = TRUE;
|
||||
*pch = 0;
|
||||
PUser = argv[i];
|
||||
PPerm = pch + 1;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
InvalidParameter = TRUE;
|
||||
break;
|
||||
}
|
||||
else if (lstrcmpi(argv[i], _T("/D")) == 0)
|
||||
{
|
||||
if (i + 1 < argc)
|
||||
{
|
||||
OptionD = TRUE;
|
||||
DUser = argv[++i];
|
||||
continue;
|
||||
}
|
||||
InvalidParameter = TRUE;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
InvalidParameter = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (InvalidParameter)
|
||||
{
|
||||
PrintError(ERROR_INVALID_PARAMETER);
|
||||
ConResPuts(StdOut, IDS_HELP);
|
||||
PrintHelp();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* /R is only valid with /E */
|
||||
if (OptionR && !OptionE)
|
||||
{
|
||||
OptionR = FALSE;
|
||||
}
|
||||
|
||||
PrintDaclsOfFiles(argv[1]);
|
||||
|
||||
if (OptionT)
|
||||
{
|
||||
ChangeACLsOfFilesInCurDir(argv[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
ChangeACLsOfFiles(argv[1]);
|
||||
TCHAR FullPath[MAX_PATH + 1];
|
||||
TCHAR *FilePart = NULL;
|
||||
WIN32_FIND_DATA FindData;
|
||||
HANDLE hFind;
|
||||
DWORD LastError;
|
||||
|
||||
if (argc > 2)
|
||||
{
|
||||
/* FIXME - parse arguments */
|
||||
}
|
||||
|
||||
/* get the full path of where we're searching in */
|
||||
if (GetFullPathName(argv[1],
|
||||
sizeof(FullPath) / sizeof(FullPath[0]),
|
||||
FullPath,
|
||||
&FilePart) != 0)
|
||||
{
|
||||
if (FilePart != NULL)
|
||||
*FilePart = _T('\0');
|
||||
}
|
||||
else
|
||||
goto Error;
|
||||
|
||||
/* find the file(s) */
|
||||
hFind = FindFirstFile(argv[1],
|
||||
&FindData);
|
||||
if (hFind != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (!(FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ||
|
||||
(_tcscmp(FindData.cFileName,
|
||||
_T(".")) &&
|
||||
_tcscmp(FindData.cFileName,
|
||||
_T(".."))))
|
||||
{
|
||||
if (argc > 2)
|
||||
{
|
||||
/* FIXME - edit or replace the descriptor */
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!PrintFileDacl(FullPath,
|
||||
FindData.cFileName))
|
||||
{
|
||||
LastError = GetLastError();
|
||||
|
||||
if (LastError == ERROR_ACCESS_DENIED)
|
||||
{
|
||||
PrintErrorMessage(LastError);
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
else
|
||||
_tprintf(_T("\n"));
|
||||
}
|
||||
}
|
||||
} while (FindNextFile(hFind,
|
||||
&FindData));
|
||||
|
||||
FindClose(hFind);
|
||||
|
||||
if (GetLastError() != ERROR_NO_MORE_FILES)
|
||||
{
|
||||
goto Error;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Error:
|
||||
PrintErrorMessage(GetLastError());
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@@ -75,9 +75,6 @@
|
||||
#ifdef LANGUAGE_SQ_AL
|
||||
#include "lang/sq-AL.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "lang/tr-TR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_UK_UA
|
||||
#include "lang/uk-UA.rc"
|
||||
#endif
|
||||
|
@@ -23,8 +23,7 @@ CACLS όνομα_αρχείου [/T] [/E] [/C] [/G χρήστης:άδειες [
|
||||
C Αλλαγή (εγγραφή)\n\
|
||||
F Πλήρης έλεγχος\n\
|
||||
/D user Αποτροπή χρήστη από προσπέλαση.\n\
|
||||
Τα Wildcards μπορούν να χρησιμοποιηθούν για να προσδιορίσουν παραπαπάνω από\n\
|
||||
ένα αρχεία στην εντολή.\n\
|
||||
Τα Wildcards μπορούν να χρησιμοποιηθούν για να προσδιορίσουν παραπαπάνω από ένα αρχεία στην εντολή.\n\
|
||||
Μπορείτε να προσδιορίσετε παρπαάνω από έναν χρήστη στην εντολή.\n\n\
|
||||
Abbreviations:\n\
|
||||
CI - Container Inherit.\n\
|
||||
|
@@ -1,41 +1,37 @@
|
||||
/* Spanish Language resource file.
|
||||
* Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */
|
||||
|
||||
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_HELP "Muestra o modifica listas de control de acceso (ACL) de archivos\n\n\
|
||||
IDS_HELP "Muestra o modifica la lista de control de accesos (ACLs) de los archivos\n\n\
|
||||
CACLS archivo [/T] [/E] [/C] [/G user:perm [...]] [/R usuario [...]]\n\
|
||||
[/P user:perm [...]] [/D usuario [...]]\n\
|
||||
archivo Mostrar ACL.\n\
|
||||
/T Cambia ACL de los archivos especificados en\n\
|
||||
archivo Mostrar ACLs.\n\
|
||||
/T Cambia ACLs de los archivos especificados en\n\
|
||||
el directorio actual y todos sus subdirectorios.\n\
|
||||
/E Edita la ACL en lugar de reemplazarla.\n\
|
||||
/C Continúa en caso de errores de acceso.\n\
|
||||
/G user:perm Da los derechos de acceso al usuario especificado.\n\
|
||||
Perm puede ser: R Leer\n\
|
||||
W Escribir\n\
|
||||
C Cambiar (escribir)\n\
|
||||
Perm puede ser: R Lectura\n\
|
||||
W Escritura\n\
|
||||
C Modificación (Escritura)\n\
|
||||
F Control total\n\
|
||||
/R usuario Revoca los derechos de acceso al usuario especificado\n\
|
||||
(unicamente válido con /E).\n\
|
||||
/R usuario Revoca los derechos de acceso al usuario especificado (unicamente válido con /E).\n\
|
||||
/P user:perm Reemplaza los derechos de acceso del usuario especificado.\n\
|
||||
Perm puede ser: N Ninguno\n\
|
||||
R Leer\n\
|
||||
W Escribir\n\
|
||||
C Cambiar (escribir)\n\
|
||||
Perm puede ser: N Nada\n\
|
||||
R Lectura\n\
|
||||
W Escritura\n\
|
||||
C Modificación (Escritura)\n\
|
||||
F Control total\n\
|
||||
/D usuario Revoca el acceso al usuario especificado.\n\
|
||||
Es posible usar comodines para especificar más de un archivo por comando.\n\
|
||||
Se puede especificar más de un usuario por comando.\n\n\
|
||||
Abreviaturas:\n\
|
||||
Abreviaciones:\n\
|
||||
CI - Herencia del contenedor.\n\
|
||||
ACE se heredará por directorios.\n\
|
||||
ACE será heredado a los directorios.\n\
|
||||
OI - Herencia del objeto.\n\
|
||||
ACE se heredará por archivos.\n\
|
||||
IO - Sólo heredar.\n\
|
||||
ACE no se aplicará al archivo o directorio actual.\n"
|
||||
ACE sera heredado a los archivos.\n\
|
||||
IO - Herencia sola.\n\
|
||||
ACE no se aplicará al archivo/directorio actual.\n"
|
||||
IDS_ABBR_CI "(CI)"
|
||||
IDS_ABBR_OI "(OI)"
|
||||
IDS_ABBR_IO "(IO)"
|
||||
|
@@ -15,8 +15,7 @@ CACLS nomfichier [/T] [/E] [/C] [/G user:perm [...]] [/R user [...]]\n\
|
||||
W Écriture\n\
|
||||
C Modification (Écriture)\n\
|
||||
F Contrôle total\n\
|
||||
/R user Supprime les droits d'accès de l'utilisateur spécifié\n\
|
||||
(valide uniquement avec /E).\n\
|
||||
/R user Supprime les droits d'accès de l'utilisateur spécifié (valide uniquement avec /E).\n\
|
||||
/P user:perm Remplace les droits d'accès de l'utilisateur spécifié.\n\
|
||||
Perm peut valoir : N Aucun \n\
|
||||
R Lecture\n\
|
||||
@@ -24,8 +23,7 @@ CACLS nomfichier [/T] [/E] [/C] [/G user:perm [...]] [/R user [...]]\n\
|
||||
C Modification (Écriture)\n\
|
||||
F Contrôle total\n\
|
||||
/D user Interdit l'accès à l'utilisateur spécifié.\n\
|
||||
Il est possible d'utiliser des caractères joker pour sélectionner plus d'un\n\
|
||||
fichier avec une commande.\n\
|
||||
Il est possible d'utiliser des caractères joker pour sélectionner plus d'un fichier avec une commande.\n\
|
||||
Il est possible de spécifier plus d'un utilisateur dans une commande.\n\n\
|
||||
Abréviations:\n\
|
||||
CI - Héritage du conteneur.\n\
|
||||
|
@@ -2,9 +2,7 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_HELP "ACL's (Access Control Lists, toegangslijsten) van bestanden weergeven\n\
|
||||
of bewerken\n\n\
|
||||
CACLS bestandsnaam [/T] [/E] [/C] [/G gebr:toeg] [/R gebruiker [...]]\n\
|
||||
IDS_HELP "ACL's (Access Control Lists, toegangslijsten) van bestanden weergeven\nof bewerken\n\nCACLS bestandsnaam [/T] [/E] [/C] [/G gebr:toeg] [/R gebruiker [...]]\n\
|
||||
[/P gebr:toeg [...]] [/D gebruiker [...]]\n\
|
||||
bestandsnaam ACL's weergeven.\n\
|
||||
/T ACL's wijzigen van opgegeven bestanden in\n\
|
||||
|
@@ -24,8 +24,7 @@ CACLS nazwa pliku [/T] [/E] [/C] [/G użytkownik:dostęp [...]] [/R użytkownik
|
||||
W Zapis\n\
|
||||
C Zmiana (zapis)\n\
|
||||
F Pełny dostęp\n\
|
||||
/R użytkownik Odwołuje prawa dostępu określonemu użytkownikowi\n\
|
||||
(działa tylko z opcją /E).\n\
|
||||
/R użytkownik Odwołuje prawa dostępu określonemu użytkownikowi (działa tylko z opcją /E).\n\
|
||||
/P użytkownik:dostęp Edytuje prawa dostępu określonego użytkownika.\n\
|
||||
Poziom dostępu:\n\
|
||||
N Brak\n\
|
||||
@@ -34,8 +33,7 @@ CACLS nazwa pliku [/T] [/E] [/C] [/G użytkownik:dostęp [...]] [/R użytkownik
|
||||
C Zmiana (zapis)\n\
|
||||
F Pełny dostęp\n\
|
||||
/D użytkownik Odbiera prawa dostępu określonemu użytkownikowi.\n\
|
||||
W jednym poleceniu można edytować prawa dostępu do wielu plików, używając\n\
|
||||
symboli wieloznacznych.\n\
|
||||
W jednym poleceniu można edytować prawa dostępu do wielu plików, używając symboli wieloznacznych.\n\
|
||||
W jednym poleceniu można edytować prawa dostępu wielu użytkowników.\n\n\
|
||||
Skróty:\n\
|
||||
CI - Dziedziczenie kontenera.\n\
|
||||
|
@@ -1,4 +1,11 @@
|
||||
/* Translator: Ștefan Fulea (stefan dot fulea at mail dot md) */
|
||||
/*
|
||||
* FILE: base/applications/cacls/lang/ro-RO.rc
|
||||
* ReactOS Project (http://www.reactos.org)
|
||||
* TRANSLATOR: Fulea Ștefan (PM on ReactOS Forum at fulea.stefan)
|
||||
* CHANGE LOG: 2011-08-20 initial translation
|
||||
* 2011-10-17 diacritics change
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
|
||||
STRINGTABLE
|
||||
@@ -11,7 +18,7 @@ CACLS nume_fișier [/T] [/E] [/C] [/G utilizator:acces [...]]\n\
|
||||
/T Modifică ACL pentru fișierele specificate în\n\
|
||||
directorul curent și toate subdirectoarele sale.\n\
|
||||
/E Editează ACL curentă evitând astfel înlocuirea ei.\n\
|
||||
/C Continuă și la erori de acces respins.\n\
|
||||
/C Continuă și la erori de acces interzis.\n\
|
||||
/G utilizator:acces Acordă drepturile de acces specificate pentru utilizator.\n\
|
||||
acces poate fi de: R Citire\n\
|
||||
W Scriere\n\
|
||||
@@ -26,8 +33,8 @@ CACLS nume_fișier [/T] [/E] [/C] [/G utilizator:acces [...]]\n\
|
||||
C De modificare (scriere)\n\
|
||||
F Deplin\n\
|
||||
/D utilizator Interzice accesul pentru utilizatorul specificat.\n\
|
||||
Utilizând metacaractere pot fi specificate mai multe fișiere.\n\
|
||||
În aceiași comandă pot fi specificați mai mulți utilizatori.\n\n\
|
||||
Se pot specifica mai multe fișiere utilizând metacaractere.\n\
|
||||
Pot fi specificați mai mulți utilizatori în aceiași comandă.\n\n\
|
||||
Abrevieri:\n\
|
||||
CI - Moștenire container.\n\
|
||||
ACE moștenită de directoare.\n\
|
||||
|
@@ -1,39 +1,38 @@
|
||||
/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */
|
||||
|
||||
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_HELP "Просмотр и изменение списков управления доступом (Access Control List, ACL) к файлам\n\n\
|
||||
CACLS имя_файла [/T] [/E] [/C] [/G имя:доступ [...]] [/R имя [...]]\n\
|
||||
[/P имя:доступ [...]] [/D имя [...]]\n\
|
||||
имя_файла Просмотр списков управления доступом.\n\
|
||||
/T Изменение списков управления доступом для указанных файлов\n\
|
||||
в текущем и вложенных каталогах.\n\
|
||||
/E Изменение списка управления доступом вместо его замены.\n\
|
||||
/C Продолжение при ошибках отказа в доступе.\n\
|
||||
/G имя:доступ Разрешения для указанных пользователей.\n\
|
||||
Доступ: R чтение\n\
|
||||
W запись\n\
|
||||
C изменение (запись)\n\
|
||||
F полный доступ\n\
|
||||
/R имя Отзыв разрешений для пользователя (только вместе с /E).\n\
|
||||
/P имя:доступ Замена разрешений указанного пользователя.\n\
|
||||
Доступ: N нет доступа\n\
|
||||
R чтение\n\
|
||||
W запись\n\
|
||||
C изменение (запись)\n\
|
||||
F полный доступ\n\
|
||||
/D имя Запрет доступа для указанного пользователя.\n\
|
||||
Для выбора нескольких файлов используются подстановочные знаки.\n\
|
||||
IDS_HELP "Отображает или изменяет списки доступа (Access Control Lists, ACLs) к файлам\n\n\
|
||||
CACLS имя_Файла [/T] [/E] [/C] [/G имя:право [...]] [/R имя [...]]\n\
|
||||
[/P имя:право[...]] [/D имя [...]]\n\
|
||||
имя_файла Вывод списков ACL.\n\
|
||||
/T Замена списков ACL для указанных файлов в текущем каталоге\n\
|
||||
и всех подкаталогах.\n\
|
||||
/E Редактирование списка ACL вместо его замены.\n\
|
||||
/C Продолжать при ошибках отказа доступа.\n\
|
||||
/G имя:право Предоставление указанному пользователю прав доступа.\n\
|
||||
Право может быть: R Чтение\n\
|
||||
W Запись\n\
|
||||
C Изменение (запись)\n\
|
||||
F Полный контроль\n\
|
||||
/R имя Отозвать права доступа для указанного пользователя\n\
|
||||
(верно только с /E).\n\
|
||||
/P имя:право Заменить права указанного пользователя.\n\
|
||||
Право может быть: N Нет доступа\n\
|
||||
R Чтение\n\
|
||||
W Запись\n\
|
||||
C Изменение (запись)\n\
|
||||
F Полный доступ\n\
|
||||
/D имя Запретить доступ для указанного пользователя.\n\
|
||||
В команде можно использовать шаблоны для обработки более одного файла.\n\
|
||||
В команде можно указывать более одного пользователя.\n\n\
|
||||
Сокращения:\n\
|
||||
CI - наследование контейнерами.\n\
|
||||
ACE наследуется каталогами.\n\
|
||||
OI - наследование объектами.\n\
|
||||
ACE наследуется файлами.\n\
|
||||
IO - только наследование.\n\
|
||||
ACE не применяется к текущему файлу или каталогу.\n"
|
||||
CI - Наследование контейнерами (Container Inherit).\n\
|
||||
ACE будет унаследован папками.\n\
|
||||
OI - Наследование объектами (Object Inherit).\n\
|
||||
ACE будет унаследован файлами.\n\
|
||||
IO - Только наследованное (Inherit Only).\n\
|
||||
ACE не будет применён к данному файлу/папке.\n"
|
||||
IDS_ABBR_CI "(CI)"
|
||||
IDS_ABBR_OI "(OI)"
|
||||
IDS_ABBR_IO "(IO)"
|
||||
|
@@ -1,76 +0,0 @@
|
||||
/* TRANSLATOR: 2015 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
|
||||
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_HELP "Kütüklerin erişim denetim dizelgelerini (ACL'lerini) görüntüler ya da değiştirir.\n\n\
|
||||
CACLS kütük adı [/T] [/E] [/C] [/G kullanıcı:izin [...]] [/R kullanıcı [...]]\n\
|
||||
[/P kullanıcı:izin [...]] [/D kullanıcı [...]]\n\
|
||||
kütük adı ACL'leri görüntüler.\n\
|
||||
/T Şimdiki dizin ve alt dizinlerin içinde\n\
|
||||
belirtilen kütülerin ACL'lerini değiştirir.\n\
|
||||
/E ACL'yi yenisiyle değiştirme yerine onu düzenle.\n\
|
||||
/C Erişim engellendi yanlışlıklarıyla sürdür.\n\
|
||||
/G kullanıcı:izin Belirtilen kullanıcı erişim yetkilerini ver.\n\
|
||||
İzin şu olabilir: R Okuma\n\
|
||||
W Yazma\n\
|
||||
C Değiştirme (yazma)\n\
|
||||
F Tüm denetim\n\
|
||||
/R kullanıcı Belirtilen kullanıcının erişim yetkilerini geri al\n\
|
||||
(yalnızca /E ile geçerli).\n\
|
||||
/P kullanıcı:izin Belirtilen kullanıcının erişim yetkilerini yenileriyle\n\
|
||||
değiştir.\n\
|
||||
İzin şu olabilir: N Yok\n\
|
||||
R Okuma\n\
|
||||
W Yazma\n\
|
||||
C Değiştirme (yazma)\n\
|
||||
F Tüm denetim\n\
|
||||
/D kullanıcı Belirtilen kullanıcı erişimini verme.\n\
|
||||
Umûmî arama damgaları, bir komutta birden çok kütük belirtmek için kullanılabilir.\n\
|
||||
Bir komutta birden çok kullanıcı belirtebilirsiniz.\n\n\
|
||||
Kısaltmalar:\n\
|
||||
CI - Kapsayıcı Devral.\n\
|
||||
ACE dizinlerle devralınacak.\n\
|
||||
OI - Nesne Devral.\n\
|
||||
ACE kütüklerle devralınacak.\n\
|
||||
IO - Yalnızca Devral.\n\
|
||||
ACE'yi şimdiki kütüğe ya da dizine uygulama.\n"
|
||||
IDS_ABBR_CI "(CI)"
|
||||
IDS_ABBR_OI "(OI)"
|
||||
IDS_ABBR_IO "(IO)"
|
||||
IDS_ABBR_FULL "F"
|
||||
IDS_ABBR_READ "R"
|
||||
IDS_ABBR_WRITE "W"
|
||||
IDS_ABBR_CHANGE "C"
|
||||
IDS_ABBR_NONE "N"
|
||||
IDS_ALLOW ""
|
||||
IDS_DENY "(VERME)"
|
||||
IDS_SPECIAL_ACCESS "(husûsî erişim:)"
|
||||
IDS_GENERIC_READ "GENERIC_READ"
|
||||
IDS_GENERIC_WRITE "GENERIC_WRITE"
|
||||
IDS_GENERIC_EXECUTE "GENERIC_EXECUTE"
|
||||
IDS_GENERIC_ALL "GENERIC_ALL"
|
||||
IDS_FILE_GENERIC_EXECUTE "FILE_GENERIC_EXECUTE"
|
||||
IDS_FILE_GENERIC_READ "FILE_GENERIC_READ"
|
||||
IDS_FILE_GENERIC_WRITE "FILE_GENERIC_WRITE"
|
||||
IDS_FILE_READ_DATA "FILE_READ_DATA"
|
||||
IDS_FILE_WRITE_DATA "FILE_WRITE_DATA"
|
||||
IDS_FILE_APPEND_DATA "FILE_APPEND_DATA"
|
||||
IDS_FILE_READ_EA "FILE_READ_EA"
|
||||
IDS_FILE_WRITE_EA "FILE_WRITE_EA"
|
||||
IDS_FILE_EXECUTE "FILE_EXECUTE"
|
||||
IDS_FILE_DELETE_CHILD "FILE_DELETE_CHILD"
|
||||
IDS_FILE_READ_ATTRIBUTES "FILE_READ_ATTRIBUTES"
|
||||
IDS_FILE_WRITE_ATTRIBUTES "FILE_WRITE_ATTRIBUTES"
|
||||
IDS_MAXIMUM_ALLOWED "MAXIMUM_ALLOWED"
|
||||
IDS_ACCESS_SYSTEM_SECURITY "ACCESS_SYSTEM_SECURITY"
|
||||
IDS_SPECIFIC_RIGHTS_ALL "SPECIFIC_RIGHTS_ALL"
|
||||
IDS_STANDARD_RIGHTS_REQUIRED "STANDARD_RIGHTS_REQUIRED"
|
||||
IDS_SYNCHRONIZE "SYNCHRONIZE"
|
||||
IDS_WRITE_OWNER "WRITE_OWNER"
|
||||
IDS_WRITE_DAC "WRITE_DAC"
|
||||
IDS_READ_CONTROL "READ_CONTROL"
|
||||
IDS_DELETE "DELETE"
|
||||
IDS_STANDARD_RIGHTS_ALL "STANDARD_RIGHTS_ALL"
|
||||
END
|
@@ -2,14 +2,11 @@
|
||||
#define _CACLS_PRECOMP_H
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <tchar.h>
|
||||
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <winuser.h> // For CharPrev
|
||||
#include <winuser.h>
|
||||
#include <sddl.h>
|
||||
|
||||
#include <conutils.h>
|
||||
#include <tchar.h>
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
|
@@ -2,6 +2,7 @@
|
||||
add_definitions(-DDISABLE_HTMLHELP_SUPPORT=1)
|
||||
|
||||
list(APPEND SOURCE
|
||||
about.c
|
||||
convert.c
|
||||
function.c
|
||||
rpn.c
|
||||
@@ -9,13 +10,13 @@ list(APPEND SOURCE
|
||||
winmain.c
|
||||
calc.h)
|
||||
|
||||
file(GLOB calc_rc_deps res/*.*)
|
||||
add_rc_deps(resource.rc ${calc_rc_deps})
|
||||
add_executable(calc ${SOURCE} resource.rc)
|
||||
set_module_type(calc win32gui UNICODE)
|
||||
add_importlibs(calc advapi32 user32 shell32 gdi32 msvcrt kernel32)
|
||||
add_importlibs(calc advapi32 user32 gdi32 msvcrt kernel32)
|
||||
|
||||
if(MSVC)
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
||||
target_link_libraries(calc mingwex)
|
||||
elseif(MSVC)
|
||||
add_importlibs(calc ntdll)
|
||||
endif()
|
||||
|
||||
|
33
reactos/base/applications/calc/about.c
Normal file
33
reactos/base/applications/calc/about.c
Normal file
@@ -0,0 +1,33 @@
|
||||
#include "calc.h"
|
||||
|
||||
#define MAX_LICENSE_SIZE 1000 // it's enought!
|
||||
|
||||
INT_PTR CALLBACK AboutDlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
|
||||
{
|
||||
TCHAR *license;
|
||||
|
||||
switch (msg) {
|
||||
case WM_INITDIALOG:
|
||||
license = (TCHAR *)alloca(MAX_LICENSE_SIZE*sizeof(TCHAR));
|
||||
if (LoadString(calc.hInstance, IDS_STRING_LICENSE, license, MAX_LICENSE_SIZE))
|
||||
SendDlgItemMessage(hWnd, IDC_EDIT_LICENSE, WM_SETTEXT, 0, (LPARAM)license);
|
||||
/* Update software version */
|
||||
SendDlgItemMessage(hWnd, IDC_TEXT_VERSION, WM_GETTEXT, (WPARAM)MAX_LICENSE_SIZE, (LPARAM)license);
|
||||
_tcscat(license, CALC_VERSION);
|
||||
SendDlgItemMessage(hWnd, IDC_TEXT_VERSION, WM_SETTEXT, 0, (LPARAM)license);
|
||||
return TRUE;
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wp)) {
|
||||
case IDOK:
|
||||
EndDialog(hWnd, 0);
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_CLOSE:
|
||||
EndDialog(hWnd, 0);
|
||||
return 0;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
@@ -41,6 +41,8 @@
|
||||
#define IDC_STATIC ((DWORD)-1)
|
||||
#endif
|
||||
|
||||
#define CALC_VERSION TEXT("1.11")
|
||||
|
||||
#define MAX_CALC_SIZE 256
|
||||
|
||||
/*#define USE_KEYBOARD_HOOK*/
|
||||
|
@@ -331,7 +331,7 @@ It deletes the current calculation and all sub expressions.
|
||||
Shortcut from keyboard: ESC
|
||||
|
||||
F-E
|
||||
It enables or it disables the fixed scientific notation.
|
||||
It enables or it disables the fixed scietific notation.
|
||||
Shortcut from keyboard: V
|
||||
|
||||
0 1 2 3 4 5 6 7 8 9
|
||||
|
@@ -296,6 +296,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "За ReactOS Calc"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "Добре", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "Изчислителят на РеактОС", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Версия:", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Написано от Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Статистическа кутия"
|
||||
@@ -320,8 +336,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Изглед"
|
||||
BEGIN
|
||||
MENUITEM "Обикновен", IDM_VIEW_STANDARD
|
||||
MENUITEM "Научен", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Обикновен", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Научен", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Преобразуване", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Шестнaдесетичен\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -352,8 +368,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Изглед"
|
||||
BEGIN
|
||||
MENUITEM "Стандартно", IDM_VIEW_STANDARD
|
||||
MENUITEM "Научен", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Стандартно", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Научен", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Преобразуване", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Шестнaдесетичен\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -385,8 +401,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Изглед"
|
||||
BEGIN
|
||||
MENUITEM "Стандартно", IDM_VIEW_STANDARD
|
||||
MENUITEM "Научен", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Стандартно", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Научен", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Преобразуване", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Разделяне на хилядите", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -403,17 +419,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS Calc is free software released under GNU GPL license.\r\n\r\nYou can get a copy of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nYou can also get a translation of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Грешка"
|
||||
IDS_QUICKHELP "Бърза помощ"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Изчислителят на РеактОС"
|
||||
IDS_AUTHOR "Написано от Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -295,6 +295,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "O ReactOS Kalkulačce"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "ReactOS Kalkulačka", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Verze ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Autor: Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Statistické výpočty"
|
||||
@@ -319,8 +335,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Zobrazit"
|
||||
BEGIN
|
||||
MENUITEM "Standardní", IDM_VIEW_STANDARD
|
||||
MENUITEM "Vědecká", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standardní", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Vědecká", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Převody", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Šestnáctkově\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -351,8 +367,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Zobrazit"
|
||||
BEGIN
|
||||
MENUITEM "Standardní", IDM_VIEW_STANDARD
|
||||
MENUITEM "Vědecká", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standardní", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Vědecká", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Převody", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Šestnáctkově\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -384,8 +400,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Zobrazit"
|
||||
BEGIN
|
||||
MENUITEM "Standardní", IDM_VIEW_STANDARD
|
||||
MENUITEM "Vědecká", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standardní", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Vědecká", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Převody", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Seskupování číslic", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -402,17 +418,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS kalkulačka je svobodný software vydaný pod licencí GNU GPL.\r\n\r\nZde najdete znění GNU GPL licence:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nZde také najdete překlad GNU GPL licence:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Chyba"
|
||||
IDS_QUICKHELP "Rychlá nápověda"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "ReactOS Kalkulačka"
|
||||
IDS_AUTHOR "Autor: Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -290,6 +290,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Über ReactOS Rechner"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "ReactOS Rechner", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Version ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Geschrieben von Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Statistikbox"
|
||||
@@ -314,8 +330,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Ansicht"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Konversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -346,8 +362,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Ansicht"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Konversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -379,8 +395,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Ansicht"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Konversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Zifferngruppierung", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -397,17 +413,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS Rechner ist freie Software, herausgegeben unter der GNU GPL Lizenz.\r\n\r\nSie können hier eine Kopie der GNU GPL Lizenz erhalten:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nSie können hier auch eine Übersetzung der GNU GPL Lizenz erhalten:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Fehler"
|
||||
IDS_QUICKHELP "Schnellhilfe"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "ReactOS Rechner"
|
||||
IDS_AUTHOR "Geschrieben von Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Konversionstypen */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -290,6 +290,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Σχετικά..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "Αριθμομηχανή", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Έκδοση ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Από τον Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Statistics box"
|
||||
@@ -314,8 +330,8 @@ BEGIN
|
||||
END
|
||||
POPUP "View"
|
||||
BEGIN
|
||||
MENUITEM "Τυπική", IDM_VIEW_STANDARD
|
||||
MENUITEM "Επιστημονική", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Τυπική", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Επιστημονική", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Μετατροπή", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -346,8 +362,8 @@ BEGIN
|
||||
END
|
||||
POPUP "View"
|
||||
BEGIN
|
||||
MENUITEM "Τυπική", IDM_VIEW_STANDARD
|
||||
MENUITEM "Επιστημονική", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Τυπική", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Επιστημονική", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Μετατροπή", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Δεκαεξαδικό\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -379,8 +395,8 @@ BEGIN
|
||||
END
|
||||
POPUP "View"
|
||||
BEGIN
|
||||
MENUITEM "Τυπική", IDM_VIEW_STANDARD
|
||||
MENUITEM "Επιστημονική", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Τυπική", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Επιστημονική", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Μετατροπή", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Ομαδοποίηση ψηφίων", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -397,17 +413,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS Calc is free software released under GNU GPL license.\r\n\r\nYou can get a copy of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nYou can also get a translation of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Σφάλμα"
|
||||
IDS_QUICKHELP "Quick help"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Αριθμομηχανή"
|
||||
IDS_AUTHOR "Από τον Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -290,6 +290,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "About ReactOS Calc"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "ReactOS Calculator", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Version ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Written by Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Statistics box"
|
||||
@@ -307,89 +323,89 @@ END
|
||||
|
||||
IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "&Edit"
|
||||
POPUP "Edit"
|
||||
BEGIN
|
||||
MENUITEM "&Copy\tCtrl+C", IDM_EDIT_COPY
|
||||
MENUITEM "&Paste\tCtrl+V", IDM_EDIT_PASTE
|
||||
MENUITEM "Copy\tCtrl+C", IDM_EDIT_COPY
|
||||
MENUITEM "Paste\tCtrl+V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&View"
|
||||
POPUP "View"
|
||||
BEGIN
|
||||
MENUITEM "S&tandard", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Scientific", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "C&onversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Scientific", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "&Decimal\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "&Octal\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "&Binary\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "Decimal\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "Octal\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "Binary\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "D&egrees\tF2", IDM_VIEW_DEG, CHECKED
|
||||
MENUITEM "&Radians\tF3", IDM_VIEW_RAD, CHECKED
|
||||
MENUITEM "&Gradians\tF4", IDM_VIEW_GRAD, CHECKED
|
||||
MENUITEM "Degrees\tF2", IDM_VIEW_DEG, CHECKED
|
||||
MENUITEM "Radians\tF3", IDM_VIEW_RAD, CHECKED
|
||||
MENUITEM "Gradians\tF4", IDM_VIEW_GRAD, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Group d&igits", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Group digits", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "&Help"
|
||||
POPUP "Help"
|
||||
BEGIN
|
||||
MENUITEM "&Help Topics", IDM_HELP_HELP
|
||||
MENUITEM "Help topics", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&About ReactOS Calc", IDM_HELP_ABOUT
|
||||
MENUITEM "About ReactOS Calc", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "&Edit"
|
||||
POPUP "Edit"
|
||||
BEGIN
|
||||
MENUITEM "&Copy\tCtrl+C", IDM_EDIT_COPY
|
||||
MENUITEM "&Paste\tCtrl+V", IDM_EDIT_PASTE
|
||||
MENUITEM "Copy\tCtrl+C", IDM_EDIT_COPY
|
||||
MENUITEM "Paste\tCtrl+V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&View"
|
||||
POPUP "View"
|
||||
BEGIN
|
||||
MENUITEM "S&tandard", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Scientific", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "C&onversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Scientific", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "&Decimal\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "&Octal\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "&Binary\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "Decimal\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "Octal\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "Binary\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Qword\tF12", IDM_VIEW_QWORD, CHECKED
|
||||
MENUITEM "&Dword\tF2", IDM_VIEW_DWORD, CHECKED
|
||||
MENUITEM "&Word\tF3", IDM_VIEW_WORD, CHECKED
|
||||
MENUITEM "B&yte\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 "Group d&igits", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Group digits", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "&Help"
|
||||
POPUP "Help"
|
||||
BEGIN
|
||||
MENUITEM "&Help Topics", IDM_HELP_HELP
|
||||
MENUITEM "Help topics", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&About ReactOS Calc", IDM_HELP_ABOUT
|
||||
MENUITEM "About ReactOS Calc", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "&Edit"
|
||||
POPUP "Edit"
|
||||
BEGIN
|
||||
MENUITEM "&Copy\tCtrl+C", IDM_EDIT_COPY
|
||||
MENUITEM "&Paste\tCtrl+V", IDM_EDIT_PASTE
|
||||
MENUITEM "Copy\tCtrl+C", IDM_EDIT_COPY
|
||||
MENUITEM "Paste\tCtrl+V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&View"
|
||||
POPUP "View"
|
||||
BEGIN
|
||||
MENUITEM "S&tandard", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Scientific", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "C&onversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Scientific", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Group d&igits", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Group digits", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "&Help"
|
||||
POPUP "Help"
|
||||
BEGIN
|
||||
MENUITEM "&Help Topics", IDM_HELP_HELP
|
||||
MENUITEM "Help topics", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&About ReactOS Calc", IDM_HELP_ABOUT
|
||||
MENUITEM "About ReactOS Calc", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -397,17 +413,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS Calc is free software released under GNU GPL license.\r\n\r\nYou can get a copy of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nYou can also get a translation of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Error"
|
||||
IDS_QUICKHELP "Quick help"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "ReactOS Calculator"
|
||||
IDS_AUTHOR "Written by Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -1,7 +1,6 @@
|
||||
/*
|
||||
* Spanish Language resource file
|
||||
* Traducido por: Javier Remacha 2008
|
||||
* Corregido por: Ismael Ferreras Morezuelas 2014
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
||||
@@ -10,7 +9,7 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
||||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculadora de ReactOS"
|
||||
CAPTION "Calculadora ReactOS"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -21,7 +20,7 @@ BEGIN
|
||||
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
|
||||
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
|
||||
CTEXT "", IDC_TEXT_PARENT, 93, 38, 18, 16, SS_CENTERIMAGE, WS_EX_CLIENTEDGE
|
||||
CTEXT "", IDC_TEXT_MEMORY, 126, 38, 18, 16, SS_CENTERIMAGE, WS_EX_CLIENTEDGE
|
||||
PUSHBUTTON "Sta", IDC_BUTTON_STA, 5, 60, 24, 18, BS_CENTER | BS_VCENTER |
|
||||
@@ -143,14 +142,14 @@ BEGIN
|
||||
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
|
||||
CONTROL "Sexagesimal", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
|
||||
CONTROL "Radián", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
|
||||
CONTROL "Centesimal", 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 "Atrás", IDC_BUTTON_BACK, 177, 38, 43, 18, BS_CENTER |
|
||||
PUSHBUTTON "Back", 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
|
||||
@@ -158,7 +157,7 @@ END
|
||||
|
||||
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculadora de ReactOS"
|
||||
CAPTION "Calculadora ReactOS"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
@@ -223,7 +222,7 @@ END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Calculadora de ReactOS"
|
||||
CAPTION "ReactOS Calculator"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
@@ -241,7 +240,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 "Atrás", IDC_BUTTON_BACK, "Button", BS_OWNERDRAW | BS_CENTER |
|
||||
CONTROL "Back", 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 |
|
||||
@@ -296,6 +295,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Acerca de Calculadora ReactOS"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "Aceptar", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "Calculadora ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Versión ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Escrita por Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Cuadro de estadísticas"
|
||||
@@ -320,8 +335,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Ver"
|
||||
BEGIN
|
||||
MENUITEM "Estándar", IDM_VIEW_STANDARD
|
||||
MENUITEM "Científica", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Estándar", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Científica", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversión", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hexadecimal\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -329,17 +344,17 @@ BEGIN
|
||||
MENUITEM "Octal\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "Binario\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Grados\tF2", IDM_VIEW_DEG, CHECKED
|
||||
MENUITEM "Radianes\tF3", IDM_VIEW_RAD, CHECKED
|
||||
MENUITEM "Gradianes\tF4", IDM_VIEW_GRAD, CHECKED
|
||||
MENUITEM "Sexagesimal\tF2", IDM_VIEW_DEG, CHECKED
|
||||
MENUITEM "Radián\tF3", IDM_VIEW_RAD, CHECKED
|
||||
MENUITEM "Centesimal\tF4", IDM_VIEW_GRAD, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Agrupar dígitos", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Número de dígitos en grupo", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "Ayuda"
|
||||
BEGIN
|
||||
MENUITEM "Temas de ayuda", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Acerca de la Calculadora de ReactOS", IDM_HELP_ABOUT
|
||||
MENUITEM "Acerca de Calculadora ReactOS", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -352,8 +367,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Ver"
|
||||
BEGIN
|
||||
MENUITEM "Estándar", IDM_VIEW_STANDARD
|
||||
MENUITEM "Científica", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Estándar", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Científica", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversión", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hexadecimal\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -366,13 +381,13 @@ BEGIN
|
||||
MENUITEM "Word\tF3", IDM_VIEW_WORD, CHECKED
|
||||
MENUITEM "Byte\tF4", IDM_VIEW_BYTE, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Agrupar dígitos", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Número de dígitos en grupo", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "Ayuda"
|
||||
BEGIN
|
||||
MENUITEM "Temas de ayuda", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Acerca de la Calculadora de ReactOS", IDM_HELP_ABOUT
|
||||
MENUITEM "Acerca de Calculadora ReactOS", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -385,17 +400,17 @@ BEGIN
|
||||
END
|
||||
POPUP "Ver"
|
||||
BEGIN
|
||||
MENUITEM "Estándar", IDM_VIEW_STANDARD
|
||||
MENUITEM "Científica", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Estándar", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Científica", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversión", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Agrupar dígitos", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Número de dígitos en grupo", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "Ayuda"
|
||||
BEGIN
|
||||
MENUITEM "Temas de ayuda", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Acerca de la Calculadora de ReactOS", IDM_HELP_ABOUT
|
||||
MENUITEM "Acerca de Calculadora ReactOS", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -403,17 +418,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "Calculadora ReactOS es software gratuito realizado bajo licencia GNU GPL.\r\n\r\nPuedes coger una copia de la licencia GNU GPL aquí:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nPuedes también coger una traducción de la licencia GNU GPL aquí:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Error"
|
||||
IDS_QUICKHELP "Ayuda rápida"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Calculadora de ReactOS"
|
||||
IDS_AUTHOR "Creada por Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
@@ -435,9 +444,9 @@ END
|
||||
/* Angles */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ANGLE_DEGREES "Grados"
|
||||
IDS_ANGLE_GRADIANS "Gradianes"
|
||||
IDS_ANGLE_RADIANS "Radianes"
|
||||
IDS_ANGLE_DEGREES "Grados sexagesimales"
|
||||
IDS_ANGLE_GRADIANS "Grados centesimales"
|
||||
IDS_ANGLE_RADIANS "Radianes"
|
||||
END
|
||||
|
||||
/* Areas */
|
||||
@@ -447,7 +456,7 @@ BEGIN
|
||||
IDS_AREA_ACRES_BRAZIL "Acres (Brasil)"
|
||||
IDS_AREA_ACRES_FRANCE "Acres (Francia)"
|
||||
IDS_AREA_ACRES_SCOTS "Acres (Escocia)"
|
||||
IDS_AREA_ACRES_US "Acres (EE.UU.)"
|
||||
IDS_AREA_ACRES_US "Acres (US)"
|
||||
IDS_AREA_ARES "Área"
|
||||
IDS_AREA_CHOU "Chou"
|
||||
IDS_AREA_DANBO "Danbo"
|
||||
@@ -471,10 +480,10 @@ BEGIN
|
||||
IDS_AREA_SQUARE_METER "Metros cuadrado"
|
||||
IDS_AREA_SQUARE_MILES "Millas cuadradas"
|
||||
IDS_AREA_SQUARE_MILLIMETERS "Milímetros cuadrados"
|
||||
IDS_AREA_SQUARE_SHAKU "Shaku cuadrado"
|
||||
IDS_AREA_SQUARE_TSUEN "Tsuen cuadrados"
|
||||
IDS_AREA_SQUARE_VA "Va cuadrados" /* ??? (unused in the source code) */
|
||||
IDS_AREA_SQUARE_YARD "Yarda cuadrada"
|
||||
IDS_AREA_SQUARE_SHAKU "Square shaku"
|
||||
IDS_AREA_SQUARE_TSUEN "Square tsuen"
|
||||
IDS_AREA_SQUARE_VA "Square va"
|
||||
IDS_AREA_SQUARE_YARD "Square yard"
|
||||
IDS_AREA_TAN "Tan"
|
||||
IDS_AREA_TSUBO "Tsubo"
|
||||
END
|
||||
@@ -482,48 +491,48 @@ END
|
||||
/* Consumptions */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CONSUMPTION_KM_PER_L "Kilómetros/litro"
|
||||
IDS_CONSUMPTION_L_PER_100_KM "Litros/100 kilómetros"
|
||||
IDS_CONSUMPTION_KM_PER_L "Kilometros/litro"
|
||||
IDS_CONSUMPTION_L_PER_100_KM "Litros/100 kilometros"
|
||||
IDS_CONSUMPTION_MILES_GALLON_UK "Millas/galón (UK)"
|
||||
IDS_CONSUMPTION_MILES_GALLON_US "Millas/galón (EE.UU.)"
|
||||
IDS_CONSUMPTION_MILES_GALLON_US "Millas/galón (US)"
|
||||
END
|
||||
|
||||
/* Currencies */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CURRENCY_AUSTRIAN_SCHILLING "Schilling austriaco"
|
||||
IDS_CURRENCY_BELGIAN_FRANC "Franco belga"
|
||||
IDS_CURRENCY_CYPRIOT_POUND "Libra chipriota"
|
||||
IDS_CURRENCY_CZECH_KORUNA "Corona checa"
|
||||
IDS_CURRENCY_DEUTSCHE_MARK "Marco alemán"
|
||||
IDS_CURRENCY_DUTCH_GUILDER "Florín neerlandés"
|
||||
IDS_CURRENCY_AUSTRIAN_SCHILLING "Schilling Austriaco"
|
||||
IDS_CURRENCY_BELGIAN_FRANC "Franco Belga"
|
||||
IDS_CURRENCY_CYPRIOT_POUND "Libra Chipriota"
|
||||
IDS_CURRENCY_CZECH_KORUNA "Corona Checa"
|
||||
IDS_CURRENCY_DEUTSCHE_MARK "Marco Alemán"
|
||||
IDS_CURRENCY_DUTCH_GUILDER "Florín Neerlandés"
|
||||
IDS_CURRENCY_EURO "Euro"
|
||||
IDS_CURRENCY_FINNISH_MARKKA "Marco finlandés"
|
||||
IDS_CURRENCY_FRENCH_FRANC "Franco frances"
|
||||
IDS_CURRENCY_GREEK_DRACHMA "Drachma griego"
|
||||
IDS_CURRENCY_IRISH_POUND "Libra irlandesa"
|
||||
IDS_CURRENCY_ITALIAN_LIRA "Lira italiana"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Franco luxemburgués"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Lira maltesa"
|
||||
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"
|
||||
IDS_CURRENCY_FINNISH_MARKKA "Marco Finlandés"
|
||||
IDS_CURRENCY_FRENCH_FRANC "Franco Frances"
|
||||
IDS_CURRENCY_GREEK_DRACHMA "Drachma Griego"
|
||||
IDS_CURRENCY_IRISH_POUND "Libra Irlandesa"
|
||||
IDS_CURRENCY_ITALIAN_LIRA "Lira Italiana"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Franco Luxemburgués"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Lira Maltesa"
|
||||
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"
|
||||
END
|
||||
|
||||
/* Energies */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ENERGY_15_C_CALORIES "Calorías a 15°C"
|
||||
IDS_ENERGY_15_C_CALORIES "15 °C calorías"
|
||||
IDS_ENERGY_BTUS "BTU"
|
||||
IDS_ENERGY_ERGS "Ergios"
|
||||
IDS_ENERGY_EVS "Electronvoltio"
|
||||
IDS_ENERGY_EVS "Electronovoltios"
|
||||
IDS_ENERGY_FOOT_POUNDS "Ft·Lbs"
|
||||
IDS_ENERGY_IT_CALORIES "Tabla internacional de calorías"
|
||||
IDS_ENERGY_IT_KILOCALORIES "Tabla internacional de kilocalorías"
|
||||
IDS_ENERGY_JOULES "Julios"
|
||||
IDS_ENERGY_KILOJOULES "Kilojulios"
|
||||
IDS_ENERGY_KILOWATT_HOURS "Kilovatios hora"
|
||||
IDS_ENERGY_KILOWATT_HOURS "Kilowatios hora"
|
||||
IDS_ENERGY_NUTRITION_CALORIES "Calorías nutricionales"
|
||||
IDS_ENERGY_TH_CALORIES "Calorías termoquímicas"
|
||||
END
|
||||
@@ -532,16 +541,16 @@ END
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_LENGTH_ANGSTROMS "Ångströms"
|
||||
IDS_LENGTH_ASTRONOMICAL_UNITS "Unidades astronómicas"
|
||||
IDS_LENGTH_BARLEYCORNS "Granos de cebada"
|
||||
IDS_LENGTH_ASTRONOMICAL_UNITS "Astronomical units"
|
||||
IDS_LENGTH_BARLEYCORNS "Barleycorns"
|
||||
IDS_LENGTH_CENTIMETERS "Centímetros"
|
||||
IDS_LENGTH_CHAINS_UK "Cadenas (UK)"
|
||||
IDS_LENGTH_CHI "Chi"
|
||||
IDS_LENGTH_CHOU "Chou"
|
||||
IDS_LENGTH_CHR "Chr"
|
||||
IDS_LENGTH_CUN "Cun"
|
||||
IDS_LENGTH_FATHOMS "Brazas"
|
||||
IDS_LENGTH_FATHOMS_HUNGARY "Brazas (Hungría)"
|
||||
IDS_LENGTH_FATHOMS "Fathoms"
|
||||
IDS_LENGTH_FATHOMS_HUNGARY "Fathoms (Hungary)"
|
||||
IDS_LENGTH_FEET "Pies"
|
||||
IDS_LENGTH_FURLONGS "Furlongs"
|
||||
IDS_LENGTH_GAN "Gan"
|
||||
@@ -553,7 +562,7 @@ BEGIN
|
||||
IDS_LENGTH_KABIET "Kabiet"
|
||||
IDS_LENGTH_KEN "Ken"
|
||||
IDS_LENGTH_KEUB "Keub"
|
||||
IDS_LENGTH_KILOMETERS "Kilómetros"
|
||||
IDS_LENGTH_KILOMETERS "Kilometros"
|
||||
IDS_LENGTH_LAR "Lar"
|
||||
IDS_LENGTH_LIGHT_YEARS "Años luz"
|
||||
IDS_LENGTH_LINKS_UK "Links (UK)"
|
||||
@@ -561,7 +570,7 @@ BEGIN
|
||||
IDS_LENGTH_MICRONS "Micrómetros"
|
||||
IDS_LENGTH_MILES "Millas"
|
||||
IDS_LENGTH_MILLIMETERS "Milímetros"
|
||||
IDS_LENGTH_NAUTICAL_MILES "Millas náuticas"
|
||||
IDS_LENGTH_NAUTICAL_MILES "Millas nauticas"
|
||||
IDS_LENGTH_NIEU "Nieu"
|
||||
IDS_LENGTH_PARSECS "Parsecs"
|
||||
IDS_LENGTH_PICAS "Picas"
|
||||
@@ -571,11 +580,11 @@ BEGIN
|
||||
IDS_LENGTH_SAWK "Sawk"
|
||||
IDS_LENGTH_SEN "Sen"
|
||||
IDS_LENGTH_SHAKU "Shaku"
|
||||
IDS_LENGTH_SPAN "Palmo"
|
||||
IDS_LENGTH_SPAN "Span"
|
||||
IDS_LENGTH_SUN "Sun"
|
||||
IDS_LENGTH_TSUEN "Tsuen"
|
||||
IDS_LENGTH_VA "Va"
|
||||
IDS_LENGTH_YARDS "Yardas"
|
||||
IDS_LENGTH_YARDS "Yards"
|
||||
IDS_LENGTH_YOTE "Yote"
|
||||
IDS_LENGTH_ZHANG "Zhang"
|
||||
END
|
||||
@@ -586,8 +595,8 @@ BEGIN
|
||||
IDS_POWER_BTUS_PER_MINUTE "BTU/Minuto"
|
||||
IDS_POWER_FPS_PER_MINUTE "Ft·Lbs/Minuto"
|
||||
IDS_POWER_HORSEPOWER "Caballos de vapor"
|
||||
IDS_POWER_KILOWATTS "Kilovatios"
|
||||
IDS_POWER_MEGAWATTS "Megavatios"
|
||||
IDS_POWER_KILOWATTS "Kilowatios"
|
||||
IDS_POWER_MEGAWATTS "Megawatios"
|
||||
IDS_POWER_WATTS "Watios"
|
||||
END
|
||||
|
||||
@@ -600,7 +609,7 @@ BEGIN
|
||||
IDS_PRESSURE_KILOPASCALS "Hectopascales"
|
||||
IDS_PRESSURE_MM_OF_MERCURY "Milímetros de mercurio"
|
||||
IDS_PRESSURE_PASCALS "Pascales"
|
||||
IDS_PRESSURE_PSI "PSI"
|
||||
IDS_PRESSURE_PSI "Libras fuerza por pulgada cuadrada"
|
||||
END
|
||||
|
||||
/* Temperatures */
|
||||
@@ -617,7 +626,7 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_TIME_DAYS "Días"
|
||||
IDS_TIME_HOURS "Horas"
|
||||
IDS_TIME_NANOSECONDS "Nanosegundos"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "Microsegundos"
|
||||
IDS_TIME_MILLISECONDS "Milisegundos"
|
||||
IDS_TIME_MINUTES "Minutos"
|
||||
@@ -632,8 +641,8 @@ BEGIN
|
||||
IDS_VELOCITY_CMS_SECOND "Centímetros/segundo"
|
||||
IDS_VELOCITY_FEET_HOUR "Pies/hora"
|
||||
IDS_VELOCITY_FEET_SECOND "Pies/segundo"
|
||||
IDS_VELOCITY_KILOMETERS_HOUR "Kilómetros/hora"
|
||||
IDS_VELOCITY_KNOTS "Nudos"
|
||||
IDS_VELOCITY_KILOMETERS_HOUR "Kilometros/hora"
|
||||
IDS_VELOCITY_KNOTS "Knots"
|
||||
IDS_VELOCITY_MACH "Mach"
|
||||
IDS_VELOCITY_METERS_SECOND "Metros/segundo"
|
||||
IDS_VELOCITY_MILES_HOUR "Millas/hora"
|
||||
@@ -643,10 +652,10 @@ END
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_VOLUME_BARRELS_UK "Barriles (UK)"
|
||||
IDS_VOLUME_BARRELS_OIL "Barriles de petróleo"
|
||||
IDS_VOLUME_BARRELS_OIL "Barriles de petroleo"
|
||||
IDS_VOLUME_BUN "Bun"
|
||||
IDS_VOLUME_BUSHELS_UK "Celemín (UK)"
|
||||
IDS_VOLUME_BUSHELS_US "Celemín (EE.UU.)"
|
||||
IDS_VOLUME_BUSHELS_US "Celemín (US)"
|
||||
IDS_VOLUME_CUBIC_CENTIMETERS "Centímetros cúbicos"
|
||||
IDS_VOLUME_CUBIC_FEET "Píes cúbicos"
|
||||
IDS_VOLUME_CUBIC_INCHES "Pulgadas cúbicas"
|
||||
@@ -654,10 +663,10 @@ BEGIN
|
||||
IDS_VOLUME_CUBIC_YARDS "Yardas cúbicas"
|
||||
IDS_VOLUME_DOE "Doe"
|
||||
IDS_VOLUME_FLUID_OUNCES_UK "Onza líquida (UK)"
|
||||
IDS_VOLUME_FLUID_OUNCES_US "Onza líquida (EE.UU.)"
|
||||
IDS_VOLUME_FLUID_OUNCES_US "Onza líquida (US)"
|
||||
IDS_VOLUME_GALLONS_UK "Galones (UK)"
|
||||
IDS_VOLUME_GALLONS_DRY_US "Galones, secos (EE.UU.)"
|
||||
IDS_VOLUME_GALLONS_LIQUID_US "Galones, líquidos (EE.UU.)"
|
||||
IDS_VOLUME_GALLONS_DRY_US "Galones, dry (US)"
|
||||
IDS_VOLUME_GALLONS_LIQUID_US "Galones, liquid (US)"
|
||||
IDS_VOLUME_GOU "Gou"
|
||||
IDS_VOLUME_HOP "Hop"
|
||||
IDS_VOLUME_ICCE "Icce"
|
||||
@@ -666,11 +675,11 @@ BEGIN
|
||||
IDS_VOLUME_MAL "Mal"
|
||||
IDS_VOLUME_MILLILITERS "Mililitros"
|
||||
IDS_VOLUME_PINTS_UK "Pintas (UK)"
|
||||
IDS_VOLUME_PINTS_DRY_US "Pintas, secas (EE.UU.)"
|
||||
IDS_VOLUME_PINTS_LIQUID_US "Pintas, líquidas (EE.UU.)"
|
||||
IDS_VOLUME_PINTS_DRY_US "Pintas, dry (US)"
|
||||
IDS_VOLUME_PINTS_LIQUID_US "Pintas, liquid (US)"
|
||||
IDS_VOLUME_QUARTS_UK "Cuartos (UK)"
|
||||
IDS_VOLUME_QUARTS_DRY_US "Cuartos, secos (EE.UU.)"
|
||||
IDS_VOLUME_QUARTS_LIQUID_US "Cuartos, líquidos (EE.UU.)"
|
||||
IDS_VOLUME_QUARTS_DRY_US "Cuartos, dry (US)"
|
||||
IDS_VOLUME_QUARTS_LIQUID_US "Cuartos, liquid (US)"
|
||||
IDS_VOLUME_SEKI "Seki"
|
||||
IDS_VOLUME_SYOU "Syou"
|
||||
IDS_VOLUME_TANANLOUNG "Tananloung"
|
||||
@@ -700,11 +709,11 @@ BEGIN
|
||||
IDS_WEIGHT_OUNCES_AVOIRDUPOIS "Onza, avoirdupois"
|
||||
IDS_WEIGHT_OUNCES_TROY "Onza, troy"
|
||||
IDS_WEIGHT_POUNDS "Libras"
|
||||
IDS_WEIGHT_QUINTAL_METRIC "Quintal (métrico)"
|
||||
IDS_WEIGHT_QUINTAL_METRIC "Quintal (metric)"
|
||||
IDS_WEIGHT_SALOUNG "Saloung"
|
||||
IDS_WEIGHT_STONES "Stones"
|
||||
IDS_WEIGHT_TAMLUNG "Tamlung"
|
||||
IDS_WEIGHT_TONNES "Toneladas"
|
||||
IDS_WEIGHT_TONS_UK "Toneladas (UK)"
|
||||
IDS_WEIGHT_TONS_US "Toneladas (EE.UU.)"
|
||||
IDS_WEIGHT_TONS_US "Toneladas (US)"
|
||||
END
|
||||
|
@@ -290,6 +290,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "À propos de la Calculatrice ReactOS"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "Calculatrice ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Version ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "par Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Statistiques"
|
||||
@@ -314,8 +330,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Affichage"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Scientifique", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Scientifique", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hexadécimal\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -346,8 +362,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Affichage"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Scientifique", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Scientifique", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hexadécimal\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -379,8 +395,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Affichage"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Scientifique", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Scientifique", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversion", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Grouper les chiffres", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -397,17 +413,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "Calculatrice ReactOS est un logiciel libre distribué sous licence GNU GPL.\r\n\r\nVous pouvez obtenir une copie de la licence GNU GPL ici:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nVous pouvez aussi obtenir une traduction de la licence GNU GPL ici:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Erreur"
|
||||
IDS_QUICKHELP "Aide rapide"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Calculatrice ReactOS"
|
||||
IDS_AUTHOR "par Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -292,6 +292,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "אודות המחשבון ReactOS"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "אישור", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "מחשבון ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "גירסה ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "נכתבה על ידי Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "תיבת סטטיסטיקה"
|
||||
@@ -316,8 +332,8 @@ BEGIN
|
||||
END
|
||||
POPUP "תצוגה"
|
||||
BEGIN
|
||||
MENUITEM "רגילה", IDM_VIEW_STANDARD
|
||||
MENUITEM "מדעית", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "רגילה", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "מדעית", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "המרה", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "הקס\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -348,8 +364,8 @@ BEGIN
|
||||
END
|
||||
POPUP "תצוגה"
|
||||
BEGIN
|
||||
MENUITEM "רגילה", IDM_VIEW_STANDARD
|
||||
MENUITEM "מדעית", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "רגילה", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "מדעית", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "המרה", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "הקס\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -381,8 +397,8 @@ BEGIN
|
||||
END
|
||||
POPUP "תצוגה"
|
||||
BEGIN
|
||||
MENUITEM "רגילה", IDM_VIEW_STANDARD
|
||||
MENUITEM "מדעית", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "רגילה", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "מדעית", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "המרה", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "קיבוץ ספרות", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -399,17 +415,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS Calc is free software released under GNU GPL license.\r\n\r\nYou can get a copy of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nYou can also get a translation of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "שגיאה"
|
||||
IDS_QUICKHELP "עזרה מהירה"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "מחשבון ReactOS"
|
||||
IDS_AUTHOR "נכתבה על ידי Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -298,6 +298,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "A ReactOS Számológépről"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "ReactOS Számológép", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Verzió ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Írta Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Statisztika"
|
||||
@@ -322,8 +338,8 @@ BEGIN
|
||||
END
|
||||
POPUP "&Nézet"
|
||||
BEGIN
|
||||
MENUITEM "&Szokásos", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Tudományos", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "&Szokásos", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "&Tudományos", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Át&váltás", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hexadecimális\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -354,8 +370,8 @@ BEGIN
|
||||
END
|
||||
POPUP "&Nézet"
|
||||
BEGIN
|
||||
MENUITEM "&Szokásos", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Tudományos", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "&Szokásos", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "&Tudományos", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Át&váltás", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hexadecimális\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -387,8 +403,8 @@ BEGIN
|
||||
END
|
||||
POPUP "&Nézet"
|
||||
BEGIN
|
||||
MENUITEM "&Szokásos", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Tudományos", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "&Szokásos", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "&Tudományos", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Át&váltás", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Számjegyek &csoportosítása", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -405,17 +421,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "A ReactOS Számológép a GNU GPL licenc alatt kiadott szabad szoftver.\r\n\r\nA GNU GPL licenc egy másolatát innen szerezheted be:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nValamint a GNU GPL licenc fordítását innen szerezheted be:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Hiba"
|
||||
IDS_QUICKHELP "Gyors súgó"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "ReactOS Számológép"
|
||||
IDS_AUTHOR "Írta Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -290,6 +290,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Informazioni su ReactOS Calc"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "Calcolatrice ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Versione ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Scritto da Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Finestra di statistica"
|
||||
@@ -314,8 +330,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Visualizza"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Scientifica", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Scientifica", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversione", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -346,8 +362,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Visualizza"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Scientifica", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Scientifica", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversione", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -379,8 +395,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Visualizza"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Scientifica", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Scientifica", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversione", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Raggruppamento cifre", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -397,17 +413,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS Calc e` software libero rilasciato sotto licenza GNU GPL.\r\n\r\nE` possibile ottenere una copia del testo della licenza GNU GPL all'indirizzo:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nE` possibile ottenere una traduzione del testo della licenza GNU GPL all'indirizzo:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Errore"
|
||||
IDS_QUICKHELP "Guida rapida"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Calcolatrice ReactOS"
|
||||
IDS_AUTHOR "Scritto da Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Categorie per le conversioni */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -290,6 +290,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "ReactOS 電卓について"
|
||||
FONT 9, "MS UI Gothic"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "ReactOS 電卓", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Version ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Written by Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Statistics box"
|
||||
@@ -314,8 +330,8 @@ BEGIN
|
||||
END
|
||||
POPUP "表示(&V)"
|
||||
BEGIN
|
||||
MENUITEM "標準(&T)", IDM_VIEW_STANDARD
|
||||
MENUITEM "関数電卓(&S)", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "標準(&T)", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "関数電卓(&S)", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "変換(&C)", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "1&6進\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -346,8 +362,8 @@ BEGIN
|
||||
END
|
||||
POPUP "表示(&V)"
|
||||
BEGIN
|
||||
MENUITEM "標準(&T)", IDM_VIEW_STANDARD
|
||||
MENUITEM "関数電卓(&S)", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "標準(&T)", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "関数電卓(&S)", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "変換(&C)", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "1&6進\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -379,8 +395,8 @@ BEGIN
|
||||
END
|
||||
POPUP "表示"
|
||||
BEGIN
|
||||
MENUITEM "標準(&T)", IDM_VIEW_STANDARD
|
||||
MENUITEM "関数電卓(&S)", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "標準(&T)", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "関数電卓(&S)", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "変換(&C)", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "桁を区切る(&I)", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -397,17 +413,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS 電卓はGNU GPLライセンスの元で提供されるフリーソフトウェアです。\r\n\r\nこちらでGNU GPLライセンスのコピーを得ることができます:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nこちらでGNU GPLライセンスの翻訳を得ることができます:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "エラー"
|
||||
IDS_QUICKHELP "クイックヘルプ"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "ReactOS 電卓"
|
||||
IDS_AUTHOR "Written by Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -8,7 +8,7 @@ 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 9, "MS Shell Dlg", 0, 0, 0x1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
@@ -156,7 +156,7 @@ 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
|
||||
FONT 9, "MS Shell Dlg", 0, 0, 0x1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 123, 23, 41, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
@@ -221,7 +221,7 @@ 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
|
||||
FONT 9, "MS Shell Dlg"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Convert", IDC_BUTTON_CONVERT, 35, 105, 76, 17
|
||||
COMBOBOX IDC_COMBO_CATEGORY, 5, 31, 140, 168, CBS_DROPDOWNLIST | WS_VSCROLL |
|
||||
@@ -292,10 +292,26 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "ReactOS 계산기 정보"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "ReactOS 계산기", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "버젼 ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Carlo Bramini에 의해 쓰여짐", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Statistics box"
|
||||
FONT 9, "MS Shell Dlg"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LISTBOX IDC_LIST_STAT, 4, 4, 156, 40, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "RET", IDC_BUTTON_RET, 4, 48, 36, 16
|
||||
@@ -316,8 +332,8 @@ BEGIN
|
||||
END
|
||||
POPUP "보기"
|
||||
BEGIN
|
||||
MENUITEM "일반", IDM_VIEW_STANDARD
|
||||
MENUITEM "공학", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "일반", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "공학", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "전환", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -348,8 +364,8 @@ BEGIN
|
||||
END
|
||||
POPUP "보기"
|
||||
BEGIN
|
||||
MENUITEM "일반", IDM_VIEW_STANDARD
|
||||
MENUITEM "공학", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "일반", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "공학", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "전환", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -381,8 +397,8 @@ BEGIN
|
||||
END
|
||||
POPUP "보기"
|
||||
BEGIN
|
||||
MENUITEM "일반", IDM_VIEW_STANDARD
|
||||
MENUITEM "공학", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "일반", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "공학", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "전환", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "자릿수 구분 단위", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -399,17 +415,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS Calc is free software released under GNU GPL license.\r\n\r\nYou can get a copy of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nYou can also get a translation of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "에러"
|
||||
IDS_QUICKHELP "빠른 도움말"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "ReactOS 계산기"
|
||||
IDS_AUTHOR "Carlo Bramini에 의해 쓰여짐"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -290,6 +290,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Over ReactOS Rekenmachine"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "ReactOS Rekenmachine", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Versie", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Geschreven door: Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Statistiek-venster"
|
||||
@@ -314,8 +330,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Beeld"
|
||||
BEGIN
|
||||
MENUITEM "Standaard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Wetenschappelijk", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standaard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Wetenschappelijk", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Converteren", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -346,8 +362,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Beeld"
|
||||
BEGIN
|
||||
MENUITEM "Standaard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Wetenschappelijk", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standaard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Wetenschappelijk", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Converteren", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -379,8 +395,8 @@ BEGIN
|
||||
END
|
||||
POPUP "View"
|
||||
BEGIN
|
||||
MENUITEM "Standaard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Wetenschappelijk", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standaard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Wetenschappelijk", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Converteren", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Cijfergroeperingen", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -397,17 +413,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "De ReactOS Rekenmachine is free software gepubliceerd onder de GNU GPL licentie.\r\n\r\nU kan een kopie van GNU GPL licentie hier bezichtigen:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nU kan ook een vertaling van de GNU GPL licentie hier bezichtigen:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Fout"
|
||||
IDS_QUICKHELP "Snelle hulp"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "ReactOS Rekenmachine"
|
||||
IDS_AUTHOR "Geschreven door: Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -290,6 +290,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Om ReactOS Kalkulator"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "ReactOS Kalkulator", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Versjon ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Laget av Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "statistikk boks"
|
||||
@@ -314,8 +330,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Vis"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Vitenskapelig", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Vitenskapelig", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Konvertering", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Heksadesimalt\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -346,8 +362,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Vis"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Vitenskapelig", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Vitenskapelig", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "konvertering", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Heksadesimalt\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -379,8 +395,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Vis"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Vitenskapelig", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Vitenskapelig", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Konvertering", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Siffergruppering", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -389,7 +405,7 @@ BEGIN
|
||||
BEGIN
|
||||
MENUITEM "Emner i hjelp", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Om ReactOS Kalkulator", IDM_HELP_ABOUT
|
||||
MENUITEM "Om Reactos Kalkulator", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -397,17 +413,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS Kalkulator er gratis programvare utgitt under GNU GPL lisensen.\r\n\r\nDu kan få en kopi av GNU GPL lisensen her:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nDu kan også få en oversettelse av GNU GPL lisensen her:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Feil"
|
||||
IDS_QUICKHELP "Rask hjelp"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "ReactOS Kalkulator"
|
||||
IDS_AUTHOR "Laget av Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -299,6 +299,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "O Kalkulatorze ReactOS"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "Kalkulator ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Wersja ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Autorstwa: Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Statystyka"
|
||||
@@ -323,8 +339,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Wygląd"
|
||||
BEGIN
|
||||
MENUITEM "Standardowy", IDM_VIEW_STANDARD
|
||||
MENUITEM "Naukowy", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standardowy", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Naukowy", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Przeliczanie", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Szesnastkowy\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -355,8 +371,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Wygląd"
|
||||
BEGIN
|
||||
MENUITEM "Standardowy", IDM_VIEW_STANDARD
|
||||
MENUITEM "Naukowy", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standardowy", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Naukowy", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Przeliczanie", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Szesnastkowo\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -388,8 +404,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Wygląd"
|
||||
BEGIN
|
||||
MENUITEM "Standardowy", IDM_VIEW_STANDARD
|
||||
MENUITEM "Naukowy", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standardowy", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Naukowy", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Przeliczanie", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Grupowanie cyfr", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -406,17 +422,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "Kalkulator ReactOS jest darmowym programem, publikowanym zgodnie z licencją GNU GPL.\r\n\r\nMożesz otrzymać kopię licencji GNU GPL tutaj:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nTłumaczenie licencji GNU GPL znajdziesz tutaj:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Błąd"
|
||||
IDS_QUICKHELP "Szybka pomoc"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Kalkulator ReactOS"
|
||||
IDS_AUTHOR "Autorstwa: Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -292,6 +292,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Sobre Calc ReactOS"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "Calcuadora ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Versão ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Escrita por Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Caixa de estatísticas"
|
||||
@@ -316,8 +332,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Visualizar"
|
||||
BEGIN
|
||||
MENUITEM "Padrão", IDM_VIEW_STANDARD
|
||||
MENUITEM "Científica", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Padrão", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Científica", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversão", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -348,8 +364,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Visualizar"
|
||||
BEGIN
|
||||
MENUITEM "Padrão", IDM_VIEW_STANDARD
|
||||
MENUITEM "Científica", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Padrão", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Científica", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversão", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -381,8 +397,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Visualizar"
|
||||
BEGIN
|
||||
MENUITEM "Padrão", IDM_VIEW_STANDARD
|
||||
MENUITEM "Científica", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Padrão", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Científica", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Conversão", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Agrupar dígitos", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -399,17 +415,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "Calculadora ReactOS é um software livre lançado sobre a licença GNU GPL.\r\nVocê pode adquirir uma cópia da licença GNU GPL no endereço abaixo:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nVocê também pode adquirir uma tradução da licença GNU GPL no endereço abaixo:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Erro"
|
||||
IDS_QUICKHELP "Ajuda rápida"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Calcuadora ReactOS"
|
||||
IDS_AUTHOR "Escrita por Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -1,8 +1,4 @@
|
||||
/*
|
||||
* Translators: Petru Dimitriu (petrimetri at gmail dot com)
|
||||
* Ștefan Fulea (stefan dot fulea at mail dot md)
|
||||
*/
|
||||
|
||||
/* Ștefan Fulea (stefan dot fulea at mail dot md) */
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
|
||||
/* Dialogs */
|
||||
@@ -295,6 +291,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Despre Minicalculator"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "Î&nchide", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "Minicalculator ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Versiune ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Scris de Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Statistici"
|
||||
@@ -319,8 +331,8 @@ BEGIN
|
||||
END
|
||||
POPUP "&Afișare"
|
||||
BEGIN
|
||||
MENUITEM "Mod st&andard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Mod știi&nțific", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Mod st&andard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Mod știi&nțific", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Con&versie", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hexazecimal\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -334,7 +346,7 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Grupează &cifrele", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "Aj&utor"
|
||||
POPUP "&?"
|
||||
BEGIN
|
||||
MENUITEM "&Manual…", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
@@ -351,8 +363,8 @@ BEGIN
|
||||
END
|
||||
POPUP "&Afișare"
|
||||
BEGIN
|
||||
MENUITEM "Mod st&andard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Mod știi&nțific", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Mod st&andard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Mod știi&nțific", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Con&versie", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hexazecimal\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -367,7 +379,7 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Grupează &cifrele", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "Aj&utor"
|
||||
POPUP "&?"
|
||||
BEGIN
|
||||
MENUITEM "&Manual…", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
@@ -384,13 +396,13 @@ BEGIN
|
||||
END
|
||||
POPUP "&Afișare"
|
||||
BEGIN
|
||||
MENUITEM "Mod st&andard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Mod știi&nțific", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Mod st&andard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Mod știi&nțific", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Con&versie", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Grupează &cifre", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "Aj&utor"
|
||||
POPUP "&?"
|
||||
BEGIN
|
||||
MENUITEM "&Manual…", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
@@ -402,17 +414,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_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_MATH_ERROR "Eroare"
|
||||
IDS_QUICKHELP "Manual"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Minicalculator ReactOS"
|
||||
IDS_AUTHOR "Scris de Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -290,6 +290,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "О программе"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "Калькулятор ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Версия ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Автор: Карло Брамини", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Статистика"
|
||||
@@ -307,89 +323,89 @@ END
|
||||
|
||||
IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "&Правка"
|
||||
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 "В&ид"
|
||||
POPUP "Вид"
|
||||
BEGIN
|
||||
MENUITEM "&Обычный", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Инженерный", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "П&еревод величин", IDM_VIEW_CONVERSION
|
||||
MENUITEM "Обычный", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Научный", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Преобразование", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Шестнадцатеричный\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "&Десятичный\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "&Восьмеричный\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "Двои&чный\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM "Шестнадцатеричный\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "Десятичный\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "Восьмеричный\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "Двоичный\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Градусы\tF2", IDM_VIEW_DEG, CHECKED
|
||||
MENUITEM "Радиа&ны\tF3", IDM_VIEW_RAD, CHECKED
|
||||
MENUITEM "Гр&ады\tF4", IDM_VIEW_GRAD, CHECKED
|
||||
MENUITEM "Градусы\tF2", IDM_VIEW_DEG, CHECKED
|
||||
MENUITEM "Радианы\tF3", IDM_VIEW_RAD, CHECKED
|
||||
MENUITEM "Грады\tF4", IDM_VIEW_GRAD, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Группировать &цифры", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Количество цифр в группе", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "&Справка"
|
||||
POPUP "Справка"
|
||||
BEGIN
|
||||
MENUITEM "&Вызов справки", IDM_HELP_HELP
|
||||
MENUITEM "Вызов справки", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&О программе", IDM_HELP_ABOUT
|
||||
MENUITEM "О программе", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "&Правка"
|
||||
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 "В&ид"
|
||||
POPUP "Вид"
|
||||
BEGIN
|
||||
MENUITEM "&Обычный", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Инженерный", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "П&еревод величин", IDM_VIEW_CONVERSION
|
||||
MENUITEM "Обычный", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Научный", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Преобразование", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Шестнадцатеричный\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "&Десятичный\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "&Восьмеричный\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "Двои&чный\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM "Шестнадцатеричный\tF5", IDM_VIEW_HEX, CHECKED
|
||||
MENUITEM "Десятичный\tF6", IDM_VIEW_DEC, CHECKED
|
||||
MENUITEM "Восьмеричный\tF7", IDM_VIEW_OCT, CHECKED
|
||||
MENUITEM "Двоичный\tF8", IDM_VIEW_BIN, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&8 байт\tF12", IDM_VIEW_QWORD, CHECKED
|
||||
MENUITEM "&4 байт\tF2", IDM_VIEW_DWORD, CHECKED
|
||||
MENUITEM "&2 байт\tF3", IDM_VIEW_WORD, CHECKED
|
||||
MENUITEM "&1 байт\tF4", IDM_VIEW_BYTE, CHECKED
|
||||
MENUITEM "8 байт\tF12", IDM_VIEW_QWORD, CHECKED
|
||||
MENUITEM "4 байт\tF2", IDM_VIEW_DWORD, CHECKED
|
||||
MENUITEM "2 байт\tF3", IDM_VIEW_WORD, CHECKED
|
||||
MENUITEM "1 байт\tF4", IDM_VIEW_BYTE, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Группировать &цифры", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Количество цифр в группе", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "&Справка"
|
||||
POPUP "Справка"
|
||||
BEGIN
|
||||
MENUITEM "&Вызов справки", IDM_HELP_HELP
|
||||
MENUITEM "Вызов справки", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&О программе", IDM_HELP_ABOUT
|
||||
MENUITEM "О программе", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "&Правка"
|
||||
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 "В&ид"
|
||||
POPUP "Вид"
|
||||
BEGIN
|
||||
MENUITEM "&Обычный", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Инженерный", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "П&еревод величин", IDM_VIEW_CONVERSION
|
||||
MENUITEM "Обычный", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Научный", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Преобразование", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Группировать &цифры", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Количество цифр в группе", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "&Справка"
|
||||
POPUP "Справка"
|
||||
BEGIN
|
||||
MENUITEM "&Вызов справки", IDM_HELP_HELP
|
||||
MENUITEM "Вызов справки", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&О программе", IDM_HELP_ABOUT
|
||||
MENUITEM "О программе", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -397,17 +413,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "Калькулятор ReactOS - свободное программное обеспечение, распространяющееся по лицензии GNU GPL.\r\n\r\nВы можете получить копию лицензии GNU GPL здесь:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nОзнакомиться c переводом лицензии GNU GPL можно здесь:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Ошибка"
|
||||
IDS_QUICKHELP "Быстрая справка"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Калькулятор ReactOS"
|
||||
IDS_AUTHOR "Автор: Карло Брамини"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
@@ -526,7 +536,7 @@ END
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_LENGTH_ANGSTROMS "ангстрем"
|
||||
IDS_LENGTH_ASTRONOMICAL_UNITS "астрономическая единица"
|
||||
IDS_LENGTH_ASTRONOMICAL_UNITS "астрономическая еденица"
|
||||
IDS_LENGTH_BARLEYCORNS "барлейкорн"
|
||||
IDS_LENGTH_CENTIMETERS "сантиметр"
|
||||
IDS_LENGTH_CHAINS_UK "чейн (британский)"
|
||||
@@ -611,7 +621,7 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_TIME_DAYS "день"
|
||||
IDS_TIME_HOURS "час"
|
||||
IDS_TIME_NANOSECONDS "наносекунда"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "микросекунда"
|
||||
IDS_TIME_MILLISECONDS "миллисекунда"
|
||||
IDS_TIME_MINUTES "минута"
|
||||
|
@@ -297,6 +297,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Čo je kalkulačka systému ReactOS"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "Kalkulačka systému ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Verzia ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Napísal Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Štatistika"
|
||||
@@ -321,8 +337,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Zobraziť"
|
||||
BEGIN
|
||||
MENUITEM "Štandardná", IDM_VIEW_STANDARD
|
||||
MENUITEM "Vedecká", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Štandardná", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Vedecká", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Prevody", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Šestnástková\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -353,8 +369,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Zobraziť"
|
||||
BEGIN
|
||||
MENUITEM "Štandardná", IDM_VIEW_STANDARD
|
||||
MENUITEM "Vedecká", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Štandardná", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Vedecká", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Prevody", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Šestnástková\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -386,8 +402,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Zobraziť"
|
||||
BEGIN
|
||||
MENUITEM "Štandardná", IDM_VIEW_STANDARD
|
||||
MENUITEM "Vedecká", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Štandardná", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Vedecká", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Prevody", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Zoskupovať číslice", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -404,17 +420,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "Kalkulačka systému ReactOS je voľný softvér vydaný pod licenciou GNU GPL.\r\n\r\nKópiu licencie GNU GPL môžete získať tu:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nRovnako môžete získať preklad licencie GNU GPL tu:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Chyba"
|
||||
IDS_QUICKHELP "Rýchla pomoc"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Kalkulačka systému ReactOS"
|
||||
IDS_AUTHOR "Napísal Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -294,6 +294,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Informacione mbi Makine Llogaritje ReactOS"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "ReactOS Makine Llogaritje", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Versioni ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "krijuar nga Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Kutia e Statistikave"
|
||||
@@ -318,8 +334,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Modifko"
|
||||
BEGIN
|
||||
MENUITEM "Standart", IDM_VIEW_STANDARD
|
||||
MENUITEM "Shkencor", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standart", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Shkencor", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Konvertim", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -350,8 +366,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Vëzhgo"
|
||||
BEGIN
|
||||
MENUITEM "Standart", IDM_VIEW_STANDARD
|
||||
MENUITEM "Shkencor", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standart", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Shkencor", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Konverto", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -383,8 +399,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Vëzhgo"
|
||||
BEGIN
|
||||
MENUITEM "Standar", IDM_VIEW_STANDARD
|
||||
MENUITEM "Shkencor", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standar", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Shkencor", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Konverto", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Grupim numeror", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -401,17 +417,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "Makina Llogaritese ReactOS eshte program falas i lanquar nen liçensen GNU GPL.\r\n\r\nJu mund te merrni nje kopje te liçenses se GNU CPL ketu:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nJu gjithashtu mund te merrni e liçenses se GNU GPL ketu:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Error"
|
||||
IDS_QUICKHELP "Ndihmë e shpejtë"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "ReactOS Makine Llogaritje"
|
||||
IDS_AUTHOR "krijuar nga Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* PROJECT: ReactOS CALC
|
||||
* FILE: base/applications/calc/lang/sv-SE.rc
|
||||
* FILE: base\applications\calc\lang\sv-SE.rc
|
||||
* PURPOSE: Swedish resource file
|
||||
* Translation: Jaix Bly
|
||||
*/
|
||||
@@ -297,6 +297,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Om ReactOS Kalkylator"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "ReactOS Kalkylator", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Version ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Skriven av Carlo Bramini, Övers.: Jaix Bly", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Statistik box"
|
||||
@@ -321,8 +337,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Visa"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Vetenskaplig", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Vetenskaplig", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Konvertering", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hexadecimal\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -353,8 +369,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Vis"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Vetenskaplig", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Vetenskaplig", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Konvertering", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hexadecimal\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -386,8 +402,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Visa"
|
||||
BEGIN
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD
|
||||
MENUITEM "Vetenskapelig", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Vetenskapelig", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Konvertering", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Siffergruppering", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -396,7 +412,7 @@ BEGIN
|
||||
BEGIN
|
||||
MENUITEM "Visa hjälp", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Om ReactOS Kalkylator", IDM_HELP_ABOUT
|
||||
MENUITEM "Om Reactos Kalkylator", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -404,17 +420,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS Kalkylator är gratis programvara utgivet under GNU GPL licensen.\r\n\r\nDu kan få en kopia av GNU GPL licensen här:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nDu kan också få en översättning av GNU GPL lisensen här:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Fel"
|
||||
IDS_QUICKHELP "Snabb hjälp"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "ReactOS Kalkylator"
|
||||
IDS_AUTHOR "Skriven av Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -290,6 +290,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "เกี่ยวกับ ReactOS Calc"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "ตกลง", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "เครื่องคิดเลข ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "รุ่น ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Written by Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "กล่องสถานะ"
|
||||
@@ -314,8 +330,8 @@ BEGIN
|
||||
END
|
||||
POPUP "&มุมมอง"
|
||||
BEGIN
|
||||
MENUITEM "แบบมาตรฐาน", IDM_VIEW_STANDARD
|
||||
MENUITEM "แบบวิทยาศาสตร์", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "แบบมาตรฐาน", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "แบบวิทยาศาสตร์", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "ความเปลี่ยนแปลง", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "ฐานสิบหก\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -346,8 +362,8 @@ BEGIN
|
||||
END
|
||||
POPUP "&มุมมอง"
|
||||
BEGIN
|
||||
MENUITEM "แบบมาตรฐาน", IDM_VIEW_STANDARD
|
||||
MENUITEM "แบบวิทยาศาสตร์", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "แบบมาตรฐาน", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "แบบวิทยาศาสตร์", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "ความเปลี่ยนแปลง", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "ฐานสิบหก\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -379,8 +395,8 @@ BEGIN
|
||||
END
|
||||
POPUP "&มุมมอง"
|
||||
BEGIN
|
||||
MENUITEM "แบบมาตรฐาน", IDM_VIEW_STANDARD
|
||||
MENUITEM "แบบวิทยาศาสตร์", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "แบบมาตรฐาน", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "แบบวิทยาศาสตร์", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "ความเปลี่ยนแปลง", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "แสดงหลักตัวเลข", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -397,17 +413,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS Calc is free software released under GNU GPL license.\r\n\r\nYou can get a copy of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nYou can also get a translation of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "ผิดพลาด"
|
||||
IDS_QUICKHELP "สิ่งนี้คืออะไร ?"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "เครื่องคิดเลข ReactOS"
|
||||
IDS_AUTHOR "Written by Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* TRANSLATOR: 2013, 2014, 2016 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
|
||||
/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
|
||||
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
||||
@@ -292,6 +292,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Hesap Makinesi Üzerine"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "Tamam", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "Hesap Makinesi", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Sürüm: ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Carlo Bramini eliyle yapılmıştır.", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Sayımlama Penceresi"
|
||||
@@ -311,13 +327,13 @@ IDR_MENU_SCIENTIFIC_1 MENU
|
||||
BEGIN
|
||||
POPUP "&Düzen"
|
||||
BEGIN
|
||||
MENUITEM "&Çoğalt\tDenetim+C", IDM_EDIT_COPY
|
||||
MENUITEM "&Yapıştır\tDenetim+V", IDM_EDIT_PASTE
|
||||
MENUITEM "&Çoğalt\tCtrl+C", IDM_EDIT_COPY
|
||||
MENUITEM "&Yapıştır\tCtrl+V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&Görünüm"
|
||||
BEGIN
|
||||
MENUITEM "&Ölçünlü", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Bilimlik", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "&Ölçünlü", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "&Bilimlik", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "&Dönüştürme", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Onaltılık\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -335,7 +351,7 @@ BEGIN
|
||||
BEGIN
|
||||
MENUITEM "&Yardım Konuları", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&ReactOS Hesap Makinesi Üzerine...", IDM_HELP_ABOUT
|
||||
MENUITEM "&Üzerine...", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -343,13 +359,13 @@ IDR_MENU_SCIENTIFIC_2 MENU
|
||||
BEGIN
|
||||
POPUP "&Düzen"
|
||||
BEGIN
|
||||
MENUITEM "&Çoğalt\tDenetim+C", IDM_EDIT_COPY
|
||||
MENUITEM "&Yapıştır\tDenetim+V", IDM_EDIT_PASTE
|
||||
MENUITEM "&Çoğalt\tCtrl+C", IDM_EDIT_COPY
|
||||
MENUITEM "&Yapıştır\tCtrl+V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&Görünüm"
|
||||
BEGIN
|
||||
MENUITEM "&Ölçünlü", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Bilimlik", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "&Ölçünlü", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "&Bilimlik", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "&Dönüştürme", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Onaltılık\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -368,7 +384,7 @@ BEGIN
|
||||
BEGIN
|
||||
MENUITEM "&Yardım Konuları", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&ReactOS Hesap Makinesi Üzerine...", IDM_HELP_ABOUT
|
||||
MENUITEM "&Üzerine...", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -376,13 +392,13 @@ IDR_MENU_STANDARD MENU
|
||||
BEGIN
|
||||
POPUP "&Düzen"
|
||||
BEGIN
|
||||
MENUITEM "&Çoğalt\tDenetim+C", IDM_EDIT_COPY
|
||||
MENUITEM "&Yapıştır\tDenetim+V", IDM_EDIT_PASTE
|
||||
MENUITEM "&Çoğalt\tCtrl+C", IDM_EDIT_COPY
|
||||
MENUITEM "&Yapıştır\tCtrl+V", IDM_EDIT_PASTE
|
||||
END
|
||||
POPUP "&Görünüm"
|
||||
BEGIN
|
||||
MENUITEM "&Ölçünlü", IDM_VIEW_STANDARD
|
||||
MENUITEM "&Bilimlik", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "&Ölçünlü", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "&Bilimlik", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "&Dönüştürme", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "B&asamakları Takımla", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -391,7 +407,7 @@ BEGIN
|
||||
BEGIN
|
||||
MENUITEM "&Yardım Konuları", IDM_HELP_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&ReactOS Hesap Makinesi Üzerine...", IDM_HELP_ABOUT
|
||||
MENUITEM "&Üzerine...", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -399,17 +415,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "Hesap Makinesi, GNU GPL ruhsatıyla yayımlanan bir özgür yazılımdır.\r\n\r\nGNU GPL ruhsatının bir kopyasını şuradan elde edebilirsiniz:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nBir de GNU GPL ruhsatının bir çevirisini şuradan elde edebilirsiniz:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Yanlışlık"
|
||||
IDS_QUICKHELP "Hızlı Yardım"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Hesap Makinesi"
|
||||
IDS_AUTHOR "Carlo Bramini eliyle yapılmıştır."
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -298,6 +298,22 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Про Калькулятор ReactOS"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "Калькулятор ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Версія ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "Написав Карло Браміні", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Статистика"
|
||||
@@ -322,8 +338,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Вигляд"
|
||||
BEGIN
|
||||
MENUITEM "Звичайний", IDM_VIEW_STANDARD
|
||||
MENUITEM "Науковий", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Звичайний", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Науковий", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Перетворення", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Шістнадцятковий\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -354,8 +370,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Вигляд"
|
||||
BEGIN
|
||||
MENUITEM "Звичайний", IDM_VIEW_STANDARD
|
||||
MENUITEM "Науковий", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Звичайний", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Науковий", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Перетворення", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Шістнадцятковий\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -387,8 +403,8 @@ BEGIN
|
||||
END
|
||||
POPUP "Вигляд"
|
||||
BEGIN
|
||||
MENUITEM "Звичайний", IDM_VIEW_STANDARD
|
||||
MENUITEM "Науковий", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "Звичайний", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "Науковий", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "Перетворення", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Кількість цифр у групі", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -405,17 +421,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "Калькулятор ReactOS - вільне програмне забезпечення, випущене за ліцензією GNU GPL.\r\n\r\nВи можете отримати копію ліцензії GNU GPL тут:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nВи можете також отримати переклад ліцензії GNU GPL тут:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "Помилка"
|
||||
IDS_QUICKHELP "Швидка довідка"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "Калькулятор ReactOS"
|
||||
IDS_AUTHOR "Написав Карло Браміні"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
@@ -8,7 +8,7 @@ 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 9, "MS Shell Dlg", 0, 0, 0x1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
|
||||
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
|
||||
@@ -156,7 +156,7 @@ 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
|
||||
FONT 9, "MS Shell Dlg", 0, 0, 0x1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
PUSHBUTTON "C", IDC_BUTTON_CANC, 123, 23, 41, 18, BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
@@ -221,7 +221,7 @@ 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
|
||||
FONT 9, "MS Shell Dlg"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "转换", IDC_BUTTON_CONVERT, 35, 105, 76, 17
|
||||
COMBOBOX IDC_COMBO_CATEGORY, 5, 31, 140, 168, CBS_DROPDOWNLIST | WS_VSCROLL |
|
||||
@@ -292,10 +292,26 @@ BEGIN
|
||||
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "关于 ReactOS 计算器"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "确定", IDOK, 105, 148, 52, 16
|
||||
CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE |
|
||||
SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48
|
||||
LTEXT "ReactOS 计算器", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "版本 ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE
|
||||
LTEXT "作者 Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE
|
||||
GROUPBOX "", IDC_STATIC, 112, 0, 148, 52
|
||||
GROUPBOX "", IDC_STATIC, 5, 56, 256, 88
|
||||
EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||
END
|
||||
|
||||
IDD_DIALOG_STAT DIALOGEX 0, 0, 163, 85
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "统计框"
|
||||
FONT 9, "MS Shell Dlg"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LISTBOX IDC_LIST_STAT, 4, 4, 156, 40, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "返回", IDC_BUTTON_RET, 4, 48, 36, 16
|
||||
@@ -316,8 +332,8 @@ BEGIN
|
||||
END
|
||||
POPUP "查看"
|
||||
BEGIN
|
||||
MENUITEM "标准型", IDM_VIEW_STANDARD
|
||||
MENUITEM "科学型", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "标准型", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "科学型", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "转换", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "十六进制\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -348,8 +364,8 @@ BEGIN
|
||||
END
|
||||
POPUP "查看"
|
||||
BEGIN
|
||||
MENUITEM "标准型", IDM_VIEW_STANDARD
|
||||
MENUITEM "科学型", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "标准型", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "科学型", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "转换", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "十六进制\tF5", IDM_VIEW_HEX, CHECKED
|
||||
@@ -381,8 +397,8 @@ BEGIN
|
||||
END
|
||||
POPUP "查看"
|
||||
BEGIN
|
||||
MENUITEM "标准型", IDM_VIEW_STANDARD
|
||||
MENUITEM "科学型", IDM_VIEW_SCIENTIFIC
|
||||
MENUITEM "标准型", IDM_VIEW_STANDARD, CHECKED
|
||||
MENUITEM "科学型", IDM_VIEW_SCIENTIFIC, CHECKED
|
||||
MENUITEM "转换", IDM_VIEW_CONVERSION
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "数字分组", IDM_VIEW_GROUP, CHECKED
|
||||
@@ -399,17 +415,11 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRING_LICENSE "ReactOS 计算器是在 GNU GPL 协议下发行的自由软件。\r\n\r\n你可以从这儿取得一份 GNU GPL 协议的副本:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\n你也可以从这儿取得其翻译:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_MATH_ERROR "错误"
|
||||
IDS_QUICKHELP "快速帮助"
|
||||
END
|
||||
|
||||
/* About */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CALC_NAME "ReactOS 计算器"
|
||||
IDS_AUTHOR "作者 Carlo Bramini"
|
||||
END
|
||||
|
||||
/* Types of conversion */
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
|
BIN
reactos/base/applications/calc/res/ROS_logo.bmp
Normal file
BIN
reactos/base/applications/calc/res/ROS_logo.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 39 KiB |
@@ -1,16 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
#define IDS_CALC_NAME 1
|
||||
#define IDS_STRING_LICENSE 1
|
||||
#define IDS_MATH_ERROR 2
|
||||
#define IDS_QUICKHELP 3
|
||||
#define IDS_AUTHOR 4
|
||||
#define IDD_DIALOG_SCIENTIFIC 101
|
||||
#define IDD_DIALOG_STANDARD 102
|
||||
#define IDD_DIALOG_ABOUT 103
|
||||
#define IDD_DIALOG_STAT 104
|
||||
#define IDD_DIALOG_CONVERSION 105
|
||||
#define IDR_MENU_SCIENTIFIC_1 106
|
||||
#define IDR_MENU_SCIENTIFIC_2 107
|
||||
#define IDR_MENU_STANDARD 108
|
||||
#define IDB_BITMAP_ROS 109
|
||||
#define IDI_CALC_BIG 110
|
||||
#define IDI_CALC_SMALL 111
|
||||
#define IDC_RADIO_HEX 1002
|
||||
@@ -87,6 +88,7 @@
|
||||
#define IDC_TEXT_OUTPUT 1074
|
||||
#define IDC_TEXT_PARENT 1075
|
||||
#define IDC_TEXT_MEMORY 1076
|
||||
#define IDC_EDIT_LICENSE 1078
|
||||
#define IDC_LIST_STAT 1079
|
||||
#define IDC_BUTTON_RET 1080
|
||||
#define IDC_BUTTON_LOAD 1081
|
||||
@@ -96,6 +98,7 @@
|
||||
#define IDC_BUTTON_SQRT 1085
|
||||
#define IDC_BUTTON_PERCENT 1086
|
||||
#define IDC_BUTTON_CONVERT 1087
|
||||
#define IDC_TEXT_VERSION 1088
|
||||
#define IDC_BUTTON_FOCUS 1089
|
||||
#define IDC_COMBO_CATEGORY 1090
|
||||
#define IDC_COMBO_FROM 1091
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Calc
|
||||
* LICENSE: LGPL - See COPYING.LIB in the top level directory
|
||||
* FILE: base/applications/calc/resource.rc
|
||||
* FILE: base/applications/calcs/resource.rc
|
||||
* PURPOSE: Global resource file
|
||||
*/
|
||||
|
||||
@@ -14,6 +14,10 @@
|
||||
#define IDC_STATIC -1
|
||||
#endif
|
||||
|
||||
#ifndef DS_SHELLFONT
|
||||
#define DS_SHELLFONT DS_SETFONT|DS_FIXEDSYS
|
||||
#endif
|
||||
|
||||
/* Common resources */
|
||||
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
@@ -22,6 +26,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
IDI_CALC_BIG ICON "res/calc.ico"
|
||||
IDI_CALC_SMALL ICON "res/calc_sm.ico"
|
||||
|
||||
/* Bitmaps */
|
||||
IDB_BITMAP_ROS BITMAP "res/ROS_logo.bmp"
|
||||
|
||||
#include <reactos/manifest_exe.rc>
|
||||
|
||||
/* UTF-8 */
|
||||
|
@@ -314,7 +314,7 @@ void run_operator(calc_node_t *result,
|
||||
calc.is_nan = TRUE;
|
||||
} else {
|
||||
operator_list[operation].op_i(&dc, &da, &db);
|
||||
/* apply final limiter to result */
|
||||
/* apply final limitator to result */
|
||||
apply_int_mask(&dc);
|
||||
}
|
||||
|
||||
|
@@ -300,7 +300,7 @@ void run_operator(calc_node_t *result,
|
||||
operator_list[operation].op_f(&result->number, &a->number, &b->number);
|
||||
} else {
|
||||
operator_list[operation].op_i(&result->number, &a->number, &b->number);
|
||||
/* apply final limiter to result */
|
||||
/* apply final limitator to result */
|
||||
apply_int_mask(&result->number);
|
||||
}
|
||||
}
|
||||
|
@@ -11,7 +11,7 @@ void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base)
|
||||
break;
|
||||
case IDC_RADIO_DEC:
|
||||
/*
|
||||
* Modified from 17 to 16 for fixing this bug:
|
||||
* Modifed from 17 to 16 for fixing this bug:
|
||||
* 14+14+6.3+6.3= 40.5999999 instead of 40.6
|
||||
* So, it's probably better to leave the least
|
||||
* significant digit out of the display.
|
||||
@@ -25,7 +25,7 @@ void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base)
|
||||
TCHAR *ptr, *dst;
|
||||
|
||||
ptr = buffer + _stprintf(buffer, TEXT("%#*.*f"), width, ((MAX_LD_WIDTH-width-1)>=0) ? MAX_LD_WIDTH-width-1 : 0, rpn->f);
|
||||
/* format string ensures there is a '.': */
|
||||
/* format sring ensures there is a '.': */
|
||||
dst = _tcschr(buffer, TEXT('.'));
|
||||
while (--ptr > dst)
|
||||
if (*ptr != TEXT('0'))
|
||||
|
@@ -34,7 +34,7 @@
|
||||
* Corrected precision underflow/overflow when working with trigonometric functions.
|
||||
* cbrt() function is not used if compiling into ReactOS build system.
|
||||
* Resources are moved into /res directory.
|
||||
* Added new (partial) support for other languages: bulgarian, spanish, german, dutch, polish, russian, slovak, ukrainian.
|
||||
* Added new (partial) support for other languages: bulgarian, spanish, german, dutch, polish, russian, slovak, ukraianian.
|
||||
* Decimal precision of number with standard layout has been limited to 16 digits because the output display is smaller here (GMP version only).
|
||||
* Fixed buffer overflow with function update_lcd_display().
|
||||
* The decimal point is now preserved when switching to temporary scientific notation.
|
||||
|
@@ -3,7 +3,6 @@
|
||||
#include <winbase.h>
|
||||
#include <wingdi.h>
|
||||
#include <winreg.h>
|
||||
#include <shellapi.h>
|
||||
|
||||
#define HTMLHELP_PATH(_pt) TEXT("%systemroot%\\Help\\calc.chm::") TEXT(_pt)
|
||||
|
||||
@@ -212,8 +211,8 @@ static const function_table_t function_table[] = {
|
||||
{ IDC_BUTTON_DMS, MODIFIER_INV, 1, rpn_dec2dms, rpn_dms2dec, NULL, NULL },
|
||||
{ IDC_BUTTON_FE, 0, 1, run_fe, NULL, NULL, NULL },
|
||||
{ IDC_BUTTON_DAT, 0, 1, run_dat_sta, NULL, NULL, NULL, },
|
||||
{ IDC_BUTTON_MP, MODIFIER_INV|NO_CHAIN, 1, run_mp, run_mm, NULL, NULL, },
|
||||
{ IDC_BUTTON_MS, MODIFIER_INV|NO_CHAIN, 1, run_ms, run_mw, NULL, NULL, },
|
||||
{ IDC_BUTTON_MP, MODIFIER_INV, 1, run_mp, run_mm, NULL, NULL, },
|
||||
{ IDC_BUTTON_MS, MODIFIER_INV, 1, run_ms, run_mw, NULL, NULL, },
|
||||
{ IDC_BUTTON_CANC, NO_CHAIN, 0, run_canc, NULL, NULL, NULL, },
|
||||
{ IDC_BUTTON_RIGHTPAR, NO_CHAIN, 1, run_rpar, NULL, NULL, NULL, },
|
||||
{ IDC_BUTTON_LEFTPAR, NO_CHAIN, 0, run_lpar, NULL, NULL, NULL, },
|
||||
@@ -226,40 +225,38 @@ calc_t calc;
|
||||
|
||||
static void load_config(void)
|
||||
{
|
||||
TCHAR buf[32];
|
||||
DWORD tmp;
|
||||
#if _WIN32_WINNT >= 0x0500
|
||||
HKEY hKey;
|
||||
|
||||
/* If no settings are found in the registry, then use the default options */
|
||||
calc.layout = CALC_LAYOUT_STANDARD;
|
||||
calc.usesep = FALSE;
|
||||
#endif
|
||||
|
||||
/* Get the configuration based on what version of Windows that's being used */
|
||||
if (RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Microsoft\\Calc"), 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
|
||||
{
|
||||
/* Try to load last selected layout */
|
||||
tmp = sizeof(calc.layout);
|
||||
if (RegQueryValueEx(hKey, TEXT("layout"), NULL, NULL, (LPBYTE)&calc.layout, &tmp) != ERROR_SUCCESS)
|
||||
calc.layout = CALC_LAYOUT_STANDARD;
|
||||
/* Try to load last selected layout */
|
||||
GetProfileString(TEXT("SciCalc"), TEXT("layout"), TEXT("0"), buf, SIZEOF(buf));
|
||||
if (_stscanf(buf, TEXT("%lu"), &calc.layout) != 1)
|
||||
calc.layout = CALC_LAYOUT_STANDARD;
|
||||
|
||||
/* Try to load last selected formatting option */
|
||||
tmp = sizeof(calc.usesep);
|
||||
if (RegQueryValueEx(hKey, TEXT("UseSep"), NULL, NULL, (LPBYTE)&calc.usesep, &tmp) != ERROR_SUCCESS)
|
||||
calc.usesep = FALSE;
|
||||
|
||||
/* close the key */
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
/* Try to load last selected formatting option */
|
||||
GetProfileString(TEXT("SciCalc"), TEXT("UseSep"), TEXT("0"), buf, SIZEOF(buf));
|
||||
if (_stscanf(buf, TEXT("%lu"), &tmp) != 1)
|
||||
calc.usesep = FALSE;
|
||||
else
|
||||
calc.usesep = (tmp == 1) ? TRUE : FALSE;
|
||||
|
||||
/* memory is empty at startup */
|
||||
calc.is_memory = FALSE;
|
||||
|
||||
#if _WIN32_WINNT >= 0x0500
|
||||
/* empty these values */
|
||||
calc.sDecimal[0] = TEXT('\0');
|
||||
calc.sThousand[0] = TEXT('\0');
|
||||
|
||||
/* try to open the registry */
|
||||
if (RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\International"), 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
|
||||
{
|
||||
if (RegOpenKeyEx(HKEY_CURRENT_USER,
|
||||
TEXT("Control Panel\\International"),
|
||||
0,
|
||||
KEY_QUERY_VALUE,
|
||||
&hKey) == ERROR_SUCCESS) {
|
||||
/* get these values (ignore errors) */
|
||||
tmp = sizeof(calc.sDecimal);
|
||||
RegQueryValueEx(hKey, TEXT("sDecimal"), NULL, NULL, (LPBYTE)calc.sDecimal, &tmp);
|
||||
@@ -280,24 +277,20 @@ static void load_config(void)
|
||||
/* get the string lengths */
|
||||
calc.sDecimal_len = _tcslen(calc.sDecimal);
|
||||
calc.sThousand_len = _tcslen(calc.sThousand);
|
||||
#else
|
||||
/* acquire regional settings */
|
||||
calc.sDecimal_len = GetProfileString(TEXT("intl"), TEXT("sDecimal"), TEXT("."), calc.sDecimal, SIZEOF(calc.sDecimal));
|
||||
calc.sThousand_len = GetProfileString(TEXT("intl"), TEXT("sThousand"), TEXT(","), calc.sThousand, SIZEOF(calc.sThousand));
|
||||
#endif
|
||||
}
|
||||
|
||||
static void save_config(void)
|
||||
{
|
||||
HKEY hKey;
|
||||
DWORD sepValue;
|
||||
TCHAR buf[32];
|
||||
|
||||
if (RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Microsoft\\Calc"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, &hKey, NULL) != ERROR_SUCCESS)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
sepValue = (calc.usesep) ? 1 : 0;
|
||||
|
||||
RegSetValueEx(hKey, TEXT("layout"), 0, REG_DWORD, (const BYTE*)&calc.layout, sizeof(calc.layout));
|
||||
RegSetValueEx(hKey, TEXT("UseSep"), 0, REG_DWORD, (const BYTE*)&sepValue, sizeof(sepValue));
|
||||
|
||||
RegCloseKey(hKey);
|
||||
_stprintf(buf, TEXT("%lu"), calc.layout);
|
||||
WriteProfileString(TEXT("SciCalc"), TEXT("layout"), buf);
|
||||
WriteProfileString(TEXT("SciCalc"), TEXT("UseSep"), (calc.usesep==TRUE) ? TEXT("1") : TEXT("0"));
|
||||
}
|
||||
|
||||
static LRESULT post_key_press(LPARAM lParam, WORD idc)
|
||||
@@ -435,7 +428,7 @@ KeyboardHookProc(int nCode, WPARAM wParam, LPARAM lParam)
|
||||
static void update_lcd_display(HWND hwnd)
|
||||
{
|
||||
/*
|
||||
* multiply size of calc.buffer by 2 because it may
|
||||
* muliply size of calc.buffer by 2 because it may
|
||||
* happen that separator is used between each digit.
|
||||
* Also added little additional space for dot and '\0'.
|
||||
*/
|
||||
@@ -664,33 +657,7 @@ static void update_menu(HWND hwnd)
|
||||
HMENU hMenu = GetSubMenu(GetMenu(hwnd), 1);
|
||||
unsigned int x;
|
||||
|
||||
/* Sets the state of the layout in the menu based on the configuration file */
|
||||
if (calc.layout == CALC_LAYOUT_SCIENTIFIC)
|
||||
{
|
||||
CheckMenuRadioItem(GetMenu(hwnd),
|
||||
IDM_VIEW_STANDARD,
|
||||
IDM_VIEW_CONVERSION,
|
||||
IDM_VIEW_SCIENTIFIC,
|
||||
MF_BYCOMMAND);
|
||||
}
|
||||
else if (calc.layout == CALC_LAYOUT_CONVERSION)
|
||||
{
|
||||
CheckMenuRadioItem(GetMenu(hwnd),
|
||||
IDM_VIEW_STANDARD,
|
||||
IDM_VIEW_CONVERSION,
|
||||
IDM_VIEW_CONVERSION,
|
||||
MF_BYCOMMAND);
|
||||
}
|
||||
else
|
||||
{
|
||||
CheckMenuRadioItem(GetMenu(hwnd),
|
||||
IDM_VIEW_STANDARD,
|
||||
IDM_VIEW_CONVERSION,
|
||||
IDM_VIEW_STANDARD,
|
||||
MF_BYCOMMAND);
|
||||
}
|
||||
|
||||
for (x=3; x<SIZEOF(upd); x++) {
|
||||
for (x=0; x<SIZEOF(upd); x++) {
|
||||
if (*(upd[x].sel) != upd[x].idc) {
|
||||
CheckMenuItem(hMenu, upd[x].idm, MF_BYCOMMAND|MF_UNCHECKED);
|
||||
SendMessage((HWND)GetDlgItem(hwnd,upd[x].idc),BM_SETCHECK,FALSE,0L);
|
||||
@@ -1258,7 +1225,6 @@ static INT_PTR CALLBACK DlgMainProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
|
||||
{
|
||||
unsigned int x;
|
||||
RECT rc;
|
||||
HMENU hMenu;
|
||||
|
||||
switch (msg) {
|
||||
case WM_DRAWITEM:
|
||||
@@ -1292,11 +1258,6 @@ static INT_PTR CALLBACK DlgMainProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
|
||||
/* set our calc icon */
|
||||
SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)LoadIcon(calc.hInstance, MAKEINTRESOURCE(IDI_CALC_BIG)));
|
||||
SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(calc.hInstance, MAKEINTRESOURCE(IDI_CALC_SMALL)));
|
||||
|
||||
/* Sets the state of the option to group digits */
|
||||
hMenu = GetSubMenu(GetMenu(hWnd), 1);
|
||||
CheckMenuItem(hMenu, IDM_VIEW_GROUP, (calc.usesep ? MF_CHECKED : MF_UNCHECKED));
|
||||
|
||||
/* update text for decimal button */
|
||||
SendDlgItemMessage(hWnd, IDC_BUTTON_DOT, WM_SETTEXT, (WPARAM)0, (LPARAM)calc.sDecimal);
|
||||
/* Fill combo box for conversion */
|
||||
@@ -1339,63 +1300,30 @@ static INT_PTR CALLBACK DlgMainProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
|
||||
SetFocus(GetDlgItem(hWnd, IDC_BUTTON_FOCUS));
|
||||
switch (LOWORD(wp)) {
|
||||
case IDM_HELP_ABOUT:
|
||||
{
|
||||
TCHAR infotitle[100];
|
||||
TCHAR infotext[200];
|
||||
LoadString(calc.hInstance, IDS_CALC_NAME, infotitle, SIZEOF(infotitle));
|
||||
LoadString(calc.hInstance, IDS_AUTHOR, infotext, SIZEOF(infotext));
|
||||
ShellAbout(hWnd, infotitle, infotext, (HICON)LoadIcon(calc.hInstance, MAKEINTRESOURCE(IDI_CALC_BIG)));
|
||||
DialogBox(calc.hInstance,MAKEINTRESOURCE(IDD_DIALOG_ABOUT), hWnd, AboutDlgProc);
|
||||
return TRUE;
|
||||
}
|
||||
case IDM_HELP_HELP:
|
||||
#ifndef DISABLE_HTMLHELP_SUPPORT
|
||||
HtmlHelp(hWnd, HTMLHELP_PATH("/general_information.htm"), HH_DISPLAY_TOPIC, (DWORD_PTR)NULL);
|
||||
#endif
|
||||
return TRUE;
|
||||
case IDM_VIEW_STANDARD:
|
||||
if (calc.layout != CALC_LAYOUT_STANDARD)
|
||||
{
|
||||
calc.layout = CALC_LAYOUT_STANDARD;
|
||||
calc.action = IDM_VIEW_STANDARD;
|
||||
DestroyWindow(hWnd);
|
||||
save_config();
|
||||
|
||||
CheckMenuRadioItem(GetMenu(hWnd),
|
||||
IDM_VIEW_STANDARD,
|
||||
IDM_VIEW_CONVERSION,
|
||||
IDM_VIEW_STANDARD,
|
||||
MF_BYCOMMAND);
|
||||
}
|
||||
calc.layout = CALC_LAYOUT_STANDARD;
|
||||
calc.action = IDM_VIEW_STANDARD;
|
||||
DestroyWindow(hWnd);
|
||||
save_config();
|
||||
return TRUE;
|
||||
case IDM_VIEW_SCIENTIFIC:
|
||||
if (calc.layout != CALC_LAYOUT_SCIENTIFIC)
|
||||
{
|
||||
calc.layout = CALC_LAYOUT_SCIENTIFIC;
|
||||
calc.action = IDM_VIEW_SCIENTIFIC;
|
||||
DestroyWindow(hWnd);
|
||||
save_config();
|
||||
|
||||
CheckMenuRadioItem(GetMenu(hWnd),
|
||||
IDM_VIEW_STANDARD,
|
||||
IDM_VIEW_CONVERSION,
|
||||
IDM_VIEW_SCIENTIFIC,
|
||||
MF_BYCOMMAND);
|
||||
}
|
||||
calc.layout = CALC_LAYOUT_SCIENTIFIC;
|
||||
calc.action = IDM_VIEW_SCIENTIFIC;
|
||||
DestroyWindow(hWnd);
|
||||
save_config();
|
||||
return TRUE;
|
||||
case IDM_VIEW_CONVERSION:
|
||||
if (calc.layout != CALC_LAYOUT_CONVERSION)
|
||||
{
|
||||
calc.layout = CALC_LAYOUT_CONVERSION;
|
||||
calc.action = IDM_VIEW_CONVERSION;
|
||||
DestroyWindow(hWnd);
|
||||
save_config();
|
||||
|
||||
CheckMenuRadioItem(GetMenu(hWnd),
|
||||
IDM_VIEW_STANDARD,
|
||||
IDM_VIEW_CONVERSION,
|
||||
IDM_VIEW_CONVERSION,
|
||||
MF_BYCOMMAND);
|
||||
}
|
||||
calc.layout = CALC_LAYOUT_CONVERSION;
|
||||
calc.action = IDM_VIEW_CONVERSION;
|
||||
DestroyWindow(hWnd);
|
||||
save_config();
|
||||
return TRUE;
|
||||
case IDM_VIEW_HEX:
|
||||
case IDM_VIEW_DEC:
|
||||
@@ -1787,7 +1715,8 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
|
||||
/* ignore hwnd: dialogs are already visible! */
|
||||
if (calc.layout == CALC_LAYOUT_SCIENTIFIC)
|
||||
dwLayout = IDD_DIALOG_SCIENTIFIC;
|
||||
else if (calc.layout == CALC_LAYOUT_CONVERSION)
|
||||
else
|
||||
if (calc.layout == CALC_LAYOUT_CONVERSION)
|
||||
dwLayout = IDD_DIALOG_CONVERSION;
|
||||
else
|
||||
dwLayout = IDD_DIALOG_STANDARD;
|
||||
|
@@ -7,7 +7,6 @@ list(APPEND SOURCE
|
||||
settings.c
|
||||
precomp.h)
|
||||
|
||||
add_rc_deps(charmap.rc ${CMAKE_CURRENT_SOURCE_DIR}/res/charmap.ico)
|
||||
add_executable(charmap ${SOURCE} charmap.rc)
|
||||
set_module_type(charmap win32gui UNICODE)
|
||||
add_importlibs(charmap advapi32 user32 gdi32 comctl32 msvcrt kernel32)
|
||||
|
@@ -12,8 +12,6 @@
|
||||
#include <commctrl.h>
|
||||
#include <richedit.h>
|
||||
|
||||
#define REMOVE_ADVANCED
|
||||
|
||||
#define ID_ABOUT 0x1
|
||||
|
||||
HINSTANCE hInstance;
|
||||
@@ -24,10 +22,6 @@ HICON hSmIcon;
|
||||
HICON hBgIcon;
|
||||
SETTINGS Settings;
|
||||
|
||||
/* GetUName prototype */
|
||||
typedef int (WINAPI * GETUNAME)(WORD wCharCode, LPWSTR lpbuf);
|
||||
GETUNAME GetUName;
|
||||
|
||||
/* Font-enumeration callback */
|
||||
static
|
||||
int
|
||||
@@ -40,9 +34,6 @@ EnumFontNames(ENUMLOGFONTEXW *lpelfe,
|
||||
HWND hwndCombo = (HWND)lParam;
|
||||
LPWSTR pszName = lpelfe->elfLogFont.lfFaceName;
|
||||
|
||||
/* Skip rotated font */
|
||||
if(pszName[0] == L'@') return 1;
|
||||
|
||||
/* make sure font doesn't already exist in our list */
|
||||
if(SendMessageW(hwndCombo,
|
||||
CB_FINDSTRINGEXACT,
|
||||
@@ -243,7 +234,7 @@ AddCharToSelection(HWND hDlg, WCHAR ch)
|
||||
SendMessage(hText, WM_CHAR, (WPARAM)ch, 0);
|
||||
}
|
||||
|
||||
#ifndef REMOVE_ADVANCED
|
||||
|
||||
static
|
||||
void
|
||||
UpdateSettings(HWND hDlg)
|
||||
@@ -251,38 +242,20 @@ UpdateSettings(HWND hDlg)
|
||||
if (hDlg == hCharmapDlg)
|
||||
{
|
||||
Settings.IsAdvancedView =
|
||||
SendDlgItemMessage(hDlg, IDC_CHECK_ADVANCED, BM_GETCHECK, 0, 0);
|
||||
|
||||
SendDlgItemMessage(hDlg, IDC_CHECK_ADVANCED, BM_GETCHECK, 0, 0);
|
||||
}
|
||||
|
||||
if (hDlg == hAdvancedDlg)
|
||||
{
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
VOID
|
||||
UpdateStatusBar(WCHAR wch)
|
||||
{
|
||||
WCHAR buff[MAX_PATH];
|
||||
WCHAR szDesc[MAX_PATH];
|
||||
|
||||
if (GetUName)
|
||||
{
|
||||
GetUName(wch, szDesc);
|
||||
wsprintfW(buff, L"U+%04X: %s", wch, szDesc);
|
||||
SendMessageW(hStatusWnd, SB_SETTEXT, 0, (LPARAM)buff);
|
||||
}
|
||||
}
|
||||
|
||||
static
|
||||
void
|
||||
ChangeView(HWND hWnd)
|
||||
{
|
||||
RECT rcCharmap;
|
||||
#ifndef REMOVE_ADVANCED
|
||||
RECT rcAdvanced;
|
||||
#endif
|
||||
RECT rcPanelExt;
|
||||
RECT rcPanelInt;
|
||||
RECT rcStatus;
|
||||
@@ -292,9 +265,7 @@ ChangeView(HWND hWnd)
|
||||
UINT DeskTopWidth, DeskTopHeight;
|
||||
|
||||
GetClientRect(hCharmapDlg, &rcCharmap);
|
||||
#ifndef REMOVE_ADVANCED
|
||||
GetClientRect(hAdvancedDlg, &rcAdvanced);
|
||||
#endif
|
||||
GetWindowRect(hWnd, &rcPanelExt);
|
||||
GetClientRect(hWnd, &rcPanelInt);
|
||||
GetClientRect(hStatusWnd, &rcStatus);
|
||||
@@ -306,19 +277,19 @@ ChangeView(HWND hWnd)
|
||||
DeY = (rcPanelExt.bottom - rcPanelExt.top) - rcPanelInt.bottom;
|
||||
|
||||
MoveWindow(hCharmapDlg, 0, 0, rcCharmap.right, rcCharmap.bottom, FALSE);
|
||||
#ifndef REMOVE_ADVANCED
|
||||
MoveWindow(hAdvancedDlg, 0, rcCharmap.bottom, rcAdvanced.right, rcAdvanced.bottom, FALSE);
|
||||
|
||||
ShowWindow(hAdvancedDlg, (Settings.IsAdvancedView) ? SW_SHOW : SW_HIDE);
|
||||
#endif
|
||||
|
||||
xPos = rcPanelExt.left;
|
||||
yPos = rcPanelExt.top;
|
||||
|
||||
Width = DeX + rcCharmap.right;
|
||||
Height = DeY + rcCharmap.bottom + rcStatus.bottom;
|
||||
#ifndef REMOVE_ADVANCED
|
||||
|
||||
if (Settings.IsAdvancedView)
|
||||
Height += rcAdvanced.bottom;
|
||||
#endif
|
||||
|
||||
if ((xPos + Width) > DeskTopWidth)
|
||||
xPos += DeskTopWidth - (xPos + Width);
|
||||
|
||||
@@ -344,23 +315,17 @@ CharMapDlgProc(HWND hDlg,
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
DWORD evMask;
|
||||
#ifdef REMOVE_ADVANCED
|
||||
HWND hAdv;
|
||||
#endif
|
||||
|
||||
FillFontStyleComboList(GetDlgItem(hDlg,
|
||||
IDC_FONTCOMBO));
|
||||
|
||||
ChangeMapFont(hDlg);
|
||||
|
||||
// Configure Richedit control for sending notification changes.
|
||||
// Configure Richedi control for sending notification changes.
|
||||
evMask = SendDlgItemMessage(hDlg, IDC_TEXTBOX, EM_GETEVENTMASK, 0, 0);
|
||||
evMask |= ENM_CHANGE;
|
||||
SendDlgItemMessage(hDlg, IDC_TEXTBOX, EM_SETEVENTMASK, 0, (LPARAM)evMask);
|
||||
#ifdef REMOVE_ADVANCED
|
||||
hAdv = GetDlgItem(hDlg, IDC_CHECK_ADVANCED);
|
||||
ShowWindow(hAdv, SW_HIDE);
|
||||
#endif
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -402,12 +367,11 @@ CharMapDlgProc(HWND hDlg,
|
||||
case IDC_COPY:
|
||||
CopyCharacters(hDlg);
|
||||
break;
|
||||
#ifndef REMOVE_ADVANCED
|
||||
|
||||
case IDC_CHECK_ADVANCED:
|
||||
UpdateSettings(hDlg);
|
||||
ChangeView(GetParent(hDlg));
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -418,7 +382,7 @@ CharMapDlgProc(HWND hDlg,
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
#ifndef REMOVE_ADVANCED
|
||||
|
||||
static
|
||||
INT_PTR
|
||||
CALLBACK
|
||||
@@ -438,7 +402,7 @@ AdvancedDlgProc(HWND hDlg,
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int
|
||||
OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
@@ -449,12 +413,12 @@ OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||
MAKEINTRESOURCE(IDD_CHARMAP),
|
||||
hWnd,
|
||||
CharMapDlgProc);
|
||||
#ifndef REMOVE_ADVANCED
|
||||
|
||||
hAdvancedDlg = CreateDialog(hInstance,
|
||||
MAKEINTRESOURCE(IDD_ADVANCED),
|
||||
hWnd,
|
||||
AdvancedDlgProc);
|
||||
#endif
|
||||
MAKEINTRESOURCE(IDD_ADVANCED),
|
||||
hWnd,
|
||||
AdvancedDlgProc);
|
||||
|
||||
hStatusWnd = CreateWindow(STATUSCLASSNAME,
|
||||
NULL,
|
||||
WS_CHILD | WS_VISIBLE,
|
||||
@@ -589,7 +553,6 @@ wWinMain(HINSTANCE hInst,
|
||||
INT Ret = 1;
|
||||
HMODULE hRichEd20;
|
||||
MSG Msg;
|
||||
HINSTANCE hGetUName = NULL;
|
||||
|
||||
hInstance = hInst;
|
||||
|
||||
@@ -597,18 +560,6 @@ wWinMain(HINSTANCE hInst,
|
||||
iccx.dwICC = ICC_TAB_CLASSES;
|
||||
InitCommonControlsEx(&iccx);
|
||||
|
||||
/* Loading the GetUName function */
|
||||
hGetUName = LoadLibraryW(L"getuname.dll");
|
||||
if (hGetUName != NULL)
|
||||
{
|
||||
GetUName = (GETUNAME) GetProcAddress(hGetUName, "GetUName");
|
||||
if (GetUName == NULL)
|
||||
{
|
||||
FreeLibrary(hGetUName);
|
||||
hGetUName = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (RegisterMapClasses(hInstance))
|
||||
{
|
||||
hRichEd20 = LoadLibraryW(L"RICHED20.DLL");
|
||||
@@ -634,8 +585,5 @@ wWinMain(HINSTANCE hInst,
|
||||
UnregisterMapClasses(hInstance);
|
||||
}
|
||||
|
||||
if (hGetUName != NULL)
|
||||
FreeLibrary(hGetUName);
|
||||
|
||||
return Ret;
|
||||
}
|
||||
|
@@ -4,18 +4,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 "Font:", IDC_STATIC, 6, 7, 24, 9
|
||||
COMBOBOX IDC_FONTCOMBO, 36, 5, 210, 210, WS_CHILD | WS_VISIBLE |
|
||||
WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT | CBS_HASSTRINGS
|
||||
PUSHBUTTON "&Help", IDC_CMHELP, 249, 5, 35, 13
|
||||
PUSHBUTTON "Help", IDC_CMHELP, 249, 5, 35, 13
|
||||
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP |
|
||||
WS_VSCROLL, 20, 22, 266, 156
|
||||
LTEXT "Ch&aracters to copy:", IDC_STATIC, 6, 188, 66, 9
|
||||
LTEXT "Characters to copy:", 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 "&Select", IDC_SELECT, 194, 186, 44, 13
|
||||
PUSHBUTTON "&Copy", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
|
||||
CONTROL "Ad&vanced view", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
|
||||
DEFPUSHBUTTON "Select", IDC_SELECT, 194, 186, 44, 13
|
||||
PUSHBUTTON "Copy", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
|
||||
CONTROL "Advanced view", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP, 8, 208, 95, 10
|
||||
END
|
||||
|
||||
@@ -23,14 +23,14 @@ IDD_ADVANCED DIALOGEX 0, 0, 292, 64
|
||||
STYLE DS_SHELLFONT | WS_CHILD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Charse&t:", IDC_STATIC, 8, 8, 48, 8
|
||||
LTEXT "Charset:", IDC_STATIC, 8, 8, 48, 8
|
||||
COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "&Group by:", IDC_STATIC, 8, 28, 50, 8
|
||||
LTEXT "Group by:", IDC_STATIC, 8, 28, 50, 8
|
||||
COMBOBOX IDC_COMBO_GROUPBY, 72, 24, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "Sea&rch", IDC_BUTTON_SEARCH, 200, 44, 50, 14
|
||||
PUSHBUTTON "Search", IDC_BUTTON_SEARCH, 200, 44, 50, 14
|
||||
EDITTEXT IDC_EDIT_SEARCH, 72, 44, 116, 14, ES_AUTOHSCROLL
|
||||
LTEXT "S&earch for:", IDC_STATIC, 8, 48, 42, 8
|
||||
LTEXT "&Unicode:", IDC_STATIC, 200, 8, 30, 8
|
||||
LTEXT "Search for:", 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
|
||||
|
||||
@@ -40,7 +40,7 @@ FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
|
||||
BEGIN
|
||||
LTEXT "Character Map v0.1\nCopyright (C) 2007 Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 150, 36
|
||||
PUSHBUTTON "&Close", IDOK, 75, 162, 44, 15
|
||||
PUSHBUTTON "Close", IDOK, 75, 162, 44, 15
|
||||
ICON IDI_ICON, IDC_STATIC, 10, 10, 7, 30
|
||||
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL |
|
||||
WS_TABSTOP | ES_READONLY | ES_MULTILINE
|
||||
|
@@ -1,24 +1,21 @@
|
||||
/* Spanish Language resource file.
|
||||
* Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */
|
||||
|
||||
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
||||
|
||||
IDD_CHARMAP DIALOGEX 6, 6, 292, 224
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_VISIBLE
|
||||
BEGIN
|
||||
LTEXT "Fuente:", IDC_STATIC, 6, 7, 24, 9
|
||||
LTEXT "Fuente :", IDC_STATIC, 6, 7, 24, 9
|
||||
COMBOBOX IDC_FONTCOMBO, 36, 5, 210, 210, WS_CHILD | WS_VISIBLE |
|
||||
WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT | CBS_HASSTRINGS
|
||||
PUSHBUTTON "Ayuda", IDC_CMHELP, 249, 5, 35, 13
|
||||
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP |
|
||||
WS_VSCROLL, 20, 22, 266, 156
|
||||
LTEXT "Caracteres a copiar:", IDC_STATIC, 6, 188, 66, 9
|
||||
LTEXT "Caracteres a copiar :", 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 "Seleccionar", IDC_SELECT, 194, 186, 44, 13
|
||||
PUSHBUTTON "Copiar", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
|
||||
CONTROL "Vista avanzada", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
|
||||
CONTROL "Advanced view", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP, 8, 208, 95, 10
|
||||
END
|
||||
|
||||
@@ -26,23 +23,23 @@ IDD_ADVANCED DIALOGEX 0, 0, 292, 64
|
||||
STYLE DS_SHELLFONT | WS_CHILD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Juego de caracteres:", IDC_STATIC, 2, 7, 68, 8, SS_RIGHT
|
||||
COMBOBOX IDC_COMBO_CHARSET, 74, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Agrupar:", IDC_STATIC, 2, 26, 68, 8, SS_RIGHT
|
||||
COMBOBOX IDC_COMBO_GROUPBY, 74, 24, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "Buscar", IDC_BUTTON_SEARCH, 200, 44, 50, 14
|
||||
EDITTEXT IDC_EDIT_SEARCH, 74, 44, 116, 14, ES_AUTOHSCROLL
|
||||
LTEXT "Buscar por:", IDC_STATIC, 2, 47, 68, 8, SS_RIGHT
|
||||
LTEXT "Charset:", IDC_STATIC, 8, 8, 48, 8
|
||||
COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Group by:", IDC_STATIC, 8, 28, 50, 8
|
||||
COMBOBOX IDC_COMBO_GROUPBY, 72, 24, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "Search", IDC_BUTTON_SEARCH, 200, 44, 50, 14
|
||||
EDITTEXT IDC_EDIT_SEARCH, 72, 44, 116, 14, ES_AUTOHSCROLL
|
||||
LTEXT "Search for:", 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
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 22, 16, 210, 182
|
||||
CAPTION "Acerca del Mapa de caracteres"
|
||||
CAPTION "Acerca de Character Map"
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
|
||||
BEGIN
|
||||
LTEXT "Mapa de caracteres v0.1\nCopyright (C) 2007 Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 150, 36
|
||||
LTEXT "Character Map v0.1\nCopyright (C) 2007 Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 150, 36
|
||||
PUSHBUTTON "Cerrar", IDOK, 75, 162, 44, 15
|
||||
ICON IDI_ICON, IDC_STATIC, 10, 10, 7, 30
|
||||
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL |
|
||||
@@ -51,7 +48,7 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_LICENSE "Este programa es software libre; puedes redistribuirlo y/o modificarlo bajo los términos de la GNU General Public License tal y como se publica por la Free Software Foundation; ya sea la versión 2 de la Licencia, o (bajo tu discreción) cualquier versión posterior.\r\n\r\nEste programa se distribuye con el fin de ser útil, pero viene SIN NINGUNA GARANTÍA; sin tan siquiera la garantía implícita de COMERCIALIZACIÓN o la de IDONEIDAD PARA UN PROPÓSITO CONCRETO. Para más información lee la GNU General Public License.\r\n\r\nDeberías de haber recibido una copia de la GNU General Public License con el programa; si no, puedes escribir a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 EE.UU."
|
||||
IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&Acerca de ..."
|
||||
IDS_TITLE "Mapa de caracteres"
|
||||
IDS_TITLE "Character Map"
|
||||
END
|
||||
|
@@ -21,7 +21,7 @@ END
|
||||
|
||||
IDD_ADVANCED DIALOGEX 0, 0, 292, 64
|
||||
STYLE DS_SHELLFONT | WS_CHILD
|
||||
FONT 9, "MS UI Gothic"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Charset:", IDC_STATIC, 8, 8, 48, 8
|
||||
COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
|
@@ -5,7 +5,7 @@
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
|
||||
IDD_CHARMAP DIALOGEX 6, 6, 292, 224
|
||||
FONT 9, "MS Shell Dlg", 0, 0
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_VISIBLE
|
||||
BEGIN
|
||||
LTEXT "글꼴:", IDC_STATIC, 6, 7, 24, 9
|
||||
@@ -25,7 +25,7 @@ END
|
||||
|
||||
IDD_ADVANCED DIALOGEX 0, 0, 292, 64
|
||||
STYLE DS_SHELLFONT | WS_CHILD
|
||||
FONT 9, "MS Shell Dlg"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Charset:", IDC_STATIC, 8, 8, 48, 8
|
||||
COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
@@ -40,7 +40,7 @@ END
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 22, 16, 210, 182
|
||||
CAPTION "문자표에 대하여"
|
||||
FONT 9, "MS Shell Dlg", 0, 0
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
|
||||
BEGIN
|
||||
LTEXT "Character Map v0.1\nCopyright (C) 2007 Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 150, 36
|
||||
|
@@ -19,7 +19,7 @@ BEGIN
|
||||
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 "S&electează", IDC_SELECT, 194, 186, 44, 13
|
||||
DEFPUSHBUTTON "&Selectează", 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
|
||||
@@ -33,7 +33,7 @@ BEGIN
|
||||
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 "&Caută", IDC_BUTTON_SEARCH, 200, 44, 50, 14
|
||||
PUSHBUTTON "Cau&tă", IDC_BUTTON_SEARCH, 200, 44, 50, 14
|
||||
EDITTEXT IDC_EDIT_SEARCH, 72, 44, 116, 14, ES_AUTOHSCROLL
|
||||
LTEXT "Căuta&re:", IDC_STATIC, 8, 48, 42, 8
|
||||
LTEXT "&Unicode:", IDC_STATIC, 200, 8, 30, 8
|
||||
@@ -45,7 +45,7 @@ CAPTION "Despre"
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
|
||||
BEGIN
|
||||
LTEXT "Hartă de caractere v0.1\nDrept de autor (C) 2007 Ged Murphy (gedmurphy@reactos.org)\nTraducere de Ștefan Fulea (stefan.fulea@mail.md)", IDC_STATIC, 48, 7, 210, 36
|
||||
LTEXT "Hartă a caracterelor v0.1\nDrept de autor (C) 2007 Ged Murphy (gedmurphy@reactos.org)\nTraducere de Ștefan Fulea (stefan.fulea@mail.md)", 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 |
|
||||
@@ -56,5 +56,5 @@ 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 "Hartă de caractere"
|
||||
IDS_TITLE "Hartă a caracterelor"
|
||||
END
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* Russian language resource file by Dmitry Chapyshev, 2007-06-10,Kudratov Olimjon (olim98@bk.ru) */
|
||||
/* Russian language resource file (Dmitry Chapyshev, 2007-06-10) */
|
||||
|
||||
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
|
||||
@@ -6,33 +6,33 @@ IDD_CHARMAP DIALOGEX 6, 6, 292, 224
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_VISIBLE
|
||||
BEGIN
|
||||
LTEXT "&Шрифт:", IDC_STATIC, 6, 7, 27, 9
|
||||
LTEXT "Шрифт:", IDC_STATIC, 6, 7, 27, 9
|
||||
COMBOBOX IDC_FONTCOMBO, 36, 5, 210, 210, WS_CHILD | WS_VISIBLE |
|
||||
WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT | CBS_HASSTRINGS
|
||||
PUSHBUTTON "&Справка", IDC_CMHELP, 249, 5, 35, 13
|
||||
PUSHBUTTON "Справка", IDC_CMHELP, 249, 5, 35, 13
|
||||
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP |
|
||||
WS_VSCROLL, 20, 22, 266, 156
|
||||
LTEXT "Д&ля копирования:", IDC_STATIC, 6, 188, 95, 9
|
||||
LTEXT "Копировать символ:", IDC_STATIC, 6, 188, 95, 9
|
||||
CONTROL "", IDC_TEXTBOX, RICHEDIT_CLASS, ES_AUTOHSCROLL | WS_BORDER |
|
||||
WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
|
||||
DEFPUSHBUTTON "&Выбрать", IDC_SELECT, 194, 186, 44, 13
|
||||
PUSHBUTTON "&Копировать", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
|
||||
CONTROL "&Дополнительные параметры", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP, 8, 208, 110, 10
|
||||
DEFPUSHBUTTON "Выбрать", IDC_SELECT, 194, 186, 44, 13
|
||||
PUSHBUTTON "Копировать", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
|
||||
CONTROL "Расширенный вид", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP, 8, 208, 95, 10
|
||||
END
|
||||
|
||||
IDD_ADVANCED DIALOGEX 0, 0, 292, 64
|
||||
STYLE DS_SHELLFONT | WS_CHILD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "&Набор символов:", IDC_STATIC, 8, 8, 55, 8
|
||||
LTEXT "Набор символов:", IDC_STATIC, 8, 8, 55, 8
|
||||
COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "&Группировка:", IDC_STATIC, 8, 28, 50, 8
|
||||
LTEXT "Группировать за:", IDC_STATIC, 8, 28, 50, 8
|
||||
COMBOBOX IDC_COMBO_GROUPBY, 72, 24, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "Найти", IDC_BUTTON_SEARCH, 200, 44, 50, 14
|
||||
EDITTEXT IDC_EDIT_SEARCH, 72, 44, 116, 14, ES_AUTOHSCROLL
|
||||
LTEXT "П&оиск:", IDC_STATIC, 8, 48, 42, 8
|
||||
LTEXT "&Юникод:", IDC_STATIC, 200, 8, 30, 8
|
||||
LTEXT "Искать:", IDC_STATIC, 8, 48, 42, 8
|
||||
LTEXT "Юникод:", IDC_STATIC, 200, 8, 30, 8
|
||||
EDITTEXT IDC_EDIT_UNICODE, 236, 4, 28, 12, ES_AUTOHSCROLL
|
||||
END
|
||||
|
||||
@@ -42,7 +42,7 @@ FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
|
||||
BEGIN
|
||||
LTEXT "Таблица символов v0.1\nCopyright (C) 2007 Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 150, 36
|
||||
PUSHBUTTON "&Закрыть", IDOK, 75, 162, 44, 15
|
||||
PUSHBUTTON "Закрыть", IDOK, 75, 162, 44, 15
|
||||
ICON IDI_ICON, IDC_STATIC, 10, 10, 7, 30
|
||||
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL |
|
||||
WS_TABSTOP | ES_READONLY | ES_MULTILINE
|
||||
|
@@ -50,7 +50,7 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_LICENSE "ÖNEMLİ: Aşağıdaki metin, özgün metnin resmî olmayan çevirisidir. Çeviri metniyle özgün metin arasında ayrım olabilir. Özgün metin, çeviri metninin altındadır.\r\n\r\n***\r\n\r\nBu izlence özgür yazılımdır; bunu, Özgür Yazılım Vakfı'nın yayımladığı GNU Umûmî Kamu Ruhsatı'nın, 2. sürümünün ya da daha sonraki bir sürümünün (Orası size bağlı.) şartları altında yeniden dağıtabilir veyâ değiştirebilirsiniz.\r\n\r\nBu izlence, kullanışlı olabileceği beklentisiyle dağıtılmıştır ancak bu izlencenin HİÇBİR GÜVENCESİ YOKTUR, SATILABİLİRLİĞİN ve BELİRLİ BİR AMACA UYGUNLUĞUN demek istenilen güvencesi bile. Daha çok bilgi için GNU Umûmî Kamu Ruhsatı'na bakınız.\r\n\r\nBu izlenceyle birlikte GNU Umûmî Kamu Ruhsatı'nın bir kopyasını almış olmalısınız, eğer yoksa Özgür Yazılım Vakfı AŞ'ye (51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ABD) yazınız.\r\n\r\n***\r\n\r\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_LICENSE "ÖNEMLİ: Aşağıdaki metin, özgün metnin resmî olmayan çevirisidir. Çeviri metniyle özgün metin arasında ayrım olabilir. Özgün metin, çeviri metninin altındadır.\r\n\r\n***\r\n\r\nBu izlence özgür yazılımdır; bunu, Özgür Yazılım Vakfı'nın yayımladığı GNU Umûmî Kamu Ruhsatı'nın, 2. sürümünün ya da daha sonraki bir sürümünün (Orası size bağlı.) koşulları altında yeniden dağıtabilir veyâ değiştirebilirsiniz.\r\n\r\nBu izlence, kullanışlı olabileceği beklentisiyle dağıtılmıştır ancak bu izlencenin HİÇBİR GÜVENCESİ YOKTUR, SATILABİLİRLİĞİN ve BELİRLİ BİR AMACA UYGUNLUĞUN demek istenilen güvencesi bile. Daha çok bilgi için GNU Umûmî Kamu Ruhsatı'na bakınız.\r\n\r\nBu izlenceyle birlikte GNU Umûmî Kamu Ruhsatı'nın bir kopyasını almış olmalısınız, eğer yoksa Özgür Yazılım Vakfı AŞ'ye (51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ABD) yazınız.\r\n\r\n***\r\n\r\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&Üzerine..."
|
||||
IDS_TITLE "Damga Eşlemi"
|
||||
END
|
||||
|
@@ -9,7 +9,7 @@
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
|
||||
IDD_CHARMAP DIALOGEX 6, 6, 292, 224
|
||||
FONT 9, "MS Shell Dlg", 0, 0
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_VISIBLE
|
||||
BEGIN
|
||||
LTEXT "字体:", IDC_STATIC, 6, 7, 24, 9
|
||||
@@ -29,7 +29,7 @@ END
|
||||
|
||||
IDD_ADVANCED DIALOGEX 0, 0, 292, 64
|
||||
STYLE DS_SHELLFONT | WS_CHILD
|
||||
FONT 9, "MS Shell Dlg"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "字符集:", IDC_STATIC, 8, 8, 48, 8
|
||||
COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
@@ -44,7 +44,7 @@ END
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 22, 16, 210, 182
|
||||
CAPTION "关于字符映射表"
|
||||
FONT 9, "MS Shell Dlg", 0, 0
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
|
||||
BEGIN
|
||||
LTEXT "字符映射表 v0.1\nCopyright (C) 2007 Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 150, 36
|
||||
|
@@ -9,7 +9,7 @@
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
|
||||
|
||||
IDD_CHARMAP DIALOGEX 6, 6, 292, 224
|
||||
FONT 9, "MS Shell Dlg", 0, 0
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_VISIBLE
|
||||
BEGIN
|
||||
LTEXT "字體:", IDC_STATIC, 6, 7, 24, 9
|
||||
@@ -29,7 +29,7 @@ END
|
||||
|
||||
IDD_ADVANCED DIALOGEX 0, 0, 292, 64
|
||||
STYLE DS_SHELLFONT | WS_CHILD
|
||||
FONT 9, "MS Shell Dlg"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "字元集:", IDC_STATIC, 8, 8, 48, 8
|
||||
COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
@@ -44,7 +44,7 @@ END
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 22, 16, 210, 182
|
||||
CAPTION "關於字元對應表"
|
||||
FONT 9, "MS Shell Dlg", 0, 0
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
|
||||
BEGIN
|
||||
LTEXT "字元對應表 v0.1\nCopyright (C) 2007 Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 150, 36
|
||||
|
@@ -35,7 +35,7 @@ SetLrgFont(PMAP infoPtr)
|
||||
{
|
||||
SendMessageW(hCombo,
|
||||
WM_GETTEXT,
|
||||
Len + 1,
|
||||
31,
|
||||
(LPARAM)lpFontName);
|
||||
|
||||
ZeroMemory(&lf,
|
||||
@@ -140,7 +140,6 @@ LrgCellWndProc(HWND hwnd,
|
||||
EndPaint(hwnd,
|
||||
&ps);
|
||||
|
||||
UpdateStatusBar(infoPtr->pActiveCell->ch);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@@ -14,7 +14,13 @@
|
||||
static const WCHAR szMapWndClass[] = L"FontMapWnd";
|
||||
static const WCHAR szLrgCellWndClass[] = L"LrgCellWnd";
|
||||
|
||||
#define MAX_ROWS (0xFFFF / XCELLS) + 1 - YCELLS
|
||||
static
|
||||
VOID
|
||||
TagFontToCell(PCELL pCell,
|
||||
WCHAR ch)
|
||||
{
|
||||
pCell->ch = ch;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
@@ -99,40 +105,33 @@ FillGrid(PMAP infoPtr,
|
||||
INT x, y;
|
||||
RECT rc;
|
||||
PCELL Cell;
|
||||
INT i, added;
|
||||
|
||||
hOldFont = SelectObject(ps->hdc,
|
||||
infoPtr->hFont);
|
||||
|
||||
i = XCELLS * infoPtr->iYStart;
|
||||
|
||||
added = 0;
|
||||
|
||||
for (y = 0; y < YCELLS; y++)
|
||||
for (x = 0; x < XCELLS; x++)
|
||||
{
|
||||
ch = (WCHAR)infoPtr->ValidGlyphs[i];
|
||||
|
||||
Cell = &infoPtr->Cells[y][x];
|
||||
|
||||
if (IntersectRect(&rc,
|
||||
&ps->rcPaint,
|
||||
&Cell->CellExt))
|
||||
if (!IntersectRect(&rc,
|
||||
&ps->rcPaint,
|
||||
&Cell->CellExt))
|
||||
{
|
||||
Cell->ch = ch;
|
||||
|
||||
DrawTextW(ps->hdc,
|
||||
&ch,
|
||||
1,
|
||||
&Cell->CellInt,
|
||||
DT_CENTER | DT_VCENTER | DT_SINGLELINE);
|
||||
|
||||
added++;
|
||||
continue;
|
||||
}
|
||||
|
||||
i++;
|
||||
ch = (WCHAR)i;
|
||||
ch = (WCHAR)((XCELLS * (y + infoPtr->iYStart)) + x);
|
||||
|
||||
TagFontToCell(Cell, ch);
|
||||
|
||||
DrawTextW(ps->hdc,
|
||||
&ch,
|
||||
1,
|
||||
&Cell->CellInt,
|
||||
DT_CENTER | DT_VCENTER | DT_SINGLELINE);
|
||||
}
|
||||
|
||||
SelectObject(ps->hdc,
|
||||
hOldFont);
|
||||
}
|
||||
@@ -212,9 +211,6 @@ SetFont(PMAP infoPtr,
|
||||
LPWSTR lpFontName)
|
||||
{
|
||||
HDC hdc;
|
||||
WCHAR ch[MAX_GLYPHS];
|
||||
WORD out[MAX_GLYPHS];
|
||||
DWORD i, j;
|
||||
|
||||
/* Destroy Zoom window, since it was created with older font */
|
||||
DestroyWindow(infoPtr->hLrgWnd);
|
||||
@@ -227,7 +223,9 @@ SetFont(PMAP infoPtr,
|
||||
sizeof(LOGFONTW));
|
||||
|
||||
hdc = GetDC(infoPtr->hMapWnd);
|
||||
infoPtr->CurrentFont.lfHeight = GetDeviceCaps(hdc, LOGPIXELSY) / 5;
|
||||
infoPtr->CurrentFont.lfHeight = GetDeviceCaps(hdc,
|
||||
LOGPIXELSY) / 5;
|
||||
ReleaseDC(infoPtr->hMapWnd, hdc);
|
||||
|
||||
infoPtr->CurrentFont.lfCharSet = DEFAULT_CHARSET;
|
||||
wcsncpy(infoPtr->CurrentFont.lfFaceName,
|
||||
@@ -240,43 +238,12 @@ SetFont(PMAP infoPtr,
|
||||
NULL,
|
||||
TRUE);
|
||||
|
||||
infoPtr->pActiveCell = &infoPtr->Cells[0][0];
|
||||
|
||||
// Get all the valid glyphs in this font
|
||||
|
||||
SelectObject(hdc, infoPtr->hFont);
|
||||
|
||||
for (i = 0; i < MAX_GLYPHS; i++)
|
||||
ch[i] = (WCHAR)i;
|
||||
|
||||
if (GetGlyphIndicesW(hdc,
|
||||
ch,
|
||||
MAX_GLYPHS,
|
||||
out,
|
||||
GGI_MARK_NONEXISTING_GLYPHS) != GDI_ERROR)
|
||||
/* Test if zoom window must be reopened */
|
||||
if (infoPtr->pActiveCell != NULL &&
|
||||
infoPtr->pActiveCell->bLarge)
|
||||
{
|
||||
j = 0;
|
||||
for (i = 0; i < MAX_GLYPHS; i++)
|
||||
{
|
||||
if (out[i] != 0xffff)
|
||||
{
|
||||
infoPtr->ValidGlyphs[j] = ch[i];
|
||||
j++;
|
||||
}
|
||||
}
|
||||
infoPtr->NumValidGlyphs = j;
|
||||
CreateLargeCell(infoPtr);
|
||||
}
|
||||
|
||||
ReleaseDC(infoPtr->hMapWnd, hdc);
|
||||
|
||||
infoPtr->NumRows = infoPtr->NumValidGlyphs / XCELLS;
|
||||
if (infoPtr->NumValidGlyphs % XCELLS)
|
||||
infoPtr->NumRows += 1;
|
||||
infoPtr->NumRows = (infoPtr->NumRows > YCELLS) ? infoPtr->NumRows - YCELLS : 0;
|
||||
|
||||
SetScrollRange(infoPtr->hMapWnd, SB_VERT, 0, infoPtr->NumRows, FALSE);
|
||||
SetScrollPos(infoPtr->hMapWnd, SB_VERT, 0, TRUE);
|
||||
infoPtr->iYStart = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -410,7 +377,8 @@ OnCreate(PMAP infoPtr,
|
||||
|
||||
SetGrid(infoPtr);
|
||||
|
||||
SetScrollPos(infoPtr->hParent, SB_VERT, 0, TRUE);
|
||||
SetScrollRange(hwnd, SB_VERT, 0, 255, FALSE);
|
||||
SetScrollPos(hwnd, SB_VERT, 0, TRUE);
|
||||
|
||||
Ret = TRUE;
|
||||
}
|
||||
@@ -454,8 +422,8 @@ OnVScroll(PMAP infoPtr,
|
||||
break;
|
||||
}
|
||||
|
||||
infoPtr->iYStart = max(0, infoPtr->iYStart);
|
||||
infoPtr->iYStart = min(infoPtr->iYStart, infoPtr->NumRows);
|
||||
infoPtr->iYStart = max(0,
|
||||
min(infoPtr->iYStart, 255*16));
|
||||
|
||||
iYDiff = iOldYStart - infoPtr->iYStart;
|
||||
if (iYDiff)
|
||||
@@ -517,7 +485,7 @@ OnPaint(PMAP infoPtr,
|
||||
{
|
||||
return;
|
||||
}
|
||||
ps.hdc = (HDC)wParam;
|
||||
hdc = (HDC)wParam;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -7,13 +7,10 @@
|
||||
#include <winuser.h>
|
||||
#include <wingdi.h>
|
||||
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
#define SIZEOF(_v) (sizeof(_v) / sizeof(*_v))
|
||||
|
||||
#define MAX_GLYPHS 65536
|
||||
|
||||
#define XCELLS 20
|
||||
#define YCELLS 10
|
||||
#define XLARGE 45
|
||||
@@ -47,11 +44,6 @@ typedef struct _MAP
|
||||
HFONT hFont;
|
||||
LOGFONTW CurrentFont;
|
||||
INT iYStart;
|
||||
INT NumRows;
|
||||
|
||||
USHORT ValidGlyphs[MAX_GLYPHS];
|
||||
USHORT NumValidGlyphs;
|
||||
|
||||
} MAP, *PMAP;
|
||||
|
||||
typedef struct {
|
||||
@@ -74,7 +66,6 @@ BOOL RegisterMapClasses(HINSTANCE hInstance);
|
||||
VOID UnregisterMapClasses(HINSTANCE hInstance);
|
||||
|
||||
/* charmap.c */
|
||||
VOID UpdateStatusBar(WCHAR wch);
|
||||
extern VOID ChangeMapFont(HWND hDlg);
|
||||
|
||||
/* settings.c */
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 39 KiB |
@@ -58,7 +58,7 @@ extern void LoadSettings(void)
|
||||
if (RegOpenKeyEx(HKEY_CURRENT_USER, g_szGeneralRegKey, 0, KEY_READ, &hKey) == ERROR_SUCCESS)
|
||||
{
|
||||
TCHAR szBuffer[MAX_PATH];
|
||||
DWORD dwAdvancedChecked;
|
||||
DWORD dwAdvanChecked;
|
||||
unsigned long type = REG_DWORD, size = 1024;
|
||||
|
||||
/* Restore last selected font */
|
||||
@@ -89,9 +89,9 @@ extern void LoadSettings(void)
|
||||
}
|
||||
}
|
||||
|
||||
RegQueryValueEx(hKey, _T("Advanced"), NULL, &type, (LPBYTE)&dwAdvancedChecked, &size);
|
||||
RegQueryValueEx(hKey, _T("Advanced"), NULL, &type, (LPBYTE)&dwAdvanChecked, &size);
|
||||
|
||||
if(dwAdvancedChecked == TRUE)
|
||||
if(dwAdvanChecked == TRUE)
|
||||
SendDlgItemMessage(hCharmapDlg, IDC_CHECK_ADVANCED, BM_CLICK, MF_CHECKED, 0);
|
||||
|
||||
RegCloseKey(hKey);
|
||||
@@ -114,24 +114,27 @@ extern void SaveSettings(void)
|
||||
{
|
||||
HKEY hKey = NULL;
|
||||
|
||||
if (RegCreateKeyEx(HKEY_CURRENT_USER, g_szGeneralRegKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, &hKey, NULL) == ERROR_SUCCESS)
|
||||
if (RegCreateKey(HKEY_CURRENT_USER, g_szGeneralRegKey, &hKey) == ERROR_SUCCESS)
|
||||
{
|
||||
TCHAR szBuffer[MAX_PATH];
|
||||
if (RegOpenKeyEx(HKEY_CURRENT_USER, g_szGeneralRegKey, 0, KEY_SET_VALUE, &hKey) == ERROR_SUCCESS)
|
||||
{
|
||||
TCHAR szBuffer[MAX_PATH];
|
||||
|
||||
hWnd = GetDlgItem(hCharmapDlg, IDC_FONTCOMBO);
|
||||
ComboBox_GetText(hWnd, szBuffer, MAX_PATH);
|
||||
hWnd = GetDlgItem(hCharmapDlg, IDC_FONTCOMBO);
|
||||
ComboBox_GetText(hWnd, szBuffer, MAX_PATH);
|
||||
|
||||
if(*szBuffer != '\0')
|
||||
RegSetValueEx(hKey, _T("Font"), 0, REG_SZ, (LPBYTE) szBuffer, (DWORD) MAX_PATH);
|
||||
if(*szBuffer != '\0')
|
||||
RegSetValueEx(hKey, _T("Font"), 0, REG_SZ, (LPBYTE) szBuffer, (DWORD) MAX_PATH);
|
||||
|
||||
hWnd = GetDlgItem(hCharmapDlg, IDC_COMBO_CHARSET);
|
||||
ComboBox_GetText(hWnd, szBuffer, MAX_PATH);
|
||||
hWnd = GetDlgItem(hCharmapDlg, IDC_COMBO_CHARSET);
|
||||
ComboBox_GetText(hWnd, szBuffer, MAX_PATH);
|
||||
|
||||
if(*szBuffer != '\0')
|
||||
RegSetValueEx(hKey, _T("CodePage"), 0, REG_SZ, (LPBYTE) szBuffer, (DWORD) MAX_PATH);
|
||||
if(*szBuffer != '\0')
|
||||
RegSetValueEx(hKey, _T("CodePage"), 0, REG_SZ, (LPBYTE) szBuffer, (DWORD) MAX_PATH);
|
||||
|
||||
RegSetValueEx(hKey, _T("Advanced"), 0, REG_DWORD, (LPBYTE)&Settings.IsAdvancedView, (DWORD) sizeof(DWORD));
|
||||
RegSetValueEx(hKey, _T("Advanced"), 0, REG_DWORD, (LPBYTE)&Settings.IsAdvancedView, (DWORD) sizeof(DWORD));
|
||||
|
||||
RegCloseKey(hKey);
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,27 +0,0 @@
|
||||
PROJECT(CHARMAP)
|
||||
|
||||
set_cpp(WITH_RTTI WITH_RUNTIME WITH_EXCEPTIONS)
|
||||
|
||||
if(NOT MSVC)
|
||||
# HACK: this should be enabled globally!
|
||||
add_compile_flags_language("-std=c++11" "CXX")
|
||||
endif()
|
||||
|
||||
include_directories(
|
||||
${REACTOS_SOURCE_DIR}/sdk/lib/atl
|
||||
includes)
|
||||
|
||||
list(APPEND SOURCE
|
||||
precomp.h
|
||||
MainWindow.cpp
|
||||
)
|
||||
|
||||
add_library(charmap SHARED
|
||||
${SOURCE}
|
||||
charmap.rc)
|
||||
|
||||
set_module_type(charmap win32gui UNICODE)
|
||||
target_link_libraries(charmap uuid atlnew wine)
|
||||
add_importlibs(charmap advapi32 user32 gdi32 comctl32 version msvcrt kernel32 ole32 uxtheme ntdll)
|
||||
add_pch(charmap precomp.h SOURCE)
|
||||
add_cd_file(TARGET charmap DESTINATION reactos/system32 FOR all)
|
@@ -1,94 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Character Map
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: base/applications/charmap/cell.cpp
|
||||
* PURPOSE: Class for each individual cell
|
||||
* COPYRIGHT: Copyright 2015 Ged Murphy <gedmurphy@reactos.org>
|
||||
*/
|
||||
|
||||
|
||||
#include "precomp.h"
|
||||
#include "Cell.h"
|
||||
|
||||
|
||||
/* DATA *****************************************************/
|
||||
|
||||
|
||||
/* PUBLIC METHODS **********************************************/
|
||||
|
||||
CCell::CCell(
|
||||
_In_ HWND hParent
|
||||
) :
|
||||
CCell(hParent, RECT{0})
|
||||
{
|
||||
}
|
||||
|
||||
CCell::CCell(
|
||||
_In_ HWND hParent,
|
||||
_In_ RECT& CellCoordinates
|
||||
) :
|
||||
m_hParent(hParent),
|
||||
m_CellCoordinates(CellCoordinates),
|
||||
m_Char(L'*'),
|
||||
m_bHasFocus(false),
|
||||
m_bIsLarge(false)
|
||||
{
|
||||
}
|
||||
|
||||
CCell::~CCell()
|
||||
{
|
||||
}
|
||||
|
||||
bool
|
||||
CCell::OnPaint(_In_ PAINTSTRUCT &PaintStruct)
|
||||
{
|
||||
// Check if this cell is in our paint region
|
||||
BOOL NeedsPaint; RECT rect;
|
||||
NeedsPaint = IntersectRect(&rect,
|
||||
&PaintStruct.rcPaint,
|
||||
&m_CellCoordinates);
|
||||
if (NeedsPaint == FALSE)
|
||||
return false;
|
||||
|
||||
|
||||
|
||||
// Draw the cell border
|
||||
BOOL b = Rectangle(PaintStruct.hdc,
|
||||
m_CellCoordinates.left,
|
||||
m_CellCoordinates.top,
|
||||
m_CellCoordinates.right,
|
||||
m_CellCoordinates.bottom);
|
||||
|
||||
// Calculate an internal drawing canvas for the cell
|
||||
RECT Internal;
|
||||
CopyRect(&Internal, &m_CellCoordinates);
|
||||
InflateRect(&Internal, -1, -1);
|
||||
|
||||
// Check if this cell has focus
|
||||
if (m_bHasFocus)
|
||||
{
|
||||
// Draw the smaller cell to make it look selected
|
||||
Rectangle(PaintStruct.hdc,
|
||||
Internal.left,
|
||||
Internal.top,
|
||||
Internal.right,
|
||||
Internal.bottom);
|
||||
}
|
||||
|
||||
int Success;
|
||||
Success = DrawTextW(PaintStruct.hdc,
|
||||
&m_Char,
|
||||
1,
|
||||
&Internal,
|
||||
DT_CENTER | DT_VCENTER | DT_SINGLELINE);
|
||||
|
||||
return (Success != 0);
|
||||
}
|
||||
|
||||
void
|
||||
CCell::SetCellCoordinates(
|
||||
_In_ RECT& Coordinates
|
||||
)
|
||||
{
|
||||
m_CellCoordinates = Coordinates;
|
||||
}
|
@@ -1,37 +0,0 @@
|
||||
#pragma once
|
||||
class CCell
|
||||
{
|
||||
private:
|
||||
HWND m_hParent;
|
||||
RECT m_CellCoordinates;
|
||||
|
||||
bool m_bHasFocus;
|
||||
bool m_bIsLarge;
|
||||
WCHAR m_Char;
|
||||
|
||||
public:
|
||||
CCell(
|
||||
_In_ HWND hParent
|
||||
);
|
||||
|
||||
CCell(
|
||||
_In_ HWND hParent,
|
||||
_In_ RECT& CellLocation
|
||||
);
|
||||
|
||||
~CCell();
|
||||
|
||||
LPRECT GetCellCoordinates() { return &m_CellCoordinates; }
|
||||
void SetFocus(_In_ bool HasFocus) { m_bHasFocus = HasFocus; }
|
||||
WCHAR GetChar() { return m_Char; }
|
||||
void SetChar(_In_ WCHAR ch) { m_Char = ch; }
|
||||
|
||||
bool OnPaint(
|
||||
_In_ PAINTSTRUCT &PaintStruct
|
||||
);
|
||||
|
||||
void SetCellCoordinates(
|
||||
_In_ RECT& Coordinates
|
||||
);
|
||||
};
|
||||
|
@@ -1,523 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Character Map
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: base/applications/charmap/GridView.cpp
|
||||
* PURPOSE: Class for for the window which contains the font matrix
|
||||
* COPYRIGHT: Copyright 2015 Ged Murphy <gedmurphy@reactos.org>
|
||||
*/
|
||||
|
||||
|
||||
#include "precomp.h"
|
||||
#include "GridView.h"
|
||||
#include "Cell.h"
|
||||
|
||||
|
||||
/* DATA *****************************************************/
|
||||
|
||||
extern HINSTANCE g_hInstance;
|
||||
|
||||
|
||||
/* PUBLIC METHODS **********************************************/
|
||||
|
||||
CGridView::CGridView() :
|
||||
m_xNumCells(20),
|
||||
m_yNumCells(10),
|
||||
m_ScrollPosition(0),
|
||||
m_NumRows(0)
|
||||
{
|
||||
m_szMapWndClass = L"CharGridWClass";
|
||||
}
|
||||
|
||||
CGridView::~CGridView()
|
||||
{
|
||||
}
|
||||
|
||||
bool
|
||||
CGridView::Create(
|
||||
_In_ HWND hParent
|
||||
)
|
||||
{
|
||||
WNDCLASSW wc = { 0 };
|
||||
wc.style = CS_DBLCLKS;
|
||||
wc.lpfnWndProc = MapWndProc;
|
||||
wc.cbWndExtra = sizeof(CGridView *);
|
||||
wc.hInstance = g_hInstance;
|
||||
wc.hCursor = LoadCursorW(NULL, (LPWSTR)IDC_ARROW);
|
||||
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
|
||||
wc.lpszClassName = m_szMapWndClass;
|
||||
|
||||
if (RegisterClassW(&wc))
|
||||
{
|
||||
m_hwnd = CreateWindowExW(0,
|
||||
m_szMapWndClass,
|
||||
NULL,
|
||||
WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL,
|
||||
0,0,0,0,
|
||||
hParent,
|
||||
NULL,
|
||||
g_hInstance,
|
||||
this);
|
||||
|
||||
}
|
||||
|
||||
return !!(m_hwnd != NULL);
|
||||
}
|
||||
|
||||
bool
|
||||
CGridView::SetFont(
|
||||
_In_ CAtlString& FontName
|
||||
)
|
||||
{
|
||||
|
||||
// Create a temporary container for the new font
|
||||
CurrentFont NewFont = { 0 };
|
||||
NewFont.FontName = FontName;
|
||||
|
||||
// Get the DC for the full grid window
|
||||
HDC hdc;
|
||||
hdc = GetDC(m_hwnd);
|
||||
if (hdc == NULL) return false;
|
||||
|
||||
// Setup the logfont structure
|
||||
NewFont.Font.lfHeight = 0; // This is set in WM_SIZE
|
||||
NewFont.Font.lfCharSet = DEFAULT_CHARSET;
|
||||
StringCchCopyW(NewFont.Font.lfFaceName, LF_FACESIZE, FontName);
|
||||
|
||||
// Get a handle to the new font
|
||||
NewFont.hFont = CreateFontIndirectW(&NewFont.Font);
|
||||
if (NewFont.hFont == NULL)
|
||||
{
|
||||
ReleaseDC(m_hwnd, hdc);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Setup an array of all possible non-BMP indices
|
||||
WCHAR ch[MAX_GLYPHS];
|
||||
for (int i = 0; i < MAX_GLYPHS; i++)
|
||||
ch[i] = (WCHAR)i;
|
||||
|
||||
HFONT hOldFont;
|
||||
hOldFont = (HFONT)SelectObject(hdc, NewFont.hFont);
|
||||
|
||||
// Translate all the indices into glyphs
|
||||
WORD out[MAX_GLYPHS];
|
||||
DWORD Status;
|
||||
Status = GetGlyphIndicesW(hdc,
|
||||
ch,
|
||||
MAX_GLYPHS,
|
||||
out,
|
||||
GGI_MARK_NONEXISTING_GLYPHS);
|
||||
ReleaseDC(m_hwnd, hdc);
|
||||
if (Status == GDI_ERROR)
|
||||
{
|
||||
SelectObject(hdc, hOldFont);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Loop all the glyphs looking for valid ones
|
||||
// and store those in our font data
|
||||
int j = 0;
|
||||
for (int i = 0; i < MAX_GLYPHS; i++)
|
||||
{
|
||||
if (out[i] != 0xffff)
|
||||
{
|
||||
NewFont.ValidGlyphs[j] = ch[i];
|
||||
j++;
|
||||
}
|
||||
}
|
||||
NewFont.NumValidGlyphs = j;
|
||||
|
||||
// Calculate the number of rows required to hold all glyphs
|
||||
m_NumRows = NewFont.NumValidGlyphs / m_xNumCells;
|
||||
if (NewFont.NumValidGlyphs % m_xNumCells)
|
||||
m_NumRows += 1;
|
||||
|
||||
// Set the scrollbar in relation to the rows
|
||||
SetScrollRange(m_hwnd, SB_VERT, 0, m_NumRows - m_yNumCells, FALSE);
|
||||
|
||||
// We're done, update the current font
|
||||
m_CurrentFont = NewFont;
|
||||
|
||||
// We changed the font, we'll need to repaint the whole window
|
||||
InvalidateRect(m_hwnd,
|
||||
NULL,
|
||||
TRUE);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* PRIVATE METHODS **********************************************/
|
||||
|
||||
bool
|
||||
CGridView::UpdateCellCoordinates(
|
||||
)
|
||||
{
|
||||
// Go through all the cells and calculate
|
||||
// their coordinates within the grid
|
||||
for (int y = 0; y < m_yNumCells; y++)
|
||||
for (int x = 0; x < m_xNumCells; x++)
|
||||
{
|
||||
RECT CellCoordinates;
|
||||
CellCoordinates.left = x * m_CellSize.cx;
|
||||
CellCoordinates.top = y * m_CellSize.cy;
|
||||
CellCoordinates.right = (x + 1) * m_CellSize.cx + 1;
|
||||
CellCoordinates.bottom = (y + 1) * m_CellSize.cy + 1;
|
||||
|
||||
m_Cells[y][x]->SetCellCoordinates(CellCoordinates);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
LRESULT
|
||||
CGridView::OnCreate(
|
||||
_In_ HWND hwnd,
|
||||
_In_ HWND hParent
|
||||
)
|
||||
{
|
||||
m_hwnd = hwnd;
|
||||
m_hParent = hParent;
|
||||
|
||||
// C++ doesn't allow : "CCells ***C = new CCell***[x * y]"
|
||||
// so we have to build the 2d array up manually
|
||||
m_Cells = new CCell**[m_yNumCells]; // rows
|
||||
for (int i = 0; i < m_yNumCells; i++)
|
||||
m_Cells[i] = new CCell*[m_xNumCells]; // columns
|
||||
|
||||
for (int y = 0; y < m_yNumCells; y++)
|
||||
for (int x = 0; x < m_xNumCells; x++)
|
||||
{
|
||||
m_Cells[y][x] = new CCell(m_hwnd);
|
||||
}
|
||||
|
||||
// Give the first cell focus
|
||||
SetCellFocus(m_Cells[0][0]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
LRESULT
|
||||
CGridView::OnSize(
|
||||
_In_ INT Width,
|
||||
_In_ INT Height
|
||||
)
|
||||
{
|
||||
// Get the client area of the main dialog
|
||||
RECT ParentRect;
|
||||
GetClientRect(m_hParent, &ParentRect);
|
||||
|
||||
// Calculate the grid size using the parent
|
||||
m_ClientCoordinates.left = ParentRect.left + 25;
|
||||
m_ClientCoordinates.top = ParentRect.top + 50;
|
||||
m_ClientCoordinates.right = ParentRect.right - m_ClientCoordinates.left - 10;
|
||||
m_ClientCoordinates.bottom = ParentRect.bottom - m_ClientCoordinates.top - 70;
|
||||
|
||||
// Resize the grid window
|
||||
SetWindowPos(m_hwnd,
|
||||
NULL,
|
||||
m_ClientCoordinates.left,
|
||||
m_ClientCoordinates.top,
|
||||
m_ClientCoordinates.right,
|
||||
m_ClientCoordinates.bottom,
|
||||
SWP_NOZORDER | SWP_SHOWWINDOW);
|
||||
|
||||
// Get the client area we can draw on. The position we set above includes
|
||||
// a scrollbar which we obviously can't draw on. GetClientRect gives us
|
||||
// the size without the scroll, and it's more efficient than getting the
|
||||
// scroll metrics and calculating the size from that
|
||||
RECT ClientRect;
|
||||
GetClientRect(m_hwnd, &ClientRect);
|
||||
m_CellSize.cx = ClientRect.right / m_xNumCells;
|
||||
m_CellSize.cy = ClientRect.bottom / m_yNumCells;
|
||||
|
||||
// Let all the cells know about their new coords
|
||||
UpdateCellCoordinates();
|
||||
|
||||
// We scale the font size up or down depending on the cell size
|
||||
if (m_CurrentFont.hFont)
|
||||
{
|
||||
// Delete the existing font
|
||||
DeleteObject(m_CurrentFont.hFont);
|
||||
|
||||
HDC hdc;
|
||||
hdc = GetDC(m_hwnd);
|
||||
if (hdc)
|
||||
{
|
||||
// Update the font size with respect to the cell size
|
||||
m_CurrentFont.Font.lfHeight = (m_CellSize.cy - 5);
|
||||
m_CurrentFont.hFont = CreateFontIndirectW(&m_CurrentFont.Font);
|
||||
ReleaseDC(m_hwnd, hdc);
|
||||
}
|
||||
}
|
||||
|
||||
// Redraw the whole grid
|
||||
InvalidateRect(m_hwnd, &ClientRect, TRUE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
VOID
|
||||
CGridView::OnVScroll(_In_ INT Value,
|
||||
_In_ INT Pos)
|
||||
{
|
||||
|
||||
INT PrevScrollPosition = m_ScrollPosition;
|
||||
|
||||
switch (Value)
|
||||
{
|
||||
case SB_LINEUP:
|
||||
m_ScrollPosition -= 1;
|
||||
break;
|
||||
|
||||
case SB_LINEDOWN:
|
||||
m_ScrollPosition += 1;
|
||||
break;
|
||||
|
||||
case SB_PAGEUP:
|
||||
m_ScrollPosition -= m_yNumCells;
|
||||
break;
|
||||
|
||||
case SB_PAGEDOWN:
|
||||
m_ScrollPosition += m_yNumCells;
|
||||
break;
|
||||
|
||||
case SB_THUMBTRACK:
|
||||
m_ScrollPosition = Pos;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// Make sure we don't scroll past row 0 or max rows
|
||||
m_ScrollPosition = max(0, m_ScrollPosition);
|
||||
m_ScrollPosition = min(m_ScrollPosition, m_NumRows);
|
||||
|
||||
// Check if there's a difference from the previous position
|
||||
INT ScrollDiff;
|
||||
ScrollDiff = PrevScrollPosition - m_ScrollPosition;
|
||||
if (ScrollDiff)
|
||||
{
|
||||
// Set the new scrollbar position in the scroll box
|
||||
SetScrollPos(m_hwnd,
|
||||
SB_VERT,
|
||||
m_ScrollPosition,
|
||||
TRUE);
|
||||
|
||||
// Check if the scrollbar has moved more than the
|
||||
// number of visible rows (draged or paged)
|
||||
if (abs(ScrollDiff) < m_yNumCells)
|
||||
{
|
||||
RECT rect;
|
||||
GetClientRect(m_hwnd, &rect);
|
||||
|
||||
// Scroll the visible cells which remain within the grid
|
||||
// and invalidate any new ones which appear from the top / bottom
|
||||
ScrollWindowEx(m_hwnd,
|
||||
0,
|
||||
ScrollDiff * m_CellSize.cy,
|
||||
&rect,
|
||||
&rect,
|
||||
NULL,
|
||||
NULL,
|
||||
SW_INVALIDATE);
|
||||
}
|
||||
else
|
||||
{
|
||||
// All the cells need to be redrawn
|
||||
InvalidateRect(m_hwnd,
|
||||
NULL,
|
||||
TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LRESULT
|
||||
CGridView::OnPaint(
|
||||
_In_opt_ HDC hdc
|
||||
)
|
||||
{
|
||||
PAINTSTRUCT PaintStruct = { 0 };
|
||||
HDC LocalHdc = NULL;
|
||||
BOOL bSuccess = FALSE;
|
||||
|
||||
// Check if we were passed a DC
|
||||
if (hdc == NULL)
|
||||
{
|
||||
// We weren't, let's get one
|
||||
LocalHdc = BeginPaint(m_hwnd, &PaintStruct);
|
||||
if (LocalHdc) bSuccess = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Use the existing DC and just get the region to paint
|
||||
bSuccess = GetUpdateRect(m_hwnd,
|
||||
&PaintStruct.rcPaint,
|
||||
TRUE);
|
||||
if (bSuccess)
|
||||
{
|
||||
// Update the struct with the DC we were passed
|
||||
PaintStruct.hdc = (HDC)hdc;
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure we have a valid DC
|
||||
if (bSuccess)
|
||||
{
|
||||
// Paint the grid and chars
|
||||
DrawGrid(&PaintStruct);
|
||||
|
||||
if (LocalHdc)
|
||||
{
|
||||
EndPaint(m_hwnd, &PaintStruct);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
LRESULT
|
||||
CALLBACK
|
||||
CGridView::MapWndProc(
|
||||
HWND hwnd,
|
||||
UINT uMsg,
|
||||
WPARAM wParam,
|
||||
LPARAM lParam
|
||||
)
|
||||
{
|
||||
CGridView *This;
|
||||
LRESULT RetCode = 0;
|
||||
|
||||
// Get the object pointer from window context
|
||||
This = (CGridView *)GetWindowLongPtr(hwnd, GWLP_USERDATA);
|
||||
if (This == NULL)
|
||||
{
|
||||
// Check that this isn't a create message
|
||||
if (uMsg != WM_CREATE)
|
||||
{
|
||||
// Don't handle null info pointer
|
||||
goto HandleDefaultMessage;
|
||||
}
|
||||
}
|
||||
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_CREATE:
|
||||
{
|
||||
// Get the object pointer from the create param
|
||||
This = (CGridView *)((LPCREATESTRUCT)lParam)->lpCreateParams;
|
||||
|
||||
// Store the pointer in the window's global user data
|
||||
SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)This);
|
||||
|
||||
This->OnCreate(hwnd, ((LPCREATESTRUCTW)lParam)->hwndParent);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_SIZE:
|
||||
{
|
||||
INT Width, Height;
|
||||
Width = LOWORD(lParam);
|
||||
Height = HIWORD(lParam);
|
||||
|
||||
This->OnSize(Width, Height);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_VSCROLL:
|
||||
{
|
||||
INT Value, Pos;
|
||||
Value = LOWORD(wParam);
|
||||
Pos = HIWORD(wParam);
|
||||
|
||||
This->OnVScroll(Value, Pos);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_PAINT:
|
||||
{
|
||||
This->OnPaint((HDC)wParam);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_DESTROY:
|
||||
{
|
||||
This->DeleteCells();
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
HandleDefaultMessage:
|
||||
RetCode = DefWindowProcW(hwnd, uMsg, wParam, lParam);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return RetCode;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
CGridView::DrawGrid(
|
||||
_In_ LPPAINTSTRUCT PaintStruct
|
||||
)
|
||||
{
|
||||
// Calculate which glyph to start at based on scroll position
|
||||
int i;
|
||||
i = m_xNumCells * m_ScrollPosition;
|
||||
|
||||
// Make sure we have the correct font on the DC
|
||||
HFONT hOldFont;
|
||||
hOldFont = (HFONT)SelectFont(PaintStruct->hdc,
|
||||
m_CurrentFont.hFont);
|
||||
|
||||
// Traverse all the cells
|
||||
for (int y = 0; y < m_yNumCells; y++)
|
||||
for (int x = 0; x < m_xNumCells; x++)
|
||||
{
|
||||
// Update the glyph for this cell
|
||||
WCHAR ch = (WCHAR)m_CurrentFont.ValidGlyphs[i];
|
||||
m_Cells[y][x]->SetChar(ch);
|
||||
|
||||
// Tell it to paint itself
|
||||
m_Cells[y][x]->OnPaint(*PaintStruct);
|
||||
i++;
|
||||
}
|
||||
|
||||
SelectObject(PaintStruct->hdc, hOldFont);
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
CGridView::DeleteCells()
|
||||
{
|
||||
if (m_Cells == nullptr)
|
||||
return;
|
||||
|
||||
// Free cells withing the 2d array
|
||||
for (int i = 0; i < m_yNumCells; i++)
|
||||
delete[] m_Cells[i];
|
||||
delete[] m_Cells;
|
||||
|
||||
m_Cells = nullptr;
|
||||
}
|
||||
|
||||
void
|
||||
CGridView::SetCellFocus(
|
||||
_In_ CCell* NewActiveCell
|
||||
)
|
||||
{
|
||||
if (m_ActiveCell)
|
||||
{
|
||||
// Remove focus from any existing cell
|
||||
m_ActiveCell->SetFocus(false);
|
||||
InvalidateRect(m_hwnd, m_ActiveCell->GetCellCoordinates(), TRUE);
|
||||
}
|
||||
|
||||
// Set the new active cell and give it focus
|
||||
m_ActiveCell = NewActiveCell;
|
||||
m_ActiveCell->SetFocus(true);
|
||||
}
|
@@ -1,92 +0,0 @@
|
||||
#pragma once
|
||||
#include "Cell.h"
|
||||
|
||||
#define MAX_GLYPHS 0xFFFF
|
||||
|
||||
struct CurrentFont
|
||||
{
|
||||
CAtlStringW FontName;
|
||||
LOGFONTW Font;
|
||||
HFONT hFont;
|
||||
USHORT ValidGlyphs[MAX_GLYPHS];
|
||||
USHORT NumValidGlyphs;
|
||||
};
|
||||
|
||||
|
||||
class CGridView
|
||||
{
|
||||
private:
|
||||
CAtlStringW m_szMapWndClass;
|
||||
|
||||
HWND m_hwnd;
|
||||
HWND m_hParent;
|
||||
|
||||
int m_xNumCells;
|
||||
int m_yNumCells;
|
||||
|
||||
RECT m_ClientCoordinates;
|
||||
SIZE m_CellSize;
|
||||
CCell*** m_Cells; // *m_Cells[][];
|
||||
CCell *m_ActiveCell;
|
||||
|
||||
INT m_ScrollPosition;
|
||||
int m_NumRows;
|
||||
|
||||
CurrentFont m_CurrentFont;
|
||||
|
||||
public:
|
||||
CGridView();
|
||||
~CGridView();
|
||||
|
||||
bool Create(
|
||||
_In_ HWND hParent
|
||||
);
|
||||
|
||||
bool SetFont(
|
||||
_In_ CAtlString& FontName
|
||||
);
|
||||
|
||||
HWND GetHwnd() { return m_hwnd; }
|
||||
|
||||
private:
|
||||
static LRESULT
|
||||
CALLBACK
|
||||
MapWndProc(HWND hwnd,
|
||||
UINT uMsg,
|
||||
WPARAM wParam,
|
||||
LPARAM lParam);
|
||||
|
||||
LRESULT OnCreate(
|
||||
_In_ HWND hwnd,
|
||||
_In_ HWND hParent
|
||||
);
|
||||
|
||||
|
||||
LRESULT OnSize(
|
||||
_In_ INT Width,
|
||||
_In_ INT Height
|
||||
);
|
||||
|
||||
VOID OnVScroll(
|
||||
_In_ INT Value,
|
||||
_In_ INT Pos
|
||||
);
|
||||
|
||||
LRESULT OnPaint(
|
||||
_In_opt_ HDC hdc
|
||||
);
|
||||
|
||||
bool UpdateCellCoordinates(
|
||||
);
|
||||
|
||||
void DrawGrid(
|
||||
_In_ LPPAINTSTRUCT PaintStruct
|
||||
);
|
||||
|
||||
void DeleteCells();
|
||||
|
||||
void SetCellFocus(
|
||||
_In_ CCell* NewActiveCell
|
||||
);
|
||||
};
|
||||
|
@@ -1,537 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Character Map
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: base/applications/charmap/MainWindow.cpp
|
||||
* PURPOSE: Implements the main dialog window
|
||||
* COPYRIGHT: Copyright 2015 Ged Murphy <gedmurphy@reactos.org>
|
||||
*/
|
||||
|
||||
|
||||
#include "precomp.h"
|
||||
#include "MainWindow.h"
|
||||
|
||||
|
||||
/* DATA *****************************************************/
|
||||
|
||||
#define ID_ABOUT 0x1
|
||||
|
||||
HINSTANCE g_hInstance = NULL;
|
||||
|
||||
|
||||
/* PUBLIC METHODS **********************************************/
|
||||
|
||||
CCharMapWindow::CCharMapWindow(void) :
|
||||
m_hMainWnd(NULL),
|
||||
m_hStatusBar(NULL),
|
||||
m_CmdShow(0),
|
||||
m_hRichEd(NULL),
|
||||
m_GridView(nullptr)
|
||||
{
|
||||
m_GridView = new CGridView();
|
||||
}
|
||||
|
||||
CCharMapWindow::~CCharMapWindow(void)
|
||||
{
|
||||
}
|
||||
|
||||
bool
|
||||
CCharMapWindow::Create(_In_ HINSTANCE hInst,
|
||||
_In_ int nCmdShow)
|
||||
{
|
||||
INITCOMMONCONTROLSEX icex;
|
||||
CAtlStringW szAppName;
|
||||
int Ret = 1;
|
||||
|
||||
// Store the instance
|
||||
g_hInstance = hInst;
|
||||
m_CmdShow = nCmdShow;
|
||||
|
||||
// Initialize common controls
|
||||
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
|
||||
icex.dwICC = ICC_BAR_CLASSES | ICC_COOL_CLASSES;
|
||||
InitCommonControlsEx(&icex);
|
||||
|
||||
// Load the application name
|
||||
if (szAppName.LoadStringW(g_hInstance, IDS_TITLE))
|
||||
{
|
||||
// Initialize the main window
|
||||
if (Initialize(szAppName, nCmdShow))
|
||||
{
|
||||
// Run the application
|
||||
Ret = Run();
|
||||
|
||||
// Uninitialize the main window
|
||||
Uninitialize();
|
||||
}
|
||||
}
|
||||
|
||||
return (Ret == 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* PRIVATE METHODS **********************************************/
|
||||
|
||||
bool
|
||||
CCharMapWindow::Initialize(_In_z_ LPCTSTR lpCaption,
|
||||
_In_ int nCmdShow)
|
||||
{
|
||||
// The dialog has a rich edit text box
|
||||
m_hRichEd = LoadLibraryW(L"riched20.DLL");
|
||||
if (m_hRichEd == NULL) return false;
|
||||
|
||||
return !!(CreateDialogParamW(g_hInstance,
|
||||
MAKEINTRESOURCE(IDD_CHARMAP),
|
||||
NULL,
|
||||
DialogProc,
|
||||
(LPARAM)this));
|
||||
}
|
||||
|
||||
void
|
||||
CCharMapWindow::Uninitialize(void)
|
||||
{
|
||||
if (m_hRichEd)
|
||||
FreeLibrary(m_hRichEd);
|
||||
}
|
||||
|
||||
int
|
||||
CCharMapWindow::Run(void)
|
||||
{
|
||||
MSG Msg;
|
||||
|
||||
// Pump the message queue
|
||||
while (GetMessageW(&Msg, NULL, 0, 0) != 0)
|
||||
{
|
||||
TranslateMessage(&Msg);
|
||||
DispatchMessageW(&Msg);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
CCharMapWindow::UpdateStatusBar(_In_ bool InMenuLoop)
|
||||
{
|
||||
SendMessageW(m_hStatusBar,
|
||||
SB_SIMPLE,
|
||||
(WPARAM)InMenuLoop,
|
||||
0);
|
||||
}
|
||||
|
||||
bool
|
||||
CCharMapWindow::CreateStatusBar(void)
|
||||
{
|
||||
int StatWidths[] = { 110, -1 }; // widths of status bar
|
||||
bool bRet = FALSE;
|
||||
|
||||
// Create the status bar
|
||||
m_hStatusBar = CreateWindowExW(0,
|
||||
STATUSCLASSNAME,
|
||||
NULL,
|
||||
WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP,
|
||||
0, 0, 0, 0,
|
||||
m_hMainWnd,
|
||||
(HMENU)IDD_STATUSBAR,
|
||||
g_hInstance,
|
||||
NULL);
|
||||
if (m_hStatusBar)
|
||||
{
|
||||
// Create the sections
|
||||
bRet = (SendMessageW(m_hStatusBar,
|
||||
SB_SETPARTS,
|
||||
sizeof(StatWidths) / sizeof(int),
|
||||
(LPARAM)StatWidths) != 0);
|
||||
|
||||
// Set the status bar for multiple parts output
|
||||
SendMessage(m_hStatusBar, SB_SIMPLE, (WPARAM)FALSE, (LPARAM)0);
|
||||
}
|
||||
|
||||
return bRet;
|
||||
}
|
||||
|
||||
bool
|
||||
CCharMapWindow::StatusBarLoadString(_In_ HWND hStatusBar,
|
||||
_In_ INT PartId,
|
||||
_In_ HINSTANCE hInstance,
|
||||
_In_ UINT uID)
|
||||
{
|
||||
CAtlStringW szMessage;
|
||||
bool bRet = false;
|
||||
|
||||
// Load the string from the resource
|
||||
if (szMessage.LoadStringW(hInstance, uID))
|
||||
{
|
||||
// Display it on the status bar
|
||||
bRet = (SendMessageW(hStatusBar,
|
||||
SB_SETTEXT,
|
||||
(WPARAM)PartId,
|
||||
(LPARAM)szMessage.GetBuffer()) != 0);
|
||||
}
|
||||
|
||||
return bRet;
|
||||
}
|
||||
|
||||
BOOL
|
||||
CCharMapWindow::OnCreate(_In_ HWND hDlg)
|
||||
{
|
||||
m_hMainWnd = hDlg;
|
||||
|
||||
if (!CreateStatusBar())
|
||||
return FALSE;
|
||||
|
||||
if (!m_GridView->Create(hDlg))
|
||||
return FALSE;
|
||||
|
||||
// Load an 'about' option into the system menu
|
||||
HMENU hSysMenu;
|
||||
hSysMenu = GetSystemMenu(m_hMainWnd, FALSE);
|
||||
if (hSysMenu != NULL)
|
||||
{
|
||||
CAtlStringW AboutText;
|
||||
if (AboutText.LoadStringW(IDS_ABOUT))
|
||||
{
|
||||
AppendMenuW(hSysMenu, MF_SEPARATOR, 0, NULL);
|
||||
AppendMenuW(hSysMenu, MF_STRING, ID_ABOUT, AboutText);
|
||||
}
|
||||
}
|
||||
|
||||
// Add all the fonts to the
|
||||
if (!CreateFontComboBox())
|
||||
return FALSE;
|
||||
|
||||
ChangeMapFont();
|
||||
|
||||
// Configure Richedit control for sending notification changes.
|
||||
DWORD evMask;
|
||||
evMask = SendDlgItemMessage(hDlg, IDC_TEXTBOX, EM_GETEVENTMASK, 0, 0);
|
||||
evMask |= ENM_CHANGE;
|
||||
SendDlgItemMessage(hDlg, IDC_TEXTBOX, EM_SETEVENTMASK, 0, (LPARAM)evMask);
|
||||
|
||||
// Display the window according to the user request
|
||||
ShowWindow(m_hMainWnd, m_CmdShow);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL
|
||||
CCharMapWindow::OnSize(
|
||||
_In_ WPARAM wParam
|
||||
)
|
||||
{
|
||||
RECT rcClient, rcStatus;
|
||||
INT lvHeight, iStatusHeight;
|
||||
|
||||
// Resize the status bar
|
||||
SendMessage(m_hStatusBar, WM_SIZE, 0, 0);
|
||||
|
||||
// Get the statusbar rect and save the height
|
||||
GetWindowRect(m_hStatusBar, &rcStatus);
|
||||
iStatusHeight = rcStatus.bottom - rcStatus.top;
|
||||
|
||||
// Get the full client rect
|
||||
GetClientRect(m_hMainWnd, &rcClient);
|
||||
|
||||
// Calculate the remaining height for the gridview
|
||||
lvHeight = rcClient.bottom - iStatusHeight;
|
||||
|
||||
// Resize the grid view
|
||||
SendMessageW(m_GridView->GetHwnd(), WM_SIZE, wParam, 0);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL
|
||||
CCharMapWindow::OnNotify(_In_ LPARAM lParam)
|
||||
{
|
||||
LPNMHDR NmHdr = (LPNMHDR)lParam;
|
||||
LRESULT Ret = 0;
|
||||
|
||||
switch (NmHdr->code)
|
||||
{
|
||||
case NM_RCLICK:
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
case NM_DBLCLK:
|
||||
case NM_RETURN:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return Ret;
|
||||
}
|
||||
|
||||
BOOL
|
||||
CCharMapWindow::OnContext(_In_ LPARAM lParam)
|
||||
{
|
||||
return 0;// m_GridView->OnContextMenu(lParam);
|
||||
}
|
||||
|
||||
BOOL
|
||||
CCharMapWindow::OnCommand(_In_ WPARAM wParam,
|
||||
_In_ LPARAM /*lParam*/)
|
||||
{
|
||||
LRESULT RetCode = 0;
|
||||
WORD Msg;
|
||||
|
||||
// Get the message
|
||||
Msg = LOWORD(wParam);
|
||||
|
||||
switch (Msg)
|
||||
{
|
||||
case IDC_CHECK_ADVANCED:
|
||||
break;
|
||||
|
||||
case IDC_FONTCOMBO:
|
||||
if (HIWORD(wParam) == CBN_SELCHANGE)
|
||||
{
|
||||
ChangeMapFont();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// We didn't handle it
|
||||
RetCode = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
return RetCode;
|
||||
}
|
||||
|
||||
BOOL
|
||||
CCharMapWindow::OnDestroy(void)
|
||||
{
|
||||
// Clear the user data pointer
|
||||
SetWindowLongPtr(m_hMainWnd, GWLP_USERDATA, 0);
|
||||
|
||||
// Break the message loop
|
||||
PostQuitMessage(0);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
INT_PTR CALLBACK
|
||||
CCharMapWindow::DialogProc(
|
||||
_In_ HWND hwndDlg,
|
||||
_In_ UINT Msg,
|
||||
_In_ WPARAM wParam,
|
||||
_In_ LPARAM lParam
|
||||
)
|
||||
{
|
||||
CCharMapWindow *This;
|
||||
LRESULT RetCode = 0;
|
||||
|
||||
// Get the object pointer from window context
|
||||
This = (CCharMapWindow *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
|
||||
if (This == NULL)
|
||||
{
|
||||
// Check that this isn't a create message
|
||||
if (Msg != WM_INITDIALOG)
|
||||
{
|
||||
// Don't handle null info pointer
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
switch (Msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
// Get the object pointer from the create param
|
||||
This = (CCharMapWindow *)lParam;
|
||||
|
||||
// Store the pointer in the window's global user data
|
||||
SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)This);
|
||||
|
||||
// Call the create handler
|
||||
return This->OnCreate(hwndDlg);
|
||||
}
|
||||
|
||||
case WM_SIZE:
|
||||
{
|
||||
return This->OnSize(wParam);
|
||||
}
|
||||
|
||||
case WM_NOTIFY:
|
||||
{
|
||||
return This->OnNotify(lParam);
|
||||
}
|
||||
|
||||
case WM_CONTEXTMENU:
|
||||
{
|
||||
return This->OnContext(lParam);
|
||||
}
|
||||
|
||||
case WM_COMMAND:
|
||||
{
|
||||
return This->OnCommand(wParam, lParam);
|
||||
}
|
||||
|
||||
case WM_SYSCOMMAND:
|
||||
switch (wParam)
|
||||
{
|
||||
case ID_ABOUT:
|
||||
// Apportion blame
|
||||
MessageBoxW(This->m_hMainWnd,
|
||||
L"ReactOS Character Map\r\nCopyright Ged Murphy 2015",
|
||||
L"About",
|
||||
MB_OK | MB_APPLMODAL);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_ENTERMENULOOP:
|
||||
{
|
||||
This->UpdateStatusBar(true);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_EXITMENULOOP:
|
||||
{
|
||||
This->UpdateStatusBar(false);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_CLOSE:
|
||||
{
|
||||
// Destroy the main window
|
||||
return DestroyWindow(hwndDlg);
|
||||
}
|
||||
|
||||
|
||||
case WM_DESTROY:
|
||||
{
|
||||
// Call the destroy handler
|
||||
return This->OnDestroy();
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
struct EnumFontParams
|
||||
{
|
||||
CCharMapWindow *This;
|
||||
HWND hCombo;
|
||||
};
|
||||
|
||||
int
|
||||
CALLBACK
|
||||
CCharMapWindow::EnumDisplayFont(ENUMLOGFONTEXW *lpelfe,
|
||||
NEWTEXTMETRICEXW *lpntme,
|
||||
DWORD FontType,
|
||||
LPARAM lParam)
|
||||
{
|
||||
EnumFontParams *Params = (EnumFontParams *)lParam;
|
||||
LPWSTR pszName = lpelfe->elfLogFont.lfFaceName;
|
||||
|
||||
/* Skip rotated font */
|
||||
if (pszName[0] == L'@') return 1;
|
||||
|
||||
/* make sure font doesn't already exist in our list */
|
||||
if (SendMessageW(Params->hCombo,
|
||||
CB_FINDSTRINGEXACT,
|
||||
0,
|
||||
(LPARAM)pszName) == CB_ERR)
|
||||
{
|
||||
INT idx;
|
||||
idx = (INT)SendMessageW(Params->hCombo,
|
||||
CB_ADDSTRING,
|
||||
0,
|
||||
(LPARAM)pszName);
|
||||
|
||||
/* record the font's attributes (Fixedwidth and Truetype) */
|
||||
BOOL fFixed = (lpelfe->elfLogFont.lfPitchAndFamily & FIXED_PITCH) ? TRUE : FALSE;
|
||||
BOOL fTrueType = (lpelfe->elfLogFont.lfOutPrecision == OUT_STROKE_PRECIS) ? TRUE : FALSE;
|
||||
|
||||
/* store this information in the list-item's userdata area */
|
||||
SendMessageW(Params->hCombo,
|
||||
CB_SETITEMDATA,
|
||||
idx,
|
||||
MAKEWPARAM(fFixed, fTrueType));
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
CCharMapWindow::CreateFontComboBox()
|
||||
{
|
||||
HWND hCombo;
|
||||
hCombo = GetDlgItem(m_hMainWnd, IDC_FONTCOMBO);
|
||||
|
||||
NONCLIENTMETRICSW NonClientMetrics;
|
||||
NonClientMetrics.cbSize = sizeof(NONCLIENTMETRICSW);
|
||||
SystemParametersInfoW(SPI_GETNONCLIENTMETRICS,
|
||||
sizeof(NONCLIENTMETRICSW),
|
||||
&NonClientMetrics,
|
||||
0);
|
||||
|
||||
// Get a handle to the font
|
||||
HFONT GuiFont;
|
||||
GuiFont = CreateFontIndirectW(&NonClientMetrics.lfMessageFont);
|
||||
|
||||
// Set the font used in the combo box
|
||||
SendMessageW(hCombo,
|
||||
WM_SETFONT,
|
||||
(WPARAM)GuiFont,
|
||||
0);
|
||||
|
||||
// Set the fonts which we want to enumerate
|
||||
LOGFONTW FontsToEnum;
|
||||
ZeroMemory(&FontsToEnum, sizeof(LOGFONTW));
|
||||
FontsToEnum.lfCharSet = DEFAULT_CHARSET;
|
||||
|
||||
// Set the params we want to pass to the callback
|
||||
EnumFontParams Params;
|
||||
Params.This = this;
|
||||
Params.hCombo = hCombo;
|
||||
|
||||
// Get a DC for combo box
|
||||
HDC hdc;
|
||||
hdc = GetDC(hCombo);
|
||||
|
||||
// Enumerate all the fonts
|
||||
int ret;
|
||||
ret = EnumFontFamiliesExW(hdc,
|
||||
&FontsToEnum,
|
||||
(FONTENUMPROCW)EnumDisplayFont,
|
||||
(LPARAM)&Params,
|
||||
0);
|
||||
|
||||
ReleaseDC(hCombo, hdc);
|
||||
DeleteObject(GuiFont);
|
||||
|
||||
// Select the first item in the list
|
||||
SendMessageW(hCombo,
|
||||
CB_SETCURSEL,
|
||||
0,
|
||||
0);
|
||||
|
||||
return (ret == 1);
|
||||
}
|
||||
|
||||
bool
|
||||
CCharMapWindow::ChangeMapFont(
|
||||
)
|
||||
{
|
||||
HWND hCombo;
|
||||
hCombo = GetDlgItem(m_hMainWnd, IDC_FONTCOMBO);
|
||||
|
||||
INT Length;
|
||||
Length = GetWindowTextLengthW(hCombo);
|
||||
if (!Length) return false;
|
||||
|
||||
CAtlStringW FontName;
|
||||
FontName.Preallocate(Length);
|
||||
|
||||
SendMessageW(hCombo,
|
||||
WM_GETTEXT,
|
||||
FontName.GetAllocLength(),
|
||||
(LPARAM)FontName.GetBuffer());
|
||||
|
||||
return m_GridView->SetFont(FontName);
|
||||
}
|
@@ -1,84 +0,0 @@
|
||||
#pragma once
|
||||
#include "GridView.h"
|
||||
|
||||
class CCharMapWindow
|
||||
{
|
||||
HWND m_hMainWnd;
|
||||
HWND m_hStatusBar;
|
||||
int m_CmdShow;
|
||||
HMODULE m_hRichEd;
|
||||
|
||||
CGridView *m_GridView;
|
||||
|
||||
public:
|
||||
CCharMapWindow(void);
|
||||
~CCharMapWindow(void);
|
||||
|
||||
bool Create(
|
||||
_In_ HINSTANCE hInst,
|
||||
_In_ int nCmdShow
|
||||
);
|
||||
|
||||
private:
|
||||
static INT_PTR CALLBACK DialogProc(
|
||||
_In_ HWND hwndDlg,
|
||||
_In_ UINT uMsg,
|
||||
_In_ WPARAM wParam,
|
||||
_In_ LPARAM lParam
|
||||
);
|
||||
|
||||
bool Initialize(
|
||||
_In_z_ LPCTSTR lpCaption,
|
||||
_In_ int nCmdShow
|
||||
);
|
||||
|
||||
int Run();
|
||||
void Uninitialize(void);
|
||||
|
||||
BOOL OnCreate(
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
BOOL OnDestroy(void);
|
||||
BOOL OnSize(void);
|
||||
|
||||
BOOL OnNotify(
|
||||
_In_ LPARAM lParam
|
||||
);
|
||||
|
||||
BOOL OnContext(
|
||||
_In_ LPARAM lParam
|
||||
);
|
||||
|
||||
BOOL OnCommand(
|
||||
_In_ WPARAM wParam,
|
||||
LPARAM lParam
|
||||
);
|
||||
|
||||
bool CreateStatusBar(void);
|
||||
|
||||
bool StatusBarLoadString(
|
||||
_In_ HWND hStatusBar,
|
||||
_In_ INT PartId,
|
||||
_In_ HINSTANCE hInstance,
|
||||
_In_ UINT uID
|
||||
);
|
||||
|
||||
void UpdateStatusBar(
|
||||
_In_ bool InMenuLoop
|
||||
);
|
||||
|
||||
static int CALLBACK
|
||||
EnumDisplayFont(
|
||||
ENUMLOGFONTEXW *lpelfe,
|
||||
NEWTEXTMETRICEXW *lpntme,
|
||||
DWORD FontType,
|
||||
LPARAM lParam
|
||||
);
|
||||
|
||||
bool CreateFontComboBox(
|
||||
);
|
||||
|
||||
bool ChangeMapFont(
|
||||
);
|
||||
};
|
@@ -1,19 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Character Map
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: base/applications/charmap/charmap.cpp
|
||||
* COPYRIGHT: Copyright 2006 Ged Murphy <gedmurphy@gmail.com>
|
||||
*/
|
||||
|
||||
#include "precomp.h"
|
||||
#include "MainWindow.h"
|
||||
|
||||
int WINAPI
|
||||
wWinMain(HINSTANCE hThisInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
LPWSTR lpCmdLine,
|
||||
int nCmdShow)
|
||||
{
|
||||
CCharMapWindow CharMap;
|
||||
return CharMap.Create(hThisInstance, nCmdShow);
|
||||
}
|
@@ -1,101 +0,0 @@
|
||||
#include <windef.h>
|
||||
#include <winuser.h>
|
||||
#include <richedit.h>
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
|
||||
IDI_ICON ICON "res/charmap.ico"
|
||||
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Character Map"
|
||||
#define REACTOS_STR_INTERNAL_NAME "charmap"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "charmap.exe"
|
||||
//#include <reactos/version.rc>
|
||||
|
||||
//#include <reactos/manifest_exe.rc>
|
||||
|
||||
/* UTF-8 */
|
||||
#pragma code_page(65001)
|
||||
|
||||
#ifdef LANGUAGE_BG_BG
|
||||
#include "lang/bg-BG.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_CA_ES
|
||||
#include "lang/ca-ES.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_CS_CZ
|
||||
#include "lang/cs-CZ.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_DE_DE
|
||||
#include "lang/de-DE.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_EN_US
|
||||
#include "lang/en-US.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_EL_GR
|
||||
#include "lang/el-GR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_ES_ES
|
||||
#include "lang/es-ES.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_FR_FR
|
||||
#include "lang/fr-FR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_HE_IL
|
||||
#include "lang/he-IL.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_ID_ID
|
||||
#include "lang/id-ID.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_IT_IT
|
||||
#include "lang/it-IT.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_JA_JP
|
||||
#include "lang/ja-JP.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_KO_KR
|
||||
#include "lang/ko-KR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_LT_LT
|
||||
#include "lang/lt-LT.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_NL_NL
|
||||
#include "lang/nl-NL.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_NB_NO
|
||||
#include "lang/no-NO.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_PL_PL
|
||||
#include "lang/pl-PL.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_PT_BR
|
||||
#include "lang/pt-BR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_RO_RO
|
||||
#include "lang/ro-RO.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_RU_RU
|
||||
#include "lang/ru-RU.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_SK_SK
|
||||
#include "lang/sk-SK.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_SQ_AL
|
||||
#include "lang/sq-AL.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_SV_SE
|
||||
#include "lang/sv-SE.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "lang/tr-TR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_UK_UA
|
||||
#include "lang/uk-UA.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_ZH_CN
|
||||
#include "lang/zh-CN.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_ZH_TW
|
||||
#include "lang/zh-TW.rc"
|
||||
#endif
|
@@ -1,22 +0,0 @@
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
|
||||
IDD_CHARMAP DIALOGEX 6, 6, 290, 224
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_SIZEBOX
|
||||
CAPTION "ReactOS Character Map"
|
||||
BEGIN
|
||||
LTEXT "Font:", IDC_STATIC, 6, 7, 24, 9
|
||||
COMBOBOX IDC_FONTCOMBO, 28, 5, 150, 210, WS_CHILD | WS_VISIBLE |
|
||||
WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT | CBS_HASSTRINGS
|
||||
LTEXT "Characters to copy:", 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 "Select", IDC_SELECT, 194, 186, 44, 13
|
||||
PUSHBUTTON "Copy", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ABOUT "A&bout..."
|
||||
IDS_TITLE "Character Map"
|
||||
END
|
@@ -1,35 +0,0 @@
|
||||
/* TRANSLATOR: 2015 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
|
||||
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
||||
IDD_CHARMAP DIALOGEX 6, 6, 292, 224
|
||||
FONT 8, "MS Shell Dlg", 0, 0
|
||||
STYLE WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
|
||||
CAPTION "ReactOS Damga Eşlemi"
|
||||
BEGIN
|
||||
LTEXT "Yazı Tipi:", IDC_STATIC, 6, 7, 24, 9
|
||||
COMBOBOX IDC_FONTCOMBO, 36, 5, 210, 210, WS_CHILD | WS_VISIBLE |
|
||||
WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT | CBS_HASSTRINGS
|
||||
LTEXT "Çoğaltılacak Damgalar:", 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ç", IDC_SELECT, 194, 186, 44, 13
|
||||
PUSHBUTTON "Çoğalt", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
|
||||
//CONTROL "Gelişmiş Görünüm", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
|
||||
// WS_TABSTOP, 8, 208, 95, 10
|
||||
//LTEXT "Damga Öbeği:", IDC_STATIC, 8, 8, 48, 8
|
||||
//COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
//LTEXT "Takımla:", IDC_STATIC, 8, 28, 50, 8
|
||||
//COMBOBOX IDC_COMBO_GROUPBY, 72, 24, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
//PUSHBUTTON "Ara", IDC_BUTTON_SEARCH, 200, 44, 50, 14
|
||||
//EDITTEXT IDC_EDIT_SEARCH, 72, 44, 116, 14, ES_AUTOHSCROLL
|
||||
//LTEXT "Ada Göre Ara:", IDC_STATIC, 8, 48, 42, 8
|
||||
//LTEXT "Evrenlik Kod:", IDC_STATIC, 200, 8, 30, 8
|
||||
//EDITTEXT IDC_EDIT_UNICODE, 236, 4, 28, 12, ES_AUTOHSCROLL
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ABOUT "&Üzerine..."
|
||||
IDS_TITLE "Damga Eşlemi"
|
||||
END
|
@@ -1,54 +0,0 @@
|
||||
//#pragma once
|
||||
|
||||
#ifndef __REACTOS__
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <Windows.h>
|
||||
#include <windowsx.h>
|
||||
#include <setupapi.h>
|
||||
#include <cfgmgr32.h>
|
||||
#include <commctrl.h>
|
||||
#include <Uxtheme.h>
|
||||
#include <richedit.h>
|
||||
|
||||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
|
||||
#include <tchar.h>
|
||||
#include <atlbase.h>
|
||||
#include <atlstr.h>
|
||||
#include <atlcoll.h>
|
||||
|
||||
#include <strsafe.h>
|
||||
|
||||
|
||||
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
|
||||
#else
|
||||
|
||||
#include <string.h>
|
||||
#include <wchar.h>
|
||||
|
||||
#include <tchar.h>
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <winreg.h>
|
||||
#include <wingdi.h>
|
||||
#include <winnls.h>
|
||||
#include <wincon.h>
|
||||
#include <shlobj.h>
|
||||
#include <shlwapi.h>
|
||||
#include <strsafe.h>
|
||||
|
||||
#include <commctrl.h>
|
||||
#include <cfgmgr32.h>
|
||||
#include <uxtheme.h>
|
||||
|
||||
#include <atlbase.h>
|
||||
#include <atlstr.h>
|
||||
#include <atlcoll.h>
|
||||
|
||||
//WINE_DEFAULT_DEBUG_CHANNEL(charmap);
|
||||
|
||||
#endif
|
Binary file not shown.
Before Width: | Height: | Size: 39 KiB |
@@ -1,30 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#define IDC_STATIC -1
|
||||
|
||||
#define IDI_ICON 100
|
||||
|
||||
#define IDD_CHARMAP 200
|
||||
#define IDD_ABOUTBOX 201
|
||||
#define IDD_STATUSBAR 202
|
||||
#define IDD_ADVANCED 203
|
||||
|
||||
#define IDC_FONTCOMBO 1001
|
||||
#define IDC_CMHELP 1002
|
||||
#define IDC_FONTMAP 1003
|
||||
#define IDC_TEXTBOX 1004
|
||||
#define IDC_SELECT 1005
|
||||
#define IDC_COPY 1006
|
||||
#define IDC_ADVVIEW 1007
|
||||
#define IDC_DISPLAY 1008
|
||||
#define IDC_LICENSE_EDIT 1009
|
||||
#define IDC_COMBO_CHARSET 1010
|
||||
#define IDC_COMBO_GROUPBY 1011
|
||||
#define IDC_BUTTON_SEARCH 1012
|
||||
#define IDC_EDIT_SEARCH 1013
|
||||
#define IDC_EDIT_UNICODE 1014
|
||||
#define IDC_CHECK_ADVANCED 1017
|
||||
|
||||
#define IDS_LICENSE 2010
|
||||
#define IDS_ABOUT 2011
|
||||
#define IDS_TITLE 2012
|
@@ -1,14 +0,0 @@
|
||||
|
||||
list(APPEND SOURCE
|
||||
clipbrd.c
|
||||
cliputils.c
|
||||
fileutils.c
|
||||
scrollutils.c
|
||||
winutils.c
|
||||
precomp.h)
|
||||
|
||||
add_executable(clipbrd ${SOURCE} clipbrd.rc)
|
||||
add_pch(clipbrd precomp.h SOURCE)
|
||||
set_module_type(clipbrd win32gui UNICODE)
|
||||
add_importlibs(clipbrd hhctrl user32 gdi32 comdlg32 shell32 msvcrt kernel32)
|
||||
add_cd_file(TARGET clipbrd DESTINATION reactos/system32 FOR all)
|
@@ -1,597 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Clipboard Viewer
|
||||
* FILE: base/applications/clipbrd/clipbrd.c
|
||||
* PURPOSE: Provides a view of the contents of the ReactOS clipboard.
|
||||
* PROGRAMMERS: Ricardo Hanke
|
||||
*/
|
||||
|
||||
#include "precomp.h"
|
||||
|
||||
static const WCHAR szClassName[] = L"ClipBookWClass";
|
||||
|
||||
CLIPBOARD_GLOBALS Globals;
|
||||
SCROLLSTATE Scrollstate;
|
||||
|
||||
static void UpdateLinesToScroll(void)
|
||||
{
|
||||
UINT uLinesToScroll;
|
||||
|
||||
if (!SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &uLinesToScroll, 0))
|
||||
{
|
||||
Globals.uLinesToScroll = 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
Globals.uLinesToScroll = uLinesToScroll;
|
||||
}
|
||||
}
|
||||
|
||||
static void SaveClipboardToFile(void)
|
||||
{
|
||||
OPENFILENAMEW sfn;
|
||||
WCHAR szFileName[MAX_PATH];
|
||||
WCHAR szFilterMask[MAX_STRING_LEN + 10];
|
||||
LPWSTR c;
|
||||
|
||||
ZeroMemory(&szFilterMask, sizeof(szFilterMask));
|
||||
c = szFilterMask + LoadStringW(Globals.hInstance, STRING_FORMAT_NT, szFilterMask, MAX_STRING_LEN) + 1;
|
||||
wcscpy(c, L"*.clp");
|
||||
|
||||
ZeroMemory(&szFileName, sizeof(szFileName));
|
||||
ZeroMemory(&sfn, sizeof(sfn));
|
||||
sfn.lStructSize = sizeof(sfn);
|
||||
sfn.hwndOwner = Globals.hMainWnd;
|
||||
sfn.hInstance = Globals.hInstance;
|
||||
sfn.lpstrFilter = szFilterMask;
|
||||
sfn.lpstrFile = szFileName;
|
||||
sfn.nMaxFile = ARRAYSIZE(szFileName);
|
||||
sfn.Flags = OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
|
||||
sfn.lpstrDefExt = L"clp";
|
||||
|
||||
if (!GetSaveFileNameW(&sfn))
|
||||
return;
|
||||
|
||||
if (!OpenClipboard(Globals.hMainWnd))
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
return;
|
||||
}
|
||||
|
||||
WriteClipboardFile(szFileName, CLIP_FMT_NT /* CLIP_FMT_31 */);
|
||||
|
||||
CloseClipboard();
|
||||
}
|
||||
|
||||
static void LoadClipboardDataFromFile(LPWSTR lpszFileName)
|
||||
{
|
||||
if (MessageBoxRes(Globals.hMainWnd, Globals.hInstance,
|
||||
STRING_DELETE_MSG, STRING_DELETE_TITLE,
|
||||
MB_ICONWARNING | MB_YESNO) != IDYES)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!OpenClipboard(Globals.hMainWnd))
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
return;
|
||||
}
|
||||
|
||||
EmptyClipboard();
|
||||
ReadClipboardFile(lpszFileName);
|
||||
|
||||
CloseClipboard();
|
||||
}
|
||||
|
||||
static void LoadClipboardFromFile(void)
|
||||
{
|
||||
OPENFILENAMEW ofn;
|
||||
WCHAR szFileName[MAX_PATH];
|
||||
WCHAR szFilterMask[MAX_STRING_LEN + 10];
|
||||
LPWSTR c;
|
||||
|
||||
ZeroMemory(&szFilterMask, sizeof(szFilterMask));
|
||||
c = szFilterMask + LoadStringW(Globals.hInstance, STRING_FORMAT_GEN, szFilterMask, MAX_STRING_LEN) + 1;
|
||||
wcscpy(c, L"*.clp");
|
||||
|
||||
ZeroMemory(&szFileName, sizeof(szFileName));
|
||||
ZeroMemory(&ofn, sizeof(ofn));
|
||||
ofn.lStructSize = sizeof(ofn);
|
||||
ofn.hwndOwner = Globals.hMainWnd;
|
||||
ofn.hInstance = Globals.hInstance;
|
||||
ofn.lpstrFilter = szFilterMask;
|
||||
ofn.lpstrFile = szFileName;
|
||||
ofn.nMaxFile = ARRAYSIZE(szFileName);
|
||||
ofn.Flags = OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_FILEMUSTEXIST;
|
||||
|
||||
if (!GetOpenFileNameW(&ofn))
|
||||
return;
|
||||
|
||||
LoadClipboardDataFromFile(szFileName);
|
||||
}
|
||||
|
||||
static void LoadClipboardFromDrop(HDROP hDrop)
|
||||
{
|
||||
WCHAR szFileName[MAX_PATH];
|
||||
|
||||
DragQueryFileW(hDrop, 0, szFileName, ARRAYSIZE(szFileName));
|
||||
DragFinish(hDrop);
|
||||
|
||||
LoadClipboardDataFromFile(szFileName);
|
||||
}
|
||||
|
||||
static void SetDisplayFormat(UINT uFormat)
|
||||
{
|
||||
CheckMenuItem(Globals.hMenu, Globals.uCheckedItem, MF_BYCOMMAND | MF_UNCHECKED);
|
||||
Globals.uCheckedItem = uFormat + CMD_AUTOMATIC;
|
||||
CheckMenuItem(Globals.hMenu, Globals.uCheckedItem, MF_BYCOMMAND | MF_CHECKED);
|
||||
|
||||
if (uFormat == 0)
|
||||
{
|
||||
Globals.uDisplayFormat = GetAutomaticClipboardFormat();
|
||||
}
|
||||
else
|
||||
{
|
||||
Globals.uDisplayFormat = uFormat;
|
||||
}
|
||||
|
||||
if (Globals.hDspBmp)
|
||||
{
|
||||
DeleteObject(Globals.hDspBmp);
|
||||
}
|
||||
|
||||
ZeroMemory(&Scrollstate, sizeof(Scrollstate));
|
||||
UpdateWindowScrollState(Globals.hMainWnd, Globals.hDspBmp, &Scrollstate);
|
||||
|
||||
InvalidateRect(Globals.hMainWnd, NULL, TRUE);
|
||||
}
|
||||
|
||||
static void InitMenuPopup(HMENU hMenu, LPARAM index)
|
||||
{
|
||||
if ((GetMenuItemID(hMenu, 0) == CMD_DELETE) || (GetMenuItemID(hMenu, 1) == CMD_SAVE_AS))
|
||||
{
|
||||
if (CountClipboardFormats() == 0)
|
||||
{
|
||||
EnableMenuItem(hMenu, CMD_DELETE, MF_GRAYED);
|
||||
EnableMenuItem(hMenu, CMD_SAVE_AS, MF_GRAYED);
|
||||
}
|
||||
else
|
||||
{
|
||||
EnableMenuItem(hMenu, CMD_DELETE, MF_ENABLED);
|
||||
EnableMenuItem(hMenu, CMD_SAVE_AS, MF_ENABLED);
|
||||
}
|
||||
}
|
||||
|
||||
DrawMenuBar(Globals.hMainWnd);
|
||||
}
|
||||
|
||||
static void UpdateDisplayMenu(void)
|
||||
{
|
||||
UINT uFormat;
|
||||
WCHAR szFormatName[MAX_FMT_NAME_LEN + 1];
|
||||
HMENU hMenu;
|
||||
|
||||
hMenu = GetSubMenu(Globals.hMenu, DISPLAY_MENU_POS);
|
||||
|
||||
while (GetMenuItemCount(hMenu) > 1)
|
||||
{
|
||||
DeleteMenu(hMenu, 1, MF_BYPOSITION);
|
||||
}
|
||||
|
||||
if (CountClipboardFormats() == 0)
|
||||
return;
|
||||
|
||||
if (!OpenClipboard(Globals.hMainWnd))
|
||||
return;
|
||||
|
||||
AppendMenuW(hMenu, MF_SEPARATOR, 0, NULL);
|
||||
|
||||
uFormat = EnumClipboardFormats(0);
|
||||
while (uFormat)
|
||||
{
|
||||
RetrieveClipboardFormatName(Globals.hInstance, uFormat, TRUE, szFormatName, ARRAYSIZE(szFormatName));
|
||||
|
||||
if (!IsClipboardFormatSupported(uFormat))
|
||||
{
|
||||
AppendMenuW(hMenu, MF_STRING | MF_GRAYED, 0, szFormatName);
|
||||
}
|
||||
else
|
||||
{
|
||||
AppendMenuW(hMenu, MF_STRING, CMD_AUTOMATIC + uFormat, szFormatName);
|
||||
}
|
||||
|
||||
uFormat = EnumClipboardFormats(uFormat);
|
||||
}
|
||||
|
||||
CloseClipboard();
|
||||
}
|
||||
|
||||
static int ClipboardCommandHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case CMD_OPEN:
|
||||
{
|
||||
LoadClipboardFromFile();
|
||||
break;
|
||||
}
|
||||
|
||||
case CMD_SAVE_AS:
|
||||
{
|
||||
SaveClipboardToFile();
|
||||
break;
|
||||
}
|
||||
|
||||
case CMD_EXIT:
|
||||
{
|
||||
PostMessageW(Globals.hMainWnd, WM_CLOSE, 0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
case CMD_DELETE:
|
||||
{
|
||||
if (MessageBoxRes(Globals.hMainWnd, Globals.hInstance,
|
||||
STRING_DELETE_MSG, STRING_DELETE_TITLE,
|
||||
MB_ICONWARNING | MB_YESNO) != IDYES)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
DeleteClipboardContent();
|
||||
break;
|
||||
}
|
||||
|
||||
case CMD_AUTOMATIC:
|
||||
{
|
||||
SetDisplayFormat(0);
|
||||
break;
|
||||
}
|
||||
|
||||
case CMD_HELP:
|
||||
{
|
||||
HtmlHelpW(Globals.hMainWnd, L"clipbrd.chm", 0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
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, hIcon);
|
||||
DeleteObject(hIcon);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ClipboardPaintHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
HDC hdc;
|
||||
PAINTSTRUCT ps;
|
||||
RECT rc;
|
||||
|
||||
if (!OpenClipboard(Globals.hMainWnd))
|
||||
return;
|
||||
|
||||
hdc = BeginPaint(hWnd, &ps);
|
||||
GetClientRect(hWnd, &rc);
|
||||
|
||||
switch (Globals.uDisplayFormat)
|
||||
{
|
||||
case CF_NONE:
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
case CF_UNICODETEXT:
|
||||
{
|
||||
DrawTextFromClipboard(hdc, &rc, DT_LEFT | DT_NOPREFIX);
|
||||
break;
|
||||
}
|
||||
|
||||
case CF_BITMAP:
|
||||
{
|
||||
BitBltFromClipboard(hdc, rc.left, rc.top, rc.right, rc.bottom, 0, 0, SRCCOPY);
|
||||
break;
|
||||
}
|
||||
|
||||
case CF_DIB:
|
||||
{
|
||||
SetDIBitsToDeviceFromClipboard(CF_DIB, hdc, rc.left, rc.top, 0, 0, 0, DIB_RGB_COLORS);
|
||||
break;
|
||||
}
|
||||
|
||||
case CF_DIBV5:
|
||||
{
|
||||
SetDIBitsToDeviceFromClipboard(CF_DIBV5, hdc, rc.left, rc.top, 0, 0, 0, DIB_RGB_COLORS);
|
||||
break;
|
||||
}
|
||||
|
||||
case CF_METAFILEPICT:
|
||||
{
|
||||
PlayMetaFileFromClipboard(hdc, &rc);
|
||||
break;
|
||||
}
|
||||
|
||||
case CF_ENHMETAFILE:
|
||||
{
|
||||
PlayEnhMetaFileFromClipboard(hdc, &rc);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
DrawTextFromResource(Globals.hInstance, ERROR_UNSUPPORTED_FORMAT, hdc, &rc, DT_CENTER | DT_WORDBREAK | DT_NOPREFIX);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
EndPaint(hWnd, &ps);
|
||||
|
||||
CloseClipboard();
|
||||
}
|
||||
|
||||
static LRESULT WINAPI MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_CREATE:
|
||||
{
|
||||
Globals.hMenu = GetMenu(hWnd);
|
||||
Globals.hWndNext = SetClipboardViewer(hWnd);
|
||||
UpdateDisplayMenu();
|
||||
SetDisplayFormat(0);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_CLOSE:
|
||||
{
|
||||
DestroyWindow(hWnd);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_DESTROY:
|
||||
{
|
||||
ChangeClipboardChain(hWnd, Globals.hWndNext);
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_PAINT:
|
||||
{
|
||||
ClipboardPaintHandler(hWnd, uMsg, wParam, lParam);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_KEYDOWN:
|
||||
{
|
||||
HandleKeyboardScrollEvents(hWnd, uMsg, wParam, lParam);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_MOUSEWHEEL:
|
||||
{
|
||||
HandleMouseScrollEvents(hWnd, uMsg, wParam, lParam, &Scrollstate);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_HSCROLL:
|
||||
{
|
||||
HandleHorizontalScrollEvents(hWnd, uMsg, wParam, lParam, &Scrollstate);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_VSCROLL:
|
||||
{
|
||||
HandleVerticalScrollEvents(hWnd, uMsg, wParam, lParam, &Scrollstate);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_SIZE:
|
||||
{
|
||||
UpdateWindowScrollState(hWnd, Globals.hDspBmp, &Scrollstate);
|
||||
|
||||
if ((Globals.uDisplayFormat == CF_METAFILEPICT) ||
|
||||
(Globals.uDisplayFormat == CF_ENHMETAFILE) ||
|
||||
(Globals.uDisplayFormat == CF_DSPENHMETAFILE) ||
|
||||
(Globals.uDisplayFormat == CF_DSPMETAFILEPICT))
|
||||
{
|
||||
InvalidateRect(Globals.hMainWnd, NULL, FALSE);
|
||||
}
|
||||
else if (!IsClipboardFormatSupported(Globals.uDisplayFormat))
|
||||
{
|
||||
InvalidateRect(Globals.hMainWnd, NULL, TRUE);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_CHANGECBCHAIN:
|
||||
{
|
||||
if ((HWND)wParam == Globals.hWndNext)
|
||||
{
|
||||
Globals.hWndNext = (HWND)lParam;
|
||||
}
|
||||
else if (Globals.hWndNext != NULL)
|
||||
{
|
||||
SendMessageW(Globals.hWndNext, uMsg, wParam, lParam);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_DRAWCLIPBOARD:
|
||||
{
|
||||
UpdateDisplayMenu();
|
||||
SetDisplayFormat(0);
|
||||
|
||||
SendMessageW(Globals.hWndNext, uMsg, wParam, lParam);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_COMMAND:
|
||||
{
|
||||
if ((LOWORD(wParam) > CMD_AUTOMATIC))
|
||||
{
|
||||
SetDisplayFormat(LOWORD(wParam) - CMD_AUTOMATIC);
|
||||
}
|
||||
else
|
||||
{
|
||||
ClipboardCommandHandler(hWnd, uMsg, wParam, lParam);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_INITMENUPOPUP:
|
||||
{
|
||||
InitMenuPopup((HMENU)wParam, lParam);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_DROPFILES:
|
||||
{
|
||||
LoadClipboardFromDrop((HDROP)wParam);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_QUERYNEWPALETTE:
|
||||
{
|
||||
if (RealizeClipboardPalette(hWnd) != GDI_ERROR)
|
||||
{
|
||||
InvalidateRect(hWnd, NULL, TRUE);
|
||||
UpdateWindow(hWnd);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
case WM_PALETTECHANGED:
|
||||
{
|
||||
if ((HWND)wParam != hWnd)
|
||||
{
|
||||
if (RealizeClipboardPalette(hWnd) != GDI_ERROR)
|
||||
{
|
||||
InvalidateRect(hWnd, NULL, TRUE);
|
||||
UpdateWindow(hWnd);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_SYSCOLORCHANGE:
|
||||
{
|
||||
SetDisplayFormat(Globals.uDisplayFormat);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_SETTINGCHANGE:
|
||||
{
|
||||
if (wParam == SPI_SETWHEELSCROLLLINES)
|
||||
{
|
||||
UpdateLinesToScroll();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
|
||||
{
|
||||
MSG msg;
|
||||
HACCEL hAccel;
|
||||
HWND hPrevWindow;
|
||||
WNDCLASSEXW wndclass;
|
||||
WCHAR szBuffer[MAX_STRING_LEN];
|
||||
|
||||
hPrevWindow = FindWindowW(szClassName, NULL);
|
||||
if (hPrevWindow)
|
||||
{
|
||||
BringWindowToFront(hPrevWindow);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ZeroMemory(&Globals, sizeof(Globals));
|
||||
Globals.hInstance = hInstance;
|
||||
|
||||
ZeroMemory(&wndclass, sizeof(wndclass));
|
||||
wndclass.cbSize = sizeof(wndclass);
|
||||
wndclass.lpfnWndProc = MainWndProc;
|
||||
wndclass.hInstance = hInstance;
|
||||
wndclass.hIcon = LoadIconW(hInstance, MAKEINTRESOURCEW(CLIPBRD_ICON));
|
||||
wndclass.hCursor = LoadCursorW(0, IDC_ARROW);
|
||||
wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
|
||||
wndclass.lpszMenuName = MAKEINTRESOURCEW(MAIN_MENU);
|
||||
wndclass.lpszClassName = szClassName;
|
||||
|
||||
if (!RegisterClassExW(&wndclass))
|
||||
{
|
||||
ShowLastWin32Error(NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
LoadStringW(hInstance, STRING_CLIPBOARD, szBuffer, ARRAYSIZE(szBuffer));
|
||||
Globals.hMainWnd = CreateWindowExW(WS_EX_CLIENTEDGE | WS_EX_ACCEPTFILES,
|
||||
szClassName,
|
||||
szBuffer,
|
||||
WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
NULL,
|
||||
NULL,
|
||||
Globals.hInstance,
|
||||
NULL);
|
||||
if (!Globals.hMainWnd)
|
||||
{
|
||||
ShowLastWin32Error(NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ShowWindow(Globals.hMainWnd, nCmdShow);
|
||||
UpdateWindow(Globals.hMainWnd);
|
||||
|
||||
hAccel = LoadAcceleratorsW(Globals.hInstance, MAKEINTRESOURCEW(ID_ACCEL));
|
||||
if (!hAccel)
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
}
|
||||
|
||||
/* If the user provided a path to a clipboard data file, try to open it */
|
||||
if (lpCmdLine != NULL && *lpCmdLine)
|
||||
LoadClipboardDataFromFile(lpCmdLine);
|
||||
|
||||
UpdateLinesToScroll();
|
||||
|
||||
while (GetMessageW(&msg, 0, 0, 0))
|
||||
{
|
||||
if (!TranslateAcceleratorW(Globals.hMainWnd, hAccel, &msg))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessageW(&msg);
|
||||
}
|
||||
}
|
||||
|
||||
if (Globals.hDspBmp)
|
||||
{
|
||||
DeleteObject(Globals.hDspBmp);
|
||||
}
|
||||
|
||||
return (int)msg.wParam;
|
||||
}
|
@@ -1,45 +0,0 @@
|
||||
#include <windef.h>
|
||||
#include <winuser.h>
|
||||
|
||||
#include "resources.h"
|
||||
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Clipboard Viewer"
|
||||
#define REACTOS_STR_INTERNAL_NAME "clipbrd"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "clipbrd.exe"
|
||||
#include <reactos/version.rc>
|
||||
|
||||
CLIPBRD_ICON ICON "res/clipbrd.ico"
|
||||
CLPFILE_ICON ICON "res/clpfile.ico"
|
||||
|
||||
#include <reactos/manifest_exe.rc>
|
||||
|
||||
/* UTF-8 */
|
||||
#pragma code_page(65001)
|
||||
|
||||
#ifdef LANGUAGE_DE_DE
|
||||
#include "lang/de-DE.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_EN_US
|
||||
#include "lang/en-US.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_ES_ES
|
||||
#include "lang/es-ES.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_FR_FR
|
||||
#include "lang/fr-FR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_RO_RO
|
||||
#include "lang/ro-RO.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_RU_RU
|
||||
#include "lang/ru-RU.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "lang/tr-TR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_ZH_CN
|
||||
#include "lang/zh-CN.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_ZH_TW
|
||||
#include "lang/zh-TW.rc"
|
||||
#endif
|
@@ -1,146 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Clipboard Viewer
|
||||
* FILE: base/applications/clipbrd/cliputils.c
|
||||
* PURPOSE: Clipboard helper functions.
|
||||
* PROGRAMMERS: Ricardo Hanke
|
||||
*/
|
||||
|
||||
#include "precomp.h"
|
||||
|
||||
static int
|
||||
GetPredefinedClipboardFormatName(HINSTANCE hInstance,
|
||||
UINT uFormat,
|
||||
BOOL Unicode,
|
||||
PVOID lpszFormat,
|
||||
UINT cch)
|
||||
{
|
||||
static
|
||||
struct FORMAT_NAME
|
||||
{
|
||||
UINT uFormat;
|
||||
UINT uResID;
|
||||
} uFormatList[] = {
|
||||
/* Table sorted in increasing order of CF_xxx values, please keep it this way! */
|
||||
{CF_TEXT , STRING_CF_TEXT }, // 1
|
||||
{CF_BITMAP , STRING_CF_BITMAP }, // 2
|
||||
{CF_METAFILEPICT, STRING_CF_METAFILEPICT}, // 3
|
||||
{CF_SYLK , STRING_CF_SYLK }, // 4
|
||||
{CF_DIF , STRING_CF_DIF }, // 5
|
||||
{CF_TIFF , 0/*STRING_CF_TIFF*/ }, // 6
|
||||
{CF_OEMTEXT , STRING_CF_OEMTEXT }, // 7
|
||||
{CF_DIB , STRING_CF_DIB }, // 8
|
||||
{CF_PALETTE , STRING_CF_PALETTE }, // 9
|
||||
{CF_PENDATA , 0/*STRING_CF_PENDATA*/ }, // 10
|
||||
{CF_RIFF , 0/*STRING_CF_RIFF*/ }, // 11
|
||||
{CF_WAVE , 0/*STRING_CF_WAVE*/ }, // 12
|
||||
{CF_UNICODETEXT , STRING_CF_UNICODETEXT }, // 13
|
||||
{CF_ENHMETAFILE , STRING_CF_ENHMETAFILE }, // 14
|
||||
#if(WINVER >= 0x0400)
|
||||
{CF_HDROP , STRING_CF_HDROP }, // 15
|
||||
{CF_LOCALE , STRING_CF_LOCALE }, // 16
|
||||
#endif
|
||||
#if(WINVER >= 0x0500)
|
||||
{CF_DIBV5 , STRING_CF_DIBV5 }, // 17
|
||||
#endif
|
||||
};
|
||||
|
||||
switch (uFormat)
|
||||
{
|
||||
case CF_TEXT: case CF_BITMAP: case CF_METAFILEPICT:
|
||||
case CF_SYLK: case CF_DIF: // case CF_TIFF:
|
||||
case CF_OEMTEXT: case CF_DIB: case CF_PALETTE:
|
||||
// case CF_PENDATA: // case CF_RIFF: // case CF_WAVE:
|
||||
case CF_UNICODETEXT: case CF_ENHMETAFILE:
|
||||
#if(WINVER >= 0x0400)
|
||||
case CF_HDROP: case CF_LOCALE:
|
||||
#endif
|
||||
#if(WINVER >= 0x0500)
|
||||
case CF_DIBV5:
|
||||
#endif
|
||||
{
|
||||
if (Unicode)
|
||||
return LoadStringW(hInstance, uFormatList[uFormat-1].uResID, (LPWSTR)lpszFormat, cch);
|
||||
else
|
||||
return LoadStringA(hInstance, uFormatList[uFormat-1].uResID, (LPSTR)lpszFormat, cch);
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
RetrieveClipboardFormatName(HINSTANCE hInstance,
|
||||
UINT uFormat,
|
||||
BOOL Unicode,
|
||||
PVOID lpszFormat,
|
||||
UINT cch)
|
||||
{
|
||||
if (!GetPredefinedClipboardFormatName(hInstance, uFormat, Unicode, lpszFormat, cch))
|
||||
{
|
||||
if (Unicode)
|
||||
{
|
||||
if (!GetClipboardFormatNameW(uFormat, (LPWSTR)lpszFormat, cch))
|
||||
LoadStringW(hInstance, STRING_CF_UNKNOWN, (LPWSTR)lpszFormat, cch);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!GetClipboardFormatNameA(uFormat, (LPSTR)lpszFormat, cch))
|
||||
LoadStringA(hInstance, STRING_CF_UNKNOWN, (LPSTR)lpszFormat, cch);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DeleteClipboardContent(void)
|
||||
{
|
||||
if (!OpenClipboard(Globals.hMainWnd))
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!EmptyClipboard())
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
}
|
||||
|
||||
CloseClipboard();
|
||||
}
|
||||
|
||||
UINT GetAutomaticClipboardFormat(void)
|
||||
{
|
||||
static UINT uFormatList[] = {
|
||||
CF_UNICODETEXT,
|
||||
CF_ENHMETAFILE,
|
||||
CF_METAFILEPICT,
|
||||
CF_DIBV5,
|
||||
CF_DIB,
|
||||
CF_BITMAP
|
||||
};
|
||||
|
||||
return GetPriorityClipboardFormat(uFormatList, ARRAYSIZE(uFormatList));
|
||||
}
|
||||
|
||||
BOOL IsClipboardFormatSupported(UINT uFormat)
|
||||
{
|
||||
switch (uFormat)
|
||||
{
|
||||
case CF_UNICODETEXT:
|
||||
case CF_BITMAP:
|
||||
case CF_ENHMETAFILE:
|
||||
case CF_METAFILEPICT:
|
||||
case CF_DIB:
|
||||
case CF_DIBV5:
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,18 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Clipboard Viewer
|
||||
* FILE: base/applications/clipbrd/cliputils.h
|
||||
* PURPOSE: Clipboard helper functions.
|
||||
* PROGRAMMERS: Ricardo Hanke
|
||||
*/
|
||||
|
||||
void
|
||||
RetrieveClipboardFormatName(HINSTANCE hInstance,
|
||||
UINT uFormat,
|
||||
BOOL Unicode,
|
||||
PVOID lpszFormat,
|
||||
UINT cch);
|
||||
|
||||
void DeleteClipboardContent(void);
|
||||
UINT GetAutomaticClipboardFormat(void);
|
||||
BOOL IsClipboardFormatSupported(UINT uFormat);
|
@@ -1,592 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Clipboard Viewer
|
||||
* FILE: base/applications/clipbrd/fileutils.c
|
||||
* PURPOSE: Clipboard file format helper functions.
|
||||
* PROGRAMMERS: Ricardo Hanke
|
||||
* Hermes Belusca-Maito
|
||||
*/
|
||||
|
||||
#include "precomp.h"
|
||||
|
||||
static HGLOBAL ClipboardReadMemoryBlock(HANDLE hFile, DWORD dwOffset, DWORD dwLength)
|
||||
{
|
||||
HGLOBAL hData;
|
||||
LPVOID lpData;
|
||||
DWORD dwBytesRead;
|
||||
|
||||
hData = GlobalAlloc(GHND, dwLength);
|
||||
if (!hData)
|
||||
return NULL;
|
||||
|
||||
lpData = GlobalLock(hData);
|
||||
if (!lpData)
|
||||
{
|
||||
GlobalFree(hData);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (SetFilePointer(hFile, dwOffset, NULL, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
|
||||
{
|
||||
GlobalUnlock(hData);
|
||||
GlobalFree(hData);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!ReadFile(hFile, lpData, dwLength, &dwBytesRead, NULL))
|
||||
{
|
||||
GlobalUnlock(hData);
|
||||
GlobalFree(hData);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
GlobalUnlock(hData);
|
||||
|
||||
return hData;
|
||||
}
|
||||
|
||||
static BOOL ClipboardReadMemory(HANDLE hFile, DWORD dwFormat, DWORD dwOffset, DWORD dwLength, WORD FileIdentifier, PVOID lpFormatName)
|
||||
{
|
||||
HGLOBAL hData;
|
||||
DWORD dwTemp = 0;
|
||||
|
||||
hData = ClipboardReadMemoryBlock(hFile, dwOffset, dwLength);
|
||||
if (!hData)
|
||||
return FALSE;
|
||||
|
||||
if ((dwFormat >= 0xC000) && (dwFormat <= 0xFFFF))
|
||||
{
|
||||
if (FileIdentifier == CLIP_FMT_31)
|
||||
dwTemp = RegisterClipboardFormatA((LPCSTR)lpFormatName);
|
||||
else if ((FileIdentifier == CLIP_FMT_NT) || (FileIdentifier == CLIP_FMT_BK))
|
||||
dwTemp = RegisterClipboardFormatW((LPCWSTR)lpFormatName);
|
||||
|
||||
if (!dwTemp)
|
||||
{
|
||||
GlobalFree(hData);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dwTemp = dwFormat;
|
||||
}
|
||||
|
||||
if (!SetClipboardData(dwTemp, hData))
|
||||
{
|
||||
GlobalFree(hData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL ClipboardWriteMemory(HANDLE hFile, DWORD dwFormat, DWORD dwOffset, PDWORD pdwLength)
|
||||
{
|
||||
HGLOBAL hData;
|
||||
LPVOID lpData;
|
||||
DWORD dwBytesWritten;
|
||||
|
||||
hData = GetClipboardData(dwFormat);
|
||||
if (!hData)
|
||||
return FALSE;
|
||||
|
||||
lpData = GlobalLock(hData);
|
||||
if (!lpData)
|
||||
return FALSE;
|
||||
|
||||
*pdwLength = GlobalSize(hData);
|
||||
|
||||
if (SetFilePointer(hFile, dwOffset, NULL, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
|
||||
{
|
||||
GlobalUnlock(hData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!WriteFile(hFile, lpData, *pdwLength, &dwBytesWritten, NULL))
|
||||
{
|
||||
GlobalUnlock(hData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
GlobalUnlock(hData);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL ClipboardReadPalette(HANDLE hFile, DWORD dwOffset, DWORD dwLength)
|
||||
{
|
||||
LPLOGPALETTE lpPalette;
|
||||
HPALETTE hPalette;
|
||||
HGLOBAL hData;
|
||||
|
||||
hData = ClipboardReadMemoryBlock(hFile, dwOffset, dwLength);
|
||||
if (!hData)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
lpPalette = GlobalLock(hData);
|
||||
if (!lpPalette)
|
||||
{
|
||||
GlobalFree(hData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
hPalette = CreatePalette(lpPalette);
|
||||
if (!hPalette)
|
||||
{
|
||||
GlobalUnlock(hData);
|
||||
GlobalFree(hData);
|
||||
SetLastError(ERROR_OUTOFMEMORY);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
GlobalUnlock(hData);
|
||||
GlobalFree(hData);
|
||||
|
||||
if (!SetClipboardData(CF_PALETTE, hPalette))
|
||||
{
|
||||
DeleteObject(hPalette);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL ClipboardReadMetafile(HANDLE hFile, DWORD dwOffset, DWORD dwLength)
|
||||
{
|
||||
HMETAFILE hMf;
|
||||
HGLOBAL hData;
|
||||
LPVOID lpData;
|
||||
|
||||
hData = ClipboardReadMemoryBlock(hFile, dwOffset, dwLength);
|
||||
if (!hData)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
lpData = GlobalLock(hData);
|
||||
if (!lpData)
|
||||
{
|
||||
GlobalFree(hData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
hMf = SetMetaFileBitsEx(dwLength, lpData);
|
||||
|
||||
GlobalUnlock(hData);
|
||||
GlobalFree(hData);
|
||||
|
||||
if (!hMf)
|
||||
{
|
||||
SetLastError(ERROR_OUTOFMEMORY);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!SetClipboardData(CF_METAFILEPICT, hMf))
|
||||
{
|
||||
DeleteMetaFile(hMf);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL ClipboardReadEnhMetafile(HANDLE hFile, DWORD dwOffset, DWORD dwLength)
|
||||
{
|
||||
HENHMETAFILE hEmf;
|
||||
HGLOBAL hData;
|
||||
LPVOID lpData;
|
||||
|
||||
hData = ClipboardReadMemoryBlock(hFile, dwOffset, dwLength);
|
||||
if (!hData)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
lpData = GlobalLock(hData);
|
||||
if (!lpData)
|
||||
{
|
||||
GlobalFree(hData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
hEmf = SetEnhMetaFileBits(dwLength, lpData);
|
||||
|
||||
GlobalUnlock(hData);
|
||||
GlobalFree(hData);
|
||||
|
||||
if (!hEmf)
|
||||
{
|
||||
SetLastError(ERROR_OUTOFMEMORY);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!SetClipboardData(CF_ENHMETAFILE, hEmf))
|
||||
{
|
||||
DeleteEnhMetaFile(hEmf);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL ClipboardReadBitmap(HANDLE hFile, DWORD dwOffset, DWORD dwLength)
|
||||
{
|
||||
HGLOBAL hData;
|
||||
HBITMAP hBitmap;
|
||||
LPBITMAP lpBitmap;
|
||||
|
||||
hData = ClipboardReadMemoryBlock(hFile, dwOffset, dwLength);
|
||||
if (!hData)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
lpBitmap = GlobalLock(hData);
|
||||
if (!lpBitmap)
|
||||
{
|
||||
GlobalFree(hData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
lpBitmap->bmBits = lpBitmap + sizeof(BITMAP) + 1;
|
||||
|
||||
hBitmap = CreateBitmapIndirect(lpBitmap);
|
||||
|
||||
GlobalUnlock(hData);
|
||||
GlobalFree(hData);
|
||||
|
||||
if (!hBitmap)
|
||||
{
|
||||
SetLastError(ERROR_OUTOFMEMORY);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!SetClipboardData(CF_BITMAP, hBitmap))
|
||||
{
|
||||
DeleteObject(hBitmap);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void ReadClipboardFile(LPCWSTR lpFileName)
|
||||
{
|
||||
CLIPFILEHEADER ClipFileHeader;
|
||||
CLIPFORMATHEADER ClipFormatArray;
|
||||
NTCLIPFILEHEADER NtClipFileHeader;
|
||||
NTCLIPFORMATHEADER NtClipFormatArray;
|
||||
PVOID pClipFileHeader;
|
||||
PVOID pClipFormatArray;
|
||||
DWORD SizeOfFileHeader, SizeOfFormatHeader;
|
||||
|
||||
WORD wFileIdentifier;
|
||||
WORD wFormatCount;
|
||||
DWORD dwFormatID;
|
||||
DWORD dwLenData;
|
||||
DWORD dwOffData;
|
||||
PVOID szName;
|
||||
|
||||
HANDLE hFile;
|
||||
DWORD dwBytesRead;
|
||||
BOOL bResult;
|
||||
int i;
|
||||
|
||||
/* Open the file for read access */
|
||||
hFile = CreateFileW(lpFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
|
||||
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Just read enough bytes to get the clipboard file format ID */
|
||||
if (!ReadFile(hFile, &wFileIdentifier, sizeof(wFileIdentifier), &dwBytesRead, NULL))
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Set data according to the clipboard file format ID */
|
||||
switch (wFileIdentifier)
|
||||
{
|
||||
case CLIP_FMT_31:
|
||||
SizeOfFileHeader = sizeof(CLIPFILEHEADER);
|
||||
SizeOfFormatHeader = sizeof(CLIPFORMATHEADER);
|
||||
pClipFileHeader = &ClipFileHeader;
|
||||
pClipFormatArray = &ClipFormatArray;
|
||||
break;
|
||||
|
||||
case CLIP_FMT_NT:
|
||||
case CLIP_FMT_BK:
|
||||
SizeOfFileHeader = sizeof(NTCLIPFILEHEADER);
|
||||
SizeOfFormatHeader = sizeof(NTCLIPFORMATHEADER);
|
||||
pClipFileHeader = &NtClipFileHeader;
|
||||
pClipFormatArray = &NtClipFormatArray;
|
||||
break;
|
||||
|
||||
default:
|
||||
MessageBoxRes(Globals.hMainWnd, Globals.hInstance, ERROR_INVALID_FILE_FORMAT, 0, MB_ICONSTOP | MB_OK);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Completely read the header */
|
||||
SetFilePointer(hFile, 0, NULL, FILE_BEGIN);
|
||||
if (!ReadFile(hFile, pClipFileHeader, SizeOfFileHeader, &dwBytesRead, NULL) ||
|
||||
dwBytesRead != SizeOfFileHeader)
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Get header data */
|
||||
switch (wFileIdentifier)
|
||||
{
|
||||
case CLIP_FMT_31:
|
||||
assert(wFileIdentifier == ((CLIPFILEHEADER*)pClipFileHeader)->wFileIdentifier);
|
||||
wFormatCount = ((CLIPFILEHEADER*)pClipFileHeader)->wFormatCount;
|
||||
break;
|
||||
|
||||
case CLIP_FMT_NT:
|
||||
case CLIP_FMT_BK:
|
||||
assert(wFileIdentifier == ((NTCLIPFILEHEADER*)pClipFileHeader)->wFileIdentifier);
|
||||
wFormatCount = ((NTCLIPFILEHEADER*)pClipFileHeader)->wFormatCount;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Loop through the format data array */
|
||||
for (i = 0; i < wFormatCount; i++)
|
||||
{
|
||||
if (SetFilePointer(hFile, SizeOfFileHeader + i * SizeOfFormatHeader, NULL, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!ReadFile(hFile, pClipFormatArray, SizeOfFormatHeader, &dwBytesRead, NULL))
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Get format data */
|
||||
switch (wFileIdentifier)
|
||||
{
|
||||
case CLIP_FMT_31:
|
||||
dwFormatID = ((CLIPFORMATHEADER*)pClipFormatArray)->dwFormatID;
|
||||
dwLenData = ((CLIPFORMATHEADER*)pClipFormatArray)->dwLenData;
|
||||
dwOffData = ((CLIPFORMATHEADER*)pClipFormatArray)->dwOffData;
|
||||
szName = ((CLIPFORMATHEADER*)pClipFormatArray)->szName;
|
||||
break;
|
||||
|
||||
case CLIP_FMT_NT:
|
||||
case CLIP_FMT_BK:
|
||||
dwFormatID = ((NTCLIPFORMATHEADER*)pClipFormatArray)->dwFormatID;
|
||||
dwLenData = ((NTCLIPFORMATHEADER*)pClipFormatArray)->dwLenData;
|
||||
dwOffData = ((NTCLIPFORMATHEADER*)pClipFormatArray)->dwOffData;
|
||||
szName = ((NTCLIPFORMATHEADER*)pClipFormatArray)->szName;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (dwFormatID)
|
||||
{
|
||||
case CF_OWNERDISPLAY:
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
case CF_BITMAP:
|
||||
case CF_DSPBITMAP:
|
||||
{
|
||||
bResult = ClipboardReadBitmap(hFile, dwOffData, dwLenData);
|
||||
break;
|
||||
}
|
||||
|
||||
case CF_METAFILEPICT:
|
||||
case CF_DSPMETAFILEPICT:
|
||||
{
|
||||
bResult = ClipboardReadMetafile(hFile, dwOffData, dwLenData);
|
||||
break;
|
||||
}
|
||||
|
||||
case CF_ENHMETAFILE:
|
||||
case CF_DSPENHMETAFILE:
|
||||
{
|
||||
bResult = ClipboardReadEnhMetafile(hFile, dwOffData, dwLenData);
|
||||
break;
|
||||
}
|
||||
|
||||
case CF_PALETTE:
|
||||
{
|
||||
bResult = ClipboardReadPalette(hFile, dwOffData, dwLenData);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
if ((dwFormatID < CF_PRIVATEFIRST) || (dwFormatID > CF_PRIVATELAST))
|
||||
{
|
||||
bResult = ClipboardReadMemory(hFile, dwFormatID, dwOffData, dwLenData, wFileIdentifier, szName);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!bResult)
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
}
|
||||
|
||||
done:
|
||||
if (hFile != INVALID_HANDLE_VALUE)
|
||||
CloseHandle(hFile);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void WriteClipboardFile(LPCWSTR lpFileName, WORD wFileIdentifier)
|
||||
{
|
||||
CLIPFILEHEADER ClipFileHeader;
|
||||
CLIPFORMATHEADER ClipFormatArray;
|
||||
NTCLIPFILEHEADER NtClipFileHeader;
|
||||
NTCLIPFORMATHEADER NtClipFormatArray;
|
||||
PVOID pClipFileHeader;
|
||||
PVOID pClipFormatArray;
|
||||
DWORD SizeOfFileHeader, SizeOfFormatHeader;
|
||||
|
||||
WORD wFormatCount;
|
||||
DWORD dwFormatID;
|
||||
DWORD dwLenData;
|
||||
DWORD dwOffData;
|
||||
// PVOID szName;
|
||||
|
||||
HANDLE hFile;
|
||||
DWORD dwBytesWritten;
|
||||
int i;
|
||||
|
||||
/* Create the file for write access */
|
||||
hFile = CreateFileW(lpFileName, GENERIC_WRITE, 0, NULL,
|
||||
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
goto done;
|
||||
}
|
||||
|
||||
wFormatCount = CountClipboardFormats();
|
||||
|
||||
/* Select the file format and setup the header according to the clipboard file format ID */
|
||||
switch (wFileIdentifier)
|
||||
{
|
||||
case CLIP_FMT_31:
|
||||
SizeOfFileHeader = sizeof(CLIPFILEHEADER);
|
||||
SizeOfFormatHeader = sizeof(CLIPFORMATHEADER);
|
||||
pClipFileHeader = &ClipFileHeader;
|
||||
pClipFormatArray = &ClipFormatArray;
|
||||
|
||||
ClipFileHeader.wFileIdentifier = CLIP_FMT_31; // wFileIdentifier
|
||||
ClipFileHeader.wFormatCount = wFormatCount;
|
||||
break;
|
||||
|
||||
case CLIP_FMT_NT:
|
||||
case CLIP_FMT_BK:
|
||||
SizeOfFileHeader = sizeof(NTCLIPFILEHEADER);
|
||||
SizeOfFormatHeader = sizeof(NTCLIPFORMATHEADER);
|
||||
pClipFileHeader = &NtClipFileHeader;
|
||||
pClipFormatArray = &NtClipFormatArray;
|
||||
|
||||
NtClipFileHeader.wFileIdentifier = CLIP_FMT_NT; // wFileIdentifier
|
||||
NtClipFileHeader.wFormatCount = wFormatCount;
|
||||
break;
|
||||
|
||||
default:
|
||||
MessageBoxRes(Globals.hMainWnd, Globals.hInstance, ERROR_INVALID_FILE_FORMAT, 0, MB_ICONSTOP | MB_OK);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Write the header */
|
||||
SetFilePointer(hFile, 0, NULL, FILE_BEGIN);
|
||||
if (!WriteFile(hFile, pClipFileHeader, SizeOfFileHeader, &dwBytesWritten, NULL) ||
|
||||
dwBytesWritten != SizeOfFileHeader)
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Compute where the data should start (after the file header and the format array) */
|
||||
dwOffData = SizeOfFileHeader + wFormatCount * SizeOfFormatHeader;
|
||||
|
||||
/* Loop through each format and save the data */
|
||||
i = 0;
|
||||
dwFormatID = EnumClipboardFormats(0);
|
||||
while (dwFormatID)
|
||||
{
|
||||
if (i >= wFormatCount)
|
||||
{
|
||||
/* Must never happen! */
|
||||
assert(FALSE);
|
||||
break;
|
||||
}
|
||||
|
||||
/* Write the clipboard data at the specified offset, and retrieve its length */
|
||||
if (!ClipboardWriteMemory(hFile, dwFormatID, dwOffData, &dwLenData))
|
||||
goto Cont;
|
||||
|
||||
/* Write the format data header */
|
||||
switch (wFileIdentifier)
|
||||
{
|
||||
case CLIP_FMT_31:
|
||||
ZeroMemory(pClipFormatArray, sizeof(CLIPFORMATHEADER));
|
||||
((CLIPFORMATHEADER*)pClipFormatArray)->dwFormatID = dwFormatID;
|
||||
((CLIPFORMATHEADER*)pClipFormatArray)->dwLenData = dwLenData;
|
||||
((CLIPFORMATHEADER*)pClipFormatArray)->dwOffData = dwOffData;
|
||||
RetrieveClipboardFormatName(Globals.hInstance,
|
||||
dwFormatID,
|
||||
FALSE,
|
||||
((CLIPFORMATHEADER*)pClipFormatArray)->szName,
|
||||
ARRAYSIZE(((CLIPFORMATHEADER*)pClipFormatArray)->szName));
|
||||
break;
|
||||
|
||||
case CLIP_FMT_NT:
|
||||
case CLIP_FMT_BK:
|
||||
ZeroMemory(pClipFormatArray, sizeof(NTCLIPFORMATHEADER));
|
||||
((NTCLIPFORMATHEADER*)pClipFormatArray)->dwFormatID = dwFormatID;
|
||||
((NTCLIPFORMATHEADER*)pClipFormatArray)->dwLenData = dwLenData;
|
||||
((NTCLIPFORMATHEADER*)pClipFormatArray)->dwOffData = dwOffData;
|
||||
RetrieveClipboardFormatName(Globals.hInstance,
|
||||
dwFormatID,
|
||||
TRUE,
|
||||
((NTCLIPFORMATHEADER*)pClipFormatArray)->szName,
|
||||
ARRAYSIZE(((NTCLIPFORMATHEADER*)pClipFormatArray)->szName));
|
||||
break;
|
||||
}
|
||||
|
||||
if (SetFilePointer(hFile, SizeOfFileHeader + i * SizeOfFormatHeader, NULL, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!WriteFile(hFile, pClipFormatArray, SizeOfFormatHeader, &dwBytesWritten, NULL))
|
||||
{
|
||||
ShowLastWin32Error(Globals.hMainWnd);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Adjust the offset for the next data stream */
|
||||
dwOffData += dwLenData;
|
||||
|
||||
Cont:
|
||||
i++;
|
||||
dwFormatID = EnumClipboardFormats(dwFormatID);
|
||||
}
|
||||
|
||||
done:
|
||||
if (hFile != INVALID_HANDLE_VALUE)
|
||||
CloseHandle(hFile);
|
||||
|
||||
return;
|
||||
}
|
@@ -1,52 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Clipboard Viewer
|
||||
* FILE: base/applications/clipbrd/fileutils.h
|
||||
* PURPOSE: Clipboard file format helper functions.
|
||||
* PROGRAMMERS: Ricardo Hanke
|
||||
* Hermes Belusca-Maito
|
||||
*/
|
||||
|
||||
#define CLIP_FMT_31 0xC350
|
||||
#define CLIP_FMT_NT 0xC351
|
||||
#define CLIP_FMT_BK 0xC352
|
||||
#define MAX_FMT_NAME_LEN 79
|
||||
|
||||
/*
|
||||
* Win3.1 Clipboard File Format (default)
|
||||
*/
|
||||
#pragma pack(push, 1)
|
||||
typedef struct _CLIPFILEHEADER
|
||||
{
|
||||
WORD wFileIdentifier;
|
||||
WORD wFormatCount;
|
||||
} CLIPFILEHEADER;
|
||||
|
||||
typedef struct _CLIPFORMATHEADER
|
||||
{
|
||||
WORD dwFormatID;
|
||||
DWORD dwLenData;
|
||||
DWORD dwOffData;
|
||||
CHAR szName[MAX_FMT_NAME_LEN];
|
||||
} CLIPFORMATHEADER;
|
||||
#pragma pack(pop)
|
||||
|
||||
/*
|
||||
* NT Clipboard File Format
|
||||
*/
|
||||
typedef struct _NTCLIPFILEHEADER
|
||||
{
|
||||
WORD wFileIdentifier;
|
||||
WORD wFormatCount;
|
||||
} NTCLIPFILEHEADER;
|
||||
|
||||
typedef struct _NTCLIPFORMATHEADER
|
||||
{
|
||||
DWORD dwFormatID;
|
||||
DWORD dwLenData;
|
||||
DWORD dwOffData;
|
||||
WCHAR szName[MAX_FMT_NAME_LEN];
|
||||
} NTCLIPFORMATHEADER;
|
||||
|
||||
void ReadClipboardFile(LPCWSTR lpFileName);
|
||||
void WriteClipboardFile(LPCWSTR lpFileName, WORD wFileIdentifier);
|
@@ -1,65 +0,0 @@
|
||||
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
|
||||
|
||||
ID_ACCEL ACCELERATORS
|
||||
BEGIN
|
||||
VK_DELETE, CMD_DELETE, VIRTKEY
|
||||
END
|
||||
|
||||
MAIN_MENU MENU
|
||||
BEGIN
|
||||
POPUP "&Datei"
|
||||
BEGIN
|
||||
MENUITEM "Ö&ffnen...", CMD_OPEN
|
||||
MENUITEM "Speichern &unter...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Beenden", CMD_EXIT
|
||||
END
|
||||
POPUP "&Bearbeiten"
|
||||
BEGIN
|
||||
MENUITEM "&Löschen\tEntf", CMD_DELETE
|
||||
END
|
||||
POPUP "&Anzeige"
|
||||
BEGIN
|
||||
MENUITEM "&Automatisch", CMD_AUTOMATIC
|
||||
END
|
||||
POPUP "&Hilfe"
|
||||
BEGIN
|
||||
MENUITEM "&Hilfethemen", CMD_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Inf&o", CMD_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_CLIPBOARD "Clipboard Viewer"
|
||||
STRING_CLIPFILE "Clipboard Element"
|
||||
STRING_DELETE_MSG "Soll der Inhalt der Zwischenablage gelöscht werden?"
|
||||
STRING_DELETE_TITLE "Zwischenablage löschen"
|
||||
STRING_FORMAT_NT "Zwischenablagedateien für ReactOS (*.clp)"
|
||||
STRING_FORMAT_GEN "Zwischenablagedateien (*.clp)"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_CF_UNKNOWN "Unbekanntes Format"
|
||||
STRING_CF_TEXT "Text"
|
||||
STRING_CF_BITMAP "Bitmap"
|
||||
STRING_CF_OEMTEXT "OEM-Text"
|
||||
STRING_CF_UNICODETEXT "Unicodetext"
|
||||
STRING_CF_DIB "DIB-Bitmap"
|
||||
STRING_CF_LOCALE "Gebietsschema"
|
||||
STRING_CF_ENHMETAFILE "Erweiterte Metadatei"
|
||||
STRING_CF_METAFILEPICT "Metadatei"
|
||||
STRING_CF_PALETTE "Farbpalette"
|
||||
STRING_CF_DIBV5 "DIB-Bitmap (Version 5)"
|
||||
STRING_CF_SYLK "Symbolic Link Format"
|
||||
STRING_CF_DIF "Data Interchange Format"
|
||||
STRING_CF_HDROP "Drop-Daten"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ERROR_UNSUPPORTED_FORMAT "Die Daten in der Zwischenablage liegen in einem Format vor, welches nicht angezeigt werden kann."
|
||||
ERROR_INVALID_FILE_FORMAT "Die ausgewählte Datei ist keine gültige Zwischenablagedatei."
|
||||
END
|
@@ -1,65 +0,0 @@
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
|
||||
ID_ACCEL ACCELERATORS
|
||||
BEGIN
|
||||
VK_DELETE, CMD_DELETE, VIRTKEY
|
||||
END
|
||||
|
||||
MAIN_MENU MENU
|
||||
BEGIN
|
||||
POPUP "&File"
|
||||
BEGIN
|
||||
MENUITEM "&Open...", CMD_OPEN
|
||||
MENUITEM "Save &As...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "E&xit", CMD_EXIT
|
||||
END
|
||||
POPUP "&Edit"
|
||||
BEGIN
|
||||
MENUITEM "&Delete\tDel", CMD_DELETE
|
||||
END
|
||||
POPUP "&Display"
|
||||
BEGIN
|
||||
MENUITEM "&Automatic", CMD_AUTOMATIC
|
||||
END
|
||||
POPUP "&Help"
|
||||
BEGIN
|
||||
MENUITEM "&Help Topics", CMD_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&About", CMD_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_CLIPBOARD "Clipboard Viewer"
|
||||
STRING_CLIPFILE "Clipboard Element"
|
||||
STRING_DELETE_MSG "Clear contents of the Clipboard?"
|
||||
STRING_DELETE_TITLE "Clear Clipboard"
|
||||
STRING_FORMAT_NT "Clipboard files for ReactOS (*.clp)"
|
||||
STRING_FORMAT_GEN "Clipboard files (*.clp)"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_CF_UNKNOWN "Unknown Format"
|
||||
STRING_CF_TEXT "Text"
|
||||
STRING_CF_BITMAP "Bitmap"
|
||||
STRING_CF_OEMTEXT "OEM Text"
|
||||
STRING_CF_UNICODETEXT "Unicode Text"
|
||||
STRING_CF_DIB "DIB Bitmap"
|
||||
STRING_CF_LOCALE "Locale Data"
|
||||
STRING_CF_ENHMETAFILE "Enhanced Metafile"
|
||||
STRING_CF_METAFILEPICT "Metafile"
|
||||
STRING_CF_PALETTE "Color Palette"
|
||||
STRING_CF_DIBV5 "DIB Bitmap (Version 5)"
|
||||
STRING_CF_SYLK "Symbolic Link Format"
|
||||
STRING_CF_DIF "Data Interchange Format"
|
||||
STRING_CF_HDROP "Drop Data"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ERROR_UNSUPPORTED_FORMAT "The Clipboard contains data in a format, that cannot be displayed."
|
||||
ERROR_INVALID_FILE_FORMAT "The selected file is not a valid clipboard file."
|
||||
END
|
@@ -1,67 +0,0 @@
|
||||
/* Spanish translation by Ismael Ferreras Morezuelas (Swyter) */
|
||||
|
||||
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
||||
|
||||
ID_ACCEL ACCELERATORS
|
||||
BEGIN
|
||||
VK_DELETE, CMD_DELETE, VIRTKEY
|
||||
END
|
||||
|
||||
MAIN_MENU MENU
|
||||
BEGIN
|
||||
POPUP "&Archivo"
|
||||
BEGIN
|
||||
MENUITEM "&Abrir...", CMD_OPEN
|
||||
MENUITEM "Guardar &como...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "S&alir", CMD_EXIT
|
||||
END
|
||||
POPUP "&Edición"
|
||||
BEGIN
|
||||
MENUITEM "&Borrar\tDel", CMD_DELETE
|
||||
END
|
||||
POPUP "&Visualización"
|
||||
BEGIN
|
||||
MENUITEM "&Automática", CMD_AUTOMATIC
|
||||
END
|
||||
POPUP "A&yuda"
|
||||
BEGIN
|
||||
MENUITEM "&Temas de ayuda", CMD_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Acerca de", CMD_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_CLIPBOARD "Clipboard Viewer"
|
||||
STRING_CLIPFILE "Clipboard Element"
|
||||
STRING_DELETE_MSG "¿Borrar contenidos del Portapapeles?"
|
||||
STRING_DELETE_TITLE "Vaciar Portapapeles"
|
||||
STRING_FORMAT_NT "Archivos de Portapapeles de ReactOS (*.clp)"
|
||||
STRING_FORMAT_GEN "Archivos de Portapapeles (*.clp)"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_CF_UNKNOWN "Formato desconocido"
|
||||
STRING_CF_TEXT "Texto"
|
||||
STRING_CF_BITMAP "Mapa de bits"
|
||||
STRING_CF_OEMTEXT "Texto OEM"
|
||||
STRING_CF_UNICODETEXT "Texto Unicode"
|
||||
STRING_CF_DIB "Mapa de bits DIB"
|
||||
STRING_CF_LOCALE "Dato de idiomas"
|
||||
STRING_CF_ENHMETAFILE "Metarchivo mejorado"
|
||||
STRING_CF_METAFILEPICT "Metarchivo"
|
||||
STRING_CF_PALETTE "Paleta de color"
|
||||
STRING_CF_DIBV5 "Mapa de bits DIB (versión 5)"
|
||||
STRING_CF_SYLK "Formato de enlace simbólico"
|
||||
STRING_CF_DIF "Formato de intercambio de datos"
|
||||
STRING_CF_HDROP "Datos de arrastrar y soltar"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ERROR_UNSUPPORTED_FORMAT "El Portapapeles contiene datos en un formato que no es posible mostrar."
|
||||
ERROR_INVALID_FILE_FORMAT "El archivo seleccionado no es un archivo del Portapapeles válido."
|
||||
END
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user