mui updates

This commit is contained in:
kraus 2022-01-04 23:34:16 +01:00
parent 6b449b5aa2
commit 47e570c263
6 changed files with 315 additions and 37 deletions

View File

@ -187,7 +187,9 @@ uint8_t mui_fds_first_token(mui_t *ui)
return mui_fds_next_token(ui);
}
/*
The inner token delimiter "|" is fixed. It must be the pipe symbol.
*/
uint8_t mui_fds_next_token(mui_t *ui)
{
uint8_t c;
@ -223,7 +225,7 @@ uint8_t mui_fds_next_token(mui_t *ui)
}
/*
find nth token, return 0 if n exceeds the number of tokens, 1 otherwise
find nth token ('|' delimiter), return 0 if n exceeds the number of tokens, 1 otherwise
the result is stored in ui->text
*/
uint8_t mui_fds_get_nth_token(mui_t *ui, uint8_t n)
@ -653,7 +655,7 @@ void mui_next_field(mui_t *ui)
/* OBSOLETE */
#ifdef OBSOLETE
void mui_GetSelectableFieldTextOptionByCursorPosition(mui_t *ui, uint8_t form_id, uint8_t cursor_position, uint8_t nth_token)
{
fds_t *fds = ui->fds; // backup the current fds, so that this function can be called inside a task loop
int len = ui->len; // backup length of the current command
@ -675,6 +677,16 @@ void mui_GetSelectableFieldTextOptionByCursorPosition(mui_t *ui, uint8_t form_id
}
#endif
/*
this function will overwrite the ui field related member variables
nth_token can be 0 if the fiel text is not a option list
the result is stored in ui->text
token delimiter is '|' (pipe symbol)
fds: The start of a field (MUI_DATA)
nth_token: The position of the token, which should be returned
*/
uint8_t mui_GetSelectableFieldTextOption(mui_t *ui, fds_t *fds, uint8_t nth_token)
{
fds_t *fds_backup = ui->fds; // backup the current fds, so that this function can be called inside a task loop

View File

@ -32,6 +32,42 @@
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MUIF (Monochrome User Interface Functions)
n: A number 0 to 9 without any quotes, e.g.: 5
id: Exactly two characters or numbers in doubl quotes, e.g. "G5".
cb: A callback function with the following prototype: "uint8_t muif_cb(mui_t *ui, uint8_t msg)"
There are MANY predefined callback functions, see separate list
var: Address of a variable.
text: Normal text, but special characters might be required for some callback functions, for
example the text might contain a list of selectable elements separated with the '|' symbol.
MUIF_STYLE(n,cb)
Corresponding FDS command: MUI_STYLE(n)
Change the style of any other elements after MUI_STYLE(n), does not draw anything
MUIF_RO(id,cb)
Corresponding FDS command: MUI_DATA(id, text) MUI_XY(id, x, y), MUI_XYT(id, x,y,text), MUI_XYA(id, x,y,a), MUI_XYAT(id, x,y,a,text)
Places a read only element on the form.
The correct FDS command depends on the callback function.
MUIF_LABEL(cb)
Corresponding FDS command: MUI_LABEL(x,y,text)
Places a text at the specified position, similar to MUIF_RO
MUIF_GOTO(cb)
Corresponding FDS command: MUI_GOTO(x,y,n,text)
Places a button at the specified position, similar to MUIF_BUTTON, but does not require an ID.
MUIF_BUTTON(id,cb)
Corresponding FDS command: MUI_XY(id, x, y), MUI_XYT(id, x,y,text), MUI_XYA(id, x,y,a), MUI_XYAT(id, x,y,a,text)
Places a selectable element on the form.
MUIF_VARIABLE(id,var,cb)
Corresponding FDS command: MUI_XY(id, x, y), MUI_XYA(id, x,y,a)
Places a user input element at the specified location.
The correct FDS command depends on the callback function.
*/

View File

@ -64,12 +64,12 @@
mud up/down: select will enter the up/down edit mode. Next/prev event will increment/decrement the value
styles (not for draw text/str)
unselected selected up/down edit
plain invers invers + gap + frame pi
frame invers+frame frame fi
unselected selected up/down edit postfix Use for
plain invers invers + gap + frame pi input elements
frame invers+frame frame fi buttons
plain frame invers + frame pf
invers frame invers + frame if
plain frame invers + frame pf input elements
invers frame invers + frame if buttons
mui_u8g2_[action]_[field_width]_[edit_mode]_[style]
@ -242,6 +242,34 @@ void mui_u8g2_draw_button_pf(mui_t *ui, u8g2_uint_t width, u8g2_uint_t padding_h
}
u8g2_uint_t mui_u8g2_get_if_flags(mui_t *ui)
{
u8g2_uint_t flags = 0;
if ( mui_IsCursorFocus(ui) )
{
if ( ui->is_mud )
{
flags |= 1;
flags |= U8G2_BTN_INV;
}
else
{
flags |= 1;
}
}
else
{
flags |= U8G2_BTN_INV;
}
return flags;
}
void mui_u8g2_draw_button_if(mui_t *ui, u8g2_uint_t width, u8g2_uint_t padding_h, const char *text)
{
mui_u8g2_draw_button_utf(ui, mui_u8g2_get_if_flags(ui), width, padding_h , MUI_U8G2_V_PADDING, text);
}
static uint8_t mui_u8g2_handle_scroll_next_prev_events(mui_t *ui, uint8_t msg) MUI_NOINLINE;
static uint8_t mui_u8g2_handle_scroll_next_prev_events(mui_t *ui, uint8_t msg)
{
@ -374,6 +402,32 @@ uint8_t mui_u8g2_btn_goto_wm_fi(mui_t *ui, uint8_t msg)
return 0;
}
uint8_t mui_u8g2_btn_goto_wm_if(mui_t *ui, uint8_t msg)
{
switch(msg)
{
case MUIF_MSG_DRAW:
mui_u8g2_draw_button_utf(ui, U8G2_BTN_HCENTER |mui_u8g2_get_if_flags(ui), 0, 1, MUI_U8G2_V_PADDING, ui->text);
break;
case MUIF_MSG_FORM_START:
break;
case MUIF_MSG_FORM_END:
break;
case MUIF_MSG_CURSOR_ENTER:
break;
case MUIF_MSG_CURSOR_SELECT:
return mui_GotoForm(ui, ui->arg, 0);
case MUIF_MSG_CURSOR_LEAVE:
break;
case MUIF_MSG_TOUCH_DOWN:
break;
case MUIF_MSG_TOUCH_UP:
break;
}
return 0;
}
uint8_t mui_u8g2_btn_goto_w2_fi(mui_t *ui, uint8_t msg)
{
u8g2_t *u8g2 = mui_get_U8g2(ui);
@ -400,6 +454,32 @@ uint8_t mui_u8g2_btn_goto_w2_fi(mui_t *ui, uint8_t msg)
return 0;
}
uint8_t mui_u8g2_btn_goto_w2_if(mui_t *ui, uint8_t msg)
{
u8g2_t *u8g2 = mui_get_U8g2(ui);
switch(msg)
{
case MUIF_MSG_DRAW:
mui_u8g2_draw_button_utf(ui, U8G2_BTN_HCENTER | mui_u8g2_get_if_flags(ui), u8g2_GetDisplayWidth(u8g2)/2 - 10, 0, MUI_U8G2_V_PADDING, ui->text);
break;
case MUIF_MSG_FORM_START:
break;
case MUIF_MSG_FORM_END:
break;
case MUIF_MSG_CURSOR_ENTER:
break;
case MUIF_MSG_CURSOR_SELECT:
return mui_GotoForm(ui, ui->arg, 0);
case MUIF_MSG_CURSOR_LEAVE:
break;
case MUIF_MSG_TOUCH_DOWN:
break;
case MUIF_MSG_TOUCH_UP:
break;
}
return 0;
}
/*
uint8_t mui_u8g2_btn_exit_wm_fi(mui_t *ui, uint8_t msg)
@ -407,7 +487,7 @@ uint8_t mui_u8g2_btn_goto_w2_fi(mui_t *ui, uint8_t msg)
Description:
A button with size equal to button text plus one pixel padding
The button has a one pixel frame around the text.
If the selected, then the menu system will be closed.
If selected, then the menu system will be closed.
The arg value will be stored at the specified data location (if not NULL).
The arg value can be used as an exit value of the button.
@ -882,7 +962,43 @@ uint8_t mui_u8g2_u8_opt_line_wa_mse_pi(mui_t *ui, uint8_t msg)
}
return 0;
}
uint8_t mui_u8g2_u8_opt_line_wa_mse_pf(mui_t *ui, uint8_t msg)
{
//u8g2_t *u8g2 = mui_get_U8g2(ui);
uint8_t *value = (uint8_t *)muif_get_data(ui->uif);
switch(msg)
{
case MUIF_MSG_DRAW:
if ( mui_fds_get_nth_token(ui, *value) == 0 )
{
*value = 0;
mui_fds_get_nth_token(ui, *value);
}
mui_u8g2_draw_button_pf(ui, ui->arg, 1, ui->text);
break;
case MUIF_MSG_FORM_START:
break;
case MUIF_MSG_FORM_END:
break;
case MUIF_MSG_CURSOR_ENTER:
break;
case MUIF_MSG_CURSOR_SELECT:
(*value)++;
if ( mui_fds_get_nth_token(ui, *value) == 0 )
*value = 0;
break;
case MUIF_MSG_CURSOR_LEAVE:
break;
case MUIF_MSG_TOUCH_DOWN:
break;
case MUIF_MSG_TOUCH_UP:
break;
}
return 0;
}
uint8_t mui_u8g2_u8_opt_line_wa_mud_pi(mui_t *ui, uint8_t msg)
{
//u8g2_t *u8g2 = mui_get_U8g2(ui);
@ -896,8 +1012,6 @@ uint8_t mui_u8g2_u8_opt_line_wa_mud_pi(mui_t *ui, uint8_t msg)
mui_fds_get_nth_token(ui, *value);
}
mui_u8g2_draw_button_pi(ui, ui->arg, 1, ui->text);
//mui_u8g2_draw_button_utf(ui, mui_u8g2_get_pi_flags(ui), ui->arg, 1, MUI_U8G2_V_PADDING, ui->text);
//u8g2_DrawButtonUTF8(u8g2, mui_get_x(ui), mui_get_y(ui), mui_u8g2_get_pi_flags(ui), ui->arg, 1, MUI_U8G2_V_PADDING, ui->text);
break;
case MUIF_MSG_FORM_START:
@ -938,6 +1052,58 @@ uint8_t mui_u8g2_u8_opt_line_wa_mud_pi(mui_t *ui, uint8_t msg)
return 0;
}
uint8_t mui_u8g2_u8_opt_line_wa_mud_pf(mui_t *ui, uint8_t msg)
{
//u8g2_t *u8g2 = mui_get_U8g2(ui);
uint8_t *value = (uint8_t *)muif_get_data(ui->uif);
switch(msg)
{
case MUIF_MSG_DRAW:
if ( mui_fds_get_nth_token(ui, *value) == 0 )
{
*value = 0;
mui_fds_get_nth_token(ui, *value);
}
mui_u8g2_draw_button_pf(ui, ui->arg, 1, ui->text);
break;
case MUIF_MSG_FORM_START:
break;
case MUIF_MSG_FORM_END:
break;
case MUIF_MSG_CURSOR_ENTER:
break;
case MUIF_MSG_CURSOR_SELECT:
/* toggle between normal mode and capture next/prev mode */
ui->is_mud = !ui->is_mud;
break;
case MUIF_MSG_CURSOR_LEAVE:
break;
case MUIF_MSG_TOUCH_DOWN:
break;
case MUIF_MSG_TOUCH_UP:
break;
case MUIF_MSG_EVENT_NEXT:
if ( ui->is_mud )
{
(*value)++;
if ( mui_fds_get_nth_token(ui, *value) == 0 )
*value = 0;
return 1;
}
break;
case MUIF_MSG_EVENT_PREV:
if ( ui->is_mud )
{
if ( *value == 0 )
*value = mui_fds_get_token_cnt(ui);
(*value)--;
return 1;
}
break;
}
return 0;
}
@ -1283,6 +1449,10 @@ uint8_t mui_u8g2_u8_opt_child_wm_mse_pi(mui_t *ui, uint8_t msg)
an invisible field (which will not show anything). It should also not be selectable
it just provides the menu entries, see "mui_u8g2_u8_opt_child_mse_common" and friends
as a consequence it does not have width, input mode and style
MUIF: MUIF_RO()
FDS: MUI_DATA()
*/
uint8_t mui_u8g2_goto_parent(mui_t *ui, uint8_t msg)
{

View File

@ -111,28 +111,32 @@ void mui_u8g2_draw_button_utf_pi(mui_t *ui, u8g2_uint_t width, u8g2_uint_t paddi
/* ready to use field functions */
uint8_t mui_u8g2_draw_text(mui_t *ui, uint8_t msg);
uint8_t mui_u8g2_btn_goto_wm_fi(mui_t *ui, uint8_t msg);
uint8_t mui_u8g2_btn_goto_w2_fi(mui_t *ui, uint8_t msg);
uint8_t mui_u8g2_btn_goto_wm_fi(mui_t *ui, uint8_t msg); /* GIF */
uint8_t mui_u8g2_btn_goto_wm_if(mui_t *ui, uint8_t msg);
uint8_t mui_u8g2_btn_goto_w2_fi(mui_t *ui, uint8_t msg); /* GIF */
uint8_t mui_u8g2_btn_goto_w2_if(mui_t *ui, uint8_t msg);
uint8_t mui_u8g2_btn_goto_w1_pi(mui_t *ui, uint8_t msg);
uint8_t mui_u8g2_btn_goto_w1_fi(mui_t *ui, uint8_t msg);
uint8_t mui_u8g2_btn_goto_w1_pi(mui_t *ui, uint8_t msg); /* GIF */
uint8_t mui_u8g2_btn_goto_w1_fi(mui_t *ui, uint8_t msg); /* GIF */
uint8_t mui_u8g2_btn_exit_wm_fi(mui_t *ui, uint8_t msg);
uint8_t mui_u8g2_btn_exit_wm_fi(mui_t *ui, uint8_t msg); /* similar to 'mui_u8g2_btn_goto_wm_fi' but will exit the menu system */
uint8_t mui_u8g2_u8_chkbox_wm_pi(mui_t *ui, uint8_t msg); /* MUIF_VARIABLE, MUI_XY */
uint8_t mui_u8g2_u8_radio_wm_pi(mui_t *ui, uint8_t msg); /* MUIF_VARIABLE,MUI_XYAT */
uint8_t mui_u8g2_u8_chkbox_wm_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_VARIABLE, MUI_XY */
uint8_t mui_u8g2_u8_radio_wm_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_VARIABLE,MUI_XYAT */
uint8_t mui_u8g2_u8_opt_line_wa_mse_pi(mui_t *ui, uint8_t msg); /* MUIF_VARIABLE,MUI_XYAT */
uint8_t mui_u8g2_u8_opt_line_wa_mud_pi(mui_t *ui, uint8_t msg); /* MUIF_VARIABLE,MUI_XYAT */
uint8_t mui_u8g2_u8_opt_line_wa_mse_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_VARIABLE,MUI_XYAT */
uint8_t mui_u8g2_u8_opt_line_wa_mse_pf(mui_t *ui, uint8_t msg); /* GIF, MUIF_VARIABLE,MUI_XYAT */
uint8_t mui_u8g2_u8_opt_line_wa_mud_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_VARIABLE,MUI_XYAT */
uint8_t mui_u8g2_u8_opt_line_wa_mud_pf(mui_t *ui, uint8_t msg); /* GIF, MUIF_VARIABLE,MUI_XYAT */
uint8_t mui_u8g2_u8_opt_parent_wm_mse_pi(mui_t *ui, uint8_t msg); /* MUIF_VARIABLE, MUI_XYAT */
uint8_t mui_u8g2_u8_opt_radio_child_wm_mse_pi(mui_t *ui, uint8_t msg); /* MUIF_VARIABLE, MUI_XYA */
uint8_t mui_u8g2_u8_opt_radio_child_w1_mse_pi(mui_t *ui, uint8_t msg); /* MUIF_VARIABLE, MUI_XYA */
uint8_t mui_u8g2_u8_opt_child_wm_mse_pi(mui_t *ui, uint8_t msg); /* MUIF_VARIABLE, MUI_XYA */
uint8_t mui_u8g2_goto_parent(mui_t *ui, uint8_t msg); /* MUIF_RO */
uint8_t mui_u8g2_goto_parent(mui_t *ui, uint8_t msg); /* MUIF_RO, MUI_DATA (WARNING: Must appear only once per form!!! */
uint8_t mui_u8g2_goto_child_w1_mse_pi(mui_t *ui, uint8_t msg); /* MUIF_BUTTON, MUI_XYA */
@ -148,11 +152,11 @@ uint8_t mui_u8g2_u8_char_wm_mud_pi(mui_t *ui, uint8_t msg); /* MUIF_VARIABLE
(void *)((mui_u8g2_u8_min_max_t [] ) {{ (valptr) MUI_U8G2_COMMA (min) MUI_U8G2_COMMA (max)}}), \
(muif))
uint8_t mui_u8g2_u8_min_max_wm_mse_pi(mui_t *ui, uint8_t msg); /* MUIF_U8G2_U8_MIN_MAX, MUI_XY */
uint8_t mui_u8g2_u8_min_max_wm_mud_pi(mui_t *ui, uint8_t msg); /* MUIF_U8G2_U8_MIN_MAX, MUI_XY */
uint8_t mui_u8g2_u8_min_max_wm_mse_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_U8G2_U8_MIN_MAX, MUI_XY */
uint8_t mui_u8g2_u8_min_max_wm_mud_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_U8G2_U8_MIN_MAX, MUI_XY */
uint8_t mui_u8g2_u8_min_max_wm_mse_pf(mui_t *ui, uint8_t msg); /* MUIF_U8G2_U8_MIN_MAX, MUI_XY */
uint8_t mui_u8g2_u8_min_max_wm_mud_pf(mui_t *ui, uint8_t msg); /* MUIF_U8G2_U8_MIN_MAX, MUI_XY */
uint8_t mui_u8g2_u8_min_max_wm_mse_pf(mui_t *ui, uint8_t msg); /* GIF, MUIF_U8G2_U8_MIN_MAX, MUI_XY */
uint8_t mui_u8g2_u8_min_max_wm_mud_pf(mui_t *ui, uint8_t msg); /* GIF, MUIF_U8G2_U8_MIN_MAX, MUI_XY */
/*===== data = mui_u8g2_list_t* =====*/
/* similar to mui_u8g2_u8_opt_line, but u16 and dynamic list */

View File

@ -1,4 +1,6 @@
/*
mui_ref
*/
#include "u8g2.h"
#include <stdlib.h>
#include <stdio.h>
@ -254,9 +256,13 @@ muif_t muif_list[] MUI_PROGMEM = {
/* Form 10 */
MUIF_GOTO(mui_u8g2_btn_goto_wm_fi),
MUIF_BUTTON("G0", mui_u8g2_btn_goto_wm_fi),
MUIF_BUTTON("G1", mui_u8g2_btn_goto_w1_pi),
MUIF_BUTTON("G2", mui_u8g2_btn_goto_w2_fi),
MUIF_BUTTON("G1", mui_u8g2_btn_goto_w1_fi),
MUIF_BUTTON("G2", mui_u8g2_btn_goto_w1_pi),
MUIF_BUTTON("G3", mui_u8g2_btn_goto_w2_fi),
MUIF_BUTTON("G6", mui_u8g2_btn_goto_wm_if),
/* Form 20 */
MUIF_U8G2_U8_MIN_MAX("N0", &number_input9, 0, 9, mui_u8g2_u8_min_max_wm_mse_pi),
@ -272,6 +278,8 @@ muif_t muif_list[] MUI_PROGMEM = {
/* Form 40: Cycle Option */
MUIF_VARIABLE("O1",&fruit_input,mui_u8g2_u8_opt_line_wa_mse_pi),
MUIF_VARIABLE("O2",&fruit_input,mui_u8g2_u8_opt_line_wa_mud_pi),
MUIF_VARIABLE("O3",&fruit_input,mui_u8g2_u8_opt_line_wa_mse_pf),
MUIF_VARIABLE("O4",&fruit_input,mui_u8g2_u8_opt_line_wa_mud_pf),
/* Form 50: Parent/Child Option */
@ -327,8 +335,9 @@ MUI_XY("HR", 0,13)
MUI_STYLE(7)
MUI_DATA("GP",
MUI_11 "btn_goto_wm_fi|"
MUI_12 "btn_goto_w1_pi|"
MUI_13 "btn_goto_w2_fi|"
MUI_12 "btn_goto_w1_fi|"
MUI_13 "btn_goto_w1_pi|"
MUI_14 "btn_goto_w2_fi|"
MUI_1 "Back to Main Menu" )
MUI_XYA("GC", 5, 25, 0)
MUI_XYA("GC", 5, 37, 1)
@ -348,10 +357,10 @@ MUI_GOTO(64, 59, 10, " Ok ")
MUI_FORM(12)
MUI_STYLE(2)
MUI_LABEL(1,5, "mui_u8g2_btn_goto_w1_pi")
MUI_LABEL(1,5, "mui_u8g2_btn_goto_w1_fi")
MUI_LABEL(1,12, "MUIF_GOTO, MUIF_BUTTON")
MUI_LABEL(1,19, "MUI_GOTO, MUI_XYAT")
MUI_LABEL(1,25, "Full width button without frame")
MUI_LABEL(1,25, "Full width button with frame")
MUI_XY("HR", 0,26)
MUI_STYLE(0)
MUI_XYAT("G1", 1, 42, 10, "Button")
@ -359,14 +368,25 @@ MUI_GOTO(64, 59, 10, " Ok ")
MUI_FORM(13)
MUI_STYLE(2)
MUI_LABEL(1,5, "mui_u8g2_btn_goto_w1_pi")
MUI_LABEL(1,12, "MUIF_GOTO, MUIF_BUTTON")
MUI_LABEL(1,19, "MUI_GOTO, MUI_XYAT")
MUI_LABEL(1,25, "Full width button without frame")
MUI_XY("HR", 0,26)
MUI_STYLE(0)
MUI_XYAT("G2", 1, 42, 10, "Button")
MUI_GOTO(64, 59, 10, " Ok ")
MUI_FORM(14)
MUI_STYLE(2)
MUI_LABEL(1,5, "mui_u8g2_btn_goto_w2_fi")
MUI_LABEL(1,12, "MUIF_GOTO, MUIF_BUTTON")
MUI_LABEL(1,19, "MUI_GOTO, MUI_XYAT")
MUI_LABEL(1,25, "Centered half display width button")
MUI_XY("HR", 0,26)
MUI_STYLE(0)
MUI_XYAT("G2", 32, 42, 10, "Btn 1")
MUI_XYAT("G2", 96, 42, 10, "Btn 2")
MUI_XYAT("G3", 32, 42, 10, "Btn 1")
MUI_XYAT("G3", 96, 42, 10, "Btn 2")
MUI_GOTO(64, 59, 10, " Ok ")
@ -491,6 +511,8 @@ MUI_STYLE(7)
MUI_DATA("GP",
MUI_41 "u8_opt_line_wa_mse_pi|"
MUI_42 "u8_opt_line_wa_mud_pi|"
MUI_43 "u8_opt_line_wa_mse_pf|"
MUI_44 "u8_opt_line_wa_mud_pf|"
MUI_1 "Back to Main Menu" )
MUI_XYA("GC", 5, 25, 0)
MUI_XYA("GC", 5, 37, 1)
@ -508,6 +530,7 @@ MUI_STYLE(0)
MUI_LABEL(5,40, "Fruit:")
MUI_XYAT("O1",60, 40, 60, "Banana|Apple|Melon|Cranberry")
MUI_STYLE(0)
//MUI_XYAT("G6", 64, 59, 40, " Ok ")
MUI_GOTO(64, 59, 40, " Ok ")
@ -522,8 +545,36 @@ MUI_STYLE(0)
MUI_LABEL(5,40, "Fruit:")
MUI_XYAT("O2",60, 40, 60, "Banana|Apple|Melon|Cranberry")
MUI_STYLE(0)
//MUI_XYAT("G6", 64, 59, 40, " Ok ")
MUI_GOTO(64, 59, 40, " Ok ")
MUI_FORM(43)
MUI_STYLE(2)
MUI_LABEL(1,5, "mui_u8g2_u8_opt_line_wa_mse_pf")
MUI_LABEL(1,12, "MUIF_VARIABLE")
MUI_LABEL(1,19, "MUI_XYAT")
MUI_LABEL(1,25, "Options forward cycle")
MUI_XY("HR", 0,26)
MUI_STYLE(0)
MUI_LABEL(5,40, "Fruit:")
MUI_XYAT("O3",60, 40, 60, "Banana|Apple|Melon|Cranberry")
MUI_STYLE(0)
MUI_XYAT("G6", 64, 59, 40, " Ok ")
//MUI_GOTO(64, 59, 40, " Ok ")
MUI_FORM(44)
MUI_STYLE(2)
MUI_LABEL(1,5, "mui_u8g2_u8_opt_line_wa_mud_pf")
MUI_LABEL(1,12, "MUIF_VARIABLE")
MUI_LABEL(1,19, "MUI_XYAT")
MUI_LABEL(1,25, "Options forward+backward cycle")
MUI_XY("HR", 0,26)
MUI_STYLE(0)
MUI_LABEL(5,40, "Fruit:")
MUI_XYAT("O4",60, 40, 60, "Banana|Apple|Melon|Cranberry")
MUI_STYLE(0)
MUI_XYAT("G6", 64, 59, 40, " Ok ")
//MUI_GOTO(64, 59, 40, " Ok ")
@ -859,12 +910,17 @@ int main(void)
draw(1, "", ""); return 0;
/*
a: start animation
.: end and write animation
goto form (first argument) then press a to see where the animation has to start
*/
draw(10, "asnnsnsnnsnnsnnns.q", "mui_btn_goto.gif");
/*
draw(10, "asnnnsnsnnnsnnsnnnsnnnsnnnnns.q", "mui_btn_goto.gif");
draw(20, "assssnsnssnnnnnnsnsnnssppssssssnsnnnssnpppppppsns.q", "mui_uint8_number.gif");
draw(30, "assnsnsnssnsnsssnsns.q", "mui_uint8_checkbox_radio.gif");
*/
draw(40, "asnnssnsnssppsnsnnsnnsssnsnnnssnnsns.q", "mui_u8g2_u8_opt_line_wa.gif");

View File

@ -1,2 +1,2 @@
# without 'v' prefix
echo -n "2.32.6"
echo -n "2.32.7"