1 /**************************************************************************/ 2 /* */ 3 /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 /* */ 5 /* This software is licensed under the Microsoft Software License */ 6 /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 /* and in the root directory of this software. */ 9 /* */ 10 /**************************************************************************/ 11 12 13 /**************************************************************************/ 14 /**************************************************************************/ 15 /** */ 16 /** GUIX Component */ 17 /** */ 18 /** Widget Management (Widget) */ 19 /** */ 20 /**************************************************************************/ 21 22 #define GX_SOURCE_CODE 23 24 25 /* Include necessary system files. */ 26 27 #include "gx_api.h" 28 #include "gx_widget.h" 29 30 31 /**************************************************************************/ 32 /* */ 33 /* FUNCTION RELEASE */ 34 /* */ 35 /* _gx_widget_client_get PORTABLE C */ 36 /* 6.1 */ 37 /* AUTHOR */ 38 /* */ 39 /* Kenneth Maxwell, Microsoft Corporation */ 40 /* */ 41 /* DESCRIPTION */ 42 /* */ 43 /* This function retrieves client area of a widget */ 44 /* */ 45 /* INPUT */ 46 /* */ 47 /* widget Widget control block */ 48 /* border_width width of widget border */ 49 /* return_size Return rectangle pointer */ 50 /* */ 51 /* OUTPUT */ 52 /* */ 53 /* status Completion status */ 54 /* */ 55 /* CALLS */ 56 /* */ 57 /* _gx_widget_border_width_get Get widget border width */ 58 /* */ 59 /* CALLED BY */ 60 /* */ 61 /* Application Code */ 62 /* GUIX draw functions */ 63 /* */ 64 /* RELEASE HISTORY */ 65 /* */ 66 /* DATE NAME DESCRIPTION */ 67 /* */ 68 /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 69 /* 09-30-2020 Kenneth Maxwell Modified comment(s), */ 70 /* resulting in version 6.1 */ 71 /* */ 72 /**************************************************************************/ _gx_widget_client_get(GX_WIDGET * widget,GX_VALUE width,GX_RECTANGLE * return_size)73UINT _gx_widget_client_get(GX_WIDGET *widget, GX_VALUE width, GX_RECTANGLE *return_size) 74 { 75 GX_VALUE border_width; 76 77 if (width < 0) 78 { 79 _gx_widget_border_width_get(widget, &border_width); 80 } 81 else 82 { 83 border_width = width; 84 } 85 /* Yes, return the widget's client rectangle. */ 86 return_size -> gx_rectangle_top = (GX_VALUE)(widget -> gx_widget_size.gx_rectangle_top + border_width); 87 return_size -> gx_rectangle_bottom = (GX_VALUE)(widget -> gx_widget_size.gx_rectangle_bottom - border_width); 88 return_size -> gx_rectangle_left = (GX_VALUE)(widget -> gx_widget_size.gx_rectangle_left + border_width); 89 return_size -> gx_rectangle_right = (GX_VALUE)(widget -> gx_widget_size.gx_rectangle_right - border_width); 90 91 /* Return successful completion. */ 92 return(GX_SUCCESS); 93 } 94 95