Display variable of M2_U8NUM in other menu

Hi everybody,

I have a little problem with my code.

My idea is to select variable with M2_U8NUM and after I would like to display variable in other menu.
For that, I've creat a M2_BUTTON, but I don't know how stock this value and display after.

#include "U8glib.h"
#include "M2tk.h"
#include "utility/m2ghu8g.h"

U8GLIB_ST7920_128X64 u8g(23, 17, 16, U8G_PIN_NONE);                                      // Setup U8glib with DOGM128 display: SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
#define TEXT_LEN 2
uint8_t uiKeyUpPin = 31;         
uint8_t uiKeyDownPin = 33;
uint8_t uiKeySelectPin = 35;
int test;

// Edit the following long int number
const uint8_t traction ;
uint8_t compression = 2;
uint8_t enfoncement_tr = 0;
uint8_t enfoncement_com = 0;

uint8_t ok_traction = 0;

void fn_ok(m2_el_fnarg_p fnarg) {
}
//creation des menus
M2_EXTERN_ALIGN(top_el_expandable_menu);

// =Menu de traction=
M2_LABEL(el_tr_nom, "b1", "Traction : ");
M2_U8NUM(el_tr_num, "c2",32,31, &traction);
M2_LABEL(el_tr_vit, "b1", "mm/h");
M2_LIST(list_tr) = {&el_tr_nom, &el_tr_num, &el_tr_vit};
M2_HLIST(el_tr, NULL, list_tr);

M2_LABEL(el_enf_tr_nom, "b1", "Enfoncement: ");
M2_U8NUM(el_enf_tr_num, "c3",32,41, &enfoncement_tr);
M2_LABEL(el_enf_tr_mm, "b1", "mm");
M2_LIST(list_enf_tr) = {&el_enf_tr_nom, &el_enf_tr_num, &el_enf_tr_mm};
M2_HLIST(el_enf_tr, NULL, list_enf_tr);

M2_ROOT(el_tr_cancel, NULL, "CANCEL", &top_el_expandable_menu);
M2_BUTTON(el_tr_ok, NULL, "OK", tr_ok_fn);
M2_LIST(list_tr_button) = {&el_tr_cancel, &el_tr_ok};
M2_HLIST(el_tr_button, NULL, list_tr_button);

M2_LIST(list_tr_enf) = {&el_tr, &el_enf_tr, &el_tr_button};
M2_VLIST(el_tr_enf, NULL, list_tr_enf);

//=Menu de compression=
M2_LABEL(el_com_nom, "b1", "Compression : ");
M2_U8NUM(el_com_num, "c2",32,31, &compression);
M2_LABEL(el_com_vit, "b1", "mm/h");
M2_LIST(list_com) = {&el_com_nom, &el_com_num, &el_com_vit};
M2_HLIST(el_com, NULL, list_com);

M2_LABEL(el_enf_com_nom, "b1", "Enfoncement: ");
M2_U8NUM(el_enf_com_num, "c3",32,41, &enfoncement_com);
M2_LABEL(el_enf_com_mm, "b1", "mm");
M2_LIST(list_enf_com) = {&el_enf_com_nom, &el_enf_com_num, &el_enf_com_mm};
M2_HLIST(el_enf_com, NULL, list_enf_com);

M2_ROOT(el_com_cancel, NULL, "CANCEL", &top_el_expandable_menu);
M2_BUTTON(el_com_ok, NULL, "OK", com_ok_fn);
M2_LIST(list_com_button) = {&el_com_cancel, &el_com_ok};
M2_HLIST(el_com_button, NULL, list_com_button);

M2_LIST(list_com_enf) = {&el_com, &el_enf_com, &el_com_button};
M2_VLIST(el_com_enf, NULL, list_com_enf);

M2_LABEL(el_var_nom, "b1", "Traction : ");
M2_LABEL(el_var_text, "b1", &traction);
M2_LABEL(el_var_vit, "b1", "mm/h");
M2_LIST(list_var) = {&el_var_nom, &el_var_text, &el_var_vit};
M2_HLIST(el_variable, NULL, list_var);

// Page des variables

//Menu
m2_menu_entry m2_2lmenu_data[] =
{
  { "Menu", &top_el_expandable_menu },
  { ". Traction", &el_tr_enf },
  { ". Compression", &el_com_enf },
  { "Variable", &el_variable },
  { NULL, NULL },
};

//
uint8_t m2_2lmenu_first;
uint8_t m2_2lmenu_cnt;

M2_2LMENU(el_2lmenu,"l5e10W54",&m2_2lmenu_first,&m2_2lmenu_cnt, m2_2lmenu_data,'+','-','\0');
M2_SPACE(el_space, "W1h1");
M2_VSB(el_vsb, "l5W2r1", &m2_2lmenu_first, &m2_2lmenu_cnt);
M2_LIST(list_2lmenu) = { &el_2lmenu, &el_space, &el_vsb };
M2_HLIST(el_hlist, NULL, list_2lmenu);
M2_ALIGN(top_el_expandable_menu, "-1|1W192H64", &el_hlist);
// M2tk init
M2tk m2(&top_el_expandable_menu, m2_es_arduino, m2_eh_2bs, m2_gh_u8g_bfs);
// U8glib draw procedure: Just call the M2tklib draw procedure
void draw(void) {
    m2.draw();
}

// Arduino setup procedure (called only once)
void setup() {
  // Connect u8glib with m2tklib
  m2_SetU8g(u8g.getU8g(), m2_u8g_box_icon);
  Serial.begin(9600);


  // Assign u8g font to index 0
  m2.setFont(0, u8g_font_5x8);

  // Setup keys
  m2.setPin(M2_KEY_SELECT, uiKeySelectPin);
  m2.setPin(M2_KEY_NEXT, uiKeyDownPin);
  m2.setPin(M2_KEY_PREV, uiKeyUpPin);
}

// Arduino loop procedure
void loop() {
  Serial.print(ok_traction);
  m2.checkKey();
  if ( m2.handleKey() ) {
    u8g.firstPage();  
    do {
      draw();
    } while( u8g.nextPage() );
  }
}
void tr_ok_fn(m2_el_fnarg_p fnarg)  {
  m2_SetRoot(&top_el_expandable_menu);
  ok_traction = &traction;
  //return ok_traction;
};
void com_ok_fn(m2_el_fnarg_p fnarg)  {
  m2_SetRoot(&top_el_expandable_menu);
};

DO you have an idea?