diff --git a/reactos/base/applications/calc/about.c b/reactos/base/applications/calc/about.c new file mode 100644 index 00000000000..ae9b386c1f7 --- /dev/null +++ b/reactos/base/applications/calc/about.c @@ -0,0 +1,33 @@ +#include "calc.h" + +#define MAX_LICENSE_SIZE 1000 // it's enought! + +INT_PTR CALLBACK AboutDlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) +{ + TCHAR *license; + + switch (msg) { + case WM_INITDIALOG: + license = (TCHAR *)alloca(MAX_LICENSE_SIZE*sizeof(TCHAR)); + if (LoadString(calc.hInstance, IDS_STRING_LICENSE, license, MAX_LICENSE_SIZE)) + SendDlgItemMessage(hWnd, IDC_EDIT_LICENSE, WM_SETTEXT, 0, (LPARAM)license); + /* Update software version */ + SendDlgItemMessage(hWnd, IDC_TEXT_VERSION, WM_GETTEXT, (WPARAM)MAX_LICENSE_SIZE, (LPARAM)license); + _tcscat(license, CALC_VERSION); + SendDlgItemMessage(hWnd, IDC_TEXT_VERSION, WM_SETTEXT, 0, (LPARAM)license); + return TRUE; + case WM_COMMAND: + switch (LOWORD(wp)) { + case IDOK: + EndDialog(hWnd, 0); + return TRUE; + } + break; + + case WM_CLOSE: + EndDialog(hWnd, 0); + return 0; + } + return FALSE; +} + diff --git a/reactos/base/applications/calc/calc.h b/reactos/base/applications/calc/calc.h new file mode 100644 index 00000000000..ed1d7d0a19c --- /dev/null +++ b/reactos/base/applications/calc/calc.h @@ -0,0 +1,219 @@ +#ifndef __CALC_H__ +#define __CALC_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef ENABLE_MULTI_PRECISION +#include + +#ifndef MPFR_DEFAULT_RND +#define MPFR_DEFAULT_RND mpfr_get_default_rounding_mode () +#endif + +#define LOCAL_EXP_SIZE 100000000L +#else + +#define LOCAL_EXP_SIZE 10000L + +#endif + +#include "resource.h" + +#ifndef IDC_STATIC +#define IDC_STATIC ((DWORD)-1) +#endif + +#define CALC_VERSION TEXT("1.06") + +/*#define USE_KEYBOARD_HOOK*/ + +#define SIZEOF(_ar) (sizeof(_ar)/sizeof(_ar[1])) + +// RPN.C +/* +typedef struct _postfix_item_t { + unsigned int type; + union { +#ifdef ENABLE_MULTI_PRECISION + mpfr_t mf; +#else + double f; + INT64 i; +#endif + struct { + unsigned short int code; + unsigned short int elem; + } action; + } number; + struct _postfix_item_t *next; +} postfix_item_t; + +void flush_postfix(void); +void infix2postfix(char *in_str); +postfix_item_t *exec_postfix(void); +*/ + +// + +enum { + RPN_OPERATOR_PARENT, + RPN_OPERATOR_PERCENT, + RPN_OPERATOR_EQUAL, + + RPN_OPERATOR_OR, + RPN_OPERATOR_XOR, + RPN_OPERATOR_AND, + RPN_OPERATOR_LSH, + RPN_OPERATOR_ADD, + RPN_OPERATOR_SUB, + RPN_OPERATOR_MULT, + RPN_OPERATOR_DIV, + RPN_OPERATOR_MOD, + RPN_OPERATOR_POW, + RPN_OPERATOR_SQR, +}; + +typedef union { +#ifdef ENABLE_MULTI_PRECISION + mpfr_t mf; +#else + double f; + INT64 i; + UINT64 u; +#endif +} calc_number_t; + +void run_operator(calc_number_t *, calc_number_t *, + calc_number_t *, unsigned int); +int exec_infix2postfix(calc_number_t *, unsigned int); +void exec_closeparent(calc_number_t *); +int eval_parent_count(void); +void flush_postfix(void); +void exec_change_infix(void); +void start_rpn_engine(void); +void stop_rpn_engine(void); + +typedef struct { + calc_number_t num; + DWORD base; + void *next; +} statistic_t; + +enum { + CALC_LAYOUT_SCIENTIFIC=0, + CALC_LAYOUT_STANDARD, +}; + +typedef struct { + HINSTANCE hInstance; +#ifdef USE_KEYBOARD_HOOK + HHOOK hKeyboardHook; +#endif + HWND hWnd; + DWORD layout; + TCHAR buffer[256]; + TCHAR *ptr; + calc_number_t code; + calc_number_t prev; + calc_number_t memory; + statistic_t *stat; + BOOL is_memory; + BOOL is_nan; + BOOL sci_out; + BOOL sci_in; + BOOL usesep; + BOOL is_menu_on; + signed int esp; + DWORD base; + DWORD size; + DWORD degr; + DWORD action; + HWND hStatWnd; + char *Clipboard; + char *ClipPtr; + unsigned int last_operator; + unsigned int prev_operator; + TCHAR sDecimal[8]; + TCHAR sThousand[8]; + unsigned int sDecimal_len; + unsigned int sThousand_len; +} calc_t; + +extern calc_t calc; + +// +#define CALC_E 2.7182818284590452354 +#define CALC_PI 3.14159265358979323846 + +#define MODIFIER_INV 0x01 +#define MODIFIER_HYP 0x02 + +void apply_int_mask(calc_number_t *a); +#ifdef ENABLE_MULTI_PRECISION +void validate_rad2angle(calc_number_t *c); +void validate_angle2rad(calc_number_t *c); +#else +__int64 logic_dbl2int(calc_number_t *a); +double validate_rad2angle(double a); +double validate_angle2rad(calc_number_t *c); +#endif +void rpn_sin(calc_number_t *c); +void rpn_cos(calc_number_t *c); +void rpn_tan(calc_number_t *c); +void rpn_asin(calc_number_t *c); +void rpn_acos(calc_number_t *c); +void rpn_atan(calc_number_t *c); +void rpn_sinh(calc_number_t *c); +void rpn_cosh(calc_number_t *c); +void rpn_tanh(calc_number_t *c); +void rpn_asinh(calc_number_t *c); +void rpn_acosh(calc_number_t *c); +void rpn_atanh(calc_number_t *c); +BOOL rpn_validate_result(calc_number_t *c); +void rpn_int(calc_number_t *c); +void rpn_frac(calc_number_t *c); +void rpn_reci(calc_number_t *c); +void rpn_fact(calc_number_t *c); +void rpn_not(calc_number_t *c); +void rpn_pi(calc_number_t *c); +void rpn_2pi(calc_number_t *c); +void rpn_sign(calc_number_t *c); +void rpn_exp2(calc_number_t *c); +void rpn_exp3(calc_number_t *c); +void rpn_sqrt(calc_number_t *c); +void rpn_cbrt(calc_number_t *c); +void rpn_exp(calc_number_t *c); +void rpn_exp10(calc_number_t *c); +void rpn_ln(calc_number_t *c); +void rpn_log(calc_number_t *c); +void rpn_ave(calc_number_t *c); +void rpn_sum(calc_number_t *c); +void rpn_s(calc_number_t *c); +void rpn_s_m1(calc_number_t *c); +void rpn_dms2dec(calc_number_t *c); +void rpn_dec2dms(calc_number_t *c); +void rpn_zero(calc_number_t *c); +void rpn_copy(calc_number_t *dst, calc_number_t *src); +int rpn_is_zero(calc_number_t *c); +void rpn_alloc(calc_number_t *c); +void rpn_free(calc_number_t *c); + +// + +void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base); +void convert_text2number_2(calc_number_t *a); +void convert_real_integer(unsigned int base); + +// + +INT_PTR CALLBACK AboutDlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp); + +#endif diff --git a/reactos/base/applications/calc/calc.rbuild b/reactos/base/applications/calc/calc.rbuild index 8c849d287f8..82dc8caa99e 100644 --- a/reactos/base/applications/calc/calc.rbuild +++ b/reactos/base/applications/calc/calc.rbuild @@ -1,17 +1,17 @@ - + . + 0x0501 - 0x0501 - - - kernel32 + 0x0501 user32 gdi32 - comctl32 - dialog.c - stats.c - winecalc.c - rsrc.rc + kernel32 + about.c + function.c + rpn.c + utl.c + winmain.c + resource.rc diff --git a/reactos/base/applications/calc/calculator.ico b/reactos/base/applications/calc/calculator.ico deleted file mode 100644 index 01a50bdfd03..00000000000 Binary files a/reactos/base/applications/calc/calculator.ico and /dev/null differ diff --git a/reactos/base/applications/calc/copying.txt b/reactos/base/applications/calc/copying.txt new file mode 100644 index 00000000000..d511905c164 --- /dev/null +++ b/reactos/base/applications/calc/copying.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, 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 Lesser 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. + + + Copyright (C) + + 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 Street, 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. + + , 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 Lesser General +Public License instead of this License. diff --git a/reactos/base/applications/calc/dialog.c b/reactos/base/applications/calc/dialog.c deleted file mode 100644 index e032a7dc8ce..00000000000 --- a/reactos/base/applications/calc/dialog.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * 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 -#include -#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; -} - diff --git a/reactos/base/applications/calc/dialog.h b/reactos/base/applications/calc/dialog.h deleted file mode 100644 index a588259e6c0..00000000000 --- a/reactos/base/applications/calc/dialog.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * 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 ); - - - diff --git a/reactos/base/applications/calc/fun_mpfr.c b/reactos/base/applications/calc/fun_mpfr.c new file mode 100644 index 00000000000..b6607334c47 --- /dev/null +++ b/reactos/base/applications/calc/fun_mpfr.c @@ -0,0 +1,423 @@ +#include "calc.h" +#include + +void apply_int_mask(calc_number_t *r) +{ + mpz_t a, mask; + + switch (calc.size) { + case IDC_RADIO_QWORD: + mpz_init_set_str(mask, "FFFFFFFFFFFFFFFF", 16); + break; + case IDC_RADIO_DWORD: + mpz_init_set_str(mask, "00000000FFFFFFFF", 16); + break; + case IDC_RADIO_WORD: + mpz_init_set_str(mask, "000000000000FFFF", 16); + break; + case IDC_RADIO_BYTE: + mpz_init_set_str(mask, "00000000000000FF", 16); + break; + default: + mpz_init_set_si(mask, -1); + } + mpz_init(a); + mpfr_get_z(a, r->mf, MPFR_DEFAULT_RND); + mpz_and(a, a, mask); + mpfr_set_z(r->mf, a, MPFR_DEFAULT_RND); + mpz_clear(a); + mpz_clear(mask); +} + +void validate_rad2angle(calc_number_t *r) +{ + mpfr_t mult, divs; + + mpfr_init(mult); + mpfr_init(divs); + switch (calc.degr) { + case IDC_RADIO_DEG: + mpfr_set_ui(mult, 180, MPFR_DEFAULT_RND); + mpfr_const_pi(divs, MPFR_DEFAULT_RND); + break; + case IDC_RADIO_RAD: + mpfr_set_ui(mult, 1, MPFR_DEFAULT_RND); + mpfr_set_ui(divs, 1, MPFR_DEFAULT_RND); + break; + case IDC_RADIO_GRAD: + mpfr_set_ui(mult, 200, MPFR_DEFAULT_RND); + mpfr_const_pi(divs, MPFR_DEFAULT_RND); + break; + } + mpfr_mul(r->mf, r->mf, mult, MPFR_DEFAULT_RND); + mpfr_div(r->mf, r->mf, divs, MPFR_DEFAULT_RND); + + mpfr_clear(mult); + mpfr_clear(divs); +} + +void validate_angle2rad(calc_number_t *r) +{ + mpfr_t mult, divs; + + if (!mpfr_number_p(r->mf)) { + calc.is_nan = TRUE; + return; + } + mpfr_init(mult); + mpfr_init(divs); + switch (calc.degr) { + case IDC_RADIO_DEG: + mpfr_const_pi(mult, MPFR_DEFAULT_RND); + mpfr_set_ui(divs, 180, MPFR_DEFAULT_RND); + break; + case IDC_RADIO_RAD: + mpfr_set_ui(mult, 1, MPFR_DEFAULT_RND); + mpfr_set_ui(divs, 1, MPFR_DEFAULT_RND); + break; + case IDC_RADIO_GRAD: + mpfr_const_pi(mult, MPFR_DEFAULT_RND); + mpfr_set_ui(divs, 200, MPFR_DEFAULT_RND); + break; + } + mpfr_mul(r->mf, r->mf, mult, MPFR_DEFAULT_RND); + mpfr_div(r->mf, r->mf, divs, MPFR_DEFAULT_RND); + + mpfr_clear(mult); + mpfr_clear(divs); +} + +void rpn_sin(calc_number_t *c) +{ + validate_angle2rad(c); + mpfr_sin(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} +void rpn_cos(calc_number_t *c) +{ + validate_angle2rad(c); + mpfr_cos(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} +void rpn_tan(calc_number_t *c) +{ + validate_angle2rad(c); + mpfr_tan(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} + +void rpn_asin(calc_number_t *c) +{ + mpfr_asin(c->mf, c->mf, MPFR_DEFAULT_RND); + validate_rad2angle(c); +} +void rpn_acos(calc_number_t *c) +{ + mpfr_acos(c->mf, c->mf, MPFR_DEFAULT_RND); + validate_rad2angle(c); +} +void rpn_atan(calc_number_t *c) +{ + mpfr_atan(c->mf, c->mf, MPFR_DEFAULT_RND); + validate_rad2angle(c); +} + +void rpn_sinh(calc_number_t *c) +{ + mpfr_sinh(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} +void rpn_cosh(calc_number_t *c) +{ + mpfr_cosh(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} +void rpn_tanh(calc_number_t *c) +{ + mpfr_tanh(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} + +void rpn_asinh(calc_number_t *c) +{ + mpfr_asinh(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} +void rpn_acosh(calc_number_t *c) +{ + mpfr_acosh(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} +void rpn_atanh(calc_number_t *c) +{ + mpfr_atanh(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} + +void rpn_int(calc_number_t *c) +{ + mpfr_trunc(c->mf, c->mf); +} + +void rpn_frac(calc_number_t *c) +{ + mpfr_frac(c->mf, c->mf, MPFR_DEFAULT_RND); +} + +void rpn_reci(calc_number_t *c) +{ + if (mpfr_sgn(c->mf) == 0) + calc.is_nan = TRUE; + else + mpfr_ui_div(c->mf, 1, c->mf, MPFR_DEFAULT_RND); +} + +void rpn_fact(calc_number_t *c) +{ + if (mpfr_sgn(c->mf) < 0) { + calc.is_nan = TRUE; + return; + } + + mpfr_trunc(c->mf, c->mf); + if (mpfr_fits_ulong_p(c->mf, MPFR_DEFAULT_RND) == 0) + calc.is_nan = TRUE; + else { + mpfr_fac_ui(c->mf, mpfr_get_ui(c->mf, MPFR_DEFAULT_RND), MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; + } +} + +void rpn_not(calc_number_t *c) +{ + mpz_t a; + + mpz_init(a); + mpfr_get_z(a, c->mf, MPFR_DEFAULT_RND); + mpz_com(a, a); + mpfr_set_z(c->mf, a, MPFR_DEFAULT_RND); + mpz_clear(a); +} + +void rpn_pi(calc_number_t *c) +{ + mpfr_const_pi(c->mf, MPFR_DEFAULT_RND); +} + +void rpn_2pi(calc_number_t *c) +{ + mpfr_const_pi(c->mf, MPFR_DEFAULT_RND); + mpfr_mul_ui(c->mf, c->mf, 2, MPFR_DEFAULT_RND); +} + +void rpn_sign(calc_number_t *c) +{ + mpfr_mul_si(c->mf, c->mf, -1, MPFR_DEFAULT_RND); +} + +void rpn_exp2(calc_number_t *c) +{ + mpfr_sqr(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} + +void rpn_exp3(calc_number_t *c) +{ + mpfr_pow_ui(c->mf, c->mf, 3, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} + +void rpn_sqrt(calc_number_t *c) +{ + mpfr_sqrt(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} + +void rpn_cbrt(calc_number_t *c) +{ + mpfr_cbrt(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} + +void rpn_exp(calc_number_t *c) +{ + mpfr_exp(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} + +void rpn_exp10(calc_number_t *c) +{ + mpfr_exp10(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} + +void rpn_ln(calc_number_t *c) +{ + mpfr_log(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} + +void rpn_log(calc_number_t *c) +{ + mpfr_log10(c->mf, c->mf, MPFR_DEFAULT_RND); + if (!mpfr_number_p(c->mf)) calc.is_nan = TRUE; +} + +static void stat_sum(mpfr_t sum) +{ + statistic_t *p = calc.stat; + + mpfr_set_ui(sum, 0, MPFR_DEFAULT_RND); + while (p != NULL) { + mpfr_add(sum, sum, p->num.mf, MPFR_DEFAULT_RND); + p = (statistic_t *)(p->next); + } +} + +void rpn_ave(calc_number_t *c) +{ + int n; + + stat_sum(c->mf); + n = SendDlgItemMessage(calc.hStatWnd, IDC_LIST_STAT, LB_GETCOUNT, 0, 0); + + if (n) + mpfr_div_ui(c->mf, c->mf, n, MPFR_DEFAULT_RND); + + if (calc.base != IDC_RADIO_DEC) + mpfr_trunc(c->mf, c->mf); +} + +void rpn_sum(calc_number_t *c) +{ + stat_sum(c->mf); + + if (calc.base != IDC_RADIO_DEC) + mpfr_trunc(c->mf, c->mf); +} + +static void rpn_s_ex(calc_number_t *c, int pop_type) +{ + mpfr_t dev; + mpfr_t num; + unsigned long n = 0; + statistic_t *p = calc.stat; + + n = SendDlgItemMessage(calc.hStatWnd, IDC_LIST_STAT, LB_GETCOUNT, 0, 0); + if (n < 2) { + mpfr_set_ui(c->mf, 0, MPFR_DEFAULT_RND); + return; + } + + stat_sum(c->mf); + mpfr_div_ui(c->mf, c->mf, n, MPFR_DEFAULT_RND); + + mpfr_init(dev); + mpfr_init(num); + + mpfr_set_ui(dev, 0, MPFR_DEFAULT_RND); + p = calc.stat; + while (p != NULL) { + mpfr_sub(num, p->num.mf, c->mf, MPFR_DEFAULT_RND); + mpfr_sqr(num, num, MPFR_DEFAULT_RND); + mpfr_add(dev, dev, num, MPFR_DEFAULT_RND); + p = (statistic_t *)(p->next); + } + mpfr_div_ui(c->mf, dev, pop_type ? n-1 : n, MPFR_DEFAULT_RND); + mpfr_sqrt(c->mf, c->mf, MPFR_DEFAULT_RND); + + if (calc.base != IDC_RADIO_DEC) + mpfr_trunc(c->mf, c->mf); + + mpfr_clear(dev); + mpfr_clear(num); +} + +void rpn_s(calc_number_t *c) +{ + rpn_s_ex(c, 0); +} + +void rpn_s_m1(calc_number_t *c) +{ + rpn_s_ex(c, 1); +} + +void rpn_dms2dec(calc_number_t *c) +{ + mpfr_t d, m, s; + + mpfr_init(d); + mpfr_init(m); + mpfr_init(s); + + mpfr_trunc(d, c->mf); + mpfr_frac(m, c->mf, MPFR_DEFAULT_RND); + mpfr_mul_ui(m, m, 100, MPFR_DEFAULT_RND); + + mpfr_frac(s, m, MPFR_DEFAULT_RND); + mpfr_trunc(m, m); + mpfr_mul_ui(s, s, 100, MPFR_DEFAULT_RND); + mpfr_ceil(s, s); + + mpfr_div_ui(m, m, 60, MPFR_DEFAULT_RND); + mpfr_div_ui(s, s, 3600, MPFR_DEFAULT_RND); + mpfr_add(c->mf, d, m, MPFR_DEFAULT_RND); + mpfr_add(c->mf, c->mf, s, MPFR_DEFAULT_RND); + + mpfr_clear(d); + mpfr_clear(m); + mpfr_clear(s); +} + +void rpn_dec2dms(calc_number_t *c) +{ + mpfr_t d, m, s; + + mpfr_init(d); + mpfr_init(m); + mpfr_init(s); + + mpfr_trunc(d, c->mf); + mpfr_frac(m, c->mf, MPFR_DEFAULT_RND); + mpfr_mul_ui(m, m, 60, MPFR_DEFAULT_RND); + + mpfr_frac(s, m, MPFR_DEFAULT_RND); + mpfr_trunc(m, m); + mpfr_mul_ui(s, s, 60, MPFR_DEFAULT_RND); + mpfr_ceil(s, s); + + mpfr_div_ui(m, m, 100, MPFR_DEFAULT_RND); + mpfr_div_ui(s, s, 10000, MPFR_DEFAULT_RND); + mpfr_add(c->mf, d, m, MPFR_DEFAULT_RND); + mpfr_add(c->mf, c->mf, s, MPFR_DEFAULT_RND); + + mpfr_clear(d); + mpfr_clear(m); + mpfr_clear(s); +} + +void rpn_zero(calc_number_t *c) +{ + mpfr_set_ui(c->mf, 0, MPFR_DEFAULT_RND); +} + +void rpn_copy(calc_number_t *dst, calc_number_t *src) +{ + mpfr_set(dst->mf, src->mf, MPFR_DEFAULT_RND); +} + +int rpn_is_zero(calc_number_t *c) +{ + return (mpfr_sgn(c->mf) == 0); +} + +void rpn_alloc(calc_number_t *c) +{ + mpfr_init(c->mf); +} + +void rpn_free(calc_number_t *c) +{ + mpfr_clear(c->mf); +} diff --git a/reactos/base/applications/calc/function.c b/reactos/base/applications/calc/function.c new file mode 100644 index 00000000000..ca92e3f30d8 --- /dev/null +++ b/reactos/base/applications/calc/function.c @@ -0,0 +1,510 @@ +#include "calc.h" +#include + +void apply_int_mask(calc_number_t *r) +{ + unsigned __int64 mask; + + switch (calc.size) { + case IDC_RADIO_QWORD: + mask = _UI64_MAX; + break; + case IDC_RADIO_DWORD: + mask = ULONG_MAX; + break; + case IDC_RADIO_WORD: + mask = USHRT_MAX; + break; + case IDC_RADIO_BYTE: + mask = UCHAR_MAX; + break; + default: + mask = (unsigned __int64)-1; + } + r->i &= mask; +} + +double asinh(double x) +{ + return log(x+sqrt(x*x+1)); +} + +double acosh(double x) +{ + // must be x>=1, if not return Nan (Not a Number) + if(!(x>=1.0)) return sqrt(-1.0); + + // return only the positive result (as sqrt does). + return log(x+sqrt(x*x-1.0)); +} + +double atanh(double x) +{ + // must be x>-1, x<1, if not return Nan (Not a Number) + if(!(x>-1.0 && x<1.0)) return sqrt(-1.0); + + return log((1.0+x)/(1.0-x))/2.0; +} + +double validate_rad2angle(double a) +{ + switch (calc.degr) { + case IDC_RADIO_DEG: + a = a * (180.0/CALC_PI); + break; + case IDC_RADIO_RAD: + break; + case IDC_RADIO_GRAD: + a = a * (200.0/CALC_PI); + break; + } + return a; +} + +double validate_angle2rad(calc_number_t *c) +{ + switch (calc.degr) { + case IDC_RADIO_DEG: + c->f = c->f * (CALC_PI/180.0); + break; + case IDC_RADIO_RAD: + break; + case IDC_RADIO_GRAD: + c->f = c->f * (CALC_PI/200.0); + break; + } + return c->f; +} + +void rpn_sin(calc_number_t *c) +{ + c->f = sin(validate_angle2rad(c)); +} +void rpn_cos(calc_number_t *c) +{ + c->f = cos(validate_angle2rad(c)); +} +void rpn_tan(calc_number_t *c) +{ + c->f = tan(validate_angle2rad(c)); +} + +void rpn_asin(calc_number_t *c) +{ + c->f = validate_rad2angle(asin(c->f)); + if (_isnan(c->f)) + calc.is_nan = TRUE; +} +void rpn_acos(calc_number_t *c) +{ + c->f = validate_rad2angle(acos(c->f)); + if (_isnan(c->f)) + calc.is_nan = TRUE; +} +void rpn_atan(calc_number_t *c) +{ + c->f = validate_rad2angle(atan(c->f)); + if (_isnan(c->f)) + calc.is_nan = TRUE; +} + +void rpn_sinh(calc_number_t *c) +{ + c->f = sinh(c->f); + if (_isnan(c->f)) + calc.is_nan = TRUE; +} +void rpn_cosh(calc_number_t *c) +{ + c->f = cosh(c->f); + if (_isnan(c->f)) + calc.is_nan = TRUE; +} +void rpn_tanh(calc_number_t *c) +{ + c->f = tanh(c->f); + if (_isnan(c->f)) + calc.is_nan = TRUE; +} + +void rpn_asinh(calc_number_t *c) +{ + c->f = asinh(c->f); + if (_isnan(c->f)) + calc.is_nan = TRUE; +} +void rpn_acosh(calc_number_t *c) +{ + c->f = acosh(c->f); + if (_isnan(c->f)) + calc.is_nan = TRUE; +} +void rpn_atanh(calc_number_t *c) +{ + c->f = atanh(c->f); + if (_isnan(c->f)) + calc.is_nan = TRUE; +} + +void rpn_int(calc_number_t *c) +{ + double int_part; + + modf(calc.code.f, &int_part); + c->f = int_part; +} + +void rpn_frac(calc_number_t *c) +{ + double int_part; + + c->f = modf(calc.code.f, &int_part); +} + +void rpn_reci(calc_number_t *c) +{ + if (c->f == 0) + calc.is_nan = TRUE; + else + c->f = 1./c->f; +} + +void rpn_fact(calc_number_t *c) +{ + double fact, mult, num; + + if (calc.base == IDC_RADIO_DEC) + num = c->f; + else + num = (double)c->i; + if (num > 1000) { + calc.is_nan = TRUE; + return; + } + if (num < 0) { + calc.is_nan = TRUE; + return; + } else + if (num == 0) + fact = 1; + else { + rpn_int(c); + fact = 1; + mult = 2; + while (mult <= num) { + fact *= mult; + mult++; + } + c->f = fact; + } + if (_finite(fact) == 0) + calc.is_nan = TRUE; + else + if (calc.base == IDC_RADIO_DEC) + c->f = fact; + else + c->i = (__int64)fact; +} + +__int64 logic_dbl2int(calc_number_t *a) +{ + double int_part; + int width; + + modf(a->f, &int_part); + width = (int_part==0) ? 1 : (int)log10(fabs(int_part))+1; + if (width > 63) { + calc.is_nan = TRUE; + return 0; + } + return (__int64)int_part; +} + +void rpn_not(calc_number_t *c) +{ + if (calc.base == IDC_RADIO_DEC) { + calc_number_t n; + n.i = logic_dbl2int(c); + c->f = (long double)(~n.i); + } else + c->i = ~c->i; +} + +void rpn_pi(calc_number_t *c) +{ + c->f = CALC_PI; +} + +void rpn_2pi(calc_number_t *c) +{ + c->f = CALC_PI*2; +} + +void rpn_sign(calc_number_t *c) +{ + if (calc.base == IDC_RADIO_DEC) + c->f = 0-c->f; + else + c->i = 0-c->i; +} + +void rpn_exp2(calc_number_t *c) +{ + if (calc.base == IDC_RADIO_DEC) { + c->f *= c->f; + if (_finite(c->f) == 0) + calc.is_nan = TRUE; + } else + c->i *= c->i; +} + +void rpn_exp3(calc_number_t *c) +{ + if (calc.base == IDC_RADIO_DEC) { + c->f = pow(c->f, 3.); + if (_finite(c->f) == 0) + calc.is_nan = TRUE; + } else + c->i *= (c->i*c->i); +} + +static __int64 myabs64(__int64 number) +{ + return (number < 0) ? 0-number : number; +} + +static unsigned __int64 sqrti(unsigned __int64 number) +{ +/* modified form of Newton's method for approximating roots */ +#define NEXT(n, i) (((n) + (i)/(n)) >> 1) + unsigned __int64 n, n1; + +#ifdef __GNUC__ + if (number == 0xffffffffffffffffLL) +#else + if (number == 0xffffffffffffffff) +#endif + return 0xffffffff; + + n = 1; + n1 = NEXT(n, number); + while (myabs64(n1 - n) > 1) { + n = n1; + n1 = NEXT(n, number); + } + while((n1*n1) > number) + n1--; + return n1; +#undef NEXT +} + +void rpn_sqrt(calc_number_t *c) +{ + if (calc.base == IDC_RADIO_DEC) { + if (c->f < 0) + calc.is_nan = TRUE; + else + c->f = sqrt(c->f); + } else { + c->i = sqrti(c->i); + } +} + +static __int64 cbrti(__int64 x) { + __int64 s, y, b; + + s = 60; + y = 0; + while(s >= 0) { + y = 2*y; + b = (3*y*(y + 1) + 1) << s; + s = s - 3; + if (x >= b) { + x = x - b; + y = y + 1; + } + } + return y; +} + +void rpn_cbrt(calc_number_t *c) +{ + if (calc.base == IDC_RADIO_DEC) +//#ifdef __GNUC__ +#if 0 + c->f = cbrt(c->f); +#else + c->f = pow(c->f,1./3.); +#endif + else { + c->i = cbrti(c->i); + } +} + +void rpn_exp(calc_number_t *c) +{ + c->f = exp(c->f); + if (_finite(c->f) == 0) + calc.is_nan = TRUE; +} + +void rpn_exp10(calc_number_t *c) +{ + double int_part; + + modf(c->f, &int_part); + if (fmod(int_part, 2.) == 0.) + calc.is_nan = TRUE; + else { + c->f = pow(10., c->f); + if (_finite(c->f) == 0) + calc.is_nan = TRUE; + } +} + +void rpn_ln(calc_number_t *c) +{ + if (c->f <= 0) + calc.is_nan = TRUE; + else + c->f = log(c->f); +} + +void rpn_log(calc_number_t *c) +{ + if (c->f <= 0) + calc.is_nan = TRUE; + else + c->f = log10(c->f); +} + +static double stat_sum(void) +{ + double sum = 0; + statistic_t *p = calc.stat; + + while (p != NULL) { + if (p->base == IDC_RADIO_DEC) + sum += p->num.f; + else + sum += p->num.i; + p = (statistic_t *)(p->next); + } + return sum; +} + +void rpn_ave(calc_number_t *c) +{ + double ave = 0; + int n; + + ave = stat_sum(); + n = SendDlgItemMessage(calc.hStatWnd, IDC_LIST_STAT, LB_GETCOUNT, 0, 0); + + if (n) + ave = ave / (double)n; + if (calc.base == IDC_RADIO_DEC) + c->f = ave; + else + c->i = (__int64)ave; +} + +void rpn_sum(calc_number_t *c) +{ + double sum = stat_sum(); + + if (calc.base == IDC_RADIO_DEC) + c->f = sum; + else + c->i = (__int64)sum; +} + +static void rpn_s_ex(calc_number_t *c, int pop_type) +{ + double ave = 0; + double n = 0; + double dev = 0; + double num = 0; + statistic_t *p = calc.stat; + + ave = stat_sum(); + n = (double)SendDlgItemMessage(calc.hStatWnd, IDC_LIST_STAT, LB_GETCOUNT, 0, 0); + + if (n == 0) { + c->f = 0; + return; + } + ave = ave / n; + + dev = 0; + p = calc.stat; + while (p != NULL) { + if (p->base == IDC_RADIO_DEC) + num = p->num.f; + else + num = (double)p->num.i; + dev += pow(num-ave, 2.); + p = (statistic_t *)(p->next); + } + dev = sqrt(dev/(pop_type ? n-1 : n)); + if (calc.base == IDC_RADIO_DEC) + c->f = dev; + else + c->i = (__int64)dev; +} + +void rpn_s(calc_number_t *c) +{ + rpn_s_ex(c, 0); +} + +void rpn_s_m1(calc_number_t *c) +{ + rpn_s_ex(c, 1); +} + +void rpn_dms2dec(calc_number_t *c) +{ + double d, m, s; + + m = modf(c->f, &d) * 100; + s = (modf(m, &m) * 100)+.5; + modf(s, &s); + + m = m/60; + s = s/3600; + + c->f = d + m + s; +} + +void rpn_dec2dms(calc_number_t *c) +{ + double d, m, s; + + m = modf(c->f, &d) * 60; + s = ceil(modf(m, &m) * 60); + c->f = d + m/100. + s/10000.; +} + +void rpn_zero(calc_number_t *c) +{ + c->f = 0; +} + +void rpn_copy(calc_number_t *dst, calc_number_t *src) +{ + *dst = *src; +} + +int rpn_is_zero(calc_number_t *c) +{ + return (c->f == 0); +} + +void rpn_alloc(calc_number_t *c) +{ +} + +void rpn_free(calc_number_t *c) +{ +} diff --git a/reactos/base/applications/calc/help.txt b/reactos/base/applications/calc/help.txt new file mode 100644 index 00000000000..aa41c242124 --- /dev/null +++ b/reactos/base/applications/calc/help.txt @@ -0,0 +1,506 @@ +ReactOS Calc is a programme for evaluating mathematical, financial and statistical calculations. + +ReactOS Calc has several features including: +- Internal precision with 17 decimal numbers (standard IEEE math library). +- Up to 512 bits of internal precision and 64 decimal digits displayed in the output display (with GNU multi-precision libraries). +- Robust RPN (reverse polish notation) engine which allows a virtually unlimited number of arithmetic and algebraic sub-expressions. +- Two different interfaces: standard or scientific. +- Many common arithmetic, algebraic and statistical functions are included. + +The following topics will be discussed: + +HOW TO INPUT NUMBERS +DISPLAY FORMAT +ERROR MESSAGE +ARITHMETIC FUNCTIONS +LOGICAL FUNCTIONS +ALGEBRAIC FUNCTIONS +TRIGONOMETRIC FUNCTIONS +THE PI BUTTON +HYPERBOLIC FUNCTIONS +STATISTICAL FUNCTIONS +MEMORY FUNCTION +DEGREE CONVERSION +FIXED SCIENTIFIC NOTATION +PERCENT MODE + +HOW TO INPUT NUMBERS +-------------------- +The ReactOS Calc provides some buttons for typing numbers and expressions. +However, some of them are available only into Standard or Scientific modes, or when the calculator is in a specific state. +[0], [1], [2], [3], [4], [5], [6], [7], [8], [9] +Digit buttons: they are used for entering digits into the display. +[A], [B], [C], [D], [E], [F] +Hexadecimal buttons: they are used for completing an hex number. For using these buttons, the calculator must be configured into scientific mode and the [HEX] state must be selected. +[.] or [,] +Decimal point: used for starting the non integer part of a decimal number. +[+/-] +Change sign: if it's pressed after a calculation or when entering the operands, it will change the sign of the number shown into the output display. +[BACK] +If the displayed number has been entered manually and it isn't a result of a calculation, you can delete the last digit by pressing this button. +[CE] +This button removes an incorrect number from the output display. All pending operations are preserved. +[ C ] +It clears the output display and all pending operations. + +DISPLAY FORMAT +-------------- +You can enter digits by pressing the buttons mentioned in the section. +These numbers can be entered into four different bases: hexadecimal, decimal, octal or binary system. +A number shown into the output display can be easily converted from a numeric base to another by simply changing the base on the fly. + +When working with pure decimal numbers, the user can enter the numbers in two ways: +- Normal mode: each number is entered its integer part and, eventually, its fractional part. +- Exponential mode: the number is entered by typing a mantissa and then an exponent. This method allows you to write very big or very small numbers that you would not be able to type in a different manner. You can use it only when the calculator is configured in scientific mode. +However, there are some limits even when you work with exponential notation. +These limits are: +-1.79769313486231570e+308 <= x <= -2.22507385850720140e-308 +2.22507385850720140e-308 <= x <= 1.79769313486231570e+308 +The exponential input mode is activated by the [Exp] button. +After the mantissa has been typed, by pressing this button you will be able to enter the exponent. +When the support for GNU multi-precision libraries is activated, these limits rise greatly to 64 displayed digits for the mantissa and 8 digits for the exponent, both with sign. + +When the calculator is in [HEX], [OCT] or [BIN] state, it's possible to apply a masking for limiting the range of the numbers. Four range are available: +[QWORD] +It limits the integers to 64 bit numbers. +[DWORD] +It limits the integers to 32 bit numbers. +[WORD] +It limits the integers to 16 bit numbers. +[BYTE] +It limits the integers to 8 bit numbers. + +ERROR MESSAGE +------------- +The output display will show the message "Error" if the current calculation overflows the limits of the calculator, or when an undefined condition is generated (example: division by zero). +The error condition is cleared using the [ C ] button. + +ARITHMETIC FUNCTIONS +-------------------- +ReactOS Calc implements the standard arithmetic rules with the following operators: +[+] +Addition +[-] +Subtraction +[*] +Multiplication +[/] +Division +[Mod] +Remainder of a division +Those rules express the concept of priority. +Here there is a list of priorities implemented from the highest to the lowest: +- Special functions which change directly the current value into a new one: trigonometrics, hyperbolics, exponentials and logarithms, reciprocal, base conversions, integer and fractional part detection and change of sign. +- Power and root functions. +- multiplications, divisions, reminders. +- additions, subtractions. +- Logical functions. +These rules may be overcome by using parentheses. +With [(] and [)] buttons, the user can isolate a mathematical expression to be evaluated separately. The number of parentheses into a single expression is virtually unlimited. The number of currently-open parentheses is displayed in the left box underneath the base change option set. + +LOGICAL FUNCTIONS +----------------- +There is a set of logical functions which can be used between two operands. They can be used as normal arithmetic operators. +The only exception is the "Not" operator which works on a single number. +The provided functions are: +[And] +It executes an "and" between the numbers. +[Or] +It executes an "or" between the numbers. +[Xor] +It executes an "exclusive or" between the numbers. +[Not] +It inverts all bits of the number shown into the output display. + +ALGEBRAIC FUNCTIONS +------------------- +ReactOS Calc implements the most commonly used algebraic functions. +[Int] +It isolates the integer part of the number shown into the output display. +[Inv]+[Int] +The integer part of the number is discarded and the fractional part stays on the output display. +[x^2] +Square function. It calculates the square of the number shown on the output display. +[Inv]+[x^2] +It returns the positive square root of the number shown on the output display. +If the current number is negative, then the error message will be displayed. +When working with standard layout, the [sqrt] button is a shortcut to this function. +[x^3] +Cube function. It calculates the cube of the number shown on the output display. +[Inv]+[x^3] +It returns the cube root of the number shown on the output display. +[x^y] +Power function. It calculates the power of X elevated to Y. +[Inv]+[x^y] +Root function. It calculates the Y-th root of X. +[1/x] +Reciprocal. It divides 1 by the number shown on the output display. +[n!] +Factorial. It calculates the factorial of the integer part of the number shown into the output display. +The calculation is defined within these limits: +0 <= n <= 170 +[ln] +Natural logarithm. It calculates the natural logarithm of the current number. +ReactOS Calc assumes the Nepero's constant to be: +e=2.7182818284590452354 +The calculation is defined for x > 0. +[Inv]+[ln] +Natural anti-logarithm. It calculates the power of the Nepero's constant to the current number. +[Log] +Decimal logarithm. It calculates the logarithm of the current number to base 10. +The calculation is defined for x > 0. +[Inv]+[Log] +Decimal anti-logarithm. It calculates the power of 10 to the current number. + +TRIGONOMETRIC FUNCTIONS +----------------------- +ReactOS Calc allows the calculation of three types of trigonometric functions with their inverse operations. +These functions can be used with three different angular units of measurement: degrees, radians or gradians. +The angular mode does not affect the non trigonometric functions. +Please note that the degree type uses decimal degrees and not angles in the degree-minute-second form. +The available functions are: +[sin] +It calculates the sine of the given angle. +If the [Inv] modifier is activated, it finds the angle whose sine value is shown into the output display. +[cos] +It calculates the cosine of the given angle. +If the [Inv] modifier is activated, it finds the angle whose cosine value is shown into the output display. +[tan] +It calculates the tangent of the given angle. +If the [Inv] modifier is activated, it finds the angle whose tangent value is shown into the output display. + +THE PI BUTTON +------------- +For helping the calculations with trigonometric functions, it's possible to load the value of 'Pi' into the output display. +The function is called by pressing the [PI] button. +If the [Inv] modifier is activated, then the output display will be loaded with 2*PI. +In ReactOS Calc, Pi has the value 3.14159265358979323846 + +HYPERBOLIC FUNCTIONS +-------------------- +ReactOS Calc allows the calculation of three types of hyperbolic functions with their inverse operations. +Those functions are activated by the same buttons used for trigonometric functions; the hyperbolic context is enabled by activating the [Hyp] modifier. The inverse functions are activated by the [Inv] modifier. +[sin]+[Hyp] +Hyperbolic sine +[cos]+[Hyp] +Hyperbolic cosine +[tan]+[Hyp] +Hyperbolic tangent + +STATISTICAL FUNCTIONS +--------------------- +By pressing the [STA] button, the statistical window is enabled. +Statistical window allows to store groups of number and execute some common statistical operators. +Into the statistical box, there are four buttons with these functions: +[RET] +It moves the focus back to the calculator. +[LOAD] +It loads the selected number into the output display of the calculator. +[CD] +It deletes the selected number from the list. +[CAD] +It deletes all numbers currently stored into the list. + +While the statistical window is shown, four additional buttons are enabled: +[Ave] +It calculates the arithmetic average of the numbers stored into the list. +[Sum] +It calculates the sum of all numbers stored into the list. +[s] +It calculates the population standard deviations of the numbers stored into the list. +[Dat] +It inserts the number shown into the output display into the list. + +Note: when the statistical box is closed, its content is lost. + +MEMORY FUNCTION +--------------- +ReactOS Calc reserves for the user a memory region for storing data. +With this feature, the user can store frequently used numbers (typically, these numbers are constants) and recall them at any time, without the need to re-enter them manually. +If the memory function is currently in use, the text "M" will appear in the right box underneath the base change option set. +The memory is preserved when switching between standard and scientific mode, but its content is lost when ReactOS Calc application is closed. +Four keys are available with memory function support. +[MC] +Memory Clear: clears the content of the memory. +[MR] +Memory Recall: retrieves the stored data from the memory and it shows it into the output display, without affecting the content of the storage. +[MS] +Memory Store: stores the displayed value into the memory. The content of the display is unaffected. After pressing this button, the previous content of the memory is lost. If the [INV] modifier is activated, then this button will swap current memory value with displayed value. Under these conditions, the displayed value is stored and the previously stored quantity is shown on the output display. +If the memory is empty, it will act as a normal store. +[M+] +Memory Sum: the displayed value is algebraically added to the current memory. The output display will be unchanged after this transfer and addition. If the [INV] modifier is activated, then the displayed value will be algebraically subtracted from the memory. If the memory is empty, it will work in both condition as a simple memory store. + +DEGREE CONVERSION +----------------- +With [dms] button you can convert decimal degrees into degree-minute-second format and vice-versa. +When working with d-m-s angles, the notation used into the output display is "DDD.MMSS" where D stands for degree, M for minute and S for second. +The [dms] button will convert decimal angles to degree-minute-second angles. +The [dms] button with [Inv] modifier will convert degree-minute-second angles into decimal angles. + +FIXED SCIENTIFIC NOTATION +------------------------- +When working with ReactOS Calc, it is possible to select a temporary scientific notation (activated by [Exp] button) or a fixed scientific notation. +Fixed scientific notation will be turned on by pressing [F-E] button. +When fixed scientific notation is active, all results will be displayed with scientific notation even for small numbers. +The calculator will be restored to normal mode by pressing [F-E] button again or by pressing the [ C ] button. + +PERCENT +------- +The [%] button is available only with standard mode and it's used as modifier for the four basic arithmetic operators. +The input sequence for a percent calculation is: +"first" "operator" "second" "percent" +The modification applied by the percent button for each operator are: +[+] +Add "second"-% of "first" to "first". +[-] +Subtract "second"-% of "first" from "first". +[*] +Multiply "second"-% of "first" with "first". +[/] +Divide "first" by "second"-% of "first". + +GLOSSARY +-------- + +Output display +This is the place where the typed numbers and the results of the calculations are shown. + +Hex +It selects the hexadecimal numeric base and it converts the number shown into the output display. +Shortcut from keyboard: F5 + +Dec +It selects the decimal numeric base and it converts the number shown into the output display. +Shortcut from keyboard: F6 + +Oct +It selects the octal numeric base and it converts the number shown into the output display. +Shortcut from keyboard: F7 + +Bin +It selects the binary numeric base and it converts the number shown into the output display. +Shortcut from keyboard: F8 + +Degrees +It enables the processing of trigonometric functions into degree format. +Shortcut from keyboard: F2 + +Radians +It enables the processing of trigonometric functions into radians format. +Shortcut from keyboard: F3 + +Gradians +It enables the processing of trigonometric functions into gradians format. +Shortcut from keyboard: F4 + +Qword +It limits the length of integer numbers to 64 bits. +Shortcut from keyboard: F12 + +Dword +It limits the length of integer numbers to 32 bits. +Shortcut from keyboard: F2 + +Word +It limits the length of integer numbers to 16 bits. +Shortcut from keyboard: F3 + +Byte +It limits the length of integer numbers to 8 bits. +Shortcut from keyboard: F4 + +Inv +It enables the inverse function for [sin] [cos] [tan] [pi] [x^y] [x^2] [x^3] [ln] [log] [dms] [MS] [M+] [Int] buttons. +Shortcut from keyboard: I + +Hyp +It enables the hyperbolic mode for [sin] [cos] [tan] buttons +Shortcut from keyboard: H + +Back +It deletes the last digit typed on the calculator. +It also disables the temporary scientific mode if an exponent is removed completely. +Shortcut from keyboard: Backspace + +CE +It deletes the last typed number from the output display. +Shortcut from keyboard: Delete + +_C_ +It deletes the current calculation and all sub expressions. +Shortcut from keyboard: ESC + +F-E +It enables or it disables the fixed scietific notation. +Shortcut from keyboard: V + +0 1 2 3 4 5 6 7 8 9 +These buttons are used for entering digits. +Shortcut from keyboard: the corresponding number on the keyboard or the numeric pad. + +A B C D E F +These buttons are used for entering hexadecimal numbers. +Shortcut from keyboard: the letters from A to F. + ++/- +It changes the sign of the number. +Shortcut from keyboard: F9 + +. or , +It adds the decimal point for a decimal number. +Shortcut from keyboard: , or . + ++ +Addition +Shortcut from keyboard: + + +- +Subtraction +Shortcut from keyboard: - + +* +Multiplication +Shortcut from keyboard: * + +/ +Division +Shortcut from keyboard: / + += +It resolves the current calculation and all sub expressions. +Shortcut from keyboard: = + +Mod +Remainder of an integer division. +Shortcut from keyboard: % + +And +Logical "and". +Shortcut from keyboard: & + +Or +Logical "or". +Shortcut from keyboard: | + +Xor +Logical exclusive "or". +Shortcut from keyboard: ^ + +Lsh +Logical shift to left. +Shortcut from keyboard: < + +Not +Logical bit inversion. +Shortcut from keyboard: ~ + +Int +It isolates the Integer or fractional part of a number. +Shortcut from keyboard: ; + +MC +It deletes the memory. +Shortcut from keyboard: CTRL-L + +MR +It recalls a previously stored number from the memory. +Shortcut from keyboard: CTRL-R + +MS +It stores a number into the memory and it eventually transfers the previous value to the output display. +Shortcut from keyboard: CTRL-M + +M+ +It adds or it subtracts the value into the output display to the memory. +Shortcut from keyboard: CTRL-P + +pi +It loads the pi or 2*pi value into the output display. +Shortcut from keyboard: P + +( +It starts a new sub expression. +Shortcut from keyboard: ( + +) +It closes and it resolves a sub expression. +Shortcut from keyboard: ) + +dms +It converts a decimal degree to a decimal-minute-second degree and viceversa. +Shortcut from keyboard: M + +Exp +It enables the temporary scientific notation. +Shortcut from keyboard: X + +ln +It calculates the natural logarithm. Natural anti logarithm calculation is activated by Inv modifier. +Shortcut from keyboard: N + +Log +It calculates the decimal logarithm. Decimal anti logarithm calculation is activated by Inv modifier. +Shortcut from keyboard: L + +n! +It calculates the factorial of a number. +Shortcut from keyboard: ! + +1/x +It calculates the reciprocal of a number. +Shortcut from keyboard: R + +sin +It calculates the sine, hyperbolic sine, arcsine or the hyperbolic arcsine of an angle. +Shortcut from keyboard: S + +cos +It calculates the cosine, hyperbolic cosine, arcsine or the hyperbolic arccosine of an angle. +Shortcut from keyboard: O + +tan +It calculates the tangent, hyperbolic tangent, arcstangent or the hyperbolic arctangent of an angle. +Shortcut from keyboard: T + +x^y +It calculates the power of X to Y. +With the Inv modifier, it calculates the Yth root of X. +Shortcut from keyboard: Y + +x^2 +It calculates the square of X. +With the Inv modifier, it calculates the square root of X. +Shortcut from keyboard: @ + +x^3 +It calculates the cube of X. +With the Inv modifier, it calculates the cubic root of X. +Shortcut from keyboard: $ + +Sta +It enables the statistical window and its functions. +Shortcut from keyboard: CTRL-S + +Ave +It calculates the arithmetic average of the numbers stored into the statistical box. +Shortcut from keyboard: CTRL-A + +Sum +It calculates the sum of the numbers stored into the statistical box. +Shortcut from keyboard: CTRL-T + +s +It calculates the standard deviation of the numbers stores into the statistical box. +Shortcut from keyboard: CTRL-D + +Dat +It inserts a new number into the statistical box +Shortcut from keyboard: Insert + +% +It executes the calculation with percent mode. +Shortcut from keyboard: % + +sqrt +It calculates the square root of a number. +Shortcut from keyboard: @ diff --git a/reactos/base/applications/calc/lang/bg-BG.rc b/reactos/base/applications/calc/lang/bg-BG.rc deleted file mode 100644 index cf1c450150c..00000000000 --- a/reactos/base/applications/calc/lang/bg-BG.rc +++ /dev/null @@ -1,151 +0,0 @@ -#include "winecalc.h" - -LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME, "Èç÷èñëèòåë" - - 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, "<-" - 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, "êîðåí 2" - IDS_BTN_DEGREES, "Ãðàäóñè" - IDS_BTN_RADIANS, "Ðàäèàíè" - IDS_BTN_GRADS, "Ãðàäîâå" - IDS_BTN_SHRT_HEX "Øñòí" - IDS_BTN_SHRT_DEC "Äñòí" - IDS_BTN_SHRT_OCT "Îñì" - IDS_BTN_SHRT_BIN "Äâîè÷." - IDS_ERR_INVALID_INPUT, "Íåïðàâèëíè âõîäíè äàííè." - IDS_ERR_DIVIDE_BY_ZERO, "Äåëåíåòî íà íóëà å íåâúçìîæíî." - IDS_ERR_UNDEFINED, "Èç÷èñëåíèåòî å íåâúçìîæíî." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Îáðàáîòêà" - BEGIN - MENUITEM "&Çàïîìíè Ctrl+C", IDM_COPY - MENUITEM "&Ïîñòàâè Ctrl+V", IDM_PASTE - END - POPUP "&Èçãëåä" - BEGIN - MENUITEM "Îáèêíîâåí", IDM_MODE_STANDARD - MENUITEM "Íàó÷åí", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Ðàçäåëÿíå íà õèëÿäèòå", IDM_DIGIT_GROUPING - END - POPUP "&Ïîìîù" - BEGIN - MENUITEM "Ïîìîù", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Çà ïðèëîæåíèåòî", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Îáðàáîòêà" - BEGIN - MENUITEM "&Çàïîìíÿíå Ctrl+C", IDM_COPY - MENUITEM "&Ïîñòàâÿíå Ctrl+V", IDM_PASTE - END - POPUP "&Èçãëåä" - BEGIN - MENUITEM "Îáèêíîâåí", IDM_MODE_STANDARD - MENUITEM "Íàó÷åí", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Øåñòíaäåñåòè÷åí\tF5", ID_CALC_NS_HEX - MENUITEM "Äåñåòè÷åí\tF6", ID_CALC_NS_DEC - MENUITEM "Îñìè÷åí\tF7", ID_CALC_NS_OCT - MENUITEM "Äâîè÷åí\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Ãðàäóñè\tF2", ID_CALC_MS_DEGREES - MENUITEM "Ðàäèàíè\tF3", ID_CALC_MS_RADIANS - MENUITEM "Ãðàäîâå\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "Ðàçäåëÿíå íà õèëÿäèòå", IDM_DIGIT_GROUPING - END - POPUP "&Ïîìîù" - BEGIN - MENUITEM "Ïîìîù", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Çà ïðèëîæåíèåòî", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Îáðàáîòêà" - BEGIN - MENUITEM "&Çàïîìíÿíå Ctrl+C", IDM_COPY - MENUITEM "&Ïîñòàâÿíå Ctrl+V", IDM_PASTE - END - POPUP "&Èçãëåä" - BEGIN - MENUITEM "Îáèêíîâåí", IDM_MODE_STANDARD - MENUITEM "Íàó÷åí", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Øåñòíàäåñåòè÷åí\tF5", ID_CALC_NS_HEX - MENUITEM "Äåñåòè÷åí\tF6", ID_CALC_NS_DEC - MENUITEM "Îñìè÷åí\tF7", ID_CALC_NS_OCT - MENUITEM "Äâîè÷åí\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "×äóìà\tF12", ID_CALC_WS_QWORD - MENUITEM "Ääóìà\tF2", ID_CALC_WS_DWORD - MENUITEM "Äóìà\tF3", ID_CALC_WS_WORD - MENUITEM "Áàéò\tF4", ID_CALC_WS_BYTE - MENUITEM SEPARATOR - MENUITEM "Ðàçäåëÿíå íà õèëÿäèòå", IDM_DIGIT_GROUPING - END - POPUP "&Ïîìîù" - BEGIN - MENUITEM "Ïîìîù", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Çà ïðèëîæåíèåòî", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Çà GNU winecalc" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "Äîáðå", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Êàêâî å òîâà?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Ñòàòèñòèêà" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/ca-ES.rc b/reactos/base/applications/calc/lang/ca-ES.rc deleted file mode 100644 index 7a2c94f2508..00000000000 --- a/reactos/base/applications/calc/lang/ca-ES.rc +++ /dev/null @@ -1,172 +0,0 @@ -/* - * 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_CATALAN, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME, "Calculadora" - - IDS_COPYRIGHT1, "Calculadora 5.0. Sota llicenia 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, "Retrocés" - 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_BTN_DEGREES, "Sexagesimal" - IDS_BTN_RADIANS, "Radiant" - IDS_BTN_GRADS, "Graus" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Entrada invàlida per la funció." - IDS_ERR_DIVIDE_BY_ZERO, "No puc dividir per zero." - IDS_ERR_UNDEFINED, "El resultat de la funció és indefinit." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edita" - BEGIN - MENUITEM "&Copia Ctrl+C", IDM_COPY - MENUITEM "E&nganxa Ctrl+V", IDM_PASTE - END - POPUP "&Vista" - BEGIN - MENUITEM "Estandard", IDM_MODE_STANDARD - MENUITEM "Científica", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Agrupació de dígits", IDM_DIGIT_GROUPING - END - POPUP "&Ajuda" - BEGIN - MENUITEM "Temes d'ajuda", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "En quant a la Calculadora", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edita" - BEGIN - MENUITEM "&Copia Ctrl+C", IDM_COPY - MENUITEM "E&ngancxa Ctrl+V", IDM_PASTE - END - POPUP "&Vista" - BEGIN - MENUITEM "Estandard", IDM_MODE_STANDARD - MENUITEM "Cientí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 "Binària\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Sexagesimal\tF2", ID_CALC_MS_DEGREES - MENUITEM "Radiants\tF3", ID_CALC_MS_RADIANS - MENUITEM "Graus\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "Agrupació de digits", IDM_DIGIT_GROUPING - END - POPUP "&Ajuda" - BEGIN - MENUITEM "Temes d'ajuda", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "En quant a la Calculadora", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edita" - BEGIN - MENUITEM "&Copia Ctrl+C", IDM_COPY - MENUITEM "E&nganxa Ctrl+V", IDM_PASTE - END - POPUP "&Vista" - BEGIN - MENUITEM "Estandard", IDM_MODE_STANDARD - MENUITEM "Cientifica", 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 "Binària\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ó de digits", IDM_DIGIT_GROUPING - END - POPUP "&Ajuda" - BEGIN - MENUITEM "Temes d'ajuda", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "En quant a la Calculadora", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "En quant a GNU winecalc" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "Acceptar", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" BEGIN - MENUITEM "Què es això?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Cuadre Estadístic" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/cs-CZ.rc b/reactos/base/applications/calc/lang/cs-CZ.rc deleted file mode 100644 index 4ca33e175a7..00000000000 --- a/reactos/base/applications/calc/lang/cs-CZ.rc +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Czech language support - * - * WineCalc (cs-CZ.rc) - * - * Copyright 2005 Denzil - * - * 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 -BEGIN - IDS_APPNAME, "Kalkulátor" - - IDS_COPYRIGHT1, "Kalkulátor 5.0. Licencová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ì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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Neplatný vstup pro funkci." - IDS_ERR_DIVIDE_BY_ZERO, "Nelze dìlit nulou." - IDS_ERR_UNDEFINED, "Výsledek funkce není definován." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Editace" - BEGIN - MENUITEM "&Kopírovat Ctrl+C", IDM_COPY - MENUITEM "&Vložit Ctrl+V", IDM_PASTE - END - POPUP "&Zobrazení" - BEGIN - MENUITEM "Standartní", IDM_MODE_STANDARD - MENUITEM "Vìdecké", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Seskupování èíslic", IDM_DIGIT_GROUPING - END - POPUP "&Pomoc" - BEGIN - MENUITEM "Témata nápovìdy", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "O Kalkulátoru", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Editace" - BEGIN - MENUITEM "&Kopírovat Ctrl+C", IDM_COPY - MENUITEM "&Vložit Ctrl+V", IDM_PASTE - END - POPUP "&Zobrazení" - BEGIN - MENUITEM "Standartní", IDM_MODE_STANDARD - MENUITEM "Vìdecké", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Šestnáctkové\tF5", ID_CALC_NS_HEX - MENUITEM "Desítkové\tF6", ID_CALC_NS_DEC - MENUITEM "Osmièkové\tF7", ID_CALC_NS_OCT - MENUITEM "Dvojkové\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Stupnì\tF2", ID_CALC_MS_DEGREES - MENUITEM "Radiány\tF3", ID_CALC_MS_RADIANS - MENUITEM "Grady\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "Seskupování èíslic", IDM_DIGIT_GROUPING - END - POPUP "&Pomoc" - BEGIN - MENUITEM "Témata nápovìdy", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "O Kalkulátoru", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Editace" - BEGIN - MENUITEM "&Kopírovat Ctrl+C", IDM_COPY - MENUITEM "&Vložit Ctrl+V", IDM_PASTE - END - POPUP "&Zobrazení" - BEGIN - MENUITEM "Standartní", IDM_MODE_STANDARD - MENUITEM "Vìdecké", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Šestnáctkové\tF5", ID_CALC_NS_HEX - MENUITEM "Desítkové\tF6", ID_CALC_NS_DEC - MENUITEM "Osmièkové\tF7", ID_CALC_NS_OCT - MENUITEM "Dvojkové\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ání èíslic", IDM_DIGIT_GROUPING - END - POPUP "&Pomoc" - BEGIN - MENUITEM "Témata nápovìdy", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "O Kalkulátoru", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "O GNU winecalc" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" BEGIN - MENUITEM "Co je toto?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statistics Box" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/de-DE.rc b/reactos/base/applications/calc/lang/de-DE.rc index cced04e9b59..f4e7eb5e14d 100644 --- a/reactos/base/applications/calc/lang/de-DE.rc +++ b/reactos/base/applications/calc/lang/de-DE.rc @@ -1,172 +1,365 @@ -/* - * WineCalc (de-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 +// Dialog + +IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 161 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Rechner" +MENU IDR_MENU_SCIENTIFIC_1 +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Ungültige Eingabe für Funktion." - IDS_ERR_DIVIDE_BY_ZERO, "Teilen durch 0 unmöglich." - IDS_ERR_UNDEFINED, "Das Ergebnis der Funktion ist undefiniert." + GROUPBOX "",IDC_STATIC,4,16,132,21 + CONTROL "Hex",IDC_RADIO_HEX,"Button",BS_AUTORADIOBUTTON,8,24,29, + 10 + CONTROL "Dez",IDC_RADIO_DEC,"Button",BS_AUTORADIOBUTTON,40,24,29, + 10 + CONTROL "Okt",IDC_RADIO_OCT,"Button",BS_AUTORADIOBUTTON,72,24,27, + 10 + CONTROL "Bin",IDC_RADIO_BIN,"Button",BS_AUTORADIOBUTTON,100,24, + 26,10 + GROUPBOX "",IDC_STATIC,4,36,76,21 + CONTROL "Inv",IDC_CHECK_INV,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,8,44,26,10 + CONTROL "Hyp",IDC_CHECK_HYP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,40,44,29,10 + CTEXT "",IDC_TEXT_PARENT,84,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + CTEXT "",IDC_TEXT_MEMORY,112,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "Sta",IDC_BUTTON_STA,4,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Ave",IDC_BUTTON_AVE,4,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sum",IDC_BUTTON_SUM,4,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "s",IDC_BUTTON_S,4,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Dat",IDC_BUTTON_DAT,4,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F-E",IDC_BUTTON_FE,38,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "dms",IDC_BUTTON_DMS,38,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "sin",IDC_BUTTON_SIN,38,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "cos",IDC_BUTTON_COS,38,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "tan",IDC_BUTTON_TAN,38,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "(",IDC_BUTTON_LEFTPAR,64,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Exp",IDC_BUTTON_EXP,64,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^y",IDC_BUTTON_XeY,64,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^2",IDC_BUTTON_Xe2,64,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^3",IDC_BUTTON_Xe3,64,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ")",IDC_BUTTON_RIGHTPAR,90,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "ln",IDC_BUTTON_LN,90,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "log",IDC_BUTTON_LOG,90,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "n!",IDC_BUTTON_NF,90,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,90,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MC",IDC_BUTTON_MC,124,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,124,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,124,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,124,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "pi",IDC_BUTTON_PI,124,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "7",IDC_BUTTON_7,158,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,158,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,158,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,158,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "A",IDC_BUTTON_A,158,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,184,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,184,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,184,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,184,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "B",IDC_BUTTON_B,184,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,210,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,210,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,210,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,210,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "C",IDC_BUTTON_C,210,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,236,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,236,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,236,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,236,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "D",IDC_BUTTON_D,236,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Mod",IDC_BUTTON_MOD,262,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Or",IDC_BUTTON_OR,262,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Lsh",IDC_BUTTON_LSH,262,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,262,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "E",IDC_BUTTON_E,262,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "And",IDC_BUTTON_AND,288,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Xor",IDC_BUTTON_XOR,288,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Not",IDC_BUTTON_NOT,288,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Int",IDC_BUTTON_INT,288,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F",IDC_BUTTON_F,288,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + GROUPBOX "",IDC_STATIC,140,16,172,21 + CONTROL "Qword",IDC_RADIO_QWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,148,24,37,10 + CONTROL "Dword",IDC_RADIO_DWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,188,24,37,10 + CONTROL "Word",IDC_RADIO_WORD,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,232,24,33,10 + CONTROL "Byte",IDC_RADIO_BYTE,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,272,24,30,10 + CONTROL "Degree",IDC_RADIO_DEG,"Button",BS_AUTORADIOBUTTON,148,24, + 42,10 + CONTROL "Radian",IDC_RADIO_RAD,"Button",BS_AUTORADIOBUTTON,192, + 24,42,10 + CONTROL "Grad",IDC_RADIO_GRAD,"Button",BS_AUTORADIOBUTTON, + 236,24,44,10 + PUSHBUTTON "C",IDC_BUTTON_CANC,272,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,228,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Zurück",IDC_BUTTON_BACK,184,40,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,308,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -MAIN_MENU MENU DISCARDABLE +IDD_DIALOG_STANDARD DIALOGEX 0, 0, 172, 127 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Rechner" +MENU IDR_MENU_STANDARD +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - POPUP "&Bearbeiten" - BEGIN - MENUITEM "&Kopieren Ctrl+C", IDM_COPY - MENUITEM "&Einfügen Ctrl+V", IDM_PASTE - END - POPUP "&Ansicht" - BEGIN - MENUITEM "&Standard", IDM_MODE_STANDARD - MENUITEM "&Wissenschaftlich", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "&Zifferngruppierung", IDM_DIGIT_GROUPING - END - POPUP "&?" - BEGIN - MENUITEM "&Hilfethemen", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Info", IDM_ABOUT - END + PUSHBUTTON "C",IDC_BUTTON_CANC,128,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,84,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Zurück",IDC_BUTTON_BACK,40,24,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,164,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "7",IDC_BUTTON_7,40,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,40,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,40,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,40,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,66,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,66,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,66,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,66,105,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,92,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,92,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,92,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,92,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,118,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,118,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,118,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,118,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sqrt",IDC_BUTTON_SQRT,144,48,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "%",IDC_BUTTON_PERCENT,144,67,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,144,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,144,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + CTEXT "",IDC_TEXT_MEMORY,4,24,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "MC",IDC_BUTTON_MC,4,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,4,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,4,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,4,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Bearbeiten" - BEGIN - MENUITEM "&Kopieren Ctrl+C", IDM_COPY - MENUITEM "&Einfügen Ctrl+V", IDM_PASTE - END - POPUP "&Anzeige" - BEGIN - 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ä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 - END - POPUP "&?" - BEGIN - MENUITEM "&Hilfethemen", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Info", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Bearbeiten" - BEGIN - MENUITEM "&Kopieren Ctrl+C", IDM_COPY - MENUITEM "&Einfügen Ctrl+V", IDM_PASTE - END - POPUP "&Anzeige" - BEGIN - 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ä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 - END - POPUP "&?" - BEGIN - MENUITEM "&Hilfethemen", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Info", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Info über GNU winecalc" +IDD_DIALOG_ABOUT DIALOGEX DISCARDABLE 0, 0, 264, 169 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Über ReactOS Rechner" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,105,148,52,16 + CONTROL 106,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | + SS_REALSIZEIMAGE | WS_BORDER,4,4,104,48 + LTEXT "ReactOS Rechner",IDC_STATIC,120,12,132,8, + SS_CENTERIMAGE + LTEXT "Version ",IDC_TEXT_VERSION,120,20,132,8,SS_CENTERIMAGE + LTEXT "Geschrieben von Carlo Bramini",IDC_STATIC,120,32,132,8, + SS_CENTERIMAGE + GROUPBOX "",IDC_STATIC,112,0,148,52 + GROUPBOX "",IDC_STATIC,4,56,256,88 + EDITTEXT IDC_EDIT_LICENSE,12,68,240,68,ES_MULTILINE | ES_READONLY | + WS_VSCROLL END -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" BEGIN - MENUITEM "Was ist das?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 +IDD_DIALOG_STAT DIALOGEX DISCARDABLE 0, 0, 163, 85 +STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Statistik Box" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP + LISTBOX IDC_LIST_STAT,4,4,156,40,LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "RET",IDC_BUTTON_RET,4,48,36,16 + PUSHBUTTON "LOAD",IDC_BUTTON_LOAD,44,48,36,16 + PUSHBUTTON "CD",IDC_BUTTON_CD,84,48,36,16 + PUSHBUTTON "CAD",IDC_BUTTON_CAD,124,48,36,16 + CTEXT "n=0",IDC_TEXT_NITEMS,4,68,156,12,SS_CENTERIMAGE | + SS_SUNKEN END + + +// Menus + +IDR_MENU_SCIENTIFIC_1 MENU DISCARDABLE +BEGIN + POPUP "Bearbeiten" + BEGIN + MENUITEM "Kopieren\tSTRG-C", IDM_EDIT_COPY + MENUITEM "Einfügen\tSTRG-V", IDM_EDIT_PASTE + END + POPUP "Ansicht" + BEGIN + MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Konversion", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Dezimal\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Oktal\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Binär\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Degree\tF2", IDM_VIEW_DEG, CHECKED + MENUITEM "Radian\tF3", IDM_VIEW_RAD, CHECKED + MENUITEM "Grad\tF4", IDM_VIEW_GRAD, CHECKED + MENUITEM SEPARATOR + MENUITEM "Zifferngruppierung", IDM_VIEW_GROUP, CHECKED + END + POPUP "Hilfe" + BEGIN + MENUITEM "Hilfethemen", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Info", IDM_HELP_ABOUT + END +END + +IDR_MENU_SCIENTIFIC_2 MENU DISCARDABLE +BEGIN + POPUP "Bearbeiten" + BEGIN + MENUITEM "Kopieren\tSTRG-C", IDM_EDIT_COPY + MENUITEM "Einfügen\tSTRG-V", IDM_EDIT_PASTE + END + POPUP "Ansicht" + BEGIN + MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Konversion", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Dezimal\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Oktal\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Binär\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Qword\tF12", IDM_VIEW_QWORD, CHECKED + MENUITEM "Dword\tF2", IDM_VIEW_DWORD, CHECKED + MENUITEM "Word\tF3", IDM_VIEW_WORD, CHECKED + MENUITEM "Byte\tF4", IDM_VIEW_BYTE, CHECKED + MENUITEM SEPARATOR + MENUITEM "Zifferngruppierung", IDM_VIEW_GROUP, CHECKED + END + POPUP "Hilfe" + BEGIN + MENUITEM "Hilfethemen", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Über ReactOS Rechner", IDM_HELP_ABOUT + END +END + +IDR_MENU_STANDARD MENU DISCARDABLE +BEGIN + POPUP "Bearbeiten" + BEGIN + MENUITEM "Kopieren\tSTRG-C", IDM_EDIT_COPY + MENUITEM "Einfügen\tSTRG-V", IDM_EDIT_PASTE + END + POPUP "Ansicht" + BEGIN + MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Konversion", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Zifferngruppierung", IDM_VIEW_GROUP, CHECKED + END + POPUP "Hilfe" + BEGIN + MENUITEM "Hilfethemen", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Über ReactOS Rechner", IDM_HELP_ABOUT + END +END + +// String Tables + +STRINGTABLE DISCARDABLE +BEGIN + IDS_STRING_LICENSE "ReactOS Rechner ist freie Software, herausgegeben unter der GNU GPL Lizenz.\r\n\r\nSie können hier eine Kopie der GNU GPL Lizenz erhalten:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nSie können hier auch eine Übersetzung der GNU GPL Lizenz erhalten:\r\nhttp://www.gnu.org/licenses/translations.html" + IDS_MATH_ERROR "Fehler" + IDS_QUICKHELP "Schnellhilfe" +END + diff --git a/reactos/base/applications/calc/lang/el-GR.rc b/reactos/base/applications/calc/lang/el-GR.rc deleted file mode 100644 index 1661c907eac..00000000000 --- a/reactos/base/applications/calc/lang/el-GR.rc +++ /dev/null @@ -1,172 +0,0 @@ -/* - * WineCalc (el-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 -BEGIN - IDS_APPNAME, "ÕðïëïãéóôÞò" - - IDS_COPYRIGHT1, "ÕðïëïãéóôÞò 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "ËáíèáóìÝíï üñéóìá ãéá ôç óõíÜñôçóç." - IDS_ERR_DIVIDE_BY_ZERO, "Äå ìðïñåß íá ãßíåé äéáßñåóç ôïõ ìçäåíüò." - IDS_ERR_UNDEFINED, "Ôï áðïôÝëåóìá ôçò óõíÜñôçóçò åßíáé áäéåõêñßíéóôï." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Åðåîåñãáóßá" - BEGIN - MENUITEM "&ÁíôéãñáöÞ Ctrl+C", IDM_COPY - MENUITEM "&Åðéêüëëçóç Ctrl+V", IDM_PASTE - END - POPUP "&¸íäåéîç" - BEGIN - MENUITEM "Êáíïíéêü", IDM_MODE_STANDARD - MENUITEM "Åðéóôçìïíéêü", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "ÏñãÜíùóç øçößùí", IDM_DIGIT_GROUPING - END - POPUP "&ÂïÞèåéá" - BEGIN - MENUITEM "ÈÝìáôá âïÞèåéáò", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Ðåñß ôïõ ÕðïëïãéóôÞ", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Åðåîåñãáóßá" - BEGIN - MENUITEM "&ÁíôéãñáöÞ Ctrl+C", IDM_COPY - MENUITEM "&Åðéêüëëçóç Ctrl+V", IDM_PASTE - END - POPUP "&¸íäåéîç" - BEGIN - MENUITEM "Êáíïíéêü", IDM_MODE_STANDARD - MENUITEM "Åðéóôçìïíéêü", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Äåêáåîáäéêü\tF5", ID_CALC_NS_HEX - MENUITEM "Äåêáäéêü\tF6", ID_CALC_NS_DEC - MENUITEM "Ïêôáäéêü\tF7", ID_CALC_NS_OCT - MENUITEM "Äõáäéêü\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Âáèìïß\tF2", ID_CALC_MS_DEGREES - MENUITEM "Ìïßñåò\tF3", ID_CALC_MS_RADIANS - MENUITEM "Grads\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "ÏñãÜíùóç øçößùí", IDM_DIGIT_GROUPING - END - POPUP "&ÂïÞèåéá" - BEGIN - MENUITEM "ÈÝìáôá âïÞèåéáò", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Ðåñß ôïõ ÕðïëïãéóôÞ", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Åðåîåñãáóßá" - BEGIN - MENUITEM "&ÁíôéãñáöÞ Ctrl+C", IDM_COPY - MENUITEM "&Åðéêüëëçóç Ctrl+V", IDM_PASTE - END - POPUP "&¸íäåéîç" - BEGIN - MENUITEM "Êáíïíéêü", IDM_MODE_STANDARD - MENUITEM "Åðéóôçìïíéêü", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Äåêáåîáäéêü\tF5", ID_CALC_NS_HEX - MENUITEM "Äåêáäéêü\tF6", ID_CALC_NS_DEC - MENUITEM "Ïêôáäéêü\tF7", ID_CALC_NS_OCT - MENUITEM "Äõáäéêü\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Âáèìïß\tF2", ID_CALC_MS_DEGREES - MENUITEM "Ìïßñåò\tF3", ID_CALC_MS_RADIANS - MENUITEM "Grads\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "ÏñãÜíùóç øçößùí", IDM_DIGIT_GROUPING - END - POPUP "&ÂïÞèåéá" - BEGIN - MENUITEM "ÈÝìáôá âïÞèåéáò", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Ðåñß ôïõ ÕðïëïãéóôÞ", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Ðåñß ôïõ GNU winecalc" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Ôé åßíáé áõôü;", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statistics Box" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/en-US.rc b/reactos/base/applications/calc/lang/en-US.rc index a60c924ebfb..fd048f21bd2 100644 --- a/reactos/base/applications/calc/lang/en-US.rc +++ b/reactos/base/applications/calc/lang/en-US.rc @@ -1,173 +1,365 @@ -/* - * WineCalc (en-US.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 +// Dialog + +IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 161 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Calculator" +MENU IDR_MENU_SCIENTIFIC_1 +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - 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." + GROUPBOX "",IDC_STATIC,4,16,132,21 + CONTROL "Hex",IDC_RADIO_HEX,"Button",BS_AUTORADIOBUTTON,8,24,29, + 10 + CONTROL "Dec",IDC_RADIO_DEC,"Button",BS_AUTORADIOBUTTON,40,24,29, + 10 + CONTROL "Oct",IDC_RADIO_OCT,"Button",BS_AUTORADIOBUTTON,72,24,27, + 10 + CONTROL "Bin",IDC_RADIO_BIN,"Button",BS_AUTORADIOBUTTON,100,24, + 26,10 + GROUPBOX "",IDC_STATIC,4,36,76,21 + CONTROL "Inv",IDC_CHECK_INV,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,8,44,26,10 + CONTROL "Hyp",IDC_CHECK_HYP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,40,44,29,10 + CTEXT "",IDC_TEXT_PARENT,84,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + CTEXT "",IDC_TEXT_MEMORY,112,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "Sta",IDC_BUTTON_STA,4,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Ave",IDC_BUTTON_AVE,4,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sum",IDC_BUTTON_SUM,4,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "s",IDC_BUTTON_S,4,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Dat",IDC_BUTTON_DAT,4,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F-E",IDC_BUTTON_FE,38,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "dms",IDC_BUTTON_DMS,38,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "sin",IDC_BUTTON_SIN,38,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "cos",IDC_BUTTON_COS,38,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "tan",IDC_BUTTON_TAN,38,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "(",IDC_BUTTON_LEFTPAR,64,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Exp",IDC_BUTTON_EXP,64,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^y",IDC_BUTTON_XeY,64,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^2",IDC_BUTTON_Xe2,64,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^3",IDC_BUTTON_Xe3,64,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ")",IDC_BUTTON_RIGHTPAR,90,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "ln",IDC_BUTTON_LN,90,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "log",IDC_BUTTON_LOG,90,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "n!",IDC_BUTTON_NF,90,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,90,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MC",IDC_BUTTON_MC,124,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,124,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,124,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,124,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "pi",IDC_BUTTON_PI,124,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "7",IDC_BUTTON_7,158,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,158,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,158,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,158,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "A",IDC_BUTTON_A,158,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,184,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,184,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,184,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,184,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "B",IDC_BUTTON_B,184,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,210,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,210,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,210,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,210,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "C",IDC_BUTTON_C,210,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,236,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,236,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,236,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,236,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "D",IDC_BUTTON_D,236,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Mod",IDC_BUTTON_MOD,262,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Or",IDC_BUTTON_OR,262,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Lsh",IDC_BUTTON_LSH,262,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,262,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "E",IDC_BUTTON_E,262,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "And",IDC_BUTTON_AND,288,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Xor",IDC_BUTTON_XOR,288,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Not",IDC_BUTTON_NOT,288,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Int",IDC_BUTTON_INT,288,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F",IDC_BUTTON_F,288,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + GROUPBOX "",IDC_STATIC,140,16,172,21 + CONTROL "Qword",IDC_RADIO_QWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,148,24,37,10 + CONTROL "Dword",IDC_RADIO_DWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,188,24,37,10 + CONTROL "Word",IDC_RADIO_WORD,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,232,24,33,10 + CONTROL "Byte",IDC_RADIO_BYTE,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,272,24,30,10 + CONTROL "Degrees",IDC_RADIO_DEG,"Button",BS_AUTORADIOBUTTON,148,24, + 42,10 + CONTROL "Radians",IDC_RADIO_RAD,"Button",BS_AUTORADIOBUTTON,192, + 24,42,10 + CONTROL "Grads",IDC_RADIO_GRAD,"Button",BS_AUTORADIOBUTTON, + 236,24,44,10 + PUSHBUTTON "C",IDC_BUTTON_CANC,272,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,228,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Back",IDC_BUTTON_BACK,184,40,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,308,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -MAIN_MENU MENU DISCARDABLE +IDD_DIALOG_STANDARD DIALOGEX 0, 0, 172, 127 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Calculator" +MENU IDR_MENU_STANDARD +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - POPUP "&Edit" - BEGIN - MENUITEM "&Copy Ctrl+C", IDM_COPY - MENUITEM "&Paste Ctrl+V", IDM_PASTE - END - POPUP "&View" - BEGIN - MENUITEM "Standard", IDM_MODE_STANDARD - MENUITEM "Scientific", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING - END - POPUP "&Help" - BEGIN - MENUITEM "Help Topics", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "About Calculator", IDM_ABOUT - END + PUSHBUTTON "C",IDC_BUTTON_CANC,128,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,84,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Back",IDC_BUTTON_BACK,40,24,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,164,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "7",IDC_BUTTON_7,40,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,40,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,40,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,40,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,66,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,66,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,66,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,66,105,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,92,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,92,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,92,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,92,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,118,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,118,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,118,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,118,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sqrt",IDC_BUTTON_SQRT,144,48,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "%",IDC_BUTTON_PERCENT,144,67,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,144,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,144,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + CTEXT "",IDC_TEXT_MEMORY,4,24,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "MC",IDC_BUTTON_MC,4,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,4,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,4,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,4,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edit" - BEGIN - MENUITEM "&Copy Ctrl+C", IDM_COPY - MENUITEM "&Paste Ctrl+V", IDM_PASTE - END - POPUP "&View" - BEGIN - 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 - END - POPUP "&Help" - BEGIN - MENUITEM "Help Topics", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "About Calculator", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edit" - BEGIN - MENUITEM "&Copy Ctrl+C", IDM_COPY - MENUITEM "&Paste Ctrl+V", IDM_PASTE - END - POPUP "&View" - BEGIN - 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 - END - POPUP "&Help" - BEGIN - MENUITEM "Help Topics", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "About Calculator", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "About GNU winecalc" +IDD_DIALOG_ABOUT DIALOGEX DISCARDABLE 0, 0, 264, 169 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "About ReactOS Calc" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,105,148,52,16 + CONTROL 106,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | + SS_REALSIZEIMAGE | WS_BORDER,4,4,104,48 + LTEXT "ReactOS Calculator",IDC_STATIC,120,12,132,8, + SS_CENTERIMAGE + LTEXT "Version ",IDC_TEXT_VERSION,120,20,132,8,SS_CENTERIMAGE + LTEXT "Written by Carlo Bramini",IDC_STATIC,120,32,132,8, + SS_CENTERIMAGE + GROUPBOX "",IDC_STATIC,112,0,148,52 + GROUPBOX "",IDC_STATIC,4,56,256,88 + EDITTEXT IDC_EDIT_LICENSE,12,68,240,68,ES_MULTILINE | ES_READONLY | + WS_VSCROLL END -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "What's This?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statistics Box" +IDD_DIALOG_STAT DIALOGEX DISCARDABLE 0, 0, 163, 85 +STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Statistics box" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP + LISTBOX IDC_LIST_STAT,4,4,156,40,LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "RET",IDC_BUTTON_RET,4,48,36,16 + PUSHBUTTON "LOAD",IDC_BUTTON_LOAD,44,48,36,16 + PUSHBUTTON "CD",IDC_BUTTON_CD,84,48,36,16 + PUSHBUTTON "CAD",IDC_BUTTON_CAD,124,48,36,16 + CTEXT "n=0",IDC_TEXT_NITEMS,4,68,156,12,SS_CENTERIMAGE | + SS_SUNKEN END + + +// Menus + +IDR_MENU_SCIENTIFIC_1 MENU DISCARDABLE +BEGIN + POPUP "Edit" + BEGIN + MENUITEM "Copy\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Paste\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "View" + BEGIN + MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Scientific", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Conversion", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Decimal\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Octal\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Binary\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Degrees\tF2", IDM_VIEW_DEG, CHECKED + MENUITEM "Radians\tF3", IDM_VIEW_RAD, CHECKED + MENUITEM "Grads\tF4", IDM_VIEW_GRAD, CHECKED + MENUITEM SEPARATOR + MENUITEM "Group digits", IDM_VIEW_GROUP, CHECKED + END + POPUP "Help" + BEGIN + MENUITEM "Help topics", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "About ReactOS Calc", IDM_HELP_ABOUT + END +END + +IDR_MENU_SCIENTIFIC_2 MENU DISCARDABLE +BEGIN + POPUP "Edit" + BEGIN + MENUITEM "Copy\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Paste\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "View" + BEGIN + MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Scientific", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Conversion", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Decimal\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Octal\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Binary\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Qword\tF12", IDM_VIEW_QWORD, CHECKED + MENUITEM "Dword\tF2", IDM_VIEW_DWORD, CHECKED + MENUITEM "Word\tF3", IDM_VIEW_WORD, CHECKED + MENUITEM "Byte\tF4", IDM_VIEW_BYTE, CHECKED + MENUITEM SEPARATOR + MENUITEM "Group digits", IDM_VIEW_GROUP, CHECKED + END + POPUP "Help" + BEGIN + MENUITEM "Help topics", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "About ReactOS Calc", IDM_HELP_ABOUT + END +END + +IDR_MENU_STANDARD MENU DISCARDABLE +BEGIN + POPUP "Edit" + BEGIN + MENUITEM "Copy\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Paste\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "View" + BEGIN + MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Scientific", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Conversion", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Group digits", IDM_VIEW_GROUP, CHECKED + END + POPUP "Help" + BEGIN + MENUITEM "Help topics", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "About ReactOS Calc", IDM_HELP_ABOUT + END +END + +// String Tables + +STRINGTABLE DISCARDABLE +BEGIN + IDS_STRING_LICENSE "ReactOS Calc is free software released under GNU GPL license.\r\n\r\nYou can get a copy of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nYou can also get a translation of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/translations.html" + IDS_MATH_ERROR "Error" + IDS_QUICKHELP "Quick help" +END + diff --git a/reactos/base/applications/calc/lang/es-ES.rc b/reactos/base/applications/calc/lang/es-ES.rc index 9b9c33b2c75..09d1967d422 100644 --- a/reactos/base/applications/calc/lang/es-ES.rc +++ b/reactos/base/applications/calc/lang/es-ES.rc @@ -1,173 +1,370 @@ /* - * WineCalc (Spanish resources) - * - * Copyright 2005 Patricio Martí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 + *Spanish Language resource file + * Traducido por: Javier Remacha 2007-12-31 */ -#include "windows.h" -#include "resource.h" -#include "winecalc.h" - LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +// Dialog + +IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 161 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Calculadora ReactOS" +MENU IDR_MENU_SCIENTIFIC_1 +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Entrada no válida para la función." - IDS_ERR_DIVIDE_BY_ZERO, "No se puede dividir entre cero." - IDS_ERR_UNDEFINED, "El resultado de esta función no está definido." + GROUPBOX "",IDC_STATIC,4,16,132,21 + CONTROL "Hex",IDC_RADIO_HEX,"Button",BS_AUTORADIOBUTTON,8,24,29, + 10 + CONTROL "Dec",IDC_RADIO_DEC,"Button",BS_AUTORADIOBUTTON,40,24,29, + 10 + CONTROL "Oct",IDC_RADIO_OCT,"Button",BS_AUTORADIOBUTTON,72,24,27, + 10 + CONTROL "Bin",IDC_RADIO_BIN,"Button",BS_AUTORADIOBUTTON,100,24, + 26,10 + GROUPBOX "",IDC_STATIC,4,36,76,21 + CONTROL "Inv",IDC_CHECK_INV,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,8,44,26,10 + CONTROL "Hyp",IDC_CHECK_HYP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,40,44,29,10 + CTEXT "",IDC_TEXT_PARENT,84,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + CTEXT "",IDC_TEXT_MEMORY,112,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "Sta",IDC_BUTTON_STA,4,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Ave",IDC_BUTTON_AVE,4,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sum",IDC_BUTTON_SUM,4,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "s",IDC_BUTTON_S,4,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Dat",IDC_BUTTON_DAT,4,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F-E",IDC_BUTTON_FE,38,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "dms",IDC_BUTTON_DMS,38,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "sin",IDC_BUTTON_SIN,38,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "cos",IDC_BUTTON_COS,38,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "tan",IDC_BUTTON_TAN,38,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "(",IDC_BUTTON_LEFTPAR,64,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Exp",IDC_BUTTON_EXP,64,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^y",IDC_BUTTON_XeY,64,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^2",IDC_BUTTON_Xe2,64,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^3",IDC_BUTTON_Xe3,64,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ")",IDC_BUTTON_RIGHTPAR,90,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "ln",IDC_BUTTON_LN,90,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "log",IDC_BUTTON_LOG,90,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "n!",IDC_BUTTON_NF,90,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,90,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MC",IDC_BUTTON_MC,124,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,124,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,124,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,124,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "pi",IDC_BUTTON_PI,124,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "7",IDC_BUTTON_7,158,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,158,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,158,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,158,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "A",IDC_BUTTON_A,158,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,184,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,184,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,184,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,184,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "B",IDC_BUTTON_B,184,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,210,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,210,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,210,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,210,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "C",IDC_BUTTON_C,210,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,236,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,236,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,236,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,236,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "D",IDC_BUTTON_D,236,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Mod",IDC_BUTTON_MOD,262,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Or",IDC_BUTTON_OR,262,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Lsh",IDC_BUTTON_LSH,262,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,262,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "E",IDC_BUTTON_E,262,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "And",IDC_BUTTON_AND,288,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Xor",IDC_BUTTON_XOR,288,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Not",IDC_BUTTON_NOT,288,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Int",IDC_BUTTON_INT,288,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F",IDC_BUTTON_F,288,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + GROUPBOX "",IDC_STATIC,140,16,172,21 + CONTROL "Qword",IDC_RADIO_QWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,148,24,37,10 + CONTROL "Dword",IDC_RADIO_DWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,188,24,37,10 + CONTROL "Word",IDC_RADIO_WORD,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,232,24,33,10 + CONTROL "Byte",IDC_RADIO_BYTE,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,272,24,30,10 + CONTROL "Degrees",IDC_RADIO_DEG,"Button",BS_AUTORADIOBUTTON,148,24, + 42,10 + CONTROL "Radianes",IDC_RADIO_RAD,"Button",BS_AUTORADIOBUTTON,192, + 24,42,10 + CONTROL "Gradians",IDC_RADIO_GRAD,"Button",BS_AUTORADIOBUTTON, + 236,24,44,10 + PUSHBUTTON "C",IDC_BUTTON_CANC,272,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,228,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Back",IDC_BUTTON_BACK,184,40,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,308,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -MAIN_MENU MENU DISCARDABLE +IDD_DIALOG_STANDARD DIALOGEX 0, 0, 172, 127 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Calculadora ReactOS" +MENU IDR_MENU_STANDARD +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - POPUP "&Editar" - BEGIN - MENUITEM "&Copiar Ctrl+C", IDM_COPY - MENUITEM "&Pegar Ctrl+V", IDM_PASTE - END - POPUP "&Ver" - BEGIN - MENUITEM "Estándar", IDM_MODE_STANDARD - MENUITEM "Científica", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Agrupación de dígitos", IDM_DIGIT_GROUPING - END - POPUP "Ayuda" - BEGIN - MENUITEM "Temas de Ayuda", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Acerca de Calculadora", IDM_ABOUT - END + PUSHBUTTON "C",IDC_BUTTON_CANC,128,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,84,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Retroceso",IDC_BUTTON_BACK,40,24,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,164,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "7",IDC_BUTTON_7,40,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,40,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,40,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,40,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,66,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,66,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,66,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,66,105,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,92,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,92,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,92,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,92,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,118,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,118,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,118,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,118,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sqrt",IDC_BUTTON_SQRT,144,48,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "%",IDC_BUTTON_PERCENT,144,67,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,144,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,144,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + CTEXT "",IDC_TEXT_MEMORY,4,24,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "MC",IDC_BUTTON_MC,4,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,4,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,4,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,4,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Editar" - BEGIN - MENUITEM "&Copiar Ctrl+C", IDM_COPY - MENUITEM "&Pegar Ctrl+V", IDM_PASTE - END - POPUP "&Ver" - BEGIN - MENUITEM "Estándar", IDM_MODE_STANDARD - MENUITEM "Cientí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án\tF3", ID_CALC_MS_RADIANS - MENUITEM "Centesimal\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "Agrupación de dígitos", IDM_DIGIT_GROUPING - END - POPUP "Ayuda" - BEGIN - MENUITEM "Temas de Ayuda", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Acerca de Calculadora", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Editar" - BEGIN - MENUITEM "&Copiar Ctrl+C", IDM_COPY - MENUITEM "&Pegar Ctrl+V", IDM_PASTE - END - POPUP "&Ver" - BEGIN - MENUITEM "Estándar", IDM_MODE_STANDARD - MENUITEM "Cientí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ón de dígitos", IDM_DIGIT_GROUPING - END - POPUP "Ayuda" - BEGIN - MENUITEM "Temas de Ayuda", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Acerca de Calculadora", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Acerca de GNU winecalc" +IDD_DIALOG_ABOUT DIALOGEX DISCARDABLE 0, 0, 264, 169 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Acerca de Calculadora ReactOS" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU BEGIN - DEFPUSHBUTTON "Aceptar", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "Aceptar",IDOK,105,148,52,16 + CONTROL 106,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | + SS_REALSIZEIMAGE | WS_BORDER,4,4,104,48 + LTEXT "Calculadora ReactOS",IDC_STATIC,120,12,132,8, + SS_CENTERIMAGE + LTEXT "Versión ",IDC_TEXT_VERSION,120,20,132,8,SS_CENTERIMAGE + LTEXT "Escrita por Carlo Bramini",IDC_STATIC,120,32,132,8, + SS_CENTERIMAGE + GROUPBOX "",IDC_STATIC,112,0,148,52 + GROUPBOX "",IDC_STATIC,4,56,256,88 + EDITTEXT IDC_EDIT_LICENSE,12,68,240,68,ES_MULTILINE | ES_READONLY | + WS_VSCROLL END -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "¿Qué es esto?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Cuadro de estadísticas" +IDD_DIALOG_STAT DIALOGEX DISCARDABLE 0, 0, 163, 85 +STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Statistics box" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP + LISTBOX IDC_LIST_STAT,4,4,156,40,LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "RET",IDC_BUTTON_RET,4,48,36,16 + PUSHBUTTON "LOAD",IDC_BUTTON_LOAD,44,48,36,16 + PUSHBUTTON "CD",IDC_BUTTON_CD,84,48,36,16 + PUSHBUTTON "CAD",IDC_BUTTON_CAD,124,48,36,16 + CTEXT "n=0",IDC_TEXT_NITEMS,4,68,156,12,SS_CENTERIMAGE | + SS_SUNKEN END + + +// Menus + +IDR_MENU_SCIENTIFIC_1 MENU DISCARDABLE +BEGIN + POPUP "Edición" + BEGIN + MENUITEM "Copiar\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Pegar\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Ver" + BEGIN + MENUITEM "Estándar", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Científica", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Conversión", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Hexadecimal\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Decimal\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Octal\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Binario\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Sexagesimal\tF2", IDM_VIEW_DEG, CHECKED + MENUITEM "Radián\tF3", IDM_VIEW_RAD, CHECKED + MENUITEM "Centesimal\tF4", IDM_VIEW_GRAD, CHECKED + MENUITEM SEPARATOR + MENUITEM "Número de dígitos en grupo", IDM_VIEW_GROUP, CHECKED + END + POPUP "Ayuda" + BEGIN + MENUITEM "Temas de ayuda", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Acerca de Calculadora ReactOS", IDM_HELP_ABOUT + END +END + +IDR_MENU_SCIENTIFIC_2 MENU DISCARDABLE +BEGIN + POPUP "Edición" + BEGIN + MENUITEM "Copiar\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Pegar\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Ver" + BEGIN + MENUITEM "Estándar", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Científica", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Conversión", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Hexadecimal\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Decimal\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Octal\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Binario\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Qword\tF12", IDM_VIEW_QWORD, CHECKED + MENUITEM "Dword\tF2", IDM_VIEW_DWORD, CHECKED + MENUITEM "Word\tF3", IDM_VIEW_WORD, CHECKED + MENUITEM "Byte\tF4", IDM_VIEW_BYTE, CHECKED + MENUITEM SEPARATOR + MENUITEM "Número de dígitos en grupo", IDM_VIEW_GROUP, CHECKED + END + POPUP "Ayuda" + BEGIN + MENUITEM "Temas de ayuda", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Acerca de Calculadora ReactOS", IDM_HELP_ABOUT + END +END + +IDR_MENU_STANDARD MENU DISCARDABLE +BEGIN + POPUP "Edición" + BEGIN + MENUITEM "Copiar\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Pegar\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Ver" + BEGIN + MENUITEM "Estándar", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Científica", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Conversión", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Número de dígitos en grupo", IDM_VIEW_GROUP, CHECKED + END + POPUP "Ayuda" + BEGIN + MENUITEM "Temas de ayuda", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Acerca de Calculadora ReactOS", IDM_HELP_ABOUT + END +END + +// String Tables + +STRINGTABLE DISCARDABLE +BEGIN + IDS_STRING_LICENSE "Calculadora ReactOS es software gratuito realizado bajo licencia GNU GPL.\r\n\r\nPuedes coger una copia de la licencia GNU GPL aquí:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nPuedes también coger una traducción de la licencia GNU GPL aquí:\r\nhttp://www.gnu.org/licenses/translations.html" + IDS_MATH_ERROR "Error" + IDS_QUICKHELP "Ayuda rápida" +END + diff --git a/reactos/base/applications/calc/lang/fi-FI.rc b/reactos/base/applications/calc/lang/fi-FI.rc deleted file mode 100644 index dc4c86cf192..00000000000 --- a/reactos/base/applications/calc/lang/fi-FI.rc +++ /dev/null @@ -1,149 +0,0 @@ -LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME, "Laskin" - - 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, "Takaisin" - 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Väärä syöte funktiolle." - IDS_ERR_DIVIDE_BY_ZERO, "Nollalla ei voi jakaa." - IDS_ERR_UNDEFINED, "Result of function is undefined." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Muokkaa" - BEGIN - MENUITEM "K&opioi Ctrl+C", IDM_COPY - MENUITEM "L&iitä Ctrl+V", IDM_PASTE - END - POPUP "&Näytä" - BEGIN - MENUITEM "Nelilaskin", IDM_MODE_STANDARD - MENUITEM "Funktiolaskin", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Lukujen ryhmittely", IDM_DIGIT_GROUPING - END - POPUP "&Ohje" - BEGIN - MENUITEM "Ohjeen aiheet", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Tietoja Laskimesta", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Muokkaa" - BEGIN - MENUITEM "K&opioi Ctrl+C", IDM_COPY - MENUITEM "L&iitä Ctrl+V", IDM_PASTE - END - POPUP "&Näytä" - BEGIN - MENUITEM "Nelilaskin", IDM_MODE_STANDARD - MENUITEM "Funktiolaskin", 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 "Lukujen ryhmittely", IDM_DIGIT_GROUPING - END - POPUP "&Ohje" - BEGIN - MENUITEM "Ohjeen aiheet", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Tietoja Laskimesta", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Muokkaa" - BEGIN - MENUITEM "K&opioi Ctrl+C", IDM_COPY - MENUITEM "L&iitä Ctrl+V", IDM_PASTE - END - POPUP "&View" - BEGIN - MENUITEM "Nelilaskin", IDM_MODE_STANDARD - MENUITEM "Funktiolaskin", 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 "Lukujen ryhmittely", IDM_DIGIT_GROUPING - END - POPUP "&Ohje" - BEGIN - MENUITEM "Ohjeen aiheet", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Tietoja Laskimesta", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "About GNU winecalc" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Mikä tämä on?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statistics Box" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/fr-FR.rc b/reactos/base/applications/calc/lang/fr-FR.rc deleted file mode 100644 index 410775910f8..00000000000 --- a/reactos/base/applications/calc/lang/fr-FR.rc +++ /dev/null @@ -1,176 +0,0 @@ -/* - * WineCalc (fr-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. - * Updated by Pierre Schweitzer, 2007. - */ -#include "windows.h" -#include "resource.h" -#include "winecalc.h" - -LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME, "Calculatrice" - - IDS_COPYRIGHT1, "Calculatrice 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_BTN_DEGREES, "Degrés" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grades" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Déc" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Entrée incorrecte pour l'opération." - IDS_ERR_DIVIDE_BY_ZERO, "Division par zéro impossble." - IDS_ERR_UNDEFINED, "Résultat non défini." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Édition" - BEGIN - MENUITEM "Co&pier Ctrl+C", IDM_COPY - MENUITEM "C&oller Ctrl+V", IDM_PASTE - END - POPUP "&Affichage" - BEGIN - MENUITEM "Standard", IDM_MODE_STANDARD - MENUITEM "Scientifique", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Séparateur", IDM_DIGIT_GROUPING - END - POPUP "Ai&de" - BEGIN - MENUITEM "Somaire", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "A propos", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Édition" - BEGIN - MENUITEM "Co&pier Ctrl+C", IDM_COPY - MENUITEM "C&oller Ctrl+V", IDM_PASTE - END - POPUP "&Affichage" - BEGIN - MENUITEM "Standard", IDM_MODE_STANDARD - MENUITEM "Scientifique", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Hexadécimal\tF5", ID_CALC_NS_HEX - MENUITEM "Décimal\tF6", ID_CALC_NS_DEC - MENUITEM "Octal\tF7", ID_CALC_NS_OCT - MENUITEM "Binaire\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Degrés\tF2", ID_CALC_MS_DEGREES - MENUITEM "Radians\tF3", ID_CALC_MS_RADIANS - MENUITEM "Grades\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "Séparateur", IDM_DIGIT_GROUPING - END - POPUP "Ai&de" - BEGIN - MENUITEM "Sommaire", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "À propos", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Édition" - BEGIN - MENUITEM "Co&pier Ctrl+C", IDM_COPY - MENUITEM "C&oller Ctrl+V", IDM_PASTE - END - POPUP "&Affichage" - BEGIN - MENUITEM "Standard", IDM_MODE_STANDARD - MENUITEM "Scientifique", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Hexadécimal\tF5", ID_CALC_NS_HEX - MENUITEM "Décimal\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 - END - POPUP "Ai&de" - BEGIN - MENUITEM "Sommaire", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "À propos", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "À propos de GNU winecalc" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Qu'est-ce ?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Outils Statistiques Box" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/hu-HU.rc b/reactos/base/applications/calc/lang/hu-HU.rc deleted file mode 100644 index 17fa7ed4592..00000000000 --- a/reactos/base/applications/calc/lang/hu-HU.rc +++ /dev/null @@ -1,174 +0,0 @@ -/* - * WineCalc (hu-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 -BEGIN - IDS_APPNAME, "Számológé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ök" - IDS_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Hibás bemenet." - IDS_ERR_DIVIDE_BY_ZERO, "Nem tudok nullával osztani." - IDS_ERR_UNDEFINED, "Result of function is undefined." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Szerkesztés" - BEGIN - MENUITEM "&Másolás Ctrl+C", IDM_COPY - MENUITEM "&Beillesztés Ctrl+V", IDM_PASTE - END - POPUP "&Nézet" - BEGIN - MENUITEM "Alap", IDM_MODE_STANDARD - MENUITEM "Tudományos", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Számjegyek csoportosítása", IDM_DIGIT_GROUPING - END - POPUP "Sú&gó" - BEGIN - MENUITEM "&Témakörök", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Számológép névjegye", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Szerkesztés" - BEGIN - MENUITEM "&Másolás Ctrl+C", IDM_COPY - MENUITEM "&Beillesztés Ctrl+V", IDM_PASTE - END - POPUP "&Nézet" - BEGIN - MENUITEM "Alap", IDM_MODE_STANDARD - MENUITEM "Tudományos", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Hexadecimális\tF5", ID_CALC_NS_HEX - MENUITEM "Decimális\tF6", ID_CALC_NS_DEC - MENUITEM "Oktális\tF7", ID_CALC_NS_OCT - MENUITEM "Bináris\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Fok\tF2", ID_CALC_MS_DEGREES - MENUITEM "Radián\tF3", ID_CALC_MS_RADIANS - MENUITEM "Újfok\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "Számjegyek csoportosítása", IDM_DIGIT_GROUPING - END - POPUP "Sú&gó" - BEGIN - MENUITEM "&Témakörök", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Számológép névjegye", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Szerkesztés" - BEGIN - MENUITEM "&Másolás Ctrl+C", IDM_COPY - MENUITEM "&Beillesztés Ctrl+V", IDM_PASTE - END - POPUP "&Nézet" - BEGIN - MENUITEM "Alap", IDM_MODE_STANDARD - MENUITEM "Tudományos", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Hexadecimális\tF5", ID_CALC_NS_HEX - MENUITEM "Decimális\tF6", ID_CALC_NS_DEC - MENUITEM "Oktális\tF7", ID_CALC_NS_OCT - MENUITEM "Bináris\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Négyszeres szó\tF12", ID_CALC_WS_QWORD - MENUITEM "Duplaszó\tF2", ID_CALC_WS_DWORD - MENUITEM "Szó\tF3", ID_CALC_WS_WORD - MENUITEM "Bájt\tF4", ID_CALC_WS_BYTE - MENUITEM SEPARATOR - MENUITEM "Számjegyek csoportosítása", IDM_DIGIT_GROUPING - END - POPUP "Sú&gó" - BEGIN - MENUITEM "&Témakörök", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Számológép névjegye", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "GNU winecalc (számológép) névjegye" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Mi ez?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statisztika" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/id-ID.rc b/reactos/base/applications/calc/lang/id-ID.rc deleted file mode 100644 index 550accbe997..00000000000 --- a/reactos/base/applications/calc/lang/id-ID.rc +++ /dev/null @@ -1,173 +0,0 @@ -/* - * WineCalc (id-ID.rc) - * - * Copyright 2007 Zaenal Mutaqin (ade999@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_INDONESIAN, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME, "Kalkulator" - - IDS_COPYRIGHT1, "Kalkulator 5.0. Dilisensi di bawah LGPL 2" - IDS_COPYRIGHT2 "Hak Cipta 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Input untuk fungsi tidak benar." - IDS_ERR_DIVIDE_BY_ZERO, "Tidak bisa membagi dengan nol." - IDS_ERR_UNDEFINED, "Hasil fungsi tidak terdefinisikan." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edit" - BEGIN - MENUITEM "&Copy Ctrl+C", IDM_COPY - MENUITEM "&Paste Ctrl+V", IDM_PASTE - END - POPUP "&Lihat" - BEGIN - MENUITEM "Standar", IDM_MODE_STANDARD - MENUITEM "Sains", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Pengelompokan Digit", IDM_DIGIT_GROUPING - END - POPUP "&Bantuan" - BEGIN - MENUITEM "Topik Bantuan", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Tentang Kalkulator", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edit" - BEGIN - MENUITEM "&Copy Ctrl+C", IDM_COPY - MENUITEM "&Paste Ctrl+V", IDM_PASTE - END - POPUP "&Lihat" - BEGIN - MENUITEM "Standar", IDM_MODE_STANDARD - MENUITEM "Sains", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Heksa\tF5", ID_CALC_NS_HEX - MENUITEM "Desimal\tF6", ID_CALC_NS_DEC - MENUITEM "Oktal\tF7", ID_CALC_NS_OCT - MENUITEM "Biner\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Derajat\tF2", ID_CALC_MS_DEGREES - MENUITEM "Radian\tF3", ID_CALC_MS_RADIANS - MENUITEM "Grads\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "Pengelompokan Digit", IDM_DIGIT_GROUPING - END - POPUP "&Bantuan" - BEGIN - MENUITEM "Topik Bantuan", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Tentang Kalkulator", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edit" - BEGIN - MENUITEM "&Copy Ctrl+C", IDM_COPY - MENUITEM "&Paste Ctrl+V", IDM_PASTE - END - POPUP "&Lihat" - BEGIN - MENUITEM "Standar", IDM_MODE_STANDARD - MENUITEM "Sains", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Heksa\tF5", ID_CALC_NS_HEX - MENUITEM "Desimal\tF6", ID_CALC_NS_DEC - MENUITEM "Oktal\tF7", ID_CALC_NS_OCT - MENUITEM "Biner\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 "Pengelompokan Digit", IDM_DIGIT_GROUPING - END - POPUP "&Bantuan" - BEGIN - MENUITEM "Topik Bantuan", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Tentang Kalkulator", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Tentang GNU WineCalc" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Apa Ini?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Kotak Statistik" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/it-IT.rc b/reactos/base/applications/calc/lang/it-IT.rc index bed6e2c35c7..cc396ee9161 100644 --- a/reactos/base/applications/calc/lang/it-IT.rc +++ b/reactos/base/applications/calc/lang/it-IT.rc @@ -1,173 +1,365 @@ -/* - * WineCalc (it-IT.rc) - * - * Copyright 2006 Gabriel ilardi - * - * 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 -BEGIN - IDS_APPNAME, "Calcolatrice" +// Dialog - IDS_COPYRIGHT1, "Calcolatrice 5.0. sotto licenza 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Input invalido per la funzione." - IDS_ERR_DIVIDE_BY_ZERO, "Non si può dividere per zero." - IDS_ERR_UNDEFINED, "Il risultato della funzione è indefinito." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Modifica" - BEGIN - MENUITEM "&Copia Ctrl+C", IDM_COPY - MENUITEM "I&ncolla Ctrl+V", IDM_PASTE - END - POPUP "&Visualizza" - BEGIN - MENUITEM "Standard", IDM_MODE_STANDARD - MENUITEM "Scientifica", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Raggruppamento cifre", IDM_DIGIT_GROUPING - END - POPUP "&?" - BEGIN - MENUITEM "Guida in linea", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Informazioni su Calcolatrice", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Modifica" - BEGIN - MENUITEM "&Copia Ctrl+C", IDM_COPY - MENUITEM "I&ncolla Ctrl+V", IDM_PASTE - END - POPUP "&Visualizza" - BEGIN - MENUITEM "Standard", IDM_MODE_STANDARD - MENUITEM "Scientifica", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Hex\tF5", ID_CALC_NS_HEX - MENUITEM "Dec\tF6", ID_CALC_NS_DEC - MENUITEM "Oct\tF7", ID_CALC_NS_OCT - MENUITEM "Bin\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Gradi\tF2", ID_CALC_MS_DEGREES - MENUITEM "Radianti\tF3", ID_CALC_MS_RADIANS - MENUITEM "Gradienti\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "Raggruppamento cifre", IDM_DIGIT_GROUPING - END - POPUP "&?" - BEGIN - MENUITEM "Guida in linea", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Informazioni su calcolatrice", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Modifica" - BEGIN - MENUITEM "&Copia Ctrl+C", IDM_COPY - MENUITEM "I&ncolla Ctrl+V", IDM_PASTE - END - POPUP "&Visualizza" - BEGIN - MENUITEM "Standard", IDM_MODE_STANDARD - MENUITEM "Scientifica", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Hex\tF5", ID_CALC_NS_HEX - MENUITEM "Dec\tF6", ID_CALC_NS_DEC - MENUITEM "Oct\tF7", ID_CALC_NS_OCT - MENUITEM "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 "Raggruppamento cifre", IDM_DIGIT_GROUPING - END - POPUP "&?" - BEGIN - MENUITEM "Guida in linea", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Informazioni su calcolatrice", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Informazioni su GNU winecalc" +IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 161 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Calcolatrice ReactOS" +MENU IDR_MENU_SCIENTIFIC_1 FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + GROUPBOX "",IDC_STATIC,4,16,132,21 + CONTROL "Hex",IDC_RADIO_HEX,"Button",BS_AUTORADIOBUTTON,8,24,29, + 10 + CONTROL "Dec",IDC_RADIO_DEC,"Button",BS_AUTORADIOBUTTON,40,24,29, + 10 + CONTROL "Oct",IDC_RADIO_OCT,"Button",BS_AUTORADIOBUTTON,72,24,27, + 10 + CONTROL "Bin",IDC_RADIO_BIN,"Button",BS_AUTORADIOBUTTON,100,24, + 26,10 + GROUPBOX "",IDC_STATIC,4,36,76,21 + CONTROL "Inv",IDC_CHECK_INV,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,8,44,26,10 + CONTROL "Hyp",IDC_CHECK_HYP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,40,44,29,10 + CTEXT "",IDC_TEXT_PARENT,84,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + CTEXT "",IDC_TEXT_MEMORY,112,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "Sta",IDC_BUTTON_STA,4,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Ave",IDC_BUTTON_AVE,4,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sum",IDC_BUTTON_SUM,4,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "s",IDC_BUTTON_S,4,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Dat",IDC_BUTTON_DAT,4,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F-E",IDC_BUTTON_FE,38,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "dms",IDC_BUTTON_DMS,38,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "sin",IDC_BUTTON_SIN,38,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "cos",IDC_BUTTON_COS,38,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "tan",IDC_BUTTON_TAN,38,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "(",IDC_BUTTON_LEFTPAR,64,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Exp",IDC_BUTTON_EXP,64,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^y",IDC_BUTTON_XeY,64,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^2",IDC_BUTTON_Xe2,64,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^3",IDC_BUTTON_Xe3,64,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ")",IDC_BUTTON_RIGHTPAR,90,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "ln",IDC_BUTTON_LN,90,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "log",IDC_BUTTON_LOG,90,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "n!",IDC_BUTTON_NF,90,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,90,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MC",IDC_BUTTON_MC,124,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,124,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,124,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,124,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "pi",IDC_BUTTON_PI,124,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "7",IDC_BUTTON_7,158,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,158,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,158,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,158,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "A",IDC_BUTTON_A,158,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,184,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,184,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,184,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,184,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "B",IDC_BUTTON_B,184,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,210,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,210,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,210,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,210,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "C",IDC_BUTTON_C,210,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,236,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,236,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,236,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,236,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "D",IDC_BUTTON_D,236,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Mod",IDC_BUTTON_MOD,262,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Or",IDC_BUTTON_OR,262,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Lsh",IDC_BUTTON_LSH,262,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,262,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "E",IDC_BUTTON_E,262,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "And",IDC_BUTTON_AND,288,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Xor",IDC_BUTTON_XOR,288,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Not",IDC_BUTTON_NOT,288,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Int",IDC_BUTTON_INT,288,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F",IDC_BUTTON_F,288,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + GROUPBOX "",IDC_STATIC,140,16,172,21 + CONTROL "Qword",IDC_RADIO_QWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,148,24,37,10 + CONTROL "Dword",IDC_RADIO_DWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,188,24,37,10 + CONTROL "Word",IDC_RADIO_WORD,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,232,24,33,10 + CONTROL "Byte",IDC_RADIO_BYTE,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,272,24,30,10 + CONTROL "Gradi",IDC_RADIO_DEG,"Button",BS_AUTORADIOBUTTON,148,24, + 33,10 + CONTROL "Radianti",IDC_RADIO_RAD,"Button",BS_AUTORADIOBUTTON,192, + 24,42,10 + CONTROL "Gradienti",IDC_RADIO_GRAD,"Button",BS_AUTORADIOBUTTON, + 236,24,44,10 + PUSHBUTTON "C",IDC_BUTTON_CANC,272,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,228,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Cancella",IDC_BUTTON_BACK,184,40,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,308,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Cos'è questo?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statistiche" +IDD_DIALOG_STANDARD DIALOGEX 0, 0, 172, 127 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Calcolatrice ReactOS" +MENU IDR_MENU_STANDARD FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP + PUSHBUTTON "C",IDC_BUTTON_CANC,128,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,84,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Cancella",IDC_BUTTON_BACK,40,24,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,164,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "7",IDC_BUTTON_7,40,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,40,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,40,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,40,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,66,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,66,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,66,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,66,105,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,92,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,92,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,92,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,92,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,118,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,118,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,118,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,118,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sqrt",IDC_BUTTON_SQRT,144,48,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "%",IDC_BUTTON_PERCENT,144,67,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,144,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,144,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + CTEXT "",IDC_TEXT_MEMORY,4,24,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "MC",IDC_BUTTON_MC,4,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,4,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,4,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,4,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END + +IDD_DIALOG_ABOUT DIALOGEX DISCARDABLE 0, 0, 264, 169 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Informazioni su ReactOS Calc" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "OK",IDOK,105,148,52,16 + CONTROL 106,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | + SS_REALSIZEIMAGE | WS_BORDER,4,4,104,48 + LTEXT "Calcolatrice ReactOS",IDC_STATIC,120,12,132,8, + SS_CENTERIMAGE + LTEXT "Versione ",IDC_TEXT_VERSION,120,20,132,8,SS_CENTERIMAGE + LTEXT "Scritto da Carlo Bramini",IDC_STATIC,120,32,132,8, + SS_CENTERIMAGE + GROUPBOX "",IDC_STATIC,112,0,148,52 + GROUPBOX "",IDC_STATIC,4,56,256,88 + EDITTEXT IDC_EDIT_LICENSE,12,68,240,68,ES_MULTILINE | ES_READONLY | + WS_VSCROLL +END + +IDD_DIALOG_STAT DIALOGEX DISCARDABLE 0, 0, 163, 85 +STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Finestra di statistica" +FONT 8, "MS Shell Dlg" +BEGIN + LISTBOX IDC_LIST_STAT,4,4,156,40,LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "RET",IDC_BUTTON_RET,4,48,36,16 + PUSHBUTTON "LOAD",IDC_BUTTON_LOAD,44,48,36,16 + PUSHBUTTON "CD",IDC_BUTTON_CD,84,48,36,16 + PUSHBUTTON "CAD",IDC_BUTTON_CAD,124,48,36,16 + CTEXT "n=0",IDC_TEXT_NITEMS,4,68,156,12,SS_CENTERIMAGE | + SS_SUNKEN +END + + +// Menus + +IDR_MENU_SCIENTIFIC_1 MENU DISCARDABLE +BEGIN + POPUP "Modifica" + BEGIN + MENUITEM "Copia\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Incolla\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Visualizza" + BEGIN + MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Scientifica", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Conversione", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Decimale\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Ottale\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Binaria\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Gradi\tF2", IDM_VIEW_DEG, CHECKED + MENUITEM "Radianti\tF3", IDM_VIEW_RAD, CHECKED + MENUITEM "Gradienti\tF4", IDM_VIEW_GRAD, CHECKED + MENUITEM SEPARATOR + MENUITEM "Raggruppamento cifre", IDM_VIEW_GROUP, CHECKED + END + POPUP "Aiuto" + BEGIN + MENUITEM "Guida in linea", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Informazioni su ReactOS Calc", IDM_HELP_ABOUT + END +END + +IDR_MENU_SCIENTIFIC_2 MENU DISCARDABLE +BEGIN + POPUP "Modifica" + BEGIN + MENUITEM "Copia\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Incolla\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Visualizza" + BEGIN + MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Scientifica", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Conversione", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Decimale\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Ottale\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Binaria\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Qword\tF12", IDM_VIEW_QWORD, CHECKED + MENUITEM "Dword\tF2", IDM_VIEW_DWORD, CHECKED + MENUITEM "Word\tF3", IDM_VIEW_WORD, CHECKED + MENUITEM "Byte\tF4", IDM_VIEW_BYTE, CHECKED + MENUITEM SEPARATOR + MENUITEM "Raggruppamento cifre", IDM_VIEW_GROUP, CHECKED + END + POPUP "Aiuto" + BEGIN + MENUITEM "Guida in linea", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Informazioni su ReactOS Calc", IDM_HELP_ABOUT + END +END + +IDR_MENU_STANDARD MENU DISCARDABLE +BEGIN + POPUP "Modifica" + BEGIN + MENUITEM "Copia\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Incolla\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Visualizza" + BEGIN + MENUITEM "Standard", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Scientifica", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Conversione", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Raggruppamento cifre", IDM_VIEW_GROUP, CHECKED + END + POPUP "Aiuto" + BEGIN + MENUITEM "Guida in linea", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Informazioni su ReactOS Calc", IDM_HELP_ABOUT + END +END + +// String Tables + +STRINGTABLE DISCARDABLE +BEGIN + IDS_STRING_LICENSE "ReactOS Calc e` software libero rilasciato sotto licenza GNU GPL.\r\n\r\nE` possibile ottenere una copia del testo della licenza GNU GPL all'indirizzo:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nE` possibile ottenere una traduzione del testo della licenza GNU GPL all'indirizzo:\r\nhttp://www.gnu.org/licenses/translations.html" + IDS_MATH_ERROR "Errore" + IDS_QUICKHELP "Guida rapida" +END + diff --git a/reactos/base/applications/calc/lang/ja-JP.rc b/reactos/base/applications/calc/lang/ja-JP.rc deleted file mode 100644 index c419bcf85b7..00000000000 --- a/reactos/base/applications/calc/lang/ja-JP.rc +++ /dev/null @@ -1,166 +0,0 @@ -/* - * WineCalc (ja-JP.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_JAPANESE, SUBLANG_DEFAULT - -MAIN_MENU MENU -BEGIN - POPUP "•ÒW(&E)" - BEGIN - MENUITEM "ƒRƒs[(&C) Ctrl+C", IDM_COPY - MENUITEM "“\\‚è•t‚¯(&P) Ctrl+V", IDM_PASTE - END - POPUP "•\\ަ(&V)" - BEGIN - MENUITEM "•’ʂ̓d‘ì", IDM_MODE_STANDARD - MENUITEM "ŠÖ”“d‘ì", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Œ…‚ð‹æØ‚é", IDM_DIGIT_GROUPING - END - POPUP "ƒwƒ‹ƒv(&H)" - BEGIN - MENUITEM "ƒgƒsƒbƒN‚ÌŒŸõ", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "“d‘ì‚ɂ‚¢‚Ä", IDM_ABOUT - END -END - -SCIMS_MENU MENU -BEGIN - POPUP "•ÒW(&E)" - BEGIN - MENUITEM "ƒRƒs[(&C) Ctrl+C", IDM_COPY - MENUITEM "“\\‚è•t‚¯(&P) Ctrl+V", IDM_PASTE - END - POPUP "•\\ަ(&V)" - BEGIN - MENUITEM "•’ʂ̓d‘ì", IDM_MODE_STANDARD - MENUITEM "ŠÖ”“d‘ì", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "16 i\tF5", ID_CALC_NS_HEX - MENUITEM "10 i\tF6", ID_CALC_NS_DEC - MENUITEM "8 i\tF7", ID_CALC_NS_OCT - MENUITEM "2 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 "Œ…‚ð‹æØ‚é", IDM_DIGIT_GROUPING - END - POPUP "ƒwƒ‹ƒv(&H)" - BEGIN - MENUITEM "ƒgƒsƒbƒN‚ÌŒŸõ", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "“d‘ì‚ɂ‚¢‚Ä", IDM_ABOUT - END -END - -SCIWS_MENU MENU -BEGIN - POPUP "•ÒW(&E)" - BEGIN - MENUITEM "ƒRƒs[(&C) Ctrl+C", IDM_COPY - MENUITEM "“\\‚è•t‚¯(&P) Ctrl+V", IDM_PASTE - END - POPUP "•\\ަ(&V)" - BEGIN - MENUITEM "•’ʂ̓d‘ì", IDM_MODE_STANDARD - MENUITEM "ŠÖ”“d‘ì", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "16 i\tF5", ID_CALC_NS_HEX - MENUITEM "10 i\tF6", ID_CALC_NS_DEC - MENUITEM "8 i\tF7", ID_CALC_NS_OCT - MENUITEM "2 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 "Œ…‚ð‹æØ‚é", IDM_DIGIT_GROUPING - END - POPUP "ƒwƒ‹ƒv(&H)" - BEGIN - MENUITEM "ƒgƒsƒbƒN‚ÌŒŸõ", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "“d‘ì‚ɂ‚¢‚Ä", IDM_ABOUT - END -END - -WHATS_THIS_MENU MENU -BEGIN - POPUP "" - BEGIN - MENUITEM "‚±‚ê‚͉½H", IDM_WHATS_THIS - END -END - - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - - -DLG_ABOUT DIALOGEX 12, 0, 175, 90 -FONT 9, "MS UI Gothic" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "GNU winecalc ‚ɂ‚¢‚Ä" -BEGIN - DEFPUSHBUTTON "OK",IDOK,73,70,30,14 -END - -DLG_STATS DIALOGEX 12, 0, 145, 85 -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "“ŒvƒBEGINƒbƒNƒX" -FONT 9, "MS UI Gothic" -BEGIN - DEFPUSHBUTTON "–ß‚é(&R)",ID_STATS_RET,4,52,30,13,WS_GROUP - PUSHBUTTON "ƒ[ƒh(&L)",ID_STATS_LOAD,39,52,30,13,WS_GROUP - PUSHBUTTON "ƒNƒŠƒA(&C)",ID_STATS_CD,74,52,30,13,WS_GROUP - PUSHBUTTON "‚·‚ׂăNƒŠƒA(&A)",ID_STATS_CAD,109,52,30,13,WS_GROUP -END - -STRINGTABLE -BEGIN - IDS_APPNAME "“d‘ì" - IDS_BTN_BACKSPACE "Back" - IDS_BTN_CLEAR_ENTRY "CE" - IDS_BTN_CLEAR_ALL "C" - IDS_ERR_INVALID_INPUT "–³Œø‚È’l‚Å‚·B" - IDS_ERR_DIVIDE_BY_ZERO "0 ‚ÅŠ„‚邱‚Ƃ͂ł«‚Ü‚¹‚ñB" - IDS_ERR_UNDEFINED "ŠÖ”‚ÌŒ‹‰Ê‚ª’è‹`‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB" - IDS_COPYRIGHT1 "“d‘ì 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 "ã" -END diff --git a/reactos/base/applications/calc/lang/ko-KO.rc b/reactos/base/applications/calc/lang/ko-KO.rc deleted file mode 100644 index 9db205d76ab..00000000000 --- a/reactos/base/applications/calc/lang/ko-KO.rc +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Korean translation by manatails007(www.manatails007.org) - */ - -#include "windows.h" -#include "resource.h" -#include "winecalc.h" - -LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME, "°è»ê±â" - - IDS_COPYRIGHT1, "°è»ê±â 5.0. 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "ÇÔ¼ö¸¦ À߸ø ÀÔ·Â Çϼ̽À´Ï´Ù." - IDS_ERR_DIVIDE_BY_ZERO, "0À¸·Î ³ª´­¼ö ¾ø½À´Ï´Ù." - IDS_ERR_UNDEFINED, "ÇÔ¼ö °á°ú°¡ ÁöÁ¤µÇÁö ¾Ê¾Ò½À´Ï´Ù." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "ÆíÁý" - BEGIN - MENUITEM "º¹»ç Ctrl+C", IDM_COPY - MENUITEM "ºÙ¿©³Ö±â Ctrl+V", IDM_PASTE - END - POPUP "º¸±â" - BEGIN - MENUITEM "ÀϹÝ", IDM_MODE_STANDARD - MENUITEM "°øÇÐ", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "ÀÚ¸®¼ö ±¸ºÐ ´ÜÀ§", IDM_DIGIT_GROUPING - END - POPUP "µµ¿ò¸»" - BEGIN - MENUITEM "µµ¿ò¸» Ç׸ñ", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "°è»ê±â¿¡ ´ëÇØ", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "ÆíÁý" - BEGIN - MENUITEM "º¹»ç Ctrl+C", IDM_COPY - MENUITEM "ºÙ¿©³Ö±â Ctrl+V", IDM_PASTE - END - POPUP "º¸±â" - BEGIN - MENUITEM "ÀϹÝ", IDM_MODE_STANDARD - MENUITEM "°øÇÐ", 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 "ÀÚ¸®¼ö ±¸ºÐ ´ÜÀ§", IDM_DIGIT_GROUPING - END - POPUP "µµ¿ò¸»" - BEGIN - MENUITEM "µµ¿ò¸» Ç׸ñ", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "°è»ê±â¿¡ ´ëÇØ", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "ÆíÁý" - BEGIN - MENUITEM "º¹»ç Ctrl+C", IDM_COPY - MENUITEM "ºÙ¿©³Ö±â Ctrl+V", IDM_PASTE - END - POPUP "º¸±â" - BEGIN - MENUITEM "ÀϹÝ", IDM_MODE_STANDARD - MENUITEM "°øÇÐ", 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 "ÀÚ¸´¼ö ±¸ºÐ ´ÜÀ§", IDM_DIGIT_GROUPING - END - POPUP "µµ¿ò¸»" - BEGIN - MENUITEM "µµ¿ò¸» Ç׸ñ", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "°è»ê±â¿¡ ´ëÇØ", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "GNU winecalc¿¡ ´ëÇØ" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "È®ÀÎ", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "ÀÌ°Ô ¹¹¾ß?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "»óÅ ¹Ú½º" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/nb-NO.rc b/reactos/base/applications/calc/lang/nb-NO.rc deleted file mode 100644 index 22ffcaa9fad..00000000000 --- a/reactos/base/applications/calc/lang/nb-NO.rc +++ /dev/null @@ -1,173 +0,0 @@ -/* - * WineCalc (nb-NO.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 -BEGIN - 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - 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." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Rediger" - BEGIN - MENUITEM "&Kopier Ctrl+C", IDM_COPY - MENUITEM "&Lim inn Ctrl+V", IDM_PASTE - END - POPUP "&Vis" - BEGIN - MENUITEM "Standard", IDM_MODE_STANDARD - MENUITEM "Vitenskapelig", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Siffergruppering", IDM_DIGIT_GROUPING - END - POPUP "&Hjelp" - BEGIN - MENUITEM "Emner i hjelp", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Om kalkulator", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Rediger" - BEGIN - MENUITEM "&Kopiere Ctrl+C", IDM_COPY - MENUITEM "&Lim inn Ctrl+V", IDM_PASTE - END - POPUP "&Vis" - BEGIN - 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æ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 - END - POPUP "&Hjelp" - BEGIN - MENUITEM "Emner i hjelp", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Om Kalkulator", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Rediger" - BEGIN - MENUITEM "&Kopier Ctrl+C", IDM_COPY - MENUITEM "&Lim inn Ctrl+V", IDM_PASTE - END - POPUP "&Vis" - BEGIN - 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æ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 - END - POPUP "&Help" - BEGIN - MENUITEM "Emner i hjelp", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Om Kalkulator", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Om GNU winecalc" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Hva er dette?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statistics Box" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/nl-NL.rc b/reactos/base/applications/calc/lang/nl-NL.rc deleted file mode 100644 index d4c401d3bd1..00000000000 --- a/reactos/base/applications/calc/lang/nl-NL.rc +++ /dev/null @@ -1,173 +0,0 @@ -/* - * WineCalc (nl-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 -BEGIN - 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - 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." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Bewerken" - BEGIN - MENUITEM "&Kopiëren Ctrl+C", IDM_COPY - MENUITEM "&Plakken Ctrl+V", IDM_PASTE - END - POPUP "&Beeld" - BEGIN - MENUITEM "Standaard", IDM_MODE_STANDARD - MENUITEM "Wetenschappelijk", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Cijfergroepering", IDM_DIGIT_GROUPING - END - POPUP "&Help" - BEGIN - MENUITEM "Help-onderwerpen", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Info", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Bewerken" - BEGIN - MENUITEM "&Kopiëren Ctrl+C", IDM_COPY - MENUITEM "&Plakken Ctrl+V", IDM_PASTE - END - POPUP "&View" - BEGIN - 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ënten\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "Cijfergroepering", IDM_DIGIT_GROUPING - END - POPUP "&Help" - BEGIN - MENUITEM "Help-onderwerpen", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Info", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Bewerken" - BEGIN - MENUITEM "&Kopiëren Ctrl+C", IDM_COPY - MENUITEM "&Plakken Ctrl+V", IDM_PASTE - END - POPUP "&View" - BEGIN - 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 - END - POPUP "&Help" - BEGIN - MENUITEM "Help-onderwerpen", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Info", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Wat is dit?", IDM_WHATS_THIS - END -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Over GNU winecalc" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statistics Box" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/pl-PL.rc b/reactos/base/applications/calc/lang/pl-PL.rc index 39805a23382..cb6ae16b4bc 100644 --- a/reactos/base/applications/calc/lang/pl-PL.rc +++ b/reactos/base/applications/calc/lang/pl-PL.rc @@ -1,153 +1,371 @@ /* - * translated by TestamenT - * testament@users.sourceforge.net - * https://sourceforge.net/projects/reactospl - * -*/ - -#include "windows.h" -#include "resource.h" -#include "winecalc.h" + * translated by Caemyr - Olaf Siejka (Feb, 2008) + * Use ReactOS forum PM or IRC to contact me + * http://www.reactos.org + * IRC: irc.freenode.net #reactos-pl; + */ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +// Dialog + +IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 161 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Kalkulator ReactOS" +MENU IDR_MENU_SCIENTIFIC_1 +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - IDS_APPNAME, "Kalkulator" - - IDS_COPYRIGHT1, "Kalkulator 5.0. Na licencji 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, "Niew³aœciwy argument funkcji." - IDS_ERR_DIVIDE_BY_ZERO, "Nie mo¿na dzieliæ przez zero." - IDS_ERR_UNDEFINED, "Nieokreœlony wynik funkcji." + GROUPBOX "",IDC_STATIC,4,16,132,21 + CONTROL "Hex",IDC_RADIO_HEX,"Button",BS_AUTORADIOBUTTON,8,24,29, + 10 + CONTROL "Dec",IDC_RADIO_DEC,"Button",BS_AUTORADIOBUTTON,40,24,29, + 10 + CONTROL "Oct",IDC_RADIO_OCT,"Button",BS_AUTORADIOBUTTON,72,24,27, + 10 + CONTROL "Bin",IDC_RADIO_BIN,"Button",BS_AUTORADIOBUTTON,100,24, + 26,10 + GROUPBOX "",IDC_STATIC,4,36,76,21 + CONTROL "Inv",IDC_CHECK_INV,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,8,44,26,10 + CONTROL "Hyp",IDC_CHECK_HYP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,40,44,29,10 + CTEXT "",IDC_TEXT_PARENT,84,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + CTEXT "",IDC_TEXT_MEMORY,112,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "Sta",IDC_BUTTON_STA,4,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Ave",IDC_BUTTON_AVE,4,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sum",IDC_BUTTON_SUM,4,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "s",IDC_BUTTON_S,4,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Dat",IDC_BUTTON_DAT,4,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F-E",IDC_BUTTON_FE,38,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "dms",IDC_BUTTON_DMS,38,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "sin",IDC_BUTTON_SIN,38,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "cos",IDC_BUTTON_COS,38,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "tan",IDC_BUTTON_TAN,38,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "(",IDC_BUTTON_LEFTPAR,64,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Exp",IDC_BUTTON_EXP,64,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^y",IDC_BUTTON_XeY,64,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^2",IDC_BUTTON_Xe2,64,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^3",IDC_BUTTON_Xe3,64,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ")",IDC_BUTTON_RIGHTPAR,90,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "ln",IDC_BUTTON_LN,90,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "log",IDC_BUTTON_LOG,90,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "n!",IDC_BUTTON_NF,90,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,90,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MC",IDC_BUTTON_MC,124,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,124,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,124,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,124,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "pi",IDC_BUTTON_PI,124,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "7",IDC_BUTTON_7,158,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,158,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,158,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,158,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "A",IDC_BUTTON_A,158,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,184,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,184,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,184,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,184,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "B",IDC_BUTTON_B,184,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,210,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,210,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,210,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,210,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "C",IDC_BUTTON_C,210,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,236,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,236,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,236,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,236,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "D",IDC_BUTTON_D,236,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Mod",IDC_BUTTON_MOD,262,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Or",IDC_BUTTON_OR,262,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Lsh",IDC_BUTTON_LSH,262,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,262,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "E",IDC_BUTTON_E,262,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "And",IDC_BUTTON_AND,288,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Xor",IDC_BUTTON_XOR,288,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Not",IDC_BUTTON_NOT,288,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Int",IDC_BUTTON_INT,288,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F",IDC_BUTTON_F,288,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + GROUPBOX "",IDC_STATIC,140,16,172,21 + CONTROL "Qword",IDC_RADIO_QWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,148,24,37,10 + CONTROL "Dword",IDC_RADIO_DWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,188,24,37,10 + CONTROL "Word",IDC_RADIO_WORD,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,232,24,33,10 + CONTROL "Bajt",IDC_RADIO_BYTE,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,272,24,30,10 + CONTROL "Stopni",IDC_RADIO_DEG,"Button",BS_AUTORADIOBUTTON,148,24, + 42,10 + CONTROL "Radianów",IDC_RADIO_RAD,"Button",BS_AUTORADIOBUTTON,192, + 24,42,10 + CONTROL "Gradianów",IDC_RADIO_GRAD,"Button",BS_AUTORADIOBUTTON, + 236,24,44,10 + PUSHBUTTON "C",IDC_BUTTON_CANC,272,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,228,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Wstecz",IDC_BUTTON_BACK,184,40,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,308,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -MAIN_MENU MENU DISCARDABLE +IDD_DIALOG_STANDARD DIALOGEX 0, 0, 172, 127 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Kalkulator ReactOS" +MENU IDR_MENU_STANDARD +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - POPUP "&Edytuj" - BEGIN - MENUITEM "&Kopiuj\tCtrl+C", IDM_COPY - MENUITEM "&Wklej\tCtrl+V", IDM_PASTE - END - POPUP "&Widok" - BEGIN - MENUITEM "&Standardowy", IDM_MODE_STANDARD - MENUITEM "&Naukowy", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "&Grupowanie cyfr", IDM_DIGIT_GROUPING - END - POPUP "Pomo&c" - BEGIN - MENUITEM "&Tematy pomocy", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Kalkulator - &informacje", IDM_ABOUT - END + PUSHBUTTON "C",IDC_BUTTON_CANC,128,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,84,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Back",IDC_BUTTON_BACK,40,24,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,164,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "7",IDC_BUTTON_7,40,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,40,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,40,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,40,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,66,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,66,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,66,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,66,105,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,92,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,92,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,92,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,92,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,118,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,118,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,118,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,118,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Pierw",IDC_BUTTON_SQRT,144,48,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "%",IDC_BUTTON_PERCENT,144,67,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,144,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,144,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + CTEXT "",IDC_TEXT_MEMORY,4,24,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "MC",IDC_BUTTON_MC,4,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,4,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,4,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,4,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edytuj" - BEGIN - MENUITEM "&Kopiuj\tCtrl+C", IDM_COPY - MENUITEM "&Wklej\tCtrl+V", IDM_PASTE - END - POPUP "&Widok" - BEGIN - MENUITEM "&Standardowy", IDM_MODE_STANDARD - MENUITEM "&Naukowy", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "S&zesnastkowy\tF5", ID_CALC_NS_HEX - MENUITEM "&Dziesiêtny\tF6", ID_CALC_NS_DEC - MENUITEM "Ó&semkowy\tF7", ID_CALC_NS_OCT - MENUITEM "D&wójkowy\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "S&topnie\tF2", ID_CALC_MS_DEGREES - MENUITEM "R&adiany\tF3", ID_CALC_MS_RADIANS - MENUITEM "G&radusy\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "&Grupowanie cyfr", IDM_DIGIT_GROUPING - END - POPUP "Pomo&c" - BEGIN - MENUITEM "&Tematy pomocy", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Kalkulator - &informacje", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edytuj" - BEGIN - MENUITEM "&Kopiuj\tCtrl+C", IDM_COPY - MENUITEM "&Wklej\tCtrl+V", IDM_PASTE - END - POPUP "&Widok" - BEGIN - MENUITEM "&Standardowy", IDM_MODE_STANDARD - MENUITEM "&Naukowy", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "S&zesnastkowy\tF5", ID_CALC_NS_HEX - MENUITEM "&Dziesiêtny\tF6", ID_CALC_NS_DEC - MENUITEM "Ó&semkowy\tF7", ID_CALC_NS_OCT - MENUITEM "D&wójkowy\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 "&Grupowanie cyfr", IDM_DIGIT_GROUPING - END - POPUP "Pomo&c" - BEGIN - MENUITEM "&Tematy pomocy", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Kalkulator - informacje", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Informacje GNU winecalc" +IDD_DIALOG_ABOUT DIALOGEX DISCARDABLE 0, 0, 264, 169 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "O Kalkulatorze ReactOS" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,105,148,52,16 + CONTROL 106,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | + SS_REALSIZEIMAGE | WS_BORDER,4,4,104,48 + LTEXT "Kalkulator ReactOS",IDC_STATIC,120,12,132,8, + SS_CENTERIMAGE + LTEXT "Wersja ",IDC_TEXT_VERSION,120,20,132,8,SS_CENTERIMAGE + LTEXT "Autorstwa: Carlo Bramini",IDC_STATIC,120,32,132,8, + SS_CENTERIMAGE + GROUPBOX "",IDC_STATIC,112,0,148,52 + GROUPBOX "",IDC_STATIC,4,56,256,88 + EDITTEXT IDC_EDIT_LICENSE,12,68,240,68,ES_MULTILINE | ES_READONLY | + WS_VSCROLL END -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Co to?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statistics Box" +IDD_DIALOG_STAT DIALOGEX DISCARDABLE 0, 0, 163, 85 +STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Statystyka" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP + LISTBOX IDC_LIST_STAT,4,4,156,40,LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "RET",IDC_BUTTON_RET,4,48,36,16 + PUSHBUTTON "LOAD",IDC_BUTTON_LOAD,44,48,36,16 + PUSHBUTTON "CD",IDC_BUTTON_CD,84,48,36,16 + PUSHBUTTON "CAD",IDC_BUTTON_CAD,124,48,36,16 + CTEXT "n=0",IDC_TEXT_NITEMS,4,68,156,12,SS_CENTERIMAGE | + SS_SUNKEN +END + + +// Menus + +IDR_MENU_SCIENTIFIC_1 MENU DISCARDABLE +BEGIN + POPUP "Edycja" + BEGIN + MENUITEM "Kopiuj\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Wklej\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Wygl¹d" + BEGIN + MENUITEM "Standardowy", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Naukowy", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Przeliczanie", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Szesnastkowo\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Dziesiêtnie\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Ósemkowo\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Binarnie\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Stopni\tF2", IDM_VIEW_DEG, CHECKED + MENUITEM "Radianów\tF3", IDM_VIEW_RAD, CHECKED + MENUITEM "Gradianów\tF4", IDM_VIEW_GRAD, CHECKED + MENUITEM SEPARATOR + MENUITEM "Grupowanie cyfr", IDM_VIEW_GROUP, CHECKED + END + POPUP "Pomoc" + BEGIN + MENUITEM "Tematy pomocy", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "O Kalkulatorze ReactOS", IDM_HELP_ABOUT + END +END + +IDR_MENU_SCIENTIFIC_2 MENU DISCARDABLE +BEGIN + POPUP "Edycja" + BEGIN + MENUITEM "Kopiuj\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Wklej\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Wygl¹d" + BEGIN + MENUITEM "Standardowy", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Naukowy", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Przeliczanie", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Szesnastkowo\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Dziesiêtnie\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Ósemkowo\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Binarnie\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Qword\tF12", IDM_VIEW_QWORD, CHECKED + MENUITEM "Dword\tF2", IDM_VIEW_DWORD, CHECKED + MENUITEM "Word\tF3", IDM_VIEW_WORD, CHECKED + MENUITEM "Bajt\tF4", IDM_VIEW_BYTE, CHECKED + MENUITEM SEPARATOR + MENUITEM "Grupowanie cyfr", IDM_VIEW_GROUP, CHECKED + END + POPUP "Pomoc" + BEGIN + MENUITEM "Tematy pomocy", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "O Kalkulatorze ReactOS", IDM_HELP_ABOUT + END +END + +IDR_MENU_STANDARD MENU DISCARDABLE +BEGIN + POPUP "Edycja" + BEGIN + MENUITEM "Kopiuj\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Wklej\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Wygl¹d" + BEGIN + MENUITEM "Standardowy", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Naukowy", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Przeliczanie", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Grupowanie cyfr", IDM_VIEW_GROUP, CHECKED + END + POPUP "Pomoc" + BEGIN + MENUITEM "Tematy pomocy", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "O Kalkulatorze ReactOS", IDM_HELP_ABOUT + END +END + +// String Tables + +STRINGTABLE DISCARDABLE +BEGIN + IDS_STRING_LICENSE "Kalkulator ReactOS jest darmowym programem, publikowanym zgodnie z licencj¹ GNU GPL.\r\n\r\nMo¿esz otrzymaæ kopiê licencji GNU GPL tutaj:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nT³umaczenie licencji GNU GPL znajdziesz tutaj:\r\nhttp://www.gnu.org/licenses/translations.html" + IDS_MATH_ERROR "B³¹d" + IDS_QUICKHELP "Szybka pomoc" END diff --git a/reactos/base/applications/calc/lang/pt-BR.rc b/reactos/base/applications/calc/lang/pt-BR.rc deleted file mode 100644 index 95b79be713e..00000000000 --- a/reactos/base/applications/calc/lang/pt-BR.rc +++ /dev/null @@ -1,173 +0,0 @@ -/* - * WineCalc (pt-BR.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_PORTUGUESE_BRAZILIAN - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME, "Calculadora" - - IDS_COPYRIGHT1, "Calculadora 5.0. Licenciada sob 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_BTN_DEGREES, "Graus" - IDS_BTN_RADIANS, "Radianos" - IDS_BTN_GRADS, "Grados" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Valor inválido para a função." - IDS_ERR_DIVIDE_BY_ZERO, "Impossível dividir por 0." - IDS_ERR_UNDEFINED, "O resultado da função é indefinido." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Editar" - BEGIN - MENUITEM "&Copiar Ctrl+C", IDM_COPY - MENUITEM "Co&lar Ctrl+V", IDM_PASTE - END - POPUP "E&xibir" - BEGIN - MENUITEM "&Padrão", IDM_MODE_STANDARD - MENUITEM "&Científica", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "&Agrupamento de dígitos", IDM_DIGIT_GROUPING - END - POPUP "Aj&uda" - BEGIN - MENUITEM "&Tópico de ajuda", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "So&bre a Calculadora", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Editar" - BEGIN - MENUITEM "&Copiar Ctrl+C", IDM_COPY - MENUITEM "Co&lar Ctrl+V", IDM_PASTE - END - POPUP "E&xibir" - BEGIN - MENUITEM "&Padrão", IDM_MODE_STANDARD - MENUITEM "&Científica", 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 "&Binário\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Gra&us\tF2", ID_CALC_MS_DEGREES - MENUITEM "&Radianos\tF3", ID_CALC_MS_RADIANS - MENUITEM "&Grados\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "&Agrupamento de dígitos", IDM_DIGIT_GROUPING - END - POPUP "Aj&uda" - BEGIN - MENUITEM "&Tópico de ajuda", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "So&bre a Calculadora", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Editar" - BEGIN - MENUITEM "&Copiar Ctrl+C", IDM_COPY - MENUITEM "Co&lar Ctrl+V", IDM_PASTE - END - POPUP "E&xibir" - BEGIN - MENUITEM "&Padrão", IDM_MODE_STANDARD - MENUITEM "&Científica", 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 "&Binário\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 "&Agrupamento de dígitos", IDM_DIGIT_GROUPING - END - POPUP "Aj&uda" - BEGIN - MENUITEM "&Tópico de ajuda", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "So&bre a Calculadora", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "O que é isto?", IDM_WHATS_THIS - END -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Sobre a Calculadora" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statistics Box" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | 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 diff --git a/reactos/base/applications/calc/lang/pt-PT.rc b/reactos/base/applications/calc/lang/pt-PT.rc deleted file mode 100644 index 8817098a918..00000000000 --- a/reactos/base/applications/calc/lang/pt-PT.rc +++ /dev/null @@ -1,173 +0,0 @@ -/* - * WineCalc (pt-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_PORTUGUESE_PORTUGAL - -STRINGTABLE DISCARDABLE -BEGIN - 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - 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." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edit" - BEGIN - MENUITEM "&Copy Ctrl+C", IDM_COPY - MENUITEM "&Paste Ctrl+V", IDM_PASTE - END - POPUP "&View" - BEGIN - MENUITEM "Standard", IDM_MODE_STANDARD - MENUITEM "Scientific", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING - END - POPUP "&Help" - BEGIN - MENUITEM "Help Topics", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "About Calculator", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edit" - BEGIN - MENUITEM "&Copy Ctrl+C", IDM_COPY - MENUITEM "&Paste Ctrl+V", IDM_PASTE - END - POPUP "&View" - BEGIN - 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 - END - POPUP "&Help" - BEGIN - MENUITEM "Help Topics", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "About Calculator", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Edit" - BEGIN - MENUITEM "&Copy Ctrl+C", IDM_COPY - MENUITEM "&Paste Ctrl+V", IDM_PASTE - END - POPUP "&View" - BEGIN - 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 - END - POPUP "&Help" - BEGIN - MENUITEM "Help Topics", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "About Calculator", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "What's This?", IDM_WHATS_THIS - END -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "About GNU winecalc" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statistics Box" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/ru-RU.rc b/reactos/base/applications/calc/lang/ru-RU.rc index c38fe5dad2a..9269483fd97 100644 --- a/reactos/base/applications/calc/lang/ru-RU.rc +++ b/reactos/base/applications/calc/lang/ru-RU.rc @@ -1,149 +1,365 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +// Dialog + +IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 161 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Êàëüêóëÿòîð ReactOS" +MENU IDR_MENU_SCIENTIFIC_1 +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - IDS_APPNAME, "Êàëüêóëÿòîð" - - IDS_COPYRIGHT1, "Êàëüêóëÿòîð 5.0. Ðàñïðîñòðàíÿåòñÿ ïî LGPL 2" - IDS_COPYRIGHT2 "Àâòîðñêèå ïðàâà (ñ) 2003, Äæåìåñ Áðèãñ" - IDS_COPYRIGHT3 "Ñàí-Õîñå, Êàëèôîðíèÿ, ÑØÀ" - IDS_COPYRIGHT4 "james@ActionMessage.com" - IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/" - - IDS_BTN_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_BTN_DEGREES, "Ãðàäóñû" - IDS_BTN_RADIANS, "Ðàäèàíû" - IDS_BTN_GRADS, "Ãðàäû" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Íåïðàâèëüíûé àðãóìåíò ôóíêöèè." - IDS_ERR_DIVIDE_BY_ZERO, "Äåëèòü íà íóëü íåëüçÿ." - IDS_ERR_UNDEFINED, "Ðåçóëüòàò íå îïðåäåë¸í." + GROUPBOX "",IDC_STATIC,4,16,132,21 + CONTROL "Hex",IDC_RADIO_HEX,"Button",BS_AUTORADIOBUTTON,8,24,29, + 10 + CONTROL "Dec",IDC_RADIO_DEC,"Button",BS_AUTORADIOBUTTON,40,24,29, + 10 + CONTROL "Oct",IDC_RADIO_OCT,"Button",BS_AUTORADIOBUTTON,72,24,27, + 10 + CONTROL "Bin",IDC_RADIO_BIN,"Button",BS_AUTORADIOBUTTON,100,24, + 26,10 + GROUPBOX "",IDC_STATIC,4,36,76,21 + CONTROL "Inv",IDC_CHECK_INV,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,8,44,26,10 + CONTROL "Hyp",IDC_CHECK_HYP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,40,44,29,10 + CTEXT "",IDC_TEXT_PARENT,84,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + CTEXT "",IDC_TEXT_MEMORY,112,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "Sta",IDC_BUTTON_STA,4,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Ave",IDC_BUTTON_AVE,4,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sum",IDC_BUTTON_SUM,4,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "s",IDC_BUTTON_S,4,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Dat",IDC_BUTTON_DAT,4,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F-E",IDC_BUTTON_FE,38,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "dms",IDC_BUTTON_DMS,38,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "sin",IDC_BUTTON_SIN,38,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "cos",IDC_BUTTON_COS,38,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "tan",IDC_BUTTON_TAN,38,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "(",IDC_BUTTON_LEFTPAR,64,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Exp",IDC_BUTTON_EXP,64,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^y",IDC_BUTTON_XeY,64,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^2",IDC_BUTTON_Xe2,64,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^3",IDC_BUTTON_Xe3,64,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ")",IDC_BUTTON_RIGHTPAR,90,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "ln",IDC_BUTTON_LN,90,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "log",IDC_BUTTON_LOG,90,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "n!",IDC_BUTTON_NF,90,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,90,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MC",IDC_BUTTON_MC,124,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,124,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,124,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,124,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "pi",IDC_BUTTON_PI,124,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "7",IDC_BUTTON_7,158,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,158,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,158,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,158,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "A",IDC_BUTTON_A,158,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,184,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,184,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,184,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,184,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "B",IDC_BUTTON_B,184,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,210,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,210,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,210,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,210,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "C",IDC_BUTTON_C,210,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,236,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,236,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,236,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,236,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "D",IDC_BUTTON_D,236,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Mod",IDC_BUTTON_MOD,262,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Or",IDC_BUTTON_OR,262,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Lsh",IDC_BUTTON_LSH,262,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,262,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "E",IDC_BUTTON_E,262,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "And",IDC_BUTTON_AND,288,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Xor",IDC_BUTTON_XOR,288,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Not",IDC_BUTTON_NOT,288,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Int",IDC_BUTTON_INT,288,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F",IDC_BUTTON_F,288,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + GROUPBOX "",IDC_STATIC,140,16,172,21 + CONTROL "8 áàéò",IDC_RADIO_QWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,148,24,37,10 + CONTROL "4 áàéò",IDC_RADIO_DWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,188,24,37,10 + CONTROL "2 áàéò",IDC_RADIO_WORD,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,232,24,33,10 + CONTROL "1 áàéò",IDC_RADIO_BYTE,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,272,24,30,10 + CONTROL "Ãðàäóñû",IDC_RADIO_DEG,"Button",BS_AUTORADIOBUTTON,148,24, + 42,10 + CONTROL "Ðàäèàíû",IDC_RADIO_RAD,"Button",BS_AUTORADIOBUTTON,192, + 24,42,10 + CONTROL "Ãðàäû",IDC_RADIO_GRAD,"Button",BS_AUTORADIOBUTTON, + 236,24,44,10 + PUSHBUTTON "C",IDC_BUTTON_CANC,272,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,228,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Back",IDC_BUTTON_BACK,184,40,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,308,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -MAIN_MENU MENU DISCARDABLE +IDD_DIALOG_STANDARD DIALOGEX 0, 0, 172, 127 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Êàëüêóëÿòîð ReactOS" +MENU IDR_MENU_STANDARD +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - POPUP "&Ïðàâêà" - BEGIN - MENUITEM "&Êîïèðîâàòü Ctrl+C", IDM_COPY - MENUITEM "Âñò&àâèòü Ctrl+V", IDM_PASTE - END - POPUP "&Âèä" - BEGIN - MENUITEM "&Ïðîñòîé", IDM_MODE_STANDARD - MENUITEM "&Íàó÷íûé", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Ïîêàçûâàòü ðàçäåëèòåëü &òûñÿ÷", IDM_DIGIT_GROUPING - END - POPUP "&Ñïðàâêà" - BEGIN - MENUITEM "&Ñîäåðæàíèå", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Î ïðîãðàììå", IDM_ABOUT - END + PUSHBUTTON "C",IDC_BUTTON_CANC,128,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,84,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Back",IDC_BUTTON_BACK,40,24,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,164,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "7",IDC_BUTTON_7,40,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,40,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,40,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,40,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,66,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,66,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,66,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,66,105,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,92,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,92,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,92,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,92,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,118,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,118,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,118,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,118,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sqrt",IDC_BUTTON_SQRT,144,48,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "%",IDC_BUTTON_PERCENT,144,67,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,144,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,144,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + CTEXT "",IDC_TEXT_MEMORY,4,24,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "MC",IDC_BUTTON_MC,4,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,4,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,4,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,4,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Ïðàâêà" - BEGIN - MENUITEM "&Êîïèðîâàòü \tCtrl+C", IDM_COPY - MENUITEM "Âñò&àâèòü \tCtrl+V", IDM_PASTE - END - POPUP "&Âèä" - BEGIN - MENUITEM "&Ïðîñòîé", IDM_MODE_STANDARD - MENUITEM "&Íàó÷íûé", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Øåñòíàäöàòåðè÷íûé\tF5", ID_CALC_NS_HEX - MENUITEM "Äåñÿòè÷íûé\tF6", ID_CALC_NS_DEC - MENUITEM "Âîñüìåðè÷íûé\tF7",ID_CALC_NS_OCT - MENUITEM "Äâîè÷íûé\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Ãðàäóñû\tF2", ID_CALC_MS_DEGREES - MENUITEM "Ðàäèàíû\tF3", ID_CALC_MS_RADIANS - MENUITEM "Ãðàäû\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "Ïîêàçûâàòü ðàçäåëèòåëü &òûñÿ÷", IDM_DIGIT_GROUPING - END - POPUP "&Ñïðàâêà" - BEGIN - MENUITEM "&Ñîäåðæàíèå", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Î ïðîãðàììå", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Ïðàâêà" - BEGIN - MENUITEM "&Êîïèðîâàòü \tCtrl+C", IDM_COPY - MENUITEM "Âñò&àâèòü \tCtrl+V", IDM_PASTE - END - POPUP "&Âèä" - BEGIN - MENUITEM "&Ïðîñòîé", IDM_MODE_STANDARD - MENUITEM "&Íàó÷íûé", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Øåñòíàäöàòåðè÷íûé\tF5", ID_CALC_NS_HEX - MENUITEM "Äåñÿòè÷íûé\tF6", ID_CALC_NS_DEC - MENUITEM "Âîñüìåðè÷íûé\tF7",ID_CALC_NS_OCT - MENUITEM "Äâîè÷íûé\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "64-áèòíûé\tF12", ID_CALC_WS_QWORD - MENUITEM "32-áèòíûé\tF2", ID_CALC_WS_DWORD - MENUITEM "16-áèòíûé\tF3", ID_CALC_WS_WORD - MENUITEM "8-áèòíûé\tF4", ID_CALC_WS_BYTE - MENUITEM SEPARATOR - MENUITEM "Ïîêàçûâàòü ðàçäåëèòåëü &òûñÿ÷", IDM_DIGIT_GROUPING - END - POPUP "&Ñïðàâêà" - BEGIN - MENUITEM "&Ñîäåðæàíèå", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Î ïðîãðàììå", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Î ïðîãðàììå GNU WineCalc" +IDD_DIALOG_ABOUT DIALOGEX DISCARDABLE 0, 0, 264, 169 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Î ïðîãðàììå" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,105,148,52,16 + CONTROL 106,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | + SS_REALSIZEIMAGE | WS_BORDER,4,4,104,48 + LTEXT "Êàëüêóëÿòîð ReactOS",IDC_STATIC,120,12,132,8, + SS_CENTERIMAGE + LTEXT "Âåðñèÿ ",IDC_TEXT_VERSION,120,20,132,8,SS_CENTERIMAGE + LTEXT "Íàïèñàíî Êàðëî Áðàìèíè",IDC_STATIC,120,32,132,8, + SS_CENTERIMAGE + GROUPBOX "",IDC_STATIC,112,0,148,52 + GROUPBOX "",IDC_STATIC,4,56,256,88 + EDITTEXT IDC_EDIT_LICENSE,12,68,240,68,ES_MULTILINE | ES_READONLY | + WS_VSCROLL END -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "×òî ýòî?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 +IDD_DIALOG_STAT DIALOGEX DISCARDABLE 0, 0, 163, 85 +STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Ñòàòèñòèêà" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP + LISTBOX IDC_LIST_STAT,4,4,156,40,LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "RET",IDC_BUTTON_RET,4,48,36,16 + PUSHBUTTON "LOAD",IDC_BUTTON_LOAD,44,48,36,16 + PUSHBUTTON "CD",IDC_BUTTON_CD,84,48,36,16 + PUSHBUTTON "CAD",IDC_BUTTON_CAD,124,48,36,16 + CTEXT "n=0",IDC_TEXT_NITEMS,4,68,156,12,SS_CENTERIMAGE | + SS_SUNKEN END + + +// Menus + +IDR_MENU_SCIENTIFIC_1 MENU DISCARDABLE +BEGIN + POPUP "Ïðàâêà" + BEGIN + MENUITEM "Êîïèðîâàòü\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Âñòàâèòü\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Âèä" + BEGIN + MENUITEM "Îáû÷íûé", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Íàó÷íûé", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Ïðåîáðàçîâàíèå", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Øåñòíàäöàòåðè÷íûé\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Äåñÿòè÷íûé\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Âîñüìåðè÷íûé\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Äâîè÷íûé\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Ãðàäóñû\tF2", IDM_VIEW_DEG, CHECKED + MENUITEM "Ðàäèàíû\tF3", IDM_VIEW_RAD, CHECKED + MENUITEM "Ãðàäû\tF4", IDM_VIEW_GRAD, CHECKED + MENUITEM SEPARATOR + MENUITEM "Êîëè÷åñòâî öèôð â ãðóïïå", IDM_VIEW_GROUP, CHECKED + END + POPUP "Ñïðàâêà" + BEGIN + MENUITEM "Âûçîâ ñïðàâêè", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Î ïðîãðàììå", IDM_HELP_ABOUT + END +END + +IDR_MENU_SCIENTIFIC_2 MENU DISCARDABLE +BEGIN + POPUP "Ïðàâêà" + BEGIN + MENUITEM "Êîïèðîâàòü\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Âñòàâèòü\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Âèä" + BEGIN + MENUITEM "Îáû÷íûé", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Íàó÷íûé", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Ïðåîáðàçîâàíèå", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Øåñòíàäöàòåðè÷íûé\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Äåñÿòè÷íûé\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Âîñüìåðè÷íûé\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Äâîè÷íûé\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "8 áàéò\tF12", IDM_VIEW_QWORD, CHECKED + MENUITEM "4 áàéò\tF2", IDM_VIEW_DWORD, CHECKED + MENUITEM "2 áàéò\tF3", IDM_VIEW_WORD, CHECKED + MENUITEM "1 áàéò\tF4", IDM_VIEW_BYTE, CHECKED + MENUITEM SEPARATOR + MENUITEM "Êîëè÷åñòâî öèôð â ãðóïïå", IDM_VIEW_GROUP, CHECKED + END + POPUP "Ñïðàâêà" + BEGIN + MENUITEM "Âûçîâ ñïðàâêè", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Î ïðîãðàììå", IDM_HELP_ABOUT + END +END + +IDR_MENU_STANDARD MENU DISCARDABLE +BEGIN + POPUP "Ïðàâêà" + BEGIN + MENUITEM "Êîïèðîâàòü\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Âñòàâèòü\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Âèä" + BEGIN + MENUITEM "Îáû÷íûé", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Íàó÷íûé", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Ïðåîáðàçîâàíèå", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Êîëè÷åñòâî öèôð â ãðóïïå", IDM_VIEW_GROUP, CHECKED + END + POPUP "Ñïðàâêà" + BEGIN + MENUITEM "Âûçîâ ñïðàâêè", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Î ïðîãðàììå", IDM_HELP_ABOUT + END +END + +// String Tables + +STRINGTABLE DISCARDABLE +BEGIN + IDS_STRING_LICENSE "Êàëüêóëÿòîð ReactOS - ñâîáîäíîå ïðîãðàììíîå îáåñïåöåíèå, ðàñïðîñòðàíÿþùååñÿ ïî ëèöåíçèè GNU GPL.\r\n\r\nÂû ìîæåòå ïîëó÷èòü êîïèþ ëèöåíçèè GNU GPL çäåñü:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nÏîëó÷èòü ïåðåâåäåííóþ íà âàø ÿçûê êîïèþ ëèöåíçèè GNU GPL ìîæíî çäåñü:\r\nhttp://www.gnu.org/licenses/translations.html" + IDS_MATH_ERROR "Îøèáêà" + IDS_QUICKHELP "Áûñòðàÿ ñïðàâêà" +END + diff --git a/reactos/base/applications/calc/lang/sk-SK.rc b/reactos/base/applications/calc/lang/sk-SK.rc index 310d0205df6..496179570dd 100644 --- a/reactos/base/applications/calc/lang/sk-SK.rc +++ b/reactos/base/applications/calc/lang/sk-SK.rc @@ -1,160 +1,369 @@ -/* - * FILE: base/applications/calc/lang/sk-SK.rc - * PURPOSE: Slovak Language File for Calculator - * TRANSLATOR: Kario - * DATE OF TR.: 14-07-2007 +/* TRANSLATOR: Mário Kaèmár /Mario Kacmar/ aka Kario (kario@szm.sk) + * DATE OF TR: 30-01-2008 */ -#include "windows.h" -#include "resource.h" -#include "winecalc.h" - LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +// Dialog + +IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 161 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Kalkulaèka systému ReactOS" +MENU IDR_MENU_SCIENTIFIC_1 +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - IDS_APPNAME, "Kalkulaèka" - - IDS_COPYRIGHT1, "Kalkulaèka 5.0. Licencovaná 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, "Spä" - 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_BTN_DEGREES, "Stupne" - IDS_BTN_RADIANS, "Radiány" - IDS_BTN_GRADS, "Grady" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Neplatný vstup pre funkciu." - IDS_ERR_DIVIDE_BY_ZERO, "Nulou nemožno deli." - IDS_ERR_UNDEFINED, "Výsledok funkcie je nedefinovaný." + GROUPBOX "",IDC_STATIC,4,16,132,21 + CONTROL "Hex",IDC_RADIO_HEX,"Button",BS_AUTORADIOBUTTON,8,24,29, + 10 + CONTROL "Dec",IDC_RADIO_DEC,"Button",BS_AUTORADIOBUTTON,40,24,29, + 10 + CONTROL "Oct",IDC_RADIO_OCT,"Button",BS_AUTORADIOBUTTON,72,24,27, + 10 + CONTROL "Bin",IDC_RADIO_BIN,"Button",BS_AUTORADIOBUTTON,100,24, + 26,10 + GROUPBOX "",IDC_STATIC,4,36,76,21 + CONTROL "Inv",IDC_CHECK_INV,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,8,44,26,10 + CONTROL "Hyp",IDC_CHECK_HYP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,40,44,29,10 + CTEXT "",IDC_TEXT_PARENT,84,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + CTEXT "",IDC_TEXT_MEMORY,112,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "Sta",IDC_BUTTON_STA,4,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Ave",IDC_BUTTON_AVE,4,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sum",IDC_BUTTON_SUM,4,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "s",IDC_BUTTON_S,4,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Dat",IDC_BUTTON_DAT,4,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F-E",IDC_BUTTON_FE,38,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "dms",IDC_BUTTON_DMS,38,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "sin",IDC_BUTTON_SIN,38,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "cos",IDC_BUTTON_COS,38,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "tan",IDC_BUTTON_TAN,38,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "(",IDC_BUTTON_LEFTPAR,64,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Exp",IDC_BUTTON_EXP,64,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^y",IDC_BUTTON_XeY,64,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^2",IDC_BUTTON_Xe2,64,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^3",IDC_BUTTON_Xe3,64,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ")",IDC_BUTTON_RIGHTPAR,90,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "ln",IDC_BUTTON_LN,90,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "log",IDC_BUTTON_LOG,90,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "n!",IDC_BUTTON_NF,90,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,90,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MC",IDC_BUTTON_MC,124,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,124,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,124,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,124,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "pi",IDC_BUTTON_PI,124,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "7",IDC_BUTTON_7,158,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,158,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,158,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,158,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "A",IDC_BUTTON_A,158,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,184,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,184,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,184,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,184,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "B",IDC_BUTTON_B,184,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,210,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,210,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,210,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,210,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "C",IDC_BUTTON_C,210,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,236,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,236,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,236,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,236,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "D",IDC_BUTTON_D,236,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Mod",IDC_BUTTON_MOD,262,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Or",IDC_BUTTON_OR,262,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Lsh",IDC_BUTTON_LSH,262,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,262,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "E",IDC_BUTTON_E,262,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "And",IDC_BUTTON_AND,288,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Xor",IDC_BUTTON_XOR,288,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Not",IDC_BUTTON_NOT,288,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Int",IDC_BUTTON_INT,288,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F",IDC_BUTTON_F,288,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + GROUPBOX "",IDC_STATIC,140,16,172,21 + CONTROL "Qword",IDC_RADIO_QWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,148,24,37,10 + CONTROL "Dword",IDC_RADIO_DWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,188,24,37,10 + CONTROL "Word",IDC_RADIO_WORD,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,232,24,33,10 + CONTROL "Bajt",IDC_RADIO_BYTE,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,272,24,30,10 + CONTROL "Stupne",IDC_RADIO_DEG,"Button",BS_AUTORADIOBUTTON,148,24, + 42,10 + CONTROL "Radiány",IDC_RADIO_RAD,"Button",BS_AUTORADIOBUTTON,192, + 24,42,10 + CONTROL "Grady",IDC_RADIO_GRAD,"Button",BS_AUTORADIOBUTTON, + 236,24,44,10 + PUSHBUTTON "C",IDC_BUTTON_CANC,272,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,228,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Spä",IDC_BUTTON_BACK,184,40,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,308,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -MAIN_MENU MENU DISCARDABLE +IDD_DIALOG_STANDARD DIALOGEX 0, 0, 172, 127 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Kalkulaèka systému ReactOS" +MENU IDR_MENU_STANDARD +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - POPUP "Úpr&avy" - BEGIN - MENUITEM "&Kopírova Ctrl+C", IDM_COPY - MENUITEM "Pri&lepi Ctrl+V", IDM_PASTE - END - POPUP "&Zobrazi" - BEGIN - MENUITEM "Š&tandardná", IDM_MODE_STANDARD - MENUITEM "&Vedecká", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Zoskupov&a èíslice", IDM_DIGIT_GROUPING - END - POPUP "&Pomocník" - BEGIN - MENUITEM "&Témy Pomocníka", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "È&o je Kalkulaèka", IDM_ABOUT - END + PUSHBUTTON "C",IDC_BUTTON_CANC,128,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,84,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Spä",IDC_BUTTON_BACK,40,24,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,164,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "7",IDC_BUTTON_7,40,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,40,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,40,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,40,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,66,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,66,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,66,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,66,105,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,92,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,92,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,92,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,92,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,118,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,118,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,118,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,118,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sqrt",IDC_BUTTON_SQRT,144,48,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "%",IDC_BUTTON_PERCENT,144,67,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,144,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,144,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + CTEXT "",IDC_TEXT_MEMORY,4,24,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "MC",IDC_BUTTON_MC,4,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,4,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,4,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,4,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "Úpr&avy" - BEGIN - MENUITEM "&Kopírova Ctrl+C", IDM_COPY - MENUITEM "Pri&lepi Ctrl+V", IDM_PASTE - END - POPUP "&Zobrazi" - BEGIN - MENUITEM "Š&tandardná", IDM_MODE_STANDARD - MENUITEM "&Vedecká", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Še&stnástková\tF5", ID_CALC_NS_HEX - MENUITEM "D&esiatková\tF6", ID_CALC_NS_DEC - MENUITEM "&Osmièková\tF7", ID_CALC_NS_OCT - MENUITEM "&Dvojková\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "St&upne\tF2", ID_CALC_MS_DEGREES - MENUITEM "&Radiány\tF3", ID_CALC_MS_RADIANS - MENUITEM "&Grady\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "Zoskupov&a èíslice", IDM_DIGIT_GROUPING - END - POPUP "&Pomocník" - BEGIN - MENUITEM "&Témy Pomocníka", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "È&o je Kalkulaèka", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "Úpr&avy" - BEGIN - MENUITEM "&Kopírova Ctrl+C", IDM_COPY - MENUITEM "Pri&lepi Ctrl+V", IDM_PASTE - END - POPUP "&Zobrazi" - BEGIN - MENUITEM "Š&tandardná", IDM_MODE_STANDARD - MENUITEM "&Vedecká", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Še&stnástková\tF5", ID_CALC_NS_HEX - MENUITEM "D&esiatková\tF6", ID_CALC_NS_DEC - MENUITEM "&Osmièková\tF7", ID_CALC_NS_OCT - MENUITEM "&Dvojková\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "&Qword\tF12", ID_CALC_WS_QWORD - MENUITEM "Dwo&rd\tF2", ID_CALC_WS_DWORD - MENUITEM "&Word\tF3", ID_CALC_WS_WORD - MENUITEM "&Bajt\tF4", ID_CALC_WS_BYTE - MENUITEM SEPARATOR - MENUITEM "Zoskupov&a èíslice", IDM_DIGIT_GROUPING - END - POPUP "&Pomocník" - BEGIN - MENUITEM "&Témy Pomocníka", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "È&o je Kalkulaèka", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Èo je Kalkulaèka" +IDD_DIALOG_ABOUT DIALOGEX DISCARDABLE 0, 0, 264, 169 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Èo je kalkulaèka systému ReactOS" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,105,148,52,16 + CONTROL 106,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | + SS_REALSIZEIMAGE | WS_BORDER,4,4,104,48 + LTEXT "Kalkulaèka systému ReactOS",IDC_STATIC,120,12,132,8, + SS_CENTERIMAGE + LTEXT "Verzia ",IDC_TEXT_VERSION,120,20,132,8,SS_CENTERIMAGE + LTEXT "Napísal Carlo Bramini",IDC_STATIC,120,32,132,8, + SS_CENTERIMAGE + GROUPBOX "",IDC_STATIC,112,0,148,52 + GROUPBOX "",IDC_STATIC,4,56,256,88 + EDITTEXT IDC_EDIT_LICENSE,12,68,240,68,ES_MULTILINE | ES_READONLY | + WS_VSCROLL END -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Èo je toto?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 +IDD_DIALOG_STAT DIALOGEX DISCARDABLE 0, 0, 163, 85 +STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Štatistika" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP + LISTBOX IDC_LIST_STAT,4,4,156,40,LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "RET",IDC_BUTTON_RET,4,48,36,16 + PUSHBUTTON "LOAD",IDC_BUTTON_LOAD,44,48,36,16 + PUSHBUTTON "CD",IDC_BUTTON_CD,84,48,36,16 + PUSHBUTTON "CAD",IDC_BUTTON_CAD,124,48,36,16 + CTEXT "n=0",IDC_TEXT_NITEMS,4,68,156,12,SS_CENTERIMAGE | + SS_SUNKEN END + + +// Menus + +IDR_MENU_SCIENTIFIC_1 MENU DISCARDABLE +BEGIN + POPUP "Úpravy" + BEGIN + MENUITEM "Kopírova\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Prilepi\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Zobrazi" + BEGIN + MENUITEM "Štandardná", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Vedecká", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Prevody", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Šestnástková\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Desiatková\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Osmièková\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Dvojková\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Stupne\tF2", IDM_VIEW_DEG, CHECKED + MENUITEM "Radiány\tF3", IDM_VIEW_RAD, CHECKED + MENUITEM "Grady\tF4", IDM_VIEW_GRAD, CHECKED + MENUITEM SEPARATOR + MENUITEM "Zoskupova èíslice", IDM_VIEW_GROUP, CHECKED + END + POPUP "Pomocník" + BEGIN + MENUITEM "Témy pomocníka", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Èo je kalkulaèka systému ReactOS", IDM_HELP_ABOUT + END +END + +IDR_MENU_SCIENTIFIC_2 MENU DISCARDABLE +BEGIN + POPUP "Úpravy" + BEGIN + MENUITEM "Kopírova\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Prilepi\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Zobrazi" + BEGIN + MENUITEM "Štandardná", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Vedecká", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Prevody", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Šestnástková\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Desiatková\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "Osmièková\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Dvojková\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Qword\tF12", IDM_VIEW_QWORD, CHECKED + MENUITEM "Dword\tF2", IDM_VIEW_DWORD, CHECKED + MENUITEM "Word\tF3", IDM_VIEW_WORD, CHECKED + MENUITEM "Bajt\tF4", IDM_VIEW_BYTE, CHECKED + MENUITEM SEPARATOR + MENUITEM "Zoskupova èíslice", IDM_VIEW_GROUP, CHECKED + END + POPUP "Pomocník" + BEGIN + MENUITEM "Témy pomocníka", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Èo je kalkulaèka systému ReactOS", IDM_HELP_ABOUT + END +END + +IDR_MENU_STANDARD MENU DISCARDABLE +BEGIN + POPUP "Úpravy" + BEGIN + MENUITEM "Kopírova\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Prilepi\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Zobrazi" + BEGIN + MENUITEM "Štandardná", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Vedecká", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Prevody", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "Zoskupova èíslice", IDM_VIEW_GROUP, CHECKED + END + POPUP "Pomocník" + BEGIN + MENUITEM "Témy pomocníka", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Èo je kalkulaèka systému ReactOS", IDM_HELP_ABOUT + END +END + +// String Tables + +STRINGTABLE DISCARDABLE +BEGIN + IDS_STRING_LICENSE "Kalkulaèka systému ReactOS je vo¾ný softvér vydaný pod licenciou GNU GPL.\r\n\r\nKópiu licenie GNU GPL môžete získa tu:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nRovnako môžete získa preklad licencie GNU GPL tu:\r\nhttp://www.gnu.org/licenses/translations.html" + IDS_MATH_ERROR "Chyba" + IDS_QUICKHELP "Rýchla pomoc" +END + diff --git a/reactos/base/applications/calc/lang/sv-SE.rc b/reactos/base/applications/calc/lang/sv-SE.rc deleted file mode 100644 index 4ea35da772f..00000000000 --- a/reactos/base/applications/calc/lang/sv-SE.rc +++ /dev/null @@ -1,174 +0,0 @@ -/* - * WineCalc (sv-SE.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 -BEGIN - 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Felaktig indata för funktion." - IDS_ERR_DIVIDE_BY_ZERO, "Kan inte dividera med noll." - IDS_ERR_UNDEFINED, "Funktionens resultat är odefinerat." -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "&Redigera" - BEGIN - MENUITEM "&Kopiera\tCtrl+C", IDM_COPY - MENUITEM "K&listra in\tCtrl+V", IDM_PASTE - END - POPUP "&Visa" - BEGIN - MENUITEM "Standard", IDM_MODE_STANDARD - MENUITEM "Vetenskaplig", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Siffergruppering", IDM_DIGIT_GROUPING - END - POPUP "&Hjälp" - BEGIN - MENUITEM "Hjälpavsnitt", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Om Kalkylatorn", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Redigera" - BEGIN - MENUITEM "&Kopiera\tCtrl+C", IDM_COPY - MENUITEM "K&listra in\tCtrl+V", IDM_PASTE - END - POPUP "&Visa" - BEGIN - 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ä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 - END - POPUP "&Hjälp" - BEGIN - MENUITEM "Hjälpavsnitt", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Om Kalkylatorn", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Redigera" - BEGIN - MENUITEM "&Kopiera\tCtrl+C", IDM_COPY - MENUITEM "K&listra in\tCtrl+V", IDM_PASTE - END - POPUP "&Visa" - BEGIN - 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ä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 - END - POPUP "&Hjälp" - BEGIN - MENUITEM "Hjälpavsnitt", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Om Kalkylatorn", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Om GNU Kalkylatorn (winecalc)" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Vad är det här?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statistikruta" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/th-TH.rc b/reactos/base/applications/calc/lang/th-TH.rc deleted file mode 100644 index 5e9b791cf21..00000000000 --- a/reactos/base/applications/calc/lang/th-TH.rc +++ /dev/null @@ -1,173 +0,0 @@ -/* - * WineCalc (th-TH.rc) - * - * Copyright 2006 Sumath Aowsakulsutthi - * - * 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_THAI, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME, "ʶҹÀÒ¾·ÑèÇä»" - - IDS_COPYRIGHT1, "à¤Ã×èͧ¤Ô´àÅ¢ 5.0. ÅÔ¢ÊÔ·¸ÔìÀÒÂãµé LGPL 2" - IDS_COPYRIGHT2 "ʧǹÅÔ¢ÊÔ·¸Ôì 2003, à¨ÁÊì ºÃÔ¨¨ìÊ" - IDS_COPYRIGHT3 "᫹ â¨Ê, á¤ÅÔ¿ÍÃìà¹ÕÂ, ÊËÃѰÍàÁÃÔ¡Ò" - IDS_COPYRIGHT4 "james@ActionMessage.com" - IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/" - - IDS_BTN_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, "ÃÒ¡·ÕèÊͧ" - IDS_BTN_DEGREES, "ͧÈÒ" - IDS_BTN_RADIANS, "àÃà´Õ¹" - IDS_BTN_GRADS, "à¡Ãà´Õ¹" - IDS_BTN_SHRT_HEX "°Ò¹ÊԺˡ" - IDS_BTN_SHRT_DEC "°Ò¹ÊÔº" - IDS_BTN_SHRT_OCT "°Ò¹á»´" - IDS_BTN_SHRT_BIN "°Ò¹Êͧ" - IDS_ERR_INVALID_INPUT, "¤èÒ·Õè»é͹ãËéäÁèÊÒÁÒöãªé㹡óչÕéä´é" - IDS_ERR_DIVIDE_BY_ZERO, "äÁèÊÒÁÒöËÒôéÇÂÈÙ¹Âì" - IDS_ERR_UNDEFINED, "äÁèÊÒÁÒöáÊ´§¼Åä´é" -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "á¡éä¢" - BEGIN - MENUITEM "¤Ñ´ÅÍ¡ Ctrl+C", IDM_COPY - MENUITEM "ÇÒ§ Ctrl+V", IDM_PASTE - END - POPUP "&ÁØÁÁͧ" - BEGIN - MENUITEM "ẺÁҵðҹ", IDM_MODE_STANDARD - MENUITEM "ẺÇÔ·ÂÒÈÒʵÃì", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "áÊ´§ËÅÑ¡µÑÇàÅ¢", IDM_DIGIT_GROUPING - END - POPUP "&ªèÇÂàËÅ×Í" - BEGIN - MENUITEM "¢éÍÁÙŪèÇÂàËÅ×Í", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "à¡ÕèÂǡѺ GNU WineCalc", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "á¡éä¢" - BEGIN - MENUITEM "¤Ñ´ÅÍ¡ Ctrl+C", IDM_COPY - MENUITEM "ÇÒ§ Ctrl+V", IDM_PASTE - END - POPUP "ÁØÁÁͧ" - BEGIN - MENUITEM "ẺÁҵðҹ", IDM_MODE_STANDARD - MENUITEM "ẺÇÔ·ÂÒÈÒʵÃì", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "°Ò¹ÊԺˡ\tF5", ID_CALC_NS_HEX - MENUITEM "°Ò¹ÊÔº\tF6", ID_CALC_NS_DEC - MENUITEM "°Ò¹á»´\tF7", ID_CALC_NS_OCT - MENUITEM "°Ò¹Êͧ\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "ͧÈÒ\tF2", ID_CALC_MS_DEGREES - MENUITEM "àÃà´Õ¹\tF3", ID_CALC_MS_RADIANS - MENUITEM "à¡Ãà´Õ¹\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "áÊ´§ËÅÑ¡µÑÇàÅ¢", IDM_DIGIT_GROUPING - END - POPUP "ªèÇÂàËÅ×Í" - BEGIN - MENUITEM "¢éÍÁÙŪèÇÂàËÅ×Í", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "à¡ÕèÂǡѺ GNU WineCalc", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "á¡éä¢" - BEGIN - MENUITEM "¤Ñ´ÅÍ¡ Ctrl+C", IDM_COPY - MENUITEM "ÇÒ§ Ctrl+V", IDM_PASTE - END - POPUP "ÁØÁÁͧ" - BEGIN - MENUITEM "ẺÁҵðҹ", IDM_MODE_STANDARD - MENUITEM "ẺÇÔ·ÂÒÈÒʵÃì", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "°Ò¹ÊԺˡ\tF5", ID_CALC_NS_HEX - MENUITEM "°Ò¹ÊÔº\tF6", ID_CALC_NS_DEC - MENUITEM "°Ò¹á»´\tF7", ID_CALC_NS_OCT - MENUITEM "°Ò¹Êͧ\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 "áÊ´§ËÅÑ¡µÑÇàÅ¢", IDM_DIGIT_GROUPING - END - POPUP "ªèÇÂàËÅ×Í" - BEGIN - MENUITEM "¢éÍÁÙŪèÇÂàËÅ×Í", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "à¡ÕèÂǡѺ GNU WineCalc", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "à¡ÕèÂǡѺ GNU WineCalc" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -BEGIN - DEFPUSHBUTTON "µ¡Å§", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "ÊÔè§¹Õé¤×ÍÍÐäà ?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "¡ÅèͧʶҹÐ" -FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/lang/uk-UA.rc b/reactos/base/applications/calc/lang/uk-UA.rc index fc55ee722b0..d7202cdee77 100644 --- a/reactos/base/applications/calc/lang/uk-UA.rc +++ b/reactos/base/applications/calc/lang/uk-UA.rc @@ -1,173 +1,372 @@ /* - * WineCalc (uk-UA.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 + * PROJECT: ReactOS Calculator + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/roscalc/lang/uk-UA.rc + * PURPOSE: Ukraianian Language File for roscalc + * TRANSLATOR: Artem Reznikov */ -#include "windows.h" -#include "resource.h" -#include "winecalc.h" - LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +// Dialog + +IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 161 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Êàëüêóëÿòîð ReactOS" +MENU IDR_MENU_SCIENTIFIC_1 +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - IDS_APPNAME, "Êàëüêóëÿòîð" - - IDS_COPYRIGHT1, "Êàëüêóëÿòîð 5.0. ˳öåíçîâàíî ï³ä LGPL 2" - IDS_COPYRIGHT2 "Copyright 2003, James Briggs" - IDS_COPYRIGHT3 "Ñàí-Õîñå, Êàë³ôîðí³ÿ, ÑØÀ" - 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "Íåïðàâèëüíèé àðãóìåíò ôóíêö³¿." - IDS_ERR_DIVIDE_BY_ZERO, "ijëèòè íà íóëü íå ìîæíà." - IDS_ERR_UNDEFINED, "Ðåçóëüòàò ôóíêö³¿ íåâèçíà÷åíèé." + GROUPBOX "",IDC_STATIC,4,16,132,21 + CONTROL "Hex",IDC_RADIO_HEX,"Button",BS_AUTORADIOBUTTON,8,24,29, + 10 + CONTROL "Dec",IDC_RADIO_DEC,"Button",BS_AUTORADIOBUTTON,40,24,29, + 10 + CONTROL "Oct",IDC_RADIO_OCT,"Button",BS_AUTORADIOBUTTON,72,24,27, + 10 + CONTROL "Bin",IDC_RADIO_BIN,"Button",BS_AUTORADIOBUTTON,100,24, + 26,10 + GROUPBOX "",IDC_STATIC,4,36,76,21 + CONTROL "Inv",IDC_CHECK_INV,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,8,44,26,10 + CONTROL "Hyp",IDC_CHECK_HYP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,40,44,29,10 + CTEXT "",IDC_TEXT_PARENT,84,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + CTEXT "",IDC_TEXT_MEMORY,112,40,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "Sta",IDC_BUTTON_STA,4,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Ave",IDC_BUTTON_AVE,4,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sum",IDC_BUTTON_SUM,4,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "s",IDC_BUTTON_S,4,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Dat",IDC_BUTTON_DAT,4,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F-E",IDC_BUTTON_FE,38,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "dms",IDC_BUTTON_DMS,38,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "sin",IDC_BUTTON_SIN,38,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "cos",IDC_BUTTON_COS,38,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "tan",IDC_BUTTON_TAN,38,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "(",IDC_BUTTON_LEFTPAR,64,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Exp",IDC_BUTTON_EXP,64,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^y",IDC_BUTTON_XeY,64,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^2",IDC_BUTTON_Xe2,64,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "x^3",IDC_BUTTON_Xe3,64,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ")",IDC_BUTTON_RIGHTPAR,90,64,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "ln",IDC_BUTTON_LN,90,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "log",IDC_BUTTON_LOG,90,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "n!",IDC_BUTTON_NF,90,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,90,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MC",IDC_BUTTON_MC,124,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,124,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,124,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,124,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "pi",IDC_BUTTON_PI,124,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "7",IDC_BUTTON_7,158,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,158,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,158,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,158,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "A",IDC_BUTTON_A,158,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,184,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,184,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,184,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,184,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "B",IDC_BUTTON_B,184,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,210,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,210,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,210,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,210,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "C",IDC_BUTTON_C,210,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,236,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,236,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,236,102,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,236,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "D",IDC_BUTTON_D,236,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Mod",IDC_BUTTON_MOD,262,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Or",IDC_BUTTON_OR,262,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Lsh",IDC_BUTTON_LSH,262,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,262,121,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "E",IDC_BUTTON_E,262,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "And",IDC_BUTTON_AND,288,64,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Xor",IDC_BUTTON_XOR,288,83,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Not",IDC_BUTTON_NOT,288,102,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Int",IDC_BUTTON_INT,288,121,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "F",IDC_BUTTON_F,288,140,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + GROUPBOX "",IDC_STATIC,140,16,172,21 + CONTROL "8 áàéò",IDC_RADIO_QWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,148,24,37,10 + CONTROL "4 áàéò",IDC_RADIO_DWORD,"Button",BS_AUTORADIOBUTTON | + NOT WS_VISIBLE,188,24,37,10 + CONTROL "2 áàéò",IDC_RADIO_WORD,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,232,24,33,10 + CONTROL "1 áàéò",IDC_RADIO_BYTE,"Button",BS_AUTORADIOBUTTON | NOT + WS_VISIBLE,272,24,30,10 + CONTROL "Ãðàäóñè",IDC_RADIO_DEG,"Button",BS_AUTORADIOBUTTON,148,24, + 42,10 + CONTROL "Ðàä³àíè",IDC_RADIO_RAD,"Button",BS_AUTORADIOBUTTON,192, + 24,42,10 + CONTROL "Ãðàäè",IDC_RADIO_GRAD,"Button",BS_AUTORADIOBUTTON, + 236,24,44,10 + PUSHBUTTON "C",IDC_BUTTON_CANC,272,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,228,40,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Back",IDC_BUTTON_BACK,184,40,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,308,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -MAIN_MENU MENU DISCARDABLE +IDD_DIALOG_STANDARD DIALOGEX 0, 0, 172, 127 +STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Êàëüêóëÿòîð ReactOS" +MENU IDR_MENU_STANDARD +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - POPUP "&Ïðàâêà" - BEGIN - MENUITEM "&Êîï³þâàòè Ctrl+C", IDM_COPY - MENUITEM "Âñò&àâèòè Ctrl+V", IDM_PASTE - END - POPUP "&Âèãëÿä" - BEGIN - MENUITEM "Çâè÷àéíèé", IDM_MODE_STANDARD - MENUITEM "²íæåíåðíèé", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "ʳëüê³ñòü öèôð ó ãðóï³", IDM_DIGIT_GROUPING - END - POPUP "&Äîâ³äêà" - BEGIN - MENUITEM "Çì³ñò", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "About Calculator", IDM_ABOUT - END + PUSHBUTTON "C",IDC_BUTTON_CANC,128,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "CE",IDC_BUTTON_CE,84,24,40,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Back",IDC_BUTTON_BACK,40,24,40,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + RTEXT "",IDC_TEXT_OUTPUT,4,4,164,12,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "7",IDC_BUTTON_7,40,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "4",IDC_BUTTON_4,40,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1",IDC_BUTTON_1,40,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "0",IDC_BUTTON_0,40,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "8",IDC_BUTTON_8,66,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "5",IDC_BUTTON_5,66,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "2",IDC_BUTTON_2,66,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+/-",IDC_BUTTON_SIGN,66,105,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "9",IDC_BUTTON_9,92,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "6",IDC_BUTTON_6,92,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "3",IDC_BUTTON_3,92,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON ",",IDC_BUTTON_DOT,92,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "/",IDC_BUTTON_DIV,118,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "*",IDC_BUTTON_MULT,118,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "-",IDC_BUTTON_SUB,118,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "+",IDC_BUTTON_ADD,118,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "Sqrt",IDC_BUTTON_SQRT,144,48,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "%",IDC_BUTTON_PERCENT,144,67,24,17,BS_CENTER | + BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "1/x",IDC_BUTTON_RX,144,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "=",IDC_BUTTON_EQU,144,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + CTEXT "",IDC_TEXT_MEMORY,4,24,24,17,SS_CENTERIMAGE, + WS_EX_CLIENTEDGE + PUSHBUTTON "MC",IDC_BUTTON_MC,4,48,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MR",IDC_BUTTON_MR,4,67,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "MS",IDC_BUTTON_MS,4,86,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + PUSHBUTTON "M+",IDC_BUTTON_MP,4,105,24,17,BS_CENTER | BS_VCENTER | + BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP + DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE END -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Ïðàâêà" - BEGIN - MENUITEM "&Êîï³þâàòè Ctrl+C", IDM_COPY - MENUITEM "Âñò&àâèòè Ctrl+V", IDM_PASTE - END - POPUP "&Âèãëÿä" - BEGIN - MENUITEM "Çâè÷àéíèé", IDM_MODE_STANDARD - MENUITEM "²íæåíåðíèé", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "سñòíàäöÿòêîâèé (Hex)\tF5", ID_CALC_NS_HEX - MENUITEM "Äåñÿòêîâèé (Dec)\tF6", ID_CALC_NS_DEC - MENUITEM "³ñ³ìêîâèé (Oct)\tF7", ID_CALC_NS_OCT - MENUITEM "Äâ³éêîâèé (Bin)\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "Ãðàäóñè\tF2", ID_CALC_MS_DEGREES - MENUITEM "Ðàä³àíè\tF3", ID_CALC_MS_RADIANS - MENUITEM "Ãðàäè\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "ʳëüê³ñòü öèôð ó ãðóï³", IDM_DIGIT_GROUPING - END - POPUP "&Äîâ³äêà" - BEGIN - MENUITEM "Çì³ñò", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Ïðî Êàëüêóëÿòîð", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "&Ïðàâêà" - BEGIN - MENUITEM "&Êîï³þâàòè Ctrl+C", IDM_COPY - MENUITEM "Âñò&àâèòè Ctrl+V", IDM_PASTE - END - POPUP "&Âèãëÿä" - BEGIN - MENUITEM "Çâè÷àéíèé", IDM_MODE_STANDARD - MENUITEM "²íæåíåðíèé", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "سñòíàäöÿòêîâèé (Hex)\tF5", ID_CALC_NS_HEX - MENUITEM "Äåñÿòêîâèé (Dec)\tF6", ID_CALC_NS_DEC - MENUITEM "³ñ³ìêîâèé (Oct)\tF7", ID_CALC_NS_OCT - MENUITEM "Äâ³éêîâèé (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 "ʳëüê³ñòü öèôð ó ãðóï³", IDM_DIGIT_GROUPING - END - POPUP "&Äîâ³äêà" - BEGIN - MENUITEM "Çì³ñò", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "Ïðî Êàëüêóëÿòîð", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - -DLG_ABOUT DIALOGEX 12,0,175,90 -CAPTION "Ïðî GNU winecalc" +IDD_DIALOG_ABOUT DIALOGEX DISCARDABLE 0, 0, 264, 169 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Ïðî Êàëüêóëÿòîð ReactOS" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU BEGIN - DEFPUSHBUTTON "OK", IDOK, 73, 70, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,105,148,52,16 + CONTROL 106,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | + SS_REALSIZEIMAGE | WS_BORDER,4,4,104,48 + LTEXT "Êàëüêóëÿòîð ReactOS",IDC_STATIC,120,12,132,8, + SS_CENTERIMAGE + LTEXT "Âåðñ³ÿ ",IDC_TEXT_VERSION,120,20,132,8,SS_CENTERIMAGE + LTEXT "Íàïèñàâ Êàðëî Áðàì³í³",IDC_STATIC,120,32,132,8, + SS_CENTERIMAGE + GROUPBOX "",IDC_STATIC,112,0,148,52 + GROUPBOX "",IDC_STATIC,4,56,256,88 + EDITTEXT IDC_EDIT_LICENSE,12,68,240,68,ES_MULTILINE | ES_READONLY | + WS_VSCROLL END -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "Ùî öå?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,145,85 -CAPTION "Statistics Box" +IDD_DIALOG_STAT DIALOGEX DISCARDABLE 0, 0, 163, 85 +STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Ñòàòèñòèêà" FONT 8, "MS Shell Dlg" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE BEGIN - DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&LOAD", ID_STATS_LOAD, 39, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&CD" ID_STATS_CD, 74, 52, 30, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "C&AD", ID_STATS_CAD, 109, 52, 30, 13, WS_TABSTOP | WS_GROUP + LISTBOX IDC_LIST_STAT,4,4,156,40,LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "RET",IDC_BUTTON_RET,4,48,36,16 + PUSHBUTTON "LOAD",IDC_BUTTON_LOAD,44,48,36,16 + PUSHBUTTON "CD",IDC_BUTTON_CD,84,48,36,16 + PUSHBUTTON "CAD",IDC_BUTTON_CAD,124,48,36,16 + CTEXT "n=0",IDC_TEXT_NITEMS,4,68,156,12,SS_CENTERIMAGE | + SS_SUNKEN +END + + +// Menus + +IDR_MENU_SCIENTIFIC_1 MENU DISCARDABLE +BEGIN + POPUP "Ïðàâêà" + BEGIN + MENUITEM "Êîï³þâàòè\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Âñòàâèòè\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Âèãëÿä" + BEGIN + MENUITEM "Çâè÷àéíèé", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Íàóêîâèé", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Ïåðåòâîðåííÿ", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "سñòíàäöÿòêîâèé\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Äåñÿòêîâèé\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "³ñ³ìêîâèé\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Äâ³éêîâèé\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "Ãðàäóñè\tF2", IDM_VIEW_DEG, CHECKED + MENUITEM "Ðàä³àíè\tF3", IDM_VIEW_RAD, CHECKED + MENUITEM "Ãðàäè\tF4", IDM_VIEW_GRAD, CHECKED + MENUITEM SEPARATOR + MENUITEM "ʳëüê³ñòü öèôð ó ãðóï³", IDM_VIEW_GROUP, CHECKED + END + POPUP "Äîâ³äêà" + BEGIN + MENUITEM "Çì³ñò", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Ïðî Êàëüêóëÿòîð ReactOS", IDM_HELP_ABOUT + END +END + +IDR_MENU_SCIENTIFIC_2 MENU DISCARDABLE +BEGIN + POPUP "Ïðàâêà" + BEGIN + MENUITEM "Êîï³þâàòè\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Âñòàâèòè\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Âèãëÿä" + BEGIN + MENUITEM "Çâè÷àéíèé", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Íàóêîâèé", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Ïåðåòâîðåííÿ", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "سñòíàäöÿòêîâèé\tF5", IDM_VIEW_HEX, CHECKED + MENUITEM "Äåñÿòêîâèé\tF6", IDM_VIEW_DEC, CHECKED + MENUITEM "³ñ³ìêîâèé\tF7", IDM_VIEW_OCT, CHECKED + MENUITEM "Äâ³éêîâèé\tF8", IDM_VIEW_BIN, CHECKED + MENUITEM SEPARATOR + MENUITEM "8 áàéò\tF12", IDM_VIEW_QWORD, CHECKED + MENUITEM "4 áàéò\tF2", IDM_VIEW_DWORD, CHECKED + MENUITEM "2 áàéò\tF3", IDM_VIEW_WORD, CHECKED + MENUITEM "1 áàéò\tF4", IDM_VIEW_BYTE, CHECKED + MENUITEM SEPARATOR + MENUITEM "ʳëüê³ñòü öèôð ó ãðóï³", IDM_VIEW_GROUP, CHECKED + END + POPUP "Äîâ³äêà" + BEGIN + MENUITEM "Çì³ñò", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Ïðî Êàëüêóëÿòîð ReactOS", IDM_HELP_ABOUT + END +END + +IDR_MENU_STANDARD MENU DISCARDABLE +BEGIN + POPUP "Ïðàâêà" + BEGIN + MENUITEM "Êîï³þâàòè\tCTRL-C", IDM_EDIT_COPY + MENUITEM "Âñòàâèòè\tCTRL-V", IDM_EDIT_PASTE + END + POPUP "Âèãëÿä" + BEGIN + MENUITEM "Çâè÷àéíèé", IDM_VIEW_STANDARD, CHECKED + MENUITEM "Íàóêîâèé", IDM_VIEW_SCIENTIFIC, CHECKED + MENUITEM "Ïåðåòâîðåííÿ", IDM_VIEW_CONVERSION + MENUITEM SEPARATOR + MENUITEM "ʳëüê³ñòü öèôð ó ãðóï³", IDM_VIEW_GROUP, CHECKED + END + POPUP "Äîâ³äêà" + BEGIN + MENUITEM "Çì³ñò", IDM_HELP_HELP + MENUITEM SEPARATOR + MENUITEM "Ïðî Êàëüêóëÿòîð ReactOS", IDM_HELP_ABOUT + END +END + +// String Tables + +STRINGTABLE DISCARDABLE +BEGIN + IDS_STRING_LICENSE "Êàëüêóëÿòîð ReactOS - â³ëüíå ïðîãðàìíå çàáåçïå÷åííÿ, âèïóùåíå çà ë³öåí糺þ GNU GPL.\r\n\r\nÂè ìîæåòå îòðèìàòè êîï³þ ë³öåí糿 GNU GPL òóò:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nÂè ìîæåòå òàêîæ îòðèìàòè ïåðåêëàä ë³öåí糿 GNU GPL òóò:\r\nhttp://www.gnu.org/licenses/translations.html" + IDS_MATH_ERROR "Ïîìèëêà" + IDS_QUICKHELP "Øâèäêà äîâ³äêà" END diff --git a/reactos/base/applications/calc/lang/zh-CN.rc b/reactos/base/applications/calc/lang/zh-CN.rc deleted file mode 100644 index aa8262f6cb3..00000000000 --- a/reactos/base/applications/calc/lang/zh-CN.rc +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Calculator (Simplified Chinese resources) - * ¼ÆËãÆ÷(¼òÌåÖÐÎÄ×ÊÔ´) - * Copyright 2007 zhangbing - * - * 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_CHINESE, SUBLANG_CHINESE_SIMPLIFIED - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME, "¼ÆËãÆ÷" - - IDS_COPYRIGHT1, "¼ÆËãÆ÷ 5.0. »ùÓÚ LGPL 2 ЭÒé" - IDS_COPYRIGHT2 "°æÈ¨ 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_BTN_DEGREES, "Degrees" - IDS_BTN_RADIANS, "Radians" - IDS_BTN_GRADS, "Grads" - IDS_BTN_SHRT_HEX "Hex" - IDS_BTN_SHRT_DEC "Dec" - IDS_BTN_SHRT_OCT "Oct" - IDS_BTN_SHRT_BIN "Bin" - IDS_ERR_INVALID_INPUT, "º¯ÊýÊäÈëÎÞЧ¡£" - IDS_ERR_DIVIDE_BY_ZERO, "³ýÊý²»ÄÜΪÁã¡£" - IDS_ERR_UNDEFINED, "º¯Êý½á¹û䶨Òå¡£" -END - -MAIN_MENU MENU DISCARDABLE -BEGIN - POPUP "±à¼­(&E)" - BEGIN - MENUITEM "¸´ÖÆ(&C) Ctrl+C", IDM_COPY - MENUITEM "Õ³Ìù(&P) Ctrl+V", IDM_PASTE - END - POPUP "²é¿´(&V)" - BEGIN - MENUITEM "±ê×¼ÐÍ", IDM_MODE_STANDARD - MENUITEM "¿ÆÑ§ÐÍ", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Êý×Ö·Ö×é", IDM_DIGIT_GROUPING - END - POPUP "°ïÖú(&H)" - BEGIN - MENUITEM "°ïÖúÖ÷Ìâ", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "¹ØÓÚ¼ÆËãÆ÷", IDM_ABOUT - END -END - -SCIMS_MENU MENU DISCARDABLE -BEGIN - POPUP "±à¼­(&E)" - BEGIN - MENUITEM "¸´ÖÆ(&C) Ctrl+C", IDM_COPY - MENUITEM "Õ³Ìù(&P) Ctrl+V", IDM_PASTE - END - POPUP "²é¿´(&V)" - BEGIN - MENUITEM "±ê×¼ÐÍ", IDM_MODE_STANDARD - MENUITEM "¿ÆÑ§ÐÍ", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Ê®Áù½øÖÆ(H)\tF5", ID_CALC_NS_HEX - MENUITEM "Ê®½øÖÆ(D)\tF6", ID_CALC_NS_DEC - MENUITEM "°Ë½øÖÆ(O)\tF7", ID_CALC_NS_OCT - MENUITEM "¶þ½øÖÆ(B)\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "½Ç¶È\tF2", ID_CALC_MS_DEGREES - MENUITEM "»¡¶È\tF3", ID_CALC_MS_RADIANS - MENUITEM "ÌݶÈ\tF4", ID_CALC_MS_GRADS - MENUITEM SEPARATOR - MENUITEM "Êý×Ö·Ö×é", IDM_DIGIT_GROUPING - END - POPUP "°ïÖú(&H)" - BEGIN - MENUITEM "°ïÖúÖ÷Ìâ", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "¹ØÓÚ¼ÆËãÆ÷", IDM_ABOUT - END -END - -SCIWS_MENU MENU DISCARDABLE -BEGIN - POPUP "±à¼­(&E)" - BEGIN - MENUITEM "¸´ÖÆ(&C) Ctrl+C", IDM_COPY - MENUITEM "Õ³Ìù(&P) Ctrl+V", IDM_PASTE - END - POPUP "²é¿´(&V)" - BEGIN - MENUITEM "±ê×¼ÐÍ", IDM_MODE_STANDARD - MENUITEM "¿ÆÑ§ÐÍ", IDM_MODE_SCIENTIFIC - MENUITEM SEPARATOR - MENUITEM "Ê®Áù½øÖÆ(H)\tF5", ID_CALC_NS_HEX - MENUITEM "Ê®½øÖÆ(D)\tF6", ID_CALC_NS_DEC - MENUITEM "°Ë½øÖÆ(O)\tF7", ID_CALC_NS_OCT - MENUITEM "¶þ½øÖÆ(B)\tF8", ID_CALC_NS_BIN - MENUITEM SEPARATOR - MENUITEM "ËÄ×Ö\tF12", ID_CALC_WS_QWORD - MENUITEM "Ë«×Ö\tF2", ID_CALC_WS_DWORD - MENUITEM "µ¥×Ö\tF3", ID_CALC_WS_WORD - MENUITEM "×Ö½Ú\tF4", ID_CALC_WS_BYTE - MENUITEM SEPARATOR - MENUITEM "Êý×Ö·Ö×é", IDM_DIGIT_GROUPING - END - POPUP "°ïÖú(&H)" - BEGIN - MENUITEM "°ïÖúÖ÷Ìâ", IDM_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "¹ØÓÚ¼ÆËãÆ÷", IDM_ABOUT - END -END - -MAIN_MENU ACCELERATORS -BEGIN - VK_F1, IDV_HELP, VIRTKEY -END - - -DLG_ABOUT DIALOGEX 12, 0, 140, 95 -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "¹ØÓÚ GNU winecalc" -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - //LTEXT "ÖÐÎÄ·­Òë:Õűù (e_zb@21cn.com, ezb@mail.gywb.cn)",IDC_STATIC, 5, 57, 111, 25 - DEFPUSHBUTTON "È·¶¨",IDOK, 55, 75, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -WHATS_THIS_MENU MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "What's This?", IDM_WHATS_THIS - END -END - -DLG_STATS DIALOGEX 12,0,125,78 -CAPTION "ͳ¼Æ¿ò" -STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "·µ»Ø(&R)", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "¼ÓÔØ(&L)", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "ÇåÁã(&C)" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP - PUSHBUTTON "È«Çå(&A)", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP -END diff --git a/reactos/base/applications/calc/readme.txt b/reactos/base/applications/calc/readme.txt new file mode 100644 index 00000000000..036a1982c53 --- /dev/null +++ b/reactos/base/applications/calc/readme.txt @@ -0,0 +1,49 @@ + * * * * R E A C T O S - C A L C * * * * + +INTRODUCTION +============= +This is ReactOS Calc, a scientific calculator for Win32 and Win64 systems. +I decided to start this project because the winecalc wasn't very usable (it's just my personal opinion) and the calculator included into Win95 and Win98 has some big limitations, like the missing support for 64 bit integers. +The user interface of ReactOS Calc is really similar to Microsoft calculator, so you should be able to use this replacement very quickly. + +COMPILATION +============ +You need MinGW for compiling ReactOS Calc. +Just launch MAKEALL.BAT from the source directory. +This will generate all executables for various configurations and platforms. + +COMPILING THE HELP FILE +======================== +ReactOS Calc uses HTMLHELP for opening the help file and generating the popups. +The Microsoft HTMLHELP Workshop is freely downloadable from Microsoft's site at: + +http://www.microsoft.com/downloads/details.aspx?familyid=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en + +INSTALLATION +============= +CALC.CHM must be copied under %systemroot%\Help directory. +For Microsoft Windows's users, it can be \Windows\Help or \WinNT\Help. +For ReactOS's users, it must be \ReactOS\Help (at the moment the Help directory doesn't exists, so it must be created manually). + +NOTES TO REACTOS'S USERS +========================= +At the time of the write of this text, the newest version of ReactOS is 0.3.3. +While ReactOS Calc works fine with Microsoft's operating systems, there are some known issues with ReactOS: +* The keyboard is only partially working. +* At startup, the focus is visible on the Inv control. +* The selection on the various radio buttons isn't displayed correctly. +* Into the aboutbox, the color around the ReactOS's logo isn't applied. +* Into the aboutbox, the scroll bar used into the read-only edit control doesn't work (seen into the italian version). +* For some reasons, the [RET] button of the statistical box doesn't set the focus on the calculator. +* Help file and help popups don't work. + +CLOSING WORDS +============== +it's a very short readme file, I know. +Unfortunately, I'm not very good at writing user's manuals. +Although ReactOS Calc is pretty simple and I still think you should be able to understand the basic operations yourself, a good manual would be a nice presentation for new users. +Then, the next step is the translation into other languages. +If you would like to help in some way on these tasks, you are welcome. + +------------------------------------------------------------------- +Carlo Bramini, 19-12-2007 diff --git a/reactos/base/applications/calc/res/ROS_logo.bmp b/reactos/base/applications/calc/res/ROS_logo.bmp new file mode 100644 index 00000000000..ef21ef99a93 Binary files /dev/null and b/reactos/base/applications/calc/res/ROS_logo.bmp differ diff --git a/reactos/base/applications/calc/res/calc.ico b/reactos/base/applications/calc/res/calc.ico new file mode 100644 index 00000000000..8d6164a89db Binary files /dev/null and b/reactos/base/applications/calc/res/calc.ico differ diff --git a/reactos/base/applications/calc/res/calc_sm.ico b/reactos/base/applications/calc/res/calc_sm.ico new file mode 100644 index 00000000000..c33c0cd7aea Binary files /dev/null and b/reactos/base/applications/calc/res/calc_sm.ico differ diff --git a/reactos/base/applications/calc/resource.h b/reactos/base/applications/calc/resource.h index 20ee7c1d7a6..719c0980d4a 100644 --- a/reactos/base/applications/calc/resource.h +++ b/reactos/base/applications/calc/resource.h @@ -1,78 +1,118 @@ -/* - * 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 - */ +#define IDS_STRING_LICENSE 1 +#define IDS_MATH_ERROR 2 +#define IDS_QUICKHELP 3 +#define IDD_DIALOG_SCIENTIFIC 101 +#define IDR_MENU_SCIENTIFIC_1 103 +#define IDR_MENU_SCIENTIFIC_2 104 +#define IDD_DIALOG_STANDARD 104 +#define IDR_MENU_STANDARD 105 +#define IDD_DIALOG_ABOUT 105 +#define IDB_BITMAP_ROS 106 +#define IDD_DIALOG_STAT 107 +#define IDI_CALC_BIG 108 +#define IDI_CALC_SMALL 109 +#define IDC_RADIO_HEX 1002 +#define IDC_RADIO_DEC 1003 +#define IDC_RADIO_OCT 1004 +#define IDC_RADIO_BIN 1005 +#define IDC_CHECK_INV 1006 +#define IDC_CHECK_HYP 1007 +#define IDC_BUTTON_STA 1009 +#define IDC_BUTTON_AVE 1010 +#define IDC_BUTTON_SUM 1011 +#define IDC_BUTTON_S 1012 +#define IDC_BUTTON_DAT 1013 +#define IDC_BUTTON_FE 1014 +#define IDC_BUTTON_DMS 1015 +#define IDC_BUTTON_SIN 1016 +#define IDC_BUTTON_COS 1017 +#define IDC_BUTTON_TAN 1018 +#define IDC_BUTTON_LEFTPAR 1019 +#define IDC_BUTTON_EXP 1020 +#define IDC_BUTTON_XeY 1021 +#define IDC_BUTTON_Xe2 1022 +#define IDC_BUTTON_Xe3 1023 +#define IDC_BUTTON_RIGHTPAR 1024 +#define IDC_BUTTON_LN 1025 +#define IDC_BUTTON_LOG 1026 +#define IDC_BUTTON_NF 1027 +#define IDC_BUTTON_RX 1028 +#define IDC_BUTTON_MC 1029 +#define IDC_BUTTON_MR 1030 +#define IDC_BUTTON_MS 1031 +#define IDC_BUTTON_MP 1032 +#define IDC_BUTTON_PI 1033 +#define IDC_BUTTON_7 1034 +#define IDC_BUTTON_4 1035 +#define IDC_BUTTON_1 1036 +#define IDC_BUTTON_0 1037 +#define IDC_BUTTON_A 1038 +#define IDC_BUTTON_8 1039 +#define IDC_BUTTON_5 1040 +#define IDC_BUTTON_2 1041 +#define IDC_BUTTON_SIGN 1042 +#define IDC_BUTTON_B 1043 +#define IDC_BUTTON_9 1044 +#define IDC_BUTTON_6 1045 +#define IDC_BUTTON_3 1046 +#define IDC_BUTTON_DOT 1047 +#define IDC_BUTTON_C 1048 +#define IDC_BUTTON_DIV 1049 +#define IDC_BUTTON_MULT 1050 +#define IDC_BUTTON_SUB 1051 +#define IDC_BUTTON_ADD 1052 +#define IDC_BUTTON_D 1053 +#define IDC_BUTTON_MOD 1054 +#define IDC_BUTTON_OR 1055 +#define IDC_BUTTON_LSH 1056 +#define IDC_BUTTON_EQU 1057 +#define IDC_BUTTON_E 1058 +#define IDC_BUTTON_AND 1059 +#define IDC_BUTTON_XOR 1060 +#define IDC_BUTTON_NOT 1061 +#define IDC_BUTTON_INT 1062 +#define IDC_BUTTON_F 1063 +#define IDC_RADIO_QWORD 1064 +#define IDC_RADIO_DWORD 1065 +#define IDC_RADIO_WORD 1066 +#define IDC_RADIO_BYTE 1067 +#define IDC_RADIO_DEG 1068 +#define IDC_RADIO_RAD 1069 +#define IDC_RADIO_GRAD 1070 +#define IDC_BUTTON_CANC 1071 +#define IDC_BUTTON_CE 1072 +#define IDC_BUTTON_BACK 1073 +#define IDC_TEXT_OUTPUT 1074 +#define IDC_TEXT_PARENT 1075 +#define IDC_TEXT_MEMORY 1076 +#define IDC_EDIT_LICENSE 1078 +#define IDC_LIST_STAT 1079 +#define IDC_BUTTON_RET 1080 +#define IDC_BUTTON_LOAD 1081 +#define IDC_BUTTON_CD 1082 +#define IDC_BUTTON_CAD 1083 +#define IDC_TEXT_NITEMS 1084 +#define IDC_BUTTON_SQRT 1085 +#define IDC_BUTTON_PERCENT 1086 +#define IDC_TEXT_VERSION 1087 +#define IDC_BUTTON_FOCUS 1088 +#define IDM_EDIT_COPY 40002 +#define IDM_EDIT_PASTE 40003 +#define IDM_VIEW_STANDARD 40004 +#define IDM_VIEW_SCIENTIFIC 40005 +#define IDM_VIEW_HEX 40006 +#define IDM_VIEW_DEC 40007 +#define IDM_VIEW_OCT 40008 +#define IDM_VIEW_BIN 40009 +#define IDM_VIEW_DEG 40010 +#define IDM_VIEW_RAD 40011 +#define IDM_VIEW_GRAD 40012 +#define IDM_VIEW_GROUP 40013 +#define IDM_HELP_HELP 40014 +#define IDM_HELP_ABOUT 40015 +#define IDM_VIEW_QWORD 40016 +#define IDM_VIEW_WORD 40017 +#define IDM_VIEW_BYTE 40018 +#define IDM_VIEW_DWORD 40019 +#define IDM_VIEW_CONVERSION 40020 -/* 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_BTN_DEGREES 1110 -#define IDS_BTN_RADIANS 1111 -#define IDS_BTN_GRADS 1112 -#define IDS_BTN_SHRT_HEX 1113 -#define IDS_BTN_SHRT_DEC 1114 -#define IDS_BTN_SHRT_OCT 1115 -#define IDS_BTN_SHRT_BIN 1116 - - -#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 diff --git a/reactos/base/applications/calc/rsrc.rc b/reactos/base/applications/calc/resource.rc similarity index 58% rename from reactos/base/applications/calc/rsrc.rc rename to reactos/base/applications/calc/resource.rc index cab73017bd4..332bddef34c 100644 --- a/reactos/base/applications/calc/rsrc.rc +++ b/reactos/base/applications/calc/resource.rc @@ -1,12 +1,12 @@ /* - * WineCalc (rsrc.rc) + * ReactOS Calc (global resource file) * - * Copyright 2003 James Briggs + * Copyright 2007, Carlo Bramini * - * This library is free software; you can redistribute it and/or + * This program 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. + * version 2 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 @@ -19,34 +19,32 @@ */ #include + #include "resource.h" +#ifndef IDC_STATIC +#define IDC_STATIC -1 +#endif + +// Common resources + LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -IDI_CALCICON ICON "calculator.ico" +// Icons + +IDI_CALC_BIG ICON DISCARDABLE "res/calc.ico" +IDI_CALC_SMALL ICON DISCARDABLE "res/calc_sm.ico" + +// Bitmaps + +IDB_BITMAP_ROS BITMAP DISCARDABLE "res/ROS_logo.bmp" + -#include "lang/bg-BG.rc" -#include "lang/ca-ES.rc" -#include "lang/cs-CZ.rc" #include "lang/de-DE.rc" -#include "lang/el-GR.rc" #include "lang/en-US.rc" #include "lang/es-ES.rc" -#include "lang/fi-FI.rc" -#include "lang/fr-FR.rc" -#include "lang/hu-HU.rc" -#include "lang/id-ID.rc" #include "lang/it-IT.rc" -#include "lang/ja-JP.rc" -#include "lang/ko-KO.rc" -#include "lang/nb-NO.rc" -#include "lang/nl-NL.rc" #include "lang/pl-PL.rc" -#include "lang/pt-BR.rc" -#include "lang/pt-PT.rc" #include "lang/ru-RU.rc" #include "lang/sk-SK.rc" -#include "lang/sv-SE.rc" -#include "lang/th-TH.rc" #include "lang/uk-UA.rc" -#include "lang/zh-CN.rc" diff --git a/reactos/base/applications/calc/rpn.c b/reactos/base/applications/calc/rpn.c new file mode 100644 index 00000000000..1941112a912 --- /dev/null +++ b/reactos/base/applications/calc/rpn.c @@ -0,0 +1,419 @@ +#include "calc.h" + +typedef struct { + calc_number_t number; + unsigned int operation; +} calc_node_t; + +typedef struct { + calc_node_t node; + void *next; +} stack_node_t; + +typedef void (*operator_call)(calc_number_t *, calc_number_t *, calc_number_t *); + +typedef struct { + unsigned int prec; + operator_call op_f; + operator_call op_i; + operator_call op_p; +} calc_operator_t; + +static stack_node_t *stack; +static stack_node_t temp; +static BOOL percent_mode; + +static void rpn_add_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_sub_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_mul_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_div_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_mod_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_pow_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_sqr_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_and_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_or_f (calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_xor_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_shl_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); + +/* Integer mode calculations */ +static void rpn_add_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_sub_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_mul_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_div_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_mod_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_and_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_or_i (calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_xor_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_shl_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); + +/* Percentage mode calculations */ +static void rpn_add_p(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_sub_p(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_mul_p(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_div_p(calc_number_t *r, calc_number_t *a, calc_number_t *b); + +static const calc_operator_t operator_list[] = { + { 0, NULL, NULL, NULL, }, // RPN_OPERATOR_PARENT + { 0, NULL, NULL, NULL, }, // RPN_OPERATOR_PERCENT + { 0, NULL, NULL, NULL, }, // RPN_OPERATOR_EQUAL + { 1, rpn_or_f, rpn_or_i, NULL, }, // RPN_OPERATOR_OR + { 2, rpn_xor_f, rpn_xor_i, NULL, }, // RPN_OPERATOR_XOR + { 3, rpn_and_f, rpn_and_i, NULL, }, // RPN_OPERATOR_AND + { 4, rpn_shl_f, rpn_shl_i, NULL, }, // RPN_OPERATOR_LSH + { 5, rpn_add_f, rpn_add_i, rpn_add_p, }, // RPN_OPERATOR_ADD + { 5, rpn_sub_f, rpn_sub_i, rpn_sub_p, }, // RPN_OPERATOR_SUB + { 6, rpn_mul_f, rpn_mul_i, rpn_mul_p, }, // RPN_OPERATOR_MULT + { 6, rpn_div_f, rpn_div_i, rpn_div_p, }, // RPN_OPERATOR_DIV + { 6, rpn_mod_f, rpn_mod_i, NULL, }, // RPN_OPERATOR_MOD + { 7, rpn_pow_f, NULL, NULL, }, // RPN_OPERATOR_POW + { 7, rpn_sqr_f, NULL, NULL, }, // RPN_OPERATOR_SQR +}; + +static stack_node_t *pop(void) +{ + if (stack == NULL) + return NULL; + + temp = *stack; + free(stack); + stack = temp.next; + + return &temp; +} + +static int is_stack_empty(void) +{ + return (stack == NULL); +} + +static void push(stack_node_t *op) +{ + stack_node_t *z = (stack_node_t *)malloc(sizeof(stack_node_t)); + + *z = *op; + z->next = stack; + stack = z; +} +/* +static unsigned int get_prec(unsigned int opc) +{ + unsigned int x; + + for (x=0; xf = a->f + b->f; +} + +static void rpn_sub_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->f = a->f - b->f; +} + +static void rpn_mul_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->f = a->f * b->f; +} + +static void rpn_div_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + if (b->f == 0) + calc.is_nan = TRUE; + else + r->f = a->f / b->f; +} + +static void rpn_mod_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + double t; + + if (b->f == 0) + calc.is_nan = TRUE; + else { + modf(a->f/b->f, &t); + r->f = a->f - (t * b->f); + } +} + +static void rpn_and_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + calc_number_t ai, bi; + + ai.i = logic_dbl2int(a); + bi.i = logic_dbl2int(b); + + r->f = (long double)(ai.i & bi.i); +} + +static void rpn_or_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + calc_number_t ai, bi; + + ai.i = logic_dbl2int(a); + bi.i = logic_dbl2int(b); + + r->f = (long double)(ai.i | bi.i); +} + +static void rpn_xor_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + calc_number_t ai, bi; + + ai.i = logic_dbl2int(a); + bi.i = logic_dbl2int(b); + + r->f = (long double)(ai.i ^ bi.i); +} + +static void rpn_shl_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + calc_number_t ai, bi; + + ai.i = logic_dbl2int(a); + bi.i = logic_dbl2int(b); + + r->f = (long double)(ai.i << bi.i); +} + +static void rpn_pow_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->f = pow(a->f, b->f); + if (_finite(r->f) == 0 || _isnan(r->f)) + calc.is_nan = TRUE; +} + +static void rpn_sqr_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + if (b->f == 0) + calc.is_nan = TRUE; + else { + r->f = pow(a->f, 1./b->f); + if (_finite(r->f) == 0 || _isnan(r->f)) + calc.is_nan = TRUE; + } +} + +/* Integer mode calculations */ +static void rpn_add_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->i = a->i + b->i; +} + +static void rpn_sub_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->i = a->i - b->i; +} + +static void rpn_mul_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->i = a->i * b->i; +} + +static void rpn_div_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + if (b->i == 0) + calc.is_nan = TRUE; + else + r->i = a->i / b->i; +} + +static void rpn_mod_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + if (b->i == 0) + calc.is_nan = TRUE; + else + r->i = a->i % b->i; +} + +static void rpn_and_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->i = a->i & b->i; +} + +static void rpn_or_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->i = a->i | b->i; +} + +static void rpn_xor_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->i = a->i ^ b->i; +} + +static void rpn_shl_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->i = a->i << b->i; +} + +/* Percent mode calculations */ +static void rpn_add_p(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->f = a->f * (1. + b->f/100.); +} + +static void rpn_sub_p(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->f = a->f * (1. - b->f/100.); +} + +static void rpn_mul_p(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + r->f = a->f * b->f / 100.; +} + +static void rpn_div_p(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + if (b->f == 0) + calc.is_nan = TRUE; + else + r->f = a->f * 100. / b->f; +} + + +void run_operator(calc_number_t *result, + calc_number_t *a, + calc_number_t *b, + unsigned int operation) +{ + if (calc.base == IDC_RADIO_DEC) { + if (percent_mode) { + percent_mode = FALSE; + operator_list[operation].op_p(result, a, b); + } else + operator_list[operation].op_f(result, a, b); + } else { + operator_list[operation].op_i(result, a, b); + /* apply final limitator to result */ + apply_int_mask(result); + } +} + +static void evalStack(calc_number_t *number) +{ + stack_node_t *op, ip; + unsigned int prec; + + percent_mode = FALSE; + op = pop(); + ip = *op; + prec = operator_list[ip.node.operation].prec; + while (!is_stack_empty()) { + op = pop(); + + if (prec <= operator_list[op->node.operation].prec) { + if (op->node.operation == RPN_OPERATOR_PARENT) continue; + + calc.prev = ip.node.number; + run_operator(&ip.node.number, &op->node.number, &ip.node.number, op->node.operation); + if (calc.is_nan) { + flush_postfix(); + return; + } + } else { + push(op); + break; + } + } + + if(ip.node.operation != RPN_OPERATOR_EQUAL && ip.node.operation != RPN_OPERATOR_PERCENT) + push(&ip); + + calc.prev_operator = op->node.operation; + + *number = ip.node.number; +} + +int exec_infix2postfix(calc_number_t *number, unsigned int func) +{ + stack_node_t tmp; + + if (is_stack_empty() && func == RPN_OPERATOR_EQUAL) { + /* if a number has been entered with exponential */ + /* notation, I may update it with normal mode */ + if (calc.sci_in) + return 1; + return 0; + } + + tmp.node.number = *number; + tmp.node.operation = func; + + push(&tmp); + + if (func != RPN_OPERATOR_PARENT) { + calc.last_operator = func; + evalStack(number); + } + return 1; +} + +void exec_change_infix(void) +{ + stack_node_t *op = stack; + + if (op == NULL) + return; + if (op->node.operation == RPN_OPERATOR_PARENT || + op->node.operation == RPN_OPERATOR_PERCENT || + op->node.operation == RPN_OPERATOR_EQUAL) + return; + /* remove the head, it will be re-inserted with new operator */ + pop(); +} + +void exec_closeparent(calc_number_t *number) +{ + stack_node_t *op, ip; + + ip.node.number = *number; + while (!is_stack_empty()) { + op = pop(); + + if (op->node.operation == RPN_OPERATOR_PARENT) + break; + + run_operator(&ip.node.number, &op->node.number, &ip.node.number, op->node.operation); + if (calc.is_nan) { + flush_postfix(); + return; + } + } + *number = ip.node.number; +} + +int eval_parent_count(void) +{ + stack_node_t *s = stack; + int n = 0; + + while (s != NULL) { + if (s->node.operation == RPN_OPERATOR_PARENT) + n++; + s = (stack_node_t *)(s->next); + } + return n; +} + +void flush_postfix() +{ + while (!is_stack_empty()) + pop(); + /* clear prev and last typed operators */ + calc.prev_operator = + calc.last_operator = 0; +} + +void start_rpn_engine(void) +{ + stack = NULL; +} + +void stop_rpn_engine(void) +{ +} + diff --git a/reactos/base/applications/calc/rpn_mpfr.c b/reactos/base/applications/calc/rpn_mpfr.c new file mode 100644 index 00000000000..66a581c2d2c --- /dev/null +++ b/reactos/base/applications/calc/rpn_mpfr.c @@ -0,0 +1,435 @@ +#include "calc.h" + +typedef struct { + calc_number_t number; + unsigned int operation; +} calc_node_t; + +typedef struct { + calc_node_t node; + void *next; +} stack_node_t; + +typedef void (*operator_call)(calc_number_t *, calc_number_t *, calc_number_t *); + +typedef struct { + unsigned int prec; + operator_call op_f; + operator_call op_i; + operator_call op_p; +} calc_operator_t; + +static stack_node_t *stack; +static stack_node_t temp; +static BOOL percent_mode; + +static void rpn_add_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_sub_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_mul_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_div_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_pow_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_sqr_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_and_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_or_f (calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_xor_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_shl_f(calc_number_t *r, calc_number_t *a, calc_number_t *b); + +/* Integer mode calculations */ +static void rpn_add_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_sub_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_mul_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_div_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_mod_i(calc_number_t *r, calc_number_t *a, calc_number_t *b); + +/* Percentage mode calculations */ +static void rpn_add_p(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_sub_p(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_mul_p(calc_number_t *r, calc_number_t *a, calc_number_t *b); +static void rpn_div_p(calc_number_t *r, calc_number_t *a, calc_number_t *b); + +static const calc_operator_t operator_list[] = { + { 0, NULL, NULL, NULL, }, // RPN_OPERATOR_PARENT + { 0, NULL, NULL, NULL, }, // RPN_OPERATOR_PERCENT + { 0, NULL, NULL, NULL, }, // RPN_OPERATOR_EQUAL + { 1, rpn_or_f, rpn_or_f, NULL, }, // RPN_OPERATOR_OR + { 2, rpn_xor_f, rpn_xor_f, NULL, }, // RPN_OPERATOR_XOR + { 3, rpn_and_f, rpn_and_f, NULL, }, // RPN_OPERATOR_AND + { 4, rpn_shl_f, rpn_shl_f, NULL, }, // RPN_OPERATOR_LSH + { 5, rpn_add_f, rpn_add_i, rpn_add_p, }, // RPN_OPERATOR_ADD + { 5, rpn_sub_f, rpn_sub_i, rpn_sub_p, }, // RPN_OPERATOR_SUB + { 6, rpn_mul_f, rpn_mul_i, rpn_mul_p, }, // RPN_OPERATOR_MULT + { 6, rpn_div_f, rpn_div_i, rpn_div_p, }, // RPN_OPERATOR_DIV + { 6, rpn_mod_i, rpn_mod_i, NULL, }, // RPN_OPERATOR_MOD + { 7, rpn_pow_f, NULL, NULL, }, // RPN_OPERATOR_POW + { 7, rpn_sqr_f, NULL, NULL, }, // RPN_OPERATOR_SQR +}; + +static void node_copy(stack_node_t *dst, stack_node_t *src) +{ + mpfr_set(dst->node.number.mf,src->node.number.mf,MPFR_DEFAULT_RND); + dst->node.operation = src->node.operation; + dst->next = src->next; +} + +static stack_node_t *pop() +{ + if (stack == NULL) + return NULL; + + /* copy the node */ + node_copy(&temp, stack); + + /* free the node */ + mpfr_clear(stack->node.number.mf); + free(stack); + stack = temp.next; + + return &temp; +} + +static int is_stack_empty(void) +{ + return (stack == NULL); +} + +static void push(stack_node_t *op) +{ + stack_node_t *z = (stack_node_t *)malloc(sizeof(stack_node_t)); + + mpfr_init_set(z->node.number.mf,op->node.number.mf,MPFR_DEFAULT_RND); + z->node.operation = op->node.operation; + z->next = stack; + stack = z; +} +/* +static unsigned int get_prec(unsigned int opc) +{ + unsigned int x; + + for (x=0; xmf, MPFR_DEFAULT_RND); + mpfr_get_z(bi, b->mf, MPFR_DEFAULT_RND); + cb(ai, ai, bi); + mpfr_set_z(r->mf, ai, MPFR_DEFAULT_RND); + mpz_clear(ai); + mpz_clear(bi); +} + + +/* Real mode calculations */ +static void rpn_add_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + mpfr_add(r->mf, a->mf, b->mf, MPFR_DEFAULT_RND); +} + +static void rpn_sub_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + mpfr_sub(r->mf, a->mf, b->mf, MPFR_DEFAULT_RND); +} + +static void rpn_mul_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + mpfr_mul(r->mf, a->mf, b->mf, MPFR_DEFAULT_RND); +} + +static void rpn_div_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + if (mpfr_sgn(b->mf) == 0) + calc.is_nan = TRUE; + else + mpfr_div(r->mf, a->mf, b->mf, MPFR_DEFAULT_RND); +} + +static void rpn_and_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + rpn_exec_int(r, a, b, mpz_and); +} + +static void rpn_or_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + rpn_exec_int(r, a, b, mpz_ior); +} + +static void rpn_xor_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + rpn_exec_int(r, a, b, mpz_xor); +} + +static void rpn_shl_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + unsigned long e; + + mpfr_trunc(r->mf, b->mf); + if (mpfr_fits_ulong_p(r->mf, MPFR_DEFAULT_RND) == 0) + calc.is_nan = TRUE; + else { + e = mpfr_get_ui(r->mf, MPFR_DEFAULT_RND); + mpfr_mul_2exp(r->mf, a->mf, e, MPFR_DEFAULT_RND); + } +} + +static void rpn_pow_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + mpfr_pow(r->mf, a->mf, b->mf, MPFR_DEFAULT_RND); +} + +static void rpn_sqr_f(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + if (mpfr_sgn(b->mf) == 0) + calc.is_nan = TRUE; + else { + mpfr_t tmp; + + mpfr_init(tmp); + mpfr_set(tmp, b->mf, MPFR_DEFAULT_RND); + mpfr_ui_div(tmp, 1, tmp, MPFR_DEFAULT_RND); + mpfr_pow(r->mf, a->mf, tmp, MPFR_DEFAULT_RND); + mpfr_clear(tmp); + } +} + +/* Integer mode calculations */ +static void rpn_add_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + rpn_exec_int(r, a, b, mpz_add); +} + +static void rpn_sub_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + rpn_exec_int(r, a, b, mpz_sub); +} + +static void rpn_mul_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + rpn_exec_int(r, a, b, mpz_mul); +} + +static void rpn_div_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + if (mpfr_sgn(b->mf) == 0) + calc.is_nan = TRUE; + else + rpn_exec_int(r, a, b, mpz_tdiv_q); +} + +static void rpn_mod_i(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + if (mpfr_sgn(b->mf) == 0) + calc.is_nan = TRUE; + else + rpn_exec_int(r, a, b, mpz_tdiv_r); +} + +/* Percent mode calculations */ +static void rpn_add_p(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + mpfr_t tmp; + + mpfr_init(tmp); + mpfr_set(tmp, b->mf, MPFR_DEFAULT_RND); + mpfr_div_ui(tmp, tmp, 100, MPFR_DEFAULT_RND); + mpfr_add_ui(tmp, tmp, 1, MPFR_DEFAULT_RND); + mpfr_mul(r->mf, a->mf, tmp, MPFR_DEFAULT_RND); + mpfr_clear(tmp); +} + +static void rpn_sub_p(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + mpfr_t tmp; + + mpfr_init(tmp); + mpfr_set(tmp, b->mf, MPFR_DEFAULT_RND); + mpfr_div_ui(tmp, tmp, 100, MPFR_DEFAULT_RND); + mpfr_sub_ui(tmp, tmp, 1, MPFR_DEFAULT_RND); + mpfr_mul(r->mf, a->mf, tmp, MPFR_DEFAULT_RND); + mpfr_clear(tmp); +} + +static void rpn_mul_p(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + mpfr_mul(r->mf, a->mf, b->mf, MPFR_DEFAULT_RND); + mpfr_div_ui(r->mf, r->mf, 100, MPFR_DEFAULT_RND); +} + +static void rpn_div_p(calc_number_t *r, calc_number_t *a, calc_number_t *b) +{ + if (mpfr_sgn(b->mf) == 0) + calc.is_nan = TRUE; + else { + mpfr_mul_ui(r->mf, a->mf, 100, MPFR_DEFAULT_RND); + mpfr_div(r->mf, r->mf, b->mf, MPFR_DEFAULT_RND); + } +} + + +void run_operator(calc_number_t *result, + calc_number_t *a, + calc_number_t *b, + unsigned int operation) +{ + if (calc.base == IDC_RADIO_DEC) { + if (percent_mode) { + percent_mode = FALSE; + operator_list[operation].op_p(result, a, b); + } else + operator_list[operation].op_f(result, a, b); + } else { + operator_list[operation].op_i(result, a, b); + /* apply final limitator to result */ + apply_int_mask(result); + } +} + +static void evalStack(calc_number_t *number) +{ + stack_node_t *op, ip; + unsigned int prec; + + mpfr_init(ip.node.number.mf); + percent_mode = FALSE; + op = pop(); + node_copy(&ip, op); + prec = operator_list[ip.node.operation].prec; + while (!is_stack_empty()) { + op = pop(); + + if (prec <= operator_list[op->node.operation].prec) { + if (op->node.operation == RPN_OPERATOR_PARENT) continue; + + rpn_copy(&calc.prev, &ip.node.number); + run_operator(&ip.node.number, &op->node.number, &ip.node.number, op->node.operation); + if (calc.is_nan) { + flush_postfix(); + mpfr_clear(ip.node.number.mf); + return; + } + } else { + push(op); + break; + } + } + + if(ip.node.operation != RPN_OPERATOR_EQUAL && ip.node.operation != RPN_OPERATOR_PERCENT) + push(&ip); + + calc.prev_operator = op->node.operation; + + rpn_copy(number, &ip.node.number); + mpfr_clear(ip.node.number.mf); +} + +int exec_infix2postfix(calc_number_t *number, unsigned int func) +{ + stack_node_t tmp; + + if (is_stack_empty() && func == RPN_OPERATOR_EQUAL) { + /* if a number has been entered with exponential */ + /* notation, I may update it with normal mode */ + if (calc.sci_in) + return 1; + return 0; + } + + mpfr_init(tmp.node.number.mf); + rpn_copy(&tmp.node.number, number); + tmp.node.operation = func; + + push(&tmp); + mpfr_clear(tmp.node.number.mf); + + if (func != RPN_OPERATOR_PARENT) { + calc.last_operator = func; + evalStack(number); + } + return 1; +} + +void exec_change_infix(void) +{ + stack_node_t *op = stack; + + if (op == NULL) + return; + if (op->node.operation == RPN_OPERATOR_PARENT || + op->node.operation == RPN_OPERATOR_PERCENT || + op->node.operation == RPN_OPERATOR_EQUAL) + return; + /* remove the head, it will be re-inserted with new operator */ + pop(); +} + +void exec_closeparent(calc_number_t *number) +{ + stack_node_t *op, ip; + + rpn_copy(&ip.node.number, number); + while (!is_stack_empty()) { + op = pop(); + + if (op->node.operation == RPN_OPERATOR_PARENT) + break; + + run_operator(&ip.node.number, &op->node.number, &ip.node.number, op->node.operation); + if (calc.is_nan) { + flush_postfix(); + return; + } + } + rpn_copy(number, &ip.node.number); +} + +int eval_parent_count(void) +{ + stack_node_t *s = stack; + int n = 0; + + while (s != NULL) { + if (s->node.operation == RPN_OPERATOR_PARENT) + n++; + s = (stack_node_t *)(s->next); + } + return n; +} + +void flush_postfix() +{ + while (!is_stack_empty()) + pop(); + /* clear prev and last typed operators */ + calc.prev_operator = + calc.last_operator = 0; +} + +void start_rpn_engine(void) +{ + mpf_set_default_prec(512); + mpfr_set_default_prec(512); + stack = NULL; + mpfr_init(calc.code.mf); + mpfr_init(calc.prev.mf); + mpfr_init(calc.memory.mf); + mpfr_init(temp.node.number.mf); +} + +void stop_rpn_engine(void) +{ + mpfr_clear(calc.code.mf); + mpfr_clear(calc.prev.mf); + mpfr_clear(calc.memory.mf); + mpfr_clear(temp.node.number.mf); +} diff --git a/reactos/base/applications/calc/stats.c b/reactos/base/applications/calc/stats.c deleted file mode 100644 index 32b029c106e..00000000000 --- a/reactos/base/applications/calc/stats.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - * 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 // sprintf - -#include -#include - -#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; -} - diff --git a/reactos/base/applications/calc/stats.h b/reactos/base/applications/calc/stats.h deleted file mode 100644 index 8ce6135ba39..00000000000 --- a/reactos/base/applications/calc/stats.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * 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 ); - - - diff --git a/reactos/base/applications/calc/todo.txt b/reactos/base/applications/calc/todo.txt new file mode 100644 index 00000000000..414e1069751 --- /dev/null +++ b/reactos/base/applications/calc/todo.txt @@ -0,0 +1,3 @@ +* Translators for the user interfaces and the help texts. +* Use correct symbols for math functions (square root, etc...) +* Implements conversion dialog box. diff --git a/reactos/base/applications/calc/utl.c b/reactos/base/applications/calc/utl.c new file mode 100644 index 00000000000..745ff265fc3 --- /dev/null +++ b/reactos/base/applications/calc/utl.c @@ -0,0 +1,105 @@ +#include "calc.h" + +void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base) +{ + TCHAR *ptr, *dst; + calc_number_t tmp; + int width; + + switch (base) { + case IDC_RADIO_HEX: + _stprintf(buffer, TEXT("%I64X"), rpn->i); + break; + case IDC_RADIO_DEC: +/* + * Modifed from 17 to 16 for fixing this bug: + * 14+14+6.3+6.3= 40.5999999 instead of 40.6 + * So, it's probably better to leave the least + * significant digit out of the display. + */ +#define MAX_LD_WIDTH 16 + /* calculate the width of integer number */ + width = (rpn->f==0) ? 1 : (int)log10(fabs(rpn->f))+1; + if (calc.sci_out == TRUE || width > MAX_LD_WIDTH || width < -MAX_LD_WIDTH) + ptr = buffer + _stprintf(buffer, TEXT("%#le"), rpn->f); + else { + ptr = buffer + _stprintf(buffer, TEXT("%#*.*lf"), width, ((MAX_LD_WIDTH-width-1)>=0) ? MAX_LD_WIDTH-width-1 : 0, rpn->f); + dst = _tcschr(buffer, TEXT('.')); + while (--ptr > dst) + if (*ptr != TEXT('0')) + break; + + /* put the string terminator for removing the final '0' (if any) */ + ptr[1] = TEXT('\0'); + /* check if the number finishes with '.' */ + if (ptr == dst) + /* remove the dot (it will be re-added later) */ + ptr[0] = TEXT('\0'); + } +#undef MAX_LD_WIDTH + break; + case IDC_RADIO_OCT: + _stprintf(buffer, TEXT("%I64o"), rpn->i); + break; + case IDC_RADIO_BIN: + if (rpn->i == 0) { + buffer[0] = TEXT('0'); + buffer[1] = TEXT('\0'); + break; + } + tmp = *rpn; + buffer[0] = TEXT('\0'); + while (tmp.u) { + memmove(buffer+1, buffer, (size-1)*sizeof(TCHAR)); + if (tmp.u & 1) + calc.buffer[0] = TEXT('1'); + else + calc.buffer[0] = TEXT('0'); + tmp.u >>= 1; + } + break; + } +} + +void convert_text2number_2(calc_number_t *a) +{ + TCHAR *ptr; + + switch (calc.base) { + case IDC_RADIO_HEX: + _stscanf(calc.buffer, TEXT("%I64X"), &(a->i)); + break; + case IDC_RADIO_DEC: + _stscanf(calc.buffer, TEXT("%lf"), &(a->f)); + break; + case IDC_RADIO_OCT: + _stscanf(calc.buffer, TEXT("%I64o"), &(a->i)); + break; + case IDC_RADIO_BIN: + ptr = calc.buffer; + a->i = 0; + while (*ptr != TEXT('\0')) { + a->i <<= 1; + if (*ptr++ == TEXT('1')) + a->i |= 1; + } + break; + } +} + +void convert_real_integer(unsigned int base) +{ + switch (base) { + case IDC_RADIO_DEC: + calc.code.f = (double)calc.code.i; + break; + case IDC_RADIO_OCT: + case IDC_RADIO_BIN: + case IDC_RADIO_HEX: + if (calc.base == IDC_RADIO_DEC) { + calc.code.i = (__int64)calc.code.f; + apply_int_mask(&calc.code); + } + break; + } +} diff --git a/reactos/base/applications/calc/utl_mpfr.c b/reactos/base/applications/calc/utl_mpfr.c new file mode 100644 index 00000000000..3afd27eb36b --- /dev/null +++ b/reactos/base/applications/calc/utl_mpfr.c @@ -0,0 +1,131 @@ +#include "calc.h" + +void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base) +{ + char temp[1024]; + char *ptr, *dst; + int width; + unsigned long int n, q; + mpz_t zz; + mpf_t ff; + + mpz_init(zz); + mpf_init(ff); + mpfr_get_z(zz, rpn->mf, MPFR_DEFAULT_RND); + mpfr_get_f(ff, rpn->mf, MPFR_DEFAULT_RND); + + switch (base) { + case IDC_RADIO_HEX: + gmp_sprintf(temp, "%ZX", zz); + break; + case IDC_RADIO_DEC: +#define MAX_LD_WIDTH 64 + /* calculate the width of integer number */ + if (mpf_sgn(ff) == 0) + width = 1; + else { + mpfr_t t; + mpfr_init(t); + mpfr_abs(t, rpn->mf, MPFR_DEFAULT_RND); + mpfr_log10(t, t, MPFR_DEFAULT_RND); + width = 1 + mpfr_get_si(t, MPFR_DEFAULT_RND); + mpfr_clear(t); + } + if (calc.sci_out == TRUE || width > MAX_LD_WIDTH || width < -MAX_LD_WIDTH) + ptr = temp + gmp_sprintf(temp, "%*.*#Fe", 1, MAX_LD_WIDTH, ff); + else { + ptr = temp + gmp_sprintf(temp, "%#*.*Ff", width, ((MAX_LD_WIDTH-width-1)>=0) ? MAX_LD_WIDTH-width-1 : 0, ff); + dst = strchr(temp, '.'); + while (--ptr > dst) + if (*ptr != '0') + break; + + /* put the string terminator for removing the final '0' (if any) */ + ptr[1] = '\0'; + /* check if the number finishes with '.' */ + if (ptr == dst) + /* remove the dot (it will be re-added later) */ + ptr[0] = '\0'; + } +#undef MAX_LD_WIDTH + break; + case IDC_RADIO_OCT: + gmp_sprintf(temp, "%Zo", zz); + break; + case IDC_RADIO_BIN: + /* if the number is zero, just write 0 ;) */ + if (rpn_is_zero(rpn)) { + temp[0] = TEXT('0'); + temp[1] = TEXT('\0'); + break; + } + /* repeat until a bit set to '1' is found */ + n = 0; + do { + q = mpz_scan1(zz, n); + if (q == ULONG_MAX) + break; + while (n < q) + temp[n++] = '0'; + temp[n++] = '1'; + } while (1); + /* now revert the string into TCHAR buffer */ + for (q=0; qmf, temp, NULL, base, MPFR_DEFAULT_RND); +#else + mpfr_strtofr(a->mf, calc.buffer, NULL, base, MPFR_DEFAULT_RND); +#endif +} + +void convert_real_integer(unsigned int base) +{ + switch (base) { + case IDC_RADIO_DEC: + break; + case IDC_RADIO_OCT: + case IDC_RADIO_BIN: + case IDC_RADIO_HEX: + if (calc.base == IDC_RADIO_DEC) { + mpfr_trunc(calc.code.mf, calc.code.mf); + apply_int_mask(&calc.code); + } + break; + } +} + diff --git a/reactos/base/applications/calc/whatsnew.txt b/reactos/base/applications/calc/whatsnew.txt new file mode 100644 index 00000000000..d0dbf6c15b3 --- /dev/null +++ b/reactos/base/applications/calc/whatsnew.txt @@ -0,0 +1,69 @@ +1.07 (20071219) +======================= +* Added support for GNU multi-precision libraries. LibGMP and LibMPFR are required for compiling ReactOS Calc with big number support. +* When calculating the standard deviation, the population can be 'n' or 'n-1' as the true Microsoft Calculator does. +* Unified language support: just one executable for all. +* Fixed type bug into CopyMemToClipboard() when compiled with WideChar support. +* The code for handling the memory functions has been simplified and now it calls directly the RPN engine. +* Fixed bug into statistical window, when uploading numbers with different bases. +* Fixed bug into integer limitation: now if the selection changes on QWORD, DWORD, WORD or BYTE, then the result is modified immediately. +* Fixed bug signaled by remi-aldo about a the precision issue. +* Fixed bug into shortcuts from keyboard: modulo shortcut was missing. +* Implemented coloured buttons. +* ReactOS Calc has been compiled for working with x86-64 (still untested on the real hardware). + +1.06 (20070518) +======================= +* The decimal separator is copied into the clipboard, but only if it has been typed by the user. +* Now the [+/-] button can change the sign of any number into the output display. +* Added italian translation of the help file. + +1.05 (20070503) +======================= +* Fixed bug when the following input keys are pressed: [0] [.] [+/-] and another number, then the dot and the sign were lost. +* The ERROR message at division by zero is displayed again. +* [Exp] button won't work if the output display is zero (0e+100 is always zero). +* Now [.] can start a number directly: if it is pressed when display is empty then "0." is pushed automatically. + +1.04 (20070430) +======================= +* Fixed a bug when zero is the first number entered. +* The change of the sign +/- doesn't work if the display is empty or zero. +* Added logical operators into decimal mode (obviously, only the integer part is processed). +* Fixed decimal precision to highest possible resolution. +* Decimal point and thousand separator are now regional dependant. +* Added memory subtraction and memory swap commands. +* Added 2*PI constant (generated by "inv"+"pi"). +* Added Help popups for calculator functions. +* Added User's manual and Help file support. +* Now the PASTE menu command is disabled if the clipboard doesn't store good data. +* Fixed bug with BACK button. +* Fixed ":q" command from clipboard to the 'cancel' button. + +1.03 (20070404) +======================= +* Added double-click check on statistic window. +* Fixed focus selection when switching from statistic window with RET button. +* EQUAL button will now reduce a number entered with exponential notation (if it's possible). +* Version number was not updated to 1.02 in previous version. + +1.02 (20070402) +======================= +* Fixed a "copy-paste" error into hyperbolic functions. +* Now context menu is enabled only when child controls are clicked. + +1.01 (20070331) +======================= +* Fixed english translation for "Radians" and "Gradians". +* Corrected conversion between radians and gradians angles. +* Added work-around for catching keys without the keyboard hook (selectable at compile time). +* The version number of the programme has been moved from the resource files to ABOUT.C. +* "DOT" function can be used for starting a number (integer part will be zero). +* Added repeat function. +* If the number is grater than maximum resolution, it will be displayed with exponential notation. +* Removed mouse and keyboard focuses from displayed buttons. +* Added normal and small icons. + +1.00 (20070323) +======================= +* First write. diff --git a/reactos/base/applications/calc/winecalc.c b/reactos/base/applications/calc/winecalc.c deleted file mode 100644 index a069b8c3844..00000000000 --- a/reactos/base/applications/calc/winecalc.c +++ /dev/null @@ -1,3876 +0,0 @@ -/* - * WineCalc (winecalc.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 // sprintf -#include -#include - -#include -#include -// #include - -#include "winecalc.h" -#include "dialog.h" -#include "stats.h" -#include "resource.h" - -// lame M$ math library doesn't support hyp functions -//#ifdef _MSC_VER -#define atanh(X) atan(X) -#define asinh(X) asin(X) -#define acosh(X) acos(X) -//#endif - -// How winecalc works -// -// 1. In the original calculator, numbers are "extended precision". -// We emulate with calcfloat (calcfloat floating point) for now. -// Note that recent M$ compilers 5.0 and later do not implement double float, -// and do not support 80-bit numbers. Max width is 64-bits. -// -// 2. 4 temp areas: -// -// i) current edit buffer value for keystrokes -// ii) computed value area for last computation -// iii) memory area for MR, MC, MS, M+ -// iv) formatted display buffer -// -// 3. Memory Store works off current buffer, not value -// -// 4. display limit is 32 numbers plus 10 commas plus one period = 43 characters -// -// 5. original calc is better called SciCalc and saves settings in win.ini: -// -// [SciCalc] -// layout=1 (0 = scientific mode, 1 = basic mode) -// UseSep=1 (0 = no digits separator, 1 = enable digits separator) -// -// 6. Window Menus -// -// The menus know their own states, so we don't need to track them -// When switching to Standard Calculator Mode, number base is changed to Decimal and Trig Mode to Degrees, -// but Word Size Mode is unchanged -// -// 7. It would be nice to add command line parsing for batch files -// - -// various display error messages - -static TCHAR err_invalid [CALC_BUF_SIZE]; -static TCHAR err_divide_by_zero [CALC_BUF_SIZE]; -static TCHAR err_undefined [CALC_BUF_SIZE]; - -// calculator state is kept here - -CALC calc; - -static RECT rFiller; - -static int keys[CALC_NS_COUNT]['f'+1]; // note: sparse array - -// map from button press to calc[] index -// 0, ... 9, A, B, C, D, E, F,FE,DMS,SIN,COS,TAN,EXP, PI -static const int h[] = { - 0, 0, 33, 34, 21, 22, 23, 10, 11, 12, 54, 55, 56 ,57, 58 ,59, 6, 17, 28, 39, 50, 18, 53 }; - -// enable status of various buttons on sci mode depending on number base -static const int btn_toggle[CALC_NS_COUNT][TOGGLE_COUNT] = -// 0, ... 9, A, B, C, D, E, F,FE,DMS,SIN,COS,TAN,EXP,PI -{ - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 }, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 }, - { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,0 } -}; - -static int hms[] = { 64, 65, 66 }; -static int hws[] = { 69, 70, 71, 72 }; - -static int sta[] = { 16, 27, 38, 49 }; - -static HMENU menus[3]; - -static TCHAR appname[40]; - -static int debug; - -int parse(int wParam, int lParam); - -HWND hWndDlgStats; - -extern HWND hWndListBox; - -HINSTANCE hInstance; - -int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdline, int cmdshow ) -{ - MSG msg; - WNDCLASS wc; - HWND hWnd; - HACCEL haccel; - TCHAR s[CALC_BUF_SIZE]; - int r; - - hInstance = hInst; - - r = GetProfileString(TEXT("SciCalc"), - TEXT("layout"), - TEXT("0"), - s, - CALC_BUF_SIZE - ); - - calc.sciMode = _ttoi(s); - - if (calc.sciMode != 0 && - calc.sciMode != 1) - calc.sciMode = 1; // Standard Mode - - r = GetProfileString(TEXT("SciCalc"), - TEXT("UseSep"), - TEXT("0"), - s, - CALC_BUF_SIZE - ); - - calc.digitGrouping = _ttoi(s); - - if (calc.digitGrouping != 0 && - calc.digitGrouping != 1) - calc.digitGrouping = 1; - - calc.new = 1; // initialize struct values - - if (!LoadString( hInst, IDS_APPNAME, appname, sizeof(appname) / sizeof(appname[0]))) - exit(1); - if (!LoadString( hInst, IDS_ERR_INVALID_INPUT, err_invalid, sizeof(err_invalid) / sizeof(err_invalid[0]))) - exit(1); - if (!LoadString( hInst, IDS_ERR_DIVIDE_BY_ZERO, err_divide_by_zero, sizeof(err_divide_by_zero) / sizeof(err_divide_by_zero[0]))) - exit(1); - if (!LoadString( hInst, IDS_ERR_UNDEFINED, err_undefined, sizeof(err_undefined) / sizeof(err_undefined[0]))) - exit(1); - - wc.style = CS_HREDRAW | CS_VREDRAW; - wc.lpfnWndProc = MainProc; - wc.cbClsExtra = 0; - wc.cbWndExtra = 0; - wc.hInstance = hInst; - wc.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_CALCICON)); - wc.hCursor = LoadCursor( NULL, IDI_APPLICATION ); - wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1); - wc.lpszMenuName = NULL; - wc.lpszClassName = appname; - - if (!RegisterClass(&wc)) exit(1); - - hWnd = CreateWindow( appname, - appname, - WS_CLIPSIBLINGS | (WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX), - CW_USEDEFAULT, - CW_USEDEFAULT, - calc.sciMode ? CALC_STANDARD_WIDTH : CALC_SCIENTIFIC_WIDTH, - calc.sciMode ? CALC_STANDARD_HEIGHT : CALC_SCIENTIFIC_HEIGHT, - NULL, - NULL, - hInst, - NULL ); - - if (!hWnd) - exit(1); - - ShowWindow( hWnd, cmdshow ); - UpdateWindow( hWnd ); - - if (!(haccel = LoadAccelerators(hInst, TEXT("MAIN_MENU")))) - exit(1); - - while( GetMessage(&msg, NULL, 0, 0) ) { - if (hWndDlgStats == 0 || !IsDialogMessage(hWndDlgStats, &msg)) { - if (!TranslateAccelerator( hWnd, haccel, &msg )) { - TranslateMessage( &msg ); - DispatchMessage( &msg ); - } - } - } - - return msg.wParam; -} - -LRESULT WINAPI MainProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - HDC hdc; - PAINTSTRUCT ps; - - switch (msg) { - - case WM_CREATE: - calc.hInst = ((LPCREATESTRUCT) lParam)->hInstance; - calc.hWnd = hWnd; - - InitLuts(); - InitCalc( &calc ); - InitMenus(calc.hInst); - - if (calc.sciMode) - SetMenu(hWnd, menus[MENU_STD]); - else - SetMenu(hWnd, menus[MENU_SCIMS]); - - calc_buffer_display(&calc); - - return 0; - - case WM_PAINT: - { - HDC hMemDC; - - hdc = BeginPaint( hWnd, &ps ); - hMemDC = CreateCompatibleDC( hdc ); - - DrawCalc( hdc, hMemDC, &ps, &calc ); - - DeleteDC( hMemDC ); - EndPaint( hWnd, &ps ); - - return 0; - } - - case WM_MOVE: - calc.pos.x = (unsigned) LOWORD(lParam); - calc.pos.y = (unsigned) HIWORD(lParam); - return 0; - - case WM_DESTROY: - { - int r; - TCHAR s[CALC_BUF_SIZE]; - - _stprintf(s, TEXT("%d"), calc.sciMode); - r = WriteProfileString(TEXT("SciCalc"), TEXT("layout"), s); - - _stprintf(s, TEXT("%d"), calc.digitGrouping); - r = WriteProfileString(TEXT("SciCalc"), TEXT("UseSep"), s); - } - - DestroyCalc( &calc ); - DestroyMenus(); - PostQuitMessage( 0 ); - return 0; - - case WM_KEYDOWN: - switch (wParam) { - - case VK_F1: - calc.next = 1; - MessageBox(hWnd, TEXT("No Help Available"), TEXT("Windows Help"), MB_OK); - return 0; - - case VK_F2: // DWORD - - calc.next = 1; - if (!calc.sciMode) { - if (calc.numBase == NBASE_DECIMAL) - SendMessage(hWnd, WM_COMMAND, ID_CALC_MS_DEGREES, lParam); - else - SendMessage(hWnd, WM_COMMAND, ID_CALC_WS_DWORD, lParam); - } - return 0; - - case VK_F3: // WORD - - calc.next = 1; - if (!calc.sciMode) { - if (calc.numBase == NBASE_DECIMAL) - SendMessage(hWnd, WM_COMMAND, ID_CALC_MS_RADIANS, lParam); - else - SendMessage(hWnd, WM_COMMAND, ID_CALC_WS_WORD, lParam); - } - return 0; - - case VK_F4: // Byte - - // Grad - calc.next = 1; - if (!calc.sciMode) { - if (calc.numBase == NBASE_DECIMAL) - SendMessage(hWnd, WM_COMMAND, ID_CALC_MS_GRADS, lParam); - else - SendMessage(hWnd, WM_COMMAND, ID_CALC_WS_BYTE, lParam); - } - return 0; - - case VK_F5: // Hex - - calc.next = 1; - if (!calc.sciMode) - SendMessage(hWnd, WM_COMMAND, ID_CALC_NS_HEX, lParam); - return 0; - - case VK_F6: // Decimal - - calc.next = 1; - if (!calc.sciMode) - SendMessage(hWnd, WM_COMMAND, ID_CALC_NS_DEC, lParam); - return 0; - - case VK_F7: // Octal - - calc.next = 1; - if (!calc.sciMode) - SendMessage(hWnd, WM_COMMAND, ID_CALC_NS_OCT, lParam); - return 0; - - case VK_F8: // Binary - - calc.next = 1; - if (!calc.sciMode) - SendMessage(hWnd, WM_COMMAND, ID_CALC_NS_BIN, lParam); - return 0; - - case VK_F12: // QWORD - - calc.next = 1; - if (!calc.sciMode) - SendMessage(hWnd, WM_COMMAND, ID_CALC_WS_QWORD, lParam); - return 0; - - case VK_F9: // +/- - - if (!calc.sciMode) - SendMessage(hWnd, WM_CHAR, 'Z', lParam); - return 0; - - case VK_INSERT: // Dat - calc.next = 1; - SendMessage(hWndListBox, LB_INSERTSTRING, -1, (LPARAM)calc.buffer); - InvalidateRect(hWndDlgStats, NULL, TRUE); // update list count at bottom edge of dialog - UpdateWindow(hWndDlgStats); - return 0; - - case VK_DELETE: - - calc.next = 1; - calc.buffer[0] = TEXT('\0'); - calc_buffer_display(&calc); - return 0; - - default: - break; - } - - return 0; - - case WM_CHAR: - if (debug) - show_debug(&calc, TEXT("Start WM_CHAR"), wParam, lParam); - - switch (wParam) { - - case TEXT('\x13'): // Ctrl+S Sta Statistics - - if (hWndDlgStats) { // Statistics Box already displayed, focus but don't create another one - // SetFocus(hWndDlgStats); - // SendMessage(hWndDlgStats, WM_SETFOCUS, 0, 0); - } - else { - int i; - - if (lParam == 1) { - for (i=0;i<4;i++) - EnableWindow((HWND)calc.cb[sta[i]].hBtn, FALSE); - } - else { - for (i=0;i<4;i++) - EnableWindow((HWND)calc.cb[sta[i]].hBtn, TRUE); - - hWndDlgStats = CreateDialog( // modeless dialog - calc.hInst, // handle to application instance - TEXT("DLG_STATS"), // identifies dialog box template name - hWnd, // handle to owner window - StatsDlgProc); // pointer to dialog box procedure - - if (!hWndDlgStats) - exit(1); - - SendMessage(hWndDlgStats, WM_SETFOCUS, 0, 0); - } - } - - break; - - case TEXT('\x01'): // Ctrl+A Ave Statistics - case TEXT('\x04'): // Ctrl+D s Standard Deviation Statistics - case TEXT('\x14'): // Ctrl+T Sum Statistics - { - int i; - int n; - - TCHAR s[CALC_BUF_SIZE]; - double val = 0L; - double avg = 0L; - double total = 0L; - double x[1024]; - - // This is all lame. Here we are querying the list control for items and calculating the total. - // We should have an array of intermediate results to work with to avoid roundoff errors, etc. - - n = SendMessage(hWndListBox, LB_GETCOUNT, 0, 0); - - for (i=0;i= TEXT('0') && c <= TEXT('9')) || - (c >= TEXT('a') && c <= TEXT('f')) || - (c >= TEXT('A') && c <= TEXT('F')))) { - - SendMessage(hWnd, WM_CHAR, c, lParam); - } - else if ((calc.numBase == NBASE_DECIMAL) && - (c >= TEXT('0') && c <= TEXT('9'))) { - SendMessage(hWnd, WM_CHAR, c, lParam); - } - else if ((calc.numBase == NBASE_OCTAL) && - (c >= TEXT('0') && c <= TEXT('7'))) { - SendMessage(hWnd, WM_CHAR, c, lParam); - } - else if ((calc.numBase == NBASE_BINARY) && - (c == TEXT('0') || c == TEXT('1'))) { - SendMessage(hWnd, WM_CHAR, c, lParam); - } - else if (c == TEXT('.') || c == TEXT(',') || - c == TEXT('e') || c == TEXT('E') || - c == TEXT('+') || c == TEXT('-')) { - SendMessage(hWnd, WM_CHAR, c, lParam); - } - else if (c == TEXT(' ') || // eat harmless trash here - c == TEXT(';') || - c == TEXT(':')) { - ; // noop - } - else { // extra spicy trash gets noticed - - MessageBeep(0); // uh, beeps can get annoying. maybe rate limit. - } - } - } - } - } - } - - break; - default: - { - parse(wParam, lParam); - } - } // switch WM_CHAR - - calc_buffer_display(&calc); - return 0; - - case WM_COMMAND: - switch(LOWORD(wParam)) { - - case IDM_COPY: - SendMessage(hWnd, WM_CHAR, TEXT('\x03'), lParam); - return 0; - - case IDM_PASTE: - SendMessage(hWnd, WM_CHAR, TEXT('\x16'), lParam); - return 0; - - case IDM_MODE_STANDARD: - if (!calc.sciMode) { - int i; - RECT lpRect; - - calc.sciMode = 1; - calc.trigMode = TRIGMODE_DEGREES; - calc.numBase = NBASE_DECIMAL; - - EnableWindow(hWnd, FALSE); - - - for (i=1;ihInst; - HFONT hFont = GetStockObject(DEFAULT_GUI_FONT); - - calc->trigMode = TRIGMODE_DEGREES; - calc->numBase = NBASE_DECIMAL; - calc->init = 1; - - if (calc->new) { - calc->new = 0; - calc->value = 0; - calc->memory = 0; - calc->displayMode = 0; - calc->buffer[0] = TEXT('\0'); - _tcscpy(calc->display, TEXT("0.")); - - calc->err = 0; - calc->next = TEXT('\0'); - - calc->wordSize = WORDSIZE_QWORD; - calc->invMode = 0; - calc->hypMode = 0; - } - - if (calc->sciMode) { - calc->numButtons = CALC_BUTTONS_STANDARD; - - // Row 1 (top) - - skipx = MARGIN_LEFT; - skipy = CALC_STANDARD_MARGIN_TOP + CALC_EDIT_HEIGHT; - - calc->cb[0].id = 0; - _tcscpy(calc->cb[0].label,TEXT("FILLER")); - calc->cb[0].color = CALC_COLOR_BLUE; - calc->cb[0].r.left = skipx + 4; - calc->cb[0].r.top = skipy + 2; - calc->cb[0].r.right = skipx + SZ_FILLER_X - 2; - calc->cb[0].r.bottom = skipy + SZ_FILLER_Y - 2; - calc->cb[0].enable = 1; - - skipx = SZ_FILLER_X + MARGIN_STANDARD_BIG_X + 11; - - calc->cb[1].id = ID_CALC_BACKSPACE; - LoadString( hInst, IDS_BTN_BACKSPACE, calc->cb[1].label, sizeof(calc->cb[1].label) / sizeof(calc->cb[1].label[0])); - calc->cb[1].color = CALC_COLOR_RED; - calc->cb[1].r.left = skipx; - calc->cb[1].r.top = skipy; - calc->cb[1].r.right = SZ_BIGBTN_X; - calc->cb[1].r.bottom = SZ_BIGBTN_Y; - calc->cb[1].enable = 1; - - skipx += SZ_BIGBTN_X + MARGIN_SMALL_X; - - calc->cb[2].id = ID_CALC_CLEAR_ENTRY; - LoadString( hInst, IDS_BTN_CLEAR_ENTRY, calc->cb[2].label, sizeof(calc->cb[2].label) / sizeof(calc->cb[2].label[0])); - calc->cb[2].color = CALC_COLOR_RED; - calc->cb[2].r.left = skipx; - calc->cb[2].r.top = skipy; - calc->cb[2].r.right = SZ_BIGBTN_X; - calc->cb[2].r.bottom = SZ_BIGBTN_Y; - calc->cb[2].enable = 1; - - skipx += SZ_BIGBTN_X + MARGIN_SMALL_X; - - calc->cb[3].id = ID_CALC_CLEAR_ALL; - LoadString( hInst, IDS_BTN_CLEAR_ALL, calc->cb[3].label, sizeof(calc->cb[3].label) / sizeof(calc->cb[3].label[0])); - calc->cb[3].color = CALC_COLOR_RED; - calc->cb[3].r.left = skipx; - calc->cb[3].r.top = skipy; - calc->cb[3].r.right = SZ_BIGBTN_X; - calc->cb[3].r.bottom = SZ_BIGBTN_Y; - calc->cb[3].enable = 1; - - // Row 2 - - skipx = MARGIN_LEFT; - skipy += SZ_BIGBTN_Y + MARGIN_BIG_Y; - - calc->cb[4].id = ID_CALC_MEM_CLEAR; - LoadString( hInst, IDS_BTN_MEM_CLEAR, calc->cb[4].label, sizeof(calc->cb[4].label) / sizeof(calc->cb[4].label[0])); - calc->cb[4].color = CALC_COLOR_RED; - calc->cb[4].r.left = skipx; - calc->cb[4].r.top = skipy; - calc->cb[4].r.right = SZ_MEDBTN_X; - calc->cb[4].r.bottom = SZ_MEDBTN_Y; - calc->cb[4].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_STANDARD_BIG_X; - - calc->cb[5].id = ID_CALC_SEVEN; - _tcscpy(calc->cb[5].label,TEXT("7")); - calc->cb[5].color = CALC_COLOR_BLUE; - calc->cb[5].r.left = skipx; - calc->cb[5].r.top = skipy; - calc->cb[5].r.right = SZ_MEDBTN_X; - calc->cb[5].r.bottom = SZ_MEDBTN_Y; - calc->cb[5].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[6].id = ID_CALC_EIGHT; - _tcscpy(calc->cb[6].label,TEXT("8")); - calc->cb[6].color = CALC_COLOR_BLUE; - calc->cb[6].r.left = skipx; - calc->cb[6].r.top = skipy; - calc->cb[6].r.right = SZ_MEDBTN_X; - calc->cb[6].r.bottom = SZ_MEDBTN_Y; - calc->cb[6].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[7].id = ID_CALC_NINE; - _tcscpy(calc->cb[7].label,TEXT("9")); - calc->cb[7].color = CALC_COLOR_BLUE; - calc->cb[7].r.left = skipx; - calc->cb[7].r.top = skipy; - calc->cb[7].r.right = SZ_MEDBTN_X; - calc->cb[7].r.bottom = SZ_MEDBTN_Y; - calc->cb[7].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[8].id = ID_CALC_DIVIDE; - _tcscpy(calc->cb[8].label,TEXT("/")); - calc->cb[8].color = CALC_COLOR_RED; - calc->cb[8].r.left = skipx; - calc->cb[8].r.top = skipy; - calc->cb[8].r.right = SZ_MEDBTN_X; - calc->cb[8].r.bottom = SZ_MEDBTN_Y; - calc->cb[8].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[9].id = ID_CALC_SQRT; - LoadString( hInst, IDS_BTN_SQRT, calc->cb[9].label, sizeof(calc->cb[9].label) / sizeof(calc->cb[9].label[0])); - calc->cb[9].color = CALC_COLOR_BLUE; - calc->cb[9].r.left = skipx; - calc->cb[9].r.top = skipy; - calc->cb[9].r.right = SZ_MEDBTN_X; - calc->cb[9].r.bottom = SZ_MEDBTN_Y; - calc->cb[9].enable = 1; - - // Row 3 - - skipx = MARGIN_LEFT; - skipy += SZ_MEDBTN_Y + MARGIN_SMALL_Y; - - calc->cb[10].id = ID_CALC_MEM_RECALL; - LoadString( hInst, IDS_BTN_MEM_RECALL, calc->cb[10].label, sizeof(calc->cb[10].label) / sizeof(calc->cb[10].label[0])); - calc->cb[10].color = CALC_COLOR_RED; - calc->cb[10].r.left = skipx; - calc->cb[10].r.top = skipy; - calc->cb[10].r.right = SZ_MEDBTN_X; - calc->cb[10].r.bottom = SZ_MEDBTN_Y; - calc->cb[10].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_STANDARD_BIG_X; - - calc->cb[11].id = ID_CALC_FOUR; - _tcscpy(calc->cb[11].label,TEXT("4")); - calc->cb[11].color = CALC_COLOR_BLUE; - calc->cb[11].r.left = skipx; - calc->cb[11].r.top = skipy; - calc->cb[11].r.right = SZ_MEDBTN_X; - calc->cb[11].r.bottom = SZ_MEDBTN_Y; - calc->cb[11].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[12].id = ID_CALC_FIVE; - _tcscpy(calc->cb[12].label,TEXT("5")); - calc->cb[12].color = CALC_COLOR_BLUE; - calc->cb[12].r.left = skipx; - calc->cb[12].r.top = skipy; - calc->cb[12].r.right = SZ_MEDBTN_X; - calc->cb[12].r.bottom = SZ_MEDBTN_Y; - calc->cb[12].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[13].id = ID_CALC_SIX; - _tcscpy(calc->cb[13].label,TEXT("6")); - calc->cb[13].color = CALC_COLOR_BLUE; - calc->cb[13].r.left = skipx; - calc->cb[13].r.top = skipy; - calc->cb[13].r.right = SZ_MEDBTN_X; - calc->cb[13].r.bottom = SZ_MEDBTN_Y; - calc->cb[13].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[14].id = ID_CALC_MULTIPLY; - _tcscpy(calc->cb[14].label,TEXT("*")); - calc->cb[14].color = CALC_COLOR_RED; - calc->cb[14].r.left = skipx; - calc->cb[14].r.top = skipy; - calc->cb[14].r.right = SZ_MEDBTN_X; - calc->cb[14].r.bottom = SZ_MEDBTN_Y; - calc->cb[14].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[15].id = ID_CALC_PERCENT; - _tcscpy(calc->cb[15].label,TEXT("%")); - calc->cb[15].color = CALC_COLOR_BLUE; - calc->cb[15].r.left = skipx; - calc->cb[15].r.top = skipy; - calc->cb[15].r.right = SZ_MEDBTN_X; - calc->cb[15].r.bottom = SZ_MEDBTN_Y; - calc->cb[15].enable = 1; - - // Row 4 - - skipx = MARGIN_LEFT; - skipy += SZ_MEDBTN_Y + MARGIN_SMALL_Y; - - calc->cb[16].id = ID_CALC_MEM_STORE; - LoadString( hInst, IDS_BTN_MEM_STORE, calc->cb[16].label, sizeof(calc->cb[16].label) / sizeof(calc->cb[16].label[0])); - calc->cb[16].color = CALC_COLOR_RED; - calc->cb[16].r.left = skipx; - calc->cb[16].r.top = skipy; - calc->cb[16].r.right = SZ_MEDBTN_X; - calc->cb[16].r.bottom = SZ_MEDBTN_Y; - calc->cb[16].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_STANDARD_BIG_X; - - calc->cb[17].id = ID_CALC_ONE; - _tcscpy(calc->cb[17].label,TEXT("1")); - calc->cb[17].color = CALC_COLOR_BLUE; - calc->cb[17].r.left = skipx; - calc->cb[17].r.top = skipy; - calc->cb[17].r.right = SZ_MEDBTN_X; - calc->cb[17].r.bottom = SZ_MEDBTN_Y; - calc->cb[17].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[18].id = ID_CALC_TWO; - _tcscpy(calc->cb[18].label,TEXT("2")); - calc->cb[18].color = CALC_COLOR_BLUE; - calc->cb[18].r.left = skipx; - calc->cb[18].r.top = skipy; - calc->cb[18].r.right = SZ_MEDBTN_X; - calc->cb[18].r.bottom = SZ_MEDBTN_Y; - calc->cb[18].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[19].id = ID_CALC_THREE; - _tcscpy(calc->cb[19].label,TEXT("3")); - calc->cb[19].color = CALC_COLOR_BLUE; - calc->cb[19].r.left = skipx; - calc->cb[19].r.top = skipy; - calc->cb[19].r.right = SZ_MEDBTN_X; - calc->cb[19].r.bottom = SZ_MEDBTN_Y; - calc->cb[19].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[20].id = ID_CALC_MINUS; - _tcscpy(calc->cb[20].label,TEXT("-")); - calc->cb[20].color = CALC_COLOR_RED; - calc->cb[20].r.left = skipx; - calc->cb[20].r.top = skipy; - calc->cb[20].r.right = SZ_MEDBTN_X; - calc->cb[20].r.bottom = SZ_MEDBTN_Y; - calc->cb[20].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[21].id = ID_CALC_RECIPROCAL; - _tcscpy(calc->cb[21].label,TEXT("1/x")); - calc->cb[21].color = CALC_COLOR_RED; - calc->cb[21].r.left = skipx; - calc->cb[21].r.top = skipy; - calc->cb[21].r.right = SZ_MEDBTN_X; - calc->cb[21].r.bottom = SZ_MEDBTN_Y; - calc->cb[21].enable = 1; - - // Row 5 (bottom) - - skipx = MARGIN_LEFT; - skipy += SZ_MEDBTN_Y + MARGIN_SMALL_Y; - - calc->cb[22].id = ID_CALC_MEM_PLUS; - LoadString( hInst, IDS_BTN_MEM_PLUS, calc->cb[22].label, sizeof(calc->cb[22].label) / sizeof(calc->cb[22].label[0])); - calc->cb[22].color = CALC_COLOR_RED; - calc->cb[22].r.left = skipx; - calc->cb[22].r.top = skipy; - calc->cb[22].r.right = SZ_MEDBTN_X; - calc->cb[22].r.bottom = SZ_MEDBTN_Y; - calc->cb[22].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_STANDARD_BIG_X; - - calc->cb[23].id = ID_CALC_ZERO; - _tcscpy(calc->cb[23].label,TEXT("0")); - calc->cb[23].color = CALC_COLOR_BLUE; - calc->cb[23].r.left = skipx; - calc->cb[23].r.top = skipy; - calc->cb[23].r.right = SZ_MEDBTN_X; - calc->cb[23].r.bottom = SZ_MEDBTN_Y; - calc->cb[23].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[24].id = ID_CALC_SIGN; - _tcscpy(calc->cb[24].label,TEXT("+/-")); - calc->cb[24].color = CALC_COLOR_RED; - calc->cb[24].r.left = skipx; - calc->cb[24].r.top = skipy; - calc->cb[24].r.right = SZ_MEDBTN_X; - calc->cb[24].r.bottom = SZ_MEDBTN_Y; - calc->cb[24].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[25].id = ID_CALC_DECIMAL; - _tcscpy(calc->cb[25].label,TEXT(".")); - calc->cb[25].color = CALC_COLOR_BLUE; - calc->cb[25].r.left = skipx; - calc->cb[25].r.top = skipy; - calc->cb[25].r.right = SZ_MEDBTN_X; - calc->cb[25].r.bottom = SZ_MEDBTN_Y; - calc->cb[25].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[26].id = ID_CALC_PLUS; - _tcscpy(calc->cb[26].label,TEXT("+")); - calc->cb[26].color = CALC_COLOR_RED; - calc->cb[26].r.left = skipx; - calc->cb[26].r.top = skipy; - calc->cb[26].r.right = SZ_MEDBTN_X; - calc->cb[26].r.bottom = SZ_MEDBTN_Y; - calc->cb[26].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[27].id = ID_CALC_EQUALS; - _tcscpy(calc->cb[27].label,TEXT("=")); - calc->cb[27].color = CALC_COLOR_RED; - calc->cb[27].r.left = skipx; - calc->cb[27].r.top = skipy; - calc->cb[27].r.right = SZ_MEDBTN_X; - calc->cb[27].r.bottom = SZ_MEDBTN_Y; - calc->cb[27].enable = 1; - } - else { - calc->numButtons = CALC_BUTTONS_SCIENTIFIC; - - // Row 1 (top) - - skipx = MARGIN_LEFT; - skipy = CALC_SCIENTIFIC_MARGIN_TOP + CALC_EDIT_HEIGHT - 1; - - calc->cb[0].id = 0; - _tcscpy(calc->cb[0].label,TEXT("FILLER")); - calc->cb[0].color = CALC_COLOR_BLUE; - calc->cb[0].r.left = skipx + 4 * SZ_MEDBTN_X + 2 * SZ_SPACER_X + 2 * MARGIN_SMALL_X + 12; - calc->cb[0].r.top = skipy; - calc->cb[0].r.right = skipx + 4 * SZ_MEDBTN_X + 2 * SZ_SPACER_X + 2 * MARGIN_SMALL_X + SZ_FILLER_X + 4; - calc->cb[0].r.bottom = skipy + SZ_FILLER_Y - 6; - calc->cb[0].enable = 1; - - calc->cb[1].id = 0; - _tcscpy(calc->cb[1].label,TEXT("FILLER")); - calc->cb[1].color = CALC_COLOR_BLUE; - calc->cb[1].r.left = skipx + 3 * SZ_MEDBTN_X + SZ_SPACER_X + 2 * MARGIN_SMALL_X + 8; - calc->cb[1].r.top = skipy; - calc->cb[1].r.right = skipx + 3 * SZ_MEDBTN_X + SZ_SPACER_X + 2 * MARGIN_SMALL_X + SZ_FILLER_X + 0; - calc->cb[1].r.bottom = skipy + SZ_FILLER_Y - 6; - calc->cb[1].enable = 1; - - skipx += SZ_FILLER_X + MARGIN_SMALL_X; - - skipx = MARGIN_BIG_X; - - calc->cb[2].id = ID_CALC_BACKSPACE; - LoadString( hInst, IDS_BTN_BACKSPACE, calc->cb[2].label, sizeof(calc->cb[2].label) / sizeof(calc->cb[2].label[0])); - calc->cb[2].color = CALC_COLOR_RED; - calc->cb[2].r.left = skipx; - calc->cb[2].r.top = skipy; - calc->cb[2].r.right = SZ_BIGBTN_X; - calc->cb[2].r.bottom = SZ_BIGBTN_Y; - calc->cb[2].enable = 1; - - skipx += SZ_BIGBTN_X + MARGIN_SMALL_X; - - calc->cb[3].id = ID_CALC_CLEAR_ENTRY; - LoadString( hInst, IDS_BTN_CLEAR_ENTRY, calc->cb[3].label, sizeof(calc->cb[3].label) / sizeof(calc->cb[3].label[0])); - calc->cb[3].color = CALC_COLOR_RED; - calc->cb[3].r.left = skipx; - calc->cb[3].r.top = skipy; - calc->cb[3].r.right = SZ_BIGBTN_X; - calc->cb[3].r.bottom = SZ_BIGBTN_Y; - calc->cb[3].enable = 1; - - skipx += SZ_BIGBTN_X + MARGIN_SMALL_X; - - calc->cb[4].id = ID_CALC_CLEAR_ALL; - LoadString( hInst, IDS_BTN_CLEAR_ALL, calc->cb[4].label, sizeof(calc->cb[4].label) / sizeof(calc->cb[4].label[0])); - calc->cb[4].color = CALC_COLOR_RED; - calc->cb[4].r.left = skipx; - calc->cb[4].r.top = skipy; - calc->cb[4].r.right = SZ_BIGBTN_X; - calc->cb[4].r.bottom = SZ_BIGBTN_Y; - calc->cb[4].enable = 1; - - // Row 2 - - skipx = MARGIN_LEFT; - skipy += SZ_MEDBTN_Y + MARGIN_SMALL_Y; - - calc->cb[5].id = ID_CALC_STA; - _tcscpy(calc->cb[5].label,TEXT("Sta")); - calc->cb[5].color = CALC_COLOR_GRAY; - calc->cb[5].r.left = skipx; - calc->cb[5].r.top = skipy; - calc->cb[5].r.right = SZ_MEDBTN_X; - calc->cb[5].r.bottom = SZ_MEDBTN_Y; - calc->cb[5].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[6].id = ID_CALC_FE; - _tcscpy(calc->cb[6].label,TEXT("F-E")); - calc->cb[6].color = CALC_COLOR_MAGENTA; - calc->cb[6].r.left = skipx; - calc->cb[6].r.top = skipy; - calc->cb[6].r.right = SZ_MEDBTN_X; - calc->cb[6].r.bottom = SZ_MEDBTN_Y; - calc->cb[6].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[7].id = ID_CALC_LEFTPAREN; - _tcscpy(calc->cb[7].label,TEXT("(")); - calc->cb[7].color = CALC_COLOR_MAGENTA; - calc->cb[7].r.left = skipx; - calc->cb[7].r.top = skipy; - calc->cb[7].r.right = SZ_MEDBTN_X; - calc->cb[7].r.bottom = SZ_MEDBTN_Y; - calc->cb[7].enable = 0; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[8].id = ID_CALC_RIGHTPAREN; - _tcscpy(calc->cb[8].label,TEXT(")")); - calc->cb[8].color = CALC_COLOR_MAGENTA; - calc->cb[8].r.left = skipx; - calc->cb[8].r.top = skipy; - calc->cb[8].r.right = SZ_MEDBTN_X; - calc->cb[8].r.bottom = SZ_MEDBTN_Y; - calc->cb[8].enable = 0; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[9].id = ID_CALC_MEM_CLEAR; - LoadString( hInst, IDS_BTN_MEM_CLEAR, calc->cb[9].label, sizeof(calc->cb[9].label) / sizeof(calc->cb[9].label[0])); - calc->cb[9].color = CALC_COLOR_RED; - calc->cb[9].r.left = skipx; - calc->cb[9].r.top = skipy; - calc->cb[9].r.right = SZ_MEDBTN_X; - calc->cb[9].r.bottom = SZ_MEDBTN_Y; - calc->cb[9].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[10].id = ID_CALC_SEVEN; - _tcscpy(calc->cb[10].label,TEXT("7")); - calc->cb[10].color = CALC_COLOR_BLUE; - calc->cb[10].r.left = skipx; - calc->cb[10].r.top = skipy; - calc->cb[10].r.right = SZ_MEDBTN_X; - calc->cb[10].r.bottom = SZ_MEDBTN_Y; - calc->cb[10].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[11].id = ID_CALC_EIGHT; - _tcscpy(calc->cb[11].label,TEXT("8")); - calc->cb[11].color = CALC_COLOR_BLUE; - calc->cb[11].r.left = skipx; - calc->cb[11].r.top = skipy; - calc->cb[11].r.right = SZ_MEDBTN_X; - calc->cb[11].r.bottom = SZ_MEDBTN_Y; - calc->cb[11].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[12].id = ID_CALC_NINE; - _tcscpy(calc->cb[12].label,TEXT("9")); - calc->cb[12].color = CALC_COLOR_BLUE; - calc->cb[12].r.left = skipx; - calc->cb[12].r.top = skipy; - calc->cb[12].r.right = SZ_MEDBTN_X; - calc->cb[12].r.bottom = SZ_MEDBTN_Y; - calc->cb[12].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[13].id = ID_CALC_DIVIDE; - _tcscpy(calc->cb[13].label,TEXT("/")); - calc->cb[13].color = CALC_COLOR_RED; - calc->cb[13].r.left = skipx; - calc->cb[13].r.top = skipy; - calc->cb[13].r.right = SZ_MEDBTN_X; - calc->cb[13].r.bottom = SZ_MEDBTN_Y; - calc->cb[13].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[14].id = ID_CALC_MOD; - _tcscpy(calc->cb[14].label,TEXT("Mod")); - calc->cb[14].color = CALC_COLOR_RED; - calc->cb[14].r.left = skipx; - calc->cb[14].r.top = skipy; - calc->cb[14].r.right = SZ_MEDBTN_X; - calc->cb[14].r.bottom = SZ_MEDBTN_Y; - calc->cb[14].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[15].id = ID_CALC_AND; - _tcscpy(calc->cb[15].label,TEXT("And")); - calc->cb[15].color = CALC_COLOR_RED; - calc->cb[15].r.left = skipx; - calc->cb[15].r.top = skipy; - calc->cb[15].r.right = SZ_MEDBTN_X; - calc->cb[15].r.bottom = SZ_MEDBTN_Y; - calc->cb[15].enable = 1; - - // Row 3 - - skipx = MARGIN_LEFT; - skipy += SZ_MEDBTN_Y + MARGIN_SMALL_Y; - - calc->cb[16].id = ID_CALC_AVE; - _tcscpy(calc->cb[16].label,TEXT("Ave")); - calc->cb[16].color = CALC_COLOR_GRAY; - calc->cb[16].r.left = skipx; - calc->cb[16].r.top = skipy; - calc->cb[16].r.right = SZ_MEDBTN_X; - calc->cb[16].r.bottom = SZ_MEDBTN_Y; - calc->cb[16].enable = 0; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[17].id = ID_CALC_DMS; - _tcscpy(calc->cb[17].label,TEXT("dms")); - calc->cb[17].color = CALC_COLOR_MAGENTA; - calc->cb[17].r.left = skipx; - calc->cb[17].r.top = skipy; - calc->cb[17].r.right = SZ_MEDBTN_X; - calc->cb[17].r.bottom = SZ_MEDBTN_Y; - calc->cb[17].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[18].id = ID_CALC_EXP; - _tcscpy(calc->cb[18].label,TEXT("Exp")); - calc->cb[18].color = CALC_COLOR_MAGENTA; - calc->cb[18].r.left = skipx; - calc->cb[18].r.top = skipy; - calc->cb[18].r.right = SZ_MEDBTN_X; - calc->cb[18].r.bottom = SZ_MEDBTN_Y; - calc->cb[18].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[19].id = ID_CALC_LN; - _tcscpy(calc->cb[19].label,TEXT("ln")); - calc->cb[19].color = CALC_COLOR_MAGENTA; - calc->cb[19].r.left = skipx; - calc->cb[19].r.top = skipy; - calc->cb[19].r.right = SZ_MEDBTN_X; - calc->cb[19].r.bottom = SZ_MEDBTN_Y; - calc->cb[19].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[20].id = ID_CALC_MEM_RECALL; - _tcscpy(calc->cb[20].label,TEXT("MR")); - calc->cb[20].color = CALC_COLOR_RED; - calc->cb[20].r.left = skipx; - calc->cb[20].r.top = skipy; - calc->cb[20].r.right = SZ_MEDBTN_X; - calc->cb[20].r.bottom = SZ_MEDBTN_Y; - calc->cb[20].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[21].id = ID_CALC_FOUR; - _tcscpy(calc->cb[21].label,TEXT("4")); - calc->cb[21].color = CALC_COLOR_BLUE; - calc->cb[21].r.left = skipx; - calc->cb[21].r.top = skipy; - calc->cb[21].r.right = SZ_MEDBTN_X; - calc->cb[21].r.bottom = SZ_MEDBTN_Y; - calc->cb[21].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[22].id = ID_CALC_FIVE; - _tcscpy(calc->cb[22].label,TEXT("5")); - calc->cb[22].color = CALC_COLOR_BLUE; - calc->cb[22].r.left = skipx; - calc->cb[22].r.top = skipy; - calc->cb[22].r.right = SZ_MEDBTN_X; - calc->cb[22].r.bottom = SZ_MEDBTN_Y; - calc->cb[22].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[23].id = ID_CALC_SIX; - _tcscpy(calc->cb[23].label,TEXT("6")); - calc->cb[23].color = CALC_COLOR_BLUE; - calc->cb[23].r.left = skipx; - calc->cb[23].r.top = skipy; - calc->cb[23].r.right = SZ_MEDBTN_X; - calc->cb[23].r.bottom = SZ_MEDBTN_Y; - calc->cb[23].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[24].id = ID_CALC_MULTIPLY; - _tcscpy(calc->cb[24].label,TEXT("*")); - calc->cb[24].color = CALC_COLOR_RED; - calc->cb[24].r.left = skipx; - calc->cb[24].r.top = skipy; - calc->cb[24].r.right = SZ_MEDBTN_X; - calc->cb[24].r.bottom = SZ_MEDBTN_Y; - calc->cb[24].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[25].id = ID_CALC_OR; - _tcscpy(calc->cb[25].label,TEXT("Or")); - calc->cb[25].color = CALC_COLOR_RED; - calc->cb[25].r.left = skipx; - calc->cb[25].r.top = skipy; - calc->cb[25].r.right = SZ_MEDBTN_X; - calc->cb[25].r.bottom = SZ_MEDBTN_Y; - calc->cb[25].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[26].id = ID_CALC_XOR; - _tcscpy(calc->cb[26].label,TEXT("Xor")); - calc->cb[26].color = CALC_COLOR_RED; - calc->cb[26].r.left = skipx; - calc->cb[26].r.top = skipy; - calc->cb[26].r.right = SZ_MEDBTN_X; - calc->cb[26].r.bottom = SZ_MEDBTN_Y; - calc->cb[26].enable = 1; - - // Row 4 - - skipx = MARGIN_LEFT; - skipy += SZ_MEDBTN_Y + MARGIN_SMALL_Y; - - calc->cb[27].id = ID_CALC_SUM; - _tcscpy(calc->cb[27].label,TEXT("Sum")); - calc->cb[27].color = CALC_COLOR_GRAY; - calc->cb[27].r.left = skipx ; - calc->cb[27].r.top = skipy; - calc->cb[27].r.right = SZ_MEDBTN_X; - calc->cb[27].r.bottom = SZ_MEDBTN_Y; - calc->cb[27].enable = 0; - - skipx += MARGIN_SMALL_X + SZ_MEDBTN_X + SZ_SPACER_X; - - calc->cb[28].id = ID_CALC_SIN; - _tcscpy(calc->cb[28].label,TEXT("sin")); - calc->cb[28].color = CALC_COLOR_MAGENTA; - calc->cb[28].r.left = skipx; - calc->cb[28].r.top = skipy; - calc->cb[28].r.right = SZ_MEDBTN_X; - calc->cb[28].r.bottom = SZ_MEDBTN_Y; - calc->cb[28].enable = 1; - - skipx += MARGIN_SMALL_X + SZ_MEDBTN_X; - - calc->cb[29].id = ID_CALC_POWER ; - _tcscpy(calc->cb[29].label,TEXT("x^y")); - calc->cb[29].color = CALC_COLOR_MAGENTA; - calc->cb[29].r.left = skipx; - calc->cb[29].r.top = skipy; - calc->cb[29].r.right = SZ_MEDBTN_X; - calc->cb[29].r.bottom = SZ_MEDBTN_Y; - calc->cb[29].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[30].id = ID_CALC_LOG10; - _tcscpy(calc->cb[30].label,TEXT("log")); - calc->cb[30].color = CALC_COLOR_MAGENTA; - calc->cb[30].r.left = skipx; - calc->cb[30].r.top = skipy; - calc->cb[30].r.right = SZ_MEDBTN_X; - calc->cb[30].r.bottom = SZ_MEDBTN_Y; - calc->cb[30].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[31].id = ID_CALC_MEM_STORE; - LoadString( hInst, IDS_BTN_MEM_STORE, calc->cb[31].label, sizeof(calc->cb[31].label) / sizeof(calc->cb[31].label[0])); - calc->cb[31].color = CALC_COLOR_RED; - calc->cb[31].r.left = skipx; - calc->cb[31].r.top = skipy; - calc->cb[31].r.right = SZ_MEDBTN_X; - calc->cb[31].r.bottom = SZ_MEDBTN_Y; - calc->cb[31].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[32].id = ID_CALC_ONE; - _tcscpy(calc->cb[32].label,TEXT("1")); - calc->cb[32].color = CALC_COLOR_BLUE; - calc->cb[32].r.left = skipx; - calc->cb[32].r.top = skipy; - calc->cb[32].r.right = SZ_MEDBTN_X; - calc->cb[32].r.bottom = SZ_MEDBTN_Y; - calc->cb[32].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[33].id = ID_CALC_TWO; - _tcscpy(calc->cb[33].label,TEXT("2")); - calc->cb[33].color = CALC_COLOR_BLUE; - calc->cb[33].r.left = skipx; - calc->cb[33].r.top = skipy; - calc->cb[33].r.right = SZ_MEDBTN_X; - calc->cb[33].r.bottom = SZ_MEDBTN_Y; - calc->cb[33].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[34].id = ID_CALC_THREE; - _tcscpy(calc->cb[34].label,TEXT("3")); - calc->cb[34].color = CALC_COLOR_BLUE; - calc->cb[34].r.left = skipx; - calc->cb[34].r.top = skipy; - calc->cb[34].r.right = SZ_MEDBTN_X; - calc->cb[34].r.bottom = SZ_MEDBTN_Y; - calc->cb[34].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[35].id = ID_CALC_MINUS; - _tcscpy(calc->cb[35].label,TEXT("-")); - calc->cb[35].color = CALC_COLOR_RED; - calc->cb[35].r.left = skipx; - calc->cb[35].r.top = skipy; - calc->cb[35].r.right = SZ_MEDBTN_X; - calc->cb[35].r.bottom = SZ_MEDBTN_Y; - calc->cb[35].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[36].id = ID_CALC_LSH; - _tcscpy(calc->cb[36].label,TEXT("Lsh")); - calc->cb[36].color = CALC_COLOR_RED; - calc->cb[36].r.left = skipx; - calc->cb[36].r.top = skipy; - calc->cb[36].r.right = SZ_MEDBTN_X; - calc->cb[36].r.bottom = SZ_MEDBTN_Y; - calc->cb[36].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[37].id = ID_CALC_NOT; - _tcscpy(calc->cb[37].label,TEXT("Not")); - calc->cb[37].color = CALC_COLOR_RED; - calc->cb[37].r.left = skipx; - calc->cb[37].r.top = skipy; - calc->cb[37].r.right = SZ_MEDBTN_X; - calc->cb[37].r.bottom = SZ_MEDBTN_Y; - calc->cb[37].enable = 1; - - // Row 5 (bottom) - - skipx = MARGIN_LEFT; - skipy += SZ_MEDBTN_Y + MARGIN_SMALL_Y; - - calc->cb[38].id = ID_CALC_S; - _tcscpy(calc->cb[38].label,TEXT("s")); - calc->cb[38].color = CALC_COLOR_GRAY; - calc->cb[38].r.left = skipx; - calc->cb[38].r.top = skipy; - calc->cb[38].r.right = SZ_MEDBTN_X; - calc->cb[38].r.bottom = SZ_MEDBTN_Y; - calc->cb[38].enable = 0; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[39].id = ID_CALC_COS; - _tcscpy(calc->cb[39].label,TEXT("cos")); - calc->cb[39].color = CALC_COLOR_MAGENTA; - calc->cb[39].r.left = skipx; - calc->cb[39].r.top = skipy; - calc->cb[39].r.right = SZ_MEDBTN_X; - calc->cb[39].r.bottom = SZ_MEDBTN_Y; - calc->cb[39].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[40].id = ID_CALC_CUBE; - _tcscpy(calc->cb[40].label,TEXT("x^3")); - calc->cb[40].color = CALC_COLOR_MAGENTA; - calc->cb[40].r.left = skipx; - calc->cb[40].r.top = skipy; - calc->cb[40].r.right = SZ_MEDBTN_X; - calc->cb[40].r.bottom = SZ_MEDBTN_Y; - calc->cb[40].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[41].id = ID_CALC_FACTORIAL; - _tcscpy(calc->cb[41].label,TEXT("n!")); - calc->cb[41].color = CALC_COLOR_MAGENTA; - calc->cb[41].r.left = skipx; - calc->cb[41].r.top = skipy; - calc->cb[41].r.right = SZ_MEDBTN_X; - calc->cb[41].r.bottom = SZ_MEDBTN_Y; - calc->cb[41].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[42].id = ID_CALC_MEM_PLUS; - LoadString( hInst, IDS_BTN_MEM_PLUS, calc->cb[42].label, sizeof(calc->cb[42].label) / sizeof(calc->cb[42].label[0])); - calc->cb[42].color = CALC_COLOR_RED; - calc->cb[42].r.left = skipx; - calc->cb[42].r.top = skipy; - calc->cb[42].r.right = SZ_MEDBTN_X; - calc->cb[42].r.bottom = SZ_MEDBTN_Y; - calc->cb[42].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[43].id = ID_CALC_ZERO; - _tcscpy(calc->cb[43].label,TEXT("0")); - calc->cb[43].color = CALC_COLOR_BLUE; - calc->cb[43].r.left = skipx; - calc->cb[43].r.top = skipy; - calc->cb[43].r.right = SZ_MEDBTN_X; - calc->cb[43].r.bottom = SZ_MEDBTN_Y; - calc->cb[43].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[44].id = ID_CALC_SIGN; - _tcscpy(calc->cb[44].label,TEXT("+/-")); - calc->cb[44].color = CALC_COLOR_RED; - calc->cb[44].r.left = skipx; - calc->cb[44].r.top = skipy; - calc->cb[44].r.right = SZ_MEDBTN_X; - calc->cb[44].r.bottom = SZ_MEDBTN_Y; - calc->cb[44].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[45].id = ID_CALC_DECIMAL; - _tcscpy(calc->cb[45].label,TEXT(".")); - calc->cb[45].color = CALC_COLOR_BLUE; - calc->cb[45].r.left = skipx; - calc->cb[45].r.top = skipy; - calc->cb[45].r.right = SZ_MEDBTN_X; - calc->cb[45].r.bottom = SZ_MEDBTN_Y; - calc->cb[45].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[46].id = ID_CALC_PLUS; - _tcscpy(calc->cb[46].label,TEXT("+")); - calc->cb[46].color = CALC_COLOR_RED; - calc->cb[46].r.left = skipx; - calc->cb[46].r.top = skipy; - calc->cb[46].r.right = SZ_MEDBTN_X; - calc->cb[46].r.bottom = SZ_MEDBTN_Y; - calc->cb[46].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[47].id = ID_CALC_EQUALS; - _tcscpy(calc->cb[47].label,TEXT("=")); - calc->cb[47].color = CALC_COLOR_RED; - calc->cb[47].r.left = skipx; - calc->cb[47].r.top = skipy; - calc->cb[47].r.right = SZ_MEDBTN_X; - calc->cb[47].r.bottom = SZ_MEDBTN_Y; - calc->cb[47].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[48].id = ID_CALC_INT; - _tcscpy(calc->cb[48].label,TEXT("Int")); - calc->cb[48].color = CALC_COLOR_RED; - calc->cb[48].r.left = skipx; - calc->cb[48].r.top = skipy; - calc->cb[48].r.right = SZ_MEDBTN_X; - calc->cb[48].r.bottom = SZ_MEDBTN_Y; - calc->cb[48].enable = 1; - - - // Row 6 - - skipx = MARGIN_LEFT; - skipy += SZ_MEDBTN_Y + MARGIN_SMALL_Y; - - calc->cb[49].id = ID_CALC_DAT; - _tcscpy(calc->cb[49].label,TEXT("Dat")); - calc->cb[49].color = CALC_COLOR_GRAY; - calc->cb[49].r.left = skipx; - calc->cb[49].r.top = skipy; - calc->cb[49].r.right = SZ_MEDBTN_X; - calc->cb[49].r.bottom = SZ_MEDBTN_Y; - calc->cb[49].enable = 0; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[50].id = ID_CALC_TAN; - _tcscpy(calc->cb[50].label,TEXT("tan")); - calc->cb[50].color = CALC_COLOR_MAGENTA; - calc->cb[50].r.left = skipx; - calc->cb[50].r.top = skipy; - calc->cb[50].r.right = SZ_MEDBTN_X; - calc->cb[50].r.bottom = SZ_MEDBTN_Y; - calc->cb[50].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[51].id = ID_CALC_SQUARE; - _tcscpy(calc->cb[51].label,TEXT("x^2")); - calc->cb[51].color = CALC_COLOR_MAGENTA; - calc->cb[51].r.left = skipx; - calc->cb[51].r.top = skipy; - calc->cb[51].r.right = SZ_MEDBTN_X; - calc->cb[51].r.bottom = SZ_MEDBTN_Y; - calc->cb[51].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[52].id = ID_CALC_RECIPROCAL; - _tcscpy(calc->cb[52].label,TEXT("1/x")); - calc->cb[52].color = CALC_COLOR_MAGENTA; - calc->cb[52].r.left = skipx; - calc->cb[52].r.top = skipy; - calc->cb[52].r.right = SZ_MEDBTN_X; - calc->cb[52].r.bottom = SZ_MEDBTN_Y; - calc->cb[52].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[53].id = ID_CALC_PI; - _tcscpy(calc->cb[53].label,TEXT("pi")); - calc->cb[53].color = CALC_COLOR_BLUE; - calc->cb[53].r.left = skipx; - calc->cb[53].r.top = skipy; - calc->cb[53].r.right = SZ_MEDBTN_X; - calc->cb[53].r.bottom = SZ_MEDBTN_Y; - calc->cb[53].enable = 1; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X + SZ_SPACER_X; - - calc->cb[54].id = ID_CALC_A; - _tcscpy(calc->cb[54].label,TEXT("A")); - calc->cb[54].color = CALC_COLOR_GRAY; - calc->cb[54].r.left = skipx; - calc->cb[54].r.top = skipy; - calc->cb[54].r.right = SZ_MEDBTN_X; - calc->cb[54].r.bottom = SZ_MEDBTN_Y; - calc->cb[54].enable = 0; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[55].id = ID_CALC_B; - _tcscpy(calc->cb[55].label,TEXT("B")); - calc->cb[55].color = CALC_COLOR_GRAY; - calc->cb[55].r.left = skipx; - calc->cb[55].r.top = skipy; - calc->cb[55].r.right = SZ_MEDBTN_X; - calc->cb[55].r.bottom = SZ_MEDBTN_Y; - calc->cb[55].enable = 0; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[56].id = ID_CALC_C; - _tcscpy(calc->cb[56].label,TEXT("C")); - calc->cb[56].color = CALC_COLOR_GRAY; - calc->cb[56].r.left = skipx; - calc->cb[56].r.top = skipy; - calc->cb[56].r.right = SZ_MEDBTN_X; - calc->cb[56].r.bottom = SZ_MEDBTN_Y; - calc->cb[56].enable = 0; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[57].id = ID_CALC_D; - _tcscpy(calc->cb[57].label,TEXT("D")); - calc->cb[57].color = CALC_COLOR_GRAY; - calc->cb[57].r.left = skipx; - calc->cb[57].r.top = skipy; - calc->cb[57].r.right = SZ_MEDBTN_X; - calc->cb[57].r.bottom = SZ_MEDBTN_Y; - calc->cb[57].enable = 0; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[58].id = ID_CALC_E; - _tcscpy(calc->cb[58].label,TEXT("E")); - calc->cb[58].color = CALC_COLOR_GRAY; - calc->cb[58].r.left = skipx; - calc->cb[58].r.top = skipy; - calc->cb[58].r.right = SZ_MEDBTN_X; - calc->cb[58].r.bottom = SZ_MEDBTN_Y; - calc->cb[58].enable = 0; - - skipx += SZ_MEDBTN_X + MARGIN_SMALL_X; - - calc->cb[59].id = ID_CALC_F; - _tcscpy(calc->cb[59].label,TEXT("F")); - calc->cb[59].color = CALC_COLOR_GRAY; - calc->cb[59].r.left = skipx; - calc->cb[59].r.top = skipy; - calc->cb[59].r.right = SZ_MEDBTN_X; - calc->cb[59].r.bottom = SZ_MEDBTN_Y; - calc->cb[59].enable = 0; - - // Buttons - - calc->cb[60].id = ID_CALC_NS_HEX; - LoadString( hInst, IDS_BTN_SHRT_HEX, calc->cb[60].label, sizeof(calc->cb[60].label) / sizeof(calc->cb[60].label[0])); - calc->cb[60].color = CALC_COLOR_GRAY; - calc->cb[60].r.left = CALC_NS_HEX_LEFT; - calc->cb[60].r.top = CALC_NS_HEX_TOP; - calc->cb[60].r.right = SZ_RADIO_NS_X; - calc->cb[60].r.bottom = SZ_RADIO_NS_Y; - calc->cb[60].enable = 1; - - calc->cb[61].id = ID_CALC_NS_DEC; - LoadString( hInst, IDS_BTN_SHRT_DEC, calc->cb[61].label, sizeof(calc->cb[61].label) / sizeof(calc->cb[61].label[0])); - calc->cb[61].color = CALC_COLOR_GRAY; - calc->cb[61].r.left = CALC_NS_DEC_LEFT; - calc->cb[61].r.top = CALC_NS_DEC_TOP; - calc->cb[61].r.right = SZ_RADIO_NS_X; - calc->cb[61].r.bottom = SZ_RADIO_NS_Y; - calc->cb[61].enable = 1; - - calc->cb[62].id = ID_CALC_NS_OCT; - LoadString( hInst, IDS_BTN_SHRT_OCT, calc->cb[62].label, sizeof(calc->cb[62].label) / sizeof(calc->cb[62].label[0])); - calc->cb[62].color = CALC_COLOR_GRAY; - calc->cb[62].r.left = CALC_NS_OCT_LEFT; - calc->cb[62].r.top = CALC_NS_OCT_TOP; - calc->cb[62].r.right = SZ_RADIO_NS_X; - calc->cb[62].r.bottom = SZ_RADIO_NS_Y; - calc->cb[62].enable = 1; - - calc->cb[63].id = ID_CALC_NS_BIN; - LoadString( hInst, IDS_BTN_SHRT_BIN, calc->cb[63].label, sizeof(calc->cb[63].label) / sizeof(calc->cb[63].label[0])); - calc->cb[63].color = CALC_COLOR_GRAY; - calc->cb[63].r.left = CALC_NS_BIN_LEFT; - calc->cb[63].r.top = CALC_NS_BIN_TOP; - calc->cb[63].r.right = SZ_RADIO_NS_X; - calc->cb[63].r.bottom = SZ_RADIO_NS_Y; - calc->cb[63].enable = 1; - - calc->cb[64].id = ID_CALC_MS_DEGREES; - LoadString( hInst, IDS_BTN_DEGREES, calc->cb[64].label, sizeof(calc->cb[64].label) / sizeof(calc->cb[64].label[0])); - calc->cb[64].color = CALC_COLOR_GRAY; - calc->cb[64].r.left = CALC_MS_DEGREES_LEFT; - calc->cb[64].r.top = CALC_MS_DEGREES_TOP; - calc->cb[64].r.right = SZ_RADIO_MS_X; - calc->cb[64].r.bottom = SZ_RADIO_MS_Y; - calc->cb[64].enable = 1; - - calc->cb[65].id = ID_CALC_MS_RADIANS; - LoadString( hInst, IDS_BTN_RADIANS, calc->cb[65].label, sizeof(calc->cb[65].label) / sizeof(calc->cb[65].label[0])); - calc->cb[65].color = CALC_COLOR_GRAY; - calc->cb[65].r.left = CALC_MS_RADIANS_LEFT; - calc->cb[65].r.top = CALC_MS_RADIANS_TOP; - calc->cb[65].r.right = SZ_RADIO_MS_X; - calc->cb[65].r.bottom = SZ_RADIO_MS_Y; - calc->cb[65].enable = 1; - - calc->cb[66].id = ID_CALC_MS_GRADS; - LoadString( hInst, IDS_BTN_GRADS, calc->cb[66].label, sizeof(calc->cb[66].label) / sizeof(calc->cb[66].label[0])); - calc->cb[66].color = CALC_COLOR_GRAY; - calc->cb[66].r.left = CALC_MS_GRADS_LEFT; - calc->cb[66].r.top = CALC_MS_GRADS_TOP; - calc->cb[66].r.right = SZ_RADIO_MS_X; - calc->cb[66].r.bottom = SZ_RADIO_MS_Y; - calc->cb[66].enable = 1; - - calc->cb[67].id = ID_CALC_CB_INV; - _tcscpy(calc->cb[67].label,TEXT("Inv")); - calc->cb[67].color = CALC_COLOR_GRAY; - calc->cb[67].r.left = CALC_CB_INV_LEFT; - calc->cb[67].r.top = CALC_CB_INV_TOP; - calc->cb[67].r.right = SZ_RADIO_CB_X; - calc->cb[67].r.bottom = SZ_RADIO_CB_Y; - calc->cb[67].enable = 1; - - calc->cb[68].id = ID_CALC_CB_HYP; - _tcscpy(calc->cb[68].label,TEXT("Hyp")); - calc->cb[68].color = CALC_COLOR_GRAY; - calc->cb[68].r.left = CALC_CB_HYP_LEFT; - calc->cb[68].r.top = CALC_CB_HYP_TOP; - calc->cb[68].r.right = SZ_RADIO_CB_X; - calc->cb[68].r.bottom = SZ_RADIO_CB_Y; - calc->cb[68].enable = 1; - - calc->cb[69].id = ID_CALC_WS_QWORD; - _tcscpy(calc->cb[69].label,TEXT("Qword")); - calc->cb[69].color = CALC_COLOR_GRAY; - calc->cb[69].r.left = CALC_WS_QWORD_LEFT; - calc->cb[69].r.top = CALC_WS_QWORD_TOP; - calc->cb[69].r.right = SZ_RADIO_WS_X; - calc->cb[69].r.bottom = SZ_RADIO_WS_Y; - calc->cb[69].enable = 1; - - calc->cb[70].id = ID_CALC_WS_DWORD; - _tcscpy(calc->cb[70].label,TEXT("Dword")); - calc->cb[70].color = CALC_COLOR_GRAY; - calc->cb[70].r.left = CALC_WS_DWORD_LEFT; - calc->cb[70].r.top = CALC_WS_DWORD_TOP; - calc->cb[70].r.right = SZ_RADIO_WS_X; - calc->cb[70].r.bottom = SZ_RADIO_WS_Y; - calc->cb[70].enable = 1; - - calc->cb[71].id = ID_CALC_WS_WORD; - _tcscpy(calc->cb[71].label,TEXT("Word")); - calc->cb[71].color = CALC_COLOR_GRAY; - calc->cb[71].r.left = CALC_WS_WORD_LEFT; - calc->cb[71].r.top = CALC_WS_WORD_TOP; - calc->cb[71].r.right = SZ_RADIO_WS_X; - calc->cb[71].r.bottom = SZ_RADIO_WS_Y; - calc->cb[71].enable = 1; - - calc->cb[72].id = ID_CALC_WS_BYTE; - _tcscpy(calc->cb[72].label,TEXT("Byte")); - calc->cb[72].color = CALC_COLOR_GRAY; - calc->cb[72].r.left = CALC_WS_BYTE_LEFT; - calc->cb[72].r.top = CALC_WS_BYTE_TOP; - calc->cb[72].r.right = SZ_RADIO_WS_X; - calc->cb[72].r.bottom = SZ_RADIO_WS_Y; - calc->cb[72].enable = 1; - } - - // preload clip region for filler squares - - if (calc->sciMode) { - n = 1; - - rFiller.left = calc->cb[0].r.left; - rFiller.top = calc->cb[0].r.top; - rFiller.right = calc->cb[0].r.right; - rFiller.bottom = calc->cb[0].r.bottom; - } - else { - n = 2; - - rFiller.left = calc->cb[1].r.left; - rFiller.top = calc->cb[1].r.top; - rFiller.right = calc->cb[0].r.right; - rFiller.bottom = calc->cb[0].r.bottom; - } - - top_button = calc->numButtons - 1; - if (!calc->sciMode) - top_button -= CALC_NS_COUNT + CALC_MS_COUNT + CALC_CB_COUNT + CALC_WS_COUNT; - - for (; n <= top_button; n++) { - ; - - calc->cb[n].hBtn = CreateWindow( - TEXT("BUTTON"), - calc->cb[n].label, - WS_VISIBLE | WS_CHILD | WS_BORDER | BS_CENTER | BS_VCENTER | BS_TEXT | - (calc->cb[n].enable ? 0 : WS_DISABLED), // BS_FLAT - calc->cb[n].r.left, - calc->cb[n].r.top, - calc->cb[n].r.right, - calc->cb[n].r.bottom, - calc->hWnd, - (HMENU)calc->cb[n].id, - calc->hInst, - NULL - ); - - if (!calc->cb[n].hBtn) - exit(1); - - SendMessage(calc->cb[n].hBtn, WM_SETFONT, (WPARAM)hFont, TRUE); - } - - if (!calc->sciMode) { - top_button += CALC_NS_COUNT; - for (; n<=top_button; n++) { - int j = ID_CALC_NS_HEX + n - top_button + CALC_NS_COUNT - 1; - calc->cb[n].hBtn = CreateWindow( - TEXT("BUTTON"), - calc->cb[n].label, - WS_VISIBLE | WS_CHILD | BS_LEFT | BS_VCENTER | BS_TEXT | BS_RADIOBUTTON, - CALC_NS_OFFSET_X + calc->cb[n].r.left, - CALC_NS_OFFSET_Y + calc->cb[n].r.top, - calc->cb[n].r.right, - calc->cb[n].r.bottom, - calc->hWnd, - (HMENU)(j), - calc->hInst, - NULL - ); - - if (!calc->cb[n].hBtn) - exit(1); - - SendMessage(calc->cb[n].hBtn, WM_SETFONT, (WPARAM)hFont, TRUE); - } - - top_button += CALC_MS_COUNT; - - for (; n<=top_button; n++) { - calc->cb[n].hBtn = CreateWindow( - TEXT("BUTTON"), - calc->cb[n].label, - WS_VISIBLE | WS_CHILD | BS_LEFT | BS_VCENTER | BS_TEXT | BS_RADIOBUTTON, - CALC_MS_OFFSET_X + calc->cb[n].r.left, - CALC_MS_OFFSET_Y + calc->cb[n].r.top, - calc->cb[n].r.right, - calc->cb[n].r.bottom, - calc->hWnd, - (HMENU)(ID_CALC_MS_DEGREES + n - top_button + CALC_MS_COUNT - 1), - calc->hInst, - NULL - ); - - if (!calc->cb[n].hBtn) - exit(1); - - SendMessage(calc->cb[n].hBtn, WM_SETFONT, (WPARAM)hFont, TRUE); - } - - top_button += CALC_CB_COUNT; - - for (; n<=top_button; n++) { - calc->cb[n].hBtn = CreateWindow( - TEXT("BUTTON"), - calc->cb[n].label, - WS_VISIBLE | WS_CHILD | BS_LEFT | BS_VCENTER | BS_TEXT | BS_CHECKBOX, - CALC_CB_OFFSET_X + calc->cb[n].r.left, - CALC_CB_OFFSET_Y + calc->cb[n].r.top, - calc->cb[n].r.right, - calc->cb[n].r.bottom, - calc->hWnd, - (HMENU)(ID_CALC_CB_INV + n - top_button + CALC_CB_COUNT - 1), - calc->hInst, - NULL - ); - - if (!calc->cb[n].hBtn) - exit(1); - - SendMessage(calc->cb[n].hBtn, WM_SETFONT, (WPARAM)hFont, TRUE); - } - - top_button += CALC_WS_COUNT; - - for (; n<=top_button; n++) { - calc->cb[n].hBtn = CreateWindow( - TEXT("BUTTON"), - calc->cb[n].label, - WS_CHILD | BS_LEFT | BS_VCENTER | BS_TEXT | BS_RADIOBUTTON, - CALC_WS_OFFSET_X + calc->cb[n].r.left, - CALC_WS_OFFSET_Y + calc->cb[n].r.top, - calc->cb[n].r.right, - calc->cb[n].r.bottom, - calc->hWnd, - (HMENU)(ID_CALC_WS_QWORD + n - top_button + CALC_WS_COUNT - 1), - calc->hInst, - NULL - ); - - if (!calc->cb[n].hBtn) - exit(1); - - EnableWindow(calc->cb[n].hBtn, FALSE); - SendMessage(calc->cb[n].hBtn, WM_SETFONT, (WPARAM)hFont, TRUE); - } - - // set sci defaults - - SendMessage(calc->cb[61].hBtn, BM_SETCHECK, 1, 0); // decimal - SendMessage(calc->cb[64].hBtn, BM_SETCHECK, 1, 0); // degrees - SendMessage(calc->cb[69].hBtn, BM_SETCHECK, 1, 0); // qword - } -} - -void DrawCalcRect (HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, CALC *calc, int object) -{ - POINT pt; - HPEN hPenGray; - HPEN hPenBlack; - HPEN hPenWhite; - HPEN hPenOrg; - - int WDISPLAY_LEFT; - int WDISPLAY_TOP; - int WDISPLAY_RIGHT; - int WDISPLAY_BOTTOM; - - if (!calc->sciMode) { - WDISPLAY_LEFT = WDISPLAY_SCIENTIFIC_LEFT; - WDISPLAY_TOP = WDISPLAY_SCIENTIFIC_TOP; - WDISPLAY_RIGHT = WDISPLAY_SCIENTIFIC_RIGHT; - WDISPLAY_BOTTOM = WDISPLAY_SCIENTIFIC_BOTTOM; - } - else { - WDISPLAY_LEFT = WDISPLAY_STANDARD_LEFT; - WDISPLAY_TOP = WDISPLAY_STANDARD_TOP; - WDISPLAY_RIGHT = WDISPLAY_STANDARD_RIGHT; - WDISPLAY_BOTTOM = WDISPLAY_STANDARD_BOTTOM; - } - - // never delete the active pen! - - // Gray Pen - - hPenGray = CreatePen(PS_SOLID, 1, RGB(CALC_GRAY,CALC_GRAY,CALC_GRAY)); - hPenBlack = CreatePen(PS_SOLID, 1, RGB(0,0,0)); - hPenWhite = CreatePen(PS_SOLID, 1, RGB(255,255,255)); - - hPenOrg = SelectObject(hdc, hPenGray); - - MoveToEx(hdc, - calc->cb[object].r.left, - calc->cb[object].r.bottom, - &pt); - - LineTo(hdc, calc->cb[object].r.left, calc->cb[object].r.top); - LineTo(hdc, calc->cb[object].r.right, calc->cb[object].r.top); - - // Black Pen - - SelectObject(hdc, hPenBlack); - - MoveToEx(hdc, - calc->cb[object].r.right-2, - calc->cb[object].r.top+1, - &pt); - - LineTo(hdc, calc->cb[object].r.left+1, calc->cb[object].r.top+1); - LineTo(hdc, calc->cb[object].r.left+1, calc->cb[object].r.bottom-1); - - SelectObject(hdc, hPenBlack); - - MoveToEx(hdc, - WDISPLAY_LEFT - 1, - WDISPLAY_BOTTOM, - &pt); - - LineTo(hdc, WDISPLAY_LEFT - 1, WDISPLAY_TOP - 1); - LineTo(hdc, WDISPLAY_RIGHT + 1, WDISPLAY_TOP - 1); - - SelectObject(hdc, hPenGray); - - MoveToEx(hdc, - WDISPLAY_RIGHT + 1, - WDISPLAY_TOP - 2, - &pt); - - LineTo(hdc, WDISPLAY_LEFT - 2, WDISPLAY_TOP - 2); - LineTo(hdc, WDISPLAY_LEFT - 2, WDISPLAY_BOTTOM + 1); - - // White Pen - - SelectObject(hdc, hPenWhite); - - MoveToEx(hdc, - calc->cb[object].r.left, - calc->cb[object].r.bottom, - &pt); - - LineTo(hdc, calc->cb[object].r.right, calc->cb[object].r.bottom); - LineTo(hdc, calc->cb[object].r.right, calc->cb[object].r.top); - - SelectObject(hdc, hPenOrg); - DeleteObject(hPenGray); - DeleteObject(hPenBlack); - DeleteObject(hPenWhite); -} - -void DrawCalcRectSci(HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, CALC *calc, RECT *r) -{ - POINT pt; - HPEN hPen; - HPEN hPenOrg; - - // never delete the active pen! - - // White Pen - - hPen = CreatePen(PS_SOLID, 1, RGB(255,255,255)); - hPenOrg = SelectObject(hdc, hPen); - - MoveToEx(hdc, - r->left + 1, - r->bottom + 1, - &pt); - - LineTo(hdc, r->left + 1, r->top + 1); - LineTo(hdc, r->right + 1, r->top + 1); - LineTo(hdc, r->right + 1, r->bottom + 1); - LineTo(hdc, r->left + 1, r->bottom + 1); - - SelectObject(hdc, hPenOrg); - DeleteObject(hPen); - - // Black Pen - - hPen = CreatePen(PS_SOLID, 1, RGB(CALC_GRAY,CALC_GRAY,CALC_GRAY)); - hPenOrg = SelectObject(hdc, hPen); - - MoveToEx(hdc, - r->left, - r->bottom, - &pt); - - LineTo(hdc, r->left, r->top); - LineTo(hdc, r->right, r->top); - LineTo(hdc, r->right, r->bottom); - LineTo(hdc, r->left, r->bottom); - - SelectObject(hdc, hPenOrg); - DeleteObject(hPen); -} - -static RECT scirect1 = { - WDISPLAY_SCIENTIFIC_LEFT - 2, - WDISPLAY_SCIENTIFIC_TOP + 25, - WDISPLAY_SCIENTIFIC_LEFT + 202, - WDISPLAY_SCIENTIFIC_TOP + 51 -}; - -static RECT scirect2 = { - WDISPLAY_SCIENTIFIC_LEFT + 205, - WDISPLAY_SCIENTIFIC_TOP + 25, - WDISPLAY_SCIENTIFIC_RIGHT, - WDISPLAY_SCIENTIFIC_TOP + 51 -}; - -static RECT scirect3 = { - WDISPLAY_SCIENTIFIC_LEFT - 2, - WDISPLAY_SCIENTIFIC_TOP + 57, - WDISPLAY_SCIENTIFIC_LEFT + 102, - WDISPLAY_SCIENTIFIC_TOP + 81 -}; - -void DrawCalc (HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, CALC *calc) -{ - TCHAR s[CALC_BUF_SIZE]; - - scirect1.right = calc->cb[0].r.right + 2; - scirect2.left = calc->cb[0].r.right + 5; - scirect3.right = calc->cb[1].r.left - 10; - - DrawCalcRect (hdc, hMemDC, ps, calc, 0); - - if (!calc->sciMode) { - DrawCalcRect (hdc, hMemDC, ps, calc, 1); - DrawCalcRectSci(hdc, hMemDC, ps, calc, &scirect1); - DrawCalcRectSci(hdc, hMemDC, ps, calc, &scirect2); - DrawCalcRectSci(hdc, hMemDC, ps, calc, &scirect3); - } - - LoadString(calc->hInst, IDS_BTN_MEM_STATUS_M, s, sizeof(s) / sizeof(s[0])); - - DrawCalcText(hdc, hMemDC, ps, calc, 0, s); -} - -void DrawCalcText (HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, CALC *calc, int object, TCHAR *s) -{ - POINT pt; - HFONT hFont; - HFONT hFontOrg; - HPEN hPen; - HPEN hPenOrg; - HBRUSH hBrush; - HBRUSH hBrushOrg; - - TCHAR s2[CALC_BUF_SIZE]; - - int WDISPLAY_LEFT; - int WDISPLAY_TOP; - int WDISPLAY_RIGHT; - int WDISPLAY_BOTTOM; - - if (!calc->sciMode) { - WDISPLAY_LEFT = WDISPLAY_SCIENTIFIC_LEFT; - WDISPLAY_TOP = WDISPLAY_SCIENTIFIC_TOP; - WDISPLAY_RIGHT = WDISPLAY_SCIENTIFIC_RIGHT; - WDISPLAY_BOTTOM = WDISPLAY_SCIENTIFIC_BOTTOM; - } - else { - WDISPLAY_LEFT = WDISPLAY_STANDARD_LEFT; - WDISPLAY_TOP = WDISPLAY_STANDARD_TOP; - WDISPLAY_RIGHT = WDISPLAY_STANDARD_RIGHT; - WDISPLAY_BOTTOM = WDISPLAY_STANDARD_BOTTOM; - } - - // DEFAULT_GUI_FONT is Tahoma on 2000 and XP? - // SYSTEM_FONT is MS Sans Serif? - - hFont = GetStockObject(DEFAULT_GUI_FONT); - - hFontOrg = SelectObject(hdc, hFont); - - if (calc->memory) { - SetBkMode(hdc, TRANSPARENT); - - TextOut(hdc, - calc->cb[object].r.left + 9, - calc->cb[object].r.top + 7, - s, - _tcslen(s) - ); - - SetBkMode(hdc, OPAQUE); - } - - if (calc->paren) { - _stprintf(s2, TEXT("(=%d"),calc->paren); - - SetBkMode(hdc, TRANSPARENT); - - SetTextAlign(hdc, TA_CENTER); - - TextOut(hdc, - calc->cb[object+1].r.left + 13, - calc->cb[object+1].r.top + 6, - s2, - _tcslen(s2) - ); - - SetBkMode(hdc, OPAQUE); - } - - hPen = CreatePen(PS_SOLID, 1, RGB(255,255,255)); - hPenOrg = SelectObject(hdc, hPen); - hBrush = GetSysColorBrush(COLOR_WINDOW); - hBrushOrg = SelectObject(hdc, hBrush); - - MoveToEx(hdc, - WDISPLAY_LEFT - 1, - WDISPLAY_BOTTOM + 1, - &pt - ); - - LineTo(hdc, WDISPLAY_RIGHT + 1, WDISPLAY_BOTTOM + 1); - LineTo(hdc, WDISPLAY_RIGHT + 1, WDISPLAY_TOP - 2); - - Rectangle(hdc, WDISPLAY_LEFT, WDISPLAY_TOP, WDISPLAY_RIGHT, WDISPLAY_BOTTOM); - - SelectObject(hdc, hPenOrg); - SelectObject(hdc, hBrushOrg); - DeleteObject(hPen); - - SetBkMode(hdc, TRANSPARENT); - - SetTextAlign(hdc, TA_RIGHT); - - TextOut(hdc, - WDISPLAY_RIGHT - 4, - WDISPLAY_TOP + 1, - calc->display, - _tcslen(calc->display) - ); - - SelectObject(hdc, hFontOrg); -} - -void DestroyCalc (CALC *calc) -{ - int i; - - for (i=0;inumButtons;i++) - DestroyWindow(calc->cb[i].hBtn); -} - -void DestroyMenus() -{ - if (menus[MENU_STD] != 0) - DestroyMenu(menus[MENU_STD]); - - if (menus[MENU_SCIMS] != 0) - DestroyMenu(menus[MENU_SCIMS]); - - if (menus[MENU_SCIWS] != 0) - DestroyMenu(menus[MENU_SCIWS]); -} - -void calc_buffer_format(CALC *calc) { - TCHAR *p; - int n; - int flag = 0; - int point = 0; - - // calc_buffer_format: enforce buffer content rules - // - // disallow more than one point (beep) - // remove leading zeros - // remove trailing zeros after point (sprintf can cause this) - // remove trailing points - // chop at 32 digits. Though there could also be a point, and 10 separator characters. - - p = calc->buffer; - while (*p) { - if (*p++ == TEXT('.')) - point++; - } - - if (point > 1) { - calc->buffer[_tcslen(calc->buffer)-1] = TEXT('\0'); - MessageBeep(0); - } - - //if (point) { - // p = calc->buffer; - // n = _tcslen(p) - 1; - // while (*(p+n) && - // *(p+n) != TEXT('.') && - // *(p+n) == TEXT('0')) { - // calc->buffer[n] = TEXT('\0'); - // n--; - // } - //} - - // remove leading zeros - - p = calc->buffer; - while (*p) { - if (*p != TEXT('0')) - break; - p++; - } - - // remove trailing points - - n = _tcslen(p); - - while (n) { - if (*(p+n-1) == TEXT('.')) { - if (flag) { - *(p + n) = TEXT('\0'); - } - else { - flag = 1; - } - n--; - } - else { - break; - } - } - - // if (!*p) - // _tcscpy(p, TEXT("0")); - - // chop at 32 digits - if (flag) - *(p+33) = TEXT('\0'); - else - *(p+32) = TEXT('\0'); - - n = 0; - while (*p) - *(calc->buffer + n++) = *(p++); - *(calc->buffer + n) = TEXT('\0'); -} - -void calc_buffer_display(CALC *calc) { - TCHAR *p; - TCHAR s[CALC_BUF_SIZE]; - int point=0; - calcfloat real; - static int old_base = NBASE_DECIMAL; - - - switch (calc->numBase) { - case NBASE_HEX: - real = calc_atof(calc->buffer, old_base); - _stprintf(calc->display, _T("%lx"), (long)real); - _stprintf(calc->buffer, _T("%lx"), (long)real); - old_base = NBASE_HEX; - break; - - case NBASE_OCTAL: - real = calc_atof(calc->buffer, old_base); - _stprintf(calc->display, TEXT("%lo"), (long)real); - _stprintf(calc->buffer, TEXT("%lo"), (long)real); - old_base = NBASE_OCTAL; - break; - - case NBASE_BINARY: - { - int buf=0; - int t; - - if (calc->buffer[0]==_T('\0')) - { - real=0; - } - else - { - real = calc_atof(calc->buffer, old_base); - } - - calc->display[buf]=_T('0'); - calc->buffer[buf]=_T('0'); - for (t=31;t>=0;t--) - { - if (((((long)real)>>t) & ~0xFFFFFFFE)==0) - { - calc->display[buf]=_T('0'); - calc->buffer[buf]=_T('0'); - buf++; - } - else - { - calc->display[buf]=_T('1'); - calc->buffer[buf]=_T('1'); - buf++; - } - - } - - if (buf==0) - { - buf++; - } - - calc->buffer[buf]=_T('\0'); - calc->display[buf]=_T('\0'); - old_base = NBASE_BINARY; - } - break; - - case NBASE_DECIMAL: - - calc_buffer_format(calc); - - if (calc->displayMode) { - if (!_tcscmp(calc->buffer, TEXT("0")) || !calc->buffer[0]) { - _tcscpy(calc->display, TEXT("0.e+0")); - } - else { - int i = 0; - int lz = 0; - int exp = 0; - - - - real = calc_atof(calc->buffer,old_base); - _stprintf(s, FMT_DESC_EXP, real); - // remove leading zeros in exponent - p = s; - while (*p) { - if (*p == TEXT('e')) { // starting exponent parsing - - exp = 1; - } - else if (exp) { // inside exponent, and haven't seen a digit, so could be a leading zero - - if (*p == TEXT('0')) - lz = 1; - } - - if (exp && (*p != TEXT('e')) && (*p != TEXT('0')) && (*p != TEXT('+')) && (*p != TEXT('-'))) { - exp = 0; - lz = 0; - } - - if (!lz) - calc->display[i++] = *p; - - p++; - } - - if (calc->display[i-1] == TEXT('+')) // all trailing zeros - - calc->display[i++] = TEXT('0'); - - calc->display[i] = 0; - } - } - else { - // calc_buffer_display: display buffer after formatting - // - // if digitGrouping, embed separators - // add point if missing - // display - - if (old_base != calc->numBase) - { - if (calc->buffer[0]==_T('\0')) - { - real = 0; - } - else - { - real = calc_atof(calc->buffer, old_base); - } - _stprintf(calc->display, _T("%.f"), real); - _stprintf(calc->buffer, _T("%.f"), real); - } - - _tcscpy(s,calc->buffer); - p = s; - - while (*p) { - if (*p++ == TEXT('.')) - point = 1; - } - - if (!*s) - _tcscpy(s, TEXT("0")); - - if (calc->digitGrouping) - calc_sep(s); - - if (!point && calc->numBase == NBASE_DECIMAL) - _tcscat(s, TEXT(".")); - - if (*s == TEXT('.')) - _tcscpy(calc->display, TEXT("0")); - else - calc->display[0] = 0; - _tcscat(calc->display, s); - } - old_base = NBASE_DECIMAL; - } - - InvalidateRect(calc->hWnd, NULL, FALSE); - UpdateWindow(calc->hWnd); -} - -TCHAR *calc_sep(TCHAR *s) -{ - TCHAR c; - TCHAR *p; - int n; - int x = 1; - int i = 0; - int point = 0; - TCHAR r[CALC_BUF_SIZE]; - - n = _tcslen(s); - - if (!*s) - return s; - - p = s; - - // need to handle leading minus sign! - - // see if there is a point character - - while (*p) { - if (*p++ == TEXT('.')) { - point = p - s; - break; - } - } - - // if there is a point character, skip over decimal places - - if (point) { - i = n - point + 1; - n = point - 1; - _tcscpy(r, s); - _tcsrev(r); - } - - // commify the integer part now - - while ((c = *(s + --n))) { - r[i++] = c; - if (x++ % 3 == 0) - r[i++] = TEXT(','); - if (n == 0) - break; - } - - if (r[i-1] == TEXT(',')) - r[--i] = TEXT('\0'); - else - r[i] = TEXT('\0'); - - _tcscpy(s, _tcsrev(r)); - - return s; -} - -long factorial(long n) -{ - if (n <= 1L) - return 1L; - - return n * factorial(n - 1); -} - -void calc_setmenuitem_radio(HMENU hMenu, UINT id) -{ - MENUITEMINFO menuItem; - - menuItem.fMask = MIIM_FTYPE; - menuItem.fType = MFT_STRING | MFT_RADIOCHECK; - // menuItem.fState = MFS_ENABLED; - // menuItem.wID = id; - // menuItem.hSubMenu = NULL; - // menuItem.hbmpChecked = NULL; - // menuItem.hbmpUnchecked = NULL; - // menuItem.dwItemData = 0; - // menuItem.dwTypeData = "Hex\tF5"; - // menuItem.cch = sizeof("Hex\tF5"); - menuItem.cbSize = sizeof(MENUITEMINFO); - - SetMenuItemInfo(hMenu, id, FALSE, &menuItem); -} - -calcfloat calc_convert_to_radians(CALC *calc) -{ - calcfloat r = calc_atof(calc->buffer, calc->numBase); - - if (calc->trigMode == TRIGMODE_RADIANS) - return r; - if (calc->trigMode == TRIGMODE_DEGREES) - return r * CONST_PI / 180; - else if (calc->trigMode == TRIGMODE_GRADS) - return r * CONST_PI / 200; // 90 degrees == 100 grads - - return 0L; -} - -calcfloat calc_convert_from_radians(CALC *calc) -{ - calcfloat r = calc_atof(calc->buffer, calc->numBase); - - if (calc->trigMode == TRIGMODE_RADIANS) - return r; - if (calc->trigMode == TRIGMODE_DEGREES) - return r * 180 / CONST_PI; - else if (calc->trigMode == TRIGMODE_GRADS) - return r * 200 / CONST_PI; // 90 degrees == 100 grads - - return 0L; -} - -void show_debug(CALC *calc, TCHAR *title, long w, long l) -{ - TCHAR s[1024]; - - _stprintf(s, - - TEXT("wParam = (%C) %d:%d, %x:%xh\n \ -lParam = %d:%d, %x:%x\n \ -value = %.32g\n \ -memory = %.32g\n \ -buffer = \"%s\"\n \ -display = \"%s\"\n \ -numBase = %d\n \ -trigMode = %d\n \ -wordSize = %d\n \ -invMode = %d\n \ -hypMode = %d\n \ -oper = (%C)\n"), - - LOWORD(w), - LOWORD(w), - HIWORD(w), - LOWORD(w), - HIWORD(w), - LOWORD(l), - HIWORD(l), - LOWORD(l), - HIWORD(l), - calc->value, - calc->memory, - calc->buffer, - calc->display, - calc->numBase, - calc->trigMode, - calc->wordSize, - calc->invMode, - calc->hypMode, - calc->oper - ); - - MessageBox(calc->hWnd, s, title, MB_OK); -} - -calcfloat calc_atof(const TCHAR *s, int base) -{ -#ifdef UNICODE - char s_ansi[128]; -#endif - - // converts from another base to decimal calcfloat - switch (base) { - case NBASE_DECIMAL: - wcstombs(s_ansi, s, sizeof(s_ansi)); - return CALC_ATOF(s_ansi); - case NBASE_HEX: - return (calcfloat)_tcstol(s, NULL, 16); - case NBASE_OCTAL: - return (calcfloat)_tcstol(s, NULL, 8); - case NBASE_BINARY: - return (calcfloat)_tcstol(s, NULL, 2); - default: - break; - } - - return 0L; -} - -void calc_ftoa(CALC *calc, calcfloat r, TCHAR *buf) -{ - // converts from decimal calcfloat to another base - - switch (calc->numBase) { - case NBASE_DECIMAL: - _stprintf(buf, FMT_DESC_FLOAT, r); - break; - case NBASE_HEX: - _stprintf(buf, TEXT("%lX"), (long)r); - break; - case NBASE_OCTAL: - _stprintf(buf, TEXT("%lo"), (long)r); - break; - case NBASE_BINARY: // 911 - need routine here - - break; - default: - break; - } -} - -int parse(int wParam, int lParam) -{ - switch (wParam) { - case TEXT('\b'): // backspace - - if (calc.buffer[0]) - calc.buffer[_tcslen(calc.buffer)-1] = TEXT('\0'); - break; - - case TEXT('\x1b'): // ESC - - calc.next = 1; - calc.buffer[0] = TEXT('\0'); - calc.value = 0; - calc.init = 1; - break; - - case TEXT('0'): - case TEXT('1'): - case TEXT('2'): - case TEXT('3'): - case TEXT('4'): - case TEXT('5'): - case TEXT('6'): - case TEXT('7'): - case TEXT('8'): - case TEXT('9'): - case TEXT('a'): - case TEXT('b'): - case TEXT('c'): - case TEXT('d'): - case TEXT('e'): - case TEXT('f'): - case TEXT('A'): - case TEXT('B'): - case TEXT('C'): - case TEXT('D'): - case TEXT('E'): - case TEXT('F'): - { - TCHAR s22[CALC_BUF_SIZE]; - TCHAR w = (TCHAR)LOWORD(wParam); - - if (!keys[calc.numBase][(WORD)w]) { - MessageBeep(0); - return 0; - } - - if (calc.next) { // user first digit indicates new buffer needed after previous UI event - calc.next = 0; - calc.buffer[0] = TEXT('\0'); - } - calc.newenter = 1; - - _stprintf(s22,TEXT("%C"), w); - _tcscat(calc.buffer, s22); - //MessageBox(NULL, s22, NULL, 0); - } - break; - - case TEXT('.'): - case TEXT(','): // 911 - need to handle this, i18n - - if (calc.numBase == NBASE_DECIMAL) { - if (calc.next) { // first digit indicates new buffer needed after previous UI event - calc.next = 0; - calc.buffer[0] = TEXT('\0'); - } - - _tcscat(calc.buffer, TEXT(".")); - } - else { - MessageBeep(0); - return 0; - } - break; - - case TEXT('x'): - case TEXT('X'): // exp, e(1)=2.718 - - if (calc.numBase == NBASE_DECIMAL) { - calc.next = 1; - calc.value = exp(calc_atof(calc.buffer, calc.numBase)); - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value); - } - else { - MessageBeep(0); - return 0; - } - break; - - case TEXT('l'): - case TEXT('L'): - calc.next = 1; - if (calc_atof(calc.buffer, calc.numBase) == 0.0L) { - _tcscpy(calc.buffer, err_invalid); - } - else { - calc.value = log10(calc_atof(calc.buffer, calc.numBase)); - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value); - } - break; - - case TEXT('N'): - case TEXT('n'): // ln is natural logarithm - - calc.next = 1; - if (calc_atof(calc.buffer, calc.numBase) == 0.0L) { - _tcscpy(calc.buffer, err_invalid); - } - else { - calc.value = log(calc_atof(calc.buffer, calc.numBase)); - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value); - } - break; - - case TEXT('p'): - case TEXT('P'): - if (calc.numBase == NBASE_DECIMAL) { - calc.next = 1; - _stprintf(calc.buffer, FMT_DESC_FLOAT, CONST_PI); - } - else { - MessageBeep(0); - return 0; - } - break; - - case TEXT('\x0c'): // Ctrl+L MC (only need to invalid rectangle if wasn't already zero, no need to update display) - - calc.next = 1; - if (calc.memory) { - calc.memory = 0.0; - InvalidateRect(calc.hWnd, &rFiller, TRUE); - UpdateWindow(calc.hWnd); - } - - return 0; - break; - - case TEXT('\x12'): // Ctrl+R MR (value doesn't change, so no invalid rectangle. but display is updated.) - - calc.next = 1; - if (calc.memory != calc_atof(calc.buffer, calc.numBase)) - _stprintf(calc.buffer,FMT_DESC_FLOAT,calc.memory); - else - return 0; - break; - - case TEXT('\x10'): // Ctrl+P M+ (need to invalidate rectangle in many cases but not display) - - calc.next = 1; - InvalidateRect(calc.hWnd, &rFiller, TRUE); - calc.memory += calc_atof(calc.buffer, calc.numBase); - return 0; - break; - - case TEXT('\x0d'): // Ctrl+M MS (only need to invalid rectangle if was zero and now not, - - // or was not zero and now is, not display) - calc.next = 1; - { - int x = GetKeyState(VK_CONTROL); - - if (x < 0 || lParam == NUMBER_OF_THE_BEAST) { - if ((!calc.memory && calc_atof(calc.buffer, calc.numBase)) || - (calc.memory && !calc_atof(calc.buffer, calc.numBase))) { - - calc.memory = calc_atof(calc.buffer, calc.numBase); - InvalidateRect(calc.hWnd, &rFiller, FALSE); - UpdateWindow(calc.hWnd); - } - else { - calc.memory = calc_atof(calc.buffer, calc.numBase); - } - return 0; - } - } - // fall through for Enter processing - - case TEXT('='): - { - calcfloat r = calc.operand; - - if (calc.newenter) { - calc.newenter = 0; - calc.operand = calc_atof(calc.buffer, calc.numBase); - r = calc_atof(calc.buffer, calc.numBase); // convert buffer from whatever base to decimal real - } - - if (calc.oper == TEXT('+')) { - calc.value += r; - } - else if (calc.oper == TEXT('-')) { - calc.value -= r; - } - else if (calc.oper == TEXT('*')) { - calc.value *= r; - } - else if (calc.oper == TEXT('%')) { - calc.value = (long)calc.value % (long)r; - } - else if (calc.oper == TEXT('/')) { - if (!calc_atof(calc.buffer, calc.numBase)) { - _tcscpy(calc.buffer, err_undefined); - calc.err = 1; - } - else { - calc.value /= r; - } - } - else if (calc.oper == TEXT('&')) { - calc.value = (calcfloat)((long)calc.value & (long)r); - } - else if (calc.oper == TEXT('|')) { - calc.value = (calcfloat)((long)calc.value | (long)r); - } - else if (calc.oper == TEXT('^')) { - calc.value = (calcfloat)((long)calc.value ^ (long)r); - } - else if (calc.oper == TEXT('y')) { - calc.value = (calcfloat)pow(calc.value, r); - } - else if (calc.oper == TEXT('<')) { - if (calc.invMode) - calc.value = (calcfloat)((long)calc.value >> (long)calc_atof(calc.buffer, calc.numBase)); - else - calc.value = (calcfloat)((long)calc.value << (long)calc_atof(calc.buffer, calc.numBase)); - } - else { // must have been a gratuitous user = - - calc.value = calc_atof(calc.buffer, calc.numBase); - } - - calc_ftoa(&calc, calc.value, calc.buffer); - - if (!calc.next) - // calc.value = r; - calc.next = 1; - } - break; - - case TEXT('R'): - case TEXT('r'): // 1/x - - calc.next = 1; - if (calc_atof(calc.buffer, calc.numBase) == 0) { - calc.err = 1; - _tcscpy(calc.buffer, err_divide_by_zero); - } - else { - calc.value = 1/calc_atof(calc.buffer, calc.numBase); - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value ); - } - break; - - case TEXT('@'): // ^2 - sqrt in standard mode, squared in sci mode - - calc.next = 1; - calc.value = calc_atof(calc.buffer, calc.numBase); - - if (!calc.sciMode) - calc.value *= calc.value; - else - calc.value = sqrt(calc.value); - - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value ); - break; - - case TEXT('#'): // ^3 - - calc.next = 1; - calc.value = calc_atof(calc.buffer, calc.numBase); - calc.value *= calc.value * calc.value; - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value ); - break; - - case TEXT('Y'): - case TEXT('y'): // x^y - - calc.next = 1; - calc.value = calc_atof(calc.buffer, calc.numBase); - calc.oper = TEXT('y'); - calc.next = 1; - break; - - case TEXT('<'): // Lsh - - calc.next = 1; - calc.value = calc_atof(calc.buffer, calc.numBase); - calc.oper = TEXT('<'); - calc.next = 1; - break; - - case TEXT(';'): // INT - - calc.next = 1; - calc.value = (long)calc_atof(calc.buffer, calc.numBase); - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value ); - break; - - case TEXT('!'): // factorial, need to use gamma function for reals t^(z-1)*e^t dt - - calc.next = 1; - calc.value = calc_atof(calc.buffer, calc.numBase); - calc.value = (calcfloat)factorial((long)calc.value); - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value ); - break; - - case TEXT('&'): // bitwise and - - calc.oper = '&'; - calc.next = 1; - calc.value = calc_atof(calc.buffer, calc.numBase); - break; - - case TEXT('|'): // bitwise or - - calc.oper = TEXT('|'); - calc.next = 1; - calc.value = calc_atof(calc.buffer, calc.numBase); - break; - - case TEXT('^'): // bitwise xor - - calc.oper = TEXT('^'); - calc.next = 1; - calc.value = calc_atof(calc.buffer, calc.numBase); - break; - - case TEXT('~'): // bitwise not - - calc.next = 1; - calc.value = ~ (long) calc_atof(calc.buffer, calc.numBase); - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value ); - break; - - case TEXT('+'): - calc.operand = calc_atof(calc.buffer, calc.numBase); - calc.value += calc.operand; - calc_ftoa(&calc, calc.value, calc.buffer); - calc.oper = TEXT('+'); - calc.newenter = 1; - calc.next = 1; - break; - - case TEXT('-'): - if (calc.init) { - calc.init = 0; - calc.operand = calc_atof(calc.buffer, calc.numBase); - calc.value = calc.operand; - } - else { - calc.value -= calc.operand; - calc_ftoa(&calc, calc.value, calc.buffer); - } - - calc.oper = TEXT('-'); - calc.newenter = 1; - calc.next = 1; - break; - - case TEXT('*'): - if (calc.init) { - calc.init = 0; - calc.operand = calc_atof(calc.buffer, calc.numBase); - calc.value = calc.operand; - } - else { - calc.value *= calc.operand; - calc_ftoa(&calc, calc.value, calc.buffer); - } - calc.oper = TEXT('*'); - calc.newenter = 1; - calc.next = 1; - break; - - case TEXT('/'): - if (calc.init) { - calc.init = 0; - calc.operand = calc_atof(calc.buffer, calc.numBase); - calc.value = calc.operand; - } - else { - calc.value /= calc.operand; - calc_ftoa(&calc, calc.value, calc.buffer); - } - calc.oper = TEXT('/'); - calc.newenter = 1; - calc.next = 1; - break; - - case TEXT('%'): - if (!calc.sciMode) { - if (calc.init) { - calc.init = 0; - calc.operand = calc_atof(calc.buffer, calc.numBase); - calc.value = calc.operand; - } - else { - calc.value = (long)calc_atof(calc.buffer, calc.numBase) % (long)calc.operand; - calc_ftoa(&calc, calc.value, calc.buffer); - } - } - else { - calcfloat r; - r = calc_atof(calc.buffer, calc.numBase); - calc.next = 1; - _stprintf(calc.buffer, FMT_DESC_FLOAT, r * calc.value / (calcfloat)100.0); - } - - calc.oper = TEXT('%'); - calc.newenter = 1; - calc.next = 1; - break; - - case TEXT('O'): // cos - - case TEXT('o'): - if (calc.numBase == NBASE_DECIMAL) { - - calcfloat r; - calc.next = 1; - r = calc_convert_to_radians(&calc); - if (calc.hypMode && calc.invMode) - calc.value = acosh(r); - else if (calc.invMode) - calc.value = acos(r); - else if (calc.hypMode) - calc.value = cosh(r); - else - calc.value = cos(calc_atof(calc.buffer, calc.numBase)); - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value ); - } - else { - MessageBeep(0); - return 0; - } - break; - - case TEXT('S'): // sin - - case TEXT('s'): - if (calc.numBase == NBASE_DECIMAL) { - - calcfloat r = calc_convert_to_radians(&calc); - calc.next = 1; - if (calc.hypMode && calc.invMode) - calc.value = asinh(r); - else if (calc.invMode) - calc.value = asin(r); - else if (calc.hypMode) - calc.value = sinh(r); - else - calc.value = sin(r); - - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value ); - } - else { - MessageBeep(0); - return 0; - } - break; - - case TEXT('T'): // tan - - case TEXT('t'): - if (calc.numBase == NBASE_DECIMAL) { - calcfloat r = calc_convert_to_radians(&calc); - calc.next = 1; - if (calc.hypMode && calc.invMode) - calc.value = atanh(r); - else if (calc.invMode) - calc.value = atan(r); - else if (calc.hypMode) - calc.value = tanh(r); - else - calc.value = tan(r); - - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value ); - } - else { - MessageBeep(0); - return 0; - } - break; - - case TEXT('M'): // dms = Degrees Minutes Seconds - - case TEXT('m'): - if (calc.numBase == NBASE_DECIMAL) { - calcfloat r2; - calcfloat r = calc_atof(calc.buffer, calc.numBase); - calc.next = 1; - r2 = r - (long)r; - - r = (long)r + r2 * 0.6; // multiply by 60 and divide by 100 - calc.value = r; - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value ); - } - else { - MessageBeep(0); - return 0; - } - break; - - case TEXT('V'): // toggle scientic notation like 1.e+2 or 100 - - case TEXT('v'): - calc.displayMode = !calc.displayMode; - break; - -// non-standard keystrokes ... - - case TEXT('?'): - - calc.next = 1; - if (calc_atof(calc.buffer, calc.numBase) < 0) { - calc.err = 1; - _tcscpy(calc.buffer, err_invalid); - } - else { - calc.value = sqrt(calc_atof(calc.buffer, calc.numBase)); - _stprintf(calc.buffer, FMT_DESC_FLOAT, calc.value ); - } - break; - - case TEXT('Z'): // +/- - - { - TCHAR s[CALC_BUF_SIZE] = TEXT("-"); - - if (!_tcscmp(calc.buffer, TEXT("0"))) - return 0; - - if (calc.buffer[0] == TEXT('-')) - _tcscpy(s, calc.buffer+1); - else - _tcscpy(s+1, calc.buffer); - - _tcscpy(calc.buffer, s); - } - break; - - case TEXT('G'): // debug mode - - case TEXT('g'): - calc.next = 1; - debug = !debug; - break; - - default: - MessageBeep(0); - return 0; - break; - } - - return 0; -} - -/* - case WM_CONTEXTMENU: // need to subclass control and just call WinHelp! - WinHelp((HWND) wParam, "c:/windows/help/calc.hlp", HELP_CONTEXTMENU, (DWORD)(LPVOID)2); - return 0; - } -*/ diff --git a/reactos/base/applications/calc/winecalc.h b/reactos/base/applications/calc/winecalc.h deleted file mode 100644 index 5ee974618c3..00000000000 --- a/reactos/base/applications/calc/winecalc.h +++ /dev/null @@ -1,371 +0,0 @@ -/* - * 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 - */ - -////////////////////////////////////////////////////////////////// - -#ifdef UNICODE -#define CF_TTEXT CF_UNICODETEXT -#else -#define CF_TTEXT CF_TEXT -#endif - -// 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); - diff --git a/reactos/base/applications/calc/winmain.c b/reactos/base/applications/calc/winmain.c new file mode 100644 index 00000000000..8b6b78c546f --- /dev/null +++ b/reactos/base/applications/calc/winmain.c @@ -0,0 +1,1566 @@ +#include "calc.h" + +#define HTMLHELP_PATH(_pt) TEXT("%systemroot%\\Help\\calc.chm::") TEXT(_pt) +#define WM_CLOSE_STATS (WM_APP+1) +#define WM_HANDLE_CLIPBOARD (WM_APP+2) +#define WM_INSERT_STAT (WM_APP+3) +#define WM_LOAD_STAT (WM_APP+4) + +#define MAKE_BITMASK4(_show_b16, _show_b10, _show_b8, _show_b2) \ + (((_show_b2) << 0) | \ + ((_show_b8) << 1) | \ + ((_show_b10) << 2) | \ + ((_show_b16) << 3)) + +#define MAKE_BITMASK5(_transl, _is_stats, _is_ctrl, _show_b16, _show_b10, _show_b8, _show_b2) \ + (((_show_b2) << 0) | \ + ((_show_b8) << 1) | \ + ((_show_b10) << 2) | \ + ((_show_b16) << 3) | \ + ((_is_ctrl) << 5) | \ + ((_is_stats) << 6) | \ + ((_transl) << 7)) + +#define KEY_IS_UP 0x80000000 +#define KEY_WAS_DOWN 0x40000000 + +#define BITMASK_IS_ASCII 0x80 +#define BITMASK_IS_STATS 0x40 +#define BITMASK_IS_CTRL 0x20 +#define BITMASK_HEX_MASK 0x08 +#define BITMASK_DEC_MASK 0x04 +#define BITMASK_OCT_MASK 0x02 +#define BITMASK_BIN_MASK 0x01 + +#define CALC_CLR_RED 0x000000FF +#define CALC_CLR_BLUE 0x00FF0000 +#define CALC_CLR_PURP 0x00FF00FF + +typedef struct { + CHAR key; // Virtual key identifier + WORD idc; // IDC for posting message +} key2code_t; + +typedef struct { + WORD idc; // IDC for posting message + CHAR key; // Virtual key identifier + BYTE mask; // enable/disable into the various modes. + INT col; // color used for drawing the text +} key3code_t; + +#define CTRL_FLAG 0x100 +#define ALT_FLAG 0x200 + +#define CTRL_A (0x0001+'A'-'A') +#define CTRL_C (0x0001+'C'-'A') +#define CTRL_D (0x0001+'D'-'A') +#define CTRL_L (0x0001+'L'-'A') +#define CTRL_M (0x0001+'M'-'A') +#define CTRL_P (0x0001+'P'-'A') +#define CTRL_R (0x0001+'R'-'A') +#define CTRL_S (0x0001+'S'-'A') +#define CTRL_T (0x0001+'T'-'A') +#define CTRL_V (0x0001+'V'-'A') +#define CTRL_Z (0x0001+'Z'-'A') + +static const key3code_t key2code[] = { + /* CONTROL-ID Key asc sta ctl hex dec oct bin */ + { IDC_BUTTON_STA, CTRL_S, MAKE_BITMASK5( 1, 0, 1, 1, 1, 1, 1), CALC_CLR_BLUE, }, + { IDC_BUTTON_AVE, CTRL_A, MAKE_BITMASK5( 1, 1, 1, 1, 1, 1, 1), CALC_CLR_BLUE, }, + { IDC_BUTTON_SUM, CTRL_T, MAKE_BITMASK5( 1, 1, 1, 1, 1, 1, 1), CALC_CLR_BLUE, }, + { IDC_BUTTON_S, CTRL_D, MAKE_BITMASK5( 1, 1, 1, 1, 1, 1, 1), CALC_CLR_BLUE, }, + { IDC_BUTTON_MS, CTRL_M, MAKE_BITMASK5( 1, 0, 1, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_MR, CTRL_R, MAKE_BITMASK5( 1, 0, 1, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_MP, CTRL_P, MAKE_BITMASK5( 1, 0, 1, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_MC, CTRL_L, MAKE_BITMASK5( 1, 0, 1, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_0, '0', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_BLUE, }, + { IDC_BUTTON_1, '1', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_BLUE, }, + { IDC_BUTTON_2, '2', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_3, '3', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_4, '4', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_5, '5', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_6, '6', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_7, '7', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_8, '8', MAKE_BITMASK5( 1, 0, 0, 1, 1, 0, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_9, '9', MAKE_BITMASK5( 1, 0, 0, 1, 1, 0, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_DOT, '.', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_DOT, ',', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), -1, }, + { IDC_BUTTON_ADD, '+', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_SUB, '-', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_MULT, '*', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_DIV, '/', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_AND, '&', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_OR, '|', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_XOR, '^', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_LSH, '<', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_NOT, '~', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_INT, ';', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_RED, }, + { IDC_BUTTON_EQU, '=', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_A, 'A', MAKE_BITMASK5( 1, 0, 0, 1, 0, 0, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_B, 'B', MAKE_BITMASK5( 1, 0, 0, 1, 0, 0, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_C, 'C', MAKE_BITMASK5( 1, 0, 0, 1, 0, 0, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_D, 'D', MAKE_BITMASK5( 1, 0, 0, 1, 0, 0, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_E, 'E', MAKE_BITMASK5( 1, 0, 0, 1, 0, 0, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_F, 'F', MAKE_BITMASK5( 1, 0, 0, 1, 0, 0, 0), CALC_CLR_BLUE, }, + { IDC_CHECK_HYP, 'H', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), -1, }, + { IDC_CHECK_INV, 'I', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), -1, }, + { IDC_BUTTON_LOG, 'L', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_PURP, }, + { IDC_BUTTON_DMS, 'M', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_PURP, }, + { IDC_BUTTON_LN, 'N', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_PURP, }, + { IDC_BUTTON_PI, 'P', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_RX, 'R', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_PURP, }, + { IDC_BUTTON_SIN, 'S', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_PURP, }, + { IDC_BUTTON_COS, 'O', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_PURP, }, + { IDC_BUTTON_TAN, 'T', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_PURP, }, + { IDC_BUTTON_FE, 'V', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_PURP, }, + { IDC_BUTTON_EXP, 'X', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_PURP, }, + { IDC_BUTTON_XeY, 'Y', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_PURP, }, + { IDC_BUTTON_SQRT, '@', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_BLUE, }, + { IDC_BUTTON_Xe2, '@', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_PURP, }, + { IDC_BUTTON_Xe3, '#', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_PURP, }, + { IDC_BUTTON_NF, '!', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_PURP, }, + { IDC_BUTTON_LEFTPAR, '(', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_PURP, }, + { IDC_BUTTON_RIGHTPAR, ')', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_PURP, }, + { IDC_BUTTON_MOD, '%', MAKE_BITMASK5( 1, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_PERCENT, '%', MAKE_BITMASK5( 1, 0, 0, 0, 1, 0, 0), CALC_CLR_BLUE, }, + /*----------------------------------------------------------------------*/ + { IDC_BUTTON_DAT, VK_INSERT, MAKE_BITMASK5( 0, 1, 0, 1, 1, 1, 1), CALC_CLR_BLUE, }, + { IDC_BUTTON_EQU, VK_RETURN, MAKE_BITMASK5( 0, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_CANC, VK_ESCAPE, MAKE_BITMASK5( 0, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_CE, VK_DELETE, MAKE_BITMASK5( 0, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_BUTTON_BACK, VK_BACK, MAKE_BITMASK5( 0, 0, 0, 1, 1, 1, 1), CALC_CLR_RED, }, + { IDC_RADIO_HEX, VK_F5, MAKE_BITMASK5( 0, 0, 0, 1, 1, 1, 1), -1, }, + { IDC_RADIO_DEC, VK_F6, MAKE_BITMASK5( 0, 0, 0, 1, 1, 1, 1), -1, }, + { IDC_RADIO_OCT, VK_F7, MAKE_BITMASK5( 0, 0, 0, 1, 1, 1, 1), -1, }, + { IDC_RADIO_BIN, VK_F8, MAKE_BITMASK5( 0, 0, 0, 1, 1, 1, 1), -1, }, + { IDC_BUTTON_SIGN, VK_F9, MAKE_BITMASK5( 0, 0, 0, 1, 1, 1, 1), CALC_CLR_BLUE, }, +}; + +static const key2code_t key2code_base16[] = { + { VK_F2, IDC_RADIO_DWORD, }, + { VK_F3, IDC_RADIO_WORD, }, + { VK_F4, IDC_RADIO_BYTE, }, + { VK_F12, IDC_RADIO_QWORD, }, +}; + +static const key2code_t key2code_base10[] = { + { VK_F2, IDC_RADIO_DEG, }, + { VK_F3, IDC_RADIO_RAD, }, + { VK_F4, IDC_RADIO_GRAD, }, +}; + +static const WORD operator_codes[] = { + /* CONTROL-ID operator */ + (WORD)IDC_STATIC, // RPN_OPERATOR_PARENT + IDC_BUTTON_PERCENT, // RPN_OPERATOR_PERCENT + IDC_BUTTON_EQU, // RPN_OPERATOR_EQUAL + IDC_BUTTON_OR, // RPN_OPERATOR_OR + IDC_BUTTON_XOR, // RPN_OPERATOR_XOR + IDC_BUTTON_AND, // RPN_OPERATOR_AND + IDC_BUTTON_LSH, // RPN_OPERATOR_LSH + IDC_BUTTON_ADD, // RPN_OPERATOR_ADD + IDC_BUTTON_SUB, // RPN_OPERATOR_SUB + IDC_BUTTON_MULT, // RPN_OPERATOR_MULT + IDC_BUTTON_DIV, // RPN_OPERATOR_DIV + IDC_BUTTON_MOD, // RPN_OPERATOR_MOD +}; + +typedef void (*rpn_callback1)(calc_number_t *); + +typedef struct { + WORD idc; + BYTE range; + BYTE check_nan; + rpn_callback1 direct; + rpn_callback1 inverse; + rpn_callback1 hyperb; + rpn_callback1 inv_hyp; +} function_table_t; + +static void run_pow(calc_number_t *number); +static void run_sqr(calc_number_t *number); +static void run_fe(calc_number_t *number); +static void run_dat_sta(calc_number_t *number); +static void run_mp(calc_number_t *c); +static void run_mm(calc_number_t *c); +static void run_ms(calc_number_t *c); +static void run_mw(calc_number_t *c); +static void run_canc(calc_number_t *c); +static void run_rpar(calc_number_t *c); +static void run_lpar(calc_number_t *c); + +static const function_table_t function_table[] = { + { IDC_BUTTON_SIN, MODIFIER_INV|MODIFIER_HYP, 1, rpn_sin, rpn_asin, rpn_sinh, rpn_asinh }, + { IDC_BUTTON_COS, MODIFIER_INV|MODIFIER_HYP, 1, rpn_cos, rpn_acos, rpn_cosh, rpn_acosh }, + { IDC_BUTTON_TAN, MODIFIER_INV|MODIFIER_HYP, 1, rpn_tan, rpn_atan, rpn_tanh, rpn_atanh }, + { IDC_BUTTON_INT, MODIFIER_INV, 1, rpn_int, rpn_frac, NULL, NULL }, + { IDC_BUTTON_RX, 0, 1, rpn_reci, NULL, NULL, NULL }, + { IDC_BUTTON_NOT, 0, 1, rpn_not, NULL, NULL, NULL }, + { IDC_BUTTON_PI, MODIFIER_INV, 0, rpn_pi, rpn_2pi, NULL, NULL }, + { IDC_BUTTON_Xe2, MODIFIER_INV, 1, rpn_exp2, rpn_sqrt, NULL, NULL }, + { IDC_BUTTON_Xe3, MODIFIER_INV, 1, rpn_exp3, rpn_cbrt, NULL, NULL }, + { IDC_BUTTON_LN, MODIFIER_INV, 1, rpn_ln, rpn_exp, NULL, NULL }, + { IDC_BUTTON_LOG, MODIFIER_INV, 1, rpn_log, rpn_exp10, NULL, NULL }, + { IDC_BUTTON_NF, 0, 1, rpn_fact, NULL, NULL, NULL }, + { IDC_BUTTON_AVE, 0, 0, rpn_ave, NULL, NULL, NULL }, + { IDC_BUTTON_SUM, 0, 0, rpn_sum, NULL, NULL, NULL }, + { IDC_BUTTON_S, MODIFIER_INV, 0, rpn_s_m1, rpn_s, NULL, NULL }, + { IDC_BUTTON_XeY, MODIFIER_INV, 1, run_pow, run_sqr, NULL, NULL }, + { IDC_BUTTON_SQRT, MODIFIER_INV, 1, rpn_sqrt, NULL, NULL, NULL }, + { IDC_BUTTON_DMS, MODIFIER_INV, 1, rpn_dec2dms, rpn_dms2dec, NULL, NULL }, + { IDC_BUTTON_FE, 0, 1, run_fe, NULL, NULL, NULL }, + { IDC_BUTTON_DAT, 0, 1, run_dat_sta, NULL, NULL, NULL, }, + { IDC_BUTTON_MP, MODIFIER_INV, 1, run_mp, run_mm, NULL, NULL, }, + { IDC_BUTTON_MS, MODIFIER_INV, 1, run_ms, run_mw, NULL, NULL, }, + { IDC_BUTTON_CANC, 0, 0, run_canc, NULL, NULL, NULL, }, + { IDC_BUTTON_RIGHTPAR, 0, 1, run_rpar, NULL, NULL, NULL, }, + { IDC_BUTTON_LEFTPAR, 0, 0, run_lpar, NULL, NULL, NULL, }, +}; + +/* +*/ + +calc_t calc; + +static void load_config(void) +{ + TCHAR buf[32]; + DWORD tmp; + + /* Try to load last selected layout */ + GetProfileString(TEXT("SciCalc"), TEXT("layout"), TEXT("0"), buf, SIZEOF(buf)); + if (_stscanf(buf, TEXT("%ld"), &calc.layout) != 1) + calc.layout = CALC_LAYOUT_STANDARD; + + /* Try to load last selected formatting option */ + GetProfileString(TEXT("SciCalc"), TEXT("UseSep"), TEXT("0"), buf, SIZEOF(buf)); + if (_stscanf(buf, TEXT("%ld"), &tmp) != 1) + calc.usesep = FALSE; + else + calc.usesep = (tmp == 1) ? TRUE : FALSE; + + /* memory is empty at startup */ + calc.is_memory = FALSE; + + /* acquire regional settings */ + calc.sDecimal_len = GetProfileString(TEXT("intl"), TEXT("sDecimal"), TEXT("."), calc.sDecimal, SIZEOF(calc.sDecimal)); + calc.sThousand_len = GetProfileString(TEXT("intl"), TEXT("sThousand"), TEXT(","), calc.sThousand, SIZEOF(calc.sThousand)); +} + +static void save_config(void) +{ + TCHAR buf[32]; + + _stprintf(buf, TEXT("%lu"), calc.layout); + WriteProfileString(TEXT("SciCalc"), TEXT("layout"), buf); + WriteProfileString(TEXT("SciCalc"), TEXT("UseSep"), (calc.usesep==TRUE) ? TEXT("1") : TEXT("0")); +} + +static LRESULT post_key_press(LPARAM lParam, WORD idc) +{ + HWND hCtlWnd = GetDlgItem(calc.hWnd,idc); + TCHAR ClassName[64]; + + /* check if the key is enabled! */ + if (!IsWindowEnabled(hCtlWnd)) + return 1; + + if (!GetClassName(hCtlWnd, ClassName, SIZEOF(ClassName))) + return 1; + + if (!_tcscmp(ClassName, TEXT("Button"))) { + DWORD dwStyle = GetWindowLong(hCtlWnd, GWL_STYLE) & 0xF; + + /* Set states for press/release, but only for push buttons */ + if (dwStyle == BS_PUSHBUTTON || dwStyle == BS_DEFPUSHBUTTON || dwStyle == BS_OWNERDRAW) { + if (!(lParam & KEY_WAS_DOWN)) { + PostMessage(hCtlWnd, BM_SETSTATE, 1, 0); + } else + if ((lParam & KEY_IS_UP)) { + PostMessage(hCtlWnd, BM_SETSTATE, 0, 0); + PostMessage(hCtlWnd, BM_CLICK, 0, 0); + } + return 1; + } + } + /* default action: simple click event at key release */ + if ((lParam & KEY_IS_UP)) { + PostMessage(hCtlWnd, BM_CLICK, 0, 0); + } + return 1; +} + +static int vk2ascii(unsigned int vk) +{ + unsigned short int s; + int scan; + BYTE state[256]; + HKL layout=GetKeyboardLayout(0); + + if(!GetKeyboardState(state)) + return 0; + + scan=MapVirtualKeyEx(vk, 0, layout); + s = 0; + if (ToAsciiEx(vk, scan, state, &s, 0, layout)>0) { + /* convert to upper case */ + if (s >= 'a' && s <= 'z') + s = s - 'a' + 'A'; + /* add check to CTRL key */ + if (vk >= 'A' && vk <= 'Z' && + s >= CTRL_A && s <= CTRL_Z) + s |= CTRL_FLAG; + else + if (GetAsyncKeyState(VK_MENU) < 0) + s |= ALT_FLAG; + return s; + } + return 0; +} + +static int process_vk_key(WPARAM wParam, LPARAM lParam) +{ + const key2code_t *k; + unsigned int x; + unsigned short int ch; + + ch = vk2ascii(LOWORD(wParam)); + if ((lParam & KEY_IS_UP)) { + /* Test for "copy" to clipboard */ + if (ch == (CTRL_C|CTRL_FLAG)) { + SendMessage(calc.hWnd, WM_COMMAND, IDM_EDIT_COPY, 0); + return 1; + } + /* Test for "paste" from clipboard */ + if (ch == (CTRL_V|CTRL_FLAG)) { + SendMessage(calc.hWnd, WM_COMMAND, IDM_EDIT_PASTE, 0); + return 1; + } + /* Test of help menu */ + if (LOWORD(wParam) == VK_F1) { + SendMessage(calc.hWnd, WM_COMMAND, IDM_HELP_HELP, 0); + return 1; + } + } + + for (x=0; xkey == LOWORD(wParam)) { + return post_key_press(lParam, k->idc); + } + k++; + } while (--x); + } + return 0; +} + +#ifdef USE_KEYBOARD_HOOK +static LRESULT CALLBACK +KeyboardHookProc(int nCode, WPARAM wParam, LPARAM lParam) +{ + if(nCode<0 || calc.is_menu_on) + return CallNextHookEx(calc.hKeyboardHook,nCode,wParam,lParam); + + if(nCode==HC_ACTION) + if (process_vk_key(wParam, lParam)) + return; + + return CallNextHookEx(calc.hKeyboardHook,nCode,wParam,lParam); +} +#endif + +static void update_lcd_display(HWND hwnd) +{ + /* +20 is the additional space for separator mode */ + TCHAR *tmp = (TCHAR *)alloca((calc.ptr-calc.buffer+3+20)*sizeof(TCHAR)); + + if (calc.buffer[0] == TEXT('\0')) + _tcscpy(tmp, TEXT("0")); + else + _tcscpy(tmp, calc.buffer); + /* add final '.' in decimal mode (if it's missing) */ + if (calc.base == IDC_RADIO_DEC) { + if (_tcschr(tmp, TEXT('.')) == NULL) + _tcscat(tmp, TEXT(".")); + } + /* if separator mode is on, let's add an additional space */ + if (calc.usesep && !calc.sci_in && !calc.sci_out && !calc.is_nan) { + /* go to the integer part of the string */ + TCHAR *p = _tcschr(tmp, TEXT('.')); + TCHAR *e = _tcschr(tmp, TEXT('\0')); + int n=0, t; + + if (p == NULL) p = e; + switch (calc.base) { + case IDC_RADIO_HEX: + case IDC_RADIO_BIN: + t = 4; + break; + default: + /* fall here for: + IDC_RADIO_DEC: + IDC_RADIO_OCT: */ + t = 3; + break; + } + while (--p > tmp) { + if (++n == t && *(p-1) != TEXT('-')) { + memmove(p+1, p, (e-p+1)*sizeof(TCHAR)); + e++; + *p = TEXT(' '); + n = 0; + } + } + /* if decimal mode, apply regional settings */ + if (calc.base == IDC_RADIO_DEC) { + TCHAR *p = tmp; + TCHAR *e = _tcschr(tmp, TEXT('.')); + + /* searching for thousands default separator */ + while (p < e) { + if (*p == TEXT(' ')) { + memmove(p+calc.sThousand_len, p+1, _tcslen(p)*sizeof(TCHAR)); + memcpy(p, calc.sThousand, calc.sThousand_len*sizeof(TCHAR)); + p += calc.sThousand_len; + } else + p++; + } + /* update decimal point too. */ + memmove(p+calc.sDecimal_len, p+1, _tcslen(p)*sizeof(TCHAR)); + memcpy(p, calc.sDecimal, calc.sDecimal_len*sizeof(TCHAR)); + } + } else { + TCHAR *p = _tcschr(tmp, TEXT('.')); + + /* update decimal point when usesep is false */ + if (p != NULL) { + memmove(p+calc.sDecimal_len, p+1, _tcslen(p)*sizeof(TCHAR)); + memcpy(p, calc.sDecimal, calc.sDecimal_len*sizeof(TCHAR)); + } + } + SendDlgItemMessage(hwnd, IDC_TEXT_OUTPUT, WM_SETTEXT, (WPARAM)0, (LPARAM)tmp); +} + +static void update_parent_display(HWND hWnd) +{ + TCHAR str[8]; + int n = eval_parent_count(); + + if (!n) + str[0] = TEXT('\0'); + else + _stprintf(str,TEXT("(=%d"), n); + SendDlgItemMessage(hWnd, IDC_TEXT_PARENT, WM_SETTEXT, 0, (LPARAM)str); +} + +static void build_operand(HWND hwnd, DWORD idc) +{ + unsigned int i = 0, n; + + if (idc == IDC_BUTTON_DOT) { + /* if dot is the first char, it's added automatically */ + if (calc.buffer == calc.ptr) { + *calc.ptr++ = TEXT('0'); + *calc.ptr++ = TEXT('.'); + *calc.ptr = TEXT('\0'); + update_lcd_display(hwnd); + return; + } + /* if pressed dot and it's already in the string, then return */ + if (_tcschr(calc.buffer, TEXT('.')) != NULL) + return; + } + if (idc != IDC_STATIC) { + while (idc != key2code[i].idc) i++; + } + n = calc.ptr - calc.buffer; + if (idc == IDC_BUTTON_0 && n == 0) { + /* no need to put the dot because it's handled by update_lcd_display() */ + calc.buffer[0] = TEXT('0'); + calc.buffer[1] = TEXT('\0'); + update_lcd_display(hwnd); + return; + } + switch (calc.base) { + case IDC_RADIO_HEX: + if (n >= 16) + return; + break; + case IDC_RADIO_DEC: + if (n >= SIZEOF(calc.buffer)-1) + return; + if (calc.sci_in) { + if (idc != IDC_STATIC) + calc.esp = (calc.esp * 10 + (key2code[i].key-'0')) % LOCAL_EXP_SIZE; + if (calc.ptr == calc.buffer) + _stprintf(calc.ptr, TEXT("0.e%+d"), calc.esp); + else + _stprintf(calc.ptr, TEXT("e%+d"), calc.esp); + update_lcd_display(hwnd); + return; + } + break; + case IDC_RADIO_OCT: + if (n >= 22) + return; + break; + case IDC_RADIO_BIN: + if (n >= 64) + return; + break; + } + calc.ptr += _stprintf(calc.ptr, TEXT("%C"), key2code[i].key); + update_lcd_display(hwnd); +} + +static void prepare_rpn_result(calc_number_t *rpn, TCHAR *buffer, int size, int base) +{ + if (calc.is_nan) { + rpn_zero(&calc.code); + LoadString(calc.hInstance, IDS_MATH_ERROR, buffer, size); + return; + } + prepare_rpn_result_2(rpn, buffer, size, base); +} + +static void display_rpn_result(HWND hwnd, calc_number_t *rpn) +{ + calc.sci_in = FALSE; + prepare_rpn_result(rpn, calc.buffer, SIZEOF(calc.buffer), calc.base); + calc.ptr = calc.buffer + _tcslen(calc.buffer); + update_lcd_display(hwnd); + calc.ptr = calc.buffer; + update_parent_display(hwnd); +} + +static int get_modifiers(HWND hwnd) +{ + int modifiers = 0; + + if (SendDlgItemMessage(hwnd, IDC_CHECK_INV, BM_GETCHECK, 0, 0)) + modifiers |= MODIFIER_INV; + if (SendDlgItemMessage(hwnd, IDC_CHECK_HYP, BM_GETCHECK, 0, 0)) + modifiers |= MODIFIER_HYP; + + return modifiers; +} + +static void convert_text2number(calc_number_t *a) +{ + /* if the screen output buffer is empty, then */ + /* the operand is taken from the last input */ + if (calc.buffer == calc.ptr) { + /* if pushed valued is ZERO then we should grab it */ + if (!_tcscmp(calc.buffer, TEXT("0.")) || + !_tcscmp(calc.buffer, TEXT("0"))) + /* this zero is good for both integer and decimal */ + rpn_zero(a); + else + rpn_copy(a, &calc.code); + return; + } + /* ZERO is the default value for all numeric bases */ + rpn_zero(a); + convert_text2number_2(a); +} + +static const struct _update_check_menus { + DWORD *sel; + WORD idm; + WORD idc; +} upd[] = { + { &calc.layout, IDM_VIEW_STANDARD, CALC_LAYOUT_STANDARD }, + { &calc.layout, IDM_VIEW_SCIENTIFIC, CALC_LAYOUT_SCIENTIFIC }, + /*-----------------------------------------*/ + { &calc.base, IDM_VIEW_HEX, IDC_RADIO_HEX, }, + { &calc.base, IDM_VIEW_DEC, IDC_RADIO_DEC, }, + { &calc.base, IDM_VIEW_OCT, IDC_RADIO_OCT, }, + { &calc.base, IDM_VIEW_BIN, IDC_RADIO_BIN, }, + /*-----------------------------------------*/ + { &calc.degr, IDM_VIEW_DEG, IDC_RADIO_DEG, }, + { &calc.degr, IDM_VIEW_RAD, IDC_RADIO_RAD, }, + { &calc.degr, IDM_VIEW_GRAD, IDC_RADIO_GRAD, }, + /*-----------------------------------------*/ + { &calc.size, IDM_VIEW_QWORD, IDC_RADIO_QWORD, }, + { &calc.size, IDM_VIEW_DWORD, IDC_RADIO_DWORD, }, + { &calc.size, IDM_VIEW_WORD, IDC_RADIO_WORD, }, + { &calc.size, IDM_VIEW_BYTE, IDC_RADIO_BYTE, }, +}; + +static void update_menu(HWND hwnd) +{ + HMENU hMenu = GetSubMenu(GetMenu(hwnd), 1); + unsigned int x; + + for (x=0; xnext); + rpn_free(&s->num); + free(s); + } + calc.stat = p; +} + +static void delete_stat_item(int n) +{ + statistic_t *p = calc.stat; + statistic_t *s; + + if (n == 0) { + calc.stat = (statistic_t *)p->next; + rpn_free(&p->num); + free(p); + } else { + s = (statistic_t *)p->next; + while (--n) { + p = s; + s = (statistic_t *)p->next; + } + p->next = s->next; + rpn_free(&s->num); + free(s); + } +} + +static LRESULT CALLBACK DlgStatProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) +{ + TCHAR buffer[SIZEOF(calc.buffer)]; + DWORD n; + + switch (msg) { + case WM_INITDIALOG: + return TRUE; + case WM_COMMAND: + switch (LOWORD(wp)) { + case IDC_LIST_STAT: + if (HIWORD(wp) == CBN_DBLCLK) + SendMessage(hWnd, WM_COMMAND, (WPARAM)IDC_BUTTON_LOAD, 0); + return TRUE; + case IDC_BUTTON_RET: + SetFocus(GetDlgItem(GetParent(hWnd), IDC_BUTTON_FOCUS)); + return TRUE; + case IDC_BUTTON_LOAD: + n = SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_GETCURSEL, 0, 0); + if (n == (DWORD)-1) + return TRUE; + PostMessage(GetParent(hWnd), WM_LOAD_STAT, (WPARAM)n, 0); + return TRUE; + case IDC_BUTTON_CD: + n = SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_GETCURSEL, 0, 0); + if (n == (DWORD)-1) + return TRUE; + SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_DELETESTRING, (WPARAM)n, 0); + update_n_stats_items(hWnd, buffer); + delete_stat_item(n); + return TRUE; + case IDC_BUTTON_CAD: + SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_RESETCONTENT, 0, 0); + clean_stat_list(); + update_n_stats_items(hWnd, buffer); + return TRUE; + } + break; + case WM_CLOSE: + clean_stat_list(); + DestroyWindow(hWnd); + return TRUE; + case WM_DESTROY: + PostMessage(GetParent(hWnd), WM_CLOSE_STATS, 0, 0); + return TRUE; + case WM_INSERT_STAT: + prepare_rpn_result(&(((statistic_t *)lp)->num), + buffer, SIZEOF(buffer), + ((statistic_t *)lp)->base); + SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_ADDSTRING, 0, (LPARAM)buffer); + update_n_stats_items(hWnd, buffer); + return TRUE; + } + return FALSE; +} + +static WPARAM idm_2_idc(int idm) +{ + int x; + + for (x=0; xnum); + rpn_copy(&s->num, a); + s->base = calc.base; + s->next = NULL; + if (p == NULL) + calc.stat = s; + else { + while (p->next != NULL) + p = (statistic_t *)(p->next); + p->next = s; + } + PostMessage(calc.hStatWnd, WM_INSERT_STAT, 0, (LPARAM)s); +} + +static void run_mp(calc_number_t *c) +{ + run_operator(&calc.memory, &calc.memory, c, RPN_OPERATOR_ADD); + update_memory_flag(calc.hWnd, TRUE); +} + +static void run_mm(calc_number_t *c) +{ + run_operator(&calc.memory, &calc.memory, c, RPN_OPERATOR_SUB); + update_memory_flag(calc.hWnd, TRUE); +} + +static void run_ms(calc_number_t *c) +{ + rpn_copy(&calc.memory, c); + update_memory_flag(calc.hWnd, rpn_is_zero(&calc.memory) ? FALSE : TRUE); +} + +static void run_mw(calc_number_t *c) +{ + calc_number_t tmp; + + rpn_copy(&tmp, &calc.memory); + rpn_copy(&calc.memory, c); + if (calc.is_memory) + rpn_copy(c, &tmp); + update_memory_flag(calc.hWnd, rpn_is_zero(&calc.memory) ? FALSE : TRUE); +} + +static statistic_t *upload_stat_number(int n) +{ + statistic_t *p = calc.stat; + + if (p == NULL) + return p; + + while (n--) { + p = (statistic_t *)(p->next); + if (p == NULL) + return p; + } + +#ifndef ENABLE_MULTI_PRECISION + if (calc.base != p->base) { + if (calc.base == IDC_RADIO_DEC) + calc.code.f = (double)p->num.i; + else { + calc.code.i = (__int64)p->num.f; + apply_int_mask(&calc.code); + } + } else +#endif + rpn_copy(&calc.code, &p->num); + + calc.is_nan = FALSE; + + return p; +} + +static void run_pow(calc_number_t *number) +{ + exec_infix2postfix(number, RPN_OPERATOR_POW); +} + +static void run_sqr(calc_number_t *number) +{ + exec_infix2postfix(number, RPN_OPERATOR_SQR); +} + +static void run_fe(calc_number_t *number) +{ + calc.sci_out = ((calc.sci_out == TRUE) ? FALSE : TRUE); +} + +static void handle_context_menu(HWND hWnd, WPARAM wp, LPARAM lp) +{ + TCHAR text[64]; + HMENU hMenu = CreatePopupMenu(); + DWORD idm; + + LoadString(calc.hInstance, IDS_QUICKHELP, text, SIZEOF(text)); + AppendMenu(hMenu, MF_STRING | MF_ENABLED, IDM_HELP_HELP, text); + idm = (DWORD)TrackPopupMenu(hMenu, + TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RETURNCMD | TPM_RIGHTBUTTON, + LOWORD(lp), + HIWORD(lp), + 0, + hWnd, + NULL); + DestroyMenu(hMenu); + if (idm != 0) { + HH_POPUP popup; + + memset(&popup, 0, sizeof(popup)); + popup.cbStruct = sizeof(HH_POPUP); + popup.clrForeground = 1; + popup.clrBackground = -1; + popup.pt.x = LOWORD(lp); + popup.pt.y = HIWORD(lp); + popup.rcMargins.top = -1; + popup.rcMargins.bottom = -1; + popup.rcMargins.left = -1; + popup.rcMargins.right = -1; + popup.idString = GetWindowLong((HWND)wp, GWL_ID); +// HtmlHelp((HWND)wp, HTMLHELP_PATH("/popups.txt"), HH_DISPLAY_TEXT_POPUP, (DWORD_PTR)&popup); + } +} + +static void run_canc(calc_number_t *c) +{ + flush_postfix(); + rpn_zero(c); + /* clear also scientific display modes */ + calc.sci_out = FALSE; + calc.sci_in = FALSE; + /* clear state of inv and hyp flags */ + SendDlgItemMessage(calc.hWnd, IDC_CHECK_INV, BM_SETCHECK, 0, 0); + SendDlgItemMessage(calc.hWnd, IDC_CHECK_HYP, BM_SETCHECK, 0, 0); +} + +static void run_rpar(calc_number_t *c) +{ + exec_closeparent(c); +} + +static void run_lpar(calc_number_t *c) +{ + exec_infix2postfix(c, RPN_OPERATOR_PARENT); +} + +static LRESULT CALLBACK SubclassButtonProc(HWND hWnd, WPARAM wp, LPARAM lp) +{ + LPDRAWITEMSTRUCT dis = (LPDRAWITEMSTRUCT)lp; + DWORD dwStyle; + UINT dwText; + TCHAR text[64]; + int dx, dy, len; + SIZE size; + POINT pt; + + if(dis->CtlType == ODT_BUTTON) { + /* + * little exception: 1/x has different color + * in standard and scientific modes + */ + if (calc.layout == CALC_LAYOUT_STANDARD && + IDC_BUTTON_RX == dis->CtlID) { + SetTextColor(dis->hDC, CALC_CLR_BLUE); + } else + for (dx=0; dxCtlID) { + SetTextColor(dis->hDC, key2code[dx].col); + break; + } + } + /* button text to write */ + len = GetWindowText(dis->hwndItem, text, SIZEOF(text)); + /* default state: unpushed & enabled */ + dwStyle = 0; + dwText = 0; + if ((dis->itemState & ODS_DISABLED)) + dwText = DSS_DISABLED; + if ((dis->itemState & ODS_SELECTED)) + dwStyle = DFCS_PUSHED; + + DrawFrameControl(dis->hDC, &dis->rcItem, DFC_BUTTON, DFCS_BUTTONPUSH | dwStyle); + GetTextExtentPoint32(dis->hDC, text, len, &size); + dx = ((dis->rcItem.right-dis->rcItem.left) - size.cx) >> 1; + dy = ((dis->rcItem.bottom-dis->rcItem.top) - size.cy) >> 1; + if ((dwStyle & DFCS_PUSHED)) { + dx++; + dy++; + } + pt.x = dis->rcItem.left + dx; + pt.y = dis->rcItem.top + dy; + DrawState(dis->hDC, NULL, NULL, (LPARAM)text, 0, pt.x, pt.y, size.cx, size.cy, DST_TEXT | dwText); + } + return 1L; +} + +static LRESULT CALLBACK DlgMainProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) +{ + unsigned int x; + + switch (msg) { + case WM_DRAWITEM: + return SubclassButtonProc(hWnd, wp, lp); + + case WM_INITDIALOG: + calc.hWnd=hWnd; + +#ifdef USE_KEYBOARD_HOOK + calc.hKeyboardHook=SetWindowsHookEx( + WH_KEYBOARD, + KeyboardHookProc, + NULL, + GetCurrentThreadId() + ); +#endif + rpn_zero(&calc.code); + calc.sci_out = FALSE; + calc.base = IDC_RADIO_DEC; + calc.size = IDC_RADIO_QWORD; + calc.degr = IDC_RADIO_DEG; + calc.ptr = calc.buffer; + calc.is_nan = FALSE; + enable_allowed_controls(hWnd, IDC_RADIO_DEC); + update_radio(hWnd, IDC_RADIO_DEC); + update_menu(hWnd); + display_rpn_result(hWnd, &calc.code); + update_memory_flag(hWnd, calc.is_memory); + /* remove keyboard focus */ + SetFocus(GetDlgItem(hWnd, IDC_BUTTON_FOCUS)); + /* set our calc icon */ + SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)LoadIcon(calc.hInstance, MAKEINTRESOURCE(IDI_CALC_BIG))); + SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(calc.hInstance, MAKEINTRESOURCE(IDI_CALC_SMALL))); + /* update text for decimal button */ + SendDlgItemMessage(hWnd, IDC_BUTTON_DOT, WM_SETTEXT, (WPARAM)0, (LPARAM)calc.sDecimal); + break; + case WM_CTLCOLORSTATIC: + if ((HWND)lp == GetDlgItem(hWnd, IDC_TEXT_OUTPUT)) + return (LRESULT)GetStockObject(WHITE_BRUSH); + break; + case WM_HANDLE_CLIPBOARD: + handle_clipboard_input(hWnd); + return TRUE; + case WM_COMMAND: + if (HIWORD(wp) != BN_CLICKED && HIWORD(wp) != BN_DBLCLK) + break; + /* avoid flicker if the user selects from keyboard */ + if (GetFocus() != GetDlgItem(hWnd, IDC_BUTTON_FOCUS)) + SetFocus(GetDlgItem(hWnd, IDC_BUTTON_FOCUS)); + switch (LOWORD(wp)) { + case IDM_HELP_ABOUT: + DialogBox(calc.hInstance,MAKEINTRESOURCE(IDD_DIALOG_ABOUT), hWnd, AboutDlgProc); + return TRUE; + case IDM_HELP_HELP: +// HtmlHelp(hWnd, HTMLHELP_PATH("/general_information.htm"), HH_DISPLAY_TOPIC, (DWORD_PTR)NULL); + return TRUE; + case IDM_VIEW_STANDARD: + calc.layout = CALC_LAYOUT_STANDARD; + calc.action = IDM_VIEW_STANDARD; + DestroyWindow(hWnd); + save_config(); + return TRUE; + case IDM_VIEW_SCIENTIFIC: + calc.layout = CALC_LAYOUT_SCIENTIFIC; + calc.action = IDM_VIEW_SCIENTIFIC; + DestroyWindow(hWnd); + save_config(); + return TRUE; + case IDM_VIEW_CONVERSION: + /* UNIMPLEMENTED */ + return TRUE; + case IDM_VIEW_HEX: + case IDM_VIEW_DEC: + case IDM_VIEW_OCT: + case IDM_VIEW_BIN: + case IDM_VIEW_DEG: + case IDM_VIEW_RAD: + case IDM_VIEW_GRAD: + case IDM_VIEW_QWORD: + case IDM_VIEW_DWORD: + case IDM_VIEW_WORD: + case IDM_VIEW_BYTE: + SendMessage(hWnd, WM_COMMAND, idm_2_idc(LOWORD(wp)), 0); + return TRUE; + case IDM_EDIT_COPY: + handle_copy_command(hWnd); + return TRUE; + case IDM_EDIT_PASTE: + if (calc.Clipboard != NULL) + break; + calc.Clipboard = ReadClipboard(); + if (calc.Clipboard != NULL) { + calc.ClipPtr = calc.Clipboard; + handle_clipboard_input(hWnd); + } + return TRUE; + case IDM_VIEW_GROUP: + calc.usesep = (calc.usesep ? FALSE : TRUE); + update_menu(hWnd); + update_lcd_display(hWnd); + save_config(); + return TRUE; + case IDC_BUTTON_CE: { + calc_number_t tmp; + rpn_zero(&tmp); + display_rpn_result(hWnd, &tmp); + } + return TRUE; + case IDC_RADIO_DEC: + case IDC_RADIO_HEX: + case IDC_RADIO_OCT: + case IDC_RADIO_BIN: +/* GNU WINDRES is bugged so I must always force radio update */ +/* (Fix for Win95/98) */ +#ifdef _MSC_VER + if (calc.base == LOWORD(wp)) + break; +#endif + calc.is_nan = FALSE; + update_radio(hWnd, LOWORD(wp)); + return TRUE; + case IDC_RADIO_DEG: + case IDC_RADIO_RAD: + case IDC_RADIO_GRAD: +/* GNU WINDRES is bugged so I must always force radio update */ +/* (Fix for Win95/98) */ +#ifdef _MSC_VER + if (calc.degr == LOWORD(wp)) + break; +#endif + calc.degr = LOWORD(wp); + calc.is_nan = FALSE; + update_menu(hWnd); + return TRUE; + case IDC_RADIO_QWORD: + case IDC_RADIO_DWORD: + case IDC_RADIO_WORD: + case IDC_RADIO_BYTE: +/* GNU WINDRES is bugged so I must always force radio update */ +/* (Fix for Win95/98) */ +#ifdef _MSC_VER + if (calc.size == LOWORD(wp)) + break; +#endif + calc.size = LOWORD(wp); + calc.is_nan = FALSE; + update_menu(hWnd); + /* + * update the content of the display + */ + convert_text2number(&calc.code); + apply_int_mask(&calc.code); + display_rpn_result(hWnd, &calc.code); + return TRUE; + case IDC_BUTTON_1: + case IDC_BUTTON_2: + case IDC_BUTTON_3: + case IDC_BUTTON_4: + case IDC_BUTTON_5: + case IDC_BUTTON_6: + case IDC_BUTTON_7: + case IDC_BUTTON_8: + case IDC_BUTTON_9: + case IDC_BUTTON_0: + case IDC_BUTTON_DOT: + case IDC_BUTTON_A: + case IDC_BUTTON_B: + case IDC_BUTTON_C: + case IDC_BUTTON_D: + case IDC_BUTTON_E: + case IDC_BUTTON_F: + calc.is_nan = FALSE; + build_operand(hWnd, LOWORD(wp)); + return TRUE; + case IDC_BUTTON_PERCENT: + case IDC_BUTTON_ADD: + case IDC_BUTTON_SUB: + case IDC_BUTTON_MULT: + case IDC_BUTTON_DIV: + case IDC_BUTTON_MOD: + case IDC_BUTTON_AND: + case IDC_BUTTON_OR: + case IDC_BUTTON_XOR: + case IDC_BUTTON_LSH: + case IDC_BUTTON_EQU: + if (calc.is_nan) break; + for (x=0; x