Skip to content

Commit

Permalink
Move to_string type functions out of library and into termcaps tool e…
Browse files Browse the repository at this point in the history
…xecutable
  • Loading branch information
a-n-t-h-o-n-y committed Jan 3, 2025
1 parent b60b7fa commit 1dc2738
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 106 deletions.
2 changes: 0 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,7 @@ add_library(escape STATIC
src/io.cpp
src/terminfo.cpp
src/terminal.cpp
src/trait.cpp
src/sequence.cpp
src/mouse.cpp
src/detail/is_urxvt.cpp
src/detail/transcode.cpp
src/detail/console_file.cpp
Expand Down
42 changes: 13 additions & 29 deletions include/esc/mouse.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,18 @@ struct Mouse {
* Standard mouse buttons.
*/
enum class Button : std::uint16_t {
Left = 0b00000000,
Middle = 0b00000001,
Right = 0b00000010,
None = 0b00000011,
ScrollUp = 0b01000000,
Left = 0b00000000,
Middle = 0b00000001,
Right = 0b00000010,
None = 0b00000011,
ScrollUp = 0b01000000,
ScrollDown = 0b01000001,
Six = 0b01000010,
Seven = 0b01000011,
Eight = 0b10000000,
Nine = 0b10000001,
Ten = 0b10000010,
Eleven = 0b10000011,
Six = 0b01000010,
Seven = 0b01000011,
Eight = 0b10000000,
Nine = 0b10000001,
Ten = 0b10000010,
Eleven = 0b10000011,
};

/**
Expand All @@ -44,19 +44,11 @@ struct Mouse {
*/
struct Modifiers {
bool shift = false;
bool ctrl = false;
bool alt = false;
bool ctrl = false;
bool alt = false;
} modifiers = {};
};

/**
* Return a string display of the given Mouse::Button enum.
* @param b The Mouse::Button to convert to a string.
* @return A string representation of the given Mouse::Button.
* @throws std::runtime_error if the given Mouse::Button is not a valid enum.
*/
[[nodiscard]] auto to_string(Mouse::Button b) -> std::string;

/**
* Input modes for the Mouse.
* @details Off: No Mouse Events are generated.
Expand All @@ -66,12 +58,4 @@ struct Mouse {
*/
enum class MouseMode { Off, Basic, Drag, Move };

/**
* Return a string display of the given MouseMode enum.
* @param mm The MouseMode to convert to a string.
* @return A string representation of the given MouseMode.
* @throws std::runtime_error if the given MouseMode is not a valid enum.
*/
[[nodiscard]] auto to_string(MouseMode mm) -> std::string;

} // namespace esc
8 changes: 0 additions & 8 deletions include/esc/trait.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,6 @@ enum class Trait : std::uint16_t {
Double_underline = 1 << 9,
};

/**
* Return Trait \p t as a descriptive string.
* @param t The Trait to convert to a string.
* @return The string representation of the Trait.
* @throws std::runtime_error if t is not a valid Trait.
*/
[[nodiscard]] auto to_string(Trait t) -> std::string;

/**
* Mask type for the Trait flag to represent multiple Trait objects.
*/
Expand Down
41 changes: 0 additions & 41 deletions src/mouse.cpp

This file was deleted.

26 changes: 0 additions & 26 deletions src/trait.cpp

This file was deleted.

53 changes: 53 additions & 0 deletions tools/termcaps.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,59 @@

using namespace esc;

[[nodiscard]] auto to_string(Mouse::Button b) -> std::string
{
auto const btn = std::string{"Mouse::Button::"};
switch (b) {
case Mouse::Button::Left: return btn + "Left";
case Mouse::Button::Middle: return btn + "Middle";
case Mouse::Button::Right: return btn + "Right";
case Mouse::Button::None: return btn + "None";
case Mouse::Button::ScrollUp: return btn + "ScrollUp";
case Mouse::Button::ScrollDown: return btn + "ScrollDown";
case Mouse::Button::Six: return btn + "Six";
case Mouse::Button::Seven: return btn + "Seven";
case Mouse::Button::Eight: return btn + "Eight";
case Mouse::Button::Nine: return btn + "Nine";
case Mouse::Button::Ten: return btn + "Ten";
case Mouse::Button::Eleven: return btn + "Eleven";
default: break;
}
throw std::runtime_error{"Invalid Mouse::Button enum value: " +
std::to_string(static_cast<std::uint16_t>(b))};
}

[[nodiscard]] auto to_string(MouseMode mm) -> std::string
{
switch (mm) {
case MouseMode::Off: return "MouseMode::Off";
case MouseMode::Basic: return "MouseMode::Basic";
case MouseMode::Drag: return "MouseMode::Drag";
case MouseMode::Move: return "MouseMode::Move";
default: break;
}
throw std::runtime_error{"to_string(MouseMode): Bad Enum Value."};
}

[[nodiscard]] auto to_string(Trait t) -> std::string
{
switch (t) {
case Trait::None: return "None";
case Trait::Standout: return "Standout";
case Trait::Bold: return "Bold";
case Trait::Dim: return "Dim";
case Trait::Italic: return "Italic";
case Trait::Underline: return "Underline";
case Trait::Blink: return "Blink";
case Trait::Inverse: return "Inverse";
case Trait::Invisible: return "Invisible";
case Trait::Crossed_out: return "Crossed_out";
case Trait::Double_underline: return "Double_underline";
default: break;
}
throw std::runtime_error{"to_string(Trait): Invalid Trait."};
}

// clang-format off
[[nodiscard]] auto title_display(Point offset) -> std::string
{
Expand Down

0 comments on commit 1dc2738

Please sign in to comment.