diff --git a/src/frontend.cpp b/src/frontend.cpp index 4a2c746b977..0039da91d1d 100644 --- a/src/frontend.cpp +++ b/src/frontend.cpp @@ -3703,13 +3703,13 @@ void addText(UDWORD id, UDWORD PosX, UDWORD PosY, const char *txt, UDWORD formID } // //////////////////////////////////////////////////////////////////////////// -W_LABEL *addSideText(const std::shared_ptr &psScreen, UDWORD formId, UDWORD id, UDWORD PosX, UDWORD PosY, const char *txt) +std::shared_ptr addSideText(WIDGET* psParent, UDWORD id, UDWORD PosX, UDWORD PosY, const char *txt) { - ASSERT_OR_RETURN(nullptr, psScreen != nullptr, "Invalid screen pointer"); + ASSERT_OR_RETURN(nullptr, psParent != nullptr, "Invalid parent"); W_LABINIT sLabInit; - sLabInit.formID = formId; + sLabInit.formID = 0; sLabInit.id = id; sLabInit.x = (short) PosX; sLabInit.y = (short) PosY; @@ -3727,7 +3727,17 @@ W_LABEL *addSideText(const std::shared_ptr &psScreen, UDWORD formId, U psWidget->pUserData = nullptr; }; - return widgAddLabel(psScreen, &sLabInit); + auto psLabel = std::make_shared(&sLabInit); + psParent->attach(psLabel); + return psLabel; +} + +W_LABEL *addSideText(const std::shared_ptr &psScreen, UDWORD formId, UDWORD id, UDWORD PosX, UDWORD PosY, const char *txt) +{ + ASSERT_OR_RETURN(nullptr, psScreen != nullptr, "Invalid screen pointer"); + + WIDGET *psParent = widgGetFromID(psScreen, formId); + return addSideText(psParent, id, PosX, PosY, txt).get(); } W_LABEL *addSideText(UDWORD id, UDWORD PosX, UDWORD PosY, const char *txt) diff --git a/src/frontend.h b/src/frontend.h index 9d5c6f0c562..d5dc942b778 100644 --- a/src/frontend.h +++ b/src/frontend.h @@ -90,6 +90,7 @@ void addBottomForm(bool wide = false); W_FORM *addBackdrop(); W_FORM *addBackdrop(const std::shared_ptr &screen); void addTextButton(UDWORD id, UDWORD PosX, UDWORD PosY, const std::string &txt, unsigned int style); +std::shared_ptr addSideText(WIDGET* psParent, UDWORD id, UDWORD PosX, UDWORD PosY, const char *txt); W_LABEL *addSideText(UDWORD id, UDWORD PosX, UDWORD PosY, const char *txt); W_LABEL *addSideText(const std::shared_ptr &screen, UDWORD formId, UDWORD id, UDWORD PosX, UDWORD PosY, const char *txt); void addFESlider(UDWORD id, UDWORD parent, UDWORD x, UDWORD y, UDWORD stops, UDWORD pos);