@@ -236,53 +236,62 @@ end
236236-- btnStartX is the left edge where the first button (Buy) should appear.
237237-- copyBtnW, copyBtnH, buyBtnW are button dimensions (passed from LAYOUT by caller).
238238-- Returns copyHovered, copyUseHovered, buyHovered booleans.
239- function M .drawCopyButtons (cursorX , cursorY , btnStartX , btnY , slotMissing , copyBtnW , copyBtnH , buyBtnW )
240- local btnW = copyBtnW
241- local btnH = copyBtnH
242- local buyW = buyBtnW
239+ function M .drawCopyButtons (cursorX , cursorY , btnStartX , btnY , slotMissing , copyBtnW , copyBtnH , buyBtnW , copyUseBtnW )
240+ local btnW = copyBtnW
241+ local btnH = copyBtnH
242+ local buyW = buyBtnW
243+ local copyUseW = copyUseBtnW
243244 local btn3X = btnStartX
244245 local btn1X = btn3X + buyW + 4
245246 local btn2X = btn1X + btnW + 4
246247
248+ local function drawBtn (x , w , hover , label )
249+ local pressed = hover and IsKeyDown (" LEFTBUTTON" )
250+ -- Outer border
251+ if hover then
252+ SetDrawColor (1 , 1 , 1 )
253+ else
254+ SetDrawColor (0.5 , 0.5 , 0.5 )
255+ end
256+ DrawImage (nil , x , btnY , w , btnH )
257+ -- Inner fill
258+ if pressed then
259+ SetDrawColor (0.5 , 0.5 , 0.5 )
260+ elseif hover then
261+ SetDrawColor (0.33 , 0.33 , 0.33 )
262+ else
263+ SetDrawColor (0 , 0 , 0 )
264+ end
265+ DrawImage (nil , x + 1 , btnY + 1 , w - 2 , btnH - 2 )
266+ -- Label
267+ SetDrawColor (1 , 1 , 1 )
268+ DrawString (x + w / 2 , btnY + 1 , " CENTER_X" , 14 , " VAR" , label )
269+ end
270+
247271 -- "Buy" button
248272 local b3Hover = cursorX >= btn3X and cursorX < btn3X + buyW
249273 and cursorY >= btnY and cursorY < btnY + btnH
250- SetDrawColor (b3Hover and 0.5 or 0.35 , b3Hover and 0.5 or 0.35 , b3Hover and 0.5 or 0.35 )
251- DrawImage (nil , btn3X , btnY , buyW , btnH )
252- SetDrawColor (0.1 , 0.1 , 0.1 )
253- DrawImage (nil , btn3X + 1 , btnY + 1 , buyW - 2 , btnH - 2 )
254- SetDrawColor (1 , 1 , 1 )
255- DrawString (btn3X + buyW / 2 , btnY + 1 , " CENTER_X" , 14 , " VAR" , " ^7Buy" )
274+ drawBtn (btn3X , buyW , b3Hover , " ^7Buy" )
256275
257276 -- "Copy" button
258277 local b1Hover = cursorX >= btn1X and cursorX < btn1X + btnW
259278 and cursorY >= btnY and cursorY < btnY + btnH
260- SetDrawColor (b1Hover and 0.5 or 0.35 , b1Hover and 0.5 or 0.35 , b1Hover and 0.5 or 0.35 )
261- DrawImage (nil , btn1X , btnY , btnW , btnH )
262- SetDrawColor (0.1 , 0.1 , 0.1 )
263- DrawImage (nil , btn1X + 1 , btnY + 1 , btnW - 2 , btnH - 2 )
264- SetDrawColor (1 , 1 , 1 )
265- DrawString (btn1X + btnW / 2 , btnY + 1 , " CENTER_X" , 14 , " VAR" , " ^7Copy" )
279+ drawBtn (btn1X , btnW , b1Hover , " ^7Copy" )
266280
267281 local b2Hover
268282 if slotMissing then
269283 -- Show "Missing slot" label instead of Copy+Use button
270284 SetDrawColor (1 , 1 , 1 )
271- DrawString (btn2X + btnW / 2 , btnY + 1 , " CENTER_X" , 14 , " VAR" , " ^xBBBBBBMissing slot" )
285+ DrawString (btn2X + copyUseW / 2 , btnY + 1 , " CENTER_X" , 14 , " VAR" , " ^xBBBBBBMissing slot" )
272286 b2Hover = false
273287 else
274288 -- "Copy+Use" button
275- b2Hover = cursorX >= btn2X and cursorX < btn2X + btnW
289+ b2Hover = cursorX >= btn2X and cursorX < btn2X + copyUseW
276290 and cursorY >= btnY and cursorY < btnY + btnH
277- SetDrawColor (b2Hover and 0.5 or 0.35 , b2Hover and 0.5 or 0.35 , b2Hover and 0.5 or 0.35 )
278- DrawImage (nil , btn2X , btnY , btnW , btnH )
279- SetDrawColor (0.1 , 0.1 , 0.1 )
280- DrawImage (nil , btn2X + 1 , btnY + 1 , btnW - 2 , btnH - 2 )
281- SetDrawColor (1 , 1 , 1 )
282- DrawString (btn2X + btnW / 2 , btnY + 1 , " CENTER_X" , 14 , " VAR" , " ^7Copy+Use" )
291+ drawBtn (btn2X , copyUseW , b2Hover , " ^7Copy+Use" )
283292 end
284293
285- return b1Hover , b2Hover , b3Hover , btn2X , btnY , btnW , btnH
294+ return b1Hover , b2Hover , b3Hover , btn2X , btnY , copyUseW , btnH
286295end
287296
288297-- Helper: fit a colored item name within maxW pixels, truncating with "..." if needed.
@@ -311,7 +320,7 @@ local ITEM_BOX_H = 20
311320
312321function M .drawCompactSlotRow (drawY , slotLabel , pItem , cItem ,
313322 colWidth , cursorX , cursorY , maxLabelW , primaryItemsTab , compareItemsTab , pWarn , cWarn , slotMissing ,
314- copyBtnW , copyBtnH , buyBtnW )
323+ copyBtnW , copyBtnH , buyBtnW , copyUseBtnW )
315324
316325 local pName = pItem and pItem .name or " (empty)"
317326 local cName = cItem and cItem .name or " (empty)"
@@ -368,7 +377,7 @@ function M.drawCompactSlotRow(drawY, slotLabel, pItem, cItem,
368377 if cItem then
369378 local btnStartX = cBoxX + cBoxW + 6
370379 b1Hover , b2Hover , b3Hover , b2X , b2Y , b2W , b2H =
371- M .drawCopyButtons (cursorX , cursorY , btnStartX , drawY + 1 , slotMissing , copyBtnW , copyBtnH , buyBtnW )
380+ M .drawCopyButtons (cursorX , cursorY , btnStartX , drawY + 1 , slotMissing , copyBtnW , copyBtnH , buyBtnW , copyUseBtnW )
372381 end
373382
374383 -- Determine hovered item and tooltip anchor position
0 commit comments