Skip to content

Latest commit

 

History

History
45 lines (33 loc) · 1.18 KB

confirm-button.md

File metadata and controls

45 lines (33 loc) · 1.18 KB

Confirm Button Widget

<termox/widget/widgets/confirm_button.hpp>

Button with a two-step press process, confirming the initial click with via a second display.

class Confirm_button : public STuple<Button, detail::Confirm_page> {
   public:
    struct Parameters {
        Glyph_string label        = U"";
        Glyph_string confirm_text = U"Confirm";
    };

    // Emitted once confirmation has been made.
    sl::Signal<void()> pressed;

    Button& main_btn                   = this->get<0>();
    detail::Confirm_page& confirm_page = this->get<1>();

   public:
    // Construct a Button with \p label and corresponding \p confirm_text.
    Confirm_button(Glyph_string label        = U"",
                   Glyph_string confirm_text = U"Confirm");

    Confirm_button(Parameters p);
};

namespace ox::detail {

class Confirm_page : public HArray<Button, 2> {
   public:
    struct Parameters { Glyph_string confirm_text; };

    Button& confirm_btn = this->get<0>();
    Button& exit_btn    = this->get<1>();

   public:
    Confirm_page(Glyph_string confirm_text);
    Confirm_page(Parameters);
};

}  // namespace ox::detail