MPLABĀ® Harmony Graphics Suite
legato_editwidget.h
Go to the documentation of this file.
1 /*******************************************************************************
2 * Copyright (C) 2020 Microchip Technology Inc. and its subsidiaries.
3 *
4 * Subject to your compliance with these terms, you may use Microchip software
5 * and any derivatives exclusively with Microchip products. It is your
6 * responsibility to comply with third party license terms applicable to your
7 * use of third party software (including open source software) that may
8 * accompany Microchip software.
9 *
10 * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER
11 * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED
12 * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A
13 * PARTICULAR PURPOSE.
14 *
15 * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
16 * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND
17 * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS
18 * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE
19 * FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN
20 * ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
21 * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
22 *******************************************************************************/
23 
24 /*******************************************************************************
25  Module for Microchip Graphics Library - Legato User Interface Library
26 
27  Company:
28  Microchip Technology Inc.
29 
30  File Name:
31  legato_editwidget.h
32 
33  Summary:
34 
35 
36  Description:
37  This module implements the routines to enable edit of library widgets.
38 *******************************************************************************/
39 
46 #ifndef LEGATO_EDITWIDGET_H
47 #define LEGATO_EDITWIDGET_H
48 
52 
53 // DOM-IGNORE-BEGIN
54 typedef struct leEditWidget leEditWidget;
55 
56 #define LE_EDITWIDGET_VTABLE(THIS_TYPE) \
57  LE_WIDGET_VTABLE(THIS_TYPE) \
58  \
59  leResult (*editStart)(THIS_TYPE* _this); \
60  void (*editEnd)(THIS_TYPE* _this); \
61  void (*editClear)(THIS_TYPE* _this); \
62  void (*editAccept)(THIS_TYPE* _this); \
63  void (*editSet)(THIS_TYPE* _this, const leString* str); \
64  void (*editAppend)(THIS_TYPE* _this, const leString* str); \
65  void (*editBackspace)(THIS_TYPE* _this); \
66 
67 typedef struct leEditWidgetVTable
68 {
69  LE_EDITWIDGET_VTABLE(leEditWidget)
71 
72 // DOM-IGNORE-END
73 
74 /* Structure:
75  leEditWidget
76 
77  Summary:
78  Specifies the edit widget structure to manage all properties and events
79  associated with edit widgets
80 
81  Description:
82  Edit widgets are a subset of normal widgets that are capable of receiving
83  edit events from the UI kernel. Specialized widgets are capable of
84  broadcasting edit events and the active edit event will react to them.
85 
86  Remarks:
87  None.
88 
89 */
90 typedef struct leEditWidget
91 {
92  leWidget widget;
93 
94  const leEditWidgetVTable* fn;
95 
96 } leEditWidget;
97 
98 // *****************************************************************************
99 /* Virtual Member Function:
100  leResult editStart(leEditWidget* _this)
101 
102  Summary:
103  Start editing command
104 
105  Description:
106  Start editing command
107 
108  Parameters:
109  leEditWidget* _this - The edit widget to operate on
110 
111  Remarks:
112  Usage - _this->fn->editStart(_this);
113 
114  Returns:
115  leResult - the result of the operation
116 */
117 leResult _leEditWidget_EditStart(leEditWidget* _this);
118 
119 // *****************************************************************************
120 /* Virtual Member Function:
121  void editEnd(leEditWidget* _this)
122 
123  Summary:
124  End editing command
125 
126  Description:
127  End editing command
128 
129  Parameters:
130  leEditWidget* _this - The edit widget to operate on
131 
132  Remarks:
133  Usage - _this->fn->editEnd(_this);
134 
135  Returns:
136  void
137 */
138 void _leEditWidget_EditEnd(leEditWidget* _this);
139 
140 // *****************************************************************************
141 /* Virtual Member Function:
142  void editClear(leEditWidget* _this)
143 
144  Summary:
145  Clear command
146 
147  Description:
148  Clear command
149 
150  Parameters:
151  leEditWidget* _this - The edit widget to operate on
152 
153  Remarks:
154  Usage - _this->fn->editClear(_this);
155 
156  Returns:
157  void
158 */
159 void _leEditWidget_EditClear(leEditWidget* _this);
160 
161 // *****************************************************************************
162 /* Virtual Member Function:
163  void editAccept(leEditWidget* _this)
164 
165  Summary:
166  Accept command
167 
168  Description:
169  Accept command
170 
171  Parameters:
172  leEditWidget* _this - The edit widget to operate on
173 
174  Remarks:
175  Usage - _this->fn->editAccept(_this);
176 
177  Returns:
178  void
179 */
180 void _leEditWidget_EditAccept(leEditWidget* _this);
181 
182 // *****************************************************************************
183 /* Virtual Member Function:
184  void editSet(leEditWidget* _this,
185  const leString* str)
186 
187  Summary:
188  Set command
189 
190  Description:
191  Set command
192 
193  Parameters:
194  leEditWidget* _this - The edit widget to operate on
195  const leString* str - the string pointer
196 
197  Remarks:
198  Usage - _this->fn->editSet(_this, str);
199 
200  Returns:
201  void
202 */
203 void _leEditWidget_EditSet(leEditWidget* _this,
204  const leString* str);
205 
206 // *****************************************************************************
207 /* Virtual Member Function:
208  void editAppend(leEditWidget* _this,
209  const leString* str)
210 
211  Summary:
212  Append command
213 
214  Description:
215  Append command
216 
217  Parameters:
218  leEditWidget* _this - The edit widget to operate on
219  const leString* str - the string pointer
220 
221  Remarks:
222  Usage - _this->fn->editAppend(_this, str);
223 
224  Returns:
225  void
226 */
227 void _leEditWidget_EditAppend(leEditWidget* _this,
228  const leString* str);
229 
230 // *****************************************************************************
231 /* Virtual Member Function:
232  void editBackspace(leEditWidget* _this)
233 
234  Summary:
235  Backspace command
236 
237  Description:
238  Backspace command
239 
240  Parameters:
241  leEditWidget* _this - The edit widget to operate on
242 
243  Remarks:
244  Usage - _this->fn->editBackspace(_this);
245 
246  Returns:
247  void
248 */
249 void _leEditWidget_EditBackspace(leEditWidget* _this);
250 
251 
252 // DOM-IGNORE-BEGIN
253 leResult _leEditWidget_StartEdit();
254 void _leEditWidget_EndEdit();
255 
256 void _leEditWidget_Clear();
257 void _leEditWidget_Accept();
258 void _leEditWidget_Set(const leString* str);
259 void _leEditWidget_Append(const leString* str);
260 void _leEditWidget_Backspace();
261 // DOM-IGNORE-END
262 
263 #endif // LEGATO_EDITWIDGET_H
_leWidget_SetAlphaAmount
leResult _leWidget_SetAlphaAmount(leWidget *_this, uint32_t alpha)
Set alpha amount.
Definition: legato_widget.c:570
_leWidget_GetType
leWidgetType _leWidget_GetType(const leWidget *_this)
Get widget type.
Definition: legato_widget.c:176
leEditWidget
Definition: legato_editwidget.h:91
_leWidget_GetScheme
leScheme * _leWidget_GetScheme(const leWidget *_this)
Get widget scheme.
Definition: legato_widget.c:938
leResult
leResult
This enum represents function call results.
Definition: legato_common.h:134
_leWidget_RectToScreenSpace
leRect _leWidget_RectToScreenSpace(const leWidget *_this)
Get widget rectangle.
Definition: legato_widget.c:701
leRect
This struct represents a rectangle.
Definition: legato_common.h:405
_leWidget_IsOpaque
leBool _leWidget_IsOpaque(const leWidget *_this)
Determine is widget is opaque.
Definition: legato_widget.c:594
_leWidget_SetBorderType
leResult _leWidget_SetBorderType(leWidget *_this, leBorderType type)
Set widget scheme.
Definition: legato_widget.c:967
_leWidget_RemoveAllChildren
void _leWidget_RemoveAllChildren(leWidget *_this)
Remove all children from widget.
Definition: legato_widget.c:823
_leWidget_SetParent
leResult _leWidget_SetParent(leWidget *_this, leWidget *parent)
Set parent widget.
Definition: legato_widget.c:862
_leWidget_InvalidateContents
void _leWidget_InvalidateContents(const leWidget *_this)
Invalidate widget contents.
Definition: legato_widget.c:1210
_leWidget_SetCornerRadius
leResult _leWidget_SetCornerRadius(leWidget *_this, uint32_t radius)
Set widget scheme.
Definition: legato_widget.c:1091
_leWidget_InstallEventFilter
leResult _leWidget_InstallEventFilter(leWidget *_this, leWidgetEventFilter fltr)
Install event filter.
Definition: legato_widget.c:1215
_leWidget_SetX
leResult _leWidget_SetX(leWidget *_this, int32_t x)
Set widget x position.
Definition: legato_widget.c:190
_leWidget_SetSize
leResult _leWidget_SetSize(leWidget *_this, uint32_t width, uint32_t height)
Set widget height.
Definition: legato_widget.c:381
_leWidget_HasFocus
leBool _leWidget_HasFocus(const leWidget *_this)
Determines the focus status.
Definition: legato_widget.c:1110
_leWidget_Resize
leResult _leWidget_Resize(leWidget *_this, int32_t width, int32_t height)
Resize widget.
Definition: legato_widget.c:426
_leWidget_SetAlphaEnabled
leResult _leWidget_SetAlphaEnabled(leWidget *_this, leBool enable)
Set cumulative alpha enable status.
Definition: legato_widget.c:501
_leWidget_ContainsDescendant
leBool _leWidget_ContainsDescendant(const leWidget *_this, const leWidget *wgt)
Determine widget exists.
Definition: legato_widget.c:910
_leWidget_SetBackgroundType
leResult _leWidget_SetBackgroundType(leWidget *_this, leBackgroundType type)
Set widget scheme.
Definition: legato_widget.c:989
_leWidget_GetWidth
uint32_t _leWidget_GetWidth(const leWidget *_this)
Get widget width.
Definition: legato_widget.c:317
_leWidget_GetCumulativeAlphaEnabled
leBool _leWidget_GetCumulativeAlphaEnabled(const leWidget *_this)
Get cumulative alpha enable status.
Definition: legato_widget.c:484
_leWidget_RectToParentSpace
leRect _leWidget_RectToParentSpace(const leWidget *_this)
Get widget rectangle.
Definition: legato_widget.c:684
_leWidget_Translate
leResult _leWidget_Translate(leWidget *_this, int32_t x, int32_t y)
Translate widget x and y position.
Definition: legato_widget.c:282
legato_renderer.h
_leWidget_SetHeight
leResult _leWidget_SetHeight(leWidget *_this, uint32_t height)
Set widget height.
Definition: legato_widget.c:356
_leWidget_SetWidth
leResult _leWidget_SetWidth(leWidget *_this, uint32_t width)
Set the widget width.
Definition: legato_widget.c:324
_leWidget_SetVisible
leResult _leWidget_SetVisible(leWidget *_this, leBool visible)
Set widget visible status.
Definition: legato_widget.c:649
_leWidget_GetRootWidget
leWidget * _leWidget_GetRootWidget(const leWidget *_this)
Get root widget.
Definition: legato_widget.c:843
_leWidget_Update
void _leWidget_Update(leWidget *_this, uint32_t dt)
Update widget.
Definition: legato_widget.c:1491
legato_widget.h
Legato widget definitions.
legato_widget_label.h
label widget functions and definitions.
_leWidget_GetHAlignment
leHAlignment _leWidget_GetHAlignment(const leWidget *_this)
Get widget horizontal alignment.
Definition: legato_widget.c:1003
_leWidget_GetHeight
uint32_t _leWidget_GetHeight(const leWidget *_this)
Get widget height.
Definition: legato_widget.c:349
leString
This struct represents a string.
Definition: legato_string.h:108
_leWidget_LocalRect
leRect _leWidget_LocalRect(const leWidget *_this)
Get widget rectangle.
Definition: legato_widget.c:670
leEditWidgetVTable
Definition: legato_editwidget.h:68
_leWidget_GetBackgroundType
leBackgroundType _leWidget_GetBackgroundType(const leWidget *_this)
Get widget background type.
Definition: legato_widget.c:982
legato_editwidget.h
Edit widget functions and definitions.
_leWidget_SetScheme
leResult _leWidget_SetScheme(leWidget *_this, const leScheme *scheme)
Set widget scheme.
Definition: legato_widget.c:945
_leWidget_SetHAlignment
leResult _leWidget_SetHAlignment(leWidget *_this, leHAlignment align)
Set widget scheme.
Definition: legato_widget.c:1010
_leWidget_GetEnabled
leBool _leWidget_GetEnabled(const leWidget *_this)
Get widget enabled flag.
Definition: legato_widget.c:615
_leWidget_SetFocus
leResult _leWidget_SetFocus(leWidget *_this)
Set widget scheme.
Definition: legato_widget.c:1117
LE_FALSE
@ LE_FALSE
Definition: legato_common.h:158
_leWidget_GetAlphaEnabled
leBool _leWidget_GetAlphaEnabled(const leWidget *_this)
Get alpha enable status.
Definition: legato_widget.c:473
leGetEditWidget
LIB_EXPORT leEditWidget * leGetEditWidget()
Get edit widget.
Definition: legato_state.c:521
_leWidget_GetChildAtIndex
leWidget * _leWidget_GetChildAtIndex(const leWidget *_this, uint32_t idx)
Get child at index.
Definition: legato_widget.c:888
_leWidget_GetCumulativeAlphaAmount
uint32_t _leWidget_GetCumulativeAlphaAmount(const leWidget *_this)
Get cumulative alpha amount.
Definition: legato_widget.c:538
_leWidget_SetY
leResult _leWidget_SetY(leWidget *_this, int32_t y)
Set widget y position.
Definition: legato_widget.c:222
_leWidget_GetBorderType
leBorderType _leWidget_GetBorderType(const leWidget *_this)
Get widget bordertype.
Definition: legato_widget.c:960
_leWidget_SetMargins
leResult _leWidget_SetMargins(leWidget *_this, uint32_t l, uint32_t t, uint32_t r, uint32_t b)
Set widget margins.
Definition: legato_widget.c:1058
legato_utils.h
General internal utilities for the library.
_leWidget_GetVAlignment
leVAlignment _leWidget_GetVAlignment(const leWidget *_this)
Get widget vertical alignment.
Definition: legato_widget.c:1027
legato_string.h
Fixed string functions and definitions.
LE_WIDGET_BACKGROUND_NONE
@ LE_WIDGET_BACKGROUND_NONE
Definition: legato_widget.h:225
leWidget
Used to define a widget.
Definition: legato_widget.h:623
leUtils_RectToScreenSpace
void leUtils_RectToScreenSpace(const leWidget *widget, leRect *rect)
Convert rectangle from widget local space to screen space.
Definition: legato_utils.c:151
_leWidget_GetX
int32_t _leWidget_GetX(const leWidget *_this)
Get widget x position.
Definition: legato_widget.c:183
leRectClip
LIB_EXPORT void leRectClip(const leRect *l_rect, const leRect *r_rect, leRect *result)
Clips a rectangle to the space of another rectangle.
Definition: legato_rect.c:122
_leWidget_SetVAlignment
leResult _leWidget_SetVAlignment(leWidget *_this, leVAlignment align)
Set widget vertical alignment.
Definition: legato_widget.c:1034
_leWidget_GetVisible
leBool _leWidget_GetVisible(const leWidget *_this)
Get widget visible status.
Definition: legato_widget.c:642
_leWidget_AddChild
leResult _leWidget_AddChild(leWidget *_this, leWidget *child)
Add child to widget.
Definition: legato_widget.c:734
_leWidget_GetIndexOfChild
uint32_t _leWidget_GetIndexOfChild(const leWidget *_this, const leWidget *child)
Get index of child.
Definition: legato_widget.c:899
_leWidget_GetChildCount
uint32_t _leWidget_GetChildCount(const leWidget *_this)
Get child count.
Definition: legato_widget.c:881
_leWidget_GetMargins
leMargin _leWidget_GetMargins(const leWidget *_this)
Get widget margins.
Definition: legato_widget.c:1051
leWidget_Constructor
LIB_EXPORT void leWidget_Constructor(leWidget *wgt)
Initialize widget.
Definition: legato_widget.c:67
leScheme_GetRenderColor
leColor leScheme_GetRenderColor(const leScheme *schm, leSchemeColor clr)
Gets a scheme render color for the current layer color mode.
Definition: legato_scheme.c:68
LE_TRUE
@ LE_TRUE
Definition: legato_common.h:159
_leWidget_GetAlphaAmount
uint32_t _leWidget_GetAlphaAmount(const leWidget *_this)
Get alpha amount.
Definition: legato_widget.c:527
_leWidget_GetCornerRadius
uint32_t _leWidget_GetCornerRadius(const leWidget *_this)
Get widget corner radius.
Definition: legato_widget.c:1084
legato_common.h
Common macros and definitions used by Legato.
_leWidget_RemoveEventFilter
leResult _leWidget_RemoveEventFilter(leWidget *_this, leWidgetEventFilter fltr)
Remove event filter.
Definition: legato_widget.c:1238
legato_state.h
_leWidget_RemoveChild
leResult _leWidget_RemoveChild(leWidget *_this, leWidget *child)
Remove child from widget.
Definition: legato_widget.c:785
_leWidget_SetEnabled
leResult _leWidget_SetEnabled(leWidget *_this, leBool enable)
Set widget enabled flag.
Definition: legato_widget.c:620
_leWidget_SetPosition
leResult _leWidget_SetPosition(leWidget *_this, int32_t x, int32_t y)
Set widget x and y position.
Definition: legato_widget.c:247
leUtils_ArrangeRectangleRelative
void leUtils_ArrangeRectangleRelative(leRect *sub, leRect obj, leRect bounds, leHAlignment hAlignment, leVAlignment vAlignment, leRelativePosition position, uint8_t leftMargin, uint8_t topMargin, uint8_t rightMargin, uint8_t bottomMargin, uint16_t rectMargin)
Calculates the position of a rectangle within the given bounds.
Definition: legato_utils.c:286
_leWidget_Invalidate
void _leWidget_Invalidate(const leWidget *_this)
Invalidate widget.
Definition: legato_widget.c:1142
_leWidget_GetY
int32_t _leWidget_GetY(const leWidget *_this)
Get widget y position.
Definition: legato_widget.c:215