diff --git a/src/tipwin.cc b/src/tipwin.cc index 6183ded..8dd6ebb 100644 --- a/src/tipwin.cc +++ b/src/tipwin.cc @@ -133,20 +133,18 @@ TipWinButton::TipWinButton(int x, int y, int w, int h, const char *l) : Fl_Button(x, y, w, h, l) { tipwin = my_tipwin(); - mytooltip = dStrdup("empty"); } TipWinButton::~TipWinButton(void) { tipwin->cancel(this); // cancel tooltip if shown - free(mytooltip); } int TipWinButton::handle(int e) { switch (e) { case FL_ENTER: - tipwin->value(mytooltip); + tipwin->value(mytooltip.c_str()); tipwin->do_show(this); break; case FL_PUSH: // push mouse @@ -159,10 +157,9 @@ int TipWinButton::handle(int e) return (Fl_Button::handle(e)); } -void TipWinButton::set_tooltip(const char *s) +void TipWinButton::set_tooltip(std::string s) { - free(mytooltip); - mytooltip = dStrdup(s); + mytooltip= std::move( s ); } @@ -210,20 +207,18 @@ TipWinInput::TipWinInput (int x, int y, int w, int h, const char *l) : Fl_Input(x,y,w,h,l) { tipwin = my_tipwin(); - mytooltip = dStrdup("empty"); } -TipWinInput::~TipWinInput(void) +TipWinInput::~TipWinInput() { tipwin->cancel(this); // cancel tooltip if shown - free(mytooltip); } int TipWinInput::handle(int e) { switch (e) { case FL_ENTER: - tipwin->value(mytooltip); + tipwin->value(mytooltip.c_str()); tipwin->do_show(this); break; case FL_PUSH: // push mouse @@ -237,9 +232,8 @@ int TipWinInput::handle(int e) return (Fl_Input::handle(e)); } -void TipWinInput::set_tooltip(const char *s) +void TipWinInput::set_tooltip(std::string s) { - free(mytooltip); - mytooltip = dStrdup(s); + mytooltip = std::move( s ); } diff --git a/src/tipwin.hh b/src/tipwin.hh index bd9d444..771d9de 100644 --- a/src/tipwin.hh +++ b/src/tipwin.hh @@ -1,6 +1,8 @@ #ifndef __TIPWIN_HH__ #define __TIPWIN_HH__ +#include + #include #include #include @@ -33,14 +35,14 @@ extern TipWin *my_tipwin(void); * A Button sharing a custom tooltip window */ class TipWinButton : public Fl_Button { - char *mytooltip; + std::string mytooltip= "empty"; TipWin *tipwin; public: TipWinButton(int x, int y, int w, int h, const char *l = 0); ~TipWinButton(); virtual int handle(int e); - void set_tooltip(const char *s); + void set_tooltip(std::string s); }; /** @@ -59,14 +61,14 @@ public: * An Input with custom tooltip window */ class TipWinInput : public Fl_Input { - char *mytooltip; + std::string mytooltip= "empty"; TipWin *tipwin; public: TipWinInput (int x, int y, int w, int h, const char* l=0); - ~TipWinInput(void); + ~TipWinInput(); virtual int handle(int e); - void set_tooltip(const char *s); + void set_tooltip(std::string s); };