text_field_view.h Source File - ClanLib SDK
Description: text_field_view.h Source File

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:
42 TextFieldView();
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
54 TextAlignment text_alignment() const;
55 void set_text_alignment(TextAlignment value);
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;
70 void set_max_length(int length);
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);
76 void clear_selection();
77 void delete_selected_text();
78 void select_all();
79 void set_select_all_on_focus_gain(bool value);
80
81 int cursor_pos() const;
82 void set_cursor_pos(int pos);
83 void set_cursor_drawing_enabled(bool value);
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
95 Signal<void(KeyEvent &)> &sig_before_edit_changed();
96 Signal<void(KeyEvent &)> &sig_after_edit_changed();
97 Signal<void()> &sig_selection_changed();
98 Signal<void()> &sig_enter_pressed();
99
101 void needs_render_delayed();
102
103 protected:
104
105 void render_content(Canvas &canvas) override;
106 float calculate_preferred_width(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}
clan::Canvas
2D Graphics Canvas
Definition canvas.h:72
clan::Font
Font class.
Definition font.h:60
clan::KeyEvent
Keyboard key event.
Definition key_event.h:48
clan::Signal
Definition signal.h:105
clan::TextFieldView::is_lowercase
bool is_lowercase() const
clan::TextFieldView::set_text_alignment
void set_text_alignment(TextAlignment value)
clan::TextFieldView::set_text
void set_text(const std::string &value)
clan::TextFieldView::is_uppercase
bool is_uppercase() const
clan::TextFieldView::is_password_mode
bool is_password_mode() const
clan::TextFieldView::sig_after_edit_changed
Signal< void(KeyEvent &)> & sig_after_edit_changed()
clan::TextFieldView::select_all
void select_all()
clan::TextFieldView::set_placeholder
void set_placeholder(const std::string &value)
clan::TextFieldView::selection_start
size_t selection_start() const
clan::TextFieldView::set_max_length
void set_max_length(int length)
clan::TextFieldView::set_uppercase
void set_uppercase(bool value=true)
clan::TextFieldView::text_int
int text_int() const
clan::TextFieldView::selection_length
size_t selection_length() const
clan::TextFieldView::set_select_all_on_focus_gain
void set_select_all_on_focus_gain(bool value)
clan::TextFieldView::text
std::string text() const
clan::TextFieldView::set_lowercase
void set_lowercase(bool value=true)
clan::TextFieldView::set_preferred_size
void set_preferred_size(int num_characters)
clan::TextFieldView::~TextFieldView
~TextFieldView() override
clan::TextFieldView::calculate_preferred_height
float calculate_preferred_height(Canvas &canvas, float width) override
Calculates the preferred height of this view.
clan::TextFieldView::is_read_only
bool is_read_only() const
clan::TextFieldView::placeholder
std::string placeholder() const
clan::TextFieldView::selection
std::string selection() const
clan::TextFieldView::set_read_only
void set_read_only(bool value=true)
clan::TextFieldView::calculate_first_baseline_offset
float calculate_first_baseline_offset(Canvas &canvas, float width) override
Calculates the offset to the first baseline.
clan::TextFieldView::set_cursor_drawing_enabled
void set_cursor_drawing_enabled(bool value)
clan::TextFieldView::delete_selected_text
void delete_selected_text()
clan::TextFieldView::set_selection
void set_selection(size_t pos, size_t length)
clan::TextFieldView::set_decimal_character
void set_decimal_character(const std::string &decimal_char)
clan::TextFieldView::set_numeric_mode
void set_numeric_mode(bool enable=true, bool decimals=false)
clan::TextFieldView::needs_render_delayed
void needs_render_delayed()
Update yourself with draw_without_layout() and with delay to prevent too frequent calls.
clan::TextFieldView::sig_selection_changed
Signal< void()> & sig_selection_changed()
clan::TextFieldView::text_alignment
TextAlignment text_alignment() const
clan::TextFieldView::TextFieldView
TextFieldView()
clan::TextFieldView::calculate_last_baseline_offset
float calculate_last_baseline_offset(Canvas &canvas, float width) override
Calculates the offset to the last baseline.
clan::TextFieldView::set_text
void set_text(float number, int num_decimal_places=6)
clan::TextFieldView::cursor_pos
int cursor_pos() const
clan::TextFieldView::sig_enter_pressed
Signal< void()> & sig_enter_pressed()
clan::TextFieldView::clear_selection
void clear_selection()
clan::TextFieldView::set_input_mask
void set_input_mask(const std::string &mask)
clan::TextFieldView::set_cursor_pos
void set_cursor_pos(int pos)
clan::TextFieldView::sig_before_edit_changed
Signal< void(KeyEvent &)> & sig_before_edit_changed()
clan::TextFieldView::text_float
float text_float() const
clan::TextFieldView::set_password_mode
void set_password_mode(bool value=true)
clan::TextFieldView::max_length
int max_length() const
clan::TextFieldView::preferred_size
int preferred_size() const
clan::TextFieldView::calculate_preferred_width
float calculate_preferred_width(Canvas &canvas) override
Calculates the preferred width of this view.
clan::TextFieldView::render_content
void render_content(Canvas &canvas) override
Renders the content of a view.
clan::TextFieldView::set_text
void set_text(int number)
clan::View::View
View()
clan::View::canvas
Canvas canvas() const
clan::JsonType::number
@ number
Definition json_value.h:52
clan
Definition clanapp.h:36
clan::StyleValueType::length
@ length
value is a keyword
Definition style_value_type.h:38
clan::TextAlignment
TextAlignment
Definition label_view.h:39