Remove some explicit string management.

This commit is contained in:
2025-03-03 13:44:42 -05:00
parent 4616cbac27
commit a3ae87e90b
2 changed files with 14 additions and 18 deletions

View File

@ -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 );
}

View File

@ -1,6 +1,8 @@
#ifndef __TIPWIN_HH__
#define __TIPWIN_HH__
#include <string>
#include <FL/Fl_Menu_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Input.H>
@ -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);
};