Go Down

Topic: Anyone else developing a user interface (UI) on LCDs and keypads/buttons? (Read 6079 times) previous topic - next topic

olikraus

m2tklib example

here are some elements (widgets) arranged within the gridlist container (c2 = two columns)
Code: [Select]
M2_LABEL(el_label1, NULL, "red");
M2_RADIO(el_radio1, "v0", &select_color); 
M2_LABEL(el_label2, NULL, "green");
M2_RADIO(el_radio2, "v1", &select_color); 
M2_LABEL(el_label3, NULL, "blue");
M2_RADIO(el_radio3, "v2", &select_color); 
M2_BUTTON(el_cancel, NULL, "cancel", fn_cancel);
M2_BUTTON(el_ok, NULL, " ok ", fn_ok); 
M2_LIST(list) = { &el_label1, &el_radio1,     
&el_label2, &el_radio2,       
&el_label3, &el_radio3,     
&el_cancel, &el_ok  };
M2_GRIDLIST(list_element, "c2",list);


results are portable accross different output devices:
dogs102 (dogm128 lib):


16x4 LCD (LiquidCrystal Lib):


Oliver




liudr

Awesome! The code reads similar to java. My ultimate goal is to create something like a dialog or panel, with multiple inputs of different types, much like a dialog you see in java dialogs.

See this one I found randomly online:


There are lists, number entries, radio buttons, text entries and several buttons. Apparently I'm not going for their level of visual details but a rough text-based version.

You can use left/right or a tab to move among the fields on the panel and change values here and there.

olikraus


There are lists, number entries, radio buttons, text entries and several buttons. Apparently I'm not going for their level of visual details but a rough text-based version.


This is what I wanted to do. m2tklib is expandable and in principle able to support any kind of input fields. Currently I have text input, radio/checkbox buttons, number inputs, normal buttons with several features (see here http://code.google.com/p/m2tklib/wiki/elref)

There are also different container "widgets" which allow different approaches for the layout of dialog boxes. So except for the combo box, you could already implement the "page setup" dialog box.

The appearance of these elements has been separated from the dialog specification itself. It is the responsibility of the graphics driver to add some nice shadow borders or similar things to the elements.

Oliver

liudr

Impressive. I'll take a lot of time to catch up with you. BTW, my documentation is final finished, after 33 pages. I sincerely hope someone will read it  :smiley-sweat: :D

olikraus

What i have seen so far is, that your phi-lib is a well known standard here. Well documented and proven in use. For any text based LCDs the choice #1. Additionally, some features like scrolling will probably never go to m2tklib. And finally, there is no release for m2tklib. While i hope that i can finish it soon, it is still vaporware...


liudr

olikraus,

That was flattering. My library is not really a standard of any sort. I do have a decent manual though  :D
I've used LCD for quite some time and didn't see any libraries of user interface. I struggled to make my own and think lots have gone and will go through the same struggle so I made this library. It's anything but perfect although currently it's the only one posted here and on playground. Please forge ahead with your development. I will probably make a new release after the summer is over if I finish everything I plan to finish over the summer.

olikraus

Hi

First version of M2TKLIB is finished

see here: http://arduino.cc/forum/index.php/topic,65653.0.html

Project URL: http://code.google.com/p/m2tklib/

Oliver

Go Up