@@ -97,16 +97,43 @@ namespace Menu {
9797 }
9898
9999 void setCursor (idx_t x,idx_t y,idx_t panelNr=0 ) override {
100+ // _trace(Serial<<"setCursor"<<endl);
100101 const panel p=panels[panelNr];
101102 gfx.tx = (p.x +x)*resX+fontMarginX + offsetX;
102103 gfx.ty = (p.y +y+1 )*resY-fontMarginY + offsetY;
103104 }
104105
106+ idx_t startCursor (navRoot& root,idx_t x,idx_t y,bool charEdit,idx_t panelNr) override {
107+ if (charEdit) {
108+ // rect(panelNr, x-1, y, 1, 1, bgColor, false, enabledStatus, false);
109+ const panel p=panels[panelNr];
110+ gfx.drawBox ((p.x +x)*resX + offsetX +fontMarginX,(p.y +y)*resY+ offsetY -fontMarginY,resX,resY);
111+ setColor (fgColor,false ,enabledStatus,false );
112+ }/* else
113+ box(panelNr, x, y, 1, 1, bgColor, false, enabledStatus, false);*/
114+ return 0 ;
115+ }
116+
117+ // idx_t endCursor(navRoot& root,idx_t x,idx_t y,bool charEdit,idx_t panelNr) override {
118+ // setColor(fgColor,true,enabledStatus,true);return 0;
119+ // }
120+
121+ idx_t editCursor (navRoot& root,idx_t x,idx_t y,bool editing,bool charEdit,idx_t panelNr=0 ) override {
122+ if (editing) {
123+ _trace (Serial<<" editCursor" <<endl);
124+ // box(panelNr,x-1,y);
125+ const panel p=panels[panelNr];
126+ gfx.drawFrame ((x+p.x -1 )*resX + offsetX + fontMarginX-1 ,(p.y +y)*resY + offsetY - fontMarginY+2 ,resX+1 ,resY);
127+ }
128+ return 0 ;
129+ }
130+
105131 void drawCursor (idx_t ln,bool selected,status stat,bool edit=false ,idx_t panelNr=0 ) override {
132+ // _trace(Serial<<"drawCursor"<<endl);
106133 const panel p=panels[panelNr];
107134 // gfxOut::drawCursor(ln,selected,stat);
108135 setColor (cursorColor,selected,stat);
109- gfx.drawFrame (p.x *resX + offsetX /* + fontMarginX*/ ,(p.y +ln)*resY + offsetY /* - fontMarginY*/ ,maxX ()*resX ,resY);
136+ gfx.drawFrame (p.x *resX + offsetX /* + fontMarginX*/ ,(p.y +ln)*resY + offsetY /* + fontMarginY*/ ,maxX ()*resX ,resY);
110137 }
111138 idx_t printRaw (const char * at,idx_t len) override {
112139 trace (Serial<<" u8g2Out::printRaw" <<endl);
0 commit comments