├── .clang-format ├── .github └── workflows │ └── build.yml ├── .gitignore ├── .gitmodules ├── CMakeLists.txt ├── README.md ├── TODO.txt ├── TS ├── docs │ ├── donations.html │ ├── file_format_spec.txt │ ├── history.txt │ ├── images │ │ ├── check.png │ │ ├── documentation │ │ │ ├── deleted.png │ │ │ ├── edit.png │ │ │ ├── grid.png │ │ │ ├── gridline.png │ │ │ ├── gridline2.png │ │ │ ├── gridsel1.png │ │ │ ├── gridsel2.png │ │ │ ├── gridsel3.png │ │ │ ├── insert.png │ │ │ ├── long1.png │ │ │ ├── long2.png │ │ │ ├── long3.png │ │ │ ├── new.png │ │ │ ├── postgrid.png │ │ │ ├── pregrid.png │ │ │ ├── textsize.png │ │ │ └── zoomed.png │ │ ├── excl.png │ │ ├── screenshots │ │ │ ├── screenshot_personel.png │ │ │ ├── screenshot_sales.png │ │ │ ├── screenshot_todo.png │ │ │ ├── screenshot_todo_half.png │ │ │ ├── screenshot_todo_linux.png │ │ │ ├── screenshot_todo_mac.png │ │ │ ├── screenshot_tutorial.png │ │ │ ├── screenshot_tutorial2.png │ │ │ └── screenshot_unicode.png │ │ ├── stop.png │ │ └── treesheets_logo.png │ ├── screenshots.html │ ├── script_reference.html │ ├── script_reference_update.bat │ └── tutorial.html ├── examples │ ├── complex_eval.cts │ ├── contrib │ │ ├── Procrastination.cts │ │ ├── help │ │ │ ├── treesheet key quick reference (by WiM) 3 posted.cts │ │ │ └── treesheet menu including images landscape final.cts │ │ ├── intro-ru.cts │ │ ├── structogram-quicksort.cts │ │ ├── todo_calendar-zh.cts │ │ ├── weekly+calendar.cts │ │ ├── what-i-like-about-treesheets.cts │ │ └── yearly-calendar.cts │ ├── imported_from_xml_examples │ │ ├── books.cts │ │ ├── cd_catalog.cts │ │ ├── menu.cts │ │ └── plant_catalog.cts │ ├── operation-reference.cts │ ├── personel_file.cts │ ├── sales.cts │ ├── simple_graph.cts │ ├── todo_calendar.cts │ ├── tutorial-de.cts │ ├── tutorial-fr.cts │ ├── tutorial-pt_BR.cts │ ├── tutorial-ru.cts │ ├── tutorial-sp.cts │ ├── tutorial-zh.cts │ ├── tutorial.cts │ ├── unicode_test.cts │ └── work_breakdown_structure.cts ├── images │ ├── icon16.png │ ├── icon32.png │ ├── material │ │ ├── LICENSE.material │ │ ├── LICENSE.vscode-icons │ │ └── toolbar │ │ │ ├── cancel.svg │ │ │ ├── cancel_dark.svg │ │ │ ├── editcopy.svg │ │ │ ├── editcopy_dark.svg │ │ │ ├── editpaste.svg │ │ │ ├── editpaste_dark.svg │ │ │ ├── filenew.svg │ │ │ ├── filenew_dark.svg │ │ │ ├── fileopen.svg │ │ │ ├── fileopen_dark.svg │ │ │ ├── filesave.svg │ │ │ ├── filesave_dark.svg │ │ │ ├── filesaveas.svg │ │ │ ├── filesaveas_dark.svg │ │ │ ├── image.svg │ │ │ ├── image_dark.svg │ │ │ ├── newgrid.svg │ │ │ ├── newgrid_dark.svg │ │ │ ├── replace.svg │ │ │ ├── replace_dark.svg │ │ │ ├── replaceall.svg │ │ │ ├── replaceall_dark.svg │ │ │ ├── run.svg │ │ │ ├── run_dark.svg │ │ │ ├── search.svg │ │ │ ├── search_dark.svg │ │ │ ├── undo.svg │ │ │ ├── undo_dark.svg │ │ │ ├── zoomin.svg │ │ │ ├── zoomin_dark.svg │ │ │ ├── zoomout.svg │ │ │ └── zoomout_dark.svg │ ├── nuvola │ │ ├── author │ │ ├── dropdown │ │ │ ├── apply.png │ │ │ ├── back.png │ │ │ ├── bookcase.png │ │ │ ├── bookmark.png │ │ │ ├── bug.png │ │ │ ├── cache.png │ │ │ ├── cancel.png │ │ │ ├── clanbomber.png │ │ │ ├── color_line.png │ │ │ ├── configure.png │ │ │ ├── down.png │ │ │ ├── edit_add.png │ │ │ ├── edit_remove.png │ │ │ ├── email.png │ │ │ ├── forward.png │ │ │ ├── gohome.png │ │ │ ├── history.png │ │ │ ├── kalarm.png │ │ │ ├── kcmprocessor.png │ │ │ ├── kcoloredit.png │ │ │ ├── kfm_home.png │ │ │ ├── kgpg.png │ │ │ ├── kgpg_key3.png │ │ │ ├── ksysv.png │ │ │ ├── kuser.png │ │ │ ├── kweather.png │ │ │ ├── ledblue.png │ │ │ ├── ledgreen.png │ │ │ ├── ledlightblue.png │ │ │ ├── ledlightgreen.png │ │ │ ├── ledorange.png │ │ │ ├── ledpurple.png │ │ │ ├── ledred.png │ │ │ ├── ledyellow.png │ │ │ ├── maybe.png │ │ │ ├── messagebox_info.png │ │ │ ├── messagebox_warning.png │ │ │ ├── misc.png │ │ │ ├── mozilla.png │ │ │ ├── no.png │ │ │ ├── noatunloopsong.png │ │ │ ├── package_games_arcade.png │ │ │ ├── package_network.png │ │ │ ├── package_toys.png │ │ │ ├── player_pause.png │ │ │ ├── player_play.png │ │ │ ├── player_stop.png │ │ │ └── up.png │ │ ├── fold.png │ │ ├── license.txt │ │ ├── readme.txt │ │ └── thanks.to │ └── render │ │ ├── line_ne.png │ │ ├── line_nw.png │ │ ├── line_se.png │ │ └── line_sw.png ├── readme.html ├── scripts │ ├── Export JSON.lobster │ └── modules │ │ ├── color.lobster │ │ ├── std.lobster │ │ ├── stdtype.lobster │ │ └── vec.lobster └── translations │ ├── de │ ├── compile.bat │ ├── merge.bat │ ├── ts.mo │ └── ts.po │ ├── fr_FR │ ├── compile.bat │ ├── compile.sh │ ├── merge.bat │ ├── merge.sh │ ├── ts.mo │ └── ts.po │ ├── it │ ├── compile.bat │ ├── merge.bat │ ├── ts.mo │ └── ts.po │ ├── pt_BR │ ├── compile.bat │ ├── merge.bat │ ├── ts.mo │ └── ts.po │ ├── readme_translations.txt │ ├── ru_RU │ ├── compile.sh │ ├── help_localization.md │ ├── info_Focus&Approaches.md │ ├── merge.sh │ ├── ts.mo │ └── ts.po │ ├── ts.pot │ └── zh_CN │ ├── compile.bat │ ├── merge.bat │ ├── ts.mo │ └── ts.po ├── ZLIB_LICENSE.txt ├── platform ├── linux │ ├── com.strlen.TreeSheets.desktop │ ├── com.strlen.TreeSheets.svg │ └── com.strlen.TreeSheets.xml ├── osx │ ├── App.icns │ └── Info.plist └── win │ ├── icon.rc │ └── icon1.ico ├── src ├── StackWalkerHelpers.h ├── cell.h ├── document.h ├── evaluator.h ├── genpot.bat ├── grid.h ├── lobster_impl.cpp ├── main.cpp ├── myapp.h ├── mycanvas.h ├── myevents.h ├── myframe.h ├── mywxtools.h ├── script_interface.h ├── selection.h ├── stdafx.cpp ├── stdafx.h ├── system.h ├── text.h ├── threadpool.h ├── tools.h └── treesheets_impl.h └── thirdparty ├── StackWalker ├── StackWalker.cpp ├── StackWalker.h └── StackWalkerHelpers.cpp └── lobster ├── external ├── flatbuffers │ └── src │ │ ├── idl_gen_text.cpp │ │ ├── idl_gen_text.h │ │ ├── idl_parser.cpp │ │ └── util.cpp └── libtcc │ ├── arm-asm.c │ ├── arm-gen.c │ ├── arm-link.c │ ├── arm-tok.h │ ├── arm64-asm.c │ ├── arm64-gen.c │ ├── arm64-link.c │ ├── config.h │ ├── dwarf.h │ ├── elf.h │ ├── i386-asm.c │ ├── i386-asm.h │ ├── i386-gen.c │ ├── i386-link.c │ ├── i386-tok.h │ ├── libtcc.c │ ├── libtcc.h │ ├── readmes │ ├── COPYING │ ├── README │ └── VERSION │ ├── stab.def │ ├── stab.h │ ├── tcc.h │ ├── tccasm.c │ ├── tccdbg.c │ ├── tccdefs_.h │ ├── tccelf.c │ ├── tccgen.c │ ├── tccmacho.c │ ├── tccpe.c │ ├── tccpp.c │ ├── tccrun.c │ ├── tcctok.h │ ├── x86_64-asm.h │ ├── x86_64-gen.c │ └── x86_64-link.c ├── include ├── StackWalker │ ├── StackWalker.cpp │ ├── StackWalker.h │ ├── StackWalkerHelpers.cpp │ └── StackWalkerHelpers.h ├── flatbuffers │ ├── allocator.h │ ├── array.h │ ├── base.h │ ├── buffer.h │ ├── buffer_ref.h │ ├── code_generator.h │ ├── code_generators.h │ ├── default_allocator.h │ ├── detached_buffer.h │ ├── file_manager.h │ ├── flatbuffer_builder.h │ ├── flatbuffers.h │ ├── flatc.h │ ├── flex_flat_util.h │ ├── flexbuffers.h │ ├── grpc.h │ ├── hash.h │ ├── idl.h │ ├── minireflect.h │ ├── reflection.h │ ├── reflection_generated.h │ ├── registry.h │ ├── stl_emulation.h │ ├── string.h │ ├── struct.h │ ├── table.h │ ├── util.h │ ├── vector.h │ ├── vector_downward.h │ └── verifier.h ├── gsl │ └── gsl-lite.hpp └── subprocess.h ├── lobster ├── language.vcxproj └── language.vcxproj.filters ├── readme.md ├── reclone.bat └── src ├── audio.cpp ├── builtins.cpp ├── compiler.cpp ├── cubegen.cpp ├── disasm.cpp ├── engine.cpp ├── file.cpp ├── font.cpp ├── fontrenderer.cpp ├── glgeom.cpp ├── glloadiqm.cpp ├── glshader.cpp ├── glsystem.cpp ├── gltexture.cpp ├── gltimequery.cpp ├── glvr.cpp ├── graphics.cpp ├── imbind.cpp ├── lobster ├── 3dgrid.h ├── accumulator.h ├── bytecode_generated.h ├── codegen.h ├── compiler.h ├── constval.h ├── cubegen.h ├── disasm.h ├── dllist.h ├── fontrenderer.h ├── geom.h ├── glincludes.h ├── glinterface.h ├── graphics.h ├── idents.h ├── il.h ├── lex.h ├── lobsterreader.h ├── mctables.h ├── meshgen.h ├── natreg.h ├── node.h ├── optimizer.h ├── packed_vector.h ├── parser.h ├── platform.h ├── polyreduce.h ├── resource_manager.h ├── rng_hash.h ├── sdlincludes.h ├── sdlinterface.h ├── simplex.h ├── slaballoc.h ├── small_vector.h ├── stack_vector.h ├── stdafx.h ├── string_tools.h ├── tonative.h ├── tools.h ├── ttypes.h ├── typecheck.h ├── unicode.h ├── varint.h ├── vmdata.h ├── vmops.h ├── wasm_binary_writer.h ├── wasm_binary_writer_test.h ├── wentropy.h └── wfc.h ├── lobsterreader.cpp ├── main.cpp ├── meshgen.cpp ├── physics.cpp ├── platform.cpp ├── sdlaudiosfxr.cpp ├── sdlsystem.cpp ├── simplex.cpp ├── stdafx.cpp ├── steamworks.cpp ├── tccbind.cpp ├── tocpp.cpp ├── tonative.cpp ├── towasm.cpp ├── vm.cpp └── vmdata.cpp /.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | BasedOnStyle: Google 3 | --- 4 | Language: Cpp 5 | IndentWidth: 4 6 | ColumnLimit: 100 7 | UseTab: Never 8 | AccessModifierOffset: 0 9 | AlignTrailingComments: true 10 | AllowShortBlocksOnASingleLine: true 11 | AllowShortCaseLabelsOnASingleLine: true 12 | AllowShortFunctionsOnASingleLine : All 13 | AllowShortLoopsOnASingleLine: true 14 | BinPackParameters: true 15 | ConstructorInitializerAllOnOneLineOrOnePerLine: true 16 | IndentCaseLabels: true 17 | NamespaceIndentation: None 18 | PointerAlignment: Right 19 | SpaceBeforeParens: ControlStatements 20 | SpaceAfterTemplateKeyword: false 21 | Standard: Cpp11 22 | Cpp11BracedListStyle: true 23 | SpaceBeforeCpp11BracedList: true 24 | IndentPPDirectives: BeforeHash 25 | AlwaysBreakTemplateDeclarations: false 26 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | pull_request: 8 | branches: 9 | - master 10 | 11 | jobs: 12 | build-linux: 13 | name: Build Linux 14 | runs-on: ubuntu-latest 15 | permissions: 16 | contents: write 17 | steps: 18 | - uses: actions/checkout@v4 19 | - name: apt update 20 | run: sudo apt-get -o Acquire::Retries=3 update 21 | - name: install opengl 22 | run: sudo apt-get -o Acquire::Retries=3 install mesa-common-dev libgl1-mesa-dev libgl1 libglx-mesa0 libxext-dev 23 | - name: install gtk 24 | run: sudo apt-get -o Acquire::Retries=3 install libgtk-3-dev 25 | - name: cmake 26 | run: cmake -S . -B _build -DCMAKE_INSTALL_PREFIX=/usr -DCPACK_PACKAGING_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DGIT_WXWIDGETS_SUBMODULES=ON -DwxUSE_SYS_LIBS=OFF 27 | - name: build and package TreeSheets 28 | run: cmake --build _build --target package -j4 29 | - name: Remove epoch from .deb filename 30 | run: for file in _build/treesheets_1:*.deb; do mv -v "${file}" "${file/treesheets_1:/treesheets_}"; done 31 | - name: Create release 32 | if: github.event_name == 'push' 33 | uses: ncipollo/release-action@v1 34 | with: 35 | tag: ${{ github.run_id }} 36 | allowUpdates: true 37 | omitBody: true 38 | commit: ${{ github.sha }} 39 | artifacts: "_build/treesheets_*.deb" 40 | - name: Upload artifacts 41 | if: github.event_name == 'pull_request' 42 | uses: actions/upload-artifact@v4 43 | with: 44 | name: linux-builds 45 | path: _build/treesheets_*.deb 46 | 47 | build-windows: 48 | name: Build Windows 49 | runs-on: windows-latest 50 | permissions: 51 | contents: write 52 | steps: 53 | - uses: actions/checkout@v4 54 | - name: Add msbuild to PATH 55 | uses: microsoft/setup-msbuild@v1.1 56 | - name: cmake 57 | run: cmake -S . -B _build -DCMAKE_BUILD_TYPE=Release -DGIT_WXWIDGETS_SUBMODULES=ON 58 | - name: build and package 59 | run: cmake --build _build --config Release --target package -j 60 | - name: Create release 61 | if: github.event_name == 'push' 62 | uses: ncipollo/release-action@v1 63 | with: 64 | tag: ${{ github.run_id }} 65 | allowUpdates: true 66 | omitBody: true 67 | commit: ${{ github.sha }} 68 | artifacts: "_build/TreeSheets-*.exe, _build/TreeSheets-*.zip" 69 | - name: Upload artifacts 70 | if: github.event_name == 'pull_request' 71 | uses: actions/upload-artifact@v4 72 | with: 73 | name: windows-builds 74 | path: | 75 | _build/TreeSheets-*.exe 76 | _build/TreeSheets-*.zip 77 | 78 | build-mac: 79 | name: Build Mac 80 | runs-on: macos-latest 81 | env: 82 | minmac: 10.15 83 | permissions: 84 | contents: write 85 | steps: 86 | - uses: actions/checkout@v4 87 | - name: Prepare Plist 88 | run: | 89 | /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $(date +'%Y%m%d%H%M%S')" platform/osx/Info.plist 90 | /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $(date +'%Y.%m.%d')" platform/osx/Info.plist 91 | /usr/libexec/PlistBuddy -c "Set :LSMinimumSystemVersion $minmac" platform/osx/Info.plist 92 | - name: cmake 93 | run: cmake -S . -B _build -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="$minmac" -DGIT_WXWIDGETS_SUBMODULES=ON -DwxUSE_SYS_LIBS=OFF 94 | - name: Build and package TreeSheets 95 | run: cmake --build _build --target package -j4 96 | - name: Create release 97 | if: github.event_name == 'push' 98 | uses: ncipollo/release-action@v1 99 | with: 100 | tag: ${{ github.run_id }} 101 | allowUpdates: true 102 | omitBody: true 103 | commit: ${{ github.sha }} 104 | artifacts: "_build/TreeSheets-*.dmg" 105 | - name: Upload artifacts 106 | if: github.event_name == 'pull_request' 107 | uses: actions/upload-artifact@v4 108 | with: 109 | name: macos-disk-image 110 | path: _build/TreeSheets-*.dmg 111 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /treesheets/Release/ 2 | /treesheets/Debug/ 3 | /wxwidgets/ 4 | osx/TreeSheetsBeta/ 5 | osx/TreeSheets/TreeSheets.xcodeproj/project.xcworkspace/xcuserdata/ 6 | *.exe 7 | *.zip 8 | *.tar.gz 9 | *.suo 10 | *.ilk 11 | *.pdb 12 | *.bak 13 | **/*.o 14 | 15 | TreeSheets/\.vs/treesheets/v15/ 16 | 17 | build/treesheets/language/ 18 | 19 | TS/scripts/\.con\.log 20 | # In-tree build 21 | TS/treesheets 22 | TS/2 23 | 24 | # In-tree build CMake files 25 | CMakeCache.txt 26 | CMakeFiles/** 27 | Makefile 28 | cmake_install.cmake 29 | CMakeLists.txt.user 30 | # Build directory for out-of-tree builds 31 | _build/ 32 | 33 | TreeSheets/.vs 34 | 35 | treesheets.cbp 36 | TreeSheets/x64 37 | *.ipdb 38 | *.iobj 39 | TreeSheets/gettext_bin 40 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/wxWidgets"] 2 | path = thirdparty/wxWidgets 3 | url = https://github.com/wxWidgets/wxWidgets 4 | branch = master 5 | -------------------------------------------------------------------------------- /TS/docs/donations.html: -------------------------------------------------------------------------------- 1 | 3 | 4 |
5 |Donations
47 |The following generous people have donated to TreeSheets:
48 |(Highest donations first):
49 |50 | Pierre van Male de Ghorain, David Lynch, Michael Wicher, Alexander Deliyannis, Hunter Elofson, James McGuire, 51 | NameAction Chile S. A., Dietmar Bellersheim, Infolution B.V., Xavier Masson, dotpeople, Matthew Probst, 52 | Francisco Gracia, Roland Breuer, Yechen Mao, Jeffrey Goatcher, Eric Raible, Günter Marangoni, 53 | Zdenek Krejci, Daniel Kimblad, Carsten Heitmann, Robert Mischke, Nasul Magallanes, Yango Pohl, 54 | Tab Hockamier, More Addin, Alistair McGhee, Thorsten Schwesig, QuantumFlux42, Frank Salinas, Tobias Skarman, 55 | Olav Schettler, iliis, Adam Glowalla, One Man Talking, Amy Young, Ulrich Benzing, Dragan Espenschied, 56 | Alberto Egidi, Kevin Whitaker, BTWReviews.com, Dénes Harmath, Aleksis Doma, Arthur Koks, Matthias Knoefel, 57 | Tikhonov Aleksey, Danylo Dubinin, Howard, Daniel Rosenberg, Asish Kar-Roy, Keith Haddad. 58 |
59 |(+ quite a few anonymous donations).
60 | 61 |
I am no longer requesting donations at this point. While I am grateful for the support 62 | of the above people, the total amount donated so far from 2008 to 2018 is $2007, or about $16 per month.
63 | 64 |Screenshots
42 |