lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hello Avinash,

Sunday, May 6, 2018, 1:18:11 AM, you wrote:

> I was able to write a small Lua+FLTK GUI program in under 1 MB.
> But FLTK is old & ugly(in my opinion) and I really wanted something
> that looked native and modern.

I  investigated  a  lot of GUI librraies last years, looking for small,
portable, nice-looking and easy to use solution, so I can give you some
advice:

-  IUP Lua is small (500 KB to 3 MB depending on features you need) and
developed  by Lua authors themself. It has simple Lua API. It's not as
ugly  as  FLTK,  but  looks  pretty simple (similar to classic Windows
programs)

-  "Dear IMGui"  is  very small (400 KB for everything + a few
hundred KBs for Lua binding) and provides modern-looking flat view.
It's a bit limited,  though,  in particular GridView lacks some features.
Lua binding: https://github.com/patrickriordan/imgui_lua_bindings

-  for  a  more traditional choice, there are bindings to wxWindows (wxLua)
and  Qt  (lqt  and  qtlua)   - they will cost you 10-20 MB and provide
modern-looking   GUI.  You can download ZeroBraneStudio Lua IDE to see
wxLua in action and browse the IDE sources


Aside of Lua-enabled libraries, there is Sciter GUI library that provides
a  pretty  close  emulation  of html5+css3+js  in  just  5-10  MB.  It
provides   all  the  niceties of modern-looking html-based GUIs, There
are   Windows   and  Mac  versions,  while  Linux  version  ATM  is  in
alpha stage with slow development

Finally,  there  is Qt Quick which provides nice declarative language,
modern-looking (similar to html) GUIs and costs about 30 MB. It can be
halved  but  this  requires compiling library yourself. It can be even
rendered remotely in browser via WebGL backend

I personally will  choose  between  the  last  two  because  they  are
feature-complete  (unlike  ImGui),  provide  modern-looking  fluid GUI
(unlike  IUP)  and  either  support  well-known html programming model
(Sciter) or high-level declarative language (Qt Quick)


PS:   For   curiosity,  there  is  also  Red  language,  whose  whole
environment including compiler, libraries and GUI library is about 1 MB!
Unfortunately,  its GUI library is limited (no GridView at all)
and  portability  to Mac/Linux is under development. But it's the most
compact   GUI  description  language  I've  seen  -  f.e.  the  entire
calculator example is just about 5 lines of code!!!

-- 
Best regards,
 Bulat                            mailto:Bulat.Ziganshin@gmail.com