diff options
Diffstat (limited to 'src/gui/interface/CopyTextButton.cpp')
| -rw-r--r-- | src/gui/interface/CopyTextButton.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/gui/interface/CopyTextButton.cpp b/src/gui/interface/CopyTextButton.cpp new file mode 100644 index 0000000..8bdc2df --- /dev/null +++ b/src/gui/interface/CopyTextButton.cpp @@ -0,0 +1,44 @@ +#include "CopyTextButton.h" +#include "Colour.h" +#include "gui/Style.h" + +namespace ui +{ + CopyTextButton::CopyTextButton(Point position, Point size, std::string buttonText, Label *copyTextLabel_): + Button(position, size, buttonText) + { + copyTextLabel = copyTextLabel_; + Appearance.HorizontalAlign = ui::Appearance::AlignCentre; + Appearance.VerticalAlign = ui::Appearance::AlignMiddle; + Appearance.TextInactive = ui::Colour(150, 150, 150); + Appearance.TextActive = ui::Colour(230, 255, 230); + Appearance.BorderActive = ui::Colour(230, 255, 230); + Appearance.BackgroundActive = style::Colour::InactiveBackground; + } + + void CopyTextButton::OnMouseClick(int x, int y, unsigned int button) + { + ui::Button::OnMouseClick(x, y, button); + ClipboardPush((char*)ButtonText.c_str()); + + int textWidth = Graphics::textwidth("Copied!"); + copyTextLabel->SetText("Copied!"); + + Appearance.TextInactive = ui::Colour(180, 230, 180); + Appearance.TextHover = ui::Colour(180, 230, 180); + Appearance.BorderInactive = ui::Colour(180, 230, 180); + Appearance.BorderHover = ui::Colour(180, 230, 180); + } + + void CopyTextButton::OnMouseEnter(int x, int y) + { + ui::Button::OnMouseEnter(x, y); + copyTextLabel->SetTextColour(ui::Colour(230, 230, 230)); + } + + void CopyTextButton::OnMouseLeave(int x, int y) + { + ui::Button::OnMouseLeave(x, y); + copyTextLabel->SetTextColour(ui::Colour(150, 150, 150)); + } +} /* namespace ui */ |
