Compare commits

..

14 Commits

Author SHA1 Message Date
Magnus Olsen
0fad9ab390 merge from trunk rev 24010 and 24005,
Correct Implement of NtGdiGetLastInput 

svn path=/branches/clipboard/; revision=24075
2006-09-11 19:45:09 +00:00
Pablo Borobia
f638272204 * Create LastKey if it don't exist
* Remove hardcoded key reference

svn path=/branches/clipboard/; revision=23872
2006-09-01 19:26:24 +00:00
Pablo Borobia
fc10573c77 * Implement ALT+PrintScreen (copy window to clipboard)
svn path=/branches/clipboard/; revision=23860
2006-09-01 07:25:34 +00:00
Pablo Borobia
3a16b97eef * Removed check for GDI handle (crash), should work, tested on Windows.
svn path=/branches/clipboard/; revision=23859
2006-09-01 06:57:03 +00:00
Pablo Borobia
d143c26ad6 * Add implementation of GetLastInputInfo
svn path=/branches/clipboard/; revision=23857
2006-09-01 05:47:33 +00:00
Pablo Borobia
afe2e812d8 * Add check for GDI object in SetClipboardData
svn path=/branches/clipboard/; revision=23856
2006-09-01 05:38:42 +00:00
Pablo Borobia
3fd82ed331 * Implement shell32 cut/copy & paste/paste link
svn path=/branches/clipboard/; revision=23855
2006-09-01 05:36:36 +00:00
Pablo Borobia
cae722e64c * Added clipboard implementation in user32
* Added clipboard entries in nci tool
* Added lost clipboard definitions
* Shut up debug

svn path=/branches/clipboard/; revision=23851
2006-09-01 02:46:29 +00:00
Pablo Borobia
561ac9448f * add more clipboard formats definitions
* move definition to right place

svn path=/branches/clipboard/; revision=23847
2006-08-31 17:37:49 +00:00
Pablo Borobia
b92561cff6 Another test commit
svn path=/branches/clipboard/; revision=23838
2006-08-31 11:57:54 +00:00
Pablo Borobia
f16c6dabc3 * update dc.c
svn path=/branches/clipboard/; revision=23820
2006-08-30 20:36:12 +00:00
Pablo Borobia
cdb9586e91 * more win32k clipboard stuff
* GetLayout win32k stubs

svn path=/branches/clipboard/; revision=23819
2006-08-30 20:32:36 +00:00
Pablo Borobia
c0ada00b6d clipboard implementatin win32k/ntuser part
svn path=/branches/clipboard/; revision=23817
2006-08-30 20:25:00 +00:00
Thomas Bluemel
2ca042b11a Create a branch for Pablo Borobia's clipboard implementation
svn path=/branches/clipboard/; revision=23783
2006-08-29 17:41:34 +00:00
30592 changed files with 2991747 additions and 7997360 deletions

341
COPYING Normal file
View File

@@ -0,0 +1,341 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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.
This 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.
You 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 St, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

67
CREDITS Normal file
View File

@@ -0,0 +1,67 @@
ReactOS is available thanks to the work of:
Aleksey Bragin <aleksey@studiocerebral.com>
Alex Ionescu <ionucu@videotron.ca>
Andrew Greenwood <lists@silverblade.co.uk>
Andrew Munger <waxdragon@gmail.com>
Arindam Das
Art Yerkes <ayerkes@speakeasy.net>
Boudewijn Dekker <ariadne@xs4all.nl>
Brandon Turner (turnerb7@msu.edu)
Brian Palmer <brianp@sginet.com>
Casper S. Hornstrup <chorns@users.sourceforge.net>
Christoph von Wittich (Christoph@ApiViewer.de)
David Welch <welch@cwcom.net>
Emanuele Aliberti <ea@iol.it>
Eric Kohl <ekohl@rz-online.de>
Eugene Ingerman <geneing@myrealbox.com>
Filip Navara <xnavara@volny.cz>
Frederik Leemans
Ge van Geldorp <ge@gse.nl>
Ged Murphy <gedmurphy@gmail.com>
Guido de Jong
Gunnar Andre' Dalsnes <hardon@online.no>
Hans Kremer
Hartmut Birr <hartmut.birr@gmx.de>
Hernan Ochoa
Herve Poussineau <hpoussin@reactos.com>
Iwan Fatahi <i_fatahi@hotmail.com>
James B. Tabor <jimtabor@adsl-64-217-116-74.dsl.hstntx.swbell.net>
Jason Eager
Jason Filby <jasonfilby@yahoo.com>
Jason Weiler
Jean Michault
Jim Noeth
Johannes Anderwald <johannes.anderwald@student.tugraz.at>
Jonathan Wilson <jonwil@tpgi.com.au>
Jurgen van Gael <jurgen.vangael@student.kuleuven.ac.be>
KJK::Hyperion <noog@libero.it>
Klemens R. Friedl <klemens_friedl@gmx.net>
Maarten Bosma <maarten.paul@bosma.de>
Magnus Olsen (magnus@greatlord.com)
Mark Tempel <mtempel@visi.com>
Mark Weaver <mark@npsl.co.uk>
Martin Fuchs <martin-fuchs@gmx.net>
Marty Dill <mdill@uvic.ca>
Matt Pyne
Mike Nordell ("tamlin")
Nathan Woods <npwoods@mess.org>
Paolo Pantaleo <paolopan@freemail.it>
Phillip Susi <phreak@iag.net>
Rex Jolliff <rex@lvcablemodem.com>
Richard Campbell <betam4x@gmail.com>
Robert Bergkvist <fragdance@hotmail.com>
Robert Dickenson <robd@reactos.org>
Royce Mitchell III <royce3@ev1.net>
Saveliy Tretiakov <saveliyt@mail.ru>
Steven Edwards <steven_ed4153@yahoo.com>
Thomas Weidenmueller <w3seek@users.sourceforge.net>
Victor Kirhenshtein <sauros@iname.com>
Vizzini <vizzini@plasmic.com>
Graphic Design from
Mindflyer <mf@mufunyo.net>
Tango Desktop Project (http://tango-project.org)
Everaldo (http://everaldo.com)

211
Doxyfile Normal file
View File

@@ -0,0 +1,211 @@
# Doxyfile 1.3.5
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = ReactOS
PROJECT_NUMBER =
OUTPUT_DIRECTORY = doxy-doc
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = YES
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = .
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = NO
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = YES
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = NO
WARN_IF_UNDOCUMENTED = NO
WARN_IF_DOC_ERROR = YES
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = hal \
subsys \
services \
regtests \
iface
FILE_PATTERNS = *.c \
*.h
RECURSIVE = YES
EXCLUDE = subsys/win32k \
subsys/system/explorer
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = YES
IMAGE_PATH =
INPUT_FILTER =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = YES
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
VERBATIM_HEADERS = NO
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = YES
RTF_HYPERLINKS = YES
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = NO
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH = include
INCLUDE_FILE_PATTERNS = *.h
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 0
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = YES

80
INSTALL Normal file
View File

@@ -0,0 +1,80 @@
1. Build environment
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
2.1 Building the binaries
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.
2.2 Building a bootable CD image
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
installed (which may or may not be the bootable partition) must also be
formatted as FAT16 or FAT32. ReactOS Setup can format the partitions if
needed.
ReactOS can be installed from the source distribution or from the bootable CD
distribution. The two ways to install ReactOS are explained below.
3.1 Installation from sources
If you don't have an existing ReactOS installation you want to upgrade, then
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 '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
'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:
set ROS_INSTALL=c:\reactos
If you are on Linux this could be done by:
export ROS_INSTALL=/mnt/windows/reactos
Now run 'make install' or 'mingw32-make install' to install the files to the
new location.
3.2 Installation from bootable CD distribution
To install ReactOS from the bootable CD distribution, extract the archive
contents. Then burn the CD image, boot from it, and follow instructions.
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 bugzilla and general chat takes place in the forums,
or #reactos on freenode
http://www.reactos.org/
ReactOS Development Team

504
LGPL.txt Normal file
View File

@@ -0,0 +1,504 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

523
Makefile Normal file
View File

@@ -0,0 +1,523 @@
# Well-known targets:
#
# all (default target)
# This target builds all of ReactOS.
#
# module
# These targets builds a single module. Replace module with the name of
# the module you want to build.
#
# bootcd
# This target builds an ISO (ReactOS.iso) from which ReactOS can be booted
# and installed.
#
# livecd
# This target builds an ISO (ReactOS-Live.iso) from which ReactOS can be
# booted, but not installed.
#
# install
# This target installs all of ReactOS to a location specified by the
# ROS_INSTALL environment variable.
#
# module_install
# These targets installs a single module to a location specified by the
# ROS_INSTALL environment variable. Replace module with the name of the
# module you want to install.
#
# clean
# This target cleans (deletes) all files that are generated when building
# ReactOS.
#
# module_clean
# These targets cleans (deletes) files that are generated when building a
# single module. Replace module with the name of the module you want to
# clean.
#
# depends
# This target does a complete dependency check of the ReactOS codebase.
# This can require several minutes to complete. If you only need to check
# dependencies for a single or few modules then you can use the
# module_depends targets instead. This target can also repair a damaged or
# missing makefile.auto if needed.
#
# module_depends
# These targets do a dependency check of individual modules. Replace module
# with the name of the module for which you want to check dependencies.
# This is faster than the depends target which does a complete dependency
# check of the ReactOS codebase.
#
#
# Accepted environment variables:
#
# ROS_PREFIX
# This variable specifies the prefix of the MinGW installation. On Windows
# a prefix is usually not needed, but on linux it is usually "mingw32". If
# not present and no executable named "gcc" can be found, then the prefix is
# assumed to be "mingw32". If your gcc is named i386-mingw32-gcc then set
# ROS_PREFIX to i386-mingw32. Don't include the dash (-) before gcc.
#
# ROS_INTERMEDIATE
# This variable controls where to put intermediate files. Intermediate
# files are generated files that are needed to generate the final
# output files. Examples of intermediate files include *.o, *.a, and
# *.coff. N.B. Don't put a path separator at the end. The variable
# defaults to .\obj-i386.
#
# ROS_OUTPUT
# This variable controls where to put output files. Output files are
# generated files that makes up the result of the build process.
# Examples of output files include *.exe, *.dll, and *.sys. N.B. Don't
# put a path separator at the end. The variable defaults to .\output-i386.
#
# ROS_TEMPORARY
# This variable controls where to put temporary files. Temporary files
# are (usually small) generated files that are needed to generate the
# intermediate or final output files. Examples of temporary files include
# *.rci (preprocessed .rc files for wrc), *.tmp, and *.exp. N.B. Don't put
# a path separator at the end. The variable defaults to the current
# directory.
#
# ROS_INSTALL
# This variable controls where to install output files to when using
# 'make install'. N.B. Don't put a path separator at the end. The variable
# defaults to .\reactos.
#
# ROS_BUILDMAP
# This variable controls if map files are to be generated for executable
# output files. Map files have the extension .map. The value can be either
# full (to build map files with assembly code), yes (to build map files
# without source code) or no (to not build any map files). The variable
# defaults to no.
#
# ROS_BUILDNOSTRIP
# This variable controls if non-symbol-stripped versions are to be built
# of executable output files. Non-symbol-stripped executable output files
# have .nostrip added to the filename just before the extension. The value
# can be either yes (to build non-symbol-stripped versions of executable
# output files) or no (to not build non-symbol-stripped versions of
# executable output files). The variable defaults to no.
#
# ROS_LEAN_AND_MEAN
# This variable controls if all binaries should be stripped out of useless
# data added by GCC/LD as well as of RSYM symbol data. Output binary size
# will go from 80 to 40MB, memory usage from 58 to 38MB and the install CD
# from 18 to 13MB. The variable defaults to no.
#
# ROS_RBUILDFLAGS
# Pass parameters to rbuild.
# -v Be verbose.
# -c Clean as you go. Delete generated files as soon as they are not needed anymore.
# -dd Disable automatic dependencies.
# -dm{module} Check only automatic dependencies for this module.
# -mi Let make handle creation of install directories. Rbuild will not generate the directories.
# -ps Generate proxy makefiles in source tree instead of the output tree.
# -ud Disable compilation units.
# -r Input XML
#
# ROS_AUTOMAKE
# Alternate name of makefile.auto
#
# check for versions of make that don't have features we need...
# the function "eval" is only available in 3.80+, which happens to be the minimum
# version that has the features we use...
# THIS CHECK IS BORROWED FROM THE "GMSL" PROJECT, AND IS COVERED BY THE GPL LICENSE
# YOU CAN FIND OUT MORE ABOUT GMSL - A VERY COOL PROJECT - AT:
# http://gmsl.sourceforge.net/
__gmsl_have_eval :=
__gmsl_ignore := $(eval __gmsl_have_eval := T)
ifndef __gmsl_have_eval
$(error ReactOS's makefiles use GNU Make 3.80+ features, you have $(MAKE_VERSION), you MUST UPGRADE in order to build ReactOS - Sorry)
endif
# END of code borrowed from GMSL ( http://gmsl.sourceforge.net/ )
.PHONY: all
.PHONY: clean
.PHONY: world
.PHONY: universe
ifeq ($(ROS_AUTOMAKE),)
ROS_AUTOMAKE=makefile.auto
endif
all: $(ROS_AUTOMAKE)
.SUFFIXES:
ifeq ($(HOST),)
ifeq ($(word 1,$(shell gcc -dumpmachine)),mingw32)
ifeq ($(findstring msys,$(shell sh --version 2>nul)),msys)
export OSTYPE = msys
HOST=mingw32-linux
else
HOST=mingw32-windows
endif
else
HOST=mingw32-linux
endif
endif
# Default to half-verbose mode
ifeq ($(VERBOSE),no)
Q = @
HALFVERBOSEECHO = no
BUILDNO_QUIET = -q
else
ifeq ($(VERBOSE),full)
Q =
HALFVERBOSEECHO = no
BUILDNO_QUIET =
else
Q = @
HALFVERBOSEECHO = yes
BUILDNO_QUIET = -q
endif
endif
ifeq ($(HOST),mingw32-linux)
QUOTE = "
else
QUOTE =
endif
ifeq ($(HALFVERBOSEECHO),yes)
ECHO_CP =@echo $(QUOTE)[COPY] $@$(QUOTE)
ECHO_MKDIR =@echo $(QUOTE)[MKDIR] $@$(QUOTE)
ECHO_BUILDNO =@echo $(QUOTE)[BUILDNO] $@$(QUOTE)
ECHO_INVOKE =@echo $(QUOTE)[INVOKE] $<$(QUOTE)
ECHO_PCH =@echo $(QUOTE)[PCH] $@$(QUOTE)
ECHO_CC =@echo $(QUOTE)[CC] $<$(QUOTE)
ECHO_GAS =@echo $(QUOTE)[GAS] $<$(QUOTE)
ECHO_NASM =@echo $(QUOTE)[NASM] $<$(QUOTE)
ECHO_AR =@echo $(QUOTE)[AR] $@$(QUOTE)
ECHO_WINEBLD =@echo $(QUOTE)[WINEBLD] $@$(QUOTE)
ECHO_WRC =@echo $(QUOTE)[WRC] $@$(QUOTE)
ECHO_WIDL =@echo $(QUOTE)[WIDL] $@$(QUOTE)
ECHO_BIN2RES =@echo $(QUOTE)[BIN2RES] $<$(QUOTE)
ECHO_DLLTOOL =@echo $(QUOTE)[DLLTOOL] $@$(QUOTE)
ECHO_LD =@echo $(QUOTE)[LD] $@$(QUOTE)
ECHO_NM =@echo $(QUOTE)[NM] $@$(QUOTE)
ECHO_OBJDUMP =@echo $(QUOTE)[OBJDUMP] $@$(QUOTE)
ECHO_RBUILD =@echo $(QUOTE)[RBUILD] $@$(QUOTE)
ECHO_RSYM =@echo $(QUOTE)[RSYM] $@$(QUOTE)
ECHO_WMC =@echo $(QUOTE)[WMC] $@$(QUOTE)
ECHO_NCI =@echo $(QUOTE)[NCI] $@$(QUOTE)
ECHO_CABMAN =@echo $(QUOTE)[CABMAN] $<$(QUOTE)
ECHO_CDMAKE =@echo $(QUOTE)[CDMAKE] $@$(QUOTE)
ECHO_MKHIVE =@echo $(QUOTE)[MKHIVE] $@$(QUOTE)
ECHO_REGTESTS=@echo $(QUOTE)[REGTESTS] $@$(QUOTE)
ECHO_TEST =@echo $(QUOTE)[TEST] $@$(QUOTE)
ECHO_GENDIB =@echo $(QUOTE)[GENDIB] $@$(QUOTE)
ECHO_STRIP =@echo $(QUOTE)[STRIP] $@$(QUOTE)
else
ECHO_CP =
ECHO_MKDIR =
ECHO_BUILDNO =
ECHO_INVOKE =
ECHO_PCH =
ECHO_CC =
ECHO_GAS =
ECHO_NASM =
ECHO_AR =
ECHO_WINEBLD =
ECHO_WRC =
ECHO_WIDL =
ECHO_BIN2RES =
ECHO_DLLTOOL =
ECHO_LD =
ECHO_NM =
ECHO_OBJDUMP =
ECHO_RBUILD =
ECHO_RSYM =
ECHO_WMC =
ECHO_NCI =
ECHO_CABMAN =
ECHO_CDMAKE =
ECHO_MKHIVE =
ECHO_REGTESTS=
ECHO_TEST =
ECHO_GENDIB =
ECHO_STRIP =
endif
host_gcc = $(Q)gcc
host_gpp = $(Q)g++
host_ld = $(Q)ld
host_ar = $(Q)ar
host_objcopy = $(Q)objcopy
ifeq ($(HOST),mingw32-linux)
export EXEPREFIX = ./
ifeq ($(OSTYPE),msys)
export EXEPOSTFIX = .exe
else
export EXEPOSTFIX =
endif
export SEP = /
mkdir = -$(Q)mkdir -p
gcc = $(Q)$(PREFIX)-gcc
gpp = $(Q)$(PREFIX)-g++
ld = $(Q)$(PREFIX)-ld
nm = $(Q)$(PREFIX)-nm
objdump = $(Q)$(PREFIX)-objdump
ar = $(Q)$(PREFIX)-ar
objcopy = $(Q)$(PREFIX)-objcopy
dlltool = $(Q)$(PREFIX)-dlltool
strip = $(Q)$(PREFIX)-strip
windres = $(Q)$(PREFIX)-windres
rm = $(Q)rm -f
cp = $(Q)cp
NUL = /dev/null
else # mingw32-windows
ifeq ($(OSTYPE),msys)
HOST=mingw32-linux
export EXEPREFIX = ./
export EXEPOSTFIX = .exe
export SEP = /
mkdir = -$(Q)mkdir -p
gcc = $(Q)gcc
gpp = $(Q)g++
ld = $(Q)ld
nm = $(Q)nm
objdump = $(Q)objdump
ar = $(Q)ar
objcopy = $(Q)objcopy
dlltool = $(Q)dlltool
strip = $(Q)strip
windres = $(Q)windres
rm = $(Q)rm -f
cp = $(Q)cp
NUL = /dev/null
else
export EXEPREFIX =
export EXEPOSTFIX = .exe
ROS_EMPTY =
export SEP = \$(ROS_EMPTY)
mkdir = -$(Q)mkdir
gcc = $(Q)gcc
gpp = $(Q)g++
ld = $(Q)ld
nm = $(Q)nm
objdump = $(Q)objdump
ar = $(Q)ar
objcopy = $(Q)objcopy
dlltool = $(Q)dlltool
strip = $(Q)strip
windres = $(Q)windres
rm = $(Q)del /f /q
cp = $(Q)copy /y
NUL = NUL
endif
endif
ifneq ($(ROS_INTERMEDIATE),)
INTERMEDIATE := $(ROS_INTERMEDIATE)
else
INTERMEDIATE := obj-i386
endif
INTERMEDIATE_ := $(INTERMEDIATE)$(SEP)
ifneq ($(ROS_OUTPUT),)
OUTPUT := $(ROS_OUTPUT)
else
OUTPUT := output-i386
endif
OUTPUT_ := $(OUTPUT)$(SEP)
ifneq ($(ROS_TEMPORARY),)
TEMPORARY := $(ROS_TEMPORARY)
else
TEMPORARY :=
endif
TEMPORARY_ := $(TEMPORARY)$(SEP)
ifneq ($(ROS_INSTALL),)
INSTALL := $(ROS_INSTALL)
else
INSTALL := reactos
endif
INSTALL_ := $(INSTALL)$(SEP)
$(INTERMEDIATE):
${mkdir} $@
ifneq ($(INTERMEDIATE),$(OUTPUT))
$(OUTPUT):
${mkdir} $@
endif
NTOSKRNL_MC = ntoskrnl$(SEP)ntoskrnl.mc
KERNEL32_MC = dll$(SEP)win32$(SEP)kernel32$(SEP)kernel32.mc
BUILDNO_H = include$(SEP)reactos$(SEP)buildno.h
BUGCODES_H = include$(SEP)reactos$(SEP)bugcodes.h
BUGCODES_RC = ntoskrnl$(SEP)bugcodes.rc
ERRCODES_H = include$(SEP)reactos$(SEP)errcodes.h
ERRCODES_RC = dll$(SEP)win32$(SEP)kernel32$(SEP)errcodes.rc
include lib/lib.mak
include tools/tools.mak
include boot/freeldr/bootsect/bootsect.mak
-include $(ROS_AUTOMAKE)
PREAUTO := \
$(BIN2C_TARGET) \
$(BIN2RES_TARGET) \
$(BUILDNO_H) \
$(BUGCODES_H) \
$(BUGCODES_RC) \
$(ERRCODES_H) \
$(ERRCODES_RC) \
$(NCI_SERVICE_FILES) \
$(GENDIB_DIB_FILES)
$(ROS_AUTOMAKE): $(RBUILD_TARGET) $(PREAUTO) $(XMLBUILDFILES)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) mingw
world: all bootcd livecd
universe:
$(MAKE) KDBG=1 DBG=1 \
ROS_AUTOMAKE=makefile-$(ARCH)-kd.auto \
ROS_INSTALL=reactos-$(ARCH)-kd \
ROS_INTERMEDIATE=obj-$(ARCH)-kd \
ROS_OUTPUT=output-$(ARCH)-kd \
world
$(MAKE) KDBG=0 DBG=1 \
ROS_AUTOMAKE=makefile-$(ARCH)-d.auto \
ROS_INSTALL=reactos-$(ARCH)-d \
ROS_INTERMEDIATE=obj-$(ARCH)-d \
ROS_OUTPUT=output-$(ARCH)-d \
world
$(MAKE) KDBG=0 DBG=0 \
ROS_AUTOMAKE=makefile-$(ARCH)-r.auto \
ROS_INSTALL=reactos-$(ARCH)-r \
ROS_INTERMEDIATE=obj-$(ARCH)-r \
ROS_OUTPUT=output-$(ARCH)-r \
world
.PHONY: msvc
msvc: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) msvc
$(BUGCODES_H) $(BUGCODES_RC): $(WMC_TARGET) $(NTOSKRNL_MC)
$(ECHO_WMC)
$(Q)$(WMC_TARGET) -i -H $(BUGCODES_H) -o $(BUGCODES_RC) $(NTOSKRNL_MC)
$(ERRCODES_H) $(ERRCODES_RC): $(WMC_TARGET) $(KERNEL32_MC)
$(ECHO_WMC)
$(Q)$(WMC_TARGET) -i -U -H $(ERRCODES_H) -o $(ERRCODES_RC) $(KERNEL32_MC)
.PHONY: msvc6
msvc6: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs6.00 -voversionconfiguration msvc
.PHONY: msvc7
msvc7: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs7.00 -voversionconfiguration msvc
.PHONY: msvc71
msvc71: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs7.10 -voversionconfiguration msvc
.PHONY: msvc8
msvc8: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs8.00 -voversionconfiguration msvc
.PHONY: msvc6_clean
msvc6_clean: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -c -vs6.00 -voversionconfiguration msvc
.PHONY: msvc7_clean
msvc7_clean: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -c -vs7.00 -voversionconfiguration msvc
.PHONY: msvc71_clean
msvc71_clean: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -c -vs7.10 -voversionconfiguration msvc
.PHONY: msvc8_clean
msvc8_clean: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -c -vs8.00 -voversionconfiguration msvc
.PHONY: msvc_clean
msvc_clean: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -c msvc
.PHONY: msvc_clean_all
msvc_clean_all: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -c -vs6.00 -voversionconfiguration msvc
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -c -vs7.00 -voversionconfiguration msvc
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -c -vs7.10 -voversionconfiguration msvc
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -c -vs8.10 -voversionconfiguration msvc
.PHONY: msvc7_install_debug
msvc7_install_debug: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs7.00 -vcdebug -voversionconfiguration msvc
.PHONY: msvc7_install_release
msvc7_install_release: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs7.00 -vcrelease -voversionconfiguration msvc
.PHONY: msvc7_install_speed
msvc7_install_speed: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs7.00 -vcspeed -voversionconfiguration msvc
.PHONY: msvc71_install_debug
msvc71_install_debug: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs7.10 -vcdebug -voversionconfiguration msvc
.PHONY: msvc71_install_release
msvc71_install_release: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs7.10 -vcrelease -voversionconfiguration msvc
.PHONY: msvc71_install_speed
msvc71_install_speed: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs7.10 -vcspeed -voversionconfiguration msvc
.PHONY: msvc8_install_debug
msvc8_install_debug: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs8.00 -vcdebug -voversionconfiguration msvc
.PHONY: msvc8_install_release
msvc8_install_release: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs8.00 -vcrelease -voversionconfiguration msvc
.PHONY: msvc8_install_speed
msvc8_install_speed: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -vs8.00 -vcspeed -voversionconfiguration msvc
.PHONY: makefile_auto_clean
makefile_auto_clean:
-@$(rm) $(ROS_AUTOMAKE) $(PREAUTO) 2>$(NUL)
.PHONY: clean
clean: makefile_auto_clean
.PHONY: depends
depends:
@-$(rm) makefile.auto
@$(MAKE) $(filter-out depends, $(MAKECMDGOALS))

28
README Normal file
View File

@@ -0,0 +1,28 @@
========================
ReactOS Version 0.3.x
Updated Aug 21rd, 2005
========================
1. What is ReactOS?
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 NT 4.0
compatibility, is always keeping an eye toward compatibility with
future Windows NT releases, that is, Windows 2000 (NT 5.0) and
Windows XP (NT 5.1).
More information is available at http://www.reactos.org/.
2. Building ReactOS
See the INSTALL file for more details.
3. More information
See the doc subdirectory for some sparse notes
4. Who is responsible
See the CREDITS file

94
ReactOS-ppc.rbuild Normal file
View File

@@ -0,0 +1,94 @@
<?xml version="1.0"?>
<!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
<project name="ReactOS" makefile="makefile.ppc" xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="config-ppc.rbuild">
<xi:fallback>
<xi:include href="config-ppc.template.rbuild" />
</xi:fallback>
</xi:include>
<xi:include href="baseaddress.rbuild" />
<property name="BOOTPROG_PREPARE" value="ppc-le2be" />
<property name="BOOTPROG_FLATFORMAT" value="-O elf32-powerpc -B powerpc:common" />
<property name="BOOTPROG_LINKFORMAT" value="-melf32ppc --no-omagic -Ttext 0xe00000 -Tdata 0xe10000" />
<property name="BOOTPROG_COPYFORMAT" value="--only-section=.text --only-section=.data --only-section=.bss -O aixcoff-rs6000" />
<define name="_M_PPC" />
<define name="_PPC_" />
<define name="__PowerPC__" />
<define name="_REACTOS_" />
<define name="__MINGW_IMPORT" empty="true" />
<define name="stdcall" empty="true" />
<define name="__stdcall__" empty="true" />
<define name="fastcall" empty="true" />
<define name="cdecl" empty="true" />
<define name="__cdecl__" empty="true" />
<define name="dllimport" empty="true" />
<compilerflag>-v</compilerflag>
<if property="MP" value="1">
<define name="CONFIG_SMP" value="1" />
</if>
<if property="DBG" value="1">
<define name="DBG" value="1" />
<property name="DBG_OR_KDBG" value="true" />
</if>
<if property="DBG" value="0">
<compilerflag>-Os</compilerflag>
<compilerflag>-Wno-strict-aliasing</compilerflag>
</if>
<if property="KDBG" value="1">
<define name="KDBG" value="1" />
<property name="DBG_OR_KDBG" value="true" />
</if>
<compilerflag>-Wpointer-arith</compilerflag>
<include>.</include>
<include>include</include>
<include>include/reactos</include>
<include>include/libs</include>
<include>include/drivers</include>
<include>include/subsys</include>
<include>include/ndk</include>
<include>include</include>
<include>include/crt</include>
<include>include/ddk</include>
<directory name="base">
<xi:include href="base/base.rbuild" />
</directory>
<directory name="boot">
<xi:include href="boot/boot.rbuild" />
</directory>
<directory name="dll">
<xi:include href="dll/dll.rbuild" />
</directory>
<directory name="drivers">
<xi:include href="drivers/drivers.rbuild" />
</directory>
<directory name="hal">
<xi:include href="hal/hal.rbuild" />
</directory>
<directory name="include">
<xi:include href="include/directory.rbuild" />
</directory>
<directory name="lib">
<xi:include href="lib/lib.rbuild" />
</directory>
<directory name="media">
<xi:include href="media/media.rbuild" />
</directory>
<directory name="modules">
<xi:include href="modules/directory.rbuild" />
</directory>
<directory name="ntoskrnl">
<xi:include href="ntoskrnl/ntoskrnl.rbuild" />
</directory>
<directory name="regtests">
<xi:include href="regtests/directory.rbuild" />
</directory>
<directory name="subsystems">
<xi:include href="subsystems/subsystems.rbuild" />
</directory>
</project>

84
ReactOS.rbuild Normal file
View File

@@ -0,0 +1,84 @@
<?xml version="1.0"?>
<!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
<project name="ReactOS" makefile="makefile.auto" xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="config.rbuild">
<xi:fallback>
<xi:include href="config.template.rbuild" />
</xi:fallback>
</xi:include>
<xi:include href="baseaddress.rbuild" />
<define name="_M_IX86" />
<define name="_X86_" />
<define name="__i386__" />
<define name="_REACTOS_" />
<if property="MP" value="1">
<define name="CONFIG_SMP" value="1" />
</if>
<if property="DBG" value="1">
<define name="DBG" value="1" />
<property name="DBG_OR_KDBG" value="true" />
</if>
<if property="KDBG" value="1">
<define name="KDBG" value="1" />
<property name="DBG_OR_KDBG" value="true" />
</if>
<if property="GDB" value="0">
<compilerflag>-Os</compilerflag>
<compilerflag>-Wno-strict-aliasing</compilerflag>
<compilerflag>-ftracer</compilerflag>
<compilerflag>-momit-leaf-frame-pointer</compilerflag>
<compilerflag>-mpreferred-stack-boundary=2</compilerflag>
</if>
<compilerflag>-Wpointer-arith</compilerflag>
<include>.</include>
<include>include</include>
<include>include/psdk</include>
<include>include/crt</include>
<include>include/ddk</include>
<include>include/GL</include>
<include>include/ndk</include>
<include>include/reactos</include>
<include>include/reactos/libs</include>
<directory name="base">
<xi:include href="base/base.rbuild" />
</directory>
<directory name="boot">
<xi:include href="boot/boot.rbuild" />
</directory>
<directory name="dll">
<xi:include href="dll/dll.rbuild" />
</directory>
<directory name="drivers">
<xi:include href="drivers/drivers.rbuild" />
</directory>
<directory name="hal">
<xi:include href="hal/hal.rbuild" />
</directory>
<directory name="include">
<xi:include href="include/directory.rbuild" />
</directory>
<directory name="lib">
<xi:include href="lib/lib.rbuild" />
</directory>
<directory name="media">
<xi:include href="media/media.rbuild" />
</directory>
<directory name="modules">
<xi:include href="modules/directory.rbuild" />
</directory>
<directory name="ntoskrnl">
<xi:include href="ntoskrnl/ntoskrnl.rbuild" />
</directory>
<directory name="regtests">
<xi:include href="regtests/directory.rbuild" />
</directory>
<directory name="subsystems">
<xi:include href="subsystems/subsystems.rbuild" />
</directory>
</project>

29
apistatus.lst Executable file
View File

@@ -0,0 +1,29 @@
; Format:
; COMPONENT_NAME PATH_TO_COMPONENT_SOURCES
; COMPONENT_NAME - Name of the component. Eg. kernel32.dll.
; PATH_TO_COMPONENT_SOURCES - Relative path to sources (relative to
; where rgenstat is run from).
advapi32.dll reactos/lib/advapi32
crtdll.dll reactos/lib/crtdll
gdi32.dll reactos/lib/gdi32
gdiplus.dll reactos/lib/gdiplus
iphlpapi.dll reactos/lib/iphlpapi
kernel32.dll reactos/lib/kernel32
lz32.dll reactos/lib/lzexpand
msvcrt.dll reactos/lib/msvcrt
rpcrt4.dll reactos/lib/rpcrt4
secur32.dll reactos/lib/secur32
snmpapi.dll reactos/lib/snmpapi
user32.dll reactos/lib/user32
version.dll reactos/lib/version
winspool.dll reactos/lib/winspool
ws2_32.dll reactos/lib/ws2_32
wsock32.dll reactos/lib/wsock32
videoprt.dll reactos/drivers/video/videoprt
ndis.sys reactos/drivers/net/ndis
tdi.sys reactos/drivers/net/tdi
class2.sys reactos/drivers/storage/class2
scsiport.sys reactos/drivers/storage/scsiport
ntoskrnl.exe reactos/ntoskrnl
ntoskrnl.exe reactos/lib/rtl
win32k.sys reactos/subsys/win32k

View File

@@ -0,0 +1,89 @@
<?xml version="1.0"?>
<!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
<group>
<directory name="cacls">
<xi:include href="cacls/cacls.rbuild" />
</directory>
<directory name="calc">
<xi:include href="calc/calc.rbuild" />
</directory>
<directory name="cmdutils">
<xi:include href="cmdutils/cmdutils.rbuild" />
</directory>
<directory name="devmgr">
<xi:include href="devmgr/devmgr.rbuild" />
</directory>
<directory name="games">
<xi:include href="games/games.rbuild" />
</directory>
<directory name="getfirefox">
<xi:include href="getfirefox/getfirefox.rbuild" />
</directory>
<directory name="hostname">
<xi:include href="hostname/hostname.rbuild" />
</directory>
<directory name="ibrowser">
<xi:include href="ibrowser/ibrowser.rbuild" />
</directory>
<directory name="imagesoft">
<xi:include href="imagesoft/imagesoft.rbuild" />
</directory>
<directory name="msconfig">
<xi:include href="msconfig/msconfig.rbuild" />
</directory>
<directory name="network">
<xi:include href="network/network.rbuild" />
</directory>
<directory name="notepad">
<xi:include href="notepad/notepad.rbuild" />
</directory>
<directory name="regedit">
<xi:include href="regedit/regedit.rbuild" />
</directory>
<directory name="reporterror">
<xi:include href="reporterror/reporterror.rbuild" />
</directory>
<directory name="sc">
<xi:include href="sc/sc.rbuild" />
</directory>
<directory name="sm">
<xi:include href="sm/sm.rbuild" />
</directory>
<directory name="screensavers">
<xi:include href="screensavers/screensavers.rbuild" />
</directory>
<directory name="screenshot">
<xi:include href="screenshot/screenshot.rbuild" />
</directory>
<directory name="servman">
<xi:include href="servman/servman.rbuild" />
</directory>
<directory name="shutdown">
<xi:include href="shutdown/shutdown.rbuild" />
</directory>
<directory name="sndvol32">
<xi:include href="sndvol32/sndvol32.rbuild" />
</directory>
<directory name="taskmgr">
<xi:include href="taskmgr/taskmgr.rbuild" />
</directory>
<directory name="testsets">
<xi:include href="testsets/testsets.rbuild" />
</directory>
<directory name="winefile">
<xi:include href="winefile/winefile.rbuild" />
</directory>
<directory name="wordpad">
<xi:include href="wordpad/wordpad.rbuild" />
</directory>
<directory name="control">
<xi:include href="control/control.rbuild" />
</directory>
<directory name="utils">
<xi:include href="utils/utils.rbuild" />
</directory>
<directory name="winver">
<xi:include href="winver/winver.rbuild" />
</directory>
</group>

View File

@@ -0,0 +1,608 @@
/*
* ReactOS Control ACLs Program
* Copyright (C) 2006 Thomas Weidenmueller
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <precomp.h>
static GENERIC_MAPPING FileGenericMapping =
{
FILE_GENERIC_READ,
FILE_GENERIC_WRITE,
FILE_GENERIC_EXECUTE,
FILE_ALL_ACCESS
};
static INT
LengthOfStrResource(IN HINSTANCE hInst,
IN UINT uID)
{
HRSRC hrSrc;
HGLOBAL hRes;
LPWSTR lpName, lpStr;
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 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)
{
SIZE_T Indent;
PSECURITY_DESCRIPTOR SecurityDescriptor;
DWORD SDSize = 0;
TCHAR FullFileName[MAX_PATH + 1];
BOOL Error = FALSE, Ret = FALSE;
Indent = _tcslen(FilePath) + _tcslen(FileName);
if (Indent++ > MAX_PATH - 1)
{
/* file name too long */
SetLastError(ERROR_FILE_NOT_FOUND);
return FALSE;
}
_tcscpy(FullFileName,
FilePath);
_tcscat(FullFileName,
FileName);
/* find out how much memory we need */
if (!GetFileSecurity(FullFileName,
DACL_SECURITY_INFORMATION,
NULL,
0,
&SDSize) &&
GetLastError() != ERROR_INSUFFICIENT_BUFFER)
{
return FALSE;
}
SecurityDescriptor = (PSECURITY_DESCRIPTOR)HeapAlloc(GetProcessHeap(),
0,
SDSize);
if (SecurityDescriptor != NULL)
{
if (GetFileSecurity(FullFileName,
DACL_SECURITY_INFORMATION,
SecurityDescriptor,
SDSize,
&SDSize))
{
PACL Dacl;
BOOL DaclPresent;
BOOL DaclDefaulted;
if (GetSecurityDescriptorDacl(SecurityDescriptor,
&DaclPresent,
&Dacl,
&DaclDefaulted))
{
if (DaclPresent)
{
PACCESS_ALLOWED_ACE Ace;
DWORD AceIndex = 0;
/* dump the ACL */
while (GetAce(Dacl,
AceIndex,
(PVOID*)&Ace))
{
SID_NAME_USE Use;
DWORD NameSize = 0;
DWORD DomainSize = 0;
LPTSTR Name = NULL;
LPTSTR Domain = NULL;
LPTSTR SidString = NULL;
DWORD IndentAccess;
DWORD AccessMask = Ace->Mask;
PSID Sid = (PSID)&Ace->SidStart;
/* attempt to translate the SID into a readable string */
if (!LookupAccountSid(NULL,
Sid,
Name,
&NameSize,
Domain,
&DomainSize,
&Use))
{
if (GetLastError() == ERROR_NONE_MAPPED || NameSize == 0)
{
goto BuildSidString;
}
else
{
if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
{
Error = TRUE;
break;
}
Name = (LPTSTR)HeapAlloc(GetProcessHeap(),
0,
(NameSize + DomainSize) * sizeof(TCHAR));
if (Name == NULL)
{
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
Error = TRUE;
break;
}
Domain = Name + NameSize;
Name[0] = _T('\0');
if (DomainSize != 0)
Domain[0] = _T('\0');
if (!LookupAccountSid(NULL,
Sid,
Name,
&NameSize,
Domain,
&DomainSize,
&Use))
{
HeapFree(GetProcessHeap(),
0,
Name);
Name = NULL;
goto BuildSidString;
}
}
}
else
{
BuildSidString:
if (!ConvertSidToStringSid(Sid,
&SidString))
{
Error = TRUE;
break;
}
}
/* print the file name or space */
_tprintf(_T("%s "),
FullFileName);
/* attempt to map the SID to a user name */
if (AceIndex == 0)
{
DWORD i = 0;
/* overwrite the full file name with spaces so we
only print the file name once */
while (FullFileName[i] != _T('\0'))
FullFileName[i++] = _T(' ');
}
/* print the domain and/or user if possible, or the SID string */
if (Name != NULL && Domain[0] != _T('\0'))
{
_tprintf(_T("%s\\%s:"),
Domain,
Name);
IndentAccess = (DWORD)_tcslen(Domain) + _tcslen(Name);
}
else
{
LPTSTR DisplayString = (Name != NULL ? Name : SidString);
_tprintf(_T("%s:"),
DisplayString);
IndentAccess = (DWORD)_tcslen(DisplayString);
}
/* print the ACE Flags */
if (Ace->Header.AceFlags & CONTAINER_INHERIT_ACE)
{
IndentAccess += LoadAndPrintString(NULL,
IDS_ABBR_CI);
}
if (Ace->Header.AceFlags & OBJECT_INHERIT_ACE)
{
IndentAccess += LoadAndPrintString(NULL,
IDS_ABBR_OI);
}
if (Ace->Header.AceFlags & INHERIT_ONLY_ACE)
{
IndentAccess += LoadAndPrintString(NULL,
IDS_ABBR_IO);
}
IndentAccess += 2;
/* print the access rights */
MapGenericMask(&AccessMask,
&FileGenericMapping);
if (Ace->Header.AceType & ACCESS_DENIED_ACE_TYPE)
{
if (AccessMask == FILE_ALL_ACCESS)
{
LoadAndPrintString(NULL,
IDS_ABBR_NONE);
}
else
{
LoadAndPrintString(NULL,
IDS_DENY);
goto PrintSpecialAccess;
}
}
else
{
if (AccessMask == FILE_ALL_ACCESS)
{
LoadAndPrintString(NULL,
IDS_ABBR_FULL);
}
else if (!(Ace->Mask & (GENERIC_READ | GENERIC_EXECUTE)) &&
AccessMask == (FILE_GENERIC_READ | FILE_EXECUTE))
{
LoadAndPrintString(NULL,
IDS_ABBR_READ);
}
else if (AccessMask == (FILE_GENERIC_READ | FILE_GENERIC_WRITE | FILE_EXECUTE | DELETE))
{
LoadAndPrintString(NULL,
IDS_ABBR_CHANGE);
}
else if (AccessMask == FILE_GENERIC_WRITE)
{
LoadAndPrintString(NULL,
IDS_ABBR_WRITE);
}
else
{
DWORD x, x2;
static const struct
{
DWORD Access;
UINT uID;
}
AccessRights[] =
{
{FILE_WRITE_ATTRIBUTES, IDS_FILE_WRITE_ATTRIBUTES},
{FILE_READ_ATTRIBUTES, IDS_FILE_READ_ATTRIBUTES},
{FILE_DELETE_CHILD, IDS_FILE_DELETE_CHILD},
{FILE_EXECUTE, IDS_FILE_EXECUTE},
{FILE_WRITE_EA, IDS_FILE_WRITE_EA},
{FILE_READ_EA, IDS_FILE_READ_EA},
{FILE_APPEND_DATA, IDS_FILE_APPEND_DATA},
{FILE_WRITE_DATA, IDS_FILE_WRITE_DATA},
{FILE_READ_DATA, IDS_FILE_READ_DATA},
{FILE_GENERIC_EXECUTE, IDS_FILE_GENERIC_EXECUTE},
{FILE_GENERIC_WRITE, IDS_FILE_GENERIC_WRITE},
{FILE_GENERIC_READ, IDS_FILE_GENERIC_READ},
{GENERIC_ALL, IDS_GENERIC_ALL},
{GENERIC_EXECUTE, IDS_GENERIC_EXECUTE},
{GENERIC_WRITE, IDS_GENERIC_WRITE},
{GENERIC_READ, IDS_GENERIC_READ},
{MAXIMUM_ALLOWED, IDS_MAXIMUM_ALLOWED},
{ACCESS_SYSTEM_SECURITY, IDS_ACCESS_SYSTEM_SECURITY},
{SPECIFIC_RIGHTS_ALL, IDS_SPECIFIC_RIGHTS_ALL},
{STANDARD_RIGHTS_REQUIRED, IDS_STANDARD_RIGHTS_REQUIRED},
{SYNCHRONIZE, IDS_SYNCHRONIZE},
{WRITE_OWNER, IDS_WRITE_OWNER},
{WRITE_DAC, IDS_WRITE_DAC},
{READ_CONTROL, IDS_READ_CONTROL},
{DELETE, IDS_DELETE},
{STANDARD_RIGHTS_ALL, IDS_STANDARD_RIGHTS_ALL},
};
LoadAndPrintString(NULL,
IDS_ALLOW);
PrintSpecialAccess:
LoadAndPrintString(NULL,
IDS_SPECIAL_ACCESS);
/* print the special access rights */
x = sizeof(AccessRights) / sizeof(AccessRights[0]);
while (x-- != 0)
{
if ((Ace->Mask & AccessRights[x].Access) == AccessRights[x].Access)
{
_tprintf(_T("\n%s "),
FullFileName);
for (x2 = 0;
x2 < IndentAccess;
x2++)
{
_tprintf(_T(" "));
}
LoadAndPrintString(NULL,
AccessRights[x].uID);
}
}
_tprintf(_T("\n"));
}
}
_tprintf(_T("\n"));
/* free up all resources */
if (Name != NULL)
{
HeapFree(GetProcessHeap(),
0,
Name);
}
if (SidString != NULL)
{
LocalFree((HLOCAL)SidString);
}
AceIndex++;
}
if (!Error)
Ret = TRUE;
}
else
{
SetLastError(ERROR_NO_SECURITY_ON_OBJECT);
}
}
}
HeapFree(GetProcessHeap(),
0,
SecurityDescriptor);
}
else
{
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
}
return Ret;
}
#ifdef _UNICODE
int __cdecl main(void)
#else
int __cdecl _main (int argc, char *argv[])
#endif
{
#ifdef _UNICODE
PWCHAR *argv;
int argc = 0;
argv = CommandLineToArgvW(GetCommandLineW(), &argc);
#endif
if (argc < 2)
{
PrintHelp();
return 1;
}
else
{
TCHAR FullPath[MAX_PATH + 1];
TCHAR *FilePart = NULL;
WIN32_FIND_DATA FindData;
HANDLE hFind;
DWORD LastError;
BOOL ContinueAccessDenied = FALSE;
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 &&
ContinueAccessDenied)
{
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

@@ -0,0 +1,15 @@
<module name="cacls" type="win32cui" installbase="system32" installname="cacls.exe">
<include base="cacls">.</include>
<define name="__USE_W32API" />
<define name="UNICODE" />
<define name="_UNICODE" />
<define name="_WIN32_IE">0x0500</define>
<define name="_WIN32_WINNT">0x0600</define>
<define name="WINVER">0x0600</define>
<library>kernel32</library>
<library>advapi32</library>
<library>ntdll</library>
<file>cacls.c</file>
<file>lang/cacls.rc</file>
<pch>precomp.h</pch>
</module>

View File

@@ -0,0 +1,79 @@
/*
* German language file by Daniel Reimer <EmuandCo> 2006-06-15
*/
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_HELP, "<22>ndert Datei-ACLs (Access Control List) oder zeigt sie an.\n\n\
CACLS Dateiname [/T] [/E] [/C] [/G Benutzer:Zugriff] [/R Benutzer [...]]\n\
[/P Benutzer:Zugriff [...]] [/D Benutzer [...]]\n\
Dateiname ACLs f<>r angegebene Datei anzeigen.\n\
/T ACLs der angegebenen Datei im aktuellen Verzeichnis\n\
und allen Unterverzeichnissen <20>ndern.\n\
/E ACL bearbeiten anstatt sie zu ersetzen.\n\
/C <20>ndern der ACLs bei Zugriffsverletzung fortsetzen.\n\
/G Benutzer:Zugriff Angegebene Zugriffsarten zulassen.\n\
Zugriff kann sein: R Lesen\n\
W Schreiben\n\
C <20>ndern (Schreiben)\n\
F Vollzugriff\n\
/R Benutzer Zugriffsrechte des Benutzers aufheben (g<>ltig mit /E).\n\
/P Benutzer:Zugriff Zugriffsrechte des Benutzers ersetzen.\n\
Zugriff kann sein: N Kein\n\
R Lesen\n\
W Schreiben\n\
C <20>ndern (Schreiben)\n\
F Vollzugriff\n\
/D Benutzer Zugriff f<>r Benutzer verweigern.\n\
Platzhalterzeichen (Wildcards) werden f<>r Dateiname unterst<73>tzt.\n\
Mehrere Benutzer k<>nnen in einem Befehl angegeben werden.\n\n\
Abk<EFBFBD>rzungen:\n\
CI - Containervererbung.\n\
Der ACE-Eintrag wird von Verzeichnissen geerbt.\n\
OI - Objektvererbung.\n\
Der ACE-Eintrag wird von Dateien geerbt.\n\
IO - Nur vererben.\n\
Der ACE-Eintrag bezieht sich nicht auf\n\
die aktuelle Datei/das aktuelle Verzeichnis.\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, "(DENY)"
IDS_SPECIAL_ACCESS, "(special access:)"
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"
}

View File

@@ -0,0 +1,74 @@
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
STRINGTABLE DISCARDABLE
{
IDS_HELP, "Displays or modifies access control lists (ACLs) of files\n\n\
CACLS filename [/T] [/E] [/C] [/G user:perm [...]] [/R user [...]]\n\
[/P user:perm [...]] [/D user [...]]\n\
filename Displays ACLs.\n\
/T Changes ACLs of specified files in\n\
the current directory and all subdirectories.\n\
/E Edit ACL instead of replacing it.\n\
/C Continue on access denied errors.\n\
/G user:perm Grant specified user access rights.\n\
Perm can be: R Read\n\
W Write\n\
C Change (write)\n\
F Full control\n\
/R user Revoke specified user's access rights (only valid with /E).\n\
/P user:perm Replace specified user's access rights.\n\
Perm can be: N None\n\
R Read\n\
W Write\n\
C Change (write)\n\
F Full control\n\
/D user Deny specified user access.\n\
Wildcards can be used to specify more that one file in a command.\n\
You can specify more than one user in a command.\n\n\
Abbreviations:\n\
CI - Container Inherit.\n\
The ACE will be inherited by directories.\n\
OI - Object Inherit.\n\
The ACE will be inherited by files.\n\
IO - Inherit Only.\n\
The ACE does not apply to the current file/directory.\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, "(DENY)"
IDS_SPECIAL_ACCESS, "(special access:)"
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"
}

View File

@@ -0,0 +1,75 @@
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
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\
de huidige map en alle submappen.\n\
/E ACL bewerken in plaats van vervangen.\n\
/C Doorgaan bij toegang geweigerd.\n\
/G gebr:toeg Opgegeven gebruiker toegangsrechten verlenen.\n\
Toeg kan zijn: R Lezen\n\
W Schrijven\n\
C Wijzigen (schrijven)\n\
F Volledig beheer\n\
/R gebruiker Toegangsrechten van opgegeven gebruiker intrekken.\n\
[alleen geldig met /E].\n\
/P gebr:toeg Toegangsrechten van opgegeven gebruiker vervangen.\n\
Toeg kan zijn: N Geen\n\
R Lezen\n\
W Schrijven\n\
C Wijzigen (schrijven)\n\
F Volledig beheer\n\
/D gebruiker Opgegeven gebruiker toegang weigeren.\n\
U kunt jokertekens gebruiken om meerdere bestanden op te geven in een\n\
opdracht. U kunt meerdere gebruikers opgeven in een opdracht.\n\n\
Afkortingen:\n\
CI - Container Inherit.\n\
De toegangslijst wordt door mappen overgenomen.\n\
OI - Object Inherit.\n\
De toegangslijst wordt door bestanden overgenomen.\n\
IO - Inherit Only.\n\
De toegangslijst is niet van toepassing op het huidige bestand of\n\
de huidige map.\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, "(DENY)"
IDS_SPECIAL_ACCESS, "(speciale toegang:)"
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"
}

View File

@@ -0,0 +1,74 @@
LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_HELP, "Viser eller endrer tilgang kontroll lister (ACL) av filer\n\n\
CACLS filnavn [/T] [/E] [/C] [/G bruker:perm [...]] [/R user [...]]\n\
[/P bruker:perm [...]] [/D bruker [...]]\n\
filnavn Viser ACL.\n\
/T Endrer ACL av spesifiserte filer i\n\
n<>v<EFBFBD>rende katalog og alle under-mapper.\n\
/E Rediger ACL isteden for erstatte det.\n\
/C Fortsett p<> tilgang nektet feiler.\n\
/G user:perm Innr<6E>mme spesifiert bruker tilgang rettigheter.\n\
Perm kan bli: L Les\n\
S Skriv\n\
E Endre (skriv)\n\
F Full kontroll\n\
/R bruker Tilbakekalle spesifisert bruker tilgang rettighet (bare gyldig med /E).\n\
/P bruker:perm Erstatte spesifisert bruker tilgang rettighet.\n\
Perm kan bli: I Ingen\n\
L Les\n\
S Skrive\n\
E Endre (skriv)\n\
F Full kontroll\n\
/D bruker Avsl<73> spesifisert bruker tilgang.\n\
Wildcards kan bli brukt for <20> spesifisere mere enn en fil i en kommando.\n\
Du kan spesifisere mere enn en bruker i en kommando.\n\n\
Forkortelse:\n\
CI - Container Inherit.\n\
ACE vil bli inherited av directories.\n\
OI - Object Inherit.\n\
ACE will be inherited by files.\n\
IO - Inherit Only.\n\
ACE gjelder ikke til n<>v<EFBFBD>rende fil/katalog.\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, "(NEKTE)"
IDS_SPECIAL_ACCESS, "(spesiell tilgang:)"
IDS_GENERIC_READ, "GENERISK_LESE"
IDS_GENERIC_WRITE, "GENERISK_SKRIVE"
IDS_GENERIC_EXECUTE, "GENERISK_KJ<4B>RE"
IDS_GENERIC_ALL, "GENERISK_ALT"
IDS_FILE_GENERIC_EXECUTE, "FIL_GENERISK_KJ<4B>RE"
IDS_FILE_GENERIC_READ, "FIL_GENERISK_LESE"
IDS_FILE_GENERIC_WRITE, "FIL_GENERISK_SKRIVE"
IDS_FILE_READ_DATA, "FIL_LES_DATA"
IDS_FILE_WRITE_DATA, "FIL_SKRIV_DATA"
IDS_FILE_APPEND_DATA, "FIL_TILF<4C>YE_DATA"
IDS_FILE_READ_EA, "FIL_LESE_EA"
IDS_FILE_WRITE_EA, "FIL_SKRIVE_EA"
IDS_FILE_EXECUTE, "FIL_KJ<4B>RE"
IDS_FILE_DELETE_CHILD, "FIL_SLETT_BARN"
IDS_FILE_READ_ATTRIBUTES, "FIL_LESE_ATTRIBUTTER"
IDS_FILE_WRITE_ATTRIBUTES, "FIL_SKRIVE_ATTRIBUTTER"
IDS_MAXIMUM_ALLOWED, "MAKSIMUM_TILATT"
IDS_ACCESS_SYSTEM_SECURITY, "TILGANG_SYSTEM_SIKKERHET"
IDS_SPECIFIC_RIGHTS_ALL, "SPESIFIKT_RETTIGHETER_ALT"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RETTIGHETER_P<5F>BUDT"
IDS_SYNCHRONIZE, "SYNKRONISERE"
IDS_WRITE_OWNER, "SKRIVE_EIER"
IDS_WRITE_DAC, "SKRIVE_DAC"
IDS_READ_CONTROL, "LESE_KONTROLL"
IDS_DELETE, "SLETT"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RETTIGHETER_ALT"
}

View File

@@ -0,0 +1,75 @@
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
IDS_HELP, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (ACLs) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\n\
CACLS <20><><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD> [/T] [/E] [/C] [/G <20><><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD> [...]] [/R <20><><EFBFBD> [...]]\n\
[/P <20><><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD>[...]] [/D <20><><EFBFBD> [...]]\n\
<20><><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ACL.\n\
/T <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ACL <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\
<20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n\
/E <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ACL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n\
/C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n\
/G <20><><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n\
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: R <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\
W <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\
C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)\n\
F <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\
/R <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\
(<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> /E).\n\
/P <20><><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n\
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\
R <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\
W <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\
C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)\n\
F <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\
/D <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n\
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.\n\
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n\n\
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n\
CI - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n\
ACE <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n\
OI - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n\
ACE <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n\
IO - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n\
ACE <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>.\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, "(DENY)"
IDS_SPECIAL_ACCESS, "(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:)"
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"
}

View File

@@ -0,0 +1,10 @@
#include <windows.h>
#include "resource.h"
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Control ACLs Program\0"
#define REACTOS_STR_INTERNAL_NAME "cacls\0"
#define REACTOS_STR_ORIGINAL_FILENAME "cacls.exe\0"
#include <reactos/version.rc>
#include "rsrc.rc"

View File

@@ -0,0 +1,10 @@
#ifndef _CACLS_PRECOMP_H
#define _CACLS_PRECOMP_H
#include <windows.h>
#include <sddl.h>
#include <tchar.h>
#include <stdio.h>
#include "resource.h"
#endif /* _CACLS_PRECOMP_H */

View File

@@ -0,0 +1,44 @@
#ifndef _CACLS_RESOURCE_H
#define _CACLS_RESOURCE_H
#define IDS_HELP 101
#define IDS_ABBR_CI 102
#define IDS_ABBR_OI 103
#define IDS_ABBR_IO 104
#define IDS_ABBR_FULL 105
#define IDS_ABBR_READ 106
#define IDS_ABBR_WRITE 107
#define IDS_ABBR_CHANGE 108
#define IDS_ABBR_NONE 109
#define IDS_ALLOW 110
#define IDS_DENY 111
#define IDS_SPECIAL_ACCESS 112
#define IDS_GENERIC_READ 113
#define IDS_GENERIC_WRITE 114
#define IDS_GENERIC_EXECUTE 115
#define IDS_GENERIC_ALL 116
#define IDS_FILE_GENERIC_EXECUTE 118
#define IDS_FILE_GENERIC_READ 119
#define IDS_FILE_GENERIC_WRITE 120
#define IDS_FILE_READ_DATA 121
#define IDS_FILE_WRITE_DATA 122
#define IDS_FILE_APPEND_DATA 123
#define IDS_FILE_READ_EA 124
#define IDS_FILE_WRITE_EA 125
#define IDS_FILE_EXECUTE 126
#define IDS_FILE_DELETE_CHILD 127
#define IDS_FILE_READ_ATTRIBUTES 128
#define IDS_FILE_WRITE_ATTRIBUTES 129
#define IDS_MAXIMUM_ALLOWED 130
#define IDS_ACCESS_SYSTEM_SECURITY 131
#define IDS_SPECIFIC_RIGHTS_ALL 132
#define IDS_STANDARD_RIGHTS_REQUIRED 133
#define IDS_SYNCHRONIZE 134
#define IDS_WRITE_OWNER 135
#define IDS_WRITE_DAC 136
#define IDS_READ_CONTROL 137
#define IDS_DELETE 138
#define IDS_STANDARD_RIGHTS_ALL 139
#endif /* _CACLS_RESOURCE_H */

View File

@@ -0,0 +1,16 @@
#include <windows.h>
#include "resource.h"
/* define language neutral resources */
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
/* include localised resources */
#include "lang/En.rc"
#include "lang/Nl.rc"
#include "lang/Ru.rc"
#include "lang/De.rc"
#include "lang/No.rc"

View File

@@ -0,0 +1,16 @@
<module name="calc" type="win32gui" installbase="system32" installname="calc.exe">
<include base="calc">.</include>
<define name="__USE_W32API" />
<define name="_WIN32_IE">0x0501</define>
<define name="WINVER">0x0501</define>
<define name="UNICODE" />
<define name="_UNICODE" />
<library>kernel32</library>
<library>user32</library>
<library>gdi32</library>
<library>comctl32</library>
<file>dialog.c</file>
<file>stats.c</file>
<file>winecalc.c</file>
<file>rsrc.rc</file>
</module>

View File

@@ -0,0 +1,6 @@
/* Do not Make changes here */
#include <windows.h>
#include <reactos/resource.h>
#include "rsrc.rc"

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -0,0 +1,94 @@
/*
* WineCalc (dialog.c)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <windows.h>
#include <tchar.h>
#include "dialog.h"
#include "resource.h"
#include "winecalc.h"
extern HINSTANCE hInstance;
BOOL CALLBACK AboutDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
HDC hdc;
PAINTSTRUCT ps;
switch( uMsg ) {
case WM_INITDIALOG:
SendMessage (hDlg, WM_SETFONT, (UINT)GetStockObject(DEFAULT_GUI_FONT), TRUE);
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam)) {
case IDOK:
EndDialog( hDlg, 0 );
return TRUE;
}
break;
case WM_PAINT:
{
HDC hMemDC;
HFONT hFont;
HFONT hFontOrg;
TCHAR c1[CALC_BUF_SIZE];
TCHAR c2[CALC_BUF_SIZE];
TCHAR c3[CALC_BUF_SIZE];
TCHAR c4[CALC_BUF_SIZE];
TCHAR c5[CALC_BUF_SIZE];
hdc = BeginPaint( hDlg, &ps );
hMemDC = CreateCompatibleDC( hdc );
LoadString( hInstance, IDS_COPYRIGHT1, c1, sizeof(c1) / sizeof(c1[0]));
LoadString( hInstance, IDS_COPYRIGHT2, c2, sizeof(c2) / sizeof(c2[0]));
LoadString( hInstance, IDS_COPYRIGHT3, c3, sizeof(c3) / sizeof(c3[0]));
LoadString( hInstance, IDS_COPYRIGHT4, c4, sizeof(c4) / sizeof(c4[0]));
LoadString( hInstance, IDS_COPYRIGHT5, c5, sizeof(c5) / sizeof(c5[0]));
hFont = GetStockObject(DEFAULT_GUI_FONT);
hFontOrg = SelectObject(hdc, hFont);
SetBkMode(hdc, TRANSPARENT);
TextOut(hdc, 10, 10, c1, (INT) _tcslen(c1));
TextOut(hdc, 10, 35, c2, (INT) _tcslen(c2));
TextOut(hdc, 10, 50, c3, (INT) _tcslen(c3));
TextOut(hdc, 10, 75, c4, (INT) _tcslen(c4));
TextOut(hdc, 10, 90, c5, (INT) _tcslen(c5));
SelectObject(hdc, hFontOrg);
DeleteDC( hMemDC );
EndPaint( hDlg, &ps );
return 0;
}
case WM_CLOSE:
EndDialog( hDlg, TRUE );
return 0;
}
return FALSE;
}

View File

@@ -0,0 +1,24 @@
/*
* WineCalc (dialog.h)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
BOOL CALLBACK AboutDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );

View File

@@ -0,0 +1,157 @@
/*
* Czech language support
*
* WineCalc (En.rc)
*
* Copyright 2005 Denzil <d3nzil@gmail.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Kalkul<75>tor"
IDS_COPYRIGHT1, "Kalkul<75>tor 5.0. Licencov<6F>n pod LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Zp<5A>t"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "Neplatn<74> vstup pro funkci."
IDS_ERR_DIVIDE_BY_ZERO, "Nelze d<>lit nulou."
IDS_ERR_UNDEFINED, "V<>sledek funkce nen<65> definov<6F>n."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Editace" {
MENUITEM "&Kop<6F>rovat Ctrl+C", IDM_COPY
MENUITEM "&Vlo<6C>it Ctrl+V", IDM_PASTE
}
POPUP "&Zobrazen<65>" {
MENUITEM "Standartn<74>", IDM_MODE_STANDARD
MENUITEM "V<>deck<63>", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Seskupov<6F>n<EFBFBD> <20><>slic", IDM_DIGIT_GROUPING
}
POPUP "&Pomoc" {
MENUITEM "T<>mata n<>pov<6F>dy", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "O Kalkul<75>toru", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Editace" {
MENUITEM "&Kop<6F>rovat Ctrl+C", IDM_COPY
MENUITEM "&Vlo<6C>it Ctrl+V", IDM_PASTE
}
POPUP "&Zobrazen<65>" {
MENUITEM "Standartn<74>", IDM_MODE_STANDARD
MENUITEM "V<>deck<63>", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "<22>estn<74>ctkov<6F>\tF5", ID_CALC_NS_HEX
MENUITEM "Des<65>tkov<6F>\tF6", ID_CALC_NS_DEC
MENUITEM "Osmi<6D>kov<6F>\tF7", ID_CALC_NS_OCT
MENUITEM "Dvojkov<6F>\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Stupn<70>\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radi<64>ny\tF3", ID_CALC_MS_RADIANS
MENUITEM "Grady\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "Seskupov<6F>n<EFBFBD> <20><>slic", IDM_DIGIT_GROUPING
}
POPUP "&Pomoc" {
MENUITEM "T<>mata n<>pov<6F>dy", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "O Kalkul<75>toru", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Editace" {
MENUITEM "&Kop<6F>rovat Ctrl+C", IDM_COPY
MENUITEM "&Vlo<6C>it Ctrl+V", IDM_PASTE
}
POPUP "&Zobrazen<65>" {
MENUITEM "Standartn<74>", IDM_MODE_STANDARD
MENUITEM "V<>deck<63>", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "<22>estn<74>ctkov<6F>\tF5", ID_CALC_NS_HEX
MENUITEM "Des<65>tkov<6F>\tF6", ID_CALC_NS_DEC
MENUITEM "Osmi<6D>kov<6F>\tF7", ID_CALC_NS_OCT
MENUITEM "Dvojkov<6F>\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "Seskupov<6F>n<EFBFBD> <20><>slic", IDM_DIGIT_GROUPING
}
POPUP "&Pomoc" {
MENUITEM "T<>mata n<>pov<6F>dy", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "O Kalkul<75>toru", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "O GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "Co je toto?", IDM_WHATS_THIS
}
}
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statistics Box"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,155 @@
/*
* WineCalc (DE.rc)
*
* Copyright 2005 Rouven Wessling
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Rechner"
IDS_COPYRIGHT1, "Rechner 5.0. Lizenziert unter der LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "R<>cktaste"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "Ung<6E>ltige Eingabe f<>r Funktion."
IDS_ERR_DIVIDE_BY_ZERO, "Teilen durch 0 unm<6E>glich."
IDS_ERR_UNDEFINED, "Das Ergebnis der Funktion ist undefiniert."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Bearbeiten" {
MENUITEM "&Kopieren Ctrl+C", IDM_COPY
MENUITEM "&Einf<6E>gen Ctrl+V", IDM_PASTE
}
POPUP "&Ansicht" {
MENUITEM "&Standard", IDM_MODE_STANDARD
MENUITEM "&Wissenschaftlich", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "&Zifferngruppierung", IDM_DIGIT_GROUPING
}
POPUP "&?" {
MENUITEM "&Hilfethemen", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "&Info", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Bearbeiten" {
MENUITEM "&Kopieren Ctrl+C", IDM_COPY
MENUITEM "&Einf<6E>gen Ctrl+V", IDM_PASTE
}
POPUP "&Anzeige" {
MENUITEM "&Standard", IDM_MODE_STANDARD
MENUITEM "&Wissenschaftlich", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "&Hex\tF5", ID_CALC_NS_HEX
MENUITEM "De&zimal\tF6", ID_CALC_NS_DEC
MENUITEM "O&ktal\tF7", ID_CALC_NS_OCT
MENUITEM "&Bin<69>r\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "&Deg\tF2", ID_CALC_MS_DEGREES
MENUITEM "&Rad\tF3", ID_CALC_MS_RADIANS
MENUITEM "&Grad\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "Zifferngr&uppierung", IDM_DIGIT_GROUPING
}
POPUP "&?" {
MENUITEM "&Hilfethemen", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "&Info", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Bearbeiten" {
MENUITEM "&Kopieren Ctrl+C", IDM_COPY
MENUITEM "&Einf<6E>gen Ctrl+V", IDM_PASTE
}
POPUP "&Anzeige" {
MENUITEM "&Standard", IDM_MODE_STANDARD
MENUITEM "&Wissenschaftlich", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "&Hex\tF5", ID_CALC_NS_HEX
MENUITEM "De&zimal\tF6", ID_CALC_NS_DEC
MENUITEM "O&ktal\tF7", ID_CALC_NS_OCT
MENUITEM "&Bin<69>r\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "&Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dw&ord\tF2", ID_CALC_WS_DWORD
MENUITEM "Wo&rd\tF3", ID_CALC_WS_WORD
MENUITEM "&Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "&Zifferngruppierung", IDM_DIGIT_GROUPING
}
POPUP "&?" {
MENUITEM "&Hilfethemen", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "&Info", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "Info <20>ber GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "Was ist das?", IDM_WHATS_THIS
}
}
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statistik Box"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,155 @@
/*
* WineCalc (En.rc)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Calculator"
IDS_COPYRIGHT1, "Calculator 5.0. Licensed under LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Backspace"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "Invalid input for function."
IDS_ERR_DIVIDE_BY_ZERO, "Cannot divide by zero."
IDS_ERR_UNDEFINED, "Result of function is undefined."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binary\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Degrees\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radians\tF3", ID_CALC_MS_RADIANS
MENUITEM "Grads\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binary\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "About GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "What's This?", IDM_WHATS_THIS
}
}
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statistics Box"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,155 @@
/*
* WineCalc (Spanish resources)
*
* Copyright 2005 Patricio Mart<72>nez Ros
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Calculadora"
IDS_COPYRIGHT1, "Calculadora 5.0. bajo licencia LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Retroceso"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "Entrada no v<>lida para la funci<63>n."
IDS_ERR_DIVIDE_BY_ZERO, "No se puede dividir entre cero."
IDS_ERR_UNDEFINED, "El resultado de esta funci<63>n no est<73> definido."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Editar" {
MENUITEM "&Copiar Ctrl+C", IDM_COPY
MENUITEM "&Pegar Ctrl+V", IDM_PASTE
}
POPUP "&Ver" {
MENUITEM "Est<73>ndar", IDM_MODE_STANDARD
MENUITEM "Cient<6E>fica", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Agrupaci<63>n de d<>gitos", IDM_DIGIT_GROUPING
}
POPUP "Ayuda" {
MENUITEM "Temas de Ayuda", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Acerca de Calculadora", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Editar" {
MENUITEM "&Copiar Ctrl+C", IDM_COPY
MENUITEM "&Pegar Ctrl+V", IDM_PASTE
}
POPUP "&Ver" {
MENUITEM "Est<73>ndar", IDM_MODE_STANDARD
MENUITEM "Cient<6E>fica", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hesadecimal\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binario\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Sexagesimal\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radi<64>n\tF3", ID_CALC_MS_RADIANS
MENUITEM "Centesimal\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "Agrupaci<63>n de d<>gitos", IDM_DIGIT_GROUPING
}
POPUP "Ayuda" {
MENUITEM "Temas de Ayuda", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Acerca de Calculadora", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Editar" {
MENUITEM "&Copiar Ctrl+C", IDM_COPY
MENUITEM "&Pegar Ctrl+V", IDM_PASTE
}
POPUP "&Ver" {
MENUITEM "Est<73>ndar", IDM_MODE_STANDARD
MENUITEM "Cient<6E>fica", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hexadecimal\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binario\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "Agrupaci<63>n de d<>gitos", IDM_DIGIT_GROUPING
}
POPUP "Ayuda" {
MENUITEM "Temas de Ayuda", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Acerca de Calculadora", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "Acerca de GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "Aceptar", IDOK, 42, 60, 29, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "<22>Qu<51> es esto?", IDM_WHATS_THIS
}
}
DLG_STATS DIALOG 12,0,125,78
CAPTION "Cuadro de estad<61>sticas"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "Cargar", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,157 @@
/*
* WineCalc (Fr.rc)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/*
* Translation made by Jerome Signouret, 2005.
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Calculatrice"
IDS_COPYRIGHT1, "Calculator 5.0. Licensed under LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Effacer"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "Entr<74>e incorrecte pour l'op<6F>ration."
IDS_ERR_DIVIDE_BY_ZERO, "Division par z<>ro impossble."
IDS_ERR_UNDEFINED, "R<>sultat non d<>fini."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Edition" {
MENUITEM "Co&pier Ctrl+C", IDM_COPY
MENUITEM "C&oller Ctrl+V", IDM_PASTE
}
POPUP "&Affichage" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientifique", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "S<>parateur", IDM_DIGIT_GROUPING
}
POPUP "Ai&de" {
MENUITEM "Somaire", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "A propos", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Edition" {
MENUITEM "Co&pier Ctrl+C", IDM_COPY
MENUITEM "C&oller Ctrl+V", IDM_PASTE
}
POPUP "&Affichage" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientifique", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binaire\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Degr<67>s\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radians\tF3", ID_CALC_MS_RADIANS
MENUITEM "Gradians\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "S<>parateur", IDM_DIGIT_GROUPING
}
POPUP "Ai&de" {
MENUITEM "Sommaire", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "A propos", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "Co&pier Ctrl+C", IDM_COPY
MENUITEM "C&oller Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientifique", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binaire\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "S<>parateur", IDM_DIGIT_GROUPING
}
POPUP "Ai&de" {
MENUITEM "Sommaire", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "A propos", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "Qu'est-ce ?", IDM_WHATS_THIS
}
}
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "A propos de GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
DLG_STATS DIALOG 12,0,125,78
CAPTION "Outils Statistiques Box"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,154 @@
/*
* WineCalc (Gr.rc)
*
* Copyright 2006 Dj Apal
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
IDS_COPYRIGHT1, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 5.0. Licensed under LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Backspace"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
IDS_ERR_DIVIDE_BY_ZERO, "<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
IDS_ERR_UNDEFINED, "<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+C", IDM_COPY
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+V", IDM_PASTE
}
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_MODE_STANDARD
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_DIGIT_GROUPING
}
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+C", IDM_COPY
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+V", IDM_PASTE
}
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_MODE_STANDARD
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF5", ID_CALC_NS_HEX
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF6", ID_CALC_NS_DEC
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF7", ID_CALC_NS_OCT
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF2", ID_CALC_MS_DEGREES
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF3", ID_CALC_MS_RADIANS
MENUITEM "Grads\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_DIGIT_GROUPING
}
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+C", IDM_COPY
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+V", IDM_PASTE
}
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_MODE_STANDARD
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF5", ID_CALC_NS_HEX
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF6", ID_CALC_NS_DEC
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF7", ID_CALC_NS_OCT
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF2", ID_CALC_MS_DEGREES
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF3", ID_CALC_MS_RADIANS
MENUITEM "Grads\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_DIGIT_GROUPING
}
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "<22><><EFBFBD><EFBFBD> <20><><EFBFBD> GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "<22><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>;", IDM_WHATS_THIS
}
}
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statistics Box"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,156 @@
/*
* WineCalc (Hu.rc)
*
* Copyright 2003 James Briggs
* Hungarian translation by Adam Medveczky
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Sz<53>mol<6F>g<EFBFBD>p"
IDS_COPYRIGHT1, "Calculator 5.0. Licensed under LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Backspace"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "gy<67>k"
IDS_ERR_INVALID_INPUT, "Hib<69>s bemenet."
IDS_ERR_DIVIDE_BY_ZERO, "Nem tudok null<6C>val osztani."
IDS_ERR_UNDEFINED, "Result of function is undefined."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Szerkeszt<7A>s" {
MENUITEM "&M<>sol<6F>s Ctrl+C", IDM_COPY
MENUITEM "&Beilleszt<7A>s Ctrl+V", IDM_PASTE
}
POPUP "&N<>zet" {
MENUITEM "Alap", IDM_MODE_STANDARD
MENUITEM "Tudom<6F>nyos", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Sz<53>mjegyek csoportos<6F>t<EFBFBD>sa", IDM_DIGIT_GROUPING
}
POPUP "S<>&g<>" {
MENUITEM "&T<>mak<61>r<EFBFBD>k", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Sz<53>mol<6F>g<EFBFBD>p n<>vjegye", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Szerkeszt<7A>s" {
MENUITEM "&M<>sol<6F>s Ctrl+C", IDM_COPY
MENUITEM "&Beilleszt<7A>s Ctrl+V", IDM_PASTE
}
POPUP "&N<>zet" {
MENUITEM "Alap", IDM_MODE_STANDARD
MENUITEM "Tudom<6F>nyos", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hexadecim<69>lis\tF5", ID_CALC_NS_HEX
MENUITEM "Decim<69>lis\tF6", ID_CALC_NS_DEC
MENUITEM "Okt<6B>lis\tF7", ID_CALC_NS_OCT
MENUITEM "Bin<69>ris\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Fok\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radi<64>n\tF3", ID_CALC_MS_RADIANS
MENUITEM "<22>jfok\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "Sz<53>mjegyek csoportos<6F>t<EFBFBD>sa", IDM_DIGIT_GROUPING
}
POPUP "S<>&g<>" {
MENUITEM "&T<>mak<61>r<EFBFBD>k", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Sz<53>mol<6F>g<EFBFBD>p n<>vjegye", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Szerkeszt<7A>s" {
MENUITEM "&M<>sol<6F>s Ctrl+C", IDM_COPY
MENUITEM "&Beilleszt<7A>s Ctrl+V", IDM_PASTE
}
POPUP "&N<>zet" {
MENUITEM "Alap", IDM_MODE_STANDARD
MENUITEM "Tudom<6F>nyos", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hexadecim<69>lis\tF5", ID_CALC_NS_HEX
MENUITEM "Decim<69>lis\tF6", ID_CALC_NS_DEC
MENUITEM "Okt<6B>lis\tF7", ID_CALC_NS_OCT
MENUITEM "Bin<69>ris\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "N<>gyszeres sz<73>\tF12", ID_CALC_WS_QWORD
MENUITEM "Duplasz<73>\tF2", ID_CALC_WS_DWORD
MENUITEM "Sz<53>\tF3", ID_CALC_WS_WORD
MENUITEM "B<>jt\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "Sz<53>mjegyek csoportos<6F>t<EFBFBD>sa", IDM_DIGIT_GROUPING
}
POPUP "S<>&g<>" {
MENUITEM "&T<>mak<61>r<EFBFBD>k", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Sz<53>mol<6F>g<EFBFBD>p n<>vjegye", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "GNU winecalc (sz<73>mol<6F>g<EFBFBD>p) n<>vjegye"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "Mi ez?", IDM_WHATS_THIS
}
}
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statisztika"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,155 @@
/*
* WineCalc (It.rc)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Calculator"
IDS_COPYRIGHT1, "Calculator 5.0. Licensed under LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Backspace"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "Invalid input for function."
IDS_ERR_DIVIDE_BY_ZERO, "Cannot divide by zero."
IDS_ERR_UNDEFINED, "Result of function is undefined."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binary\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Degrees\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radians\tF3", ID_CALC_MS_RADIANS
MENUITEM "Grads\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binary\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "What's This?", IDM_WHATS_THIS
}
}
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "About GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statistics Box"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,202 @@
/*
* WineCalc (Ja.rc)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Japanese resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
#ifdef _WIN32
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
//#pragma code_page(932)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
MAIN_MENU MENU
BEGIN
POPUP "<22>ҏW(&E)"
BEGIN
MENUITEM "<22>R<EFBFBD>s<EFBFBD>[(&C) Ctrl+C", IDM_COPY
MENUITEM "<22>\\<5C><><EFBFBD>t<EFBFBD><74>(&P) Ctrl+V", IDM_PASTE
END
POPUP "<22>\\<5C><>(&V)"
BEGIN
MENUITEM "<22><><EFBFBD>ʂ̓d<CC93><64>", IDM_MODE_STANDARD
MENUITEM "<22>֐<EFBFBD><D690>d<EFBFBD><64>", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>؂<EFBFBD>", IDM_DIGIT_GROUPING
END
POPUP "<22>w<EFBFBD><77><EFBFBD>v(&H)"
BEGIN
MENUITEM "<22>g<EFBFBD>s<EFBFBD>b<EFBFBD>N<EFBFBD>̌<EFBFBD><CC8C><EFBFBD>", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "<22>d<EFBFBD><64><EFBFBD>ɂ‚<C982><C282><EFBFBD>", IDM_ABOUT
END
END
SCIMS_MENU MENU
BEGIN
POPUP "<22>ҏW(&E)"
BEGIN
MENUITEM "<22>R<EFBFBD>s<EFBFBD>[(&C) Ctrl+C", IDM_COPY
MENUITEM "<22>\\<5C><><EFBFBD>t<EFBFBD><74>(&P) Ctrl+V", IDM_PASTE
END
POPUP "<22>\\<5C><>(&V)"
BEGIN
MENUITEM "<22><><EFBFBD>ʂ̓d<CC93><64>", IDM_MODE_STANDARD
MENUITEM "<22>֐<EFBFBD><D690>d<EFBFBD><64>", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "16 <20>i\tF5", ID_CALC_NS_HEX
MENUITEM "10 <20>i\tF6", ID_CALC_NS_DEC
MENUITEM "8 <20>i\tF7", ID_CALC_NS_OCT
MENUITEM "2 <20>i\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Degree\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radian\tF3", ID_CALC_MS_RADIANS
MENUITEM "Grad\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>؂<EFBFBD>", IDM_DIGIT_GROUPING
END
POPUP "<22>w<EFBFBD><77><EFBFBD>v(&H)"
BEGIN
MENUITEM "<22>g<EFBFBD>s<EFBFBD>b<EFBFBD>N<EFBFBD>̌<EFBFBD><CC8C><EFBFBD>", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "<22>d<EFBFBD><64><EFBFBD>ɂ‚<C982><C282><EFBFBD>", IDM_ABOUT
END
END
SCIWS_MENU MENU
BEGIN
POPUP "<22>ҏW(&E)"
BEGIN
MENUITEM "<22>R<EFBFBD>s<EFBFBD>[(&C) Ctrl+C", IDM_COPY
MENUITEM "<22>\\<5C><><EFBFBD>t<EFBFBD><74>(&P) Ctrl+V", IDM_PASTE
END
POPUP "<22>\\<5C><>(&V)"
BEGIN
MENUITEM "<22><><EFBFBD>ʂ̓d<CC93><64>", IDM_MODE_STANDARD
MENUITEM "<22>֐<EFBFBD><D690>d<EFBFBD><64>", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "16 <20>i\tF5", ID_CALC_NS_HEX
MENUITEM "10 <20>i\tF6", ID_CALC_NS_DEC
MENUITEM "8 <20>i\tF7", ID_CALC_NS_OCT
MENUITEM "2 <20>i\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>؂<EFBFBD>", IDM_DIGIT_GROUPING
END
POPUP "<22>w<EFBFBD><77><EFBFBD>v(&H)"
BEGIN
MENUITEM "<22>g<EFBFBD>s<EFBFBD>b<EFBFBD>N<EFBFBD>̌<EFBFBD><CC8C><EFBFBD>", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "<22>d<EFBFBD><64><EFBFBD>ɂ‚<C982><C282><EFBFBD>", IDM_ABOUT
END
END
WHATS_THIS_MENU MENU
BEGIN
POPUP ""
BEGIN
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>͉<EFBFBD><CD89>H", IDM_WHATS_THIS
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
DLG_ABOUT DIALOG 12, 0, 120, 82
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "GNU winecalc <20>ɂ‚<C982><C282><EFBFBD>"
BEGIN
DEFPUSHBUTTON "OK",IDOK,42,60,30,14
END
DLG_STATS DIALOG 12, 0, 125, 78
STYLE DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "<22><><EFBFBD>v<EFBFBD>{<7B>b<EFBFBD>N<EFBFBD>X"
FONT 9, "Tahoma"
BEGIN
DEFPUSHBUTTON "<22>߂<EFBFBD>(&R)",ID_STATS_RET,4,52,25,13,WS_GROUP
PUSHBUTTON "<22><><EFBFBD>[<5B>h(&L)",ID_STATS_LOAD,34,52,25,13,WS_GROUP
PUSHBUTTON "<22>N<EFBFBD><4E><EFBFBD>A(&C)",ID_STATS_CD,64,52,25,13,WS_GROUP
PUSHBUTTON "<22><><EFBFBD>ׂăN<C483><4E><EFBFBD>A(&A)",ID_STATS_CAD,94,52,25,13,WS_GROUP
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_APPNAME "<22>d<EFBFBD><64>"
IDS_BTN_BACKSPACE "Back"
IDS_BTN_CLEAR_ENTRY "CE"
IDS_BTN_CLEAR_ALL "C"
IDS_ERR_INVALID_INPUT "<22><><EFBFBD><EFBFBD><EFBFBD>Ȓl<C892>ł<EFBFBD><C582>B"
IDS_ERR_DIVIDE_BY_ZERO "0 <20>Ŋ<EFBFBD><C58A><EFBFBD>Ƃ͂ł<CD82><C582>܂<EFBFBD><DC82><EFBFBD><EFBFBD>B"
IDS_ERR_UNDEFINED "<22>֐<EFBFBD><D690>̌<EFBFBD><CC8C>ʂ<EFBFBD><CA82><EFBFBD><EFBFBD>`<60><><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82><EFBFBD><EFBFBD>B"
IDS_COPYRIGHT1 "<22>d<EFBFBD><64> 5.0. Licensed under LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_MEM_CLEAR "MC"
IDS_BTN_MEM_RECALL "MR"
IDS_BTN_MEM_STORE "MS"
IDS_BTN_MEM_PLUS "+"
IDS_BTN_MEM_STATUS_M "M"
IDS_BTN_SQRT "<22><>"
END
#endif // Japanese resources
/////////////////////////////////////////////////////////////////////////////

View File

@@ -0,0 +1,155 @@
/*
* WineCalc (Nl.rc)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL //vertaald door Lionel Lowie
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Rekenmachine"
IDS_COPYRIGHT1, "Calculator 5.0. Licensed under LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Backspace"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "Ongeldige invoer voor de functie."
IDS_ERR_DIVIDE_BY_ZERO, "Kan niet delen door nul."
IDS_ERR_UNDEFINED, "Resultaat van de functie is onbepaald."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Bewerken" {
MENUITEM "&Kopi<70>ren Ctrl+C", IDM_COPY
MENUITEM "&Plakken Ctrl+V", IDM_PASTE
}
POPUP "&Beeld" {
MENUITEM "Standaard", IDM_MODE_STANDARD
MENUITEM "Wetenschappelijk", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Cijfergroepering", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help-onderwerpen", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Info", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Bewerken" {
MENUITEM "&Kopi<70>ren Ctrl+C", IDM_COPY
MENUITEM "&Plakken Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standaard", IDM_MODE_STANDARD
MENUITEM "Wetenschappelijk", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimaal\tF6", ID_CALC_NS_DEC
MENUITEM "Octaal\tF7", ID_CALC_NS_OCT
MENUITEM "Binair\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Graden\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radialen\tF3", ID_CALC_MS_RADIANS
MENUITEM "Gradi<64>nten\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "Cijfergroepering", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help-onderwerpen", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Info", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Bewerken" {
MENUITEM "&Kopi<70>ren Ctrl+C", IDM_COPY
MENUITEM "&Plakken Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standaard", IDM_MODE_STANDARD
MENUITEM "Wetenschappelijk", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimaal\tF6", ID_CALC_NS_DEC
MENUITEM "Octaal\tF7", ID_CALC_NS_OCT
MENUITEM "Binair\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "Cijfergroepering", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help-onderwerpen", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Info", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "Wat is dit?", IDM_WHATS_THIS
}
}
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "Over GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statistics Box"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,155 @@
/*
* WineCalc (En.rc)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Kalkulator"
IDS_COPYRIGHT1, "Kalkulator 5.0. Lisensert under LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Tilbake"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "Ugyldig informasjon for funksjon."
IDS_ERR_DIVIDE_BY_ZERO, "Kan ikke dividere p<> null."
IDS_ERR_UNDEFINED, "Resultatet av funksjoner er ubestemt."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Rediger" {
MENUITEM "&Kopier Ctrl+C", IDM_COPY
MENUITEM "&Lim inn Ctrl+V", IDM_PASTE
}
POPUP "&Vis" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Vitenskapelig", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Siffergruppering", IDM_DIGIT_GROUPING
}
POPUP "&Hjelp" {
MENUITEM "Emner i hjelp", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Om kalkulator", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Rediger" {
MENUITEM "&Kopiere Ctrl+C", IDM_COPY
MENUITEM "&Lim inn Ctrl+V", IDM_PASTE
}
POPUP "&Vis" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Vitenskapelig", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Heksadesimalt\tF5", ID_CALC_NS_HEX
MENUITEM "Desimalt\tF6", ID_CALC_NS_DEC
MENUITEM "Oktalt\tF7", ID_CALC_NS_OCT
MENUITEM "Bin<69>rt\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Grader\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radianer\tF3", ID_CALC_MS_RADIANS
MENUITEM "Gradienter\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "Siffergruppering", IDM_DIGIT_GROUPING
}
POPUP "&Hjelp" {
MENUITEM "Emner i hjelp", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Om Kalkulator", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Rediger" {
MENUITEM "&Kopier Ctrl+C", IDM_COPY
MENUITEM "&Lim inn Ctrl+V", IDM_PASTE
}
POPUP "&Vis" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Vitenskapelig", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Heksadesimalt\tF5", ID_CALC_NS_HEX
MENUITEM "Desimal\tF6", ID_CALC_NS_DEC
MENUITEM "Oktalt\tF7", ID_CALC_NS_OCT
MENUITEM "Bin<69>rt\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "Siffergruppering", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Emner i hjelp", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Om Kalkulator", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "Om GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "Hva er dette?", IDM_WHATS_THIS
}
}
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statistics Box"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,155 @@
/*
* WineCalc (Pt.rc)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Calculator"
IDS_COPYRIGHT1, "Calculator 5.0. Licensed under LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Backspace"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "Invalid input for function."
IDS_ERR_DIVIDE_BY_ZERO, "Cannot divide by zero."
IDS_ERR_UNDEFINED, "Result of function is undefined."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binary\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Degrees\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radians\tF3", ID_CALC_MS_RADIANS
MENUITEM "Grads\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binary\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "What's This?", IDM_WHATS_THIS
}
}
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "About GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statistics Box"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,155 @@
/*
* WineCalc (Ru.rc)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Calculator"
IDS_COPYRIGHT1, "Calculator 5.0. Licensed under LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Backspace"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "Invalid input for function."
IDS_ERR_DIVIDE_BY_ZERO, "Cannot divide by zero."
IDS_ERR_UNDEFINED, "Result of function is undefined."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binary\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Degrees\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radians\tF3", ID_CALC_MS_RADIANS
MENUITEM "Grads\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binary\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "What's This?", IDM_WHATS_THIS
}
}
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "About GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statistics Box"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,155 @@
/*
* WineCalc (En.rc)
*
* Copyright 2005 David Nordenberg
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Kalkylatorn"
IDS_COPYRIGHT1, "Kalkylatorn 5.0. Licenserad under LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Backsteg"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "Felaktig indata f<>r funktion."
IDS_ERR_DIVIDE_BY_ZERO, "Kan inte dividera med noll."
IDS_ERR_UNDEFINED, "Funktionens resultat <20>r odefinerat."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Redigera" {
MENUITEM "&Kopiera\tCtrl+C", IDM_COPY
MENUITEM "K&listra in\tCtrl+V", IDM_PASTE
}
POPUP "&Visa" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Vetenskaplig", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Siffergruppering", IDM_DIGIT_GROUPING
}
POPUP "&Hj<48>lp" {
MENUITEM "Hj<48>lpavsnitt", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Om Kalkylatorn", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Redigera" {
MENUITEM "&Kopiera\tCtrl+C", IDM_COPY
MENUITEM "K&listra in\tCtrl+V", IDM_PASTE
}
POPUP "&Visa" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Vetenskaplig", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Oktal\tF7", ID_CALC_NS_OCT
MENUITEM "Bin<69>r\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Grader\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radianer\tF3", ID_CALC_MS_RADIANS
MENUITEM "Gradienter\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "Siffergruppering", IDM_DIGIT_GROUPING
}
POPUP "&Hj<48>lp" {
MENUITEM "Hj<48>lpavsnitt", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Om Kalkylatorn", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Redigera" {
MENUITEM "&Kopiera\tCtrl+C", IDM_COPY
MENUITEM "K&listra in\tCtrl+V", IDM_PASTE
}
POPUP "&Visa" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Vetenskaplig", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Oktal\tF7", ID_CALC_NS_OCT
MENUITEM "Bin<69>r\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "Siffergruppering", IDM_DIGIT_GROUPING
}
POPUP "&Hj<48>lp" {
MENUITEM "Hj<48>lpavsnitt", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "Om Kalkylatorn", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "Om GNU Kalkylatorn (winecalc)"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "Vad <20>r det h<>r?", IDM_WHATS_THIS
}
}
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statistikruta"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,155 @@
/*
* WineCalc (Uk.rc)
*
* Copyright 2006 Artem Reznikov
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
IDS_COPYRIGHT1, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 5.0. ˳<><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "<22><><EFBFBD>-<2D><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Backspace"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
IDS_ERR_DIVIDE_BY_ZERO, "ij<><C4B3><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>."
IDS_ERR_UNDEFINED, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+C", IDM_COPY
MENUITEM "<22><><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD> Ctrl+V", IDM_PASTE
}
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_MODE_STANDARD
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "ʳ<><CAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>", IDM_DIGIT_GROUPING
}
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+C", IDM_COPY
MENUITEM "<22><><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD> Ctrl+V", IDM_PASTE
}
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_MODE_STANDARD
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "س<><D8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Hex)\tF5", ID_CALC_NS_HEX
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Dec)\tF6", ID_CALC_NS_DEC
MENUITEM "³<><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Oct)\tF7", ID_CALC_NS_OCT
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Bin)\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF2", ID_CALC_MS_DEGREES
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tF3", ID_CALC_MS_RADIANS
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "ʳ<><CAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>", IDM_DIGIT_GROUPING
}
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+C", IDM_COPY
MENUITEM "<22><><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD> Ctrl+V", IDM_PASTE
}
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_MODE_STANDARD
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "س<><D8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Hex)\tF5", ID_CALC_NS_HEX
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Dec)\tF6", ID_CALC_NS_DEC
MENUITEM "³<><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Oct)\tF7", ID_CALC_NS_OCT
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Bin)\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "ʳ<><CAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>", IDM_DIGIT_GROUPING
}
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "<22><><EFBFBD> GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "<22><> <20><>?", IDM_WHATS_THIS
}
}
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statistics Box"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -0,0 +1,70 @@
/*
* WineCalc (resource.h)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* menus */
#define IDM_COPY 1001
#define IDM_PASTE 1002
#define IDM_MODE_STANDARD 1003
#define IDM_MODE_SCIENTIFIC 1004
#define IDM_DIGIT_GROUPING 1005
#define IDM_HELP_TOPICS 1006
#define IDM_ABOUT 1007
#define IDM_SEPARATOR1 1008
#define IDM_SEPARATOR2 1009
#define IDM_SEPARATOR3 1010
#define IDM_WHATS_THIS 1011
#define IDI_CALCICON 1050
/* strings */
#define IDS_APPNAME 1100
#define IDS_BTN_BACKSPACE 1101
#define IDS_BTN_CLEAR_ENTRY 1102
#define IDS_BTN_CLEAR_ALL 1103
#define IDS_BTN_MEM_CLEAR 1104
#define IDS_BTN_MEM_RECALL 1105
#define IDS_BTN_MEM_STORE 1106
#define IDS_BTN_MEM_PLUS 1107
#define IDS_BTN_MEM_STATUS_M 1108
#define IDS_BTN_SQRT 1109
#define IDS_ERR_INVALID_INPUT 1120
#define IDS_ERR_DIVIDE_BY_ZERO 1121
#define IDS_ERR_UNDEFINED 1122
#define IDS_COPYRIGHT1 1130
#define IDS_COPYRIGHT2 1131
#define IDS_COPYRIGHT3 1132
#define IDS_COPYRIGHT4 1133
#define IDS_COPYRIGHT5 1134
/* keys */
#define IDV_HELP 103
/* stats dialog */
#define ID_STATS_RET 3000
#define ID_STATS_LOAD 3001
#define ID_STATS_CD 3002
#define ID_STATS_CAD 3003

View File

@@ -0,0 +1,42 @@
/*
* WineCalc (rsrc.rc)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <windows.h>
#include "resource.h"
IDI_CALCICON ICON "calculator.ico"
#include "lang/En.rc"
#include "lang/Cz.rc"
#include "lang/De.rc"
#include "lang/Es.rc"
#include "lang/Fr.rc"
#include "lang/It.rc"
#include "lang/Ja.rc"
#include "lang/Nl.rc"
#include "lang/Pt.rc"
#include "lang/Ru.rc"
#include "lang/Sv.rc"
#include "lang/Hu.rc"
#include "lang/Uk.rc"
#include "lang/Gr.rc"
#include "lang/No.rc"
LANGUAGE LANG_NEUTRAL,SUBLANG_NEUTRAL

View File

@@ -0,0 +1,132 @@
/*
* WineCalc (stats.c)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <stdio.h> // sprintf
#include <windows.h>
#include <tchar.h>
#include "stats.h"
#include "resource.h"
#include "winecalc.h"
HWND hWndListBox;
extern CALC calc;
extern HWND hWndDlgStats;
BOOL CALLBACK StatsDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
HDC hdc;
PAINTSTRUCT ps;
switch( uMsg ) {
case WM_INITDIALOG:
hWndListBox = CreateWindow(
TEXT("LISTBOX"), // pointer to registered class name
TEXT("Listbox"), // pointer to window name
WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_BORDER | LBS_NOINTEGRALHEIGHT, // window style
6, // horizontal position of window
6, // vertical position of window
208, // window width
66, // window height
hDlg, // handle to parent or owner window
NULL, // handle to menu or child-window identifier
NULL, // handle to application instance
NULL // pointer to window-creation data
);
ShowWindow(hWndListBox, SW_SHOW);
SendMessage (hWndListBox, WM_SETFONT, (UINT)GetStockObject(DEFAULT_GUI_FONT), TRUE);
// SetFocus(hWndDlgStats);
return TRUE;
case WM_COMMAND:
switch( LOWORD( wParam ) ) {
case ID_STATS_RET:
SetFocus(GetParent(hDlg));
return 0;
case ID_STATS_LOAD:
{
INT i;
i = (INT) SendMessage(hWndListBox, LB_GETCURSEL, 0, 0);
SendMessage(hWndListBox, LB_GETTEXT, i, (LPARAM)calc.buffer);
calc_buffer_display(&calc);
}
return 0;
case ID_STATS_CD:
{
INT i;
i = (INT) SendMessage(hWndListBox, LB_GETCURSEL, 0, 0);
SendMessage(hWndListBox, LB_DELETESTRING, i, 0);
InvalidateRect(hDlg,NULL,TRUE);
UpdateWindow(hDlg);
}
return 0;
case ID_STATS_CAD:
SendMessage(hWndListBox, LB_RESETCONTENT, 0, 0);
InvalidateRect(hDlg,NULL,TRUE);
UpdateWindow(hDlg);
return 0;
}
break;
case WM_PAINT:
{
TCHAR s[CALC_BUF_SIZE];
int lb_count;
HFONT hFont;
HFONT hFontOrg;
hdc = BeginPaint( hDlg, &ps );
hFont = GetStockObject(DEFAULT_GUI_FONT);
hFontOrg = SelectObject(hdc, hFont);
lb_count = SendMessage(hWndListBox, LB_GETCOUNT, 0, 0);
_stprintf(s, TEXT("n=%d"), lb_count);
SetBkMode(hdc, TRANSPARENT);
TextOut(hdc, 98, 121, s, _tcslen(s));
SelectObject(hdc, hFontOrg);
EndPaint( hDlg, &ps );
return 0;
}
case WM_CLOSE:
hWndDlgStats = 0; // invalidate stats dialog
SendMessage(GetParent(hDlg), WM_CHAR, TEXT('\x13'), 1); // disable stats related calculator buttons
DestroyWindow( hDlg );
return 0;
}
return FALSE;
}

View File

@@ -0,0 +1,24 @@
/*
* WineCalc (stats.h)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
BOOL CALLBACK StatsDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,365 @@
/*
* WineCalc (winecalc.h)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
//////////////////////////////////////////////////////////////////
// numerics are defined here for easier porting
typedef double calcfloat;
#define FMT_DESC_FLOAT TEXT("%g")
#define FMT_DESC_EXP TEXT("%e")
#define CALC_ATOF(x) atof(x)
#define CONST_PI 3.1415926535897932384626433832795
/////////////////////////////////////////////////////////////////
#define CALC_BUF_SIZE 128
// statistics dialog dimensions
#define CALC_STA_X 235
#define CALC_STA_Y 180
// sentinel for differentiating Return from Ctrl+M events
#define NUMBER_OF_THE_BEAST 666
#define CALC_COLOR_BLUE 0
#define CALC_COLOR_RED 1
#define CALC_COLOR_GRAY 2
#define CALC_COLOR_MAGENTA 3
// gray hilite on rectangle owner-drawn controls RGB(CALC_GRAY, CALC_GRAY, CALC_GRAY)
#define CALC_GRAY 132
// count of buttons needing special toggle states depending on number base
#define TOGGLE_COUNT 23
// there are 3 window menus, standard, decimal measurement system and word size menus
#define COUNT_MENUS 3
#define MENU_STD 0
#define MENU_SCIMS 1
#define MENU_SCIWS 2
// count of buttons
#define CALC_BUTTONS_STANDARD 28
#define CALC_BUTTONS_SCIENTIFIC 73
// winecalc window outer dimensions
#define CALC_STANDARD_WIDTH 260
#define CALC_STANDARD_HEIGHT 252
#define CALC_SCIENTIFIC_WIDTH 480
#define CALC_SCIENTIFIC_HEIGHT 310
// winecalc private ids for events
#define ID_CALC_ZERO 0
#define ID_CALC_ONE 1
#define ID_CALC_TWO 2
#define ID_CALC_THREE 3
#define ID_CALC_FOUR 4
#define ID_CALC_FIVE 5
#define ID_CALC_SIX 6
#define ID_CALC_SEVEN 7
#define ID_CALC_EIGHT 8
#define ID_CALC_NINE 9
#define ID_CALC_BACKSPACE 20
#define ID_CALC_CLEAR_ENTRY 21
#define ID_CALC_CLEAR_ALL 22
#define ID_CALC_MEM_CLEAR 23
#define ID_CALC_DIVIDE 24
#define ID_CALC_SQRT 25
#define ID_CALC_MEM_RECALL 26
#define ID_CALC_MULTIPLY 27
#define ID_CALC_PERCENT 28
#define ID_CALC_MEM_STORE 29
#define ID_CALC_MINUS 30
#define ID_CALC_RECIPROCAL 31
#define ID_CALC_MEM_PLUS 32
#define ID_CALC_SIGN 33
#define ID_CALC_DECIMAL 34
#define ID_CALC_PLUS 35
#define ID_CALC_EQUALS 36
#define ID_CALC_STA 37
#define ID_CALC_FE 38
#define ID_CALC_LEFTPAREN 39
#define ID_CALC_RIGHTPAREN 40
#define ID_CALC_MOD 41
#define ID_CALC_AND 42
#define ID_CALC_OR 43
#define ID_CALC_XOR 44
#define ID_CALC_SUM 45
#define ID_CALC_SIN 46
#define ID_CALC_LOG10 47
#define ID_CALC_LSH 48
#define ID_CALC_NOT 49
#define ID_CALC_S 50
#define ID_CALC_COS 52
#define ID_CALC_FACTORIAL 53
#define ID_CALC_INT 54
#define ID_CALC_DAT 55
#define ID_CALC_TAN 56
#define ID_CALC_SQUARE 57
#define ID_CALC_A 58
#define ID_CALC_B 59
#define ID_CALC_C 60
#define ID_CALC_D 61
#define ID_CALC_E 62
#define ID_CALC_F 63
#define ID_CALC_AVE 64
#define ID_CALC_DMS 65
#define ID_CALC_EXP 66
#define ID_CALC_LN 67
#define ID_CALC_PI 68
#define ID_CALC_CUBE 69
#define ID_CALC_POWER 51
// Number System Radio Buttons
#define CALC_NS_COUNT 4
#define ID_CALC_NS_HEX 2000
#define ID_CALC_NS_DEC 2001
#define ID_CALC_NS_OCT 2002
#define ID_CALC_NS_BIN 2003
#define NBASE_DECIMAL 0
#define NBASE_BINARY 1
#define NBASE_OCTAL 2
#define NBASE_HEX 3
#define CALC_NS_OFFSET_X 15
#define CALC_NS_OFFSET_Y 37
#define SZ_RADIO_NS_X 50
#define SZ_RADIO_NS_Y 15
#define CALC_NS_HEX_LEFT 0
#define CALC_NS_HEX_TOP 0
#define CALC_NS_DEC_LEFT 50
#define CALC_NS_DEC_TOP 0
#define CALC_NS_OCT_LEFT 98
#define CALC_NS_OCT_TOP 0
#define CALC_NS_BIN_LEFT 148
#define CALC_NS_BIN_TOP 0
// Measurement System Radio Buttons
#define CALC_MS_COUNT 3
#define ID_CALC_MS_DEGREES 2010
#define ID_CALC_MS_RADIANS 2011
#define ID_CALC_MS_GRADS 2012
#define TRIGMODE_DEGREES 0
#define TRIGMODE_RADIANS 1
#define TRIGMODE_GRADS 2
#define CALC_MS_OFFSET_X 225
#define CALC_MS_OFFSET_Y 37
#define SZ_RADIO_MS_X 75
#define SZ_RADIO_MS_Y 15
#define CALC_MS_DEGREES_LEFT 0
#define CALC_MS_DEGREES_TOP 0
#define CALC_MS_RADIANS_LEFT 82
#define CALC_MS_RADIANS_TOP 0
#define CALC_MS_GRADS_LEFT 162
#define CALC_MS_GRADS_TOP 0
// Inv and Hyp Checkboxes
#define CALC_CB_COUNT 2
#define ID_CALC_CB_INV 2020
#define ID_CALC_CB_HYP 2021
#define WORDSIZE_BYTE 1
#define WORDSIZE_WORD 2
#define WORDSIZE_DWORD 4
#define WORDSIZE_QWORD 8
#define CALC_CB_OFFSET_X 15
#define CALC_CB_OFFSET_Y 58
#define CALC_CB_INV_LEFT 0
#define CALC_CB_INV_TOP 10
#define SZ_RADIO_CB_X 50
#define SZ_RADIO_CB_Y 14
#define CALC_CB_HYP_LEFT 58
#define CALC_CB_HYP_TOP 10
// Word Size Radio Buttons
#define CALC_WS_COUNT 4
#define ID_CALC_WS_QWORD 2030
#define ID_CALC_WS_DWORD 2031
#define ID_CALC_WS_WORD 2032
#define ID_CALC_WS_BYTE 2033
#define CALC_WS_OFFSET_X CALC_MS_OFFSET_X
#define CALC_WS_OFFSET_Y CALC_MS_OFFSET_Y
#define CALC_WS_QWORD_LEFT 0
#define CALC_WS_QWORD_TOP 0
#define CALC_WS_DWORD_LEFT 57
#define CALC_WS_DWORD_TOP 0
#define CALC_WS_WORD_LEFT 120
#define CALC_WS_WORD_TOP 0
#define CALC_WS_BYTE_LEFT 175
#define CALC_WS_BYTE_TOP 0
#define SZ_RADIO_WS_X 50
#define SZ_RADIO_WS_Y 15
// drawing offsets
#define CALC_EDIT_HEIGHT 20
#define SZ_FILLER_X 32
#define SZ_FILLER_Y 30
#define SZ_BIGBTN_X 62
#define SZ_BIGBTN_Y 30
#define SZ_MEDBTN_X 36
#define SZ_MEDBTN_Y 30
#define MARGIN_LEFT 7
#define MARGIN_SMALL_X 3
#define MARGIN_SMALL_Y 3
#define MARGIN_BIG_X 274
#define MARGIN_STANDARD_BIG_X 11
#define MARGIN_BIG_Y 6
#define SZ_SPACER_X 11
// winecalc results display area
#define WDISPLAY_STANDARD_LEFT MARGIN_LEFT + 4
#define WDISPLAY_STANDARD_TOP 5
#define WDISPLAY_STANDARD_RIGHT 244
#define WDISPLAY_STANDARD_BOTTOM 24
#define CALC_STANDARD_MARGIN_TOP 16
#define WDISPLAY_SCIENTIFIC_LEFT MARGIN_LEFT + 4
#define WDISPLAY_SCIENTIFIC_TOP 5
#define WDISPLAY_SCIENTIFIC_RIGHT 465
#define WDISPLAY_SCIENTIFIC_BOTTOM 24
#define CALC_SCIENTIFIC_MARGIN_TOP 44
typedef struct tagCalcBtn {
int id; // private id
HWND hBtn; // button child window handle
TCHAR label[80]; // text on buttonface
int color; // text color
RECT r; // location
int enable; // 1 = control enbabled, 0 = disabled
}
CALCBTN;
typedef struct tagPos {
int x;
int y;
}
POS;
typedef struct tagCalc {
HINSTANCE hInst; // this HINSTANCE
HWND hWnd; // main window's HWND
POS pos;
int numButtons; // standard = 28, scientific = more
TCHAR buffer [CALC_BUF_SIZE]; // current keyboard buffer
TCHAR display[CALC_BUF_SIZE]; // display buffer before output
calcfloat value; // most recent computer value
calcfloat memory; // most recent stored memory value from display buffer
int paren; // current parentheses level
int sciMode; // standard = 1, scientific = 0
int displayMode; // 0 = float, 1 = scientific exponential notation like 1.0e+10
TCHAR oper; // most recent operator pushed
calcfloat operand; // most recent operand pushed
int newenter; // track multiple =
int next; // binary operation flag
int err; // errror status for divide by zero, infinity, etc.
int init; // starting buffer
int digitGrouping; // no separators = 0, separators = 1
int trigMode; // degrees = 0, radians = 1, grads = 2
int numBase; // 10 = decimal, 2 = binary, 8 = octal, 16 = hex
int wordSize; // 1 = byte, 2 = word, 4 = dword, 8 = qword
int invMode; // INV mode 0 = off, 1 = on
int hypMode; // HYP mode 0 = off, 1 = on
int new; // first time 0 = false, 1 = true
CALCBTN cb[80]; // enough buttons for standard or scientific mode
}
CALC;
BOOL CALLBACK AboutDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
LRESULT WINAPI MainProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
void InitLuts(void);
void InitMenus(HINSTANCE hInst);
void DestroyMenus();
void InitCalc (CALC *calc);
void DestroyCalc (CALC *calc);
void calc_buffer_format(CALC *calc);
void calc_buffer_display(CALC *calc);
TCHAR *calc_sep(TCHAR *s);
void DrawCalcText (HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, CALC *calc, int object, TCHAR *s);
void CalcRect (HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, CALC *calc, int object);
void DrawCalcRectSci(HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, CALC *calc, RECT *r);
void DrawCalc (HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, CALC *calc);
void calc_setmenuitem_radio(HMENU hMenu, UINT id);
void show_debug(CALC *calc, TCHAR *title, long wParam, long lParam);
calcfloat calc_atof(const TCHAR *s, int base);
void calc_ftoa(CALC *calc, calcfloat r, TCHAR *buf);
long factorial(long n);
calcfloat calc_convert_to_radians(CALC *calc);
calcfloat calc_convert_from_radians(CALC *calc);

View File

@@ -0,0 +1,8 @@
<group>
<directory name="find">
<xi:include href="find/find.rbuild" />
</directory>
<directory name="more">
<xi:include href="more/more.rbuild" />
</directory>
</group>

View File

@@ -0,0 +1,248 @@
/* find.c */
/* Copyright (C) 1994-2002, Jim Hall <jhall@freedos.org> */
/* Adapted for ReactOS */
/*
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.
This 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.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* This program locates a string in a text file and prints those lines
* that contain the string. Multiple files are clearly separated.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <dir.h>
#include <dos.h>
/* Symbol definition */
#define MAX_STR 1024
/* This function prints out all lines containing a substring. There are some
* conditions that may be passed to the function.
*
* RETURN: If the string was found at least once, returns 1.
* If the string was not found at all, returns 0.
*/
int
find_str (char *sz, FILE *p, int invert_search,
int count_lines, int number_output, int ignore_case)
{
int i, length;
long line_number = 0, total_lines = 0;
char *c, temp_str[MAX_STR], this_line[MAX_STR];
/* Convert to upper if needed */
if (ignore_case)
{
length = strlen (sz);
for (i = 0; i < length; i++)
sz[i] = toupper (sz[i]);
}
/* Scan the file until EOF */
while (fgets (temp_str, MAX_STR, p) != NULL)
{
/* Remove the trailing newline */
length = strlen (temp_str);
if (temp_str[length-1] == '\n')
{
temp_str[length-1] = '\0';
}
/* Increment number of lines */
line_number++;
strcpy (this_line, temp_str);
/* Convert to upper if needed */
if (ignore_case)
{
for (i = 0; i < length; i++)
{
temp_str[i] = toupper (temp_str[i]);
}
}
/* Locate the substring */
/* strstr() returns a pointer to the first occurrence in the
string of the substring */
c = strstr (temp_str, sz);
if ( ((invert_search) ? (c == NULL) : (c != NULL)) )
{
if (!count_lines)
{
if (number_output)
printf ("%ld:", line_number);
/* Print the line of text */
puts (this_line);
}
total_lines++;
} /* long if */
} /* while fgets */
if (count_lines)
{
/* Just show num. lines that contain the string */
printf ("%ld\n", total_lines);
}
/* RETURN: If the string was found at least once, returns 1.
* If the string was not found at all, returns 0.
*/
return (total_lines > 0 ? 1 : 0);
}
/* Show usage */
void
usage (void)
{
fprintf (stderr, "FIND: Prints all lines of a file that contain a string\n");
fprintf (stderr, "FIND [ /C ] [ /I ] [ /N ] [ /V ] \"string\" [ file... ]\n");
fprintf (stderr, " /C Count the number of lines that contain string\n");
fprintf (stderr, " /I Ignore case\n");
fprintf (stderr, " /N Number the displayed lines, starting at 1\n");
fprintf (stderr, " /V Print lines that do not contain the string\n");
}
/* Main program */
int
main (int argc, char **argv)
{
char *opt, *needle = NULL;
int ret = 0;
int invert_search = 0; /* flag to invert the search */
int count_lines = 0; /* flag to whether/not count lines */
int number_output = 0; /* flag to print line numbers */
int ignore_case = 0; /* flag to be case insensitive */
FILE *pfile; /* file pointer */
int hfind; /* search handle */
struct _finddata_t finddata; /* _findfirst, filenext block */
/* Scan the command line */
while ((--argc) && (needle == NULL))
{
if (*(opt = *++argv) == '/')
{
switch (opt[1])
{
case 'c':
case 'C': /* Count */
count_lines = 1;
break;
case 'i':
case 'I': /* Ignore */
ignore_case = 1;
break;
case 'n':
case 'N': /* Number */
number_output = 1;
break;
case 'v':
case 'V': /* Not with */
invert_search = 1;
break;
default:
usage ();
exit (2); /* syntax error .. return error 2 */
break;
}
}
else
{
/* Get the string */
if (needle == NULL)
{
/* Assign the string to find */
needle = *argv;
}
}
}
/* Check for search string */
if (needle == NULL)
{
/* No string? */
usage ();
exit (1);
}
/* Scan the files for the string */
if (argc == 0)
{
ret = find_str (needle, stdin, invert_search, count_lines,
number_output, ignore_case);
}
while (--argc >= 0)
{
hfind = _findfirst (*++argv, &finddata);
if (hfind < 0)
{
/* We were not able to find a file. Display a message and
set the exit status. */
fprintf (stderr, "FIND: %s: No such file\n", *argv);
}
else
{
/* repeat find next file to match the filemask */
do
{
/* We have found a file, so try to open it */
if ((pfile = fopen (finddata.name, "r")) != NULL)
{
printf ("---------------- %s\n", finddata.name);
ret = find_str (needle, pfile, invert_search, count_lines,
number_output, ignore_case);
fclose (pfile);
}
else
{
fprintf (stderr, "FIND: %s: Cannot open file\n",
finddata.name);
}
}
while (_findnext(hfind, &finddata) > 0);
}
_findclose(hfind);
} /* for each argv */
/* RETURN: If the string was found at least once, returns 0.
* If the string was not found at all, returns 1.
* (Note that find_str.c returns the exact opposite values.)
*/
exit ( (ret ? 0 : 1) );
}

View File

@@ -0,0 +1,8 @@
<module name="find" type="win32cui" installbase="system32" installname="find.exe">
<define name="__USE_W32API" />
<define name="_WIN32_IE">0x0501</define>
<define name="_WIN32_WINNT">0x0501</define>
<library>kernel32</library>
<file>find.c</file>
<file>find.rc</file>
</module>

View File

@@ -0,0 +1,6 @@
/* $Id$ */
#define REACTOS_STR_FILE_DESCRIPTION "W32 find command\0"
#define REACTOS_STR_INTERNAL_NAME "find\0"
#define REACTOS_STR_ORIGINAL_FILENAME "find.exe\0"
#include <reactos/version.rc>

View File

@@ -0,0 +1,168 @@
/*
* MORE.C - external command.
*
* clone from 4nt more command
*
* 26 Sep 1999 - Paolo Pantaleo <paolopan@freemail.it>
* started
* Oct 2003 - Timothy Schepens <tischepe at fastmail dot fm>
* use window size instead of buffer size.
*/
#include <windows.h>
#include <malloc.h>
#include <tchar.h>
DWORD len;
LPTSTR msg = _T("--- continue ---");
/*handle for file and console*/
HANDLE hStdIn;
HANDLE hStdOut;
HANDLE hStdErr;
HANDLE hKeyboard;
static VOID
GetScreenSize (PSHORT maxx, PSHORT maxy)
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo (hStdOut, &csbi);
*maxx = (csbi.srWindow.Right - csbi.srWindow.Left) + 1;
*maxy = (csbi.srWindow.Bottom - csbi.srWindow.Top) - 4;
}
static
VOID ConOutPuts (LPTSTR szText)
{
DWORD dwWritten;
WriteFile (GetStdHandle (STD_OUTPUT_HANDLE), szText, _tcslen(szText), &dwWritten, NULL);
WriteFile (GetStdHandle (STD_OUTPUT_HANDLE), "\n", 1, &dwWritten, NULL);
}
static VOID
ConInKey (VOID)
{
INPUT_RECORD ir;
DWORD dwRead;
do
{
ReadConsoleInput (hKeyboard, &ir, 1, &dwRead);
if ((ir.EventType == KEY_EVENT) &&
(ir.Event.KeyEvent.bKeyDown == TRUE))
return;
}
while (TRUE);
}
static VOID
WaitForKey (VOID)
{
DWORD dwWritten;
WriteFile (hStdErr,msg , len, &dwWritten, NULL);
ConInKey();
WriteFile (hStdErr, _T("\n"), 1, &dwWritten, NULL);
// FlushConsoleInputBuffer (hConsoleIn);
}
//INT CommandMore (LPTSTR cmd, LPTSTR param)
int main (int argc, char **argv)
{
SHORT maxx,maxy;
SHORT line_count=0,ch_count=0;
INT i, last;
HANDLE hFile = INVALID_HANDLE_VALUE;
TCHAR szFullPath[MAX_PATH];
/*reading/writing buffer*/
TCHAR *buff;
/*bytes written by WriteFile and ReadFile*/
DWORD dwRead,dwWritten;
/*ReadFile() return value*/
BOOL bRet;
len = _tcslen (msg);
hStdIn = GetStdHandle(STD_INPUT_HANDLE);
hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
hStdErr = GetStdHandle(STD_ERROR_HANDLE);
if (argc > 1 && _tcsncmp (argv[1], _T("/?"), 2) == 0)
{
ConOutPuts(_T("Help text still missing!!"));
return 0;
}
hKeyboard = CreateFile (_T("CONIN$"), GENERIC_READ,
0,NULL,OPEN_ALWAYS,0,0);
GetScreenSize(&maxx,&maxy);
buff=malloc(4096);
FlushConsoleInputBuffer (hKeyboard);
if(argc > 1)
{
GetFullPathName(argv[1], MAX_PATH, szFullPath, NULL);
hFile = CreateFile (szFullPath, GENERIC_READ,
0,NULL,OPEN_ALWAYS,0,0);
}
do
{
if(hFile != INVALID_HANDLE_VALUE)
{
bRet = ReadFile(hFile,buff,4096,&dwRead,NULL);
}
else
{
bRet = ReadFile(hStdIn,buff,4096,&dwRead,NULL);
}
for(last=i=0;i<dwRead && bRet;i++)
{
ch_count++;
if(buff[i] == _T('\n') || ch_count == maxx)
{
ch_count=0;
line_count++;
if (line_count == maxy)
{
line_count = 0;
WriteFile(hStdOut,&buff[last], i-last+1, &dwWritten, NULL);
last=i+1;
FlushFileBuffers (hStdOut);
WaitForKey ();
}
}
}
if (last<dwRead && bRet)
WriteFile(hStdOut,&buff[last], dwRead-last, &dwWritten, NULL);
}
while(dwRead>0 && bRet);
free (buff);
CloseHandle (hKeyboard);
CloseHandle (hFile);
return 0;
}
/* EOF */

View File

@@ -0,0 +1,8 @@
<module name="more" type="win32cui" installbase="system32" installname="more.exe">
<define name="__USE_W32API" />
<define name="_WIN32_IE">0x0501</define>
<define name="_WIN32_WINNT">0x0501</define>
<library>kernel32</library>
<file>more.c</file>
<file>more.rc</file>
</module>

View File

@@ -0,0 +1,6 @@
/* $Id$ */
#define REACTOS_STR_FILE_DESCRIPTION "W32 more command\0"
#define REACTOS_STR_INTERNAL_NAME "more\0"
#define REACTOS_STR_ORIGINAL_FILENAME "more.exe\0"
#include <reactos/version.rc>

View File

@@ -0,0 +1,434 @@
/*
* ReactOS
* Copyright (C) 2004 ReactOS Team
* Copyright (C) 2004 GkWare e.K.
*
* 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.
*
* This 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id$
*
* PROJECT: ReactOS System Control Panel
* FILE: lib/cpl/system/control.c
* PURPOSE: ReactOS System Control Panel
* PROGRAMMER: Gero Kuehn (reactos.filter@gkware.com)
* UPDATE HISTORY:
* 06-13-2004 Created
*/
#include <windows.h>
#include <commctrl.h>
#include <cpl.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <tchar.h>
#include "resource.h"
//#define CONTROL_DEBUG_ENABLE
#ifdef CONTROL_DEBUG_ENABLE
#define CTL_DEBUG(x) dbgprint x
#else
#define CTL_DEBUG(x)
#endif
#define MYWNDCLASS _T("CTLPANELCLASS")
typedef LONG (CALLBACK *CPLAPPLETFUNC)(HWND hwndCPL, UINT uMsg, LPARAM lParam1, LPARAM lParam2);
typedef struct CPLLISTENTRY
{
TCHAR pszPath[MAX_PATH];
HMODULE hDll;
CPLAPPLETFUNC pFunc;
CPLINFO CplInfo;
int nIndex;
} CPLLISTENTRY, *PCPLLISTENTRY;
HWND hListView;
HINSTANCE hInst;
HWND hMainWnd;
DEVMODE pDevMode;
VOID dbgprint(TCHAR *format,...)
{
TCHAR buf[1000];
va_list va;
va_start(va,format);
_vstprintf(buf,format,va);
OutputDebugString(buf);
va_end(va);
}
VOID PopulateCPLList(HWND hLisCtrl)
{
WIN32_FIND_DATA fd;
HANDLE hFind;
TCHAR pszSearchPath[MAX_PATH];
HIMAGELIST hImgListSmall;
HIMAGELIST hImgListLarge;
int ColorDepth;
HMODULE hDll;
CPLAPPLETFUNC pFunc;
TCHAR pszPath[MAX_PATH];
/* Icon drawing mode */
pDevMode.dmSize = sizeof(DEVMODE);
pDevMode.dmDriverExtra = 0;
EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&pDevMode);
switch (pDevMode.dmBitsPerPel)
{
case 32: ColorDepth = ILC_COLOR32; break;
case 24: ColorDepth = ILC_COLOR24; break;
case 16: ColorDepth = ILC_COLOR16; break;
case 8: ColorDepth = ILC_COLOR8; break;
case 4: ColorDepth = ILC_COLOR4; break;
default: ColorDepth = ILC_COLOR; break;
}
hImgListSmall = ImageList_Create(16,16,ColorDepth | ILC_MASK,5,5);
hImgListLarge = ImageList_Create(32,32,ColorDepth | ILC_MASK,5,5);
GetSystemDirectory(pszSearchPath,MAX_PATH);
_tcscat(pszSearchPath,_T("\\*.cpl"));
hFind = FindFirstFile(pszSearchPath,&fd);
while (hFind != INVALID_HANDLE_VALUE)
{
PCPLLISTENTRY pEntry;
CTL_DEBUG((_T("Found %s\r\n"), fd.cFileName));
_tcscpy(pszPath, pszSearchPath);
*_tcsrchr(pszPath, '\\')=0;
_tcscat(pszPath, _T("\\"));
_tcscat(pszPath, fd.cFileName);
hDll = LoadLibrary(pszPath);
CTL_DEBUG((_T("Handle %08X\r\n"), hDll));
pFunc = (CPLAPPLETFUNC)GetProcAddress(hDll, "CPlApplet");
CTL_DEBUG((_T("CPLFunc %08X\r\n"), pFunc));
if (pFunc && pFunc(hLisCtrl, CPL_INIT, 0, 0))
{
UINT i, uPanelCount;
uPanelCount = (UINT)pFunc(hLisCtrl, CPL_GETCOUNT, 0, 0);
for (i = 0; i < uPanelCount; i++)
{
HICON hIcon;
TCHAR Name[MAX_PATH];
int index;
pEntry = (PCPLLISTENTRY)malloc(sizeof(CPLLISTENTRY));
if (pEntry == NULL)
return;
memset(pEntry, 0, sizeof(CPLLISTENTRY));
pEntry->hDll = hDll;
pEntry->pFunc = pFunc;
_tcscpy(pEntry->pszPath, pszPath);
pEntry->pFunc(hLisCtrl, CPL_INQUIRE, (LPARAM)i, (LPARAM)&pEntry->CplInfo);
hIcon = LoadImage(pEntry->hDll,MAKEINTRESOURCE(pEntry->CplInfo.idIcon),IMAGE_ICON,16,16,LR_DEFAULTCOLOR);
index = ImageList_AddIcon(hImgListSmall,hIcon);
DestroyIcon(hIcon);
hIcon = LoadImage(pEntry->hDll,MAKEINTRESOURCE(pEntry->CplInfo.idIcon),IMAGE_ICON,32,32,LR_DEFAULTCOLOR);
ImageList_AddIcon(hImgListLarge,hIcon);
DestroyIcon(hIcon);
if (LoadString(pEntry->hDll, pEntry->CplInfo.idName, Name, MAX_PATH))
{
LV_ITEM lvi;
memset(&lvi,0x00,sizeof(lvi));
lvi.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
lvi.pszText = Name;
lvi.state = 0;
lvi.iImage = index;
lvi.lParam = (LPARAM)pEntry;
pEntry->nIndex = ListView_InsertItem(hLisCtrl,&lvi);
if (LoadString(pEntry->hDll, pEntry->CplInfo.idInfo, Name, MAX_PATH))
ListView_SetItemText(hLisCtrl, pEntry->nIndex, 1, Name);
}
}
}
if (!FindNextFile(hFind,&fd))
hFind = INVALID_HANDLE_VALUE;
}
(void)ListView_SetImageList(hLisCtrl,hImgListSmall,LVSIL_SMALL);
(void)ListView_SetImageList(hLisCtrl,hImgListLarge,LVSIL_NORMAL);
}
LRESULT CALLBACK MyWindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch (uMsg)
{
case WM_CREATE:
{
RECT rect;
LV_COLUMN column;
GetClientRect(hWnd,&rect);
hListView = CreateWindow(WC_LISTVIEW,_T(""),LVS_REPORT | LVS_ALIGNLEFT | LVS_SORTASCENDING | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_VISIBLE | WS_CHILD | WS_TABSTOP,0,0,rect.right ,rect.bottom,hWnd,NULL,hInst,0);
CTL_DEBUG((_T("Listview Window %08X\r\n"),hListView));
memset(&column,0x00,sizeof(column));
column.mask = LVCF_FMT | LVCF_WIDTH | LVCF_SUBITEM | LVCF_TEXT;
column.fmt = LVCFMT_LEFT;
column.cx = (rect.right - rect.left) / 3;
column.iSubItem = 0;
column.pszText = _T("Name");
(void)ListView_InsertColumn(hListView,0,&column);
column.cx = (rect.right - rect.left) - ((rect.right - rect.left) / 3) - 1;
column.iSubItem = 1;
column.pszText = _T("Comment");
(void)ListView_InsertColumn(hListView,1,&column);
PopulateCPLList(hListView);
(void)ListView_SetColumnWidth(hListView,2,LVSCW_AUTOSIZE_USEHEADER);
(void)ListView_Update(hListView,0);
SetFocus(hListView);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_SIZE:
{
RECT rect;
GetClientRect(hWnd,&rect);
MoveWindow(hListView,0,0,rect.right,rect.bottom,TRUE);
}
break;
case WM_NOTIFY:
{
NMHDR *phdr;
phdr = (NMHDR*)lParam;
switch(phdr->code)
{
case NM_RETURN:
case NM_DBLCLK:
{
int nSelect;
LV_ITEM lvi;
PCPLLISTENTRY pEntry;
nSelect=SendMessage(hListView,LVM_GETNEXTITEM,(WPARAM)-1,LVNI_FOCUSED);
if (nSelect==-1)
{
/* no items */
MessageBox(hWnd,_T("No Items in ListView"),_T("Error"),MB_OK|MB_ICONINFORMATION);
break;
}
CTL_DEBUG((_T("Select %d\r\n"),nSelect));
memset(&lvi,0x00,sizeof(lvi));
lvi.iItem = nSelect;
lvi.mask = LVIF_PARAM;
(void)ListView_GetItem(hListView,&lvi);
pEntry = (PCPLLISTENTRY)lvi.lParam;
CTL_DEBUG((_T("Listview DblClk Entry %08X\r\n"),pEntry));
if (pEntry)
{
CTL_DEBUG((_T("Listview DblClk Entry Func %08X\r\n"),pEntry->pFunc));
}
if (pEntry && pEntry->pFunc)
pEntry->pFunc(hListView,CPL_DBLCLK,pEntry->CplInfo.lData,0);
}
}
}
break;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDM_LARGEICONS:
SetWindowLong(hListView,GWL_STYLE,LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_VISIBLE | WS_CHILD|WS_BORDER|WS_TABSTOP);
break;
case IDM_SMALLICONS:
SetWindowLong(hListView,GWL_STYLE,LVS_SMALLICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_VISIBLE | WS_CHILD|WS_BORDER|WS_TABSTOP);
break;
case IDM_LIST:
SetWindowLong(hListView,GWL_STYLE,LVS_LIST | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_VISIBLE | WS_CHILD|WS_BORDER|WS_TABSTOP);
break;
case IDM_DETAILS:
SetWindowLong(hListView,GWL_STYLE,LVS_REPORT | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_VISIBLE | WS_CHILD|WS_BORDER|WS_TABSTOP);
break;
case IDM_CLOSE:
DestroyWindow(hWnd);
break;
case IDM_ABOUT:
MessageBox(hWnd,_T("Simple Control Panel (not Shell-namespace based)\rCopyright 2004 GkWare e.K.\rhttp://www.gkware.com\rReleased under the GPL"),_T("About the Control Panel"),MB_OK | MB_ICONINFORMATION);
break;
}
break;
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
return 0;
}
static INT
RunControlPanelWindow(int nCmdShow)
{
MSG msg;
WNDCLASS wc;
memset(&wc,0x00,sizeof(wc));
wc.hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_MAINICON));
wc.lpszClassName = MYWNDCLASS;
wc.lpszMenuName = _T("MAINMENU");
wc.lpfnWndProc = MyWindowProc;
RegisterClass(&wc);
InitCommonControls();
hMainWnd = CreateWindowEx(WS_EX_CLIENTEDGE,
MYWNDCLASS,
_T("Control Panel"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
LoadMenu(hInst, MAKEINTRESOURCE(IDM_MAINMENU)),
hInst,
0);
if (!hMainWnd)
{
CTL_DEBUG((_T("Unable to create window\r\n")));
return -1;
}
ShowWindow(hMainWnd, nCmdShow);
while (GetMessage(&msg, 0, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
static INT
RunControlPanel(LPCTSTR lpName, UINT uIndex)
{
CPLINFO CplInfo;
HMODULE hDll;
CPLAPPLETFUNC pFunc;
UINT uPanelCount;
hDll = LoadLibrary(lpName);
if (hDll == 0)
{
return -1;
}
CTL_DEBUG((_T("Handle %08X\r\n"), hDll));
pFunc = (CPLAPPLETFUNC)GetProcAddress(hDll, "CPlApplet");
if (pFunc == NULL)
{
FreeLibrary(hDll);
return -1;
}
CTL_DEBUG((_T("CPLFunc %08X\r\n"), pFunc));
if (!pFunc(NULL, CPL_INIT, 0, 0))
{
FreeLibrary(hDll);
return -1;
}
uPanelCount = (UINT)pFunc(NULL, CPL_GETCOUNT, 0, 0);
if (uIndex >= uPanelCount)
{
FreeLibrary(hDll);
return -1;
}
pFunc(NULL, CPL_INQUIRE, (LPARAM)uIndex, (LPARAM)&CplInfo);
pFunc(NULL, CPL_DBLCLK, CplInfo.lData, 0);
FreeLibrary(hDll);
return 0;
}
int WINAPI
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
LPTSTR lpCommandLine;
LPTSTR lpParam;
hInst = hInstance;
CTL_DEBUG((_T("My Control Panel\r\n")));
lpCommandLine = GetCommandLine();
CTL_DEBUG((_T("CommandLine: %s\n"), lpCommandLine));
lpParam = _tcschr(lpCommandLine, _T(' '));
if (lpParam == NULL)
{
/* No argument on the command line */
return RunControlPanelWindow(nCmdShow);
}
lpParam++;
if (_tcsicmp(lpParam, _T("desktop")) == 0)
{
return RunControlPanel(_T("desk.cpl"), 0);
}
else if (_tcsicmp(lpParam, _T("date/time")) == 0)
{
return RunControlPanel(_T("timedate.cpl"), 0);
}
else if (_tcsicmp(lpParam, _T("international")) == 0)
{
return RunControlPanel(_T("intl.cpl"), 0);
}
else if (_tcsicmp(lpParam, _T("mouse")) == 0)
{
return RunControlPanel(_T("main.cpl"), 0);
}
else if (_tcsicmp(lpParam, _T("keyboard")) == 0)
{
return RunControlPanel(_T("main.cpl"), 1);
}
return 0;
}

View File

@@ -0,0 +1,137 @@
# Microsoft Developer Studio Project File - Name="control" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=control - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "control.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "control.mak" CFG="control - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "control - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "control - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "control - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /I "../../../" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /d "NDEBUG" /d "MS_COMPILER"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo /subsystem:windows /machine:I386
# Begin Custom Build
TargetDir=.\Release
TargetName=control
InputPath=.\Release\control.exe
InputName=control
SOURCE="$(InputPath)"
"C:\reactos\reactos\$(InputName).EXE" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
copy $(TargetDir)\$(TargetName).EXE C:\reactos\reactos
# End Custom Build
!ELSEIF "$(CFG)" == "control - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /d "_DEBUG" /d "MS_COMPILER"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# Begin Custom Build
TargetDir=.\Debug
TargetName=control
InputPath=.\Debug\control.exe
InputName=control
SOURCE="$(InputPath)"
"C:\reactos\reactos\$(InputName).EXE" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
copy $(TargetDir)\$(TargetName).EXE C:\reactos\reactos
# End Custom Build
!ENDIF
# Begin Target
# Name "control - Win32 Release"
# Name "control - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\control.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\config.ico
# End Source File
# Begin Source File
SOURCE=.\control.rc
# End Source File
# End Group
# End Target
# End Project

View File

@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "control"=.\control.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

View File

@@ -0,0 +1,14 @@
<module name="control" type="win32gui" baseaddress="${BASEADDRESS_CONTROL}" installbase="system32" installname="control.exe">
<include base="control">.</include>
<define name="UNICODE" />
<define name="_UNICODE" />
<define name="__REACTOS__" />
<define name="__USE_W32API" />
<define name="_WIN32_IE">0x600</define>
<define name="_WIN32_WINNT">0x501</define>
<library>kernel32</library>
<library>user32</library>
<library>comctl32</library>
<file>control.c</file>
<file>control.rc</file>
</module>

View File

@@ -0,0 +1,28 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#include <reactos/resource.h>
#include <windows.h>
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS System Control Panel\0"
#define REACTOS_STR_INTERNAL_NAME "control\0"
#define REACTOS_STR_ORIGINAL_FILENAME "control.exe\0"
#ifndef MS_COMPILER
#include <reactos/version.rc>
#else
#include <../../../include/reactos/version.rc>
#endif
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_MAINICON ICON DISCARDABLE "resources/config.ico"
/////////////////////////////////////////////////////////////////////////////
#include "rsrc.rc"

View File

@@ -0,0 +1,28 @@
// Czech language resource file (potapnik, 2005-04-30)
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Soubor"
BEGIN
MENUITEM "&Zav<61><76>t", IDM_CLOSE
END
POPUP "&Zobrazen<65>"
BEGIN
MENUITEM "&Velk<6C> ikony", IDM_LARGEICONS
MENUITEM "&Mal<61> ikony", IDM_SMALLICONS
MENUITEM "&Seznam", IDM_LIST
MENUITEM "&Detaily", IDM_DETAILS
END
POPUP "&N<>pov<6F>da"
BEGIN
MENUITEM "&O aplikaci...", IDM_ABOUT
END
END

View File

@@ -0,0 +1,28 @@
// German language resource file (frik85, 2005-03-08)
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Datei"
BEGIN
MENUITEM "&Beenden", IDM_CLOSE
END
POPUP "&Ansicht"
BEGIN
MENUITEM "Gro<72>e Symbole", IDM_LARGEICONS
MENUITEM "Kleine Symbole", IDM_SMALLICONS
MENUITEM "Liste", IDM_LIST
MENUITEM "Details", IDM_DETAILS
END
POPUP "&?"
BEGIN
MENUITEM "Inf&o", IDM_ABOUT
END
END

View File

@@ -0,0 +1,26 @@
// Danish language resource file (Thomas Larsen, 2005-03-11)
LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Fil"
BEGIN
MENUITEM "&Luk", IDM_CLOSE
END
POPUP "&Vis"
BEGIN
MENUITEM "Store Ikoner", IDM_LARGEICONS
MENUITEM "Sm<53> Ikoner", IDM_SMALLICONS
MENUITEM "Liste", IDM_LIST
MENUITEM "Detaljer", IDM_DETAILS
END
POPUP "Hj<48>lp"
BEGIN
MENUITEM "Om", IDM_ABOUT
END
END

View File

@@ -0,0 +1,28 @@
// English language resource file (frik85, 2005-03-08)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&Close", IDM_CLOSE
END
POPUP "&View"
BEGIN
MENUITEM "Large Icons", IDM_LARGEICONS
MENUITEM "Small Icons", IDM_SMALLICONS
MENUITEM "List", IDM_LIST
MENUITEM "Details", IDM_DETAILS
END
POPUP "Help"
BEGIN
MENUITEM "About", IDM_ABOUT
END
END

View File

@@ -0,0 +1,32 @@
/*
*Spanish Language resource file
*ReactOs (c) 2005 Samuel Serapi<70>n Vega
*/
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Archivo"
BEGIN
MENUITEM "&Cerrar", IDM_CLOSE
END
POPUP "&View"
BEGIN
MENUITEM "Iconos Grandes", IDM_LARGEICONS
MENUITEM "Iconos Peque<75>os", IDM_SMALLICONS
MENUITEM "Lista", IDM_LIST
MENUITEM "Detalles", IDM_DETAILS
END
POPUP "Ayuda"
BEGIN
MENUITEM "Sobre", IDM_ABOUT
END
END

View File

@@ -0,0 +1,28 @@
// English language resource file (frik85, 2005-03-08)
LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Tiedosto"
BEGIN
MENUITEM "&Sulje", IDM_CLOSE
END
POPUP "&N<>yt<79>"
BEGIN
MENUITEM "Suuret kuvakkeet", IDM_LARGEICONS
MENUITEM "Pienet kuvakkeet", IDM_SMALLICONS
MENUITEM "Luettelo", IDM_LIST
MENUITEM "Tiedot", IDM_DETAILS
END
POPUP "Ohje"
BEGIN
MENUITEM "Tietoja", IDM_ABOUT
END
END

View File

@@ -0,0 +1,28 @@
// Greek language resource file (Dj_Apal<61>, 2005-11-14)
LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
BEGIN
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_CLOSE
END
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
BEGIN
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_LARGEICONS
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_SMALLICONS
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>", IDM_LIST
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_DETAILS
END
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
BEGIN
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_ABOUT
END
END

View File

@@ -0,0 +1,28 @@
// Hungarian language resource file (talley, 2005-10-12)
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&F<>jl"
BEGIN
MENUITEM "&Bez<65>r<EFBFBD>s", IDM_CLOSE
END
POPUP "&N<>zet"
BEGIN
MENUITEM "Nagy ikonok", IDM_LARGEICONS
MENUITEM "Kis ikonok", IDM_SMALLICONS
MENUITEM "Lista", IDM_LIST
MENUITEM "R<>szletek", IDM_DETAILS
END
POPUP "S<>g<EFBFBD>"
BEGIN
MENUITEM "N<>vjegy", IDM_ABOUT
END
END

View File

@@ -0,0 +1,28 @@
// Japanese language resource file
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "<22>t<EFBFBD>@<40>C<EFBFBD><43>(&F)"
BEGIN
MENUITEM "<22>‚<EFBFBD><C282><EFBFBD>(&C)", IDM_CLOSE
END
POPUP "<22>\\<5C><>(&V)"
BEGIN
MENUITEM "<22><EFBFBD><E582AB><EFBFBD>A<EFBFBD>C<EFBFBD>R<EFBFBD><52>", IDM_LARGEICONS
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>C<EFBFBD>R<EFBFBD><52>", IDM_SMALLICONS
MENUITEM "<22>ꗗ", IDM_LIST
MENUITEM "<22>ڍ<EFBFBD>", IDM_DETAILS
END
POPUP "<22>w<EFBFBD><77><EFBFBD>v"
BEGIN
MENUITEM "About", IDM_ABOUT
END
END

View File

@@ -0,0 +1,29 @@
// Dutch language resource file (frik85, 2005-03-08)
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL //vertaald door Lionel Lowie
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Bestand"
BEGIN
MENUITEM "&Sluiten", IDM_CLOSE
END
POPUP "Beel&d"
BEGIN
MENUITEM "&Grote pictogrammen", IDM_LARGEICONS
MENUITEM "&Kleine pictogrammen", IDM_SMALLICONS
MENUITEM "&Lijstweergave", IDM_LIST
MENUITEM "&Details", IDM_DETAILS
END
POPUP "Help"
BEGIN
MENUITEM "&Info", IDM_ABOUT
END
END

View File

@@ -0,0 +1,33 @@
/*
* PROJECT: ReactOS Control Application
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/applications/control/No.rc
* PURPOSE: Norwegian translation
* TRANSLATOR: LMH1
*
*/
LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Fil"
BEGIN
MENUITEM "&Avslutt", IDM_CLOSE
END
POPUP "&Vis"
BEGIN
MENUITEM "St<53>rre Ikoner", IDM_LARGEICONS
MENUITEM "Mindre Ikoner", IDM_SMALLICONS
MENUITEM "Liste", IDM_LIST
MENUITEM "Detaljer", IDM_DETAILS
END
POPUP "Hjelp"
BEGIN
MENUITEM "Om", IDM_ABOUT
END
END

View File

@@ -0,0 +1,28 @@
// Polish language resource file (Sebastian Gasiorek, 2005-07-06)
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Plik"
BEGIN
MENUITEM "&Zamknij", IDM_CLOSE
END
POPUP "&Widok"
BEGIN
MENUITEM "Du<44>e ikony", IDM_LARGEICONS
MENUITEM "Ma<4D>e ikony", IDM_SMALLICONS
MENUITEM "Lista", IDM_LIST
MENUITEM "Szczeg<65><67>y", IDM_DETAILS
END
POPUP "Pomoc"
BEGIN
MENUITEM "O programie", IDM_ABOUT
END
END

View File

@@ -0,0 +1,27 @@
// Russian language resource file (unC0Rr, 2005-03-11)
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&<26><><EFBFBD><EFBFBD>"
BEGIN
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD>", IDM_CLOSE
END
POPUP "&<26><><EFBFBD>"
BEGIN
MENUITEM "<22><>&<26><><EFBFBD><EFBFBD>", IDM_LARGEICONS
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_SMALLICONS
MENUITEM "<22><><EFBFBD><EFBFBD>&<26><>", IDM_LIST
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_DETAILS
END
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
BEGIN
MENUITEM "&<26> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_ABOUT
END
END

View File

@@ -0,0 +1,28 @@
// Swedish resources by Andreas Bjerkeholt 2005-04-28
LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Arkiv"
BEGIN
MENUITEM "&St<53>ng", IDM_CLOSE
END
POPUP "&Visa"
BEGIN
MENUITEM "Stora ikoner", IDM_LARGEICONS
MENUITEM "Sm<53> ikoner", IDM_SMALLICONS
MENUITEM "Lista", IDM_LIST
MENUITEM "Detaljerad lista", IDM_DETAILS
END
POPUP "Hj<48>lp"
BEGIN
MENUITEM "Om", IDM_ABOUT
END
END

View File

@@ -0,0 +1,34 @@
/*
* PROJECT: ReactOS System Control Panel
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/applications/control/Uk.rc
* PURPOSE: Ukraianian Language File for ReactOS System Control Panel
* PROGRAMMERS: temarez
*/
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&<26><><EFBFBD><EFBFBD>"
BEGIN
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_CLOSE
END
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
BEGIN
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_LARGEICONS
MENUITEM "&<26><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_SMALLICONS
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_LIST
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_DETAILS
END
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
BEGIN
MENUITEM "&<26><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", IDM_ABOUT
END
END

View File

@@ -0,0 +1,23 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by control.rc
//
#define IDI_MAINICON 100
#define IDM_MAINMENU 101
#define IDM_LARGEICONS 40000
#define IDM_SMALLICONS 40001
#define IDM_LIST 40002
#define IDM_DETAILS 40003
#define IDM_ABOUT 40004
#define IDM_CLOSE 40005
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 102
#define _APS_NEXT_COMMAND_VALUE 40006
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -0,0 +1,27 @@
#include <windows.h>
#include "resource.h"
/* define language neutral resources */
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
/* include localised resources */
#include "lang/Cz.rc"
#include "lang/De.rc"
#include "lang/Dk.rc"
#include "lang/En.rc"
#include "lang/Es.rc"
#include "lang/Fi.rc"
#include "lang/Gr.rc"
#include "lang/Hu.rc"
#include "lang/Ja.rc"
#include "lang/Nl.rc"
#include "lang/No.rc"
#include "lang/Pl.rc"
#include "lang/Ru.rc"
#include "lang/Sv.rc"
#include "lang/Uk.rc"

View File

@@ -0,0 +1,730 @@
/* Device manager
* (C) 2005 - Herv<72> Poussineau (hpoussin@reactos.org)
* GUI: Michael Fritscher (michael@fritscher.net)
*
*/
#define INITGUID
#include <windows.h>
#include <setupapi.h>
#include <stdio.h>
#include <tchar.h>
#include <commctrl.h>
#include <windows.h>
#include <commctrl.h>
#if defined (__GNUC__)
#include <winioctl.h>
#endif
/* FIXME: should be in cfgmgr32.h */
typedef DWORD CONFIGRET;
typedef DWORD DEVINST, *PDEVINST;
#define CM_DRP_DEVICEDESC 0x00000001
#define MAX_DEVICE_ID_LEN 200
#define MAX_CLASS_NAME_LEN 32
#define CR_SUCCESS 0x00000000
#define CR_NO_SUCH_DEVINST 0x0000000D
#define CR_NO_SUCH_VALUE 0x00000025
#ifdef _UNICODE
typedef WCHAR *DEVINSTID_W;
CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyW(DEVINST, ULONG, PULONG, PVOID, PULONG, ULONG);
CONFIGRET WINAPI CM_Locate_DevNodeW(PDEVINST, DEVINSTID_W, ULONG);
#define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyW
#define CM_Locate_DevNode CM_Locate_DevNodeW
#else
typedef CHAR *DEVINSTID_A;
CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyA(DEVINST, ULONG, PULONG, PVOID, PULONG, ULONG);
CONFIGRET WINAPI CM_Locate_DevNodeA(PDEVINST, DEVINSTID_A, ULONG);
#define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyA
#define CM_Locate_DevNode CM_Locate_DevNodeA
#endif
CONFIGRET WINAPI CM_Enumerate_Classes(ULONG, LPGUID, ULONG);
CONFIGRET WINAPI CM_Get_Child(PDEVINST, DEVINST, ULONG);
CONFIGRET WINAPI CM_Get_Sibling(PDEVINST, DEVINST, ULONG);
/* end of cfgmgr32.h */
/**************************************************************************
Function Prototypes
**************************************************************************/
BOOL InitApplication(HINSTANCE);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
void CreateListView(HINSTANCE, HWND);
void ResizeListView(HWND);
BOOL InitListView();
void InsertIntoListView(int, LPTSTR, LPTSTR);
LRESULT ListViewNotify(HWND, LPARAM);
void SwitchView(HWND, DWORD);
BOOL DoContextMenu(HWND, WPARAM, LPARAM);
void UpdateMenu(HWND, HMENU);
BOOL InsertListViewItems();
void PositionHeader();
void CreateButtons();
void ListByClass();
/**************************************************************************
Global Variables
**************************************************************************/
HINSTANCE g_hInst;
TCHAR g_szClassName[] = TEXT("VListVwClass");
HWND hWnd;
HWND hwndListView;
HWND hwndButtonListByClass;
HWND hwndButtonListByConnection;
HWND hwndButtonListByInterface;
HWND hwndButtonExit;
TCHAR temp [255];
HDC hDC;
TCHAR empty [255] = TEXT(" ");
void ListByClass()
{
GUID ClassGuid;
TCHAR ClassDescription[MAX_PATH];
TCHAR ClassName[MAX_CLASS_NAME_LEN];
TCHAR PropertyBuffer[256];
HKEY KeyClass;
HDEVINFO hDevInfo;
SP_DEVINFO_DATA DeviceInfoData;
int i = 0, j;
long Size;
long rc;
SendMessage(hwndListView, WM_SETREDRAW, FALSE, 0);
(void)ListView_DeleteAllItems(hwndListView);
while (1)
{
CONFIGRET res;
res = CM_Enumerate_Classes(i, &ClassGuid, 0);
if (res == CR_NO_SUCH_VALUE)
break;
i++;
ClassName[0] = '\0';
if (!SetupDiClassNameFromGuid(
&ClassGuid,
ClassName,
sizeof(ClassName) / sizeof(ClassName[0]),
NULL))
{
_tprintf(_T("SetupDiClassNameFromGuid() failed with status 0x%lx\n"), GetLastError());
continue;
}
/* Get class description */
KeyClass = SetupDiOpenClassRegKey(
&ClassGuid,
KEY_READ);
if (KeyClass == INVALID_HANDLE_VALUE)
{
_tprintf(_T("SetupDiOpenClassRegKey() failed with status 0x%lx\n"), GetLastError());
continue;
}
Size = sizeof(ClassDescription);
rc = RegQueryValue(KeyClass, NULL, ClassDescription, &Size);
if (rc == ERROR_SUCCESS)
{
InsertIntoListView(i,ClassDescription,ClassName);
TextOut(hDC, 200, 40, empty, (int) strlen(empty));
TextOut(hDC, 200, 40, ClassDescription, (int) strlen(ClassDescription));
_tprintf(_T("%d %s (%s)\n"), i, ClassName, ClassDescription);
}
else
_tprintf(_T("RegQueryValue() failed with status 0x%lx\n"), rc);
RegCloseKey(KeyClass);
/* Enumerate devices in the class */
hDevInfo = SetupDiGetClassDevs(
&ClassGuid,
NULL, /* Enumerator */
NULL, /* hWnd parent */
DIGCF_PRESENT);
if (hDevInfo == INVALID_HANDLE_VALUE)
continue;
j = 0;
while (1)
{
DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
if (!SetupDiEnumDeviceInfo(
hDevInfo,
j,
&DeviceInfoData))
{
break;
}
j++;
if (SetupDiGetDeviceRegistryProperty(
hDevInfo,
&DeviceInfoData,
SPDRP_DEVICEDESC,
NULL, /* Property reg data type */
(PBYTE)PropertyBuffer,
sizeof(PropertyBuffer),
NULL) /* Required size */)
{
_tprintf(_T("- %s\n"), PropertyBuffer);
InsertIntoListView(0,PropertyBuffer," ");
}
else if (SetupDiGetDeviceRegistryProperty(
hDevInfo,
&DeviceInfoData,
SPDRP_PHYSICAL_DEVICE_OBJECT_NAME,
NULL, /* Property reg data type */
(PBYTE)PropertyBuffer,
sizeof(PropertyBuffer),
NULL) /* Required size */)
{
_tprintf(_T("- %s\n"), PropertyBuffer);
InsertIntoListView(0,PropertyBuffer," ");
TextOut(hDC, 200, 40, empty, (int) strlen(empty));
TextOut(hDC, 200, 40, PropertyBuffer, (int) strlen(PropertyBuffer));
}
else
_tprintf(_T("SetupDiGetDeviceRegistryProperty() failed with status 0x%lx\n"), GetLastError());
}
SetupDiDestroyDeviceInfoList(hDevInfo);
}
SendMessage(hwndListView, WM_SETREDRAW, TRUE, 0);
}
CONFIGRET GetDeviceName(DEVINST DevInst, LPTSTR Buffer, DWORD BufferLength)
{
ULONG BufferSize = BufferLength * sizeof(TCHAR);
CONFIGRET cr;
cr = CM_Get_DevNode_Registry_Property(DevInst, CM_DRP_DEVICEDESC, NULL, Buffer, &BufferSize, 0);
if (cr != CR_SUCCESS)
{
_tprintf(_T("CM_Get_DevNode_Registry_Property() failed, cr= 0x%lx\n"), cr);
}
return cr;
}
CONFIGRET ListSubNodes(DEVINST parent, DWORD Level)
{
CONFIGRET cr;
DEVINST child;
cr = CM_Get_Child(&child, parent, 0);
if (cr == CR_NO_SUCH_DEVINST)
return CR_SUCCESS;
else if (cr != CR_SUCCESS)
{
_tprintf(_T("CM_Get_Child() failed, cr= 0x%lx\n"), cr);
return cr;
}
do
{
#define DISPLAY_LENGTH (MAX_PATH + MAX_DEVICE_ID_LEN)
DWORD DisplayLength = DISPLAY_LENGTH;
TCHAR DisplayName[DISPLAY_LENGTH];
ULONG i = Level;
TCHAR LevelSpaces [ 255 ];
cr = GetDeviceName(child, DisplayName, DisplayLength);
LevelSpaces[0] = '\0';
while (i-- != 0)
{
_tprintf(_T(" "));
sprintf(LevelSpaces,"%s%s",LevelSpaces," ");
}
if (cr == CR_SUCCESS)
{
_tprintf(_T("%s\n"), DisplayName);
sprintf(temp,"%s%s",LevelSpaces,DisplayName);
InsertIntoListView(0,temp," ");
TextOut(hDC, 200, 40, empty, (int) strlen(empty));
TextOut(hDC, 200, 40, DisplayName, (int) strlen(DisplayName));
}
else
{
_tprintf(_T("(unknown device)\n"));
sprintf(temp,"%s%s",LevelSpaces,"(unknown device)");
InsertIntoListView(0,temp," ");
TextOut(hDC, 200, 40, empty, (int) strlen(empty));
TextOut(hDC, 200, 40, "(unknown device)", (int) strlen("(unknown device)"));
}
cr = ListSubNodes(child, Level + 1);
if (cr != CR_SUCCESS)
return cr;
cr = CM_Get_Sibling(&child, child, 0);
if (cr != CR_SUCCESS && cr != CR_NO_SUCH_DEVINST)
{
_tprintf(_T("CM_Get_Sibling() failed, cr= 0x%lx\n"), cr);
return cr;
}
} while (cr == CR_SUCCESS);
return CR_SUCCESS;
}
int ListByConnection()
{
CONFIGRET cr;
DEVINST root;
(void)ListView_DeleteAllItems(hwndListView);
cr = CM_Locate_DevNode(&root, TEXT("Root\\*PNP0A03\\0000"), 0);
if (cr != CR_SUCCESS)
{
_tprintf(_T("CM_Locate_DevNode() failed, cr= 0x%lx\n"), cr);
return 1;
}
SendMessage(hwndListView, WM_SETREDRAW, FALSE, 0);
cr = ListSubNodes(root, 0);
SendMessage(hwndListView, WM_SETREDRAW, TRUE, 0);
if (cr != CR_SUCCESS)
return 2;
return 0;
}
int ListByInterface(const GUID* guid)
{
HDEVINFO hDevInfo;
CHAR Buffer[sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA) + 0x100];
PSP_DEVICE_INTERFACE_DETAIL_DATA DeviceInterfaceDetailData;
DWORD i;
SP_DEVICE_INTERFACE_DATA DeviceInterfaceData;
(void)ListView_DeleteAllItems(hwndListView);
DeviceInterfaceDetailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA)Buffer;
DeviceInterfaceDetailData->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
hDevInfo = SetupDiGetClassDevs(
guid,
NULL, /* Enumerator */
NULL, /* hwndParent */
DIGCF_DEVICEINTERFACE);
if (hDevInfo == INVALID_HANDLE_VALUE)
{
printf("SetupDiGetClassDevs() failed with status 0x%lx\n", GetLastError());
return 1;
}
i = 0;
DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
SendMessage(hwndListView, WM_SETREDRAW, FALSE, 0);
while (TRUE)
{
if (!SetupDiEnumDeviceInterfaces(
hDevInfo,
NULL,
guid,
i,
&DeviceInterfaceData))
{
if (GetLastError() != ERROR_NO_MORE_ITEMS)
printf("SetupDiEnumDeviceInterfaces() failed with status 0x%lx\n", GetLastError());
break;
}
i++;
if (SetupDiGetDeviceInterfaceDetail(hDevInfo, &DeviceInterfaceData, DeviceInterfaceDetailData, sizeof(Buffer), NULL, NULL))
{
_tprintf(_T("- device %-2ld: %s\n"), i, DeviceInterfaceDetailData->DevicePath);
TextOut(hDC, 200, 40, empty, (int) strlen(empty));
TextOut(hDC, 200, 40, DeviceInterfaceDetailData->DevicePath, (int) strlen(DeviceInterfaceDetailData->DevicePath));
InsertIntoListView(i,DeviceInterfaceDetailData->DevicePath," ");
}
else
{
_tprintf(_T("- device %ld\n"), i);
InsertIntoListView(i," "," ");
}
}
SendMessage(hwndListView, WM_SETREDRAW, TRUE, 0);
SetupDiDestroyDeviceInfoList(hDevInfo);
return 0;
}
/*int main(void)
{
ListByClass();
ListByInterface(&GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR);
ListByConnection();
return 0;
}*/
//GUI
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
MSG msg;
UNREFERENCED_PARAMETER(lpCmdLine);
UNREFERENCED_PARAMETER(hInstance);
g_hInst = hInstance;
if(!hPrevInstance)
if(!InitApplication(hInstance))
return FALSE;
//required to use the common controls
InitCommonControls();
/* Perform initializations that apply to a specific instance */
if (!InitInstance(hInstance, nCmdShow))
return FALSE;
/* Acquire and dispatch messages until a WM_QUIT uMessage is received. */
while(GetMessage( &msg, NULL, 0x00, 0x00))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
BOOL InitApplication(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
ATOM aReturn;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = 0;
wcex.lpfnWndProc = (WNDPROC)MainWndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW );
wcex.lpszMenuName = 0;
wcex.lpszClassName = g_szClassName;
wcex.hIcon = 0;
wcex.hIconSm = 0;
aReturn = RegisterClassEx(&wcex);
if(0 == aReturn)
{
WNDCLASS wc;
wc.style = 0;
wc.lpfnWndProc = (WNDPROC)MainWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = 0;
wc.hCursor = 0;
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW);
wc.lpszMenuName = 0;
wc.lpszClassName = g_szClassName;
aReturn = RegisterClass(&wc);
}
return aReturn;
}
BOOL InitInstance( HINSTANCE hInstance,
int nCmdShow)
{
HWND hWnd;
TCHAR szTitle[MAX_PATH] = TEXT("Device viewer");
g_hInst = hInstance;
/* Create a main window for this application instance. */
hWnd = CreateWindowEx( 0,
g_szClassName,
szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
/* If window could not be created, return "failure" */
if (!hWnd)
return FALSE;
/* Make the window visible; update its client area; and return "success" */
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
hDC = GetDC(hWnd);
return TRUE;
}
LRESULT CALLBACK MainWndProc( HWND hWnd,
UINT uMessage,
WPARAM wParam,
LPARAM lParam)
{
switch (uMessage)
{
case WM_CREATE:
// create the TreeView control
CreateListView(g_hInst, hWnd);
//initialize the TreeView control
InitListView();
CreateButtons(g_hInst, hWnd);
TextOut(hDC, 200, 40, empty, (int) strlen(empty));
break;
case WM_SIZE:
ResizeListView(hWnd);
break;
case WM_DESTROY:
ReleaseDC(hWnd, hDC);
PostQuitMessage(0);
break;
case WM_COMMAND:
if (HIWORD(wParam) == BN_CLICKED &&
(HWND) lParam == hwndButtonListByClass)
{
ListByClass();
}
if (HIWORD(wParam) == BN_CLICKED &&
(HWND) lParam == hwndButtonListByConnection)
{
ListByConnection();
}
if (HIWORD(wParam) == BN_CLICKED &&
(HWND) lParam == hwndButtonListByInterface)
{
ListByInterface(&GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR);
}
if (HIWORD(wParam) == BN_CLICKED &&
(HWND) lParam == hwndButtonExit)
{
/* Close the window. */
DestroyWindow (hWnd);
} return 0;
break;
default:
break;
}
return DefWindowProc(hWnd, uMessage, wParam, lParam);
}
void CreateListView(HINSTANCE hInstance, HWND hwndParent)
{
DWORD dwStyle;
UNREFERENCED_PARAMETER(hInstance);
dwStyle = WS_TABSTOP |
WS_CHILD |
WS_BORDER |
WS_VISIBLE |
LVS_AUTOARRANGE |
LVS_REPORT ;//|
//LVS_OWNERDATA;
hwndListView = CreateWindowEx( WS_EX_CLIENTEDGE, // ex style
WC_LISTVIEW, // class name - defined in commctrl.h
TEXT(""), // dummy text
dwStyle, // style
0, // x position
0, // y position
0, // width
0, // height
hwndParent, // parent
0,//(HMENU)ID_LISTVIEW, // ID
g_hInst, // instance
NULL); // no extra data
ResizeListView(hwndParent);
}
void ResizeListView(HWND hwndParent)
{
RECT rc;
GetClientRect(hwndParent, &rc);
MoveWindow( hwndListView,
rc.left,
rc.top+60,
rc.right - rc.left,
rc.bottom - rc.top-60,
TRUE);
}
void PositionHeader()
{
HWND hwndHeader = GetWindow(hwndListView, GW_CHILD);
DWORD dwStyle = GetWindowLong(hwndListView, GWL_STYLE);
/*To ensure that the first item will be visible, create the control without
the LVS_NOSCROLL style and then add it here*/
dwStyle |= LVS_NOSCROLL;
SetWindowLong(hwndListView, GWL_STYLE, dwStyle);
//only do this if we are in report view and were able to get the header hWnd
if(((dwStyle & LVS_TYPEMASK) == LVS_REPORT) && hwndHeader)
{
RECT rc;
HD_LAYOUT hdLayout;
WINDOWPOS wpos;
GetClientRect(hwndListView, &rc);
hdLayout.prc = &rc;
hdLayout.pwpos = &wpos;
(void)Header_Layout(hwndHeader, &hdLayout);
SetWindowPos( hwndHeader,
wpos.hwndInsertAfter,
wpos.x,
wpos.y,
wpos.cx,
wpos.cy,
wpos.flags | SWP_SHOWWINDOW);
(void)ListView_EnsureVisible(hwndListView, 0, FALSE);
}
}
BOOL InitListView()
{
LV_COLUMN lvColumn;
int i;
TCHAR szString[3][20] = {TEXT("#"), TEXT("Name"), TEXT("Intern name")};
//empty the list
(void)ListView_DeleteAllItems(hwndListView);
//initialize the columns
lvColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvColumn.fmt = LVCFMT_LEFT;
i=0;
lvColumn.cx = 20;
lvColumn.pszText = szString[i];
(void)ListView_InsertColumn(hwndListView, i, &lvColumn);
i=1;
lvColumn.cx = 400;
lvColumn.pszText = szString[i];
(void)ListView_InsertColumn(hwndListView, i, &lvColumn);
i=2;
lvColumn.cx = 150;
lvColumn.pszText = szString[i];
(void)ListView_InsertColumn(hwndListView, i, &lvColumn);
return TRUE;
}
typedef struct tagLINE_INFO
{
DWORD dwValType;
LPTSTR name;
void* val;
size_t val_len;
} LINE_INFO, *PLINE_INFO;
void InsertIntoListView(int typ, LPTSTR name, LPTSTR intern_name)
{
//MessageBox(hWnd, "You just pressed Ctrl+a", "Hotkey", MB_OK | MB_ICONINFORMATION);
TCHAR temp[ 255 ];
//LINE_INFO* linfo;
LVITEM item;
int index;
//linfo->name = Name;
item.mask = LVIF_TEXT;
item.iItem = 9999;
item.iSubItem = 0;
item.state = 0;
//item.statemask = 0;
item.pszText=malloc(10);
if (typ>=1)
{
sprintf(temp,"%i",typ);
item.pszText = temp;
}
else
item.pszText = "";
item.cchTextMax = (int) _tcslen(item.pszText);
if (item.cchTextMax == 0)
item.pszText = LPSTR_TEXTCALLBACK;
item.iImage = 0;
//item.iIdent = 0;
//item.iGroupId = 0;
//item.cColumns = 0 ;
//item.puColumns = 0;
//item.lParam = (LPARAM)linfo;
index = ListView_InsertItem(hwndListView, &item);
ListView_SetItemText(hwndListView, index, 1, name);
ListView_SetItemText(hwndListView, index, 2, intern_name);
}
void CreateButtons(HINSTANCE hInstance, HWND hwndParent)
{
UNREFERENCED_PARAMETER(hInstance);
hwndButtonListByClass = CreateWindowEx (
0,
"button", /* Builtin button class */
"List by Class",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
0, 0, 190, 30,
hwndParent, /* Parent is this window. */
0, /* Control ID: 1 */
g_hInst,
NULL
);
hwndButtonListByConnection = CreateWindowEx (
0,
"button", /* Builtin button class */
"List by Connection (PCI)",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
200, 0, 190, 30,
hwndParent, /* Parent is this window. */
0, /* Control ID: 1 */
g_hInst,
NULL
);
hwndButtonListByInterface = CreateWindowEx (
0,
"button", /* Builtin button class */
"List by Interface",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
400, 0, 190, 30,
hwndParent, /* Parent is this window. */
0, /* Control ID: 1 */
g_hInst,
NULL
);
hwndButtonExit = CreateWindowEx (
0,
"button", /* Builtin button class */
"Exit",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
0, 30, 190, 30,
hwndParent, /* Parent is this window. */
0, /* Control ID: 1 */
g_hInst,
NULL
);
}

View File

@@ -0,0 +1,14 @@
<?xml version="1.0"?>
<!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
<module name="devmgrapp" type="win32cui" installbase="system32" installname="devmgr.exe">
<define name="__USE_W32API" />
<define name="DEFINE_GUID" />
<library>ntdll</library>
<library>setupapi</library>
<library>gdi32</library>
<library>kernel32</library>
<library>user32</library>
<library>comctl32</library>
<file>devmgr.c</file>
<efile>devmgr.rc</efile>
</module>

View File

@@ -0,0 +1,6 @@
/* $Id$ */
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS W32 Device Manager Utility\0"
#define REACTOS_STR_INTERNAL_NAME "devmgr\0"
#define REACTOS_STR_ORIGINAL_FILENAME "devmgr.exe\0"
#include <reactos/version.rc>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
<group>
<directory name="solitaire">
<xi:include href="solitaire/solitaire.rbuild" />
</directory>
<directory name="winemine">
<xi:include href="winemine/winemine.rbuild" />
</directory>
</group>

View File

@@ -0,0 +1,22 @@
Solitaire for ReactOS
/*****************************************
A complete working example of the CardLib
card-game library.
Freeware
Copyright J Brown 2001
Updates at http://www.catch22.net
******************************************/
The author has given permission to use these sources
under Public Domain. Do what thou will but please give
credit where credit is due.
If you wish to use cardlib to write another card game
for ReactOS please make cardlib a static lib.
-sedwards

View File

@@ -102,4 +102,4 @@ private:
bool fFaceUp;
};
#endif /* _CARD_INCLUDED */
#endif

View File

@@ -4,8 +4,9 @@
// Freeware
// Copyright J Brown 2001
//
#include "cardlib.h"
#include <windows.h>
#include "globals.h"
#include "cardcolor.h"
#ifndef __REACTOS__
#pragma comment( lib, "..\\CardLib\\cards16.lib" )
@@ -31,13 +32,13 @@ void LoadCardBitmapsFromLibrary(HINSTANCE hCardDll, int *pwidth, int *pheight)
{
//convert into the range used by the cdt_xxx functions
int val;
if(i < 52) val = (i % 4) * 13 + (i/4);
else val = i;
hBitmap = LoadBitmap(hCardDll, MAKEINTRESOURCE(val + 1));
GetObject(hBitmap, sizeof(bmp), &bmp);
width = bmp.bmWidth;
height = bmp.bmHeight;
@@ -52,11 +53,11 @@ void LoadCardBitmapsFromLibrary(HINSTANCE hCardDll, int *pwidth, int *pheight)
ReleaseDC(0, hdc);
}
hOld = SelectObject(hdcCard, hBitmap);
BitBlt(__hdcCardBitmaps, i*width, 0, width, height, hdcCard, 0, 0, SRCCOPY);
SelectObject(hdcCard, hOld);
//Now draw a black border around each card...
xpos = i*width;
MoveToEx(__hdcCardBitmaps, xpos+2, 0, 0);
@@ -68,36 +69,36 @@ void LoadCardBitmapsFromLibrary(HINSTANCE hCardDll, int *pwidth, int *pheight)
LineTo(__hdcCardBitmaps, xpos+0, height - 3);
LineTo(__hdcCardBitmaps, xpos+0, 2);
LineTo(__hdcCardBitmaps, xpos+2, 0);
DeleteObject(hBitmap);
}
DeleteDC(hdcCard);
*pwidth = width;
*pheight = height;
}
void LoadCardBitmaps(void)
{
HINSTANCE hCardDll;
//If Windows NT/2000/XP
if(GetVersion() < 0x80000000)
{
hCardDll = LoadLibrary(TEXT("cards.dll"));
hCardDll = LoadLibrary("cards.dll");
if(hCardDll == 0)
{
MessageBox(0, TEXT("Error loading cards.dll (32bit)"), TEXT("Shed"), MB_OK | MB_ICONEXCLAMATION);
MessageBox(0, "Error loading cards.dll (32bit)", "Shed", MB_OK | MB_ICONEXCLAMATION);
PostQuitMessage(0);
return;
}
LoadCardBitmapsFromLibrary(hCardDll, &__cardwidth, &__cardheight);
FreeLibrary(hCardDll);
}
#ifndef __REACTOS__
@@ -131,9 +132,9 @@ void FreeCardBitmaps()
//
static void DrawCheckedRect(HDC hdc, RECT *rect, COLORREF fg, COLORREF bg)
{
static WORD wCheckPat[8] =
{
0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555
static WORD wCheckPat[8] =
{
0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555
};
HBITMAP hbmp;
@@ -151,15 +152,15 @@ static void DrawCheckedRect(HDC hdc, RECT *rect, COLORREF fg, COLORREF bg)
fgold = SetTextColor(hdc, fg);
bgold = SetBkColor(hdc, bg);
PatBlt(hdc, rect->left, rect->top,
rect->right - rect->left,
rect->bottom - rect->top,
PatBlt(hdc, rect->left, rect->top,
rect->right - rect->left,
rect->bottom - rect->top,
PATCOPY);
SetBkColor(hdc, bgold);
SetTextColor(hdc, fgold);
SelectObject(hdc, hbrold);
DeleteObject(hbr);
DeleteObject(hbmp);
@@ -195,13 +196,13 @@ HBITMAP CreateSinkBmp(HDC hdcCompat, HDC hdc, COLORREF col, int width, int heigh
hpfg = CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(fg));
hpbg = CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(bg));
hpsh = CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(shadow));
hpsh2= CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(shadow2));
hpsh2= CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(shadow2));
hpold = SelectObject(hdc, hpsh);
MoveToEx(hdc, 2, 0, NULL);
LineTo (hdc, width-3,0);
LineTo (hdc, width-1, 2);
SelectObject(hdc, hpold);
hpold = SelectObject(hdc, hpsh2);
LineTo (hdc, width-1, height-3); //vertical
@@ -221,12 +222,12 @@ HBITMAP CreateSinkBmp(HDC hdcCompat, HDC hdc, COLORREF col, int width, int heigh
hpold = SelectObject(hdc, hpfg);
MoveToEx(hdc, width - 2, 3, NULL);
LineTo (hdc, width - 2, height - 2);
//(horz)
MoveToEx(hdc, width - 3, height-2, NULL);
LineTo (hdc, 3, height-2);
SelectObject(hdc, hpold);
//draw the background
InflateRect(&rect, -2, -2);
DrawCheckedRect(hdc, &rect, MAKE_PALETTERGB(bg), MAKE_PALETTERGB(fg));
@@ -239,7 +240,7 @@ HBITMAP CreateSinkBmp(HDC hdcCompat, HDC hdc, COLORREF col, int width, int heigh
DeleteObject(hpfg);
DeleteObject(hpbg);
return hbm;
}
@@ -262,7 +263,7 @@ HPALETTE MakePaletteFromCols(COLORREF cols[], int nNumColours)
lp = (LOGPALETTE *)HeapAlloc(
GetProcessHeap(), 0, sizeof(LOGPALETTE) + sizeof(PALETTEENTRY) * nNumColours);
lp->palNumEntries = (WORD)nNumColours;
lp->palNumEntries = nNumColours;
lp->palVersion = 0x300;
//copy the colours into the logical palette format

View File

@@ -4,8 +4,13 @@
// Freeware
// Copyright J Brown 2001
//
#include <windows.h>
#include <tchar.h>
#include "cardlib.h"
#include "cardwindow.h"
#include "cardbutton.h"
#include "cardcolor.h"
HPALETTE UseNicePalette(HDC, HPALETTE);
void RestorePalette(HDC, HPALETTE);
@@ -19,7 +24,7 @@ CardButton::CardButton(CardWindow &parent, int Id, TCHAR *szText, UINT Style, bo
{
crText = RGB(255,255,255);
crBack = RGB(0, 128, 0);
xadjust = 0;
yadjust = 0;
xjustify = 0;
@@ -52,16 +57,16 @@ void CardButton::DrawRect(HDC hdc, RECT *rect, bool fNormal)
HPEN hhi = CreatePen(0, 0, MAKE_PALETTERGB(crHighlight));
HPEN hsh = CreatePen(0, 0, MAKE_PALETTERGB(crShadow));
HPEN hbl = (HPEN)GetStockObject(BLACK_PEN);
int x = rect->left;
int y = rect->top;
int width = rect->right-rect->left - 1;
int height = rect->bottom-rect->top - 1;
SetRect(&fill, x+1, y+1, x+width-1, y+height-1);
int one = 1;
if(!fNormal)
{
x += width;
@@ -71,11 +76,11 @@ void CardButton::DrawRect(HDC hdc, RECT *rect, bool fNormal)
one = -1;
OffsetRect(&fill, 1, 1);
}
if(fNormal)
hOld = SelectObject(hdc, hhi);
else
hOld = SelectObject(hdc, hsh);
hOld = SelectObject(hdc, hhi);
MoveToEx(hdc, x, y+height, 0);
LineTo(hdc, x, y);
@@ -102,7 +107,7 @@ void CardButton::DrawRect(HDC hdc, RECT *rect, bool fNormal)
void CardButton::Clip(HDC hdc)
{
if(fVisible == false) return;
ExcludeClipRect(hdc, rect.left, rect.top, rect.right, rect.bottom);
}
@@ -118,12 +123,12 @@ void CardButton::Draw(HDC hdc, bool fNormal)
if(fVisible == 0) return;
if(hFont == 0)
SelectObject(hdc, GetStockObject(DEFAULT_GUI_FONT));
SelectObject(hdc, GetStockObject(DEFAULT_GUI_FONT));
else
SelectObject(hdc, hFont);
SelectObject(hdc, hFont);
GetTextExtentPoint32(hdc, szText, lstrlen(szText), &textsize);
if(hIcon)
{
x = rect.left + 32 + 8;
@@ -145,11 +150,11 @@ void CardButton::Draw(HDC hdc, bool fNormal)
x += rect.left + iconwidth;
}
}
y = rect.bottom - rect.top;
y = (y - textsize.cy) / 2;
y += rect.top;
//calc icon position..
ix = rect.left + 4;
iy = rect.top + (rect.bottom-rect.top-32) / 2;
@@ -169,20 +174,20 @@ void CardButton::Draw(HDC hdc, bool fNormal)
//
// Calc icon pos
//
if(hIcon)
{
ExcludeClipRect(hdc, ix, iy, ix + 32, iy + 32);
}
if(uStyle & CB_PUSHBUTTON)
{
DrawRect(hdc, &rect, fNormal);
SetBkColor(hdc, MAKE_PALETTERGB(crBack));
SetTextColor(hdc, crText);//MAKE_PALETTERGB(crText));
SelectClipRgn(hdc, 0);
SelectClipRgn(hdc, 0);
ExtTextOut(hdc, x, y, ETO_OPAQUE, &cliprect, szText, lstrlen(szText), 0);
}
@@ -252,7 +257,7 @@ void CardButton::AdjustPosition(int winwidth, int winheight)
int CardButton::OnLButtonDown(HWND hwnd, int x, int y)
{
if((uStyle & CB_PUSHBUTTON) == 0)
if((uStyle & CB_PUSHBUTTON) == 0)
return 0;
//make sure that the user is allowed to do something
@@ -264,7 +269,7 @@ int CardButton::OnLButtonDown(HWND hwnd, int x, int y)
{
ReleaseMutex(mxlock);
}
fMouseDown = true;
fButtonDown = true;
@@ -282,19 +287,19 @@ int CardButton::OnMouseMove(HWND hwnd, int x, int y)
bool fOldButtonDown = fButtonDown;
POINT pt;
pt.x = x;
pt.y = y;
if(PtInRect(&rect, pt))
fButtonDown = true;
else
fButtonDown = false;
if(fButtonDown != fOldButtonDown)
Redraw();
}
return 0;
}
@@ -304,24 +309,24 @@ int CardButton::OnLButtonUp(HWND hwnd, int x, int y)
{
fMouseDown = false;
fButtonDown = false;
if(uStyle & CB_PUSHBUTTON)
{
Redraw();
ReleaseCapture();
}
//if have clicked the button
if(parentWnd.CardButtonFromPoint(x, y) == this)
{
if(ButtonCallback)
{
ButtonCallback(*this);
ButtonCallback(*this);
}
else
{
HWND hwnd = (HWND)parentWnd;
SendMessage(GetParent(hwnd), WM_COMMAND, MAKEWPARAM(id, BN_CLICKED), (LONG_PTR)hwnd);
SendMessage(GetParent(hwnd), WM_COMMAND, MAKEWPARAM(id, BN_CLICKED), (LONG)hwnd);
}
}
}
@@ -329,13 +334,13 @@ int CardButton::OnLButtonUp(HWND hwnd, int x, int y)
return 0;
}
//#define _countof(array) (sizeof(array)/sizeof(array[0]))
#define _countof(array) (sizeof(array)/sizeof(array[0]))
CardButton *CardWindow::CreateButton(int id, TCHAR *szText, UINT uStyle, bool fVisible, int x, int y, int width, int height)
{
CardButton *cb;
if(nNumButtons == MAXBUTTONS)
if(nNumButtons == MAXBUTTONS)
return 0;
cb = new CardButton(*this, id, szText, uStyle, fVisible, x, y, width, height);
@@ -352,7 +357,7 @@ CardButton *CardWindow::CreateButton(int id, TCHAR *szText, UINT uStyle, bool fV
cb->SetBackColor(crBackgnd);
cb->SetForeColor(RGB(255,255,255));
}
return cb;
}
@@ -389,9 +394,9 @@ void CardButton::Redraw()
HPALETTE hOldPal = UseNicePalette(hdc, __hPalette);
Draw(hdc, !fButtonDown);
RestorePalette(hdc, hOldPal);
ReleaseDC((HWND)parentWnd, hdc);
}
@@ -406,7 +411,7 @@ void CardButton::SetBackColor(COLORREF cr)
crHighlight = GetHighlight(cr);
crShadow = GetShadow(cr);
//crHighlight = ScaleLumRGB(cr, +0.25);
//crShadow = ScaleLumRGB(cr, -0.25);
}
@@ -439,7 +444,7 @@ void CardButton::SetPlacement(UINT xJustify, UINT yJustify, int xAdjust, int yAd
void CardButton::SetIcon(HICON hicon, bool fRedraw)
{
hIcon = hicon;
if(fRedraw)
Redraw();
}
@@ -460,7 +465,7 @@ bool CardButton::Lock()
DWORD dw = WaitForSingleObject(mxlock, 0);
if(dw == WAIT_OBJECT_0)
return true;
return true;
else
return false;
}

View File

@@ -3,6 +3,8 @@
#define MAXBUTTONTEXT 64
#include "cardlib.h"
class CardButton
{
friend class CardWindow;
@@ -96,4 +98,4 @@ private:
pButtonProc ButtonCallback;
};
#endif /* CARDBUTTON_INCLUDED */
#endif

View File

@@ -1,8 +1,7 @@
//
// Colour support
//
#include "cardlib.h"
#include <windows.h>
#define MakeRGB RGB
@@ -26,7 +25,7 @@ inline double fMin(double a, double b)
COPYRIGHT:1995-1997 Robert Mashlan
Modified for LabWindows/CVI, 1999 Guillaume Dargaud
******************************************************************************/
void RGBtoHLS(const COLORREF rgb, double *H, double *L, double *S )
void RGBtoHLS(const COLORREF rgb, double *H, double *L, double *S )
{
double delta;
double r = (double)((rgb )&0xFF)/255;
@@ -35,19 +34,19 @@ void RGBtoHLS(const COLORREF rgb, double *H, double *L, double *S )
double cmax = MAX3(r,g,b);
double cmin = MIN3(r,g,b);
*L=(cmax+cmin)/2.0;
if(cmax == cmin)
if(cmax == cmin)
{
*S = *H = 0; // it's really undefined
}
else
else
{
if(*L < 0.5) *S = (cmax-cmin)/(cmax+cmin);
else *S = (cmax-cmin)/(2.0-cmax-cmin);
delta = cmax - cmin;
if(r == cmax)
if(r == cmax)
{
*H = (g - b) / delta;
}
@@ -67,7 +66,7 @@ void RGBtoHLS(const COLORREF rgb, double *H, double *L, double *S )
COPYRIGHT:1995-1997 Robert Mashlan
Modified for LabWindows/CVI, 1999 Guillaume Dargaud
******************************************************************************/
double HueToRGB(const double m1, const double m2, double h )
double HueToRGB(const double m1, const double m2, double h )
{
if (h<0) h+=1.0;
if (h>1) h-=1.0;
@@ -87,20 +86,20 @@ double HueToRGB(const double m1, const double m2, double h )
Modified for LabWindows/CVI, 1999 Guillaume Dargaud
******************************************************************************/
COLORREF HLStoRGB(const double H, const double L, const double S )
COLORREF HLStoRGB(const double H, const double L, const double S )
{
double r,g,b;
double m1, m2;
if(S == 0)
if(S == 0)
{
r = g = b = L;
}
else
else
{
if (L <= 0.5)
if (L <= 0.5)
m2 = L * (1.0 + S);
else
else
m2 = L + S - L * S;
m1 = 2.0 * L - m2;
@@ -109,7 +108,7 @@ COLORREF HLStoRGB(const double H, const double L, const double S )
g = HueToRGB(m1,m2,H);
b = HueToRGB(m1,m2,H-1.0/3.0);
}
return RGB(r*255, g*255, b*255);
}
@@ -119,7 +118,7 @@ COLORREF HLStoRGB(const double H, const double L, const double S )
FUNCTION: ColorScaleHSL
PURPOSE: Returns the HSL linear interpolated color between 2 colors
(more natural looking than RGB interpolation)
For instance if the luminance is the same in Col1 and Col2,
For instance if the luminance is the same in Col1 and Col2,
then the luminance of the result will be the same
If Ratio=0, you get Col1,
If Ratio=1, you get Col2
@@ -128,10 +127,10 @@ COLORREF HLStoRGB(const double H, const double L, const double S )
Ratio: 0 for low color, 1 for high color, or in between
EXAMPLE: Col1=0, Col2=0xFF00FF, Ratio=0.5 returns 0x1F5F3F
******************************************************************************/
COLORREF ColorScaleHSL( const COLORREF Col1, const COLORREF Col2, const double Ratio)
COLORREF ColorScaleHSL( const COLORREF Col1, const COLORREF Col2, const double Ratio)
{
static double H1, H2, S1, S2, L1, L2;
if (Ratio<=0) return Col1; // Ratio parameter must be between 0 and 1
else if (Ratio>=1) return Col2;
@@ -151,8 +150,8 @@ COLORREF ColorScaleHSL( const COLORREF Col1, const COLORREF Col2, const doubl
Ratio: 0 for low color, 1 for high color, or in between
EXAMPLE: Col1=0, Col2=0xFF00FF, Ratio=0.5 returns 0x800080
******************************************************************************/
COLORREF ColorScaleRGB( const COLORREF Col1,
const COLORREF Col2,
COLORREF ColorScaleRGB( const COLORREF Col1,
const COLORREF Col2,
const double Ratio) {
int R1=(Col1)&0xFF, G1=(Col1>>8)&0xFF, B1=(Col1>>16)&0xFF;
int R2=(Col2)&0xFF, G2=(Col2>>8)&0xFF, B2=(Col2>>16)&0xFF;
@@ -286,7 +285,7 @@ COLORREF HLStoRGB(const double Hue, const double Lum, const double Sat)
if(Sat == 0)
{
red = green = blue = (BYTE)(Lum * 255);
red = green = blue = (BYTE)(Lum * 255);
}
else
{
@@ -318,10 +317,10 @@ COLORREF ScaleLumRGB(COLORREF col1, double ratio)
return HLStoRGB(H1, L1, S1);
}
COLORREF ColorScaleHSL(const COLORREF Col1, const COLORREF Col2, const double Ratio)
COLORREF ColorScaleHSL(const COLORREF Col1, const COLORREF Col2, const double Ratio)
{
static double H1, H2, S1, S2, L1, L2;
if(Ratio <= 0) return Col1; // Ratio parameter must be between 0 and 1
else if(Ratio >= 1) return Col2;

View File

@@ -0,0 +1,16 @@
COLORREF ColorScaleRGB( const COLORREF Col1,
const COLORREF Col2,
const double Ratio);
COLORREF ColorScaleHSL( const COLORREF Col1,
const COLORREF Col2,
const double Ratio);
COLORREF ColorDarker(COLORREF col, double ratio);
COLORREF ColorLighter(COLORREF col, double ratio);
COLORREF ScaleLumRGB(COLORREF col1, double ratio);
#define MAKE_PALETTERGB(colref) (0x02000000 | colref)

View File

@@ -1,16 +1,16 @@
//
// CardCount is a helper library for CardStacks.
//
// When you initialize a CardCount object with a
//
// When you initialize a CardCount object with a
// cardstack, it keeps track of the number of cards
// the stack contains.
//
// e.g. CardCount count(cardstack);
//
// Then you can do:
//
//
// int num_fives = count[5]
//
//
// count.Add(cardstack2); - combine with another stack
//
// int num_aces = count[1] - aces low
@@ -18,8 +18,6 @@
//
// count.Clear();
//
#include "cardlib.h"
#include "cardcount.h"
CardCount::CardCount()
@@ -55,7 +53,7 @@ void CardCount::Sub(const CardStack &cs)
{
Card card = cs[i];
int val = card.LoVal();
if(count[val - 1] > 0)
count[val - 1]--;
}
@@ -87,6 +85,6 @@ void CardCount::Dec(size_t index)
index -= 1;
if(count[index] > 0)
if(count[index] > 0)
count[index]--;
}

View File

@@ -1,6 +1,10 @@
#ifndef _CARDCOUNT_INCLUDED
#define _CARDCOUNT_INCLUDED
#include <windows.h>
#include "cardstack.h"
class CardCount
{
public:
@@ -20,8 +24,8 @@ public:
CardCount &operator += (const CardStack &cs);
private:
int count[13]; //13 different card values
int count[13]; //13 different card values
//(ace,2,3,4,5,6,7,8,9,10,J,Q,K)
};
#endif /* _CARDCOUNT_INCLUDED */
#endif

View File

@@ -4,8 +4,9 @@
// Freeware
// Copyright J Brown 2001
//
#include <windows.h>
#include "cardlib.h"
#include "globals.h"
void LoadCardBitmaps(void);
@@ -47,7 +48,7 @@ void CardLib_SetZoomSpeed(int speed)
It uses the Card(int uval) constructor,
which results in a 2 of clubs...
not what was expected
*/
*/
/*
void CardLib_SetAcesHigh(bool fHigh);
bool operator != (const Card &lhs, const Card &rhs);
@@ -116,6 +117,6 @@ bool operator <= (const Card &lhs, const Card &rhs)
void PaintRect(HDC hdc, RECT *rect, COLORREF colour)
{
COLORREF oldcr = SetBkColor(hdc, colour);
ExtTextOut(hdc, 0, 0, ETO_OPAQUE, rect, TEXT(""), 0, 0);
ExtTextOut(hdc, 0, 0, ETO_OPAQUE, rect, "", 0, 0);
SetBkColor(hdc, oldcr);
}

View File

@@ -1,15 +1,6 @@
#ifndef CARDLIB_INCLUDED
#define CARDLIB_INCLUDED
#include <stdarg.h>
#include <stdlib.h>
#define WIN32_NO_STATUS
#include <windef.h>
#include <winbase.h>
#include <wingdi.h>
#include <winuser.h>
#define CARDLIBPROC __stdcall
void CardBlt(HDC hdc, int x, int y, int nCardNum);
@@ -17,14 +8,15 @@ void CardLib_SetZoomSpeed(int);
#define CS_EI_NONE 0
#define CS_EI_SUNK 1
#define CS_EI_CIRC 67
#define CS_EI_X 66
#define CS_DEFXOFF 12 //x-offset
#define CS_DEFYOFF 18 //y-offset
#define CS_NO3D 1 //default 3d counts (recommened)
#define CS_DEF3D 10 //(best for decks)
//#define CS_EI_CIRC 2
//#define CS_EI_X 3
#define CS_DRAG_NONE 0
#define CS_DRAG_TOP 1
#define CS_DRAG_ALL 2
@@ -83,7 +75,7 @@ class CardStack;
class CardWindow;
typedef bool (CARDLIBPROC *pCanDragProc) (CardRegion &stackobj, int iNumDragging);
typedef bool (CARDLIBPROC *pCanDropProc) (CardRegion &stackobj, CardStack &cards);
typedef bool (CARDLIBPROC *pCanDropProc) (CardRegion &stackobj, const CardStack &cards);
typedef void (CARDLIBPROC *pClickProc) (CardRegion &stackobj, int iNumCards);
typedef void (CARDLIBPROC *pAddProc) (CardRegion &stackobj, const CardStack &cards);
typedef void (CARDLIBPROC *pRemoveProc) (CardRegion &stackobj, int iNumRemoved);
@@ -93,13 +85,12 @@ typedef int (CARDLIBPROC *pDropZoneProc) (int dzid, const CardStack &cards);
typedef void (CARDLIBPROC *pButtonProc) (CardButton &pButton);
#include "globals.h"
#include "card.h"
#include "cardbutton.h"
#include "cardcolor.h"
#include "cardstack.h"
#include "cardregion.h"
#include "dropzone.h"
#include "cardcount.h"
#include "cardwindow.h"
#ifdef _DEBUG
@@ -107,4 +98,5 @@ typedef bool (CARDLIBPROC *pDebugClickProc) (CardRegion &stackobj);
void CardLib_SetStackClickProc(pDebugClickProc proc);
#endif
#endif /* CARDLIB_INCLUDED */
#endif

View File

@@ -4,14 +4,18 @@
// Freeware
// Copyright J Brown 2001
//
#include <windows.h>
#include "cardlib.h"
#include "cardregion.h"
#include "cardwindow.h"
#include "cardcolor.h"
HBITMAP CreateSinkBmp(HDC hdcCompat, HDC hdc, int width, int height);
void PaintRect(HDC hdc, RECT *rect, COLORREF colour);
CardRegion::CardRegion(CardWindow &parent, int Id, bool visible, int x, int y, int xOffset, int yOffset)
CardRegion::CardRegion(CardWindow &parent, int Id, bool visible, int x, int y, int xOffset, int yOffset)
: id(Id), parentWnd(parent), xpos(x), ypos(y), xoffset(xOffset), yoffset(yOffset), fVisible(visible)
{
width = __cardwidth;
@@ -26,6 +30,7 @@ CardRegion::CardRegion(CardWindow &parent, int Id, bool visible, int x, int y, i
fVisible = visible;
nThreedCount = 1;
nBackCardIdx = 53;
Update(); //Update this stack's size+card count
@@ -36,13 +41,12 @@ CardRegion::CardRegion(CardWindow &parent, int Id, bool visible, int x, int y, i
nDragCardWidth = 0;
nDragCardHeight = 0;
CanDragCallback = 0;
CanDropCallback = 0;
AddCallback = 0;
RemoveCallback = 0;
ClickCallback = 0;
ClickReleaseCallback = 0;
DblClickCallback = 0;
uDragRule = CS_DRAG_ALL;
@@ -113,7 +117,7 @@ CardRegion *CardWindow::CreateRegion(int id, bool fVisible, int x, int y, int xo
cr->SetBackCardIdx(nBackCardIdx);
Regions[nNumCardRegions++] = cr;
return cr;
}
@@ -144,7 +148,7 @@ int CardRegion::GetOverlapRatio(int x, int y, int w, int h)
}
bool CardRegion::SetDragRule(UINT uDragType, pCanDragProc proc)
{
{
switch(uDragType)
{
case CS_DRAG_NONE: case CS_DRAG_ALL: case CS_DRAG_TOP:
@@ -162,10 +166,10 @@ bool CardRegion::SetDragRule(UINT uDragType, pCanDragProc proc)
}
bool CardRegion::SetDropRule(UINT uDropType, pCanDropProc proc)
{
{
switch(uDropType)
{
case CS_DROP_NONE: case CS_DROP_ALL:
case CS_DROP_NONE: case CS_DROP_ALL:
uDropRule = uDropType;
return true;
@@ -184,11 +188,6 @@ void CardRegion::SetClickProc(pClickProc proc)
ClickCallback = proc;
}
void CardRegion::SetClickReleaseProc(pClickProc proc)
{
ClickReleaseCallback = proc;
}
void CardRegion::SetDblClickProc(pClickProc proc)
{
DblClickCallback = proc;
@@ -207,14 +206,14 @@ void CardRegion::SetRemoveCardProc(pRemoveProc proc)
void CardRegion::Update()
{
CalcApparentCards();
UpdateSize();
UpdateSize();
UpdateFaceDir(cardstack);
}
bool CardRegion::SetThreedCount(int count)
{
if(count < 1)
if(count < 1)
{
return false;
}
@@ -243,7 +242,7 @@ void CardRegion::Show(bool fShow)
}
bool CardRegion::IsVisible()
{
{
return fVisible;
}
@@ -285,13 +284,13 @@ void CardRegion::AdjustPosition(int winwidth, int winheight)
switch(xjustify)
{
default: case CS_XJUST_NONE: break;
case CS_XJUST_CENTER: //centered
xpos = (winwidth - (width & ~0x1)) / 2;
xpos += xadjust;
if(xoffset < 0) xpos += (width - __cardwidth);
break;
case CS_XJUST_RIGHT: //right-aligned
@@ -303,7 +302,7 @@ void CardRegion::AdjustPosition(int winwidth, int winheight)
switch(yjustify)
{
default: case CS_YJUST_NONE: break;
case CS_YJUST_CENTER: //centered
ypos = (winheight - height) / 2;
ypos += yadjust;
@@ -326,7 +325,7 @@ void CardRegion::Flash(int count, int milliseconds)
nFlashCount = count;
fFlashVisible = false;
uFlashTimer = SetTimer((HWND)parentWnd, (WPARAM)this, milliseconds, 0);
parentWnd.Redraw();
}
@@ -353,7 +352,7 @@ void CardRegion::DoFlash()
uFlashTimer = (UINT)-1;
fFlashVisible = true;
}
parentWnd.Redraw();
}
}
@@ -367,10 +366,7 @@ void CardRegion::SetEmptyImage(UINT uImage)
{
switch(uImage)
{
case CS_EI_NONE:
case CS_EI_SUNK:
case CS_EI_CIRC:
case CS_EI_X:
case CS_EI_NONE: case CS_EI_SUNK:
uEmptyImage = uImage;
break;
@@ -378,7 +374,7 @@ void CardRegion::SetEmptyImage(UINT uImage)
uEmptyImage = CS_EI_NONE;
break;
}
}
void CardRegion::SetBackCardIdx(UINT uBackIdx)
@@ -388,18 +384,18 @@ void CardRegion::SetBackCardIdx(UINT uBackIdx)
}
void CardRegion::SetCardStack(const CardStack &cs)
{
{
//make a complete copy of the specified stack..
cardstack = cs;
cardstack = cs;
// Update the face-direction and stack-size
Update();
}
const CardStack & CardRegion::GetCardStack()
{
{
//return reference to our internal stack
return cardstack;
return cardstack;
}
//
@@ -490,7 +486,7 @@ bool CardRegion::MoveCard(CardRegion *pDestStack, int nNumCards, bool fAnimate)
oldx = x;
oldy = y;
dragstack = cardstack.Pop(nNumCards);
//Alter the drag-stack so that it's cards are the same way up
@@ -517,7 +513,7 @@ bool CardRegion::MoveCard(CardRegion *pDestStack, int nNumCards, bool fAnimate)
hdc = GetDC((HWND)parentWnd);
ZoomCard(hdc, x, y, pDestStack);
ReleaseDC((HWND)parentWnd, hdc);
ReleaseDragBitmaps();
}
@@ -525,9 +521,9 @@ bool CardRegion::MoveCard(CardRegion *pDestStack, int nNumCards, bool fAnimate)
// Get a copy of the cardstack
CardStack cs = pDestStack->GetCardStack();
cs.Push(dragstack);
pDestStack->SetCardStack(cs);
//cs = pDestStack->GetCardStack();
//pDestStack->Update();
//pDestStack->UpdateFaceDir(cs);
@@ -546,7 +542,7 @@ int CardRegion::NumCards() const
if(fMouseDragging)
return cardstack.NumCards() + dragstack.NumCards();
else
return cardstack.NumCards();
return cardstack.NumCards();
}
bool CardRegion::Lock()
@@ -556,7 +552,7 @@ bool CardRegion::Lock()
if(dw == WAIT_OBJECT_0)
{
//TRACE("LockStack succeeded\n");
return true;
return true;
}
else
{
@@ -575,7 +571,7 @@ bool CardRegion::UnLock()
}
else
{
//TRACE("Unlocking stack failed\n");
//TRACE("Unlocking stack failed\n");
return false;
}
}
@@ -613,8 +609,8 @@ void CardRegion::RedrawIfNotDim(CardRegion *pCompare, bool fFullRedraw)
//
//
//
if( pCompare->xoffset != xoffset ||
pCompare->yoffset != yoffset ||
if( pCompare->xoffset != xoffset ||
pCompare->yoffset != yoffset ||
pCompare->nThreedCount != nThreedCount ||
pCompare->uFaceDirType != uFaceDirType ||
pCompare->uFaceDirType != CS_FACE_ANY
@@ -625,7 +621,7 @@ void CardRegion::RedrawIfNotDim(CardRegion *pCompare, bool fFullRedraw)
else
pCompare->Redraw();
}
}
//
@@ -640,18 +636,21 @@ bool CardRegion::SimulateDrag(CardRegion *pDestStack, int iNumDragCards, bool fA
if(CanDragCards(iNumDragCards) != false)
{
if(pDestStack->CanDropCards(cardstack))
{
MoveCard(pDestStack, iNumDragCards, fAnimate);
//make a list of the cards that would be in the drag list
CardStack tempstack = cardstack.Top(iNumDragCards);
if(pDestStack->CanDropCards(tempstack))
{
MoveCard(pDestStack, iNumDragCards, fAnimate);
if(RemoveCallback)
RemoveCallback(*this, iNumDragCards);
if(pDestStack->AddCallback)
pDestStack->AddCallback(*pDestStack, pDestStack->cardstack);
RedrawIfNotDim(pDestStack, true);
}
}
}

View File

@@ -1,6 +1,10 @@
#ifndef CARDREGION_INCLUDED
#define CARDREGION_INCLUDED
#include "globals.h"
#include "cardstack.h"
#include "cardlib.h"
class CardWindow;
//
@@ -17,7 +21,7 @@ class CardRegion
// Constructor is PRIVATE - only
// a CardWindow can create cardstacks!
//
CardRegion(CardWindow &parent, int id, bool fVisible,
CardRegion(CardWindow &parent, int id, bool fVisible,
int x, int y, int xOffset, int yOffset);
~CardRegion();
@@ -25,7 +29,7 @@ class CardRegion
public:
void SetBackColor(COLORREF cr);
void SetCardStack(const CardStack &cs);
const CardStack & GetCardStack();
@@ -34,9 +38,8 @@ public:
//
bool SetDragRule(UINT uDragType, pCanDragProc proc = 0);
bool SetDropRule(UINT uDropType, pCanDropProc proc = 0);
void SetClickProc (pClickProc proc);
void SetClickReleaseProc (pClickProc proc);
void SetDblClickProc (pClickProc proc);
void SetAddCardProc (pAddProc proc);
@@ -84,7 +87,7 @@ public:
void Clear() { cardstack.Clear(); }
void Reverse() { cardstack.Reverse(); }
void Push(const Card card) { cardstack.Push(card); }
void Push(const CardStack &cs) { cardstack.Push(cs); }
@@ -115,7 +118,7 @@ private:
bool CanDragCards(int iNumCards);
bool CanDropCards(CardStack &cards);
void CalcApparentCards();
int CalcApparentCards(int realnum);
@@ -129,17 +132,16 @@ private:
bool OnLButtonDblClk(int x, int y);
bool OnMouseMove(int x, int y);
bool OnLButtonUp(int x, int y);
void ClickRelease(int x, int y);
//
// Private data members
//
int id;
CardWindow &parentWnd;
CardStack cardstack; //cards in this stack
CardStack dragstack; //cards which we might be dragging
@@ -165,14 +167,14 @@ private:
// Used for mouse-dragging / moving cards
//
int iNumDragCards;
int mousexoffset;
int mousexoffset;
int mouseyoffset;
int oldx;
int oldy;
int nDragCardWidth;
int nDragCardHeight;
HDC hdcBackGnd;
HBITMAP hbmBackGnd;
HDC hdcDragCard;
@@ -181,7 +183,7 @@ private:
int nNumApparentCards;
int nThreedCount;
bool fVisible;
int nFlashCount;
bool fFlashVisible;
UINT uFlashTimer;
@@ -195,20 +197,20 @@ private:
UINT uDragRule;
UINT uDropRule;
//
// Stack callback support
//
//
pCanDragProc CanDragCallback;
pCanDropProc CanDropCallback;
pClickProc ClickCallback;
pClickProc ClickReleaseCallback;
pClickProc DblClickCallback;
pAddProc AddCallback;
pRemoveProc RemoveCallback;
//locking mechanism to prevent user dragging etc
HANDLE mxlock;
HANDLE mxlock;
};
#endif /* CARDREGION_INCLUDED */
#endif

View File

@@ -4,8 +4,11 @@
// Freeware
// Copyright J Brown 2001
//
#include <windows.h>
#include <stdlib.h>
#include "cardlib.h"
#include "cardregion.h"
#include "cardcolor.h"
HPALETTE UseNicePalette(HDC hdc, HPALETTE hPalette);
void PaintRect(HDC hdc, RECT *rect, COLORREF colour);
@@ -77,7 +80,7 @@ void DrawHorzCardStrip(HDC hdc, int x, int y, int nCardNum, int height, BOOL fDr
// draw the outer-most lips
BitBlt(hdc, x, y+two, 1, height-two*tips, __hdcCardBitmaps, sx, sy+two, SRCCOPY);
BitBlt(hdc, x+__cardwidth-1, y+two, 1, height-two*tips, __hdcCardBitmaps, sx+__cardwidth-1, sy+two, SRCCOPY);
BitBlt(hdc, x+__cardwidth-1, y+two, 1, height-two*tips, __hdcCardBitmaps, sx+__cardwidth-1, sy+two, SRCCOPY);
}
//
@@ -104,7 +107,7 @@ void DrawVertCardStrip(HDC hdc, int x, int y, int nCardNum, int width, BOOL fDra
BOOL tips = fDrawTips ? FALSE : TRUE;
if(width == 0) return;
if(width < 0)
{
@@ -142,7 +145,7 @@ void DrawCardCorner(HDC hdc, int x, int y, int cardval, int xdir, int ydir)
HDC hdcSource = __hdcCardBitmaps;
if(xdir < 0)
if(xdir < 0)
{
x += __cardwidth + xdir - 1;
sx += __cardwidth + xdir - 1;
@@ -153,7 +156,7 @@ void DrawCardCorner(HDC hdc, int x, int y, int cardval, int xdir, int ydir)
sx += xdir;
}
if(ydir < 0)
if(ydir < 0)
{
y += __cardheight + ydir - 1;
sy += __cardheight + ydir - 1;
@@ -209,13 +212,13 @@ void CardRegion::Clip(HDC hdc)
{
int numtoclip;
if(fVisible == false)
if(fVisible == false)
return;
Update(); //Update this stack's size+card count
numtoclip = nNumApparentCards;
//if we are making this stack flash on/off, then only
//if we are making this stack flash on/off, then only
//clip the stack for drawing if the flash is in its ON state
if(nFlashCount != 0)
{
@@ -227,9 +230,9 @@ void CardRegion::Clip(HDC hdc)
if(xoffset != 0 && yoffset != 0 && cardstack.NumCards() != 0)
{
for(int j = 0; j < numtoclip; j ++)
{
{
ClipCard(hdc, xpos + xoffset * j, ypos + yoffset * j, __cardwidth, __cardheight);
}
}
}
//otherwise if just offset along a horizontal/vertical axis
else
@@ -255,7 +258,7 @@ void CardRegion::Render(HDC hdc)
int cardnum = 0;
int numtodraw;
BOOL fDrawTips;
Update(); //Update this stack's card count + size
numtodraw = nNumApparentCards;
@@ -267,26 +270,26 @@ void CardRegion::Render(HDC hdc)
}
if(fVisible == 0) return;
cardnum = cardstack.NumCards() - numtodraw;
int counter;
for(counter = 0; counter < numtodraw; counter++)
{
int cardval;
int x = xoffset * counter + xpos;
int y = yoffset * counter + ypos;
//if about to draw last card, then actually draw the top card
if(counter == numtodraw - 1) cardnum = cardstack.NumCards() - 1;
Card card = cardstack.cardlist[cardnum];
cardval = card.Idx();
if(card.FaceDown())
cardval = nBackCardIdx; //card-back
//only draw the visible part of the card
if(counter < numtodraw - 1)
{
@@ -295,11 +298,11 @@ void CardRegion::Render(HDC hdc)
else
fDrawTips = TRUE;
if((yoffset != 0 && abs(xoffset) == 1) || (xoffset != 0 && abs(yoffset) == 1))
if(yoffset != 0 && abs(xoffset) == 1 || xoffset != 0 && abs(yoffset) == 1)
fDrawTips = TRUE;
//draw horizontal strips
if(yoffset > 0)
if(yoffset > 0)
{
DrawHorzCardStrip(hdc, x, y, cardval, yoffset, fDrawTips);
}
@@ -336,32 +339,26 @@ void CardRegion::Render(HDC hdc)
cardnum ++;
} //end of index
if(counter == 0) //if the cardstack is empty, then draw it that way
{
int x = xpos;
int y = ypos;
switch(uEmptyImage)
{
default:
case CS_EI_NONE:
default: case CS_EI_NONE:
//this wipes the RECT variable, so watch out!
//SetRect(&rect, x, y, x+__cardwidth, y+__cardheight);
//PaintRect(hdc, &rect, MAKE_PALETTERGB(crBackgnd));
parentWnd.PaintCardRgn(hdc, x, y, __cardwidth, __cardheight, x, y);
break;
case CS_EI_SUNK:
case CS_EI_SUNK: //case CS_EI_CIRC: case CS_EI_X:
DrawCard(hdc, x, y, __hdcPlaceHolder, __cardwidth, __cardheight);
break;
case CS_EI_CIRC:
case CS_EI_X:
CardBlt(hdc, x, y, uEmptyImage);
break;
}
}
return;
@@ -372,7 +369,7 @@ int calc_offset(int offset, int numcards, int numtodrag, int realvisible)
if(offset >= 0)
return -offset * numcards;
else
return -offset * (numtodrag) +
return -offset * (numtodrag) +
-offset * (realvisible - 1);
}
@@ -420,10 +417,10 @@ void CardRegion::PrepareDragBitmaps(int numtodrag)
//background buffer, so it appears if we have lifted the card from the stack
//PaintRect(hdcBackGnd, &rect, crBackgnd);
SetRect(&rect, 0, 0, nDragCardWidth, nDragCardHeight);
xoff = calc_offset(xoffset, numcards, numtodrag, realvisible);
yoff = calc_offset(yoffset, numcards, numtodrag, realvisible);
parentWnd.PaintCardRgn(hdcBackGnd, 0, 0, nDragCardWidth, nDragCardHeight, xpos - xoff, ypos - yoff);
//
@@ -435,7 +432,7 @@ void CardRegion::PrepareDragBitmaps(int numtodrag)
{
Card card = cardstack.cardlist[iwhichcard];
int nCardVal;
nCardVal = card.FaceUp() ? card.Idx() : nBackCardIdx;
xoff = xoffset * icard + calc_offset(xoffset, numcards, numtodrag, realvisible);//- xoffset * ((numcards+numtodrag) / nThreedCount - numtodrag);
@@ -444,11 +441,11 @@ void CardRegion::PrepareDragBitmaps(int numtodrag)
CardBlt(hdcBackGnd, xoff, yoff, nCardVal);
iwhichcard++;
}
//
// If there are no cards under this one, just draw the place holder
//
if(numcards == 0)
if(numcards == 0)
{
int xoff = 0, yoff = 0;
@@ -469,11 +466,6 @@ void CardRegion::PrepareDragBitmaps(int numtodrag)
case CS_EI_SUNK:
DrawCard(hdcBackGnd, xoff, yoff, __hdcPlaceHolder, __cardwidth, __cardheight);
break;
case CS_EI_CIRC:
case CS_EI_X:
CardBlt(hdc, xoff, yoff, uEmptyImage);
break;
}
}
@@ -488,12 +480,12 @@ void CardRegion::PrepareDragBitmaps(int numtodrag)
if(xoffset >= 0) xoff = xoffset * icard;
else xoff = -xoffset * (numtodrag - icard - 1);
if(yoffset >= 0) yoff = yoffset * icard;
else yoff = -yoffset * (numtodrag - icard - 1);
Card card = dragstack.cardlist[icard];
nCardVal = card.FaceUp() ? card.Idx() : nBackCardIdx;
CardBlt(hdcDragCard, xoff, yoff, nCardVal);
@@ -536,11 +528,11 @@ void CardRegion::PrepareDragBitmapsThreed(int numtodrag)
//--PaintRect(hdcBackGnd, &rect, crBackgnd);
int threedadjust = numcards % nThreedCount == 0;
numunder = CalcApparentCards(numcards);
iwhichcard = (numcards+numtodrag) - numunder - 1;
if(nThreedCount == 1) iwhichcard = 0;
int xoff = calc_offset(xoffset, numunder, numtodrag, numunder);
int yoff = calc_offset(yoffset, numunder, numtodrag, numunder);
@@ -556,18 +548,18 @@ void CardRegion::PrepareDragBitmapsThreed(int numtodrag)
Card card = cardstack.cardlist[iwhichcard];
int nCardVal = card.FaceUp() ? card.Idx() : nBackCardIdx;
CardBlt(hdcBackGnd,
CardBlt(hdcBackGnd,
xoffset * icard - xoffset*(numunder-numtodrag+threedadjust),
yoffset * icard - yoffset*(numunder-numtodrag+threedadjust),
nCardVal);
iwhichcard++;
}
//
// If there are no cards under this one, just draw the place holder
//
if(numcards == 0)
if(numcards == 0)
{
switch(uEmptyImage)
{
@@ -581,11 +573,7 @@ void CardRegion::PrepareDragBitmapsThreed(int numtodrag)
case CS_EI_SUNK:
DrawCard(hdcBackGnd, 0, 0, __hdcPlaceHolder, __cardwidth, __cardheight);
break;
case CS_EI_CIRC:
case CS_EI_X:
CardBlt(hdc, 0, 0, uEmptyImage);
break;
}
}
@@ -593,7 +581,7 @@ void CardRegion::PrepareDragBitmapsThreed(int numtodrag)
// now render the drag-cards into the dragcard image
//
PaintRect(hdcDragCard, &rect, crBackgnd);
for(icard = 0; icard < numtodrag; icard++)
{
Card card = dragstack.cardlist[icard];

View File

@@ -4,10 +4,13 @@
// Freeware
// Copyright J Brown 2001
//
#include <windows.h>
#include <math.h>
#include <stdio.h>
#include "cardlib.h"
#include <math.h>
#include "cardwindow.h"
#include "cardregion.h"
#if 1
#define TRACE(s)
@@ -50,7 +53,7 @@ CardRegion *CardWindow::GetBestStack(int x, int y, int w, int h)
maxoverlapidx = i;
}
}
//if we found a stack to drop onto
if(maxoverlapidx != -1)
{
@@ -66,7 +69,7 @@ bool CardRegion::IsPointInStack(int x, int y)
{
int axpos = xoffset < 0 ? xpos + (nNumApparentCards-1)*xoffset : xpos;
int aypos = yoffset < 0 ? ypos + (nNumApparentCards-1)*yoffset : ypos;
if(x >= axpos && x < axpos + width && y >= aypos && y < aypos + height && fVisible)
return true;
else
@@ -81,7 +84,7 @@ int CardRegion::GetNumDragCards(int x, int y)
//make x,y relative to the stack's upper left corner
x -= xpos + (xoffset < 0 ? (nNumApparentCards/*cardstack.NumCards()*/ - 1) * xoffset : 0);
y -= ypos + (yoffset < 0 ? (nNumApparentCards/*cardstack.NumCards()*/ - 1) * yoffset : 0);
//if stack is empty, cannot drag any cards from it
if(cardstack.NumCards() <= 0)
return 0;
@@ -155,19 +158,19 @@ bool CardRegion::CanDragCards(int iNumCards)
{
case CS_DRAG_ALL:
return true;
case CS_DRAG_TOP:
if(iNumCards == 1)
return true;
else
return false;
case CS_DRAG_NONE:
return false;
case CS_DRAG_CALLBACK:
if(CanDragCallback)
{
return CanDragCallback(*this, iNumCards);
@@ -176,7 +179,7 @@ bool CardRegion::CanDragCards(int iNumCards)
{
return false;
}
default:
return false;
}
@@ -200,7 +203,7 @@ bool CardRegion::CanDropCards(CardStack &cards)
return false;
case CS_DROP_CALLBACK:
if(CanDropCallback)
{
return CanDropCallback(*this, cards);
@@ -217,7 +220,7 @@ bool CardRegion::CanDropCards(CardStack &cards)
bool CardRegion::OnLButtonDblClk(int x, int y)
{
iNumDragCards = GetNumDragCards(x, y);
iNumDragCards = GetNumDragCards(x, y);
if(DblClickCallback)
DblClickCallback(*this, iNumDragCards);
@@ -227,7 +230,7 @@ bool CardRegion::OnLButtonDblClk(int x, int y)
bool CardRegion::OnLButtonDown(int x, int y)
{
iNumDragCards = GetNumDragCards(x, y);
iNumDragCards = GetNumDragCards(x, y);
#ifdef _DEBUG
if(DebugStackClickProc)
@@ -247,13 +250,13 @@ bool CardRegion::OnLButtonDown(int x, int y)
//of the cards that are being dragged
mousexoffset = x - xpos - xoffset * (nNumApparentCards - iNumDragCards);
mouseyoffset = y - ypos - yoffset * (nNumApparentCards - iNumDragCards);
if(xoffset < 0)
mousexoffset += -xoffset * (iNumDragCards - 1);
if(yoffset < 0)
mouseyoffset += -yoffset * (iNumDragCards - 1);
//remove the cards from the source stack
dragstack = cardstack.Pop(iNumDragCards);
@@ -262,7 +265,7 @@ bool CardRegion::OnLButtonDown(int x, int y)
oldx = x - mousexoffset;
oldy = y - mouseyoffset;
Update(); //Update this stack's card count + size
SetCapture((HWND)parentWnd);
@@ -276,20 +279,12 @@ bool CardRegion::OnLButtonDown(int x, int y)
return false;
}
void CardRegion::ClickRelease(int x, int y)
{
iNumDragCards = GetNumDragCards(x, y);
if (ClickReleaseCallback)
ClickReleaseCallback(*this, iNumDragCards);
}
bool CardRegion::OnLButtonUp(int x, int y)
{
CardRegion *pDestStack = 0;
HDC hdc;
int dropstackid = CS_DROPZONE_NODROP;
RECT dragrect;
DropZone *dropzone;
@@ -303,7 +298,7 @@ bool CardRegion::OnLButtonUp(int x, int y)
if(dropzone)
{
dropstackid = dropzone->DropCards(dragstack);
if(dropstackid != CS_DROPZONE_NODROP)
pDestStack = parentWnd.CardRegionFromId(dropstackid);
else
@@ -313,28 +308,28 @@ bool CardRegion::OnLButtonUp(int x, int y)
{
pDestStack = parentWnd.GetBestStack(x - mousexoffset, y - mouseyoffset, nDragCardWidth, nDragCardHeight);
}
// If have found a stack to drop onto
//
TRACE ( "can I drop card?\n" );
if(pDestStack && pDestStack->CanDropCards(dragstack))
if(pDestStack && pDestStack->CanDropCards(dragstack))
{
TRACE ( "yes, dropping card\n" );
hdc = GetDC((HWND)parentWnd);
// UseNicePalette(hdc);
ZoomCard(hdc, x - mousexoffset, y - mouseyoffset, pDestStack);
ReleaseDC((HWND)parentWnd, hdc);
//
//add the cards to the destination stack
//
CardStack temp = pDestStack->GetCardStack();
temp.Push(dragstack);
pDestStack->SetCardStack(temp);
// pDestStack->Update(); //Update this stack's card count + size
// pDestStack->UpdateFaceDir(temp);
// Call the remove callback on THIS stack, if one is specified
//
if(RemoveCallback)
@@ -344,7 +339,7 @@ bool CardRegion::OnLButtonUp(int x, int y)
//
if(pDestStack->AddCallback)
pDestStack->AddCallback(*pDestStack, pDestStack->cardstack);//index, deststack->numcards);
RedrawIfNotDim(pDestStack, true);
TRACE ( "done dropping card\n" );
}
@@ -367,10 +362,10 @@ bool CardRegion::OnLButtonUp(int x, int y)
Update(); //Update this stack's card count + size
TRACE ( "done putting card back\n" );
}
ReleaseDragBitmaps();
ReleaseCapture();
TRACE ( "OnLButtonUp() done\n" );
return true;
}
@@ -380,20 +375,20 @@ bool CardRegion::OnMouseMove(int x, int y)
HDC hdc;
hdc = GetDC((HWND)parentWnd);
x -= mousexoffset;
y -= mouseyoffset;
MoveDragCardTo(hdc, x, y);
//BitBlt(hdc, nDragCardWidth+10, 0, nDragCardWidth, nDragCardHeight, hdcBackGnd, 0, 0, SRCCOPY);
//BitBlt(hdc, 0, 0, nDragCardWidth, nDragCardHeight, hdcDragCard, 0, 0, SRCCOPY);
ReleaseDC((HWND)parentWnd, hdc);
oldx = x;
oldy = y;
return true;
}
@@ -428,48 +423,48 @@ void CardRegion::MoveDragCardTo(HDC hdc, int x, int y)
//mask off the new position of the drag-card, so
//that it will not be painted over
ClipCard(hdc, x, y, nDragCardWidth, nDragCardHeight);
//restore the area covered by the card at its previous position
BitBlt(hdc, oldx, oldy, nDragCardWidth, nDragCardHeight, hdcBackGnd, 0, 0, SRCCOPY);
//remove clipping so we can draw the card at its new place
SelectClipRgn(hdc, NULL);
//if the card's old and new positions overlap, then we
//need some funky code to update the "saved background" image,
SetRect(&rect1, oldx, oldy, oldx+nDragCardWidth, oldy+nDragCardHeight);
SetRect(&rect2, x, y, x+nDragCardWidth, y+nDragCardHeight);
if(IntersectRect(&inter, &rect1, &rect2))
{
int interwidth = inter.right-inter.left;
int interheight = inter.bottom-inter.top;
int destx, desty, srcx, srcy;
if(rect2.left > rect1.left)
{
destx = 0; srcx = nDragCardWidth - interwidth;
if(rect2.left > rect1.left)
{
destx = 0; srcx = nDragCardWidth - interwidth;
}
else
{
destx = nDragCardWidth - interwidth; srcx = 0;
}
if(rect2.top > rect1.top)
if(rect2.top > rect1.top)
{
desty = 0; srcy = nDragCardHeight - interheight;
}
else
else
{
desty = nDragCardHeight - interheight; srcy = 0;
}
//shift the bit we didn't use for the restore (due to the clipping)
//into the opposite corner
BitBlt(hdcBackGnd, destx,desty, interwidth, interheight, hdcBackGnd, srcx, srcy, SRCCOPY);
ExcludeClipRect(hdcBackGnd, destx, desty, destx+interwidth, desty+interheight);
//this bit requires us to clip the BitBlt (from screen to background)
//as BitBlt is a bit buggy it seems
ClippedBitBlt(hdcBackGnd, 0,0, nDragCardWidth, nDragCardHeight, hdc, x, y, SRCCOPY);
@@ -479,7 +474,7 @@ void CardRegion::MoveDragCardTo(HDC hdc, int x, int y)
{
BitBlt(hdcBackGnd, 0,0, nDragCardWidth, nDragCardHeight, hdc, x, y, SRCCOPY);
}
//finally draw the card to the screen
DrawCard(hdc, x, y, hdcDragCard, nDragCardWidth, nDragCardHeight);
}
@@ -499,7 +494,7 @@ void ZoomCard(HDC hdc, int xpos, int ypos, CARDSTACK *dest)
{
long dx, dy, x , y;
int apparentcards;
x = xpos << PRECISION; y = ypos << PRECISION;
@@ -508,7 +503,7 @@ void ZoomCard(HDC hdc, int xpos, int ypos, CARDSTACK *dest)
apparentcards=dest->numcards/dest->threedcount;
int idestx = dest->xpos + dest->xoffset * (apparentcards);// - iNumDragCards);
int idestx = dest->xpos + dest->xoffset * (apparentcards);// - iNumDragCards);
int idesty = dest->ypos + dest->yoffset * (apparentcards);// - iNumDragCards);
//normalise the motion vector
@@ -516,7 +511,7 @@ void ZoomCard(HDC hdc, int xpos, int ypos, CARDSTACK *dest)
dy = (idesty<<PRECISION) - y;
long recip = (1 << PRECISION) / 1;//sqrt(dx*dx + dy*dy);
dx *= recip * 16;//CARDZOOMSPEED;
dx *= recip * 16;//CARDZOOMSPEED;
dy *= recip * 16;//CARDZOOMSPEED;
//if(dx < 0) dxinc = 1.001; else
@@ -617,7 +612,7 @@ void CardRegion::ZoomCard(HDC hdc, int xpos, int ypos, CardRegion *pDestStack)
if(pDestStack->xoffset < 0)
xdraw = -pDestStack->xoffset * (iNumDragCards-i-1);
if(pDestStack->facedirection == CS_FACEUP &&
if(pDestStack->facedirection == CS_FACEUP &&
pDestStack->numcards+i >= dest->numfacedown)
{
//cdtDraw(hdcDragCard, xdraw, ydraw, iDragCards[i], ectFACES, 0);
@@ -631,7 +626,7 @@ void CardRegion::ZoomCard(HDC hdc, int xpos, int ypos, CardRegion *pDestStack)
MoveDragCardTo(hdc, ix, iy);
if(attarget || (ix == idestx && iy == idesty))
if(attarget || ix == idestx && iy == idesty)
break;
oldx = (int)x;

View File

@@ -4,8 +4,10 @@
// Freeware
// Copyright J Brown 2001
//
#include <windows.h>
#include <stdlib.h>
#include "cardlib.h"
#include "cardstack.h"
Card &CardStack::operator[] (size_t index)
{
@@ -59,10 +61,10 @@ void CardStack::Shuffle()
//want to do this:
// bad: src = rand() % (dest + 1)
// good: src = rand() / (RAND_MAX / (dest+1) + 1)
//positions from 0 to dest
src = rand() / (RAND_MAX / (dest+1) + 1);
//swap the cards
temp = cardlist[src];
cardlist[src] = cardlist[dest];
@@ -91,7 +93,7 @@ void CardStack::Push(const CardStack &cardstack)
if(nNumCards + cardstack.nNumCards < MAX_CARDSTACK_SIZE)
{
int num = cardstack.NumCards();
for(int i = 0; i < num; i++)
cardlist[nNumCards++] = cardstack.cardlist[i];
}

View File

@@ -1,6 +1,8 @@
#ifndef CARDSTACK_INCLUDED
#define CARDSTACK_INCLUDED
#include "card.h"
#define MAX_CARDSTACK_SIZE 128
class CardStack
@@ -15,7 +17,7 @@ public:
void Shuffle();
void Clear();
void Reverse();
void Push(const Card card);
void Push(const CardStack &cardstack);
@@ -39,8 +41,8 @@ public:
CardStack operator + (Card card);
CardStack operator + (CardStack &cs);
private:
private:
CardStack(CardStack &copythis, size_t fromindex);
@@ -48,5 +50,4 @@ private:
int nNumCards;
};
#endif /* CARDSTACK_INCLUDED */
#endif

View File

@@ -4,10 +4,16 @@
// Freeware
// Copyright J Brown 2001
//
#include "cardlib.h"
#include <windows.h>
#include <tchar.h>
#include <stdlib.h>
#include "globals.h"
#include "cardlib.h"
#include "cardbutton.h"
#include "cardregion.h"
#include "cardwindow.h"
#include "cardcolor.h"
extern HPALETTE __holdplacepal;
@@ -88,7 +94,7 @@ CardWindow::CardWindow() : m_hWnd(0)
__hPalette = CreateCardPalette();
__hdcPlaceHolder = CreateCompatibleDC(hdc);
__holdplacepal = UseNicePalette(__hdcPlaceHolder, __hPalette);
__hbmPlaceHolder = CreateSinkBmp(hdc, __hdcPlaceHolder, crBackgnd, __cardwidth, __cardheight);
@@ -112,10 +118,10 @@ BOOL CardWindow::Create(HWND hwndParent, DWORD dwExStyle, DWORD dwStyle, int x,
return FALSE;
//Create the window associated with this object
m_hWnd = CreateWindowEx(dwExStyle, szCardName, NULL,
dwStyle,
x, y, width, height,
hwndParent, NULL, GetModuleHandle(NULL), this);
m_hWnd = CreateWindowEx(WS_EX_CLIENTEDGE, szCardName, 0,
WS_CHILD | WS_VISIBLE,
0,0,100,100,
hwndParent, 0, GetModuleHandle(0), this);
return TRUE;
}
@@ -177,7 +183,7 @@ void CardWindow::SetBackColor(COLORREF cr)
{
crBackgnd = cr;
int i;
//
// Create the exact palette we need to render the buttons/stacks
//
@@ -243,7 +249,7 @@ CardButton* CardWindow::CardButtonFromPoint(int x, int y)
return bptr;
}
return 0;
return 0;
}
CardRegion* CardWindow::CardRegionFromPoint(int x, int y)
@@ -260,7 +266,7 @@ CardRegion* CardWindow::CardRegionFromPoint(int x, int y)
return Regions[i];
}
return 0;
return 0;
}
//
@@ -269,7 +275,7 @@ CardRegion* CardWindow::CardRegionFromPoint(int x, int y)
//
LRESULT CALLBACK CardWindow::CardWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
CardWindow *cw = (CardWindow *)GetWindowLongPtr(hwnd, 0);
CardWindow *cw = (CardWindow *)GetWindowLong(hwnd, 0);
return cw->WndProc(hwnd, iMsg, wParam, lParam);
}
@@ -291,7 +297,7 @@ void CardWindow::Paint(HDC hdc)
}
//
// Clip the buttons
// Clip the buttons
//
for(i = 0; i < nNumButtons; i++)
{
@@ -299,10 +305,10 @@ void CardWindow::Paint(HDC hdc)
}
// Now paint the whole screen with background colour,
// Now paint the whole screen with background colour,
//
GetClientRect(m_hWnd, &rect);
//PaintRect(hdc, &rect, MAKE_PALETTERGB(crBackgnd));
PaintCardRgn(hdc, 0, 0, rect.right, rect.bottom, 0, 0);
SelectClipRgn(hdc, NULL);
@@ -320,7 +326,7 @@ void CardWindow::Paint(HDC hdc)
{
Regions[i]->Render(hdc);
}
// Paint each button now
//
SelectClipRgn(hdc, NULL);
@@ -360,7 +366,7 @@ LRESULT CALLBACK CardWindow::WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
//
// associate this class with the window
//
SetWindowLongPtr(hwnd, 0, (LONG_PTR)cs->lpCreateParams);
SetWindowLong(hwnd, 0, (LONG)cs->lpCreateParams);
return 1;
@@ -371,7 +377,7 @@ LRESULT CALLBACK CardWindow::WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
case WM_SIZE:
nWidth = LOWORD(lParam);
nHeight = HIWORD(lParam);
//
// reposition all the stacks and buttons
// in case any of them are centered, right-justified etc
@@ -380,17 +386,17 @@ LRESULT CALLBACK CardWindow::WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
{
Regions[i]->AdjustPosition(nWidth, nHeight);
}
for(i = 0; i < nNumButtons; i++)
{
Buttons[i]->AdjustPosition(nWidth, nHeight);
}
//
//
// Call the user-defined resize proc AFTER all the stacks
// have been positioned
//
if(ResizeWndCallback)
if(ResizeWndCallback)
ResizeWndCallback(nWidth, nHeight);
return 0;
@@ -405,7 +411,7 @@ LRESULT CALLBACK CardWindow::WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
return 0;
case WM_TIMER:
//find the timer object in the registered funcs
/*if(wParam >= 0x10000)
{
@@ -414,10 +420,10 @@ LRESULT CALLBACK CardWindow::WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
if(RegFuncs[i].id == wParam)
{
KillTimer(hwnd, wParam);
//call the registered function!!
RegFuncs[i].func(RegFuncs[i].dwParam);
RegFuncs[i] = RegFuncs[nRegFuncs-1];
nRegFuncs--;
}
@@ -470,11 +476,11 @@ LRESULT CALLBACK CardWindow::WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
if(!stackptr->OnLButtonDown(x, y))
stackptr = 0;
}
return 0;
case WM_LBUTTONUP:
x = (short)LOWORD(lParam);
y = (short)HIWORD(lParam);
@@ -487,7 +493,7 @@ LRESULT CALLBACK CardWindow::WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
buttonptr = 0;
return 0;
}
if(stackptr != 0)
{
stackptr->OnLButtonUp(x, y);
@@ -495,16 +501,10 @@ LRESULT CALLBACK CardWindow::WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
return 0;
}
if ((stackptr = CardRegionFromPoint(x, y)) != 0)
{
stackptr->ClickRelease(x, y);
stackptr = 0;
}
return 0;
case WM_MOUSEMOVE:
x = (short)LOWORD(lParam);
y = (short)HIWORD(lParam);
@@ -519,7 +519,7 @@ LRESULT CALLBACK CardWindow::WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
{
return stackptr->OnMouseMove(x, y);
}
return 0;
}
@@ -563,7 +563,7 @@ bool CardWindow::DeleteButton(CardButton *pButton)
if(Buttons[i] == pButton)
{
CardButton *cb = Buttons[i];
//shift any after this one backwards
for(int j = i; j < nNumButtons - 1; j++)
{
@@ -572,7 +572,7 @@ bool CardWindow::DeleteButton(CardButton *pButton)
delete cb;
nNumButtons--;
return true;
}
}
@@ -587,7 +587,7 @@ bool CardWindow::DeleteRegion(CardRegion *pRegion)
if(Regions[i] == pRegion)
{
CardRegion *cr = Regions[i];
//shift any after this one backwards
for(int j = i; j < nNumCardRegions - 1; j++)
{
@@ -641,7 +641,7 @@ bool CardWindow::DistributeStacks(int nIdFrom, int nNumStacks, UINT xJustify, in
if(Regions[i]->IsVisible())
numvisiblestacks++;
}
if(xJustify == CS_XJUST_CENTER)
{
//startx -= ((numvisiblestacks + spacing) * cardwidth - spacing) / 2;
@@ -658,7 +658,7 @@ bool CardWindow::DistributeStacks(int nIdFrom, int nNumStacks, UINT xJustify, in
Regions[i]->xjustify = CS_XJUST_CENTER;
curx += Regions[i]->width + xSpacing;
}
}
}
@@ -666,7 +666,7 @@ bool CardWindow::DistributeStacks(int nIdFrom, int nNumStacks, UINT xJustify, in
{
nStartX -= ((numvisiblestacks + xSpacing) * __cardwidth - xSpacing);
}
if(xJustify == CS_XJUST_NONE)
{
for(i = startindex; i < startindex + nNumStacks; i++)
@@ -677,7 +677,7 @@ bool CardWindow::DistributeStacks(int nIdFrom, int nNumStacks, UINT xJustify, in
curx += Regions[i]->width + xSpacing;
Regions[i]->UpdateSize();
}
}
}
@@ -710,7 +710,7 @@ HPALETTE CardWindow::CreateCardPalette()
cols[1] = RGB(255, 255, 255);
//include the base background colour
cols[2] = crBackgnd;
cols[1] = crBackgnd;
//include the standard button colours...
cols[3] = CardButton::GetHighlight(crBackgnd);
@@ -735,11 +735,6 @@ void CardWindow::SetBackCardIdx(UINT uBackIdx)
}
UINT CardWindow::GetBackCardIdx()
{
return nBackCardIdx;
}
void CardWindow::PaintCardRgn(HDC hdc, int dx, int dy, int width, int height, int sx, int sy)
{
RECT rect;
@@ -748,7 +743,7 @@ void CardWindow::PaintCardRgn(HDC hdc, int dx, int dy, int width, int height, in
if(hbmBackImage == 0)
{
SetRect(&rect, dx, dy, dx+width, dy+height);
/*if(GetVersion() < 0x80000000)
{
PaintRect(hdc, &rect, MAKE_PALETTERGB(crBackgnd));
@@ -763,7 +758,7 @@ void CardWindow::PaintCardRgn(HDC hdc, int dx, int dy, int width, int height, in
//otherwise, paint using the bitmap
else
{
// Draw whatever part of background we can
// Draw whatever part of background we can
BitBlt(hdc, dx, dy, width, height, hdcBackImage, sx, sy, SRCCOPY);
// Now we need to paint any area outside the bitmap,
@@ -778,14 +773,14 @@ void CardWindow::PaintCardRgn(HDC hdc, int dx, int dy, int width, int height, in
HRGN hr2 = CreateRectRgn(0, 0, bm.bmWidth, bm.bmHeight);
HRGN hr3 = CreateRectRgn(0,0, 1, 1);
HRGN hr4 = CreateRectRgn(0,0, 1, 1);
CombineRgn(hr3, hr1, hr2, RGN_DIFF);
GetClipRgn(hdc, hr4);
CombineRgn(hr3, hr4, hr3, RGN_AND);
SelectClipRgn(hdc, hr3);
// Fill remaining space not filled with bitmap
HBRUSH hbr = CreateSolidBrush(crBackgnd);
FillRgn(hdc, hr3, hbr);
@@ -793,7 +788,7 @@ void CardWindow::PaintCardRgn(HDC hdc, int dx, int dy, int width, int height, in
// Clean up
SelectClipRgn(hdc, hr4);
DeleteObject(hr1);
DeleteObject(hr2);
DeleteObject(hr3);

Some files were not shown because too many files have changed in this diff Show More