irs forms and this years tax solver
This commit is contained in:
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin.zip
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin.zip
Executable file
Binary file not shown.
148
TaxSoftware/OpenTaxSolver2024_22.07_mswin/0_README.txt
Executable file
148
TaxSoftware/OpenTaxSolver2024_22.07_mswin/0_README.txt
Executable file
@@ -0,0 +1,148 @@
|
||||
Open Tax Solver - Package
|
||||
--------------------------
|
||||
|
||||
April 28, 2025 v22.07 - For Tax-Year 2024.
|
||||
|
||||
See project homepage: http://opentaxsolver.sourceforge.net/
|
||||
|
||||
OpenTaxSolver (OTS) is a set of programs and templates for helping you
|
||||
fill out your income tax forms. It performs the tedious arithmetic.
|
||||
OTS is intended to assist those who normally prepare their tax forms
|
||||
themselves, and who generally know on which lines to enter their numbers.
|
||||
It is meant to be used in combination with the instruction booklet
|
||||
corresponding to a given form.
|
||||
|
||||
This package contains programs and templates for:
|
||||
- US-1040 - which also does the Schedules A, B, D, and forms 8949.
|
||||
- Schedule C for US-1040.
|
||||
- State Income Taxes for Ohio, New Jersey, Virginia, Pennsylvania,
|
||||
Massachusetts, North Carolina, and California taxes updated for
|
||||
the 2024 Tax-Year.
|
||||
Also contains an Automatic PDF Form-Fillout function:
|
||||
- Supports all Federal Forms and State Forms.
|
||||
Saves time by filling out many of the numbers.
|
||||
You may still need to enter some information or check boxes
|
||||
that are not handled by OTS.
|
||||
Tested to work properly with many PDF viewers.
|
||||
- You can edit your forms with Libre-Office.
|
||||
|
||||
-----------------------------------------------------------
|
||||
--- This package contains executables for MS-Windows. ---
|
||||
-----------------------------------------------------------
|
||||
(Compiled on MS-Windows-11)
|
||||
(Works on MS-Windows 10 and 11. )
|
||||
|
||||
History:
|
||||
* v22.07 (4/28/2025) - Improved result-rounding, now controlable from
|
||||
the OTS GUI, or directly from individual files, which only affects PDF
|
||||
Form fill-outs, and works uniformly for all forms. In Fed Form 1040,
|
||||
added switch for Qualified Charitable Distributions (QCD) after line 4b.
|
||||
Fixed Fed-1040 tax-breaakpoint for Head-of-Household.
|
||||
In NY State Form, added special limit for MFJ on line 29.
|
||||
Fixes to Sched-SE, added Minister checkbox, and now prints line 3.
|
||||
Provided visibility of STA_VAGI in Virginia PDF form.
|
||||
* v22.06 (3/15/2025) - Switched formatting of Fed-1040, and related
|
||||
Federal Forms to Round-to-Whole dollars. Added ability to fill-in
|
||||
PIN numbers in Fed-1040. Added ability to check request for Health
|
||||
info on the CA-540 PDF Form. Updated the Form 8829 template.
|
||||
Added initial version of Oregon State tax form program.
|
||||
* v22.05 (3/6/2025) - Promoted the new MI State form to front GUI panel.
|
||||
Fixed the new MI State form line 34. In OH State form's optional
|
||||
information section, added second address line, and county-code.
|
||||
In AZ State form, now sets line 29a limit according to the number
|
||||
of tax-payers. Removed quotes around Dependent names in Form-1040
|
||||
output to ease parsing in new form programs using 1040 output.
|
||||
* v22.04 (2/28/2025) - The PDF fill-out program can now suppress
|
||||
negative signs for form-lines enclosed in parenthesis, which
|
||||
are expected to be negative (by accounting notation).
|
||||
As for example on Schedule-D, lines 14 and 21.
|
||||
Added Fed-1040 Sched-D lines 1a and 8a, for those who receive
|
||||
Forms 1099-B on some transactions.
|
||||
* v22.03 (2/12/2025) - Fixed stray comma in Fed 1040 and 2210 tax-table.
|
||||
Added click-able instructions for forms 8602, 8812, 8895, 8959, and 8960.
|
||||
Added option in GUI to set a custom save-directory instead of the default,
|
||||
Invoke ots_gui with command-line option '-help' to see the option(s).
|
||||
* v22.02 (2/6/2025) - Added initial preliminary version of Michigan
|
||||
State tax form.
|
||||
- Added options to Run_taxsolve_GUI for enlarging window and text
|
||||
for Hi-DPI screens. (Invoke Run_taxsolve_GUI with '-large'.)
|
||||
- Added entries for fed-1040 to enter refund direct deposit info.
|
||||
* v22.01 (1/30/2025) - Added the NY State PDF form.
|
||||
- Updated Federal Form F2210, and CA-540 State programs.
|
||||
* v22.00 (1/27/2025) - Preliminary release for Tax-Year 2024.
|
||||
- Includes updates for many of the run-able forms.
|
||||
- Although the tax-program for NY State has been updated, we are
|
||||
still waiting for Dept of Taxation to post NY's PDF Form.
|
||||
- Please check back for more updates.
|
||||
|
||||
Usage:
|
||||
Invoke by running: Run_taxsolve_GUI
|
||||
(Located in the top directory.)
|
||||
|
||||
For Auto-Fillout of PDF Forms, click the "Print" button, and select
|
||||
"Automatically Fill-out PDF Tax-Form", then click "Print".
|
||||
You can set your preferred PDF viewer by the (Set PDF Viewer) button,
|
||||
or by setting the environment variable: PDF_VIEWER
|
||||
The Auto-Fillout feature is tested to work properly with the PDF
|
||||
viewers "Google-Chrome", "Firefox", "LibreOffice", "Atril", "Xpdf",
|
||||
"Safari", "IE", "Edge", and "Acrobat Reader".
|
||||
You can edit your filled-out PDF forms with LibreOffice.
|
||||
|
||||
General:
|
||||
Example tax-data files and blank starting templates are included under
|
||||
the "tax_form_files" directory. For each filer, save filled-out
|
||||
template to a new name, such as "fed1040_2024.txt". After filling-in the
|
||||
lines, then run the tax solver on it. From the GUI, this is done by
|
||||
pressing "Compute Tax" button.
|
||||
Or solvers can be run from the command-line, for example, as:
|
||||
bin/taxsolve_usfed1040_2024 Fed1040_2024.txt
|
||||
Where "Fed1040_2024.txt" is the name of -your- tax-data file, which
|
||||
you can edit with your favorite text-editor to fill it in or print
|
||||
it out. Output results are saved to "..._out.txt" files
|
||||
(eg. Fed1040_2024_out.txt), and can be printed out directly too.
|
||||
|
||||
For updates and further information, see:
|
||||
http://sourceforge.net/projects/opentaxsolver/
|
||||
Documentation:
|
||||
http://opentaxsolver.sourceforge.net/
|
||||
|
||||
Re-compiling:
|
||||
Unix/Linux/Mac:
|
||||
Pre-compiled executables for Unix/Linux are normally in bin directory.
|
||||
However to build the binaries in the bin/ directory:
|
||||
cd OpenTaxSolver2024_22.xx ( cd into top directory. )
|
||||
rm ./bin/* Run_taxsolve_GUI ( Clears executables. )
|
||||
src/Build_taxsolve_packages.sh ( Creates executables. )
|
||||
|
||||
MS-Windows:
|
||||
Pre-compiled executables are normally in bin directory.
|
||||
For compiling OTS on MSwindows, MinGW with Msys is recommended.
|
||||
From Msys terminal window:
|
||||
cd OpenTaxSolver2024_18.xx ( cd into top directory. )
|
||||
rm ./bin/* Run_taxsolve_GUI.exe ( Clears executables. )
|
||||
src/Build_taxsolve_packages.sh ( Creates executables. )
|
||||
|
||||
Directory Structure:
|
||||
OpenTaxSolver2024 ...................................... 25.246-KB
|
||||
|-- src ................................................. 217.555-KB
|
||||
| |-- Gui_gtk ......................................... 141.807-KB
|
||||
|
|
||||
|-- tax_form_files ...................................... 49.152-KB
|
||||
| |-- VA_760 .......................................... 11.038-KB
|
||||
| |-- US_1040_Sched_C ................................. 12.803-KB
|
||||
| |-- US_1040 ......................................... 21.351-KB
|
||||
| |-- PA_40 ........................................... 11.562-KB
|
||||
| |-- OH_1040 ......................................... 14.860-KB
|
||||
| |-- NY_IT201 ........................................ 14.686-KB
|
||||
| |-- NJ_1040 ......................................... 14.124-KB
|
||||
| |-- NC_400 .......................................... 12.251-KB
|
||||
| |-- MA_1 ............................................ 13.844-KB
|
||||
| |-- CA_540 .......................................... 13.166-KB
|
||||
|
|
||||
|-- bin ................................................. 351.033-KB
|
||||
16 Directories.
|
||||
|
||||
---------------------------------------------------------------------------------
|
||||
Aston Roberts (aston_roberts@yahoo.com)
|
||||
File Organization and Makefiles by: Krish Krothapalli, David Masterson, & Jesse Becker
|
||||
Programs contain contributions by many others. See OTS credits webpage.
|
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/Run_taxsolve_GUI.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/Run_taxsolve_GUI.exe
Executable file
Binary file not shown.
3
TaxSoftware/OpenTaxSolver2024_22.07_mswin/Run_taxsolve_GUI_DarkTheme.bat
Executable file
3
TaxSoftware/OpenTaxSolver2024_22.07_mswin/Run_taxsolve_GUI_DarkTheme.bat
Executable file
@@ -0,0 +1,3 @@
|
||||
set GTK_THEME=Adwaita:dark
|
||||
set path=bin;%PATH%
|
||||
ots_gui3.exe
|
1
TaxSoftware/OpenTaxSolver2024_22.07_mswin/Run_taxsolve_GUI_Large.bat
Executable file
1
TaxSoftware/OpenTaxSolver2024_22.07_mswin/Run_taxsolve_GUI_Large.bat
Executable file
@@ -0,0 +1 @@
|
||||
Run_taxsolve_GUI.exe -large
|
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/convert_results2xfdf.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/convert_results2xfdf.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libatk-1.0-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libatk-1.0-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libbrotlicommon.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libbrotlicommon.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libbrotlidec.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libbrotlidec.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libbz2-1.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libbz2-1.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libcairo-2.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libcairo-2.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libcairo-gobject-2.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libcairo-gobject-2.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libdatrie-1.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libdatrie-1.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libepoxy-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libepoxy-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libexpat-1.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libexpat-1.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libffi-8.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libffi-8.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libfontconfig-1.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libfontconfig-1.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libfreetype-6.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libfreetype-6.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libfribidi-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libfribidi-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgcc_s_seh-1.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgcc_s_seh-1.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgdk-3-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgdk-3-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgdk-win32-2.0-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgdk-win32-2.0-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgdk_pixbuf-2.0-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgdk_pixbuf-2.0-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgio-2.0-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgio-2.0-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libglib-2.0-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libglib-2.0-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgmodule-2.0-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgmodule-2.0-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgobject-2.0-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgobject-2.0-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgraphite2.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgraphite2.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgtk-3-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgtk-3-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgtk-win32-2.0-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libgtk-win32-2.0-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libharfbuzz-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libharfbuzz-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libiconv-2.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libiconv-2.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libintl-8.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libintl-8.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpango-1.0-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpango-1.0-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpangocairo-1.0-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpangocairo-1.0-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpangoft2-1.0-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpangoft2-1.0-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpangowin32-1.0-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpangowin32-1.0-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpcre2-8-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpcre2-8-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpixman-1-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpixman-1-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpng16-16.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libpng16-16.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libstdc++-6.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libstdc++-6.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libthai-0.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libthai-0.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libwinpthread-1.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/libwinpthread-1.dll
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/notify_popup.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/notify_popup.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/notify_popup3.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/notify_popup3.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/ots_gui2.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/ots_gui2.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/ots_gui3.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/ots_gui3.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_AZ_140_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_AZ_140_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_CA_540_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_CA_540_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_CA_5805_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_CA_5805_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_HSA_f8889.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_HSA_f8889.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_MA_1_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_MA_1_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_MI_1040_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_MI_1040_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_NC_D400_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_NC_D400_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_NJ_1040_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_NJ_1040_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_NY_IT201_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_NY_IT201_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_OH_IT1040_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_OH_IT1040_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_OR_40_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_OR_40_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_PA_40_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_PA_40_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_US_1040_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_US_1040_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_US_1040_Sched_C_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_US_1040_Sched_C_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_US_1040_Sched_SE_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_US_1040_Sched_SE_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_VA_760_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_VA_760_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f2210_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f2210_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f8606.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f8606.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f8812_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f8812_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f8829_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f8829_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f8959_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f8959_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f8960_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f8960_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f8995_2024.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/taxsolve_f8995_2024.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/universal_pdf_file_modifier.exe
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/universal_pdf_file_modifier.exe
Executable file
Binary file not shown.
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/zlib1.dll
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/bin/zlib1.dll
Executable file
Binary file not shown.
14
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Build_taxsolve_packages.sh
Executable file
14
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Build_taxsolve_packages.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
TAXSOLVEDIR=${PWD}/`dirname $0`
|
||||
|
||||
if [ ! -d ${TAXSOLVEDIR}/../bin ] ; then
|
||||
mkdir ${TAXSOLVEDIR}/../bin
|
||||
fi
|
||||
|
||||
cd ${TAXSOLVEDIR}/Gui_gtk/
|
||||
make
|
||||
|
||||
cd "${TAXSOLVEDIR}"
|
||||
make
|
||||
|
13
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/Readme.txt
Executable file
13
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/Readme.txt
Executable file
@@ -0,0 +1,13 @@
|
||||
OTS_GUI2.c - This directory contains source code for a new alternate version
|
||||
of the Open Tax Solver (OTS) Graphical User Interface (GUI). This version
|
||||
is based on the GIMP Tool Kit (Gtk) widget library. Gtk supports modern
|
||||
platforms from a single source code program with a modern look and feel.
|
||||
|
||||
The environment variable "PDF_VIEWER" can be used to set which PDF-Viewer
|
||||
the the OTS-GUI will use, as well as the path to it.
|
||||
|
||||
|
||||
OTS_GUI3.c - Upcoming version for the OTS-GUI for compilation under the
|
||||
newer Gtk-3 graphics library. Included for initial testing and development.
|
||||
To compile:
|
||||
make -f make_gtk3
|
24
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/backcompat.c
Executable file
24
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/backcompat.c
Executable file
@@ -0,0 +1,24 @@
|
||||
/* */
|
||||
/* GNU Public License - GPL: */
|
||||
/* 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., 59 Temple Place, Suite 330, Boston, MA */
|
||||
/* 02111-1307 USA. */
|
||||
/* */
|
||||
|
||||
void gtk_menu_item_set_label( void *menu_item, char *word ) {;}
|
||||
|
||||
int cairo_format_stride_for_width( int x, int wdth )
|
||||
{
|
||||
return 4 * wdth; // + wdth % 4;
|
||||
}
|
1074
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/gtk_file_browser.c
Executable file
1074
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/gtk_file_browser.c
Executable file
File diff suppressed because it is too large
Load Diff
1093
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/gtk_file_browser3.c
Executable file
1093
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/gtk_file_browser3.c
Executable file
File diff suppressed because it is too large
Load Diff
1344
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/gtk_utils.c
Executable file
1344
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/gtk_utils.c
Executable file
File diff suppressed because it is too large
Load Diff
355
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/gtk_utils.h
Executable file
355
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/gtk_utils.h
Executable file
@@ -0,0 +1,355 @@
|
||||
#include <gtk/gtk.h>
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
|
||||
#define GtkUtils_Version 1.0
|
||||
|
||||
|
||||
/* ------------- Text-Label Routines ----------------- */
|
||||
GtkWidget *make_label( GtkWidget *panel, int xpos, int ypos, const char *text );
|
||||
|
||||
void modify_label( GtkWidget *label, const char *newtext );
|
||||
void set_widget_color( GtkWidget *label, const char *color_value ); /* Specify colors as: "#rrggbb" in hex 00-ff. */
|
||||
void set_background_color( GtkWidget *label, const char *color_value );
|
||||
GtkWidget *make_sized_label( GtkWidget *panel, int xpos, int ypos, const char *text, float fontsize ); /* Default = 10.0. */
|
||||
|
||||
|
||||
/* ------------- Button Routines ----------------- */
|
||||
GtkWidget *make_button( GtkWidget *panel, int xpos, int ypos, const char *label, void callback(GtkWidget *, void *), void *data );
|
||||
|
||||
GtkWidget *make_button_wicon( GtkWidget *panel, int xpos, int ypos, const char **icon, void callback(GtkWidget *, void *), void *data );
|
||||
/* Be sure to somewhere set: g_object_set( gtk_settings_get_default(), "gtk-button-images", TRUE, NULL); */
|
||||
/* To use, "#include" an xpm image file of icon. Make variable-name at top of XPM file match "icon" name */
|
||||
/* called in this function. (You call it with that variable name.) */
|
||||
|
||||
|
||||
/* ------------- Radio Button Routines ----------------- */
|
||||
GtkWidget *make_radio_button( GtkWidget *panel, GtkWidget *group, int xpos, int ypos, const char *label,
|
||||
void callback(GtkWidget *, void *), const void *data );
|
||||
|
||||
void set_radio_button( GtkWidget *radio_button );
|
||||
|
||||
|
||||
/* ------------- Toggle Button Routines ----------------- */
|
||||
GtkWidget *make_toggle_button( GtkWidget *panel, int xpos, int ypos, const char *label, int state, void callback(GtkWidget *, void *), void *data );
|
||||
|
||||
void set_toggle_button( GtkWidget *tog_button, int state );
|
||||
|
||||
|
||||
/* ------------- Form-Box (Text-Entry Box) Routines ----------------- */
|
||||
GtkEntry *make_formbox( GtkWidget *panel, int xpos, int ypos, int nchars_wide, const char *text, int maxlen,
|
||||
void callback(GtkWidget *, void *), void *data );
|
||||
|
||||
GtkEntry *make_formbox_bypix( GtkWidget *panel, int xpos, int ypos, int npix_wide, const char *text, int maxlen,
|
||||
void callback(GtkWidget *, void *), void *data );
|
||||
|
||||
void modify_formbox( GtkEntry *formbox, const char *text );
|
||||
|
||||
char *get_formbox( GtkEntry *formbox ); /* Returns string poiner, which must NOT be freed. */
|
||||
|
||||
void get_formbox_text( GtkEntry *formbox, char *rtrnstrng, int maxlen );
|
||||
|
||||
/*--- Example Usage:
|
||||
GtkEntry *formbox1;
|
||||
|
||||
SetFormBox_Routine()
|
||||
{
|
||||
int nchars;
|
||||
nchars = 0.109 * frmbx_wdth_pix; // Good rule of thumb.
|
||||
formbox1 = make_formbox( panel, ypos, xpos, nchars, "0", 1024, action_routine, 0 );
|
||||
}
|
||||
|
||||
Retreival_routine()
|
||||
{
|
||||
char *word;
|
||||
word = get_formbox( formbox1 );
|
||||
printf("Text = '%s'\n", word );
|
||||
}
|
||||
---*/
|
||||
|
||||
/* ------------- GTK Text-Edit Box Routines ----------------- */ /* Multi-line text-edit widget. */
|
||||
GtkTextView *make_text_edit_box( GtkWidget *panel, int xpos, int ypos, int width, int height, const char *text );
|
||||
|
||||
void modify_text_edit_box( GtkTextView *textview, const char *text );
|
||||
|
||||
void get_text_edit_box( GtkTextView *textview, char *rtrnstrng, int maxlen );
|
||||
|
||||
/*--- Example Usage:
|
||||
GtkTextView *txtedt;
|
||||
|
||||
MakeTextEditWindow_Routine()
|
||||
{
|
||||
txtedt = make_text_edit_box( panel, 2, 2, 200, 100, "Initial text\n is here." );
|
||||
}
|
||||
|
||||
Retreival_routine()
|
||||
{
|
||||
char word[1000];
|
||||
get_text_edit_box( txtedt, word, 1000 );
|
||||
printf("Text = '%s'\n", word );
|
||||
}
|
||||
---*/
|
||||
|
||||
|
||||
|
||||
/* ------------- Menu Routines ----------------- */
|
||||
|
||||
GtkWidget *make_menu( GtkWidget *tool_bar, const char *label ); /* For use on automatically spaced menu-bars. */
|
||||
|
||||
GtkWidget *make_menu_button( GtkWidget *panel, int xpos, int ypos, const char *label ); /* For use anywhere on a window. */
|
||||
|
||||
GtkWidget *add_menu_item( GtkWidget *menu, const char *label, void callback(GtkWidget *, void *), void *data );
|
||||
|
||||
GtkWidget *add_submenu( GtkWidget *menu, const char *label );
|
||||
|
||||
void modify_menu_label( GtkWidget *menu_label, const char *newtext ); /* A 'menu_label' is what is returned by add_menu_item(). */
|
||||
|
||||
|
||||
|
||||
/* ------------- GTK Selection List Routines ----------------- */
|
||||
|
||||
GtkTreeStore *make_selection_list( GtkWidget *panel, int xpos, int ypos, int width, int height, const char *column_titles,
|
||||
void callback(GtkWidget *, void *), void dclick_callback(GtkWidget *, void *), void *data );
|
||||
|
||||
void append_selection_list( GtkTreeStore *list, GtkTreeIter *iter, const char *item );
|
||||
|
||||
char *get_selection_from_list( GtkWidget *selection );
|
||||
|
||||
|
||||
/* Example Usage:
|
||||
{
|
||||
GtkTreeStore *mylist;
|
||||
GtkTreeIter iter;
|
||||
mylist = make_selection_list( panel, 10, 20, 80, 100, myfunction, 0, 0 );
|
||||
for (j=0; j<10; j++)
|
||||
append_selection_list( mylist, &iter, text[j] );
|
||||
}
|
||||
|
||||
void myfunction( GtkWidget *wdg, void *data )
|
||||
{
|
||||
char *text;
|
||||
text = get_selection_from_list( wdg );
|
||||
printf("Selected: '%s'\n", text );
|
||||
}
|
||||
*/
|
||||
|
||||
GtkTreeStore *make_multicolumn_selection_list( GtkWidget *panel, int xpos, int ypos, int width, int height,
|
||||
int ncols, const char *column_titles[],
|
||||
void callback(GtkWidget *, void *), void dclick_callback(GtkWidget *, void *), void *data );
|
||||
void add_multicolumn_selection_item( GtkTreeStore *selst, int ncols, char *items[] );
|
||||
|
||||
/* Example Usage:
|
||||
char *MY_Selected_item=0, *MY_Selected_list=0;
|
||||
int MY_column_to_get=2; // --- Set this to get the column you need.
|
||||
|
||||
void selected_item_by_column( GtkWidget *wdg, void *data )
|
||||
{
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model;
|
||||
if (!done_init) return;
|
||||
if (gtk_tree_selection_get_selected( GTK_TREE_SELECTION(wdg), &model, &iter ))
|
||||
{
|
||||
if (MY_Selected_item != 0) free( MY_Selected_item );
|
||||
gtk_tree_model_get( model, &iter, MY_column_to_get, &MY_Selected_item, -1 );
|
||||
MY_Selected_list = data;
|
||||
printf("Column %d = %s, for %s\n", MY_column_to_get, MY_Selected_item, MY_Selected_list );
|
||||
}
|
||||
}
|
||||
|
||||
void dclicked_item( GtkWidget *wdg, void *data )
|
||||
{
|
||||
printf("Dclicked '%s', for %s.\n", MY_Selected_item, MY_Selected_list );
|
||||
}
|
||||
|
||||
...
|
||||
GtkTreeStore *selst;
|
||||
const char *headings[]={ "T1", "D2", "P3" };
|
||||
char *items[];
|
||||
selst = make_multicolumn_selection_list( winpanel, 200, 30, 180, 150, 3, headings,
|
||||
selected_item, dclicked_item, "chartA" );
|
||||
items[0] = "Fries"; items[1] = "Shake"; items[2] = "Cola";
|
||||
add_multicolumn_selection_item( selst, 3, iems );
|
||||
items[0] = "Coffee"; items[1] = "Donut"; items[2] = "Beer";
|
||||
add_multicolumn_selection_item( selst, 3, iems );
|
||||
...
|
||||
*/
|
||||
|
||||
|
||||
/* ------------- GTK FormBoxWithSuggestor ------------------- */
|
||||
|
||||
GtkSpinButton *make_FormBoxWithSuggestor( GtkWidget *panel, int xpos, int ypos, float min, float initval,
|
||||
float max, float step, int ndigits );
|
||||
|
||||
float get_FormBoxWithSuggestor_Value( GtkSpinButton *spinbox );
|
||||
|
||||
void set_FormBoxWithSuggestor_value( GtkSpinButton *spinbox, float value );
|
||||
|
||||
/*
|
||||
make_combobox - Creates a kind of text-box that the user cannot type into,
|
||||
but has a selector on the right, from which the user can pick any alphanumeric setting.
|
||||
*/
|
||||
GtkWidget *make_combobox( GtkWidget *panel, int xpos, int ypos, int width );
|
||||
void add_combo_suggestion( GtkWidget *combobox, char *itemtext );
|
||||
void select_combo_suggestion( GtkWidget *combobox, int item );
|
||||
|
||||
/* Example to read value from: frmbx1 = make_combobox( panel, x, y, 30 );
|
||||
word = gtk_combo_box_text_get_active_text( (GtkComboBoxText *)frmbx1 );
|
||||
*/
|
||||
|
||||
/*
|
||||
make_formbox_wcombo - Like "make_combobox" above, but users can also type their
|
||||
own values into the text box, as well as select them.
|
||||
*/
|
||||
GtkWidget *make_formbox_wcombo( GtkWidget *panel, int xpos, int ypos, int width );
|
||||
void add_form_suggestion( GtkWidget *combobox, char *text );
|
||||
|
||||
/* Example to read value from: frmbx2 = make_formbox_wcombo( panel, x, y, 30 );
|
||||
word = strdup( gtk_entry_get_text( GTK_ENTRY( gtk_bin_get_child( GTK_BIN( frmbx2 ) ) ) ) );
|
||||
*/
|
||||
|
||||
|
||||
/* ------------- Separator Routines ----------------- */
|
||||
|
||||
GtkWidget *make_vseparator( GtkWidget *panel, int xpos, int y1, int y2 );
|
||||
GtkWidget *make_hseparator( GtkWidget *panel, int x1, int x2, int ypos );
|
||||
GtkWidget *make_rectangular_separator( GtkWidget *panel, int x1, int y1, int x2, int y2 );
|
||||
|
||||
|
||||
|
||||
/* ------------- GTK Slider Routines ----------------- */
|
||||
|
||||
GtkWidget *make_slider( GtkWidget *panel, int xpos, int ypos, int size, char orien, double min, double initval, double max,
|
||||
void callback(GtkWidget *, void *), void *data );
|
||||
|
||||
/*--- Example Usage:
|
||||
void slide_adj( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
double x;
|
||||
x = gtk_range_get_value( GTK_RANGE(widget) );
|
||||
printf("Slider Adjusted '%g'\n", x );
|
||||
}
|
||||
|
||||
...
|
||||
make_slider( panel, xpos, ypos, size, 'h', minv, initval, maxval, slide_adj, 0 );
|
||||
---*/
|
||||
|
||||
|
||||
/* ------------- Sub-Panel Frames ----------------- */
|
||||
|
||||
GtkWidget *make_tabbed_panel_frame( GtkWidget *panel, int xpos, int ypos );
|
||||
GtkWidget *add_tabbed_panel( GtkWidget *tabbed_panel, int width, int height, char *tab_name );
|
||||
|
||||
GtkWidget *make_framed_panel( GtkWidget *panel, int xpos, int ypos, int width, int height, char *frame_name );
|
||||
|
||||
|
||||
/* ------------- Sub-Window or (Detachable) Pop-up Window Making Routines ----------------- */
|
||||
|
||||
GtkWidget *make_window( int width, int height, const char *title, GtkWidget *(*winptr) );
|
||||
|
||||
/* Create new window and register user's own killed callback. It must return 0. */
|
||||
GtkWidget *make_window_wkill( int width, int height, const char *title, GtkWidget *(*winptr), int callback(GtkWidget *, void *) );
|
||||
|
||||
/* Like above, but set horz/vert-scroll to 1 or 0, to enable or disable respective scroll. */
|
||||
GtkWidget *make_scrolled_window_wkill( int width, int height, const char *title, GtkWidget *(*winptr),
|
||||
int horzscroll, int vertscroll, int callback(GtkWidget *, void *) );
|
||||
|
||||
/* Initial call to set up outermost window. */
|
||||
GtkWidget *init_top_outer_window( int *argc, char ***argv, int winwidth, int winhght, const char *title,
|
||||
int horzscroll, int vertscroll );
|
||||
|
||||
void close_any_window( GtkWidget *widget, gpointer data );
|
||||
|
||||
int killed_any_window( GtkWidget *widget, GdkEvent *event, gpointer data );
|
||||
|
||||
void place_window_center();
|
||||
void place_window_atmouse();
|
||||
void show_wind( GtkWidget *wind );
|
||||
|
||||
|
||||
/**** ---- Example window making function. ----
|
||||
GtkWidget *win1=0;
|
||||
|
||||
void respond_to_some_event( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
GtkWidget *panel;
|
||||
|
||||
panel = make_window( 400, 150, "Test Win", &win1 );
|
||||
|
||||
---- Place all window items here .... ----
|
||||
make_button( panel, 20, 20, " OK ", close_any_window, &win1 );
|
||||
|
||||
show_wind( win1 );
|
||||
}
|
||||
|
||||
****/
|
||||
|
||||
|
||||
|
||||
|
||||
/* ------------- GTK Image Routines ----------------- */
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
attach_image_from_file - Reads image from jpg/gif file, and places on panel
|
||||
at specified position and size. Returns 0 on error, else returns widget.
|
||||
------------------------------------------------------------------------------*/
|
||||
GtkWidget *attach_image_from_file( GtkWidget *panel, char *imagefilename, int xpos, int ypos, int width, int height );
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------*/
|
||||
/* place_image - This routine displays an image on the named panel, at the */
|
||||
/* specified (x,y) position. Image pixels: image_width x image_height */
|
||||
/* Allocate and initialize image as: */
|
||||
/* imagedata = (unsigned char *)malloc( 4 * image_pixels ); */
|
||||
/* imagedata[ 4 * (image_width * row + col) ] = Blue; */
|
||||
/* imagedata[ 4 * (image_width * row + col) + 1 ] = Green; */
|
||||
/* imagedata[ 4 * (image_width * row + col) + 2 ] = Red; */
|
||||
/* Where values are 0=dark to 255=bright. */
|
||||
/* You can de-allocate or re-use image array after calling this function. */
|
||||
/*------------------------------------------------------------------------------*/
|
||||
void place_image( GtkWidget *window, int image_width, int image_height, int pos_x, int pos_y, unsigned char *imagedata );
|
||||
|
||||
/* Convert Data to Image (cdti) - Retreives image-data from pre-initialized arrays stored within program. */
|
||||
/* (The pre-stored array text can be created from the "data2code.c" utility.) */
|
||||
unsigned char *cdti_convert_data_to_image( char *data, int dimension, int *imgwd, int *imght );
|
||||
|
||||
|
||||
|
||||
/* ------------- Tool Tips / Hover Notes ----------------- */
|
||||
GtkTooltips *add_tool_tip( GtkWidget *wdg, const char *text ); /* Adds tool-tip to button, etc. */
|
||||
|
||||
|
||||
/* ------------- File Browser ----------------- */
|
||||
GtkWidget *file_browser_popup( const char *dir, const char *text, void callback(GtkWidget *, void *) );
|
||||
|
||||
/* Example usage:
|
||||
void receive_filename( GtkWidget *wdg, void *fs )
|
||||
{
|
||||
char *yourfilename=0;
|
||||
yourfilename = strdup( gtk_file_selection_get_filename( (GtkFileSelection *)fs ) );
|
||||
gtk_widget_destroy( fs ); -- Closes file-browser window. --
|
||||
printf("Absolute path = '%s'\n", yourfilename );
|
||||
free( yourfilename );
|
||||
}
|
||||
|
||||
file_browser_popup( ".", "Select File", receive_filename );
|
||||
*/
|
||||
|
||||
|
||||
/* ------------- Progress Bar ----------------- */
|
||||
|
||||
void adjust_progress_bar( GtkWidget *wdg, double fraction );
|
||||
|
||||
GtkWidget *make_progress_bar( GtkWidget *panel, int xpos, int ypos, int width, char *text );
|
||||
|
||||
|
||||
|
||||
/* ------------- General Stuff ----------------- */
|
||||
|
||||
void UpdateCheck(); /* Process any pending window events. */
|
||||
|
||||
void strcpy_safe( char *dst, const char *src, int maxlen );
|
||||
|
||||
double Report_Time(); /* Reports time in seconds, accurate to millisecs, for checking time differences. */
|
||||
|
||||
void Sleep_seconds( float dt_seconds );
|
||||
|
||||
/* gtk_widget_destroy( wdg ); */
|
1515
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/gtk_utils3.c
Executable file
1515
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/gtk_utils3.c
Executable file
File diff suppressed because it is too large
Load Diff
357
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/gtk_utils3.h
Executable file
357
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/gtk_utils3.h
Executable file
@@ -0,0 +1,357 @@
|
||||
#include <gtk/gtk.h>
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
|
||||
#define GtkUtils_Version 3.0
|
||||
|
||||
|
||||
/* ------------- Text-Label Routines ----------------- */
|
||||
GtkWidget *make_label( GtkWidget *panel, int xpos, int ypos, const char *text );
|
||||
|
||||
void modify_label( GtkWidget *label, const char *newtext );
|
||||
void set_label_color( GtkWidget *label, const char *color_value ); /* Specify colors as: "#rrggbb" in hex 00-ff. */
|
||||
void set_label_fgbg_color( GtkWidget *label, const char *fgrnd, const char *bkgrnd );
|
||||
GtkWidget *make_sized_label( GtkWidget *panel, int xpos, int ypos, const char *text, float fontsize ); /* Default = 10.0. */
|
||||
|
||||
|
||||
/* ------------- Button Routines ----------------- */
|
||||
GtkWidget *make_button( GtkWidget *panel, int xpos, int ypos, const char *label, void callback(GtkWidget *, void *), void *data );
|
||||
|
||||
GtkWidget *make_button_wicon( GtkWidget *panel, int xpos, int ypos, const char **icon, void callback(GtkWidget *, void *), void *data );
|
||||
/* Be sure to somewhere set: g_object_set( gtk_settings_get_default(), "gtk-button-images", TRUE, NULL); */
|
||||
/* To use, "#include" an xpm image file of icon. Make variable-name at top of XPM file match "icon" name */
|
||||
/* called in this function. (You call it with that variable name.) */
|
||||
|
||||
|
||||
/* ------------- Radio Button Routines ----------------- */
|
||||
GtkWidget *make_radio_button( GtkWidget *panel, GtkWidget *group, int xpos, int ypos, const char *label,
|
||||
void callback(GtkWidget *, void *), const void *data );
|
||||
|
||||
void set_radio_button( GtkWidget *radio_button );
|
||||
|
||||
|
||||
/* ------------- Toggle Button Routines ----------------- */
|
||||
GtkWidget *make_toggle_button( GtkWidget *panel, int xpos, int ypos, const char *label, int state, void callback(GtkWidget *, void *), void *data );
|
||||
|
||||
void set_toggle_button( GtkWidget *tog_button, int state );
|
||||
|
||||
|
||||
/* ------------- Form-Box (Text-Entry Box) Routines ----------------- */
|
||||
GtkEntry *make_formbox( GtkWidget *panel, int xpos, int ypos, int nchars_wide, const char *text, int maxlen,
|
||||
void callback(GtkWidget *, void *), void *data );
|
||||
|
||||
GtkEntry *make_formbox_bypix( GtkWidget *panel, int xpos, int ypos, int npix_wide, const char *text, int maxlen,
|
||||
void callback(GtkWidget *, void *), void *data );
|
||||
|
||||
void modify_formbox( GtkEntry *formbox, const char *text );
|
||||
|
||||
char *get_formbox( GtkEntry *formbox ); /* Returns string poiner, which must NOT be freed. */
|
||||
|
||||
void get_formbox_text( GtkEntry *formbox, char *rtrnstrng, int maxlen );
|
||||
|
||||
/*--- Example Usage:
|
||||
GtkEntry *formbox1;
|
||||
|
||||
SetFormBox_Routine()
|
||||
{
|
||||
int nchars;
|
||||
nchars = 0.109 * frmbx_wdth_pix; // Good rule of thumb.
|
||||
formbox1 = make_formbox( panel, ypos, xpos, nchars, "0", 1024, action_routine, 0 );
|
||||
}
|
||||
|
||||
Retreival_routine()
|
||||
{
|
||||
char *word;
|
||||
word = get_formbox( formbox1 );
|
||||
printf("Text = '%s'\n", word );
|
||||
}
|
||||
---*/
|
||||
|
||||
/* ------------- GTK Text-Edit Box Routines ----------------- */ /* Multi-line text-edit widget. */
|
||||
GtkTextView *make_text_edit_box( GtkWidget *panel, int xpos, int ypos, int width, int height, const char *text );
|
||||
|
||||
void modify_text_edit_box( GtkTextView *textview, const char *text );
|
||||
|
||||
void get_text_edit_box( GtkTextView *textview, char *rtrnstrng, int maxlen );
|
||||
|
||||
/*--- Example Usage:
|
||||
GtkTextView *txtedt;
|
||||
|
||||
MakeTextEditWindow_Routine()
|
||||
{
|
||||
txtedt = make_text_edit_box( panel, 2, 2, 200, 100, "Initial text\n is here." );
|
||||
}
|
||||
|
||||
Retreival_routine()
|
||||
{
|
||||
char word[1000];
|
||||
get_text_edit_box( txtedt, word, 1000 );
|
||||
printf("Text = '%s'\n", word );
|
||||
}
|
||||
---*/
|
||||
|
||||
|
||||
|
||||
/* ------------- Menu Routines ----------------- */
|
||||
|
||||
GtkWidget *make_menu( GtkWidget *tool_bar, const char *label ); /* For use on automatically spaced menu-bars. */
|
||||
|
||||
GtkWidget *make_menu_button( GtkWidget *panel, int xpos, int ypos, const char *label ); /* For use anywhere on a window. */
|
||||
|
||||
GtkWidget *add_menu_item( GtkWidget *menu, const char *label, void callback(GtkWidget *, void *), void *data );
|
||||
|
||||
GtkWidget *add_submenu( GtkWidget *menu, const char *label );
|
||||
|
||||
void modify_menu_label( GtkWidget *menu_label, const char *newtext ); /* A 'menu_label' is what is returned by add_menu_item(). */
|
||||
|
||||
|
||||
|
||||
/* ------------- GTK Selection List Routines ----------------- */
|
||||
|
||||
GtkTreeStore *make_selection_list( GtkWidget *panel, int xpos, int ypos, int width, int height, const char *column_titles,
|
||||
void callback(GtkWidget *, void *), void dclick_callback(GtkWidget *, void *), void *data );
|
||||
|
||||
void append_selection_list( GtkTreeStore *list, GtkTreeIter *iter, const char *item );
|
||||
|
||||
char *get_selection_from_list( GtkWidget *selection );
|
||||
|
||||
|
||||
/* Example Usage:
|
||||
{
|
||||
GtkTreeStore *mylist;
|
||||
GtkTreeIter iter;
|
||||
mylist = make_selection_list( panel, 10, 20, 80, 100, myfunction, 0, 0 );
|
||||
for (j=0; j<10; j++)
|
||||
append_selection_list( mylist, &iter, text[j] );
|
||||
}
|
||||
|
||||
void myfunction( GtkWidget *wdg, void *data )
|
||||
{
|
||||
char *text;
|
||||
text = get_selection_from_list( wdg );
|
||||
printf("Selected: '%s'\n", text );
|
||||
}
|
||||
*/
|
||||
|
||||
GtkTreeStore *make_multicolumn_selection_list( GtkWidget *panel, int xpos, int ypos, int width, int height,
|
||||
int ncols, const char *column_titles[],
|
||||
void callback(GtkWidget *, void *), void dclick_callback(GtkWidget *, void *), void *data );
|
||||
void add_multicolumn_selection_item( GtkTreeStore *selst, int ncols, char *items[] );
|
||||
|
||||
/* Example Usage:
|
||||
char *MY_Selected_item=0, *MY_Selected_list=0;
|
||||
int MY_column_to_get=2; // --- Set this to get the column you need.
|
||||
|
||||
void selected_item_by_column( GtkWidget *wdg, void *data )
|
||||
{
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model;
|
||||
if (!done_init) return;
|
||||
if (gtk_tree_selection_get_selected( GTK_TREE_SELECTION(wdg), &model, &iter ))
|
||||
{
|
||||
if (MY_Selected_item != 0) free( MY_Selected_item );
|
||||
gtk_tree_model_get( model, &iter, MY_column_to_get, &MY_Selected_item, -1 );
|
||||
MY_Selected_list = data;
|
||||
printf("Column %d = %s, for %s\n", MY_column_to_get, MY_Selected_item, MY_Selected_list );
|
||||
}
|
||||
}
|
||||
|
||||
void dclicked_item( GtkWidget *wdg, void *data )
|
||||
{
|
||||
printf("Dclicked '%s', for %s.\n", MY_Selected_item, MY_Selected_list );
|
||||
}
|
||||
|
||||
...
|
||||
GtkTreeStore *selst;
|
||||
const char *headings[]={ "T1", "D2", "P3" };
|
||||
char *items[];
|
||||
selst = make_multicolumn_selection_list( winpanel, 200, 30, 180, 150, 3, headings,
|
||||
selected_item, dclicked_item, "chartA" );
|
||||
items[0] = "Fries"; items[1] = "Shake"; items[2] = "Cola";
|
||||
add_multicolumn_selection_item( selst, 3, iems );
|
||||
items[0] = "Coffee"; items[1] = "Donut"; items[2] = "Beer";
|
||||
add_multicolumn_selection_item( selst, 3, iems );
|
||||
...
|
||||
*/
|
||||
|
||||
|
||||
/* ------------- GTK FormBoxWithSuggestor ------------------- */
|
||||
|
||||
GtkSpinButton *make_FormBoxWithSuggestor( GtkWidget *panel, int xpos, int ypos, float min, float initval,
|
||||
float max, float step, int ndigits );
|
||||
|
||||
float get_FormBoxWithSuggestor_Value( GtkSpinButton *spinbox );
|
||||
|
||||
void set_FormBoxWithSuggestor_value( GtkSpinButton *spinbox, float value );
|
||||
|
||||
/*
|
||||
make_combobox - Creates a kind of text-box that the user cannot type into,
|
||||
but has a selector on the right, from which the user can pick any alphanumeric setting.
|
||||
*/
|
||||
GtkWidget *make_combobox( GtkWidget *panel, int xpos, int ypos, int width );
|
||||
void add_combo_suggestion( GtkWidget *combobox, char *itemtext );
|
||||
void select_combo_suggestion( GtkWidget *combobox, int item );
|
||||
|
||||
/* Example to read value from: frmbx1 = make_combobox( panel, x, y, 30 );
|
||||
word = gtk_combo_box_text_get_active_text( (GtkComboBoxText *)frmbx1 );
|
||||
*/
|
||||
|
||||
/*
|
||||
make_formbox_wcombo - Like "make_combobox" above, but users can also type their
|
||||
own values into the text box, as well as select them.
|
||||
*/
|
||||
GtkWidget *make_formbox_wcombo( GtkWidget *panel, int xpos, int ypos, int width );
|
||||
void add_form_suggestion( GtkWidget *combobox, char *text );
|
||||
|
||||
/* Example to read value from: frmbx2 = make_formbox_wcombo( panel, x, y, 30 );
|
||||
word = strdup( gtk_entry_get_text( GTK_ENTRY( gtk_bin_get_child( GTK_BIN( frmbx2 ) ) ) ) );
|
||||
*/
|
||||
|
||||
|
||||
/* ------------- Separator Routines ----------------- */
|
||||
|
||||
GtkWidget *make_vseparator( GtkWidget *panel, int xpos, int y1, int y2 );
|
||||
GtkWidget *make_hseparator( GtkWidget *panel, int x1, int x2, int ypos );
|
||||
GtkWidget *make_rectangular_separator( GtkWidget *panel, int x1, int y1, int x2, int y2 );
|
||||
|
||||
|
||||
|
||||
/* ------------- GTK Slider Routines ----------------- */
|
||||
|
||||
GtkWidget *make_slider( GtkWidget *panel, int xpos, int ypos, int size, char orien, double min, double initval, double max,
|
||||
void callback(GtkWidget *, void *), void *data );
|
||||
|
||||
/*--- Example Usage:
|
||||
void slide_adj( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
double x;
|
||||
x = gtk_range_get_value( GTK_RANGE(widget) );
|
||||
printf("Slider Adjusted '%g'\n", x );
|
||||
}
|
||||
|
||||
...
|
||||
make_slider( panel, xpos, ypos, size, 'h', minv, initval, maxval, slide_adj, 0 );
|
||||
---*/
|
||||
|
||||
|
||||
/* ------------- Sub-Panel Frames ----------------- */
|
||||
|
||||
GtkWidget *make_tabbed_panel_frame( GtkWidget *panel, int xpos, int ypos );
|
||||
GtkWidget *add_tabbed_panel( GtkWidget *tabbed_panel, int width, int height, char *tab_name );
|
||||
|
||||
GtkWidget *make_framed_panel( GtkWidget *panel, int xpos, int ypos, int width, int height, char *frame_name );
|
||||
|
||||
|
||||
/* ------------- Sub-Window or (Detachable) Pop-up Window Making Routines ----------------- */
|
||||
|
||||
GtkWidget *make_window( int width, int height, const char *title, GtkWidget *(*winptr) );
|
||||
|
||||
/* Create new window and register user's own killed callback. It must return 0. */
|
||||
GtkWidget *make_window_wkill( int width, int height, const char *title, GtkWidget *(*winptr), int callback(GtkWidget *, void *) );
|
||||
|
||||
/* Like above, but set horz/vert-scroll to 1 or 0, to enable or disable respective scroll. */
|
||||
GtkWidget *make_scrolled_window_wkill( int width, int height, const char *title, GtkWidget *(*winptr),
|
||||
int horzscroll, int vertscroll, int callback(GtkWidget *, void *) );
|
||||
|
||||
/* Initial call to set up outermost window. */
|
||||
GtkWidget *init_top_outer_window( int *argc, char ***argv, int winwidth, int winhght, const char *title,
|
||||
int horzscroll, int vertscroll );
|
||||
|
||||
void close_any_window( GtkWidget *widget, gpointer data );
|
||||
|
||||
int killed_any_window( GtkWidget *widget, GdkEvent *event, gpointer data );
|
||||
|
||||
void place_window_center();
|
||||
void place_window_atmouse();
|
||||
void show_wind( GtkWidget *wind );
|
||||
|
||||
|
||||
/**** ---- Example window making function. ----
|
||||
GtkWidget *win1=0;
|
||||
|
||||
void respond_to_some_event( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
GtkWidget *panel;
|
||||
|
||||
panel = make_window( 400, 150, "Test Win", &win1 );
|
||||
|
||||
---- Place all window items here .... ----
|
||||
make_button( panel, 20, 20, " OK ", close_any_window, &win1 );
|
||||
|
||||
show_wind( win1 );
|
||||
}
|
||||
|
||||
****/
|
||||
|
||||
|
||||
|
||||
|
||||
/* ------------- GTK Image Routines ----------------- */
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
attach_image_from_file - Reads image from jpg/gif file, and places on panel
|
||||
at specified position and size. Returns 0 on error, else returns widget.
|
||||
------------------------------------------------------------------------------*/
|
||||
GtkWidget *attach_image_from_file( GtkWidget *panel, char *imagefilename, int xpos, int ypos, int width, int height );
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------*/
|
||||
/* place_image - This routine displays an image on the named panel, at the */
|
||||
/* specified (x,y) position. Image pixels: image_width x image_height */
|
||||
/* Allocate and initialize image as: */
|
||||
/* imagedata = (unsigned char *)malloc( 4 * image_pixels ); */
|
||||
/* imagedata[ 4 * (image_width * row + col) ] = Blue; */
|
||||
/* imagedata[ 4 * (image_width * row + col) + 1 ] = Green; */
|
||||
/* imagedata[ 4 * (image_width * row + col) + 2 ] = Red; */
|
||||
/* Where values are 0=dark to 255=bright. */
|
||||
/* You can de-allocate or re-use image array after calling this function. */
|
||||
/*------------------------------------------------------------------------------*/
|
||||
void place_image( cairo_t *cr, int image_width, int image_height, int pos_x, int pos_y, unsigned char *imagedata );
|
||||
|
||||
/* Convert Data to Image (cdti) - Retreives image-data from pre-initialized arrays stored within program. */
|
||||
/* (The pre-stored array text can be created from the "data2code.c" utility.) */
|
||||
unsigned char *cdti_convert_data_to_image( char *data, int dimension, int *imgwd, int *imght );
|
||||
|
||||
|
||||
|
||||
/* ------------- Tool Tips / Hover Notes ----------------- */
|
||||
void add_tool_tip( GtkWidget *wdg, const char *text ); /* Adds tool-tip to button, etc. */
|
||||
|
||||
|
||||
/* ------------- File Browser ----------------- */
|
||||
GtkWidget *file_browser_popup( const char *dir, const char *text, void callback(GtkWidget *, void *) );
|
||||
|
||||
/* Example usage:
|
||||
void receive_filename( GtkWidget *wdg, void *fs )
|
||||
{
|
||||
char *yourfilename=0;
|
||||
yourfilename = strdup( gtk_file_selection_get_filename( (GtkFileSelection *)fs ) );
|
||||
gtk_widget_destroy( fs ); -- Closes file-browser window. --
|
||||
printf("Absolute path = '%s'\n", yourfilename );
|
||||
free( yourfilename );
|
||||
}
|
||||
|
||||
file_browser_popup( ".", "Select File", receive_filename );
|
||||
*/
|
||||
|
||||
|
||||
/* ------------- Progress Bar ----------------- */
|
||||
|
||||
void adjust_progress_bar( GtkWidget *wdg, double fraction );
|
||||
|
||||
GtkWidget *make_progress_bar( GtkWidget *panel, int xpos, int ypos, int width, char *text );
|
||||
|
||||
|
||||
|
||||
/* ------------- General Stuff ----------------- */
|
||||
|
||||
void UpdateCheck(); /* Process any pending window events. */
|
||||
|
||||
void strcpy_safe( char *dst, const char *src, int maxlen );
|
||||
|
||||
double Report_Time(); /* Reports time in seconds, accurate to millisecs, for checking time differences. */
|
||||
|
||||
void Sleep_seconds( float dt_seconds );
|
||||
|
||||
/* gtk_widget_destroy( wdg ); */
|
||||
|
||||
|
2470
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/logo_image.c
Executable file
2470
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/logo_image.c
Executable file
File diff suppressed because it is too large
Load Diff
41
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/make_gtk3
Executable file
41
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/make_gtk3
Executable file
@@ -0,0 +1,41 @@
|
||||
#
|
||||
# Make file for the newer Gtk-3 version of OTS GUI.
|
||||
# To compile: make -f make_gtk3
|
||||
#
|
||||
# Produces: bin/ots_gui3
|
||||
#
|
||||
|
||||
#====================
|
||||
#====== Macros ======
|
||||
#====================
|
||||
|
||||
#====== OpenTaxSolver GUI programs; in ../../bin/ ======
|
||||
OTS_GUI := \
|
||||
ots_gui3 \
|
||||
notify_popup3
|
||||
|
||||
# List of OTS GUI programs in ../../bin/
|
||||
EXE_OTS_GUI := $(patsubst %,../../bin/%, $(OTS_GUI))
|
||||
|
||||
#===================
|
||||
#====== Rules ======
|
||||
#===================
|
||||
|
||||
all: $(EXE_OTS_GUI)
|
||||
|
||||
# Pattern rule for GUI programs in ../../bin/
|
||||
# includes dependency on any (all) gtk modules
|
||||
$(EXE_OTS_GUI): ../../bin/%: %.c gtk_utils3.c gtk_utils3.h gtk_file_browser3.c
|
||||
gcc -O -Wall -fmax-errors=1 -Wno-unused-result `pkg-config --cflags gtk+-3.0` $< `pkg-config --libs gtk+-3.0` -o $@
|
||||
|
||||
clean:
|
||||
rm -f $(EXE_OTS_GUI)
|
||||
|
||||
|
||||
|
||||
# Notes:
|
||||
# On some versions of Linux, it may be necessary to execute the following command
|
||||
# before compiling this make-file, so that pkg-config finds the gtk3+ libs.
|
||||
# export PKG_CONFIG_PATH=/usr/lib/pkgconfig
|
||||
# Also, be sure to install "gtk3-devel".
|
||||
|
34
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/makefile
Executable file
34
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/makefile
Executable file
@@ -0,0 +1,34 @@
|
||||
#====================
|
||||
#====== Macros ======
|
||||
#====================
|
||||
|
||||
#====== OpenTaxSolver GUI programs; in ../../bin/ ======
|
||||
OTS_GUI := \
|
||||
ots_gui2 \
|
||||
notify_popup
|
||||
|
||||
# List of OTS GUI programs in ../../bin/
|
||||
EXE_OTS_GUI := $(patsubst %,../../bin/%, $(OTS_GUI))
|
||||
|
||||
#===================
|
||||
#====== Rules ======
|
||||
#===================
|
||||
|
||||
all: $(EXE_OTS_GUI)
|
||||
|
||||
# Pattern rule for GUI programs in ../../bin/
|
||||
# includes dependency on any (all) gtk modules
|
||||
$(EXE_OTS_GUI): ../../bin/%: %.c gtk_utils.c gtk_utils.h gtk_file_browser.c
|
||||
gcc -O -Wall `pkg-config --cflags gtk+-2.0` $< `pkg-config --libs gtk+-2.0` -o $@
|
||||
|
||||
clean:
|
||||
rm -f $(EXE_OTS_GUI)
|
||||
|
||||
|
||||
|
||||
# Notes:
|
||||
# On some versions of Linux, it may be necessary to execute the following command
|
||||
# before compiling this make-file, so that pkg-config finds the gtk2+ libs.
|
||||
# export PKG_CONFIG_PATH=/usr/lib/pkgconfig
|
||||
# Also, be sure to install "gtk2-devel".
|
||||
|
29
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/makefile_mswin
Executable file
29
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/makefile_mswin
Executable file
@@ -0,0 +1,29 @@
|
||||
#====================
|
||||
#====== Macros ======
|
||||
#====================
|
||||
|
||||
# For MSYS1.0, define "CFLAGS = -std=c99"
|
||||
# in your build env
|
||||
|
||||
#====== OpenTaxSolver GUI programs; in ../../bin/ ======
|
||||
OTS_GUI := \
|
||||
ots_gui2 \
|
||||
notify_popup
|
||||
|
||||
# List of OTS GUI programs in ../../bin/
|
||||
EXE_OTS_GUI := $(patsubst %,../../bin/%.exe, $(OTS_GUI))
|
||||
|
||||
#===================
|
||||
#====== Rules ======
|
||||
#===================
|
||||
|
||||
all: $(EXE_OTS_GUI)
|
||||
|
||||
# Pattern rule for GUI programs in ../../bin/
|
||||
# includes dependency on any (all) gtk modules
|
||||
$(EXE_OTS_GUI): ../../bin/%.exe: %.c gtk_utils.c gtk_utils.h gtk_file_browser.c
|
||||
gcc -$(CFLAGS) -O -Wall `pkg-config --cflags gtk+-2.0` $< `pkg-config --libs gtk+-2.0` -o $@
|
||||
|
||||
clean:
|
||||
rm -f $(EXE_OTS_GUI)
|
||||
|
177
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/notify_popup.c
Executable file
177
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/notify_popup.c
Executable file
@@ -0,0 +1,177 @@
|
||||
/************************************************************************************************
|
||||
Notify_Popup - Stand alone pop-up notifier utility.
|
||||
Accepts a message on command-line, and pops up a small window with the message.
|
||||
Useful for alerting users of warnings or errors, especially for non-graphical programs or
|
||||
scripts.
|
||||
|
||||
Amazing there is not already a universal command like this. It should be the same command
|
||||
natively available within *all* operating systems and platforms. But could not be found.
|
||||
(Other than "xmessage" in Linux, but is often not installed. Or "osascript" in MacOS, but indirect.)
|
||||
So here it is.
|
||||
|
||||
Multi-word messages should be quoted.
|
||||
Example:
|
||||
notify_popup "Warning: Bad file detected."
|
||||
|
||||
You can enter multiple explicit lines with separate arguments, like:
|
||||
Example:
|
||||
notify_popup "Please re-run the program." "Because of bad data." " -bye"
|
||||
|
||||
Options:
|
||||
-delay n - Delays popping-up for n-seconds.
|
||||
-expire nn - Automatically close after nn seconds.
|
||||
|
||||
Planned future features:
|
||||
- Command-line options to specify:
|
||||
- Message text color, size, & boldness.
|
||||
-textcolor r g b, (RGB values in 0.0 - 1.0 range)
|
||||
-textsize fs (Default Font size = 10)
|
||||
-textbold
|
||||
-textnormal
|
||||
- Ability to specify line-breaks in message with a symbol. (In addition to the method above.)
|
||||
\n
|
||||
- Window name (ex. Note, Warning, Error, etc.)
|
||||
-title "Warning"
|
||||
- Optional button(s), with command(s) to execute when pressed.
|
||||
-button "label" command
|
||||
- Ability to specify a file to provide the text.
|
||||
-file notice.txt
|
||||
- Scrollable panel when text exceeds window size.
|
||||
|
||||
Compile:
|
||||
gcc -O notify_popup.c `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0` -o notify_popup
|
||||
|
||||
Public Domain.
|
||||
***********************************************************************************************/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "gtk_utils.c"
|
||||
|
||||
char *my_version="1.0";
|
||||
|
||||
|
||||
void OK_Button( GtkWidget *win, void *data )
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
GtkWidget *winpanel;
|
||||
int winwidth, winhght, ypos=10, minht=80, minwd=250, nsecs=0;
|
||||
int j, k=1, col=0, maxcols=0, nlines=0, num_in=0, cnt=0, expire=0;
|
||||
char *text_in[999], *mesg[999], line[4096];
|
||||
double endtime=0.0;
|
||||
|
||||
/* Accept command-line arguments. */
|
||||
k = 1;
|
||||
while (k < argc)
|
||||
{
|
||||
if (strcmp( argv[k], "-delay" ) == 0)
|
||||
{
|
||||
k++;
|
||||
if (k == argc)
|
||||
{ printf("Missing value after option '%s'\n", argv[k-1] ); exit(1); }
|
||||
if (sscanf(argv[k], "%d", &nsecs ) != 1)
|
||||
{ printf("Bad integer after option '%s'\n", argv[k-1] ); exit(1); }
|
||||
}
|
||||
else
|
||||
if (strcmp( argv[k], "-expire" ) == 0)
|
||||
{
|
||||
k++;
|
||||
if (k == argc)
|
||||
{ printf("Missing value after option '%s'\n", argv[k-1] ); exit(1); }
|
||||
if (sscanf(argv[k], "%d", &expire ) != 1)
|
||||
{ printf("Bad integer after option '%s'\n", argv[k-1] ); exit(1); }
|
||||
endtime = Report_Time() + (double)expire;
|
||||
}
|
||||
else
|
||||
if (strcmp( argv[k], "-help" ) == 0)
|
||||
{
|
||||
printf("Notify Popup version %s:\n Options:\n", my_version );
|
||||
printf(" -delay n - Delays popping up for n-seconds.\n");
|
||||
printf(" -expire nn - Automatically close after nn seconds.\n\n");
|
||||
exit(0);
|
||||
}
|
||||
else
|
||||
text_in[num_in++] = strdup( argv[k] ); /* Accept text to display. */
|
||||
k++;
|
||||
}
|
||||
if (num_in == 0)
|
||||
{
|
||||
printf("Error: No text to display on command-line.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* Scan through the text, breaking it into lines. */
|
||||
for (cnt = 0; cnt < num_in; cnt++)
|
||||
{ /*cnt*/
|
||||
col = 0;
|
||||
j = 0;
|
||||
while (text_in[cnt][j] != '\0') /* Determine max line width and number of rows. */
|
||||
{ /*loop*/
|
||||
if ((text_in[cnt][j] == '\n') || ((text_in[cnt][j] == ' ') && (col >= 90)) || (col > 180))
|
||||
{
|
||||
if ((text_in[cnt][j] != '\n') && (text_in[cnt][j] != ' '))
|
||||
line[col++] = text_in[cnt][j++];
|
||||
line[col] = '\0';
|
||||
mesg[nlines++] = strdup( line );
|
||||
if (nlines > 900) { printf("Error: Too many lines.\n"); exit(1); }
|
||||
if (col > maxcols)
|
||||
maxcols = col;
|
||||
col = 0;
|
||||
}
|
||||
else
|
||||
line[col++] = text_in[cnt][j];
|
||||
j++;
|
||||
if (j >= 1024) { printf("Error: line too long.\n"); exit(1); }
|
||||
} /*loop*/
|
||||
if (col > 0)
|
||||
{
|
||||
line[col] = '\0';
|
||||
mesg[nlines++] = strdup( line );
|
||||
if (col > maxcols)
|
||||
maxcols = col;
|
||||
}
|
||||
} /*cnt*/
|
||||
|
||||
/* Determine the needed window size. */
|
||||
winwidth = 30 + maxcols * 7;
|
||||
winhght = 65 + 18 * nlines;
|
||||
if (winwidth < minwd)
|
||||
winwidth = minwd;
|
||||
if (winhght < minht)
|
||||
winhght = minht;
|
||||
|
||||
if (nsecs > 0)
|
||||
Sleep_seconds( (float)nsecs );
|
||||
|
||||
/* Initialize and generate top-outer window. */
|
||||
winpanel = init_top_outer_window( &argc, &argv, winwidth, winhght, "Notice", 0, 0 );
|
||||
|
||||
for (j=0; j < nlines; j++)
|
||||
{
|
||||
make_label( winpanel, 20, ypos, mesg[j] );
|
||||
ypos = ypos + 18;
|
||||
}
|
||||
make_button( winpanel, winwidth/2 - 30, winhght - 38, " OK ", OK_Button, 0 );
|
||||
|
||||
/* When the window is given the 'forced delete_event' signal by the window manager, exit the program. */
|
||||
gtk_signal_connect( GTK_OBJECT(outer_window), "delete_event", GTK_SIGNAL_FUNC(exit), NULL );
|
||||
|
||||
gtk_widget_show_all( outer_window );
|
||||
while (1) // gtk_main();
|
||||
{
|
||||
UpdateCheck(); /* Check for, and serve, any pending GTK window/interaction events. */
|
||||
Sleep_seconds( 0.1 ); /* No need to spin faster than ~10 Hz update rate. */
|
||||
if (expire > 0)
|
||||
{
|
||||
if (Report_Time() > endtime + (double)nsecs)
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
177
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/notify_popup3.c
Executable file
177
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/notify_popup3.c
Executable file
@@ -0,0 +1,177 @@
|
||||
/************************************************************************************************
|
||||
Notify_Popup - Stand alone pop-up notifier utility.
|
||||
Accepts a message on command-line, and pops up a small window with the message.
|
||||
Useful for alerting users of warnings or errors, especially for non-graphical programs or
|
||||
scripts.
|
||||
|
||||
Amazing there is not already a universal command like this. It should be the same command
|
||||
natively available within *all* operating systems and platforms. But could not be found.
|
||||
(Other than "xmessage" in Linux, but is often not installed. Or "osascript" in MacOS, but indirect.)
|
||||
So here it is.
|
||||
|
||||
Multi-word messages should be quoted.
|
||||
Example:
|
||||
notify_popup "Warning: Bad file detected."
|
||||
|
||||
You can enter multiple explicit lines with separate arguments, like:
|
||||
Example:
|
||||
notify_popup "Please re-run the program." "Because of bad data." " -bye"
|
||||
|
||||
Options:
|
||||
-delay n - Delays popping-up for n-seconds.
|
||||
-expire nn - Automatically close after nn seconds.
|
||||
|
||||
Planned future features:
|
||||
- Command-line options to specify:
|
||||
- Message text color, size, & boldness.
|
||||
-textcolor r g b, (RGB values in 0.0 - 1.0 range)
|
||||
-textsize fs (Default Font size = 10)
|
||||
-textbold
|
||||
-textnormal
|
||||
- Ability to specify line-breaks in message with a symbol. (In addition to the method above.)
|
||||
\n
|
||||
- Window name (ex. Note, Warning, Error, etc.)
|
||||
-title "Warning"
|
||||
- Optional button(s), with command(s) to execute when pressed.
|
||||
-button "label" command
|
||||
- Ability to specify a file to provide the text.
|
||||
-file notice.txt
|
||||
- Scrollable panel when text exceeds window size.
|
||||
|
||||
Compile:
|
||||
gcc -O notify_popup3.c `pkg-config --cflags gtk+-3.0` `pkg-config --libs gtk+-3.0` -o notify_popup
|
||||
|
||||
Public Domain.
|
||||
***********************************************************************************************/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "gtk_utils3.c"
|
||||
|
||||
char *my_version="1.0";
|
||||
|
||||
|
||||
void OK_Button( GtkWidget *win, void *data )
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
GtkWidget *winpanel;
|
||||
int winwidth, winhght, ypos=10, minht=80, minwd=250, nsecs=0;
|
||||
int j, k=1, col=0, maxcols=0, nlines=0, num_in=0, cnt=0, expire=0;
|
||||
char *text_in[999], *mesg[999], line[4096];
|
||||
double endtime=0.0;
|
||||
|
||||
/* Accept command-line arguments. */
|
||||
k = 1;
|
||||
while (k < argc)
|
||||
{
|
||||
if (strcmp( argv[k], "-delay" ) == 0)
|
||||
{
|
||||
k++;
|
||||
if (k == argc)
|
||||
{ printf("Missing value after option '%s'\n", argv[k-1] ); exit(1); }
|
||||
if (sscanf(argv[k], "%d", &nsecs ) != 1)
|
||||
{ printf("Bad integer after option '%s'\n", argv[k-1] ); exit(1); }
|
||||
}
|
||||
else
|
||||
if (strcmp( argv[k], "-expire" ) == 0)
|
||||
{
|
||||
k++;
|
||||
if (k == argc)
|
||||
{ printf("Missing value after option '%s'\n", argv[k-1] ); exit(1); }
|
||||
if (sscanf(argv[k], "%d", &expire ) != 1)
|
||||
{ printf("Bad integer after option '%s'\n", argv[k-1] ); exit(1); }
|
||||
endtime = Report_Time() + (double)expire;
|
||||
}
|
||||
else
|
||||
if (strcmp( argv[k], "-help" ) == 0)
|
||||
{
|
||||
printf("Notify Popup version %s:\n Options:\n", my_version );
|
||||
printf(" -delay n - Delays popping up for n-seconds.\n");
|
||||
printf(" -expire nn - Automatically close after nn seconds.\n\n");
|
||||
exit(0);
|
||||
}
|
||||
else
|
||||
text_in[num_in++] = strdup( argv[k] ); /* Accept text to display. */
|
||||
k++;
|
||||
}
|
||||
if (num_in == 0)
|
||||
{
|
||||
printf("Error: No text to display on command-line.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* Scan through the text, breaking it into lines. */
|
||||
for (cnt = 0; cnt < num_in; cnt++)
|
||||
{ /*cnt*/
|
||||
col = 0;
|
||||
j = 0;
|
||||
while (text_in[cnt][j] != '\0') /* Determine max line width and number of rows. */
|
||||
{ /*loop*/
|
||||
if ((text_in[cnt][j] == '\n') || ((text_in[cnt][j] == ' ') && (col >= 90)) || (col > 180))
|
||||
{
|
||||
if ((text_in[cnt][j] != '\n') && (text_in[cnt][j] != ' '))
|
||||
line[col++] = text_in[cnt][j++];
|
||||
line[col] = '\0';
|
||||
mesg[nlines++] = strdup( line );
|
||||
if (nlines > 900) { printf("Error: Too many lines.\n"); exit(1); }
|
||||
if (col > maxcols)
|
||||
maxcols = col;
|
||||
col = 0;
|
||||
}
|
||||
else
|
||||
line[col++] = text_in[cnt][j];
|
||||
j++;
|
||||
if (j >= 1024) { printf("Error: line too long.\n"); exit(1); }
|
||||
} /*loop*/
|
||||
if (col > 0)
|
||||
{
|
||||
line[col] = '\0';
|
||||
mesg[nlines++] = strdup( line );
|
||||
if (col > maxcols)
|
||||
maxcols = col;
|
||||
}
|
||||
} /*cnt*/
|
||||
|
||||
/* Determine the needed window size. */
|
||||
winwidth = 30 + maxcols * 7;
|
||||
winhght = 65 + 18 * nlines;
|
||||
if (winwidth < minwd)
|
||||
winwidth = minwd;
|
||||
if (winhght < minht)
|
||||
winhght = minht;
|
||||
|
||||
if (nsecs > 0)
|
||||
Sleep_seconds( (float)nsecs );
|
||||
|
||||
/* Initialize and generate top-outer window. */
|
||||
winpanel = init_top_outer_window( &argc, &argv, winwidth, winhght, "Notice", 0, 0 );
|
||||
|
||||
for (j=0; j < nlines; j++)
|
||||
{
|
||||
make_label( winpanel, 20, ypos, mesg[j] );
|
||||
ypos = ypos + 18;
|
||||
}
|
||||
make_button( winpanel, winwidth/2 - 30, winhght - 38, " OK ", OK_Button, 0 );
|
||||
|
||||
/* When the window is given the 'forced delete_event' signal by the window manager, exit the program. */
|
||||
g_signal_connect( outer_window, "delete_event", G_CALLBACK(exit), NULL );
|
||||
|
||||
gtk_widget_show_all( outer_window );
|
||||
while (1) // gtk_main();
|
||||
{
|
||||
UpdateCheck(); /* Check for, and serve, any pending GTK window/interaction events. */
|
||||
Sleep_seconds( 0.1 ); /* No need to spin faster than ~10 Hz update rate. */
|
||||
if (expire > 0)
|
||||
{
|
||||
if (Report_Time() > endtime + (double)nsecs)
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
4457
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/ots_gui2.c
Executable file
4457
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/ots_gui2.c
Executable file
File diff suppressed because it is too large
Load Diff
4501
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/ots_gui3.c
Executable file
4501
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Gui_gtk/ots_gui3.c
Executable file
File diff suppressed because it is too large
Load Diff
107
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Makefile
Executable file
107
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Makefile
Executable file
@@ -0,0 +1,107 @@
|
||||
#============================
|
||||
# Makefile for OpenTaxSolver
|
||||
#============================
|
||||
|
||||
# Compiler options
|
||||
CC = cc
|
||||
CFLAGS =
|
||||
COPTIM = -O -Wall
|
||||
LDFLAGS = -lm
|
||||
|
||||
# For MSYS1.0, define "CFLAGS = -std=c99"
|
||||
# in your build env.
|
||||
|
||||
# Note that under Windows, in an MSYS2 shell, the ".exe" suffix is implied for
|
||||
# the EXE_* file list macro values. This maintains compatiblity with *nix
|
||||
# platforms, which don't use the ".exe" suffix for programs. However, in
|
||||
# MSYS1, this handling is not automatic; currently, MSYS1 is being used to
|
||||
# build standalone Windows versions of OTS, since MSYS 2.0 produces exe files
|
||||
# which fault at startup. TODO: Resolve the MSYS2 build issue, and provide
|
||||
# instructions for setting up a Windows MINGW build environment.
|
||||
|
||||
# EFS = Executable File Suffix; not-defined (empty) for Linux. Includes the "."
|
||||
# separator. To detect whether a ".exe" suffix should be added to executable
|
||||
# file names, The "MSYSTEM" environment variable is detected. If detected,
|
||||
# regardless of value, a ".exe" file extension is used.
|
||||
|
||||
ifneq ($(strip $(MSYSTEM)),)
|
||||
EFS := .exe
|
||||
endif
|
||||
|
||||
#====================
|
||||
#====== Macros ======
|
||||
#====================
|
||||
|
||||
#====== Taxsolver programs; in ../bin/ ======
|
||||
# Add new taxsolver modules to this list
|
||||
TAXSOLVE := \
|
||||
taxsolve_US_1040_2024 \
|
||||
taxsolve_US_1040_Sched_C_2024 \
|
||||
taxsolve_PA_40_2024 \
|
||||
taxsolve_NJ_1040_2024 \
|
||||
taxsolve_VA_760_2024 \
|
||||
taxsolve_NC_D400_2024 \
|
||||
taxsolve_OH_IT1040_2024 \
|
||||
taxsolve_NY_IT201_2024 \
|
||||
taxsolve_MA_1_2024 \
|
||||
taxsolve_CA_540_2024 \
|
||||
taxsolve_HSA_f8889 \
|
||||
taxsolve_f8606 \
|
||||
taxsolve_US_1040_Sched_SE_2024 \
|
||||
taxsolve_f8812_2024 \
|
||||
taxsolve_f8829_2024 \
|
||||
taxsolve_f8995_2024 \
|
||||
taxsolve_f8959_2024 \
|
||||
taxsolve_f8960_2024 \
|
||||
taxsolve_f2210_2024 \
|
||||
taxsolve_CA_5805_2024 \
|
||||
taxsolve_AZ_140_2024 \
|
||||
taxsolve_MI_1040_2024 \
|
||||
taxsolve_OR_40_2024
|
||||
|
||||
# List of taxsolver programs in ../bin/
|
||||
EXE_TAXSOLVE := $(patsubst %,../bin/%$(EFS), $(TAXSOLVE))
|
||||
|
||||
#====== IO programs; in ../bin/ ======
|
||||
IO := \
|
||||
universal_pdf_file_modifier \
|
||||
convert_results2xfdf
|
||||
|
||||
# List of ior programs in ../bin/
|
||||
EXE_IO := $(patsubst %,../bin/%$(EFS), $(IO))
|
||||
|
||||
#====== Top level programs ; in ../ ======
|
||||
TOP := \
|
||||
Run_taxsolve_GUI
|
||||
|
||||
# List of top level programs
|
||||
EXE_TOP := $(patsubst %,../%$(EFS), $(TOP))
|
||||
|
||||
|
||||
#===================
|
||||
#====== Rules ======
|
||||
#===================
|
||||
|
||||
all: $(EXE_TAXSOLVE) $(EXE_IO) $(EXE_TOP)
|
||||
|
||||
# Pattern rule for taxsolver programs in ../bin/
|
||||
# includes dependency on taxsolve_routines.c
|
||||
$(EXE_TAXSOLVE): ../bin/%$(EFS): %.c taxsolve_routines.c
|
||||
$(CC) $(CFLAGS) $(COPTIM) -o $@ $< $(LDFLAGS)
|
||||
|
||||
# Pattern rule for io programs in ../bin/
|
||||
$(EXE_IO): ../bin/%$(EFS): %.c
|
||||
$(CC) $(CFLAGS) $(COPTIM) -o $@ $< $(LDFLAGS)
|
||||
|
||||
# Pattern rule for top level programs in ../
|
||||
$(EXE_TOP): ../%$(EFS): %.c
|
||||
$(CC) $(CFLAGS) $(COPTIM) -o $@ $< $(LDFLAGS)
|
||||
|
||||
|
||||
clean:
|
||||
rm -fv $(EXE_TAXSOLVE) $(EXE_IO) $(EXE_TOP)
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
260
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Run_taxsolve_GUI.c
Executable file
260
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/Run_taxsolve_GUI.c
Executable file
@@ -0,0 +1,260 @@
|
||||
/***
|
||||
Run_taxsolve_GUI.c - This program merely invokes "bin/ots_gui2.exe".
|
||||
It is a convenience, because it is easily found at the top directory
|
||||
of the OTS installation. So new users can make a shortcut to it.
|
||||
And it enables starting the application by double-clicking on the
|
||||
start-icon (or file), unlike the previously used command-script.
|
||||
(Some window managers would open the command-script for editing
|
||||
instead of executing it, since being a script, it was a text file.
|
||||
Other window managers would ask whether to run or display, which
|
||||
this is an uneeded extra step, and it did also confuse some users.
|
||||
)
|
||||
|
||||
GNU Public License - GPL:
|
||||
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., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
Compile:
|
||||
cc -O Run_taxsolve_GUI.c -o ../Run_taxsolve_GUI
|
||||
***/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#define MaxStr 8192
|
||||
|
||||
char path[MaxStr], cmd[MaxStr], cmd2[MaxStr], bin_path[MaxStr];
|
||||
int verbose=0;
|
||||
|
||||
|
||||
void caps_cpy( char *wrd )
|
||||
{
|
||||
int j=0;
|
||||
while (wrd[j] != '\0')
|
||||
{
|
||||
wrd[j] = toupper( wrd[j] );
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void safe_strcpy( char *dst, char *src, int maxlen )
|
||||
{
|
||||
int j=0;
|
||||
while ((j < maxlen-1) && (src[j] != '\0'))
|
||||
{
|
||||
dst[j] = src[j];
|
||||
j++;
|
||||
}
|
||||
dst[j] = '\0';
|
||||
}
|
||||
|
||||
void safe_strcat( char *dst, char *src, int maxlen )
|
||||
{
|
||||
int j=0, k;
|
||||
k = strlen( dst );
|
||||
while ((k < maxlen-1) && (src[j] != '\0'))
|
||||
{
|
||||
dst[k++] = src[j++];
|
||||
}
|
||||
dst[k] = '\0';
|
||||
}
|
||||
|
||||
|
||||
#ifndef PLATFORM_KIND
|
||||
#define Posix_Platform 0
|
||||
#define Mingw_Platform 1
|
||||
#define MsVisC_Platform 2
|
||||
#ifdef __CYGWIN32__
|
||||
#ifndef __CYGWIN__
|
||||
#define __CYGWIN__ __CYGWIN32__
|
||||
#endif
|
||||
#endif
|
||||
#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MSYS__)
|
||||
#define PLATFORM_KIND Mingw_Platform /* MinGW or like platform */
|
||||
#elif defined(__WIN32) || defined(WIN32)
|
||||
#define PLATFORM_KIND MsVisC_Platform /* microsoft visual C */
|
||||
#else
|
||||
#define PLATFORM_KIND Posix_Platform /* Posix/Linux/Unix */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
char *substr;
|
||||
int k=1, gui_version_to_invoke=2, gui_size=0, darkmode=0;
|
||||
|
||||
while (k < argc)
|
||||
{
|
||||
if (strcmp( argv[k], "-gui3" ) == 0)
|
||||
{
|
||||
gui_version_to_invoke = 3;
|
||||
printf("Will use 'ots_gui%d'.\n", gui_version_to_invoke );
|
||||
}
|
||||
else
|
||||
if (strcmp( argv[k], "-large" ) == 0)
|
||||
{
|
||||
gui_size = 1;
|
||||
gui_version_to_invoke = 3;
|
||||
printf("Will use Large-mode with 'ots_gui%d'.\n", gui_version_to_invoke );
|
||||
}
|
||||
else
|
||||
if (strcmp( argv[k], "-darkmode" ) == 0)
|
||||
{
|
||||
darkmode = 1;
|
||||
gui_version_to_invoke = 3;
|
||||
printf("Will use 'dark-mode' with 'ots_gui%d'.\n", gui_version_to_invoke );
|
||||
}
|
||||
else
|
||||
if (strcmp( argv[k], "-v" ) == 0)
|
||||
{
|
||||
verbose = 1;
|
||||
printf("Verbose mode ON.\n");
|
||||
}
|
||||
else
|
||||
if (strcmp( argv[k], "-help" ) == 0)
|
||||
{
|
||||
printf("RunTaxSolve Help:\n");
|
||||
printf(" This program is a convenient script for starting the OTS GUI\n");
|
||||
printf(" in a way that is unified and portable to all platforms.\n");
|
||||
printf("\n");
|
||||
printf(" Options:\n");
|
||||
printf(" -v - Verbose mode,\n");
|
||||
printf(" -gui3 - Use the newer (Gtk-3) version of the OTS GUI.\n");
|
||||
printf(" -large - Large GUI mode for High-DPI screens.\n");
|
||||
printf(" -darkmode - Setss GUI to use 'dark-mode'.\n");
|
||||
printf("\n");
|
||||
exit(0);
|
||||
}
|
||||
else
|
||||
printf("Unknown option '%s'\n", argv[k] );
|
||||
k++;
|
||||
}
|
||||
|
||||
strncpy( path, argv[0], MaxStr );
|
||||
if (verbose) printf("RunTaxSolve invoked as: '%s'\n", path );
|
||||
|
||||
#if (PLATFORM_KIND != Posix_Platform)
|
||||
|
||||
{ /*mswin*/
|
||||
char drive_letter='c';
|
||||
caps_cpy( path );
|
||||
if (verbose) printf("\tPath: '%s'\n", path );
|
||||
if (path[1] == ':')
|
||||
{ /*Absolute_reference*/
|
||||
drive_letter = path[0];
|
||||
if (verbose) printf("\tAbsolutePath: driveletter = %c\n", drive_letter );
|
||||
safe_strcpy( bin_path, &(path[2]), MaxStr );
|
||||
if (verbose) printf("\t BinPath = '%s'\n", bin_path );
|
||||
substr = strstr(bin_path,"\\RUN_TAXSOLVE_GUI");
|
||||
if (substr != 0)
|
||||
{
|
||||
substr[0] = '\0';
|
||||
safe_strcat( bin_path, "\\bin", MaxStr );
|
||||
sprintf(cmd,"set path=%c:%s;%%PATH%% & ", drive_letter, bin_path );
|
||||
|
||||
if (gui_size)
|
||||
safe_strcat( cmd, "set GDK_SCALE=2 & ", MaxStr );
|
||||
if (darkmode)
|
||||
safe_strcat( cmd, "set GTK_THEME=Adwaita:dark & ", MaxStr );
|
||||
|
||||
sprintf(cmd2,"start /B %c:\"%s\\ots_gui%d.exe\"",
|
||||
drive_letter, bin_path, gui_version_to_invoke );
|
||||
safe_strcat( cmd, cmd2, MaxStr );
|
||||
}
|
||||
else { printf("Unexpected Error\n"); exit(1); }
|
||||
} /*Absolute_reference*/
|
||||
else
|
||||
{ /*Local_reference*/
|
||||
// printf("Start path must begin with drive-letter:\n");
|
||||
// if ((path[0] != '/') && (path[0] != '\\')) exit(1);
|
||||
if (verbose) printf("\tLocalReference: (no colon in path)\n");
|
||||
safe_strcpy( bin_path, path, MaxStr );
|
||||
if (verbose) printf("\t BinPath = '%s'\n", bin_path );
|
||||
substr = strstr(bin_path,"RUN_TAXSOLVE_GUI");
|
||||
if (substr != 0)
|
||||
{
|
||||
substr[0] = '\0';
|
||||
if (strlen( bin_path ) > 0)
|
||||
safe_strcat( bin_path, "bin", MaxStr );
|
||||
else
|
||||
safe_strcpy( bin_path, "bin", MaxStr );
|
||||
sprintf(cmd,"set path=%s;%%PATH%% & ", bin_path );
|
||||
|
||||
if (gui_size)
|
||||
safe_strcat( cmd, "set GDK_SCALE=2 & ", MaxStr );
|
||||
if (darkmode)
|
||||
safe_strcat( cmd, "set GTK_THEME=Adwaita:dark & ", MaxStr );
|
||||
|
||||
sprintf(cmd2,"start /B %s\\ots_gui%d.exe", bin_path, gui_version_to_invoke );
|
||||
safe_strcat( cmd, cmd2, MaxStr );
|
||||
}
|
||||
else { printf("Unexpected Error2\n"); exit(1); }
|
||||
} /*Local_reference*/
|
||||
} /*mswin*/
|
||||
|
||||
#else
|
||||
|
||||
{ /*posix*/
|
||||
int j;
|
||||
substr = strstr( path, "Run_taxsolve_GUI" );
|
||||
if (substr == 0) { printf("Could not find path.\nSaw: '%s'\n", bin_path); exit(1); }
|
||||
substr[0] = '\0'; /* The "path" variable now holds the path to OTS's top directory. */
|
||||
if (verbose) printf("\tOTS Path = '%s'\n", path );
|
||||
|
||||
safe_strcpy( bin_path, path, MaxStr );
|
||||
j = strlen( bin_path );
|
||||
if ((j > 0) && (bin_path[j-1] != '/')) safe_strcat( bin_path, "/", MaxStr );
|
||||
if (j == 0) safe_strcpy( bin_path, "./", MaxStr );
|
||||
sprintf(cmd,"bin/ots_gui%d", gui_version_to_invoke );
|
||||
safe_strcat( bin_path, cmd, MaxStr );
|
||||
|
||||
#ifdef __APPLE__
|
||||
/* Apple's Finder starts OTS with "PWD" set to user's home-dir, instead of OTS-dir. */
|
||||
/* So "cd" to OTS just before starting GUI. */
|
||||
safe_strcpy( cmd, "cd \"", MaxStr );
|
||||
safe_strcat( cmd, path, MaxStr );
|
||||
safe_strcat( cmd, "\" ; ", MaxStr );
|
||||
if (gui_size)
|
||||
safe_strcat( cmd, "export GDK_SCALE=2; ", MaxStr );
|
||||
if (darkmode)
|
||||
safe_strcat( cmd, "export GTK_THEME=Adwaita:dark; ", MaxStr );
|
||||
safe_strcat( cmd, "\"", MaxStr );
|
||||
safe_strcat( cmd, bin_path, MaxStr );
|
||||
safe_strcat( cmd, "\" &", MaxStr );
|
||||
#else
|
||||
/* Linux, etc. */
|
||||
safe_strcpy( cmd, "", MaxStr );
|
||||
if (gui_size)
|
||||
safe_strcat( cmd, "export GDK_SCALE=2; ", MaxStr );
|
||||
if (darkmode)
|
||||
safe_strcat( cmd, "export GTK_THEME=Adwaita:dark; ", MaxStr );
|
||||
safe_strcat( cmd, "\"", MaxStr );
|
||||
safe_strcat( cmd, bin_path, MaxStr );
|
||||
safe_strcat( cmd, "\" &", MaxStr );
|
||||
#endif
|
||||
} /*posix*/
|
||||
|
||||
#endif
|
||||
|
||||
printf("Issuing: '%s'\n", cmd );
|
||||
system( cmd );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
338
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/convert_results2xfdf.c
Executable file
338
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/convert_results2xfdf.c
Executable file
@@ -0,0 +1,338 @@
|
||||
/*************************************************************************
|
||||
convert_results2xfdf.c - This program reads an OTS result output file,
|
||||
along with a cross-reference file, and produces the corresponding "xfdf"
|
||||
file. This can then be fed to a PDFTK tool, along with the corresponding
|
||||
government supplied PDF fill-in form file. The PDFTK tool then fills
|
||||
out the fields of the PDF file with the OTS result data.
|
||||
|
||||
The cross-reference file pairs the line-labels in the OTS result file
|
||||
with their corresponding field-names in the government supplied PDF
|
||||
fill-in form file. The "xfdf" file needs these field names.
|
||||
|
||||
Compile:
|
||||
cc -O convert_results2xfdf.c -o convert_results2xfdf
|
||||
|
||||
Usage:
|
||||
convert_results2xfdf xref.data result_out.txt
|
||||
(It then produces "result_out.xfdf".)
|
||||
|
||||
This program implements a method to use XFDF that was originally
|
||||
developed and provided by Daniel Walker. Therefore, major credit
|
||||
goes to Daniel. ( dwalker at fifo99.com )
|
||||
|
||||
GNU Public License - GPL:
|
||||
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., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
Author: Skeet Moncur (the elder) Email: skeeter_mon at yahoo.com
|
||||
Date: Feb 9, 2022
|
||||
**************************************************************************/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define MAXLN 10000
|
||||
|
||||
float version=0.02;
|
||||
|
||||
enum form_flags { DOLLAR_AND_CENTS, DOLLAR_AND_CENTS_ONE, DOLLAR_ONLY,
|
||||
USE_KEY_IN_FORM, IF_SET, FOUR_DIGITS, KEY_VALUE };
|
||||
|
||||
struct xref_rec
|
||||
{
|
||||
char *linelabel, *fieldname, *centsfield;
|
||||
enum form_flags format;
|
||||
struct xref_rec *nxt;
|
||||
} *xref_list=0;
|
||||
|
||||
int verbose=0;
|
||||
|
||||
|
||||
void add_xref( char *linelabel, char *format, char *fieldname, char *centsfield, int linenum )
|
||||
{
|
||||
struct xref_rec *new;
|
||||
new = (struct xref_rec *)calloc( 1, sizeof( struct xref_rec ) );
|
||||
new->linelabel = strdup( linelabel );
|
||||
new->fieldname = strdup( fieldname );
|
||||
new->centsfield = strdup( centsfield );
|
||||
if (verbose)
|
||||
printf(" AddingXref( '%s', '%s', '%s', '%s', %d )\n",
|
||||
linelabel, format, fieldname, centsfield, linenum );
|
||||
if (strcmp( format, "DOLLAR_AND_CENTS" ) == 0)
|
||||
new->format = DOLLAR_AND_CENTS;
|
||||
else
|
||||
if (strcmp( format, "DOLLAR_AND_CENTS_ONE" ) == 0)
|
||||
new->format = DOLLAR_AND_CENTS_ONE;
|
||||
else
|
||||
if (strcmp( format, "DOLLAR_ONLY" ) == 0)
|
||||
new->format = DOLLAR_ONLY;
|
||||
else
|
||||
if (strcmp( format, "USE_KEY_IN_FORM" ) == 0)
|
||||
new->format = USE_KEY_IN_FORM;
|
||||
else
|
||||
if (strcmp( format, "IF_SET" ) == 0)
|
||||
new->format = IF_SET;
|
||||
else
|
||||
if (strcmp( format, "FOUR_DIGITS" ) == 0)
|
||||
new->format = FOUR_DIGITS;
|
||||
else
|
||||
if (strcmp( format, "KEY_VALUE" ) == 0)
|
||||
new->format = KEY_VALUE;
|
||||
else
|
||||
{
|
||||
printf("Error: Unknown XFDF format '%s' for label '%s' on line %d\n",
|
||||
format, linelabel, linenum );
|
||||
exit(1);
|
||||
}
|
||||
new->nxt = xref_list;
|
||||
xref_list = new;
|
||||
}
|
||||
|
||||
|
||||
int m_round( double x )
|
||||
{
|
||||
if (x >= 0.0) return (int)(x + 0.5);
|
||||
else return (int)(x - 0.5);
|
||||
}
|
||||
|
||||
|
||||
void set_xfdf( FILE *outfile, char *label, char *value )
|
||||
{
|
||||
double x;
|
||||
struct xref_rec *xref_item;
|
||||
|
||||
if (verbose) printf(" SetXFDF( '%s', '%s' )\n",label, value );
|
||||
xref_item = xref_list;
|
||||
while ((xref_item != 0) && (strcmp( xref_item->linelabel, label ) != 0))
|
||||
xref_item = xref_item->nxt;
|
||||
if (xref_item == 0) return;
|
||||
else
|
||||
{
|
||||
switch (xref_item->format)
|
||||
{
|
||||
case DOLLAR_ONLY:
|
||||
fprintf(outfile, "\t<field name=\"%s\">\n", xref_item->fieldname );
|
||||
if (sscanf( value, "%lf", &x ) != 1)
|
||||
{
|
||||
printf("Error: Value on line %s is not numeric (%s)\n", label, value );
|
||||
exit(1);
|
||||
}
|
||||
fprintf(outfile, "\t <value>%d</value>\n", m_round( x ) );
|
||||
fprintf(outfile,"\t</field>\n");
|
||||
break;
|
||||
|
||||
case DOLLAR_AND_CENTS:
|
||||
fprintf(outfile, "\t<field name=\"%s\">\n", xref_item->fieldname );
|
||||
if (sscanf( value, "%lf", &x ) != 1)
|
||||
{
|
||||
printf("Error: Value on line %s is not numeric (%s)\n", label, value );
|
||||
exit(1);
|
||||
}
|
||||
fprintf(outfile, "\t <value>%d</value>\n", (int)x );
|
||||
fprintf(outfile, "\t</field>\n");
|
||||
fprintf(outfile, "\t<field name=\"%s\">\n", xref_item->centsfield );
|
||||
fprintf(outfile, "\t <value>%d</value>\n", abs( (int)(100.0 * (x - (int)x)) ) );
|
||||
fprintf(outfile, "\t</field>\n");
|
||||
break;
|
||||
|
||||
case DOLLAR_AND_CENTS_ONE:
|
||||
fprintf(outfile, "\t<field name=\"%s\">\n", xref_item->fieldname );
|
||||
fprintf(outfile, "\t <value>%s</value>\n", value );
|
||||
fprintf(outfile, "\t</field>\n");
|
||||
break;
|
||||
|
||||
case FOUR_DIGITS:
|
||||
fprintf(outfile, "\t<field name=\"%s\">\n", xref_item->fieldname );
|
||||
if (sscanf( value, "%lf", &x ) != 1)
|
||||
{
|
||||
printf("Error: Value on line %s is not numeric (%s)\n", label, value );
|
||||
exit(1);
|
||||
}
|
||||
fprintf(outfile, "\t <value>%4.f</value>\n", 10000.0 * x );
|
||||
fprintf(outfile, "\t</field>\n");
|
||||
break;
|
||||
|
||||
case USE_KEY_IN_FORM: /* Base on line lable. */
|
||||
fprintf(outfile, "\t<field name=\"%s\">\n", xref_item->fieldname );
|
||||
fprintf(outfile, "\t <value>%s</value>\n", xref_item->centsfield );
|
||||
fprintf(outfile, "\t</field>\n");
|
||||
break;
|
||||
|
||||
case IF_SET: /* Base on line value. */
|
||||
if (value[0] == xref_item->centsfield[0])
|
||||
{
|
||||
fprintf(outfile, "\t<field name=\"%s\">\n", xref_item->fieldname );
|
||||
fprintf(outfile, "\t <value>%s</value>\n", xref_item->centsfield );
|
||||
fprintf(outfile, "\t</field>\n");
|
||||
}
|
||||
break;
|
||||
|
||||
case KEY_VALUE: /* Not used. */
|
||||
fprintf(outfile, "\t<field name=\"%s\">\n", xref_item->fieldname );
|
||||
fprintf(outfile, "\t <value>%s</value>\n", xref_item->centsfield );
|
||||
fprintf(outfile, "\t</field>\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void next_word( char *line, char *word, char *delim )
|
||||
{
|
||||
int k=0, j=0, m=0, flag=1;
|
||||
while ((line[k] != '\0') && (line[k] != '"') && (flag)) /* Consume any leading delimiters */
|
||||
{
|
||||
j = 0;
|
||||
while ((delim[j] != '\0') && (line[k] != delim[j])) j = j + 1;
|
||||
if (line[k] != delim[j]) flag = 0; else { k++; }
|
||||
}
|
||||
if (line[k] == '"')
|
||||
{ /*quoted*/
|
||||
k++;
|
||||
while ((line[k] != '\0') && (line[k] != '"'))
|
||||
word[m++] = line[k++]; /* Copy chars until next quote. */
|
||||
if (line[k] == '\0') printf("Warning: Missing end-quote\n");
|
||||
else k++;
|
||||
} /*quoted*/
|
||||
else
|
||||
{ /*normal*/
|
||||
while ((line[k] != '\0') && (!flag)) /* Copy chars until next delimiter. */
|
||||
{
|
||||
word[m++] = line[k++];
|
||||
if (line[k] != '\0')
|
||||
{
|
||||
j = 0;
|
||||
while ((delim[j] != '\0') && (line[k] != delim[j])) j = j + 1;
|
||||
if (line[k] == delim[j]) flag = 1;
|
||||
}
|
||||
}
|
||||
} /*normal*/
|
||||
j = 0; /* Shorten line. */
|
||||
while (line[k] != '\0') line[j++] = line[k++];
|
||||
line[j] = '\0'; /* Terminate the char-strings. */
|
||||
word[m] = '\0';
|
||||
}
|
||||
|
||||
|
||||
void show_help()
|
||||
{
|
||||
printf("\nConvert_Results2Xfdf Version %g\n", version );
|
||||
printf(" This program reads an OTS result output file,\n");
|
||||
printf(" along with a cross-reference file, and produces the corresponding 'xfdf'\n");
|
||||
printf(" file. This can then be fed to a PDFTK tool, along with the corresponding\n");
|
||||
printf(" government supplied PDF fill-in form file. The PDFTK tool then fills\n");
|
||||
printf(" out the fields of the PDF file with the OTS result data.\n");
|
||||
printf("\n");
|
||||
printf(" The cross-reference file pairs the line-labels in the OTS result file\n");
|
||||
printf(" with their corresponding field-names in the government supplied PDF\n");
|
||||
printf(" fill-in form file. The 'xfdf' file needs these field names.\n");
|
||||
printf("\n");
|
||||
printf(" Usage:\n");
|
||||
printf(" convert_results2xfdf xref.data result_out.txt\n");
|
||||
printf(" (It then produces 'result_out.xfdf'.)\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------- */
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
char *fname[2]={0,0}, line[MAXLN], word[MAXLN], label[MAXLN], outfname[MAXLN],
|
||||
format[MAXLN], fieldname[MAXLN], centsfieldname[MAXLN], value[MAXLN];
|
||||
FILE *infile, *outfile;
|
||||
int k=1, m=0, linenum=0;
|
||||
|
||||
while (k < argc)
|
||||
{
|
||||
if (strcmp( argv[k], "-verbose" ) == 0)
|
||||
verbose = 1;
|
||||
else
|
||||
if (strcmp( argv[k], "-help" ) == 0)
|
||||
show_help();
|
||||
else
|
||||
if (m < 2)
|
||||
fname[m++] = strdup( argv[k] );
|
||||
else
|
||||
{
|
||||
printf("Error: Too many file names on command line.\n");
|
||||
exit(1);
|
||||
}
|
||||
k++;
|
||||
}
|
||||
if (m < 2) { printf("Missing file on command line.\n"); exit(1); }
|
||||
|
||||
/* First read the xref file. */
|
||||
infile = fopen( fname[0], "r" );
|
||||
if (infile == 0) { printf("Could not open '%s'.\n", fname[0] ); exit(1); }
|
||||
fscanf(infile, "%s", word );
|
||||
if (strcmp( word, "XFDF_CrossRef:" ) != 0)
|
||||
{
|
||||
printf("Error: First file does not look like a Cross-Ref file. Missing magic header word.\n");
|
||||
exit(1);
|
||||
}
|
||||
fgets( line, MAXLN, infile ); linenum++;
|
||||
while (!feof(infile))
|
||||
{
|
||||
next_word( line, label, " \t\n\r," );
|
||||
if (label[0] != '\0')
|
||||
{
|
||||
next_word( line, format, " \t\n\r," );
|
||||
next_word( line, fieldname, " \t\n\r," );
|
||||
next_word( line, centsfieldname, " \t\n\r," );
|
||||
add_xref( label, format, fieldname, centsfieldname, linenum );
|
||||
}
|
||||
fgets( line, MAXLN, infile ); linenum++;
|
||||
}
|
||||
fclose( infile );
|
||||
|
||||
/* Now read in the results file, and write out the XFDF file. */
|
||||
infile = fopen( fname[1], "r" );
|
||||
if (infile == 0) { printf("Could not open '%s'.\n", fname[1] ); exit(1); }
|
||||
linenum = 0;
|
||||
|
||||
strcpy( outfname, fname[1] );
|
||||
k = strlen( outfname ) - 1;
|
||||
while ((k >= 0) && (outfname[k] != '.')) k--;
|
||||
if (k >= 0) outfname[k] = '\0';
|
||||
strcat( outfname, ".xfdf" );
|
||||
printf(" Writing: %s\n", outfname );
|
||||
outfile = fopen( outfname, "w" );
|
||||
fprintf(outfile, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
|
||||
fprintf(outfile, "<xfdf xmlns=\"http://ns.adobe.com/xfdf/\">\n");
|
||||
fprintf(outfile, " <fields>\n");
|
||||
|
||||
fgets( line, MAXLN, infile ); linenum++;
|
||||
while (!feof(infile))
|
||||
{
|
||||
next_word( line, label, " \t\n\r=" );
|
||||
if (label[0] != '\0')
|
||||
{
|
||||
next_word( line, value, " \t\n\r=" );
|
||||
if (strcmp( label, "Status" ) != 0)
|
||||
set_xfdf( outfile, label, value );
|
||||
else
|
||||
{
|
||||
set_xfdf( outfile, value, label );
|
||||
}
|
||||
}
|
||||
fgets( line, MAXLN, infile ); linenum++;
|
||||
}
|
||||
fclose( infile );
|
||||
|
||||
fprintf(outfile, " </fields>\n");
|
||||
fprintf(outfile, "</xfdf>");;
|
||||
fclose( outfile );
|
||||
return 0;
|
||||
}
|
259
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/AZ_140_meta.dat
Executable file
259
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/AZ_140_meta.dat
Executable file
@@ -0,0 +1,259 @@
|
||||
Page 1
|
||||
|
||||
TxtColor: 0 0 0.6
|
||||
|
||||
CoordReference: 40, 750 61, 64
|
||||
550, 50 841, 1134 110-dpi
|
||||
round_to_whole_numbers
|
||||
|
||||
Your1stName: 85 141
|
||||
YourLastName: 448 141
|
||||
YourSocSec#: 784 141
|
||||
Spouse1stName:85 178
|
||||
SpouseLastName: 448 178
|
||||
SpouseSocSec#: 784 178
|
||||
Number&Street: 85 215
|
||||
Apt#: 535 215
|
||||
DaytimePhone#: 689 215
|
||||
Town/City: 85 252
|
||||
State: 332 252
|
||||
ZipCode: 478 252
|
||||
PriorLastNames: 613 252
|
||||
|
||||
L4Chk 114 272
|
||||
L4a_InjuredSpouseChk 307 272
|
||||
L5Chk 114 290
|
||||
L6Chk 114 326
|
||||
L7Chk 114 346
|
||||
|
||||
L8 113 381
|
||||
L9 113 401
|
||||
L10a 113 418
|
||||
L10b 369 418
|
||||
L11a 113 438
|
||||
|
||||
L10_NeedMoreSpaceChk 645 455
|
||||
Dep1_FirstName: 107 536
|
||||
Dep1_LastName: 242 536
|
||||
Dep1_SocSec#: 410 536
|
||||
Dep1_Relation: 528 536
|
||||
|
||||
Dep2_FirstName: 107 554
|
||||
Dep2_LastName: 242 554
|
||||
Dep2_SocSec#: 410 554
|
||||
Dep2_Relation: 528 554
|
||||
|
||||
Dep3_FirstName: 107 571
|
||||
Dep3_LastName: 242 571
|
||||
Dep3_SocSec#: 410 571
|
||||
Dep3_Relation: 528 571
|
||||
|
||||
L11_NeedMoreSpaceChk 656 594
|
||||
L11b_PG1_FirstName: 109 666
|
||||
L11b_PG1_LastName: 242 666
|
||||
L11b_PG1_SocSec#: 407 666
|
||||
L11b_PG1_Relation: 528 666
|
||||
L11b_PG1_Months: 639 666
|
||||
L11c_PG2_FirstName: 109 684
|
||||
L11c_PG2_LastName: 242 684
|
||||
L11c_PG2_SocSec#: 407 684
|
||||
L11c_PG2_Relation: 528 684
|
||||
L11c_PG2_Months: 639 684
|
||||
|
||||
L12 761 703 10
|
||||
L13_Filing140SBIChk 247 724
|
||||
L13 761 723 10
|
||||
L14 761 741 10
|
||||
L15 761 760 10
|
||||
L16 761 777 10
|
||||
L17 761 795 10
|
||||
L18 761 812 10
|
||||
L19 761 830 10
|
||||
L20 629 850 10
|
||||
L21 629 869 10
|
||||
L22 629 888 10
|
||||
L23 629 905 10
|
||||
L24 761 923 10
|
||||
L25 761 941 10
|
||||
L26 761 960 10
|
||||
L27 761 978 10
|
||||
L28 761 997 10
|
||||
L29a 761 1016 10
|
||||
L29b 761 1035 10
|
||||
L30 761 1053 10
|
||||
L31 761 1071 10
|
||||
L32 761 1090 10
|
||||
L33 761 1108 10
|
||||
L34a 325 1127 10
|
||||
L34b 540 1127 10
|
||||
L34 761 1126 10
|
||||
L35 761 1145 10
|
||||
|
||||
|
||||
Page 2
|
||||
|
||||
TxtColor: 0 0 0.6
|
||||
|
||||
CoordReference: 40, 750 61, 64
|
||||
550, 50 841, 1134 110-dpi
|
||||
round_to_whole_numbers
|
||||
|
||||
YourName: 77 86
|
||||
YourSocSec#: 624 86
|
||||
L36 764 106 10
|
||||
L37 764 124 10
|
||||
L38 764 143 10
|
||||
L39 764 162 10
|
||||
L40e 351 181
|
||||
L40 764 181 10
|
||||
L41 764 198 10
|
||||
L42 764 216 10
|
||||
L43_DeductionsItemizedChk 535 236
|
||||
L43_DeductionsStandardChk 639 236
|
||||
L43 764 234 10
|
||||
L44_CharitableChk 475 254
|
||||
L44 764 254 10
|
||||
L45 764 272 10
|
||||
L46 764 289 10
|
||||
L47 764 309 10
|
||||
L48 764 327 10
|
||||
L49 764 344 10
|
||||
L50 764 363 10
|
||||
L51 764 382 10
|
||||
L52 764 399 10
|
||||
L53 764 418 10
|
||||
L54a 309 436 10
|
||||
L54b 534 436 10
|
||||
L54 764 436 10
|
||||
L55 764 454 10
|
||||
L56 764 473 10
|
||||
L57 764 492 10
|
||||
L58_Filing308IChk 549 511
|
||||
L58_Filing334Chk 621 511
|
||||
L58_Filing349Chk 684 511
|
||||
L58 764 509 10
|
||||
L59 764 530 10
|
||||
L60 764 547 10
|
||||
L61 764 566 10
|
||||
L62 764 585 10
|
||||
L63 764 602 10
|
||||
L64 460 622 5
|
||||
L65 659 622 5
|
||||
L66 251 640 5
|
||||
L67 460 640 5
|
||||
L68 659 640 5
|
||||
L69 251 658 5
|
||||
L70 460 658 5
|
||||
L71 659 658 5
|
||||
L72 251 676 5
|
||||
L73 460 676 5
|
||||
L74 659 676 5
|
||||
L75_DemocraticChk 435 697
|
||||
L75_LibertarianChk 541 697
|
||||
L75_RepublicanChk 645 697
|
||||
L76 764 714 10
|
||||
L77_1AnnualizedOtherChk 119 734
|
||||
L77_2FarmerFishermanChk 242 734
|
||||
L77_Filing221Chk 385 734
|
||||
L78 764 751 10
|
||||
L79 764 775 10
|
||||
L79_ForeignAcctChk 709 783
|
||||
L80 764 848 10
|
||||
|
||||
|
||||
Optional_Page 3
|
||||
TxtColor: 0 0 0.6
|
||||
CoordReference: 40, 750 61, 64
|
||||
550, 50 841, 1134 110-dpi
|
||||
round_to_whole_numbers
|
||||
|
||||
YourName: 74 86
|
||||
YourSocSec#: 622 86
|
||||
|
||||
SD1C 712 611 10
|
||||
SD2C 712 637 10
|
||||
SD3C 712 664 10
|
||||
SD4C 712 690 10
|
||||
SD5C 712 719 10
|
||||
SD6C 712 754 10
|
||||
SD7C 712 782 10
|
||||
|
||||
|
||||
Optional_Page 4
|
||||
TxtColor: 0 0 0.6
|
||||
CoordReference: 40, 750 61, 64
|
||||
550, 50 841, 1134 110-dpi
|
||||
round_to_whole_numbers
|
||||
|
||||
YourName: 74 86
|
||||
YourSocSec#: 622 86
|
||||
|
||||
|
||||
Optional_Page 5
|
||||
TxtColor: 0 0 0.6
|
||||
CoordReference: 40, 750 61, 64
|
||||
550, 50 841, 1134 110-dpi
|
||||
round_to_whole_numbers
|
||||
|
||||
YourName: 74 73
|
||||
YourSocSec#: 622 73
|
||||
|
||||
OA_A 757 236 10
|
||||
OA_B 757 260 10
|
||||
OA_C 757 284 10
|
||||
OA_D 757 310 10
|
||||
OA_E 757 338 10
|
||||
OA_Fa 757 363 10
|
||||
OA_Fb 757 388 10
|
||||
OA_Ga 757 422 10
|
||||
OA_Gb 757 454 10
|
||||
OA_Ha 757 502 10
|
||||
OA_Hb 757 549 10
|
||||
OA_Hc 757 596 10
|
||||
OA_I 757 621 10
|
||||
OA_J 757 685 10
|
||||
OA_K 757 710 10
|
||||
OA_L 757 744 10
|
||||
OA_M 757 769 10
|
||||
OA_N 757 796 10
|
||||
OA_O 757 828 10
|
||||
OA_P 757 854 10
|
||||
OA_Q 757 878 10
|
||||
OA_R 757 905 10
|
||||
OA_S 757 930 10
|
||||
OA_T 757 956 10
|
||||
|
||||
|
||||
Optional_Page 6
|
||||
TxtColor: 0 0 0.6
|
||||
CoordReference: 40, 750 61, 64
|
||||
550, 50 841, 1134 110-dpi
|
||||
round_to_whole_numbers
|
||||
|
||||
YourName: 74 73
|
||||
YourSocSec#: 622 73
|
||||
|
||||
OS_A 733 271 10
|
||||
OS_B 733 297 10
|
||||
OS_C 733 325 10
|
||||
OS_D 733 351 10
|
||||
OS_E 733 377 10
|
||||
OS_F 733 404 10
|
||||
OS_G 733 430 10
|
||||
OS_H 733 455 10
|
||||
OS_I 733 481 10
|
||||
OS_J 733 506 10
|
||||
OS_K 733 533 10
|
||||
OS_L 733 593 10
|
||||
OS_M 733 620 10
|
||||
OS_N 733 646 10
|
||||
OS_O 733 672 10
|
||||
OS_P 733 762 10
|
||||
OS_Q 733 824 10
|
||||
OS_R 733 857 10
|
||||
OS_S 733 888 10
|
||||
OS_T 733 913 10
|
||||
OS_U 733 939 10
|
||||
OS_V 733 965 10
|
||||
OS_W 733 996 10
|
||||
|
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/AZ_140_pdf.dat
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/AZ_140_pdf.dat
Executable file
Binary file not shown.
157
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/CA_540_instructions.dat
Executable file
157
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/CA_540_instructions.dat
Executable file
@@ -0,0 +1,157 @@
|
||||
Instructions:
|
||||
|
||||
[L12] State Wages
|
||||
|
||||
Enter your state wages from all states from each of your Federal
|
||||
Form(s) W-2, Wage and Tax Statement. This amount appears on
|
||||
Form W-2, box 16.
|
||||
|
||||
If you received wages and do not have a Form W-2, see "Attachments to
|
||||
your tax return.
|
||||
|
||||
[L34] Tax from Schedule G-1 and Form FTB 5870A
|
||||
|
||||
If you received a qualified lump-sum distribution in 2020 and you
|
||||
were born before January 2, 1936, get California Schedule G-1, Tax on
|
||||
Lump-Sum Distributions, to figure your tax by special methods that may
|
||||
result in less tax. Attach Schedule G-1 to your tax return.
|
||||
|
||||
If you received accumulation distributions from foreign trusts or from
|
||||
certain domestic trusts, get form FTB 5870A, Tax on Accumulation
|
||||
Distribution of Trusts, to figure the additional tax. Attach form
|
||||
FTB 5870A to your tax return.
|
||||
|
||||
[L40] Nonrefundable Child and Dependent Care Expenses Credit
|
||||
|
||||
Claim this credit if you paid someone to care for your qualifying child
|
||||
under the age of 13, other dependent who is physically or mentally
|
||||
incapable of caring for him or herself, or spouse/RDP if physically
|
||||
or mentally incapable of caring for him or herself. The care must be
|
||||
provided in California. To claim this credit, your federal AGI must be
|
||||
$100,000 or less and you must complete and attach form FTB 3506,
|
||||
Child and Dependent Care Expenses Credit, included in the booklet.
|
||||
|
||||
[L71] California Income Tax Withheld
|
||||
|
||||
Enter the total California income tax withheld from your federal Forms:
|
||||
# # W-2, Wage and Tax Statement, box 17
|
||||
# # W-2G, Certain Gambling Winnings, box 15
|
||||
# # 1099-DIV, Dividends and Distributions, box 15
|
||||
# # 1099-INT, Interest Income, box 17
|
||||
# # 1099-MISC, Miscellaneous Income, box 16
|
||||
# # 1099-OID, Original Issue Discount, box 14
|
||||
# # 1099-R, Distributions from Pensions, Annuities, Retirement, or Profit
|
||||
Sharing Plans, IRAs, Insurance Contracts, etc., box 12
|
||||
|
||||
Do not include city, local, or county tax withheld, tax withheld by
|
||||
other states, or nonconsenting nonresident (NCNR) member's tax
|
||||
from Schedule K-1 (568), line 15e. Do not include withholding from
|
||||
Forms 592-B, Resident and Nonresident Withholding Tax Statement, or
|
||||
Form 593, Real Estate Withholding Tax Statement, on this line. For more
|
||||
details, see instructions for line 73.
|
||||
|
||||
Generally, tax should not be withheld on federal Form 1099-MISC. If you
|
||||
want to pre-pay tax on income reported on federal Form 1099-MISC, use
|
||||
Form 540-ES, Estimated Tax for Individuals.
|
||||
|
||||
[L72] 2020 CA Estimated Tax and Other Payments
|
||||
|
||||
Enter the total of any:
|
||||
# # California estimated tax payments you made using 2020
|
||||
Form 540-ES, electronic funds withdrawal, Web Pay, or credit card.
|
||||
# # Overpayment from your 2018 California income tax return that you
|
||||
applied to your 2020 estimated tax.
|
||||
# # Payment you sent with form FTB 3519, Payment for Automatic
|
||||
Extension for Individuals.
|
||||
# # California estimated tax payments made on your behalf by
|
||||
an estate, trust, or S corporation on Schedule K-1 (541) or
|
||||
Schedule K-1 (100S).
|
||||
|
||||
[L91] Use Tax.
|
||||
|
||||
You are required to enter a number on this line. If the amount due is
|
||||
zero, you must check the applicable box to indicate that you either owe
|
||||
no use tax, or you paid your use tax obligation directly to the California
|
||||
Department of Tax and Fee Administration.
|
||||
|
||||
You may owe use tax if you make purchases from out-of-state retailers
|
||||
(for example, purchases made by telephone, online, by mail, or in
|
||||
person) where California sales or use tax was not paid and you use
|
||||
those items in California.
|
||||
|
||||
[L112] Interest and Penalties
|
||||
|
||||
Interest. Interest will be charged on any late filing or late payment
|
||||
penalty from the original due date of the return to the date paid. In
|
||||
addition, if other penalties are not paid within 15 days, interest will be
|
||||
charged from the date of the billing notice until the date of payment.
|
||||
Interest compounds daily and the interest rate is adjusted twice a year.
|
||||
The FTB website has a chart of interest rates in effect since 1976. Go to
|
||||
ftb.ca.gov and search for interest rates.
|
||||
|
||||
Late Filing of Tax Return. If you do not file your tax return by
|
||||
October 15, 2020, you will incur a late filing penalty plus interest from
|
||||
the original due date of the tax return. The maximum total penalty is
|
||||
25% of the tax not paid if the tax return is filed after October 15, 2020.
|
||||
The minimum penalty for filing a tax return more than 60 days late is
|
||||
$135 or 100% of the balance due, whichever is less.
|
||||
|
||||
Late Payment of Tax. If you fail to pay your total tax liability by
|
||||
April 15, 2020, you will incur a late payment penalty plus interest. The
|
||||
penalty is 5% of the tax not paid when due plus 1/2% for each month, or
|
||||
part of a month, the tax remains unpaid. We may waive the late payment
|
||||
penalty based on reasonable cause. Reasonable cause is presumed
|
||||
when 90% of the tax shown on the return is paid by the original due
|
||||
date of the return. However, the imposition of interest is mandatory. If,
|
||||
after April 15, 2020, you find that your estimate of tax due was too low,
|
||||
pay the additional tax as soon as possible to avoid or minimize further
|
||||
accumulation of penalties and interest.
|
||||
|
||||
Late Payment of Use Tax. To avoid late payment penalties for use
|
||||
tax, you must report and pay the use tax with a timely filed income tax
|
||||
return, or California Individual Use Tax return.
|
||||
Other Penalties. We may impose other penalties if a payment is
|
||||
returned for insufficient funds. We may also impose penalties for
|
||||
negligence, substantial understatement of tax, and fraud.
|
||||
|
||||
[L113] Underpayment of Estimated Tax
|
||||
|
||||
You may be subject to an estimated tax penalty if any of the following is true:
|
||||
|
||||
# # Your withholding and credits are less than 90% of your current tax
|
||||
year liability.
|
||||
|
||||
# # Your withholding and credits are less than 100% of your prior
|
||||
year tax liability (110% if AGI is more than $150,000 or $75,000 if
|
||||
married/RDP filing separately).
|
||||
|
||||
# # You did not pay enough through withholding to keep the amount
|
||||
you owe with your tax return under $500 ($250 if married/RDP filing
|
||||
separately).
|
||||
|
||||
# # You did not make the required estimate payments, if you pay an
|
||||
installment after the date it is due, or if you underpay any installment,
|
||||
a penalty may be assessed on the portion of estimated tax that was
|
||||
underpaid from the due date of the installment to the date of payment
|
||||
or the due date of your return, whichever is earlier. Get the 2020
|
||||
form FTB 5805, Underpayment of Estimated Tax by Individuals and
|
||||
Fiduciaries, for more information.
|
||||
|
||||
The FTB can figure the penalty for you when you file your tax return and
|
||||
send you a bill.
|
||||
|
||||
Is line 97 less than $500 ($250 if married/RDP filing separately)?
|
||||
|
||||
Yes Stop. You may not be subject to an estimated payment penalty.
|
||||
|
||||
No Continue. You may be subject to an estimated payment penalty.
|
||||
|
||||
Is line 97 less than 10% of the amount on line 48? Form 540 filers: this
|
||||
excludes the tax on lump-sum distributions on Form 540, line 34.
|
||||
|
||||
Yes Stop. You may not be subject to an estimated payment penalty.
|
||||
|
||||
No You may be subject to an estimated payment penalty; get form
|
||||
FTB 5805, Underpayment of Estimated Tax by Individuals and
|
||||
Fiduciaries (or form FTB 5805F, Underpayment of Estimated Tax by
|
||||
Farmers and Fishermen).
|
529
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/CA_540_meta.dat
Executable file
529
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/CA_540_meta.dat
Executable file
@@ -0,0 +1,529 @@
|
||||
Page 1
|
||||
|
||||
TxtColor: 0 0 0.6
|
||||
|
||||
CoordReference: 40, 750 61, 64
|
||||
550, 50 841, 1134 110-dpi
|
||||
|
||||
round_to_whole_numbers
|
||||
no_zero_entries
|
||||
|
||||
Your1stName: 60 184
|
||||
YourMidInit: 284 184
|
||||
YourLastName: 316 184
|
||||
YourSocSec#: 663 184 0 11
|
||||
|
||||
Spouse1stName: 60 228
|
||||
SpouseMidInit: 284 228
|
||||
SpouseLastName: 316 228
|
||||
SpouseSocSec#: 663 228 0 11
|
||||
|
||||
Number&Street: 60 313
|
||||
Apt#: 598 313
|
||||
Town: 60 357
|
||||
State: 615 357
|
||||
ZipCode: 665 357 0 11
|
||||
|
||||
YourDOB: 109 473 0 5.6
|
||||
SpouseDOB: 497 473 0 5.6
|
||||
|
||||
CountyName: 111 582
|
||||
|
||||
FontSz 18
|
||||
CkSameAddress: 766 604
|
||||
CkSingle: 118 806
|
||||
CkMFJ: 118 843
|
||||
CkMFS: 118 916
|
||||
CkHH: 382 806
|
||||
CkQW: 382 843
|
||||
CkDep: 710 953
|
||||
FontSz 10
|
||||
|
||||
L7a 585 1022
|
||||
L7 770 1024
|
||||
L8a 585 1058
|
||||
L8 770 1060
|
||||
L9a 585 1096
|
||||
L9 770 1098
|
||||
|
||||
|
||||
Page 2
|
||||
|
||||
CoordReference: 40, 750 61, 64
|
||||
550, 50 841, 1134 110-dpi
|
||||
|
||||
YourName: 145 88
|
||||
YourSocSec#: 475 88
|
||||
|
||||
L10Dep1FrstName: 210 162
|
||||
L10Dep1LastName: 210 200
|
||||
L10Dep1SSN: 210 236
|
||||
L10Dep1Relation: 210 272
|
||||
|
||||
L10Dep2FrstName: 444 162
|
||||
L10Dep2LastName: 444 200
|
||||
L10Dep2SSN: 444 236
|
||||
L10Dep2Relation: 444 272
|
||||
|
||||
L10Dep3FrstName: 674 162
|
||||
L10Dep3LastName: 674 200
|
||||
L10Dep3SSN: 674 236
|
||||
L10Dep3Relation: 674 272
|
||||
|
||||
L10a 550 308
|
||||
L10 706 310 14
|
||||
L11 706 346 14
|
||||
L12 470 401 14
|
||||
L13 715 438 14
|
||||
L14 715 475 14
|
||||
L15 715 511 14
|
||||
L16 715 549 14
|
||||
L17 715 585 14
|
||||
L18 715 694 14
|
||||
|
||||
showevenifzero L19
|
||||
L19 715 731 14
|
||||
|
||||
FontSz 18
|
||||
CkTxTable: 281 788
|
||||
CkTxRateSchd: 412 788
|
||||
CkFTB3800: 281 824
|
||||
CkFTB3803: 412 824
|
||||
FontSz 10
|
||||
|
||||
L31 715 823 14
|
||||
L32 715 861 14
|
||||
|
||||
showevenifzero L33
|
||||
L33 715 897 14
|
||||
|
||||
L34 715 933 14
|
||||
L35 715 970 14
|
||||
L40 715 1026 14
|
||||
L43 715 1062 14
|
||||
L44 715 1100 14
|
||||
|
||||
|
||||
Page 3
|
||||
CoordReference: 40, 750 61, 64
|
||||
550, 50 841, 1134 110-dpi
|
||||
|
||||
YourName: 145 88
|
||||
YourSocSec#: 474 88
|
||||
|
||||
L45 715 127 14
|
||||
L46 715 164 14
|
||||
L47 715 200 14
|
||||
showevenifzero L48
|
||||
L48 715 236 14
|
||||
|
||||
L61 715 291 14
|
||||
L62 715 329 14
|
||||
L63 715 365 14
|
||||
L64 715 401 14
|
||||
|
||||
L71 715 457 14
|
||||
L72 715 494 14
|
||||
L73 715 531 14
|
||||
L74 715 566 14
|
||||
L75 715 603 14
|
||||
L76 715 640 14
|
||||
L77 715 678 14
|
||||
L78 715 714 14
|
||||
showevenifzero L91
|
||||
L91 612 769 14
|
||||
FontSz 16
|
||||
CkNoUseTaxOwed 282 805
|
||||
CkPayedUseTaxCDTFA 460 806
|
||||
CkFYHealthCoverage 646 862
|
||||
FontSz 10
|
||||
L92 612 897 14
|
||||
L93 715 952 14
|
||||
L94 715 990 14
|
||||
L95 715 1025 14
|
||||
L96 715 1062 14
|
||||
L97 715 1099 14
|
||||
|
||||
|
||||
Page 4
|
||||
CoordReference: 40, 750 61, 64
|
||||
550, 50 841, 1134 110-dpi
|
||||
|
||||
YourName: 144 88
|
||||
YourSocSec#: 476 88
|
||||
|
||||
L98 715 125 14
|
||||
L99 715 161 14
|
||||
L100 715 196 14
|
||||
L400 715 254 14
|
||||
L401 715 290 14
|
||||
L403 715 326 14
|
||||
L405 715 363 14
|
||||
|
||||
L406 715 400 14
|
||||
L407 715 436 14
|
||||
L408 715 474 14
|
||||
L410 715 512 14
|
||||
L413 715 549 14
|
||||
|
||||
L110 715 914 14
|
||||
|
||||
Page 5
|
||||
CoordReference: 40, 750 61, 64
|
||||
550, 50 841, 1134 110-dpi
|
||||
|
||||
YourName: 144 88
|
||||
YourSocSec#: 475 88
|
||||
|
||||
L111 715 143 14
|
||||
L112 715 194 14
|
||||
L113 715 249 14
|
||||
L114 715 288 14
|
||||
L115 715 360 14
|
||||
L116 715 508 14
|
||||
L117 715 618 14
|
||||
|
||||
RouteNumL116: 119 507
|
||||
AccntNum:116: 345 507
|
||||
RouteNumL117: 119 617
|
||||
AccntNumL117: 345 617
|
||||
|
||||
FontSz 18
|
||||
CkFTB5805: 215 254
|
||||
CkFTB5805F: 380 254
|
||||
CkCheckingL116: 237 493
|
||||
CkSavingsL116: 237 530
|
||||
CkCheckingL117: 237 603
|
||||
CkSavingsL117: 237 640
|
||||
|
||||
CkHCinfoYes 761 807
|
||||
CkHCinfoNo 831 807
|
||||
FontSz 10
|
||||
|
||||
|
||||
Page 6
|
||||
|
||||
YourName: 148 86
|
||||
YourSocSec#: 476 87
|
||||
|
||||
FontSz 18
|
||||
CkDiscussYes 687 496
|
||||
CkDiscussNo 762 496
|
||||
FontSz 10
|
||||
|
||||
|
||||
|
||||
Page 7
|
||||
|
||||
YourNames: 60 158
|
||||
YourSocSec#: 710 158
|
||||
|
||||
SchedCA540_A1a 386 241 9
|
||||
SchedCA540_A1ab 555 241 9
|
||||
SchedCA540_A1ac 731 241 9
|
||||
|
||||
SchedCA540_A1b 386 274 9
|
||||
SchedCA540_A1bb 555 274 9
|
||||
SchedCA540_A1bc 731 274 9
|
||||
|
||||
SchedCA540_A1c 386 307 9
|
||||
SchedCA540_A1cb 555 307 9
|
||||
SchedCA540_A1cc 731 307 9
|
||||
|
||||
SchedCA540_A1d 386 349 9
|
||||
SchedCA540_A1db 555 349 9
|
||||
SchedCA540_A1dc 731 349 9
|
||||
|
||||
SchedCA540_A1e 386 383 9
|
||||
SchedCA540_A1eb 555 383 9
|
||||
SchedCA540_A1ec 731 383 9
|
||||
|
||||
SchedCA540_A1f 386 418 9
|
||||
SchedCA540_A1fb 555 418 9
|
||||
SchedCA540_A1fc 731 418 9
|
||||
|
||||
SchedCA540_A1g 386 458 9
|
||||
SchedCA540_A1gb 555 458 9
|
||||
SchedCA540_A1gc 731 458 9
|
||||
|
||||
SchedCA540_A1h 386 493 9
|
||||
SchedCA540_A1hb 555 493 9
|
||||
SchedCA540_A1hc 731 493 9
|
||||
|
||||
SchedCA540_A1ic 731 528 9
|
||||
|
||||
SchedCA540_A1z 386 563 9
|
||||
SchedCA540_A1zb 555 563 9
|
||||
SchedCA540_A1zc 731 563 9
|
||||
|
||||
SchedCA540_A2a 199 602 9
|
||||
SchedCA540_A2 386 602 9
|
||||
SchedCA540_A2b 555 602 9
|
||||
SchedCA540_A2c 731 602 9
|
||||
SchedCA540_A3a 199 639 9
|
||||
SchedCA540_A3 386 639 9
|
||||
SchedCA540_A3b 555 639 9
|
||||
SchedCA540_A3c 731 639 9
|
||||
SchedCA540_A4a 199 676 9
|
||||
SchedCA540_A4 386 676 9
|
||||
SchedCA540_A4b 555 676 9
|
||||
SchedCA540_A4c 731 676 9
|
||||
|
||||
SchedCA540_A5a 199 735 9
|
||||
SchedCA540_A5 386 735 9
|
||||
SchedCA540_A5b 555 735 9
|
||||
SchedCA540_A5c 731 735 9
|
||||
|
||||
SchedCA540_A6a 199 770 9
|
||||
SchedCA540_A6 386 770 9
|
||||
SchedCA540_A6b 555 770 9
|
||||
|
||||
SchedCA540_A7 386 803 9
|
||||
SchedCA540_A7b 555 803 9
|
||||
SchedCA540_A7c 731 803 9
|
||||
|
||||
SchedCA540_B1 386 860 9
|
||||
SchedCA540_B1b 555 860 9
|
||||
SchedCA540_B2 386 900 9
|
||||
SchedCA540_B2c 731 900 9
|
||||
SchedCA540_B3 386 934 9
|
||||
SchedCA540_B3b 555 934 9
|
||||
SchedCA540_B3c 731 934 9
|
||||
SchedCA540_B4 386 966 9
|
||||
SchedCA540_B4b 555 966 9
|
||||
SchedCA540_B4c 731 966 9
|
||||
SchedCA540_B5 386 1003 9
|
||||
SchedCA540_B5b 555 1003 9
|
||||
SchedCA540_B5c 731 1003 9
|
||||
SchedCA540_B6 386 1039 9
|
||||
SchedCA540_B6b 555 1039 9
|
||||
SchedCA540_B6c 731 1039 9
|
||||
SchedCA540_B7 386 1076 9
|
||||
SchedCA540_B7b 555 1076 9
|
||||
|
||||
|
||||
Page 8
|
||||
|
||||
SchedCA540_B8A 386 181 9
|
||||
SchedCA540_B8Ac 731 181 9
|
||||
SchedCA540_B8B 386 220 9
|
||||
SchedCA540_B8Bb 555 220 9
|
||||
SchedCA540_B8C 386 256 9
|
||||
SchedCA540_B8Cb 555 256 9
|
||||
SchedCA540_B8Cc 731 256 9
|
||||
SchedCA540_B8D 386 294 9
|
||||
SchedCA540_B8Dc 731 294 9
|
||||
SchedCA540_B8E 386 330 9
|
||||
SchedCA540_B8Ec 731 330 9
|
||||
SchedCA540_B8F 386 365 9
|
||||
SchedCA540_B8Fb 555 365 9
|
||||
SchedCA540_B8G 386 400 9
|
||||
SchedCA540_B8H 386 438 9
|
||||
|
||||
SchedCA540_B8I 386 472 9
|
||||
SchedCA540_B8J 386 506 9
|
||||
SchedCA540_B8K 386 540 9
|
||||
SchedCA540_B8Kc 731 540 9
|
||||
SchedCA540_B8L 386 600 9
|
||||
SchedCA540_B8M 386 636 9
|
||||
SchedCA540_B8N 386 672 9
|
||||
SchedCA540_B8Nb 555 672 9
|
||||
SchedCA540_B8O 386 707 9
|
||||
SchedCA540_B8Ob 555 707 9
|
||||
SchedCA540_B8P 386 746 9
|
||||
SchedCA540_B8Pb 555 746 9
|
||||
SchedCA540_B8Pc 731 746 9
|
||||
|
||||
SchedCA540_B8Q 386 783 9
|
||||
SchedCA540_B8R 386 818 9
|
||||
SchedCA540_B8S 386 860 9
|
||||
SchedCA540_B8T 386 910 9
|
||||
SchedCA540_B8U 386 945 9
|
||||
|
||||
SchedCA540_B8V 386 986 9
|
||||
SchedCA540_B8Vb 555 986 9
|
||||
SchedCA540_B8Vc 731 986 9
|
||||
|
||||
SchedCA540_B8Za: 130 1041 9
|
||||
SchedCA540_B8Z 386 1041 9
|
||||
SchedCA540_B8Zb 555 1041 9
|
||||
SchedCA540_B8Zc 731 1041 9
|
||||
|
||||
|
||||
Page 9
|
||||
|
||||
SchedCA540_B9A 386 181 9
|
||||
SchedCA540_B9Ab 555 181 9
|
||||
SchedCA540_B9Ac 731 181 9
|
||||
|
||||
SchedCA540_B9B1b 555 216 9
|
||||
SchedCA540_B9B2b 555 252 9
|
||||
SchedCA540_B9B3b 555 288 9
|
||||
|
||||
SchedCA540_B10 386 380 9
|
||||
SchedCA540_B10b 555 380 9
|
||||
SchedCA540_B10c 731 380 9
|
||||
|
||||
SchedCA540_C11 386 477 9
|
||||
SchedCA540_C11b 555 477 9
|
||||
SchedCA540_C12 386 512 9
|
||||
SchedCA540_C12b 555 512 9
|
||||
SchedCA540_C12c 731 512 9
|
||||
SchedCA540_C13 386 550 9
|
||||
SchedCA540_C13b 555 550 9
|
||||
SchedCA540_C14 386 585 9
|
||||
SchedCA540_C14c 731 585 9
|
||||
SchedCA540_C15 386 620 9
|
||||
SchedCA540_C15b 555 620 9
|
||||
SchedCA540_C16 386 655 9
|
||||
SchedCA540_C17 386 694 9
|
||||
SchedCA540_C17b 555 694 9
|
||||
SchedCA540_C18 386 730 9
|
||||
SchedCA540_C19 386 765 9
|
||||
SchedCA540_C19c 731 765 9
|
||||
AlimRecipSSN: 210 802 0 9
|
||||
AlimRecipName: 176 843
|
||||
SchedCA540_C20 386 880 9
|
||||
SchedCA540_C20b 555 880 9
|
||||
SchedCA540_C20c 731 880 9
|
||||
SchedCA540_C21 386 915 9
|
||||
SchedCA540_C21c 731 915 9
|
||||
SchedCA540_C23 386 990 9
|
||||
|
||||
|
||||
Page 10
|
||||
|
||||
SchedCA540_C24A 400 180 9
|
||||
SchedCA540_C24B 400 232 9
|
||||
SchedCA540_C24Bb 565 232 9
|
||||
SchedCA540_C24Bc 731 232 9
|
||||
SchedCA540_C24C 400 289 9
|
||||
SchedCA540_C24Cb 565 289 9
|
||||
SchedCA540_C24D 400 325 9
|
||||
SchedCA540_C24Db 565 325 9
|
||||
SchedCA540_C24E 400 364 9
|
||||
|
||||
SchedCA540_C24F 400 400 9
|
||||
SchedCA540_C24Fb 565 400 9
|
||||
SchedCA540_C24Fc 731 400 9
|
||||
|
||||
SchedCA540_C24G 400 437 9
|
||||
SchedCA540_C24Gb 565 437 9
|
||||
SchedCA540_C24Gc 731 437 9
|
||||
|
||||
SchedCA540_C24H 400 472 9
|
||||
|
||||
SchedCA540_C24I 400 526 9
|
||||
SchedCA540_C24Ib 565 526 9
|
||||
SchedCA540_C24J 400 565 9
|
||||
SchedCA540_C24Jb 565 565 9
|
||||
SchedCA540_C24K 400 601 9
|
||||
SchedCA540_C24Kb 565 601 9
|
||||
|
||||
SchedCA540_C24Z 400 654 9
|
||||
SchedCA540_C24Zb 565 654 9
|
||||
SchedCA540_C24Zc 731 654 9
|
||||
SchedCA540_C24Ztype: 98 653
|
||||
|
||||
SchedCA540_C25 400 691 9
|
||||
SchedCA540_C25b 565 691 9
|
||||
SchedCA540_C25c 731 691 9
|
||||
|
||||
SchedCA540_C26 400 728 9
|
||||
SchedCA540_C26b 565 728 9
|
||||
SchedCA540_C26c 731 728 9
|
||||
|
||||
SchedCA540_C27 400 764 9
|
||||
SchedCA540_C27b 565 764 9
|
||||
SchedCA540_C27c 731 764 9
|
||||
|
||||
|
||||
Page 11
|
||||
|
||||
FontSz 18
|
||||
CkItemizeCA: 556 164
|
||||
FontSz 10
|
||||
|
||||
SchedCA540_Part2_1 225 275 9
|
||||
SchedCA540_Part2_2 225 331 9
|
||||
SchedCA540_Part2_3 225 368 9
|
||||
showevenifzero SchedCA540_Part2_4a
|
||||
SchedCA540_Part2_4a 407 403 9
|
||||
SchedCA540_Part2_4c 736 403 9
|
||||
SchedCA540_Part2_5aa 407 444 9
|
||||
SchedCA540_Part2_5ab 572 444 9
|
||||
SchedCA540_Part2_5ba 407 479 9
|
||||
SchedCA540_Part2_5ca 407 518 9
|
||||
SchedCA540_Part2_5da 407 554 9
|
||||
SchedCA540_Part2_5ea 407 662 9
|
||||
SchedCA540_Part2_5eb 572 662 9
|
||||
SchedCA540_Part2_5ec 736 662 9
|
||||
SchedCA540_Part2_6type: 219 695
|
||||
SchedCA540_Part2_6a 407 700 9
|
||||
SchedCA540_Part2_6b 572 700 9
|
||||
SchedCA540_Part2_6c 736 700 9
|
||||
SchedCA540_Part2_7a 407 736 9
|
||||
SchedCA540_Part2_7b 572 736 9
|
||||
SchedCA540_Part2_7c 736 736 9
|
||||
|
||||
SchedCA540_Part2_8aa 407 790 9
|
||||
SchedCA540_Part2_8ac 736 790 9
|
||||
SchedCA540_Part2_8ba 407 827 9
|
||||
SchedCA540_Part2_8bc 736 827 9
|
||||
SchedCA540_Part2_8ca 407 864 9
|
||||
SchedCA540_Part2_8cc 736 864 9
|
||||
|
||||
! SchedCA540_Part2_8da 407 900 9
|
||||
! SchedCA540_Part2_8db 572 900 9
|
||||
|
||||
SchedCA540_Part2_8ea 407 937 9
|
||||
SchedCA540_Part2_8eb 572 937 9
|
||||
SchedCA540_Part2_8ec 736 937 9
|
||||
SchedCA540_Part2_9a 407 974 9
|
||||
SchedCA540_Part2_9b 572 974 9
|
||||
SchedCA540_Part2_9c 736 974 9
|
||||
SchedCA540_Part2_10a 407 1010 9
|
||||
SchedCA540_Part2_10b 572 1010 9
|
||||
SchedCA540_Part2_10c 736 1010 9
|
||||
|
||||
|
||||
Page 12
|
||||
|
||||
SchedCA540_Part2_11a 406 188 9
|
||||
SchedCA540_Part2_11b 572 188 9
|
||||
SchedCA540_Part2_11c 736 188 9
|
||||
SchedCA540_Part2_12a 406 224 9
|
||||
SchedCA540_Part2_12b 572 224 9
|
||||
SchedCA540_Part2_12c 736 224 9
|
||||
SchedCA540_Part2_13a 406 260 9
|
||||
SchedCA540_Part2_13b 572 260 9
|
||||
SchedCA540_Part2_13c 736 260 9
|
||||
SchedCA540_Part2_14a 406 300 9
|
||||
SchedCA540_Part2_14b 572 300 9
|
||||
SchedCA540_Part2_14c 736 300 9
|
||||
SchedCA540_Part2_15a 406 358 9
|
||||
SchedCA540_Part2_15b 572 358 9
|
||||
SchedCA540_Part2_15c 736 358 9
|
||||
SchedCA540_Part2_16a 406 405 9
|
||||
SchedCA540_Part2_16b 572 405 9
|
||||
SchedCA540_Part2_16c 736 405 9
|
||||
SchedCA540_Part2_17a 406 445 9
|
||||
SchedCA540_Part2_17b 572 445 9
|
||||
SchedCA540_Part2_17c 736 445 9
|
||||
SchedCA540_Part2_18 738 477 9
|
||||
|
||||
SchedCA540_Part2_19 580 550 9
|
||||
SchedCA540_Part2_20 580 587 9
|
||||
SchedCA540_Part2_21type: 355 624 9
|
||||
SchedCA540_Part2_21 580 624 9
|
||||
SchedCA540_Part2_22 580 660 9
|
||||
SchedCA540_Part2_23 355 698 9
|
||||
SchedCA540_Part2_24 580 733 9
|
||||
SchedCA540_Part2_25 739 770 9
|
||||
SchedCA540_Part2_26 739 807 9
|
||||
SchedCA540_Part2_27spec: 355 844 9
|
||||
SchedCA540_Part2_27 739 844 9
|
||||
SchedCA540_Part2_28 739 881 9
|
||||
SchedCA540_Part2_29 739 1009 9
|
||||
SchedCA540_Part2_30 739 1099 9
|
||||
|
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/CA_540_pdf.dat
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/CA_540_pdf.dat
Executable file
Binary file not shown.
273
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/CA_5805_meta.dat
Executable file
273
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/CA_5805_meta.dat
Executable file
@@ -0,0 +1,273 @@
|
||||
Page 1
|
||||
|
||||
TxtColor: 0 0 0.6
|
||||
|
||||
CoordReference: 40, 750 61, 64
|
||||
550, 50 841, 1134 110-dpi
|
||||
|
||||
round_to_whole_numbers
|
||||
|
||||
YourName: 62 199
|
||||
YourSocSec#: 732 199
|
||||
CkQuest1Yes 757 583
|
||||
CkQuest1No 835 583
|
||||
CkQuest2Yes 758 694
|
||||
CkQuest2No 835 694
|
||||
CkQuest3Yes 757 748
|
||||
CkQuest3No 835 749
|
||||
CkQuest3NA 796 785
|
||||
Wthd_Per_1 173 858 18
|
||||
Wthd_Per_2 482 859 18
|
||||
Wthd_Per_3 173 895 18
|
||||
Wthd_Per_4 482 895 18
|
||||
CkQuest4Yes 757 950
|
||||
CkQuest4No 835 950
|
||||
|
||||
Page 2
|
||||
|
||||
L1 679 163 18
|
||||
L2 459 199 18
|
||||
L3 679 235 18
|
||||
L4 679 291 18
|
||||
L5 679 363 18
|
||||
L6 679 418 18
|
||||
L7 460 567 18
|
||||
L8 460 622 18
|
||||
L9 679 659 18
|
||||
L10 679 713 18
|
||||
L11 679 750 18
|
||||
L12 679 842 18
|
||||
L13 679 897 18
|
||||
|
||||
Page 3
|
||||
|
||||
SchdAI_1a 394 455 12
|
||||
SchdAI_1b 514 455 12
|
||||
SchdAI_1c 637 455 12
|
||||
SchdAI_1d 756 455 12
|
||||
!SchdAI_2a 394 491 12
|
||||
!SchdAI_2b 514 491 12
|
||||
!SchdAI_2c 637 491 12
|
||||
!SchdAI_2d 756 491 12
|
||||
SchdAI_3a 394 528 12
|
||||
SchdAI_3b 514 528 12
|
||||
SchdAI_3c 637 528 12
|
||||
SchdAI_3d 756 528 12
|
||||
SchdAI_4a 394 603 12
|
||||
SchdAI_4b 514 602 12
|
||||
SchdAI_4c 635 602 12
|
||||
SchdAI_4d 756 602 12
|
||||
!SchdAI_5a 394 638 12
|
||||
!SchdAI_5b 514 638 12
|
||||
!SchdAI_5c 635 638 12
|
||||
!SchdAI_5d 756 638 12
|
||||
SchdAI_6a 394 675 12
|
||||
SchdAI_6b 514 675 12
|
||||
SchdAI_6c 635 675 12
|
||||
SchdAI_6d 756 675 12
|
||||
SchdAI_7a 394 730 12
|
||||
SchdAI_7b 514 730 12
|
||||
SchdAI_7c 635 730 12
|
||||
SchdAI_7d 756 730 12
|
||||
SchdAI_8a 394 766 12
|
||||
SchdAI_8b 514 766 12
|
||||
SchdAI_8c 635 766 12
|
||||
SchdAI_8d 756 766 12
|
||||
SchdAI_9a 394 803 12
|
||||
SchdAI_9b 514 803 12
|
||||
SchdAI_9c 635 803 12
|
||||
SchdAI_9d 756 803 12
|
||||
SchdAI_10a 394 878 12
|
||||
SchdAI_10b 514 878 12
|
||||
SchdAI_10c 635 878 12
|
||||
SchdAI_10d 756 878 12
|
||||
SchdAI_11a 394 932 12
|
||||
SchdAI_11b 514 932 12
|
||||
SchdAI_11c 635 932 12
|
||||
SchdAI_11d 756 932 12
|
||||
SchdAI_12a 394 969 12
|
||||
SchdAI_12b 514 969 12
|
||||
SchdAI_12c 635 969 12
|
||||
SchdAI_12d 756 969 12
|
||||
SchdAI_13a 394 1023 12
|
||||
SchdAI_13b 514 1023 12
|
||||
SchdAI_13c 635 1023 12
|
||||
SchdAI_13d 756 1023 12
|
||||
|
||||
Page 4
|
||||
|
||||
L14aa 393 217 12
|
||||
L14ab 515 217 12
|
||||
L14ac 635 217 12
|
||||
L14ad 757 217 12
|
||||
L14ba 393 253 12
|
||||
L14bb 515 253 12
|
||||
L14bc 635 253 12
|
||||
L14bd 757 253 12
|
||||
L14ca 393 290 12
|
||||
L14cb 515 290 12
|
||||
L14cc 635 290 12
|
||||
L14cd 757 290 12
|
||||
|
||||
!L14da 393 327 12
|
||||
!L14db 515 326 12
|
||||
!L14dc 636 327 12
|
||||
!L14dd 757 327 12
|
||||
!L14ea 393 363 12
|
||||
!BL14eb 515 363 12
|
||||
!L14ec 635 363 12
|
||||
!L14ed 757 363 12
|
||||
!SchdAI_15a 393 400 12
|
||||
!SchdAI_15b 515 400 12
|
||||
!SchdAI_15c 635 400 12
|
||||
!SchdAI_15d 757 400 12
|
||||
|
||||
SchdAI_16a 393 363 12
|
||||
SchdAI_16b 515 363 12
|
||||
SchdAI_16c 635 363 12
|
||||
SchdAI_16d 757 363 12
|
||||
SchdAI_17b 515 436 12
|
||||
SchdAI_17c 635 436 12
|
||||
SchdAI_17d 757 436 12
|
||||
SchdAI_18a 393 473 12
|
||||
SchdAI_18b 515 473 12
|
||||
SchdAI_18c 635 473 12
|
||||
SchdAI_18d 757 473 12
|
||||
SchdAI_19a 393 529 12
|
||||
SchdAI_19b 515 529 12
|
||||
SchdAI_19c 635 529 12
|
||||
SchdAI_19d 757 529 12
|
||||
SchdAI_20b 515 565 12
|
||||
SchdAI_20c 635 565 12
|
||||
SchdAI_20d 757 565 12
|
||||
SchdAI_21a 393 601 12
|
||||
SchdAI_21b 515 601 12
|
||||
SchdAI_21c 635 601 12
|
||||
SchdAI_21d 757 601 12
|
||||
SchdAI_22a 393 656 12
|
||||
SchdAI_22b 515 656 12
|
||||
SchdAI_22c 635 656 12
|
||||
SchdAI_22d 757 656 12
|
||||
SchdAI_23a 107 766 18
|
||||
SchdAI_23b 305 766 18
|
||||
SchdAI_23c 504 766 18
|
||||
SchdAI_23d 701 766 18
|
||||
|
||||
Page 5
|
||||
|
||||
no_round_to_whole_numbers
|
||||
|
||||
WSII_1a 525 155 12
|
||||
WSII_1b 608 155 12
|
||||
WSII_1c 690 155 12
|
||||
WSII_1d 773 155 12
|
||||
WSII_2a 525 210 12
|
||||
WSII_2b 608 210 12
|
||||
WSII_2c 690 210 12
|
||||
WSII_2d 773 210 12
|
||||
WSII_3a 525 255 12
|
||||
WSII_3b 608 255 12
|
||||
WSII_3c 690 255 12
|
||||
WSII_3d 773 255 12
|
||||
WSII_4a 525 275 12
|
||||
WSII_4b 608 275 12
|
||||
WSII_4c 690 275 12
|
||||
WSII_4d 773 275 12
|
||||
WSII_5a 525 297 12
|
||||
WSII_5b 608 297 12
|
||||
WSII_5c 690 297 12
|
||||
WSII_5d 773 297 12
|
||||
WSII_6a 525 323 12
|
||||
WSII_6b 608 323 12
|
||||
WSII_6c 690 323 12
|
||||
WSII_6d 773 323 12
|
||||
WSII_7a 525 344 12
|
||||
WSII_7b 608 344 12
|
||||
WSII_7c 690 344 12
|
||||
WSII_7d 773 344 12
|
||||
WSII_8a 525 370 12
|
||||
WSII_8b 608 370 12
|
||||
WSII_8c 690 370 12
|
||||
WSII_8d 773 370 12
|
||||
WSII_9a 525 404 12
|
||||
WSII_9b 608 404 12
|
||||
WSII_9c 690 404 12
|
||||
WSII_9d 773 404 12
|
||||
WSII_10a 525 513 12
|
||||
WSII_10b 608 513 12
|
||||
WSII_11a 525 564 12
|
||||
WSII_11b 608 564 12
|
||||
WSII_12a 525 641 12
|
||||
WSII_12b 608 641 12
|
||||
WSII_12c 690 641 12
|
||||
WSII_12d 773 641 12
|
||||
WSII_13a 525 692 12
|
||||
WSII_13b 608 692 12
|
||||
WSII_13c 690 692 12
|
||||
WSII_13d 773 692 12
|
||||
WSII_14 773 735 12
|
||||
FAIWS_1a 480 1022
|
||||
FAIWS_1b 590 1022
|
||||
FAIWS_1c 700 1022
|
||||
FAIWS_1d 810 1022
|
||||
FAIWS_3a 480 1085
|
||||
FAIWS_3b 590 1085
|
||||
FAIWS_3c 700 1085
|
||||
FAIWS_3d 810 1085
|
||||
|
||||
Page 6
|
||||
|
||||
FontSz 8
|
||||
|
||||
L6WS_1a 312 102 6
|
||||
L6WS_1b 752 102 6
|
||||
L6WS_1c 312 671 6
|
||||
L6WS_1d 752 671 6
|
||||
L6WS_2a 312 158 6
|
||||
L6WS_2b 752 158 6
|
||||
L6WS_2c 312 726 6
|
||||
L6WS_2d 752 726 6
|
||||
L6WS_3a 312 177 6
|
||||
L6WS_3b 752 177 6
|
||||
L6WS_3c 312 745 6
|
||||
L6WS_3d 752 745 6
|
||||
L6WS_4a 312 204 6
|
||||
L6WS_4b 752 204 6
|
||||
L6WS_4c 312 772 6
|
||||
L6WS_4d 752 772 6
|
||||
L6WS_5a 312 231 6
|
||||
L6WS_5b 752 231 6
|
||||
L6WS_5c 312 799 6
|
||||
L6WS_5d 752 799 6
|
||||
L6WS_6a 312 305 6
|
||||
L6WS_6b 752 305 6
|
||||
L6WS_6c 312 873 6
|
||||
L6WS_6d 752 873 6
|
||||
L6WS_7a 312 333 6
|
||||
L6WS_7b 752 333 6
|
||||
L6WS_7c 312 901 6
|
||||
L6WS_7d 752 901 6
|
||||
L6WS_8a 312 377 6
|
||||
L6WS_8b 752 377 6
|
||||
L6WS_8c 312 945 6
|
||||
L6WS_8d 752 945 6
|
||||
L6WS_9a 312 422 6
|
||||
L6WS_9b 752 422 6
|
||||
L6WS_9c 312 990 6
|
||||
L6WS_9d 752 990 6
|
||||
L6WS_10a 312 437 6
|
||||
L6WS_10b 752 437 6
|
||||
L6WS_10c 312 1009 6
|
||||
L6WS_10d 752 1009 6
|
||||
L6WS_11a 312 463 6
|
||||
L6WS_11b 752 463 6
|
||||
L6WS_11c 312 1033 6
|
||||
L6WS_11d 752 1033 6
|
||||
L6WS_12a 312 493 6
|
||||
L6WS_12b 752 493 6
|
||||
L6WS_12c 312 1063 6
|
||||
L6WS_12d 752 1063 6
|
||||
L6WS_13a 312 536 6
|
||||
L6WS_13b 752 536 6
|
||||
L6WS_13c 312 1107 6
|
||||
L6WS_13d 752 1107 6
|
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/CA_5805_pdf.dat
Executable file
BIN
TaxSoftware/OpenTaxSolver2024_22.07_mswin/src/formdata/CA_5805_pdf.dat
Executable file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user