text_field_view.h
1/*
2** ClanLib SDK
3** Copyright (c) 1997-2020 The ClanLib Team
4**
5** This software is provided 'as-is', without any express or implied
6** warranty. In no event will the authors be held liable for any damages
7** arising from the use of this software.
8**
9** Permission is granted to anyone to use this software for any purpose,
10** including commercial applications, and to alter it and redistribute it
11** freely, subject to the following restrictions:
12**
13** 1. The origin of this software must not be misrepresented; you must not
14** claim that you wrote the original software. If you use this software
15** in a product, an acknowledgment in the product documentation would be
16** appreciated but is not required.
17** 2. Altered source versions must be plainly marked as such, and must not be
18** misrepresented as being the original software.
19** 3. This notice may not be removed or altered from any source distribution.
20**
21** Note: Some of the libraries ClanLib may link to may have additional
22** requirements or restrictions.
23**
24** File Author(s):
25**
26** Magnus Norddahl
27*/
28
29#pragma once
30
31#include "../View/view.h"
32#include "label_view.h"
33
34namespace clan
35{
36 class Font;
37 class TextFieldViewImpl;
38
39 class TextFieldView : public View
40 {
41 public:
43 ~TextFieldView() override;
44
45 int preferred_size() const;
46 void set_preferred_size(int num_characters);
47
48 std::string text() const;
49 void set_text(const std::string &value);
50
51 std::string placeholder() const;
52 void set_placeholder(const std::string &value);
53
56
57 bool is_read_only() const;
58 void set_read_only(bool value = true);
59
60 bool is_lowercase() const;
61 void set_lowercase(bool value = true);
62
63 bool is_uppercase() const;
64 void set_uppercase(bool value = true);
65
66 bool is_password_mode() const;
67 void set_password_mode(bool value = true);
68
69 int max_length() const;
71
72 std::string selection() const;
73 size_t selection_start() const;
74 size_t selection_length() const;
75 void set_selection(size_t pos, size_t length);
78 void select_all();
80
81 int cursor_pos() const;
82 void set_cursor_pos(int pos);
84
85 int text_int() const;
86 void set_text(int number);
87
88 float text_float() const;
89 void set_text(float number, int num_decimal_places = 6);
90
91 void set_numeric_mode(bool enable = true, bool decimals = false);
92 void set_input_mask(const std::string &mask);
93 void set_decimal_character(const std::string &decimal_char);
94
99
102
103 protected:
104
105 void render_content(Canvas &canvas) override;
107 float calculate_preferred_height(Canvas &canvas, float width) override;
108 float calculate_first_baseline_offset(Canvas &canvas, float width) override;
109 float calculate_last_baseline_offset(Canvas &canvas, float width) override;
110
111 private:
112 std::unique_ptr<TextFieldViewImpl> impl;
113 };
114}
2D Graphics Canvas
Definition canvas.h:72
Keyboard key event.
Definition key_event.h:48
Definition signal.h:105
Definition text_field_view.h:40
bool is_lowercase() const
void set_text_alignment(TextAlignment value)
void set_text(const std::string &value)
bool is_uppercase() const
bool is_password_mode() const
Signal< void(KeyEvent &)> & sig_after_edit_changed()
void set_placeholder(const std::string &value)
size_t selection_start() const
void set_max_length(int length)
void set_uppercase(bool value=true)
int text_int() const
size_t selection_length() const
void set_select_all_on_focus_gain(bool value)
std::string text() const
void set_lowercase(bool value=true)
void set_preferred_size(int num_characters)
~TextFieldView() override
float calculate_preferred_height(Canvas &canvas, float width) override
Calculates the preferred height of this view.
bool is_read_only() const
std::string placeholder() const
std::string selection() const
void set_read_only(bool value=true)
float calculate_first_baseline_offset(Canvas &canvas, float width) override
Calculates the offset to the first baseline.
void set_cursor_drawing_enabled(bool value)
void set_selection(size_t pos, size_t length)
void set_decimal_character(const std::string &decimal_char)
void set_numeric_mode(bool enable=true, bool decimals=false)
void needs_render_delayed()
Update yourself with draw_without_layout() and with delay to prevent too frequent calls.
Signal< void()> & sig_selection_changed()
TextAlignment text_alignment() const
float calculate_last_baseline_offset(Canvas &canvas, float width) override
Calculates the offset to the last baseline.
void set_text(float number, int num_decimal_places=6)
int cursor_pos() const
Signal< void()> & sig_enter_pressed()
void set_input_mask(const std::string &mask)
void set_cursor_pos(int pos)
Signal< void(KeyEvent &)> & sig_before_edit_changed()
float text_float() const
void set_password_mode(bool value=true)
int max_length() const
int preferred_size() const
float calculate_preferred_width(Canvas &canvas) override
Calculates the preferred width of this view.
void render_content(Canvas &canvas) override
Renders the content of a view.
void set_text(int number)
View for an area of the user interface.
Definition view.h:66
Canvas canvas() const
Definition clanapp.h:36
@ length
value is a keyword
TextAlignment
Definition label_view.h:39