1 /***************************************************************************
2 * Copyright (c) 2024 Microsoft Corporation
3 *
4 * This program and the accompanying materials are made available under the
5 * terms of the MIT License which is available at
6 * https://opensource.org/licenses/MIT.
7 *
8 * SPDX-License-Identifier: MIT
9 **************************************************************************/
10
11
12 /**************************************************************************/
13 /**************************************************************************/
14 /** */
15 /** GUIX Component */
16 /** */
17 /** Text Button Management (Button) */
18 /** */
19 /**************************************************************************/
20
21 #define GX_SOURCE_CODE
22
23
24 /* Include necessary system files. */
25
26 #include "gx_api.h"
27 #include "gx_system.h"
28 #include "gx_button.h"
29 #include "gx_utility.h"
30
31 /* Bring in externs for caller checking code. */
32 GX_CALLER_CHECKING_EXTERNS
33 /**************************************************************************/
34 /* */
35 /* FUNCTION RELEASE */
36 /* */
37 /* _gxe_text_button_text_set PORTABLE C */
38 /* 6.1 */
39 /* AUTHOR */
40 /* */
41 /* Kenneth Maxwell, Microsoft Corporation */
42 /* */
43 /* DESCRIPTION */
44 /* */
45 /* This function checks for errors in the text button text set call. */
46 /* */
47 /* */
48 /* INPUT */
49 /* */
50 /* button Button control block */
51 /* text pointer to text string */
52 /* */
53 /* OUTPUT */
54 /* */
55 /* status Completion status */
56 /* */
57 /* CALLS */
58 /* */
59 /* _gx_text_button_text_set Actual text button text set */
60 /* function call */
61 /* */
62 /* CALLED BY */
63 /* */
64 /* Application Code */
65 /* */
66 /* RELEASE HISTORY */
67 /* */
68 /* DATE NAME DESCRIPTION */
69 /* */
70 /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
71 /* 09-30-2020 Kenneth Maxwell Modified comment(s), */
72 /* resulting in version 6.1 */
73 /* */
74 /**************************************************************************/
75 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
_gxe_text_button_text_set(GX_TEXT_BUTTON * button,GX_CONST GX_CHAR * text)76 UINT _gxe_text_button_text_set(GX_TEXT_BUTTON *button, GX_CONST GX_CHAR *text)
77 {
78 UINT status;
79
80 /* Check for appropriate caller. */
81 GX_INIT_AND_THREADS_CALLER_CHECKING
82
83 /* Check for invalid input pointers. */
84 if (button == GX_NULL)
85 {
86 return(GX_PTR_ERROR);
87 }
88
89 /* Check for invalid widget. */
90 if (button -> gx_widget_type == 0)
91 {
92 return(GX_INVALID_WIDGET);
93 }
94
95 /* Call actual widget hide function. */
96 status = _gx_text_button_text_set(button, text);
97
98 /* Return completion status. */
99 return(status);
100 }
101 #endif
102
103 /**************************************************************************/
104 /* */
105 /* FUNCTION RELEASE */
106 /* */
107 /* _gxe_text_button_text_set_ext PORTABLE C */
108 /* 6.1 */
109 /* AUTHOR */
110 /* */
111 /* Kenneth Maxwell, Microsoft Corporation */
112 /* */
113 /* DESCRIPTION */
114 /* */
115 /* This function checks for errors in the text button text set call. */
116 /* */
117 /* */
118 /* INPUT */
119 /* */
120 /* button Button control block */
121 /* text pointer to text string */
122 /* */
123 /* OUTPUT */
124 /* */
125 /* status Completion status */
126 /* */
127 /* CALLS */
128 /* */
129 /* _gx_text_button_text_set_ext Actual text button text set */
130 /* function call */
131 /* */
132 /* CALLED BY */
133 /* */
134 /* Application Code */
135 /* */
136 /* RELEASE HISTORY */
137 /* */
138 /* DATE NAME DESCRIPTION */
139 /* */
140 /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
141 /* 09-30-2020 Kenneth Maxwell Modified comment(s), */
142 /* resulting in version 6.1 */
143 /* */
144 /**************************************************************************/
_gxe_text_button_text_set_ext(GX_TEXT_BUTTON * button,GX_CONST GX_STRING * text)145 UINT _gxe_text_button_text_set_ext(GX_TEXT_BUTTON *button, GX_CONST GX_STRING *text)
146 {
147 UINT status;
148 UINT text_length = 0;
149
150 /* Check for appropriate caller. */
151 GX_INIT_AND_THREADS_CALLER_CHECKING
152
153 /* Check for invalid input pointers. */
154 if (button == GX_NULL)
155 {
156 return(GX_PTR_ERROR);
157 }
158
159 /* Check for invalid widget. */
160 if (button -> gx_widget_type == 0)
161 {
162 return(GX_INVALID_WIDGET);
163 }
164
165 if (text)
166 {
167 if (text -> gx_string_ptr)
168 {
169 status = _gx_utility_string_length_check(text -> gx_string_ptr, &text_length, text -> gx_string_length);
170
171 if (status != GX_SUCCESS)
172 {
173 return status;
174 }
175 }
176
177 if (text_length != text -> gx_string_length)
178 {
179 return GX_INVALID_STRING_LENGTH;
180 }
181 }
182
183 /* Call actual text set function. */
184 status = _gx_text_button_text_set_ext(button, text);
185
186 /* Return completion status. */
187 return(status);
188 }
189
190