1
0
mirror of https://github.com/azure-rtos/guix.git synced 2025-02-04 07:13:17 +08:00
guix/common/src/gx_system_screen_stack_reset.c
Bo Chen (from Dev Box) db360a10fa Update copyright.
2024-01-29 14:12:20 +08:00

95 lines
4.6 KiB
C

/***************************************************************************
* Copyright (c) 2024 Microsoft Corporation
*
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
*
* SPDX-License-Identifier: MIT
**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/** */
/** GUIX Component */
/** */
/** System Management (System) */
/** */
/**************************************************************************/
#define GX_SOURCE_CODE
/* Include necessary system files. */
#include "gx_api.h"
#include "gx_system.h"
#include "gx_widget.h"
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
/* */
/* _gx_system_screen_stack_reset PORTABLE C */
/* 6.1 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
/* */
/* DESCRIPTION */
/* */
/* This function removes all entries from the system screen stack, */
/* and make the current pointer equal to the stack top. */
/* */
/* INPUT */
/* */
/* control Pointer of stack entry */
/* */
/* OUTPUT */
/* */
/* status Completion status */
/* */
/* CALLS */
/* */
/* None */
/* */
/* CALLED BY */
/* */
/* Application Code */
/* */
/* RELEASE HISTORY */
/* */
/* DATE NAME DESCRIPTION */
/* */
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* */
/**************************************************************************/
UINT _gx_system_screen_stack_reset(VOID)
{
GX_WIDGET *screen;
GX_WIDGET *parent;
UINT status;
while(1)
{
status = _gx_system_screen_stack_get(&parent, &screen);
if (status == GX_SUCCESS)
{
if (screen -> gx_widget_status & GX_STATUS_DYNAMICALLY_ALLOCATED)
{
_gx_widget_delete(screen);
}
}
else
{
break;
}
}
return(GX_SUCCESS);
}