@@ -137,23 +137,36 @@ void ButtonWithAdjustment::drawToScreen(SDL_Renderer* target) const {
137137 // Draw left adjustment button (down arrow)
138138 int adjustSize = getAdjustButtonSize ();
139139 int leftX = x - adjustSize - 10 ;
140- int leftY = y + (standardButton.ysize - adjustSize) / 2 ; // Vertically center the small button
141- globalData.spriteHolder ->GetSprite (" menu_unmarked" ).DrawScaled (globalData.screen , SDL_GetTicks (), leftX, leftY, adjustSize, adjustSize, &globalData.logicalResize );
142- standardButton.getLabel (" \u25c0 " , false )->Draw (globalData.screen , leftX+adjustSize/2 , leftY+adjustSize/2 ,
140+ int leftY = y;
141+ Uint32 currentTime = SDL_GetTicks ();
142+ bool leftMarked = (currentTime - leftButtonMarkTime) < MARK_DURATION;
143+ if (leftMarked) {
144+ globalData.spriteHolder ->GetSprite (" menu_marked" ).DrawScaled (globalData.screen , SDL_GetTicks (), leftX, leftY, adjustSize, adjustSize, &globalData.logicalResize );
145+ }
146+ else {
147+ globalData.spriteHolder ->GetSprite (" menu_unmarked" ).DrawScaled (globalData.screen , SDL_GetTicks (), leftX, leftY, adjustSize, adjustSize, &globalData.logicalResize );
148+ }
149+ standardButton.getLabel (" \u25c0 " , leftMarked)->Draw (globalData.screen , leftX+adjustSize/2 , leftY+adjustSize/2 ,
143150 sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::center, &globalData.logicalResize );
144151
145152 // Draw right adjustment button (up arrow)
146153 int rightX = x + standardButton.xsize + 10 ;
147- int rightY = y + (standardButton.ysize - adjustSize) / 2 ; // Vertically center the small button
148- globalData.spriteHolder ->GetSprite (" menu_unmarked" ).DrawScaled (globalData.screen , SDL_GetTicks (), rightX, rightY, adjustSize, adjustSize, &globalData.logicalResize );
149- standardButton.getLabel (" \u25b6 " , false )->Draw (globalData.screen , rightX+adjustSize/2 , rightY+adjustSize/2 ,
154+ int rightY = y;
155+ bool rightMarked = (currentTime - rightButtonMarkTime) < MARK_DURATION;
156+ if (rightMarked) {
157+ globalData.spriteHolder ->GetSprite (" menu_marked" ).DrawScaled (globalData.screen , SDL_GetTicks (), rightX, rightY, adjustSize, adjustSize, &globalData.logicalResize );
158+ }
159+ else {
160+ globalData.spriteHolder ->GetSprite (" menu_unmarked" ).DrawScaled (globalData.screen , SDL_GetTicks (), rightX, rightY, adjustSize, adjustSize, &globalData.logicalResize );
161+ }
162+ standardButton.getLabel (" \u25b6 " , rightMarked)->Draw (globalData.screen , rightX+adjustSize/2 , rightY+adjustSize/2 ,
150163 sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::center, &globalData.logicalResize );
151164}
152165
153166bool ButtonWithAdjustment::isClickedAdjustLeft (int mx, int my) const {
154167 int adjustSize = getAdjustButtonSize ();
155168 int leftX = x - adjustSize - 10 ;
156- int leftY = y + (standardButton. ysize - adjustSize) / 2 ;
169+ int leftY = y;
157170 if (mx >= leftX && my >= leftY && mx <= leftX + adjustSize && my <= leftY + adjustSize) {
158171 return true ;
159172 }
@@ -163,7 +176,7 @@ bool ButtonWithAdjustment::isClickedAdjustLeft(int mx, int my) const {
163176bool ButtonWithAdjustment::isClickedAdjustRight (int mx, int my) const {
164177 int adjustSize = getAdjustButtonSize ();
165178 int rightX = x + standardButton.xsize + 10 ;
166- int rightY = y + (standardButton. ysize - adjustSize) / 2 ;
179+ int rightY = y;
167180 if (mx >= rightX && my >= rightY && mx <= rightX + adjustSize && my <= rightY + adjustSize) {
168181 return true ;
169182 }
0 commit comments