cleanup: more trivial cleanup (logbook.c/h)
Kick out unused code, commented code. Corrected some comments, and
most relevant: make things static where we can.
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
line source
///////////////////////////////////////////////////////////////////////////////+ −
/// -*- coding: UTF-8 -*-+ −
///+ −
/// \file Discovery/Src/tMenuEdit.c+ −
/// \brief Main Template file for Menu Setting Modifications+ −
/// \author heinrichs weikamp gmbh+ −
/// \date 04-July-2014+ −
///+ −
/// \details+ −
///+ −
/// $Id$+ −
///////////////////////////////////////////////////////////////////////////////+ −
/// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh+ −
///+ −
/// This program is free software: you can redistribute it and/or modify+ −
/// it under the terms of the GNU General Public License as published by+ −
/// the Free Software Foundation, either version 3 of the License, or+ −
/// (at your option) any later version.+ −
///+ −
/// This program is distributed in the hope that it will be useful,+ −
/// but WITHOUT ANY WARRANTY; without even the implied warranty of+ −
/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the+ −
/// GNU General Public License for more details.+ −
///+ −
/// You should have received a copy of the GNU General Public License+ −
/// along with this program. If not, see <http://www.gnu.org/licenses/>.+ −
//////////////////////////////////////////////////////////////////////////////+ −
+ −
/* Includes ------------------------------------------------------------------*/+ −
#include "tMenuEdit.h"+ −
+ −
#include "externLogbookFlash.h"+ −
#include "gfx_fonts.h"+ −
#include "tHome.h"+ −
#include "tInfoCompass.h"+ −
#include "tMenuEditHardware.h"+ −
#include "tMenuEditPlanner.h"+ −
#include "tMenuEditSystem.h"+ −
#include "tMenuEditXtra.h"+ −
+ −
/* Private types -------------------------------------------------------------*/+ −
#define TEXTSIZE 16+ −
+ −
typedef struct+ −
{+ −
uint32_t pEventFunction;+ −
uint32_t callerID;+ −
} SEventHandler;+ −
+ −
typedef struct+ −
{+ −
uint32_t pEventFunction;+ −
uint8_t functionParameter;+ −
uint8_t line;+ −
} SBackMenuHandler;+ −
+ −
typedef struct+ −
{+ −
char orgText[32];+ −
char newText[32];+ −
uint16_t input[4];+ −
uint16_t coord[3];+ −
int8_t begin[4], size[4];+ −
tFont *fontUsed;+ −
uint32_t callerID;+ −
uint8_t maintype;+ −
uint8_t subtype;+ −
} SEditIdent;+ −
+ −
typedef enum+ −
{+ −
FIELD_NUMBERS = 0,+ −
FIELD_BUTTON,+ −
FIELD_SELECT,+ −
FIELD_SYMBOL,+ −
FIELD_TOGGLE,+ −
FIELD_ON_OFF,+ −
FIELD_UDIGIT,+ −
FIELD_2DIGIT,+ −
FIELD_3DIGIT,+ −
FIELD_FLOAT,+ −
FIELD_END+ −
} SField;+ −
+ −
/* Private variables ---------------------------------------------------------*/+ −
GFX_DrawCfgScreen tMEscreen;+ −
GFX_DrawCfgScreen tMEcursor;+ −
GFX_DrawCfgScreen tMEcursorNew;+ −
+ −
uint32_t menuID;+ −
uint8_t menuColor;+ −
+ −
int8_t id = 0;+ −
int8_t idLast = -1;+ −
SEditIdent ident[10];+ −
int8_t tME_stop = 0;+ −
+ −
int8_t evid = 0;+ −
int8_t evidLast = -1;+ −
SEventHandler event[10];+ −
+ −
SBackMenuHandler backmenu;+ −
+ −
int8_t block = 0;+ −
int8_t subBlockPosition = 0;+ −
+ −
_Bool EnterPressedBeforeButtonAction = 0;+ −
_Bool EnterPressed = 0;+ −
+ −
_Bool WriteSettings = 0;+ −
+ −
/* Private function prototypes -----------------------------------------------*/+ −
void draw_tMEdesign(void);+ −
void set_cursor(uint8_t forThisIdentID);+ −
void set_cursorNew(uint8_t forThisIdentID);+ −
void startMenuEditFieldSelect(void);+ −
void create_newText_for_actual_Id(void);+ −
void write_content_of_actual_Id(void);+ −
void clean_content_of_actual_Id(void);+ −
void write_content_without_Id(void);+ −
+ −
void nextMenuEditFieldDigit(void);+ −
void upMenuEditFieldDigit(void);+ −
void downMenuEditFieldDigit(void);+ −
+ −
void draw_tMEcursorNewDesign(void);+ −
+ −
void exitMenuEdit(uint8_t writeSettingsIfEnterPressed);+ −
uint8_t split_Content_to_Digit_helper(uint8_t inContentAscii, uint8_t *outDigit100, uint8_t *outDigit10, uint8_t *outDigit1);+ −
+ −
/* Exported functions --------------------------------------------------------*/+ −
+ −
void tMenuEdit_init(void)+ −
{+ −
tMEcursor.FBStartAdress = getFrame(7);+ −
tMEcursor.ImageHeight = 480;+ −
tMEcursor.ImageWidth = 800;+ −
tMEcursor.LayerIndex = 0;+ −
+ −
GFX_fill_buffer(tMEcursor.FBStartAdress, 0xFF, CLUT_MenuEditCursor);+ −
+ −
tMEcursorNew.FBStartAdress = getFrame(8);+ −
tMEcursorNew.ImageHeight = 390;+ −
tMEcursorNew.ImageWidth = 800;+ −
tMEcursorNew.LayerIndex = 0;+ −
+ −
draw_tMEcursorNewDesign();+ −
}+ −
+ −
void stop_cursor_fields(void)+ −
{+ −
tME_stop = 1;+ −
}+ −
+ −
void resetMenuEdit(uint8_t color)+ −
{+ −
id = 0;+ −
idLast = -1;+ −
evid = 0;+ −
evidLast = -1;+ −
tME_stop = 0;+ −
EnterPressed = 0;+ −
EnterPressedBeforeButtonAction = 0;+ −
+ −
setBackMenu(0,0,0);+ −
+ −
releaseFrame(9,tMEscreen.FBStartAdress);+ −
+ −
tMEscreen.FBStartAdress = getFrame(9);+ −
tMEscreen.ImageHeight = 480;+ −
tMEscreen.ImageWidth = 800;+ −
tMEscreen.LayerIndex = 1;+ −
+ −
/*+ −
write_content_simple(&tMEscreen, 0, 38, 0, &Awe48,"x",CLUT_ButtonSymbols);+ −
write_content_simple(&tMEscreen, 800-46, 800, 0, &Awe48,"u",CLUT_ButtonSymbols);+ −
write_content_simple(&tMEscreen, 0, 45, 480-45, &Awe48,"d",CLUT_ButtonSymbols);+ −
write_content_simple(&tMEscreen, 800-48, 800, 480-45, &Awe48,"e",CLUT_ButtonSymbols);+ −
*/+ −
menuID = get_globalState();+ −
+ −
menuColor = color;+ −
+ −
// draw_tMEdesign();+ −
// GFX_SetFramesTopBottom(tMEscreen.FBStartAdress, tMEcursor.FBStartAdress,480);+ −
uint8_t line = 1;+ −
// GFX_SetFramesTopBottom(tMEscreen.FBStartAdress, (tMEcursorNew.FBStartAdress) + 65*2*(line - 1),390);+ −
GFX_SetFrameTop(tMEscreen.FBStartAdress);+ −
if(!settingsGetPointer()->FlipDisplay)+ −
{+ −
GFX_SetFrameBottom((tMEcursorNew.FBStartAdress) + 65*2*(line - 1), 0, 25, 800, 390);+ −
}+ −
else+ −
{+ −
GFX_SetFrameBottom((tMEcursorNew.FBStartAdress)+ (390 - 65 *(line)) *2, 0, 480-390-25, 800, 390);+ −
}+ −
}+ −
+ −
+ −
void tMenuEdit_refresh_live_content(void)+ −
{+ −
+ −
if(get_globalState() == (StMHARD3_O2_Sensor1 & MaskFieldDigit))+ −
{+ −
uint32_t rememberPage = tMEscreen.FBStartAdress;+ −
tMEscreen.FBStartAdress = getFrame(9);+ −
// draw_tMEdesign();+ −
refresh_O2Sensors();+ −
GFX_SetFrameTop(tMEscreen.FBStartAdress);+ −
releaseFrame(9,rememberPage);+ −
}+ −
else if(get_globalState() == (StMHARD2_Compass_SetCourse & MaskFieldDigit))+ −
{+ −
uint32_t rememberPage = tMEscreen.FBStartAdress;+ −
tMEscreen.FBStartAdress = getFrame(9);+ −
refresh_CompassEdit();+ −
GFX_SetFrameTop(tMEscreen.FBStartAdress);+ −
releaseFrame(9,rememberPage);+ −
}+ −
else if(get_globalState() == (StMXTRA_CompassHeading & MaskFieldDigit))+ −
{+ −
uint32_t rememberPage = tMEscreen.FBStartAdress;+ −
tMEscreen.FBStartAdress = getFrame(9);+ −
// draw_tMEdesign();+ −
refresh_CompassHeading();+ −
GFX_SetFrameTop(tMEscreen.FBStartAdress);+ −
releaseFrame(9,rememberPage);+ −
}+ −
else if(get_globalState() == (StMSYS5_Info & MaskFieldDigit))+ −
{+ −
uint32_t rememberPage = tMEscreen.FBStartAdress;+ −
tMEscreen.FBStartAdress = getFrame(9);+ −
refresh_InformationPage();+ −
GFX_SetFrameTop(tMEscreen.FBStartAdress);+ −
releaseFrame(9,rememberPage);+ −
}+ −
else if(get_globalState() == (StMPLAN5_ExitResult & MaskFieldDigit))+ −
{+ −
uint32_t rememberPage = tMEscreen.FBStartAdress;+ −
tMEscreen.FBStartAdress = getFrame(9);+ −
refresh_PlanResult();+ −
GFX_SetFrameTop(tMEscreen.FBStartAdress);+ −
releaseFrame(9,rememberPage);+ −
}+ −
else if(get_globalState() == (StMHARD5_Button1 & MaskFieldDigit)) // will not be executed in EditFieldMode as global state is different+ −
{+ −
uint32_t rememberPage = tMEscreen.FBStartAdress;+ −
tMEscreen.FBStartAdress = getFrame(9);+ −
refresh_ButtonValuesFromPIC();+ −
GFX_SetFrameTop(tMEscreen.FBStartAdress);+ −
releaseFrame(9,rememberPage);+ −
}+ −
else if(get_globalState() == (StMSYS3_Units & MaskFieldDigit))+ −
{+ −
uint32_t rememberPage = tMEscreen.FBStartAdress;+ −
tMEscreen.FBStartAdress = getFrame(9);+ −
refresh_Design();+ −
GFX_SetFrameTop(tMEscreen.FBStartAdress);+ −
releaseFrame(9,rememberPage);+ −
}+ −
else if(get_globalState() == (StMSYS4_CViewTimeout & MaskFieldDigit))+ −
{+ −
uint32_t rememberPage = tMEscreen.FBStartAdress;+ −
tMEscreen.FBStartAdress = getFrame(9);+ −
refresh_Customviews();+ −
GFX_SetFrameTop(tMEscreen.FBStartAdress);+ −
releaseFrame(9,rememberPage);+ −
}+ −
}+ −
+ −
void tMenuEdit_writeSettingsToFlash(void)+ −
{+ −
if(WriteSettings)+ −
{+ −
GFX_logoAutoOff();+ −
ext_flash_write_settings();+ −
WriteSettings = 0;+ −
}+ −
}+ −
+ −
void helperLeaveMenuEditField(uint8_t idID)+ −
{+ −
if(ident[idID].maintype == FIELD_NUMBERS)+ −
{+ −
change_CLUT_entry((CLUT_MenuEditField0 + idID), CLUT_MenuEditFieldRegular);+ −
}+ −
}+ −
+ −
+ −
void helperGotoMenuEditField(uint8_t idID)+ −
{+ −
/*+ −
if(ident[idID].maintype == FIELD_NUMBERS)+ −
{+ −
change_CLUT_entry((CLUT_MenuEditField0 + idID), CLUT_MenuEditFieldSelected);+ −
}+ −
*/+ −
set_cursorNew(idID);+ −
// set_cursor(idID);+ −
}+ −
+ −
+ −
void exitMenuEdit_to_BackMenu(void)+ −
{+ −
_Bool EnterPressedBackup = EnterPressed;+ −
+ −
if(backmenu.pEventFunction)+ −
{+ −
((void (*)(uint8_t))(backmenu.pEventFunction))(backmenu.functionParameter);+ −
+ −
EnterPressed = EnterPressedBackup;+ −
// if(backmenu.line > 1)+ −
// helperGotoMenuEditField(backmenu.line);+ −
}+ −
}+ −
+ −
+ −
void exitMenuEdit_to_Menu_with_Menu_Update(void)+ −
{+ −
EnterPressed = 1;+ −
exitMenuEdit(1);+ −
}+ −
+ −
+ −
void exitMenuEdit_to_Menu_with_Menu_Update_do_not_write_settings_for_this_only(void)+ −
{+ −
EnterPressed = 1;+ −
exitMenuEdit(0);+ −
}+ −
+ −
+ −
void exitMenuEdit_to_Home_with_Menu_Update(void)+ −
{+ −
EnterPressed = 1;+ −
exitMenuEdit(1);+ −
set_globalState_tHome();+ −
}+ −
+ −
+ −
void exitMenuEdit_to_InfoCompassCalibration(void)+ −
{+ −
exitMenuEdit(1);+ −
openInfo_Compass();+ −
}+ −
+ −
+ −
void exitMenuEdit_to_Home(void)+ −
{+ −
exitMenuEdit(1);+ −
set_globalState_tHome();+ −
}+ −
+ −
+ −
void exitMenuEdit(uint8_t writeSettingsIfEnterPressed)+ −
{+ −
openMenu(0);+ −
if(EnterPressed)+ −
{+ −
updateMenu();+ −
if((stateUsed->mode == MODE_SURFACE) && writeSettingsIfEnterPressed)+ −
WriteSettings = 1;+ −
}+ −
releaseFrame(9,tMEscreen.FBStartAdress);+ −
}+ −
+ −
+ −
void exitMenuEditBackMenuOption(void)+ −
{+ −
if(backmenu.pEventFunction == 0)+ −
exitMenuEdit(1);+ −
else+ −
exitMenuEdit_to_BackMenu();+ −
}+ −
+ −
+ −
void startMenuEditFieldSelect(void)+ −
{+ −
id = 0;+ −
helperGotoMenuEditField(id);+ −
}+ −
+ −
+ −
void nextMenuEditField(void)+ −
{+ −
helperLeaveMenuEditField(id);+ −
+ −
if(id < idLast)+ −
id++;+ −
else+ −
id = 0;+ −
helperGotoMenuEditField(id);+ −
}+ −
+ −
/*+ −
void previousMenuEditField(void)+ −
{+ −
helperLeaveMenuEditField(id);+ −
if(id > 0)+ −
id--;+ −
else+ −
id = idLast;+ −
helperGotoMenuEditField(id);+ −
}+ −
*/+ −
+ −
_Bool inc_subBlock_or_block_of_actual_id(void)+ −
{+ −
if(event[evid].callerID != ident[id].callerID)+ −
return 0;+ −
+ −
if((ident[id].subtype != FIELD_3DIGIT) && (ident[id].subtype != FIELD_2DIGIT) && ((subBlockPosition + 1) < ident[id].size[block]))+ −
{+ −
subBlockPosition++;+ −
return 1;+ −
}+ −
+ −
if(((block + 1) < 4) && (ident[id].size[block+1] > 0))+ −
{+ −
block++;+ −
subBlockPosition = 0;+ −
return 1;+ −
}+ −
+ −
return 0;+ −
}+ −
+ −
+ −
uint8_t get_newContent_of_actual_id_block_and_subBlock(uint8_t action)+ −
{+ −
uint8_t (*onActionFunc)(uint32_t, uint8_t, uint8_t, uint8_t, uint8_t);+ −
uint8_t content;+ −
+ −
if(event[evid].callerID != ident[id].callerID)+ −
return 0;+ −
+ −
onActionFunc = (uint8_t (*)(uint32_t, uint8_t, uint8_t, uint8_t, uint8_t))(event[evid].pEventFunction);+ −
+ −
if((ident[id].maintype == FIELD_NUMBERS) && (ident[id].subtype == FIELD_3DIGIT))+ −
{+ −
content = 100 * ( ident[id].newText[ident[id].begin[block] + 0] - '0');+ −
content += 10 * ( ident[id].newText[ident[id].begin[block] + 1] - '0');+ −
content += ident[id].newText[ident[id].begin[block] + 2];+ −
}+ −
else+ −
if((ident[id].maintype == FIELD_NUMBERS) && (ident[id].subtype == FIELD_2DIGIT))+ −
{+ −
content = 10 * (ident[id].newText[ident[id].begin[block] + 0] - '0');+ −
content += ident[id].newText[ident[id].begin[block] + 1];+ −
}+ −
else+ −
if(ident[id].maintype == FIELD_NUMBERS)+ −
content = ident[id].newText[ident[id].begin[block] + subBlockPosition];+ −
else+ −
if(ident[id].maintype == FIELD_ON_OFF)+ −
content = ident[id].input[block];+ −
else+ −
content = 0; /* just a default for protection */+ −
+ −
return onActionFunc(ident[id].callerID, block, subBlockPosition, content, action);+ −
}+ −
+ −
void mark_digit_of_actual_id_with_this_block_and_subBlock(int8_t oldblock, int8_t oldsubblockpos)+ −
{+ −
char oneCharText[2];+ −
uint16_t positionOffset;+ −
+ −
if(event[evid].callerID != ident[id].callerID)+ −
return;+ −
+ −
if(ident[id].maintype == FIELD_NUMBERS)+ −
{+ −
oneCharText[0] = ident[id].newText[ident[id].begin[oldblock] + oldsubblockpos];+ −
oneCharText[1] = 0;+ −
positionOffset = GFX_return_offset(ident[id].fontUsed, ident[id].newText, ident[id].begin[oldblock] + oldsubblockpos);+ −
write_content( ident[id].coord[0] + positionOffset, ident[id].coord[1], ident[id].coord[2], ident[id].fontUsed, oneCharText, CLUT_MenuEditFieldSelected);+ −
}+ −
}+ −
+ −
+ −
void mark_new_2digit_of_actual_id_block(void)+ −
{+ −
char oneCharText[3];+ −
uint16_t positionOffset;+ −
+ −
if(event[evid].callerID != ident[id].callerID)+ −
return;+ −
+ −
if(ident[id].maintype == FIELD_NUMBERS)+ −
{+ −
oneCharText[0] = ident[id].newText[ident[id].begin[block] + 0];+ −
oneCharText[1] = ident[id].newText[ident[id].begin[block] + 1];+ −
oneCharText[2] = 0;+ −
positionOffset = GFX_return_offset(ident[id].fontUsed, ident[id].newText, ident[id].begin[block] + 0);+ −
write_content( ident[id].coord[0] + positionOffset, ident[id].coord[1], ident[id].coord[2], ident[id].fontUsed, oneCharText, CLUT_MenuEditDigit);+ −
}+ −
}+ −
+ −
+ −
void mark_new_3digit_of_actual_id_block(void)+ −
{+ −
char oneCharText[4];+ −
uint16_t positionOffset;+ −
+ −
if(event[evid].callerID != ident[id].callerID)+ −
return;+ −
+ −
if(ident[id].maintype == FIELD_NUMBERS)+ −
{+ −
oneCharText[0] = ident[id].newText[ident[id].begin[block] + 0];+ −
oneCharText[1] = ident[id].newText[ident[id].begin[block] + 1];+ −
oneCharText[2] = ident[id].newText[ident[id].begin[block] + 2];+ −
oneCharText[3] = 0;+ −
positionOffset = GFX_return_offset(ident[id].fontUsed, ident[id].newText, ident[id].begin[block] + 0);+ −
write_content( ident[id].coord[0] + positionOffset, ident[id].coord[1], ident[id].coord[2], ident[id].fontUsed, oneCharText, CLUT_MenuEditDigit);+ −
}+ −
}+ −
+ −
+ −
void mark_new_digit_of_actual_id_block_and_subBlock(void)+ −
{+ −
char oneCharText[2];+ −
uint16_t positionOffset;+ −
+ −
if(event[evid].callerID != ident[id].callerID)+ −
return;+ −
+ −
if(ident[id].maintype == FIELD_NUMBERS)+ −
{+ −
oneCharText[0] = ident[id].newText[ident[id].begin[block] + subBlockPosition];+ −
oneCharText[1] = 0;+ −
positionOffset = GFX_return_offset(ident[id].fontUsed, ident[id].newText, ident[id].begin[block] + subBlockPosition);+ −
write_content( ident[id].coord[0] + positionOffset, ident[id].coord[1], ident[id].coord[2], ident[id].fontUsed, oneCharText, CLUT_MenuEditDigit);+ −
}+ −
}+ −
+ −
+ −
void enterMenuEditField(void)+ −
{+ −
uint8_t newContent;+ −
uint8_t digit100;+ −
uint8_t digit10;+ −
uint8_t digit1;+ −
+ −
evid = 0;+ −
while((evid < evidLast) && (event[evid].callerID != ident[id].callerID))+ −
{+ −
evid++;+ −
}+ −
+ −
if(event[evid].callerID != ident[id].callerID)+ −
return;+ −
+ −
set_globalState(event[evid].callerID);+ −
block = 0;+ −
subBlockPosition = 0;+ −
+ −
+ −
if(ident[id].maintype == FIELD_NUMBERS)+ −
{+ −
change_CLUT_entry(CLUT_MenuEditLineSelected, CLUT_MenuEditCursor);+ −
// old stuff? hw 150916, reactivated 150923, this shows which digit will be changed now as it marks the other grey/black+ −
// now fixed for button settings with newContent <= '0'+99 condition+ −
change_CLUT_entry((CLUT_MenuEditField0 + id), CLUT_MenuEditFieldSelected);+ −
}+ −
+ −
newContent = get_newContent_of_actual_id_block_and_subBlock(ACTION_BUTTON_ENTER);+ −
+ −
if (((newContent == UPDATE_DIVESETTINGS) || (newContent == UPDATE_AND_EXIT_TO_HOME) || (newContent == UPDATE_AND_EXIT_TO_MENU)) && (actual_menu_content == MENU_SURFACE))+ −
createDiveSettings();+ −
+ −
if(newContent == EXIT_TO_MENU_WITH_LOGO)+ −
{+ −
GFX_logoAutoOff();+ −
}+ −
+ −
if((newContent == EXIT_TO_MENU) || (newContent == UPDATE_AND_EXIT_TO_MENU) || (newContent == EXIT_TO_MENU_WITH_LOGO))+ −
{+ −
if(backmenu.pEventFunction == 0)+ −
exitMenuEdit(1);+ −
else+ −
exitMenuEdit_to_BackMenu();+ −
return;+ −
}+ −
+ −
if((newContent == EXIT_TO_HOME) || (newContent == UPDATE_AND_EXIT_TO_HOME))+ −
{+ −
exitMenuEdit_to_Home();+ −
return;+ −
}+ −
+ −
if(newContent == EXIT_TO_INFO_COMPASS)+ −
{+ −
exitMenuEdit_to_InfoCompassCalibration();+ −
return;+ −
}+ −
+ −
+ −
switch(ident[id].maintype)+ −
{+ −
case FIELD_NUMBERS:+ −
write_buttonTextline(TXT2BYTE_ButtonMinus,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonPlus);+ −
+ −
if(ident[id].subtype == FIELD_UDIGIT)+ −
{+ −
if((newContent >= '0') && (newContent <= '9'))+ −
ident[id].newText[ident[id].begin[block] + subBlockPosition] = newContent;+ −
+ −
mark_new_digit_of_actual_id_block_and_subBlock();+ −
}+ −
else if(ident[id].subtype == FIELD_3DIGIT)+ −
{+ −
if((newContent >= '0') && (newContent <= '0'+200))+ −
{+ −
split_Content_to_Digit_helper( newContent, &digit100, &digit10, &digit1);+ −
ident[id].newText[ident[id].begin[block] + 0] = '0' + digit100;+ −
ident[id].newText[ident[id].begin[block] + 1] = '0' + digit10;+ −
ident[id].newText[ident[id].begin[block] + 2] = '0' + digit1;+ −
mark_new_3digit_of_actual_id_block();+ −
}+ −
}+ −
else // FIELD_2DIGIT+ −
{+ −
if((newContent >= '0') && (newContent <= '0'+99))+ −
{+ −
ident[id].newText[ident[id].begin[block]] = '0' + (newContent - '0')/10;+ −
ident[id].newText[ident[id].begin[block] + 1] = '0' + ((newContent - '0') - (10*((newContent - '0')/10)));+ −
mark_new_2digit_of_actual_id_block();+ −
}+ −
}+ −
break;+ −
case FIELD_BUTTON:+ −
set_globalState(menuID);+ −
break;+ −
case FIELD_ON_OFF:+ −
set_globalState(menuID);+ −
break;+ −
case FIELD_SYMBOL:+ −
ident[id].input[0] += 1;+ −
if(ident[id].input[0] >= ident[id].input[1])+ −
ident[id].input[0] = 0;+ −
ident[id].newText[0] = ident[id].orgText[ident[id].input[0]];+ −
write_content_of_actual_Id();+ −
set_globalState(menuID);+ −
break;+ −
}+ −
}+ −
+ −
+ −
void exitMenuEditField(void)+ −
{+ −
uint8_t newContent;+ −
+ −
set_globalState(menuID);+ −
+ −
if(event[evid].callerID != ident[id].callerID)+ −
return;+ −
+ −
newContent = get_newContent_of_actual_id_block_and_subBlock(ACTION_TIMEOUT);+ −
+ −
/*+ −
uint8_t (*onActionFunc)(uint32_t, uint8_t, uint8_t, uint8_t, uint8_t);+ −
uint8_t newContent;+ −
+ −
onActionFunc = (uint8_t (*)(uint32_t, uint8_t, uint8_t, uint8_t, uint8_t))(event[evid].pEventFunction);+ −
+ −
newContent = onActionFunc(ident[id].callerID, 0, 0, 255, ACTION_BUTTON_BACK);+ −
*/+ −
+ −
/* destroy changes of editing in newText */+ −
change_CLUT_entry(CLUT_MenuEditLineSelected, CLUT_MenuLineSelected);+ −
change_CLUT_entry((CLUT_MenuEditField0 + id), CLUT_MenuEditFieldRegular);+ −
+ −
create_newText_for_actual_Id();+ −
write_content_of_actual_Id();+ −
+ −
if((newContent == EXIT_TO_MENU) || (newContent == UPDATE_AND_EXIT_TO_MENU))+ −
{+ −
exitMenuEdit(1);+ −
return;+ −
}+ −
+ −
if((newContent == EXIT_TO_HOME) || (newContent == UPDATE_AND_EXIT_TO_HOME))+ −
{+ −
exitMenuEdit_to_Home();+ −
return;+ −
}+ −
+ −
}+ −
+ −
void nextMenuEditFieldDigit(void)+ −
{+ −
uint8_t action;+ −
uint8_t newContent;+ −
int8_t blockOld = 0;+ −
int8_t subBlockPositionOld = 0;+ −
+ −
if(event[evid].callerID != ident[id].callerID)+ −
return;+ −
+ −
blockOld = block;+ −
subBlockPositionOld = subBlockPosition;+ −
+ −
if(inc_subBlock_or_block_of_actual_id())+ −
action = ACTION_BUTTON_ENTER;+ −
else+ −
action = ACTION_BUTTON_ENTER_FINAL;+ −
+ −
newContent = get_newContent_of_actual_id_block_and_subBlock(action);+ −
+ −
if(action == ACTION_BUTTON_ENTER_FINAL)+ −
{+ −
write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext);+ −
+ −
change_CLUT_entry(CLUT_MenuEditLineSelected, CLUT_MenuLineSelected);+ −
for(int i = 0;i<=9;i++)+ −
change_CLUT_entry((CLUT_MenuEditField0 + i), CLUT_MenuEditFieldRegular);+ −
+ −
if(((newContent == UPDATE_DIVESETTINGS) || (newContent == UPDATE_AND_EXIT_TO_HOME) || (newContent == UPDATE_AND_EXIT_TO_MENU)) && (actual_menu_content == MENU_SURFACE))+ −
createDiveSettings();+ −
+ −
if((newContent == EXIT_TO_MENU) || (newContent == UPDATE_AND_EXIT_TO_MENU))+ −
{+ −
exitMenuEdit(1);+ −
return;+ −
}+ −
+ −
if((newContent == EXIT_TO_HOME) || (newContent == UPDATE_AND_EXIT_TO_HOME))+ −
{+ −
exitMenuEdit_to_Home();+ −
return;+ −
}+ −
}+ −
+ −
if((ident[id].maintype == FIELD_NUMBERS) && (ident[id].subtype == FIELD_3DIGIT) && (action == ACTION_BUTTON_ENTER) &&(newContent >= '0') && (newContent <= '0' + 99))+ −
{+ −
ident[id].newText[ident[id].begin[block] + 0] = '0' + (newContent - '0')/100;+ −
ident[id].newText[ident[id].begin[block] + 1] = '0' + (newContent - '0')/10;+ −
ident[id].newText[ident[id].begin[block] + 2] = '0' + ((newContent - '0') - (10*((newContent - '0')/10)));+ −
}+ −
else+ −
if((ident[id].maintype == FIELD_NUMBERS) && (ident[id].subtype == FIELD_2DIGIT) && (action == ACTION_BUTTON_ENTER) &&(newContent >= '0') && (newContent <= '0' + 99))+ −
{+ −
ident[id].newText[ident[id].begin[block] + 0] = '0' + (newContent - '0')/10;+ −
ident[id].newText[ident[id].begin[block] + 1] = '0' + ((newContent - '0') - (10*((newContent - '0')/10)));+ −
}+ −
else+ −
if((ident[id].maintype == FIELD_NUMBERS) && (action == ACTION_BUTTON_ENTER) && (newContent >= '0') && (newContent <= '9'))+ −
ident[id].newText[ident[id].begin[block] + subBlockPosition] = newContent;+ −
+ −
if(action == ACTION_BUTTON_ENTER)+ −
{+ −
if((ident[id].maintype == FIELD_NUMBERS) && (ident[id].subtype == FIELD_3DIGIT))+ −
{+ −
mark_new_3digit_of_actual_id_block();+ −
mark_digit_of_actual_id_with_this_block_and_subBlock(blockOld,0);+ −
mark_digit_of_actual_id_with_this_block_and_subBlock(blockOld,1);+ −
mark_digit_of_actual_id_with_this_block_and_subBlock(blockOld,2);+ −
}+ −
else+ −
if((ident[id].maintype == FIELD_NUMBERS) && (ident[id].subtype == FIELD_2DIGIT))+ −
{+ −
mark_new_2digit_of_actual_id_block();+ −
mark_digit_of_actual_id_with_this_block_and_subBlock(blockOld,0);+ −
mark_digit_of_actual_id_with_this_block_and_subBlock(blockOld,1);+ −
}+ −
else+ −
{+ −
mark_new_digit_of_actual_id_block_and_subBlock();+ −
mark_digit_of_actual_id_with_this_block_and_subBlock(blockOld,subBlockPositionOld);+ −
}+ −
}+ −
else /* action == ACTION_BUTTON_ENTER_FINAL */+ −
set_globalState(menuID);+ −
}+ −
+ −
uint8_t split_Content_to_Digit_helper(uint8_t inContentAscii, uint8_t *outDigit100, uint8_t *outDigit10, uint8_t *outDigit1)+ −
{+ −
uint8_t newContent, tempDigit, CopyContent;+ −
+ −
newContent = inContentAscii - '0';+ −
CopyContent = newContent;+ −
+ −
tempDigit = newContent / 100;+ −
newContent -= tempDigit * 100;+ −
if(outDigit100)+ −
*outDigit100 = tempDigit;+ −
+ −
tempDigit = newContent / 10;+ −
newContent -= tempDigit * 10;+ −
if(outDigit10)+ −
*outDigit10 = tempDigit;+ −
+ −
tempDigit = newContent;+ −
if(outDigit1)+ −
*outDigit1 = tempDigit;+ −
+ −
return CopyContent;+ −
}+ −
+ −
void upMenuEditFieldDigit(void)+ −
{+ −
uint8_t newContent;+ −
uint8_t digit100;+ −
uint8_t digit10;+ −
uint8_t digit1;+ −
+ −
if(event[evid].callerID != ident[id].callerID)+ −
return;+ −
+ −
newContent = get_newContent_of_actual_id_block_and_subBlock(ACTION_BUTTON_NEXT);+ −
+ −
if((ident[id].maintype == FIELD_NUMBERS) && (ident[id].subtype == FIELD_3DIGIT) &&(newContent >= '0') && (newContent <= '0' + 200))+ −
{+ −
split_Content_to_Digit_helper( newContent, &digit100, &digit10, &digit1);+ −
ident[id].newText[ident[id].begin[block] + 0] = '0' + digit100;+ −
ident[id].newText[ident[id].begin[block] + 1] = '0' + digit10;+ −
ident[id].newText[ident[id].begin[block] + 2] = '0' + digit1;+ −
mark_new_3digit_of_actual_id_block();+ −
return;+ −
}+ −
+ −
if((ident[id].maintype == FIELD_NUMBERS) && (ident[id].subtype == FIELD_2DIGIT) &&(newContent >= '0') && (newContent <= '0' + 99))+ −
{+ −
ident[id].newText[ident[id].begin[block] + 0] = '0' + (newContent - '0')/10;+ −
ident[id].newText[ident[id].begin[block] + 1] = '0' + ((newContent - '0') - (10*((newContent - '0')/10)));+ −
mark_new_2digit_of_actual_id_block();+ −
return;+ −
}+ −
+ −
if((ident[id].maintype == FIELD_NUMBERS) && (newContent >= '0') && (newContent <= '9'))+ −
ident[id].newText[ident[id].begin[block] + subBlockPosition] = newContent;+ −
+ −
mark_new_digit_of_actual_id_block_and_subBlock();+ −
}+ −
+ −
+ −
void downMenuEditFieldDigit(void)+ −
{+ −
uint8_t newContent;+ −
uint8_t digit100;+ −
uint8_t digit10;+ −
uint8_t digit1;+ −
+ −
if(event[evid].callerID != ident[id].callerID)+ −
return;+ −
+ −
newContent = get_newContent_of_actual_id_block_and_subBlock(ACTION_BUTTON_BACK);+ −
+ −
if((ident[id].maintype == FIELD_NUMBERS) && (ident[id].subtype == FIELD_3DIGIT) &&(newContent >= '0') && (newContent <= '0' + 200))+ −
{+ −
split_Content_to_Digit_helper( newContent, &digit100, &digit10, &digit1);+ −
ident[id].newText[ident[id].begin[block] + 0] = '0' + digit100;+ −
ident[id].newText[ident[id].begin[block] + 1] = '0' + digit10;+ −
ident[id].newText[ident[id].begin[block] + 2] = '0' + digit1;+ −
mark_new_3digit_of_actual_id_block();+ −
return;+ −
}+ −
+ −
if((ident[id].maintype == FIELD_NUMBERS) && (ident[id].subtype == FIELD_2DIGIT) &&(newContent >= '0') && (newContent <= '0' + 99))+ −
{+ −
ident[id].newText[ident[id].begin[block] + 0] = '0' + (newContent - '0')/10;+ −
ident[id].newText[ident[id].begin[block] + 1] = '0' + ((newContent - '0') - (10*((newContent - '0')/10)));+ −
mark_new_2digit_of_actual_id_block();+ −
return;+ −
}+ −
+ −
if((ident[id].maintype == FIELD_NUMBERS) && (newContent >= '0') && (newContent <= '9'))+ −
ident[id].newText[ident[id].begin[block] + subBlockPosition] = newContent;+ −
+ −
mark_new_digit_of_actual_id_block_and_subBlock();+ −
}+ −
+ −
+ −
void evaluateNewString(uint32_t editID, uint32_t *pNewValue1, uint32_t *pNewValue2, uint32_t *pNewValue3, uint32_t *pNewValue4)+ −
{+ −
if(editID != ident[id].callerID)+ −
return;+ −
+ −
uint8_t i, digitCount, digit;+ −
uint32_t sum[4], multiplier;+ −
+ −
for(i=0;i<4;i++)+ −
sum[i] = 0;+ −
+ −
i = 0;+ −
while( ident[id].size[i] && (i < 4))+ −
{+ −
multiplier = 1;+ −
for(digitCount = 1; digitCount < ident[id].size[i]; digitCount++)+ −
multiplier *= 10;+ −
+ −
for(digitCount = 0; digitCount < ident[id].size[i]; digitCount++)+ −
{+ −
digit = ident[id].newText[ident[id].begin[i] + digitCount];+ −
+ −
if(digit > '0')+ −
digit -= '0';+ −
else+ −
digit = 0;+ −
+ −
if(digit > 9)+ −
digit = 9;+ −
+ −
sum[i] += digit * multiplier;+ −
+ −
if(multiplier >= 10)+ −
multiplier /= 10;+ −
else+ −
multiplier = 0;+ −
}+ −
i++;+ −
}+ −
+ −
*pNewValue1 = sum[0];+ −
*pNewValue2 = sum[1];+ −
*pNewValue3 = sum[2];+ −
*pNewValue4 = sum[3];+ −
}+ −
+ −
+ −
uint8_t get_id_of(uint32_t editID)+ −
{+ −
uint8_t temp_id;+ −
+ −
if(editID == ident[id].callerID)+ −
return id;+ −
else+ −
{+ −
temp_id = 0;+ −
while((temp_id < 9) && (editID != ident[temp_id].callerID))+ −
temp_id++;+ −
if(editID != ident[temp_id].callerID)+ −
temp_id = 255;+ −
return temp_id;+ −
}+ −
}+ −
+ −
+ −
void tMenuEdit_newButtonText(uint32_t editID, char *text)+ −
{+ −
uint8_t backup_id, temp_id;+ −
+ −
temp_id = get_id_of(editID);+ −
if(temp_id == 255)+ −
return;+ −
+ −
backup_id = id;+ −
id = temp_id;+ −
+ −
strncpy(ident[id].newText, text, 32);+ −
ident[id].newText[31] = 0;+ −
+ −
clean_content_of_actual_Id();+ −
write_content_of_actual_Id();+ −
+ −
id = backup_id;+ −
}+ −
+ −
+ −
void tMenuEdit_set_on_off(uint32_t editID, uint32_t int1)+ −
{+ −
uint8_t backup_id, temp_id;+ −
+ −
temp_id = get_id_of(editID);+ −
if(temp_id == 255)+ −
return;+ −
+ −
backup_id = id;+ −
id = temp_id;+ −
+ −
ident[id].input[0] = int1;+ −
+ −
if(int1)+ −
ident[id].newText[0] = '\005';+ −
else+ −
ident[id].newText[0] = '\006';+ −
+ −
clean_content_of_actual_Id();+ −
write_content_of_actual_Id();+ −
+ −
id = backup_id;+ −
}+ −
+ −
+ −
void tMenuEdit_select(uint32_t editID, uint32_t int1, uint32_t int2, uint32_t int3, uint32_t int4)+ −
{+ −
if(int1 > 4)+ −
return;+ −
+ −
uint8_t backup_id, temp_id;+ −
+ −
temp_id = get_id_of(editID);+ −
if(temp_id == 255)+ −
return;+ −
+ −
backup_id = id;+ −
id = temp_id;+ −
+ −
ident[id].input[0] = int1;+ −
ident[id].input[1] = int1;+ −
ident[id].input[2] = int1;+ −
ident[id].input[3] = int1;+ −
+ −
create_newText_for_actual_Id();+ −
clean_content_of_actual_Id();+ −
write_content_of_actual_Id();+ −
+ −
id = backup_id;+ −
}+ −
+ −
+ −
void tMenuEdit_newInput(uint32_t editID, uint32_t int1, uint32_t int2, uint32_t int3, uint32_t int4)+ −
{+ −
uint8_t backup_id, temp_id;+ −
+ −
temp_id = get_id_of(editID);+ −
if(temp_id == 255)+ −
return;+ −
+ −
backup_id = id;+ −
id = temp_id;+ −
+ −
if(editID != ident[id].callerID)+ −
{+ −
temp_id = 0;+ −
while((temp_id < 9) && (editID != ident[temp_id].callerID))+ −
temp_id++;+ −
if(editID != ident[temp_id].callerID)+ −
return;+ −
id = temp_id;+ −
}+ −
ident[id].input[0] = int1;+ −
ident[id].input[1] = int2;+ −
ident[id].input[2] = int3;+ −
ident[id].input[3] = int4;+ −
+ −
create_newText_for_actual_Id();+ −
if(id <= idLast)+ −
change_CLUT_entry((CLUT_MenuEditField0 + id), CLUT_MenuEditFieldRegular);+ −
write_content_of_actual_Id();+ −
+ −
id = backup_id;+ −
}+ −
+ −
+ −
void resetEnterPressedToStateBeforeButtonAction(void)+ −
{+ −
EnterPressed = EnterPressedBeforeButtonAction;+ −
}+ −
+ −
+ −
void sendActionToMenuEdit(uint8_t sendAction)+ −
{+ −
if(get_globalState() == menuID)+ −
{+ −
switch(sendAction)+ −
{+ −
case ACTION_BUTTON_ENTER:+ −
EnterPressedBeforeButtonAction = EnterPressed;+ −
EnterPressed = 1;+ −
enterMenuEditField();+ −
break;+ −
case ACTION_BUTTON_NEXT:+ −
nextMenuEditField();+ −
// previousMenuEditField();+ −
break;+ −
case ACTION_BUTTON_BACK:+ −
exitMenuEditBackMenuOption();+ −
break;+ −
case ACTION_TIMEOUT:+ −
case ACTION_MODE_CHANGE:+ −
exitMenuEdit(1);+ −
default:+ −
break;+ −
case ACTION_IDLE_TICK:+ −
case ACTION_IDLE_SECOND:+ −
break;+ −
}+ −
}+ −
else+ −
if(get_globalState() == event[evid].callerID)+ −
{+ −
switch(sendAction)+ −
{+ −
case ACTION_BUTTON_ENTER:+ −
nextMenuEditFieldDigit();+ −
break;+ −
case ACTION_BUTTON_NEXT:+ −
upMenuEditFieldDigit();+ −
break;+ −
case ACTION_BUTTON_BACK:+ −
downMenuEditFieldDigit();+ −
break;+ −
case ACTION_TIMEOUT:+ −
case ACTION_MODE_CHANGE:+ −
exitMenuEditField();+ −
default:+ −
break;+ −
case ACTION_IDLE_TICK:+ −
case ACTION_IDLE_SECOND:+ −
break;+ −
}+ −
}+ −
else+ −
{+ −
switch(sendAction)+ −
{+ −
case ACTION_BUTTON_ENTER:+ −
break;+ −
case ACTION_BUTTON_NEXT:+ −
break;+ −
case ACTION_BUTTON_BACK:+ −
break;+ −
case ACTION_TIMEOUT:+ −
case ACTION_MODE_CHANGE:+ −
exitMenuEdit(1);+ −
default:+ −
break;+ −
case ACTION_IDLE_TICK:+ −
case ACTION_IDLE_SECOND:+ −
break;+ −
}+ −
}+ −
}+ −
+ −
+ −
void create_newText_for_actual_Id_and_field_select(void)+ −
{+ −
uint8_t i;+ −
+ −
i = 0;+ −
while( ident[id].size[i] && (i < 4))+ −
{+ −
if(ident[id].input[i])+ −
ident[id].newText[ident[id].begin[i]] = '\005';+ −
else+ −
ident[id].newText[ident[id].begin[i]] = '\006';+ −
i++;+ −
}+ −
}+ −
+ −
+ −
void create_newText_for_actual_Id(void)+ −
{+ −
if( ident[id].maintype == FIELD_SELECT)+ −
{+ −
create_newText_for_actual_Id_and_field_select();+ −
return;+ −
}+ −
+ −
uint8_t i, digitCount;+ −
uint32_t remainder, digit, divider;+ −
+ −
i = 0;+ −
while( ident[id].size[i] && (i < 4))+ −
{+ −
remainder = ident[id].input[i];+ −
divider = 1;+ −
+ −
for(digitCount = 1; digitCount < ident[id].size[i]; digitCount++)+ −
divider *= 10;+ −
+ −
for(digitCount = 0; digitCount < ident[id].size[i]; digitCount++)+ −
{+ −
digit = remainder / divider;+ −
remainder -= digit * divider;+ −
divider /= 10;+ −
if(digit < 10)+ −
ident[id].newText[ident[id].begin[i] + digitCount] = digit + '0';+ −
else+ −
ident[id].newText[ident[id].begin[i] + digitCount] = 'x';+ −
}+ −
i++;+ −
}+ −
}+ −
+ −
+ −
void write_content_without_Id(void)+ −
{+ −
write_content( ident[id].coord[0], ident[id].coord[1], ident[id].coord[2], ident[id].fontUsed, ident[id].newText, CLUT_MenuEditFieldRegular);+ −
}+ −
+ −
+ −
void write_content_of_actual_Id(void)+ −
{+ −
write_content( ident[id].coord[0], ident[id].coord[1], ident[id].coord[2], ident[id].fontUsed, ident[id].newText, (CLUT_MenuEditField0 + id));+ −
}+ −
+ −
+ −
void clean_content_of_actual_Id(void)+ −
{+ −
clean_content( ident[id].coord[0], ident[id].coord[1], ident[id].coord[2], ident[id].fontUsed);+ −
}+ −
+ −
+ −
void write_field_udigit_and_2digit(uint8_t subtype, uint32_t editID, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text, uint32_t int1, uint32_t int2, uint32_t int3, uint32_t int4)+ −
{+ −
if(id >= 9)+ −
return;+ −
+ −
ident[id].maintype = FIELD_NUMBERS;+ −
ident[id].subtype = subtype;+ −
+ −
ident[id].coord[0] = XleftGimpStyle;+ −
ident[id].coord[1] = XrightGimpStyle;+ −
ident[id].coord[2] = YtopGimpStyle;+ −
ident[id].fontUsed = (tFont *)Font;+ −
ident[id].callerID = editID;+ −
+ −
strncpy(ident[id].orgText, text, 32);+ −
strncpy(ident[id].newText, text, 32);+ −
ident[id].orgText[31] = 0;+ −
ident[id].newText[31] = 0;+ −
+ −
/* uint32_t has max 10 digits */+ −
+ −
int8_t beginTmp, sizeTmp;+ −
uint8_t i;+ −
+ −
ident[id].input[0] = int1;+ −
ident[id].input[1] = int2;+ −
ident[id].input[2] = int3;+ −
ident[id].input[3] = int4;+ −
+ −
for(i=0;i<4;i++)+ −
ident[id].size[i] = 0;+ −
+ −
beginTmp = 0;+ −
for(i=0;i<4;i++)+ −
{+ −
while((ident[id].orgText[beginTmp] != '#')&& ident[id].orgText[beginTmp])+ −
beginTmp++;+ −
+ −
if(ident[id].orgText[beginTmp] == '#')+ −
{+ −
sizeTmp = 1;+ −
while(ident[id].orgText[beginTmp + sizeTmp] == '#')+ −
sizeTmp++;+ −
+ −
ident[id].begin[i] = beginTmp;+ −
ident[id].size[i] = sizeTmp;+ −
beginTmp = ident[id].begin[i] + ident[id].size[i];+ −
}+ −
else+ −
break;+ −
}+ −
+ −
if(!tME_stop)+ −
change_CLUT_entry((CLUT_MenuEditField0 + id), CLUT_MenuEditFieldRegular);+ −
else+ −
change_CLUT_entry((CLUT_MenuEditField0 + id), CLUT_MenuEditInfo);+ −
+ −
create_newText_for_actual_Id();+ −
+ −
if(editID == 0)+ −
write_content_without_Id();+ −
else+ −
{+ −
write_content_of_actual_Id();+ −
if(!tME_stop)+ −
idLast = id;+ −
id++;+ −
}+ −
}+ −
+ −
void write_field_udigit(uint32_t editID, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text, uint32_t int1, uint32_t int2, uint32_t int3, uint32_t int4)+ −
{+ −
write_field_udigit_and_2digit(FIELD_UDIGIT, editID,XleftGimpStyle,XrightGimpStyle,YtopGimpStyle,Font,text,int1,int2,int3,int4);+ −
}+ −
+ −
void write_field_2digit(uint32_t editID, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text, uint32_t int1, uint32_t int2, uint32_t int3, uint32_t int4)+ −
{+ −
write_field_udigit_and_2digit(FIELD_2DIGIT, editID,XleftGimpStyle,XrightGimpStyle,YtopGimpStyle,Font,text,int1,int2,int3,int4);+ −
}+ −
+ −
void write_field_3digit(uint32_t editID, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text, uint32_t int1, uint32_t int2, uint32_t int3, uint32_t int4)+ −
{+ −
write_field_udigit_and_2digit(FIELD_3DIGIT, editID,XleftGimpStyle,XrightGimpStyle,YtopGimpStyle,Font,text,int1,int2,int3,int4);+ −
}+ −
+ −
/*+ −
void write_field_sdigit(uint32_t editID, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text, int32_t int1, int32_t int2, int32_t int3, int32_t int4)+ −
{+ −
}+ −
*/+ −
+ −
void write_field_select(uint32_t editID, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text, uint8_t int1, uint8_t int2, uint8_t int3, uint8_t int4)+ −
{+ −
if(id >= 9)+ −
return;+ −
+ −
int8_t beginTmp;+ −
+ −
ident[id].maintype = FIELD_SELECT;+ −
ident[id].subtype = FIELD_SELECT;+ −
+ −
ident[id].coord[0] = XleftGimpStyle;+ −
ident[id].coord[1] = XrightGimpStyle;+ −
ident[id].coord[2] = YtopGimpStyle;+ −
ident[id].fontUsed = (tFont *)Font;+ −
ident[id].callerID = editID;+ −
+ −
strncpy(ident[id].orgText, text, 32);+ −
strncpy(ident[id].newText, text, 32);+ −
ident[id].orgText[31] = 0;+ −
ident[id].newText[31] = 0;+ −
+ −
ident[id].input[0] = int1;+ −
ident[id].input[1] = int2;+ −
ident[id].input[2] = int3;+ −
ident[id].input[3] = int4;+ −
+ −
for(int i=0;i<4;i++)+ −
ident[id].size[i] = 0;+ −
+ −
beginTmp = 0;+ −
for(int i=0;i<4;i++)+ −
{+ −
while((ident[id].orgText[beginTmp] != '#')&& ident[id].orgText[beginTmp])+ −
beginTmp++;+ −
+ −
if(ident[id].orgText[beginTmp] == '#')+ −
{+ −
+ −
ident[id].begin[i] = beginTmp;+ −
ident[id].size[i] = 1;+ −
beginTmp = ident[id].begin[i] + ident[id].size[i];+ −
}+ −
else+ −
break;+ −
}+ −
+ −
change_CLUT_entry((CLUT_MenuEditField0 + id), CLUT_MenuEditFieldRegular);+ −
+ −
create_newText_for_actual_Id();+ −
+ −
if(editID == 0)+ −
write_content_without_Id();+ −
else+ −
{+ −
write_content_of_actual_Id();+ −
if(!tME_stop)+ −
idLast = id;+ −
id++;+ −
}+ −
}+ −
+ −
void write_field_button(uint32_t editID, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text)+ −
{+ −
if(id >= 9)+ −
return;+ −
+ −
ident[id].maintype = FIELD_BUTTON;+ −
ident[id].subtype = FIELD_BUTTON;+ −
+ −
ident[id].coord[0] = XleftGimpStyle;+ −
ident[id].coord[1] = XrightGimpStyle;+ −
ident[id].coord[2] = YtopGimpStyle;+ −
ident[id].fontUsed = (tFont *)Font;+ −
ident[id].callerID = editID;+ −
+ −
strncpy(ident[id].orgText, text, 32);+ −
strncpy(ident[id].newText, text, 32);+ −
ident[id].orgText[31] = 0;+ −
ident[id].newText[31] = 0;+ −
+ −
change_CLUT_entry((CLUT_MenuEditField0 + id), CLUT_MenuEditButtonColor1);+ −
+ −
if(editID == 0)+ −
write_content_without_Id();+ −
else+ −
{+ −
write_content_of_actual_Id();+ −
if(!tME_stop)+ −
idLast = id;+ −
id++;+ −
}+ −
}+ −
+ −
+ −
void write_field_symbol(uint32_t editID, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text, uint8_t int1)+ −
{+ −
if(id >= 9)+ −
return;+ −
+ −
ident[id].maintype = FIELD_SYMBOL;+ −
ident[id].subtype = FIELD_SYMBOL;+ −
+ −
ident[id].coord[0] = XleftGimpStyle;+ −
ident[id].coord[1] = XrightGimpStyle;+ −
ident[id].coord[2] = YtopGimpStyle;+ −
ident[id].fontUsed = (tFont *)Font;+ −
ident[id].callerID = editID;+ −
+ −
strncpy(ident[id].orgText, text, 32);+ −
strncpy(ident[id].newText, text, 32);+ −
ident[id].orgText[31] = 0;+ −
+ −
ident[id].newText[0] = text[0];+ −
ident[id].newText[1] = 0;+ −
+ −
ident[id].input[0] = int1;+ −
ident[id].input[1] = strlen(ident[id].orgText);+ −
+ −
change_CLUT_entry((CLUT_MenuEditField0 + id), CLUT_MenuEditButtonColor1);+ −
+ −
if(editID == 0)+ −
write_content_without_Id();+ −
else+ −
{+ −
write_content_of_actual_Id();+ −
if(!tME_stop)+ −
idLast = id;+ −
id++;+ −
}+ −
}+ −
+ −
+ −
/* was build for field_on_off+ −
* to be tested for other purposes first+ −
*/+ −
void tMenuEdit_refresh_field(uint32_t editID)+ −
{+ −
uint8_t temp_id;+ −
+ −
temp_id = get_id_of(editID);+ −
if(temp_id == 255)+ −
return;+ −
+ −
clean_content( ident[temp_id].coord[0], ident[temp_id].coord[1], ident[temp_id].coord[2], ident[temp_id].fontUsed);+ −
write_content( ident[temp_id].coord[0], ident[temp_id].coord[1], ident[temp_id].coord[2], ident[temp_id].fontUsed, ident[temp_id].newText, (CLUT_MenuEditField0 + temp_id));+ −
}+ −
+ −
+ −
void write_field_on_off(uint32_t editID, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text, uint8_t int1)+ −
{+ −
if(id >= 9)+ −
return;+ −
+ −
ident[id].maintype = FIELD_ON_OFF;+ −
ident[id].subtype = FIELD_ON_OFF;+ −
+ −
ident[id].coord[0] = XleftGimpStyle;+ −
ident[id].coord[1] = XrightGimpStyle;+ −
ident[id].coord[2] = YtopGimpStyle;+ −
ident[id].fontUsed = (tFont *)Font;+ −
ident[id].callerID = editID;+ −
+ −
if(int1)+ −
ident[id].orgText[0] = '\005';+ −
else+ −
ident[id].orgText[0] = '\006';+ −
+ −
ident[id].orgText[1] = ' ';+ −
+ −
strncpy(&ident[id].orgText[2], text, 30);+ −
strncpy(ident[id].newText, ident[id].orgText, 32);+ −
ident[id].orgText[31] = 0;+ −
ident[id].newText[31] = 0;+ −
+ −
if(!tME_stop)+ −
change_CLUT_entry((CLUT_MenuEditField0 + id), CLUT_MenuEditFieldRegular);+ −
else+ −
change_CLUT_entry((CLUT_MenuEditField0 + id), CLUT_MenuEditInfo);+ −
+ −
if(editID == 0)+ −
write_content_without_Id();+ −
else+ −
{+ −
write_content_of_actual_Id();+ −
if(!tME_stop)+ −
idLast = id;+ −
id++;+ −
}+ −
}+ −
+ −
+ −
void write_field_fpoint(uint32_t editID, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text, float input)+ −
{+ −
if(id >= 9)+ −
return;+ −
+ −
ident[id].maintype = FIELD_NUMBERS;+ −
ident[id].subtype = FIELD_FLOAT;+ −
+ −
ident[id].coord[0] = XleftGimpStyle;+ −
ident[id].coord[1] = XrightGimpStyle;+ −
ident[id].coord[2] = YtopGimpStyle;+ −
ident[id].fontUsed = (tFont *)Font;+ −
ident[id].callerID = editID;+ −
+ −
strncpy(ident[id].orgText, text, 32);+ −
strncpy(ident[id].newText, text, 32);+ −
ident[id].orgText[31] = 0;+ −
ident[id].newText[31] = 0;+ −
+ −
change_CLUT_entry((CLUT_MenuEditField0 + id), CLUT_MenuEditFieldRegular);+ −
+ −
if(editID == 0)+ −
write_content_without_Id();+ −
else+ −
{+ −
write_content_of_actual_Id();+ −
if(!tME_stop)+ −
idLast = id;+ −
id++;+ −
}+ −
}+ −
+ −
+ −
void setBackMenu(uint32_t inputFunctionCall, uint8_t functionCallParameter, uint8_t gotoMenuEditField)+ −
{+ −
backmenu.pEventFunction = inputFunctionCall;+ −
backmenu.functionParameter = functionCallParameter;+ −
backmenu.line = gotoMenuEditField;+ −
}+ −
+ −
+ −
void setEvent(uint32_t inputEventID, uint32_t inputFunctionCall)+ −
{+ −
if(evidLast >= 9)+ −
return;+ −
+ −
/* set cursor to first field */+ −
if(evidLast < 0)+ −
{+ −
startMenuEditFieldSelect();+ −
}+ −
+ −
event[evid].callerID = inputEventID;+ −
event[evid].pEventFunction = inputFunctionCall;+ −
+ −
evidLast = evid;+ −
evid++;+ −
}+ −
+ −
void startEdit(void)+ −
{+ −
EnterPressed = 1;+ −
helperGotoMenuEditField(0);+ −
enterMenuEditField();+ −
}+ −
+ −
void exitEditWithUpdate(void)+ −
{+ −
createDiveSettings();+ −
EnterPressed = 1;+ −
exitMenuEdit(1);+ −
}+ −
+ −
/*+ −
void set_cursor(uint8_t forThisIdentID)+ −
{+ −
int16_t x0, x1, y0, y1;+ −
+ −
uint32_t xtra_left_right = 10;+ −
uint32_t xtra_top_bottom = 10;+ −
+ −
// y geht von 0 bis 799+ −
// x geht von 0 bis 479+ −
+ −
x0 = (int16_t)ident[forThisIdentID].coord[0];+ −
x1 = (int16_t)ident[forThisIdentID].coord[1];+ −
y0 = (int16_t)ident[forThisIdentID].coord[2];+ −
y1 = y0 + (int16_t)ident[forThisIdentID].fontUsed->height;+ −
+ −
if(((int16_t)ident[forThisIdentID].fontUsed->height) > 70)+ −
{+ −
xtra_left_right = 10;+ −
xtra_top_bottom = 10;+ −
}+ −
else+ −
{+ −
xtra_left_right = 10;+ −
xtra_top_bottom = 0;+ −
}+ −
+ −
x0 -= xtra_left_right;+ −
x1 += xtra_left_right;+ −
y0 -= xtra_top_bottom;+ −
y1 += xtra_top_bottom;+ −
+ −
GFX_SetWindowLayer0(tMEcursor.FBStartAdress, x0, x1, y0, y1);+ −
}+ −
*/+ −
+ −
void set_cursorNew(uint8_t forThisIdentID)+ −
{+ −
int16_t y0;+ −
uint8_t lineMinusOne;+ −
+ −
if(!settingsGetPointer()->FlipDisplay)+ −
{+ −
y0 = (int16_t)ident[forThisIdentID].coord[2];+ −
y0 -= ME_Y_LINE1;+ −
}+ −
else+ −
{+ −
y0 = 390 + 25 - (int16_t)ident[forThisIdentID].coord[2];+ −
}+ −
+ −
y0 /= ME_Y_LINE_STEP;+ −
if((y0 >= 0) && (y0 <=6)) + −
lineMinusOne = y0;+ −
else+ −
lineMinusOne = 0;+ −
+ −
if(!settingsGetPointer()->FlipDisplay)+ −
{+ −
GFX_SetFrameBottom((tMEcursorNew.FBStartAdress) + 65*2*(lineMinusOne), 0, 25, 800, 390);+ −
}+ −
else+ −
{+ −
GFX_SetFrameBottom((tMEcursorNew.FBStartAdress)+ (390 - 65 *(6-lineMinusOne)) *2, 0, 480-390-25, 800, 390);+ −
}+ −
}+ −
+ −
+ −
void write_topline( char *text)+ −
{+ −
GFX_DrawCfgWindow hgfx;+ −
const tFont *Font = &FontT48;+ −
+ −
hgfx.Image = &tMEscreen;+ −
hgfx.WindowNumberOfTextLines = 1;+ −
hgfx.WindowLineSpacing = 0;+ −
hgfx.WindowTab = 0;+ −
hgfx.WindowX0 = 20;+ −
hgfx.WindowX1 = 779;+ −
if(!settingsGetPointer()->FlipDisplay)+ −
{+ −
hgfx.WindowY1 = 479;+ −
hgfx.WindowY0 = hgfx.WindowY1 - Font->height;+ −
}+ −
else+ −
{+ −
hgfx.WindowY0 = 0;+ −
hgfx.WindowY1 = hgfx.WindowY0 + Font->height;+ −
}+ −
GFX_write_label(Font, &hgfx, text, menuColor);+ −
}+ −
+ −
+ −
void write_buttonTextline( uint8_t left2ByteCode, char middle2ByteCode, char right2ByteCode)+ −
{+ −
+ −
SSettings* pSettings;+ −
pSettings = settingsGetPointer();+ −
+ −
if(!pSettings->FlipDisplay)+ −
{+ −
GFX_clean_area(&tMEscreen, 0, 800, 479-24,480);+ −
}+ −
else+ −
{+ −
GFX_clean_area(&tMEscreen, 0, 800, 0, 24);+ −
}+ −
+ −
char localtext[32];+ −
+ −
if(left2ByteCode)+ −
{+ −
localtext[0] = TXT_2BYTE;+ −
localtext[1] = left2ByteCode;+ −
localtext[2] = 0;+ −
+ −
write_content_simple(&tMEscreen, 0, 800, 479-24, &FontT24,localtext,CLUT_ButtonSurfaceScreen);+ −
}+ −
+ −
if(middle2ByteCode)+ −
{+ −
localtext[0] = '\001';+ −
localtext[1] = TXT_2BYTE;+ −
localtext[2] = middle2ByteCode;+ −
localtext[3] = 0;+ −
+ −
write_content_simple(&tMEscreen, 0, 800, 479-24, &FontT24,localtext,CLUT_ButtonSurfaceScreen);+ −
}+ −
+ −
if(right2ByteCode)+ −
{+ −
localtext[0] = '\002';+ −
localtext[1] = TXT_2BYTE;+ −
localtext[2] = right2ByteCode;+ −
localtext[3] = 0;+ −
+ −
write_content_simple(&tMEscreen, 0, 800, 479-24, &FontT24,localtext,CLUT_ButtonSurfaceScreen);+ −
}+ −
}+ −
+ −
+ −
+ −
void write_label_var(uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text)+ −
{+ −
GFX_DrawCfgWindow hgfx;+ −
+ −
if(XrightGimpStyle > 799)+ −
XrightGimpStyle = 799;+ −
if(XleftGimpStyle >= XrightGimpStyle)+ −
XleftGimpStyle = 0;+ −
if(YtopGimpStyle > 479)+ −
YtopGimpStyle = 479;+ −
hgfx.Image = &tMEscreen;+ −
hgfx.WindowNumberOfTextLines = 1;+ −
hgfx.WindowLineSpacing = 0;+ −
hgfx.WindowTab = 0;+ −
if(!settingsGetPointer()->FlipDisplay)+ −
{+ −
hgfx.WindowX0 = XleftGimpStyle;+ −
hgfx.WindowX1 = XrightGimpStyle;+ −
hgfx.WindowY1 = 479 - YtopGimpStyle;+ −
if(hgfx.WindowY1 < Font->height)+ −
hgfx.WindowY0 = 0;+ −
else+ −
hgfx.WindowY0 = hgfx.WindowY1 - Font->height;+ −
}+ −
else+ −
{+ −
hgfx.WindowX0 = 800 - XrightGimpStyle;+ −
hgfx.WindowX1 = 800 - XleftGimpStyle;+ −
hgfx.WindowY0 = YtopGimpStyle;+ −
if(hgfx.WindowY0 < Font->height)+ −
hgfx.WindowY1 = 0;+ −
else+ −
hgfx.WindowY1 = hgfx.WindowY0 + Font->height;+ −
}+ −
GFX_write_label(Font, &hgfx, text, 0);/*menuColor);*/+ −
}+ −
+ −
+ −
void write_content(uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text, uint8_t color)+ −
{+ −
GFX_DrawCfgWindow hgfx;+ −
+ −
if(XrightGimpStyle > 799)+ −
XrightGimpStyle = 799;+ −
if(XleftGimpStyle >= XrightGimpStyle)+ −
XleftGimpStyle = 0;+ −
if(YtopGimpStyle > 479)+ −
YtopGimpStyle = 479;+ −
hgfx.Image = &tMEscreen;+ −
hgfx.WindowNumberOfTextLines = 1;+ −
hgfx.WindowLineSpacing = 0;+ −
hgfx.WindowTab = 0;+ −
+ −
if(!settingsGetPointer()->FlipDisplay)+ −
{+ −
hgfx.WindowX0 = XleftGimpStyle;+ −
hgfx.WindowX1 = XrightGimpStyle;+ −
hgfx.WindowY1 = 479 - YtopGimpStyle;+ −
if(hgfx.WindowY1 < Font->height)+ −
hgfx.WindowY0 = 0;+ −
else+ −
hgfx.WindowY0 = hgfx.WindowY1 - Font->height;+ −
}+ −
else+ −
{+ −
hgfx.WindowX0 = 800 - XrightGimpStyle;+ −
hgfx.WindowX1 = 800 - XleftGimpStyle;+ −
hgfx.WindowY0 = YtopGimpStyle;+ −
if(hgfx.WindowY0 < Font->height)+ −
hgfx.WindowY1 = 0;+ −
else+ −
hgfx.WindowY1 = hgfx.WindowY0 + Font->height;+ −
}+ −
GFX_write_label(Font, &hgfx, text, color);+ −
}+ −
+ −
+ −
void write_label_fix(uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char textId)+ −
{+ −
char text[2];+ −
+ −
text[0] = textId;+ −
text[1] = 0;+ −
+ −
write_label_var(XleftGimpStyle, XrightGimpStyle, YtopGimpStyle, Font, text);+ −
}+ −
+ −
+ −
void clean_content(uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font)+ −
{+ −
GFX_DrawCfgWindow hgfx;+ −
+ −
if(XrightGimpStyle > 799)+ −
XrightGimpStyle = 799;+ −
if(XleftGimpStyle >= XrightGimpStyle)+ −
XleftGimpStyle = 0;+ −
if(YtopGimpStyle > 479)+ −
YtopGimpStyle = 479;+ −
hgfx.Image = &tMEscreen;+ −
if(!settingsGetPointer()->FlipDisplay)+ −
{+ −
hgfx.WindowX0 = XleftGimpStyle;+ −
hgfx.WindowX1 = XrightGimpStyle;+ −
hgfx.WindowY1 = 479 - YtopGimpStyle;+ −
if(hgfx.WindowY1 < Font->height)+ −
hgfx.WindowY0 = 0;+ −
else+ −
hgfx.WindowY0 = hgfx.WindowY1 - Font->height;+ −
}+ −
else+ −
{+ −
hgfx.WindowX0 = 800 - XrightGimpStyle;+ −
hgfx.WindowX1 = 800 - XleftGimpStyle;+ −
hgfx.WindowY0 = YtopGimpStyle;+ −
if(hgfx.WindowY0 < Font->height)+ −
hgfx.WindowY1 = 0;+ −
else+ −
hgfx.WindowY1 = hgfx.WindowY0 + Font->height;+ −
}+ −
GFX_clear_window_immediately(&hgfx);+ −
}+ −
+ −
+ −
/* Private functions ---------------------------------------------------------*/+ −
+ −
void draw_tMEdesign(void)+ −
{+ −
GFX_draw_header(&tMEscreen,menuColor);+ −
}+ −
+ −
void draw_tMEdesignSubUnselected(uint32_t *ppDestination)+ −
{+ −
union al88_u+ −
{+ −
uint8_t al8[2];+ −
uint16_t al88;+ −
};+ −
+ −
union al88_u color_seperator;+ −
union al88_u color_unselected;+ −
int i;+ −
+ −
color_seperator.al8[0] = CLUT_MenuLineUnselectedSeperator;+ −
color_unselected.al8[0] = CLUT_MenuLineUnselected;+ −
+ −
color_seperator.al8[1] = 0xFF;+ −
color_unselected.al8[1] = 0xFF;+ −
+ −
*(__IO uint16_t*)*ppDestination = color_seperator.al88;+ −
*ppDestination += 2;+ −
*(__IO uint16_t*)*ppDestination = color_seperator.al88;+ −
*ppDestination += 2;+ −
+ −
for(i = 61; i > 0; i--)+ −
{+ −
*(__IO uint16_t*)*ppDestination = color_unselected.al88;+ −
*ppDestination += 2;+ −
}+ −
+ −
*(__IO uint16_t*)*ppDestination = color_seperator.al88;+ −
*ppDestination += 2;+ −
*(__IO uint16_t*)*ppDestination = color_seperator.al88;+ −
*ppDestination += 2;+ −
}+ −
+ −
+ −
void draw_tMEdesignSubSelected(uint32_t *ppDestination)+ −
{+ −
union al88_u+ −
{+ −
uint8_t al8[2];+ −
uint16_t al88;+ −
};+ −
+ −
union al88_u color_selected;+ −
union al88_u color_seperator;+ −
int i;+ −
+ −
color_selected.al8[0] = CLUT_MenuEditLineSelected;+ −
color_selected.al8[1] = 0xFF;+ −
+ −
color_seperator.al8[0] = CLUT_MenuLineSelectedSeperator;+ −
color_seperator.al8[1] = 0xFF;+ −
+ −
*(__IO uint16_t*)*ppDestination = color_seperator.al88;+ −
*ppDestination += 2;+ −
*(__IO uint16_t*)*ppDestination = color_seperator.al88;+ −
*ppDestination += 2;+ −
+ −
for(i = 61; i > 0; i--)+ −
{+ −
*(__IO uint16_t*)*ppDestination = color_selected.al88;+ −
*ppDestination += 2;+ −
}+ −
+ −
*(__IO uint16_t*)*ppDestination = color_seperator.al88;+ −
*ppDestination += 2;+ −
*(__IO uint16_t*)*ppDestination = color_seperator.al88;+ −
*ppDestination += 2;+ −
}+ −
+ −
+ −
void draw_tMEdesignSubSelectedBorder(uint32_t *ppDestination)+ −
{+ −
union al88_u+ −
{+ −
uint8_t al8[2];+ −
uint16_t al88;+ −
};+ −
+ −
union al88_u color_selected_sides;+ −
+ −
int i;+ −
+ −
color_selected_sides.al8[0] = CLUT_MenuLineSelectedSides;+ −
color_selected_sides.al8[1] = 0xFF;+ −
+ −
for(i = 65; i > 0; i--)+ −
{+ −
*(__IO uint16_t*)*ppDestination = color_selected_sides.al88;+ −
*ppDestination += 2;+ −
}+ −
}+ −
+ −
+ −
void draw_tMEcursorNewDesign(void)+ −
{+ −
int i,j;+ −
uint32_t pDestination;+ −
+ −
pDestination = tMEcursorNew.FBStartAdress;+ −
+ −
for(j = 801; j > 0; j--)+ −
{+ −
for(i = 5; i > 0; i--)+ −
{+ −
draw_tMEdesignSubUnselected(&pDestination);+ −
}+ −
if((j > 787) || (j < 17))+ −
draw_tMEdesignSubSelectedBorder(&pDestination);+ −
else+ −
draw_tMEdesignSubSelected(&pDestination);+ −
}+ −
}+ −