Compare commits

..

14 Commits

Author SHA1 Message Date
Hermès Bélusca-Maïto
1bca06c493 [0.3.17]: Backport late changes of branches/0.3.17/ from r65177.
svn path=/tags/ReactOS-0.3.17/; revision=66123
2015-01-31 13:48:02 +00:00
Ziliang Guo
6aa4e564dc [KERNEL32]
Merge English fallback for unlocalized text.
CORE-8720

svn path=/branches/0.3.17/; revision=65155
2014-10-31 17:47:32 +00:00
Ziliang Guo
49d4e58f50 [BOOTDATA]
Merge theme switching fix.
CORE-8718

svn path=/branches/0.3.17/; revision=65126
2014-10-30 19:00:33 +00:00
Ziliang Guo
af6d8b9f7e [WIN32SS]
Merge in workaround for freetype rendering issue.

CORE-8525, CORE-6023, CORE-7735 and CORE-8635

svn path=/branches/0.3.17/; revision=65101
2014-10-29 16:03:21 +00:00
Ziliang Guo
aaf904d84c [WIN32SS]
Fix icon selection regression caused by cascading fix. In this case, this should probably go into trunk.

CORE-8574

svn path=/branches/0.3.17/; revision=65091
2014-10-28 22:01:57 +00:00
Ziliang Guo
72e480c82f [0.3.17]
Set version number for release.

svn path=/branches/0.3.17/; revision=65049
2014-10-27 17:23:05 +00:00
Ziliang Guo
e2a4ce772f [NTFS]
Cherrypick additional NTFS related fixes, including ability to browse NTFS volume.

svn path=/branches/0.3.17/; revision=65048
2014-10-27 17:18:17 +00:00
Ziliang Guo
0a58d8b96a [WIN32K]
Cherrypick margin fix for menus.

CORE-8667

svn path=/branches/0.3.17/; revision=65047
2014-10-27 17:15:09 +00:00
Ziliang Guo
7c6256087f [UNIATA]
Update version of UNIATA to 45b1 for 0.3.17.

svn path=/branches/0.3.17/; revision=65046
2014-10-27 17:10:31 +00:00
Ziliang Guo
e7eb27c6cd [WIN32K]
Incorporate fix for keyboard indicator lights.

CORE-8547

svn path=/branches/0.3.17/; revision=64973
2014-10-24 21:27:13 +00:00
Ziliang Guo
4571891449 [WIN32SS]
Cherrypick fix for OffByOne browser where parent desktop handle is null for 0.3.17.

CORE-8665

svn path=/branches/0.3.17/; revision=64944
2014-10-23 20:52:25 +00:00
Ziliang Guo
f112613d39 [CRT]
Cherrypick fix for CRT that broke LMarbles/LBreakout. Games are important.

CORE-8670

svn path=/branches/0.3.17/; revision=64928
2014-10-23 15:55:03 +00:00
Ziliang Guo
122fe51263 [NTFS]
Cherrypick NTFS related changes from trunk for 0.3.17.

svn path=/branches/0.3.17/; revision=64927
2014-10-23 15:45:12 +00:00
Ziliang Guo
d8434fa72f [TCPIP]
Merge in Jerome's fix for Firefox crash.

CORE-8648

svn path=/branches/0.3.17/; revision=64848
2014-10-20 15:59:52 +00:00
17749 changed files with 917723 additions and 2326137 deletions

31
reactos/.hgeol Normal file
View 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

View File

@@ -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()

View File

@@ -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>

File diff suppressed because it is too large Load Diff

View File

@@ -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/

View File

@@ -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}")

View File

@@ -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.

View 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)

View File

@@ -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)

View File

@@ -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);
}

View File

@@ -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)

View File

@@ -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;

View File

@@ -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

View File

@@ -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\

View File

@@ -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 se 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)"

View File

@@ -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\

View File

@@ -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\

View File

@@ -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\

View File

@@ -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\

View File

@@ -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)"

View File

@@ -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

View File

@@ -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"

View File

@@ -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()

View 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;
}

View File

@@ -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*/

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 "минута"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

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

View File

@@ -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

View File

@@ -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 */

View File

@@ -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);
}

View File

@@ -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);
}
}

View File

@@ -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'))

View File

@@ -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.

View File

@@ -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;

View File

@@ -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)

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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
{

View File

@@ -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

View File

@@ -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);
}
}
}

View File

@@ -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)

View File

@@ -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;
}

View File

@@ -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
);
};

View File

@@ -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);
}

View File

@@ -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
);
};

View File

@@ -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);
}

View File

@@ -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(
);
};

View File

@@ -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);
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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;
}
}
}

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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

View File

@@ -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

View File

@@ -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