Skip to content

alexcoder04/sol-lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sol

GUI application framework for the TI-nspire. This repository is the "home" of the project and contains all the Lua library code.

Here you can find the docs.

Here you can find an example application. And here is another one.

These are the tools needed for developing applications with Sol.

Why?

Building GUI applications for TI-nspire using the stock Lua library from TI is a pain, this is an attempt to make it easier and more comfortable.

Organized

Your code has to be organized, no "throwing everything into one Lua file" anymore! All the parts are then assembled and built into one .tns file by sol-tools. These tools are also downloading the required sol-lib Lua library version for you.

  • init.lua runs at start
  • app.lua is your main file where you define the app logic
  • solproj.yml is where app metadata goes
  • components are re-usable blocks of your GUI which can inherit from base components, written in YAML
  • res contains any non-code resources, e. g. images and data.
  • and so on...

How to Use

Check out the Quickstart guide.

Roadmap / TODOs

  • more base components
    • input field
    • canvas
    • list
    • sublayouts/containers
    • tabs
    • console
    • game canvas using physics api
    • 2D-editor using nspire's built-in editor
  • colorful components
  • click events
  • component focus (tabbing, highlighting selected)
  • menu api
  • paint hook, use raw gc functions
  • persistent data storage
  • message box components imitating nspireOS's UI
    • basic support
    • theming
    • global theming through MyLib
  • redraw on timer only if one of update functions returns true
  • schedule to do something at next redraw/update / imitating sleep function
    • do at next update
    • do in specific time interval
  • light/dark mode switching
  • improve InputField component
    • data types (e. g. int)
    • labels

Naming

Lua (portuguese for "moon") -> Sol (portuguese for "sun")

Credits

  • The dialog library module is based on the nSpaint GUI engine written by Loïc Pujet.