/* SPDX-License-Identifier: LGPL-2.1-only OR BSD-3-Clause */
/******************************************************************************
 *
 * This file is provided under a dual license.  When you use or
 * distribute this software, you may choose to be licensed under
 * version 2.1 of the GNU Lesser General Public License
 * ("LGPLv2.1 License") or BSD License.
 *
 * LGPLv2.1 License
 *
 * Copyright(C) 2019 MediaTek Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of version 2.1 of the GNU Lesser General Public
 * License as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html for more
 * details.
 *
 * BSD LICENSE
 *
 * Copyright(C) 2019 MediaTek Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *  * Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *  * Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *  * Neither the name of the copyright holder nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *****************************************************************************/

/*----------------------------------------------------------------------------*/
/*! @file u_wgl_hts_cnt_common.h 
 *  $RCSfile: $
 *  $Revision: #1 $
 *  $Date: 2015/11/10 $
 *  $Author: dtvbm11 $
 *  
 *  @par Description:
 *         This header file contains public interfaces, constant and type 
 *         definitions of the Widget Library.
 */
/*----------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------*/
/*! @addtogroup groupMW_WGL_HTS
 *  @{ 
 */
/*----------------------------------------------------------------------------*/

#ifndef _U_WGL_HTS_CNT_COMMON_H_
#define _U_WGL_HTS_CNT_COMMON_H_

/*-----------------------------------------------------------------------------
                    include files
 ----------------------------------------------------------------------------*/



#ifdef __cplusplus
extern "C" {
#endif

/*-----------------------------------------------------------------------------
                    macros, defines, typedefs, enums
 ----------------------------------------------------------------------------*/
/* commands */
#define WGL_CMD_HTS_SET_CNT_INSET                   WGL_MAKE_CONTENT_CMD(WGL_CONTENT_HTS_DEF, 100)    
/**<
This command sets the content inset.  If this command changes the size of the viewport and the article is moved, the notification WGL_NC_HTS_VP_MOVED would be arisen.

Input arguments

pv_param1	Contains the content inset. This argument must be of type (WGL_INSET_T *) and cannot be NULL.

pv_param2	Reserved. It must be NULL.

Returns

WGLR_OK	The function call is successful.

WGLR_INV_ARG	The argument pv_param1 is NULL.
*/

#define WGL_CMD_HTS_GET_CNT_INSET                   WGL_MAKE_CONTENT_CMD(WGL_CONTENT_HTS_DEF, 101) 
/**< 
This command gets the content inset. 

Input arguments

pv_param2	Reserved. It must be NULL.

Output arguments

pv_param1	Contains the pointer of a single WGL_INSET_T buffer to receive the content inset. Note that this argument must be of type (WGL_INSET_T *) and cannot be NULL.

Returns

WGLR_OK	The function call is successful.

WGL_INV_ARG	The argument pv_param1 is NULL.
*/

#define WGL_CMD_HTS_SET_PAGE_INDC_IMG               WGL_MAKE_CONTENT_CMD(WGL_CONTENT_HTS_DEF, 102) 
/**<  
This command sets the information for page-up / page-down indication images. 

Input arguments

pv_param1	Contains the information for paging indication images. This argument must be of type (WGL_HTS_PAGE_INDC_INFO_T *) and cannot be NULL.

pv_param2	Reserved. It must be NULL.

Returns

WGLR_OK	The function call is successful.

WGLR_INV_ARG	The argument pv_param1 is NULL. 
*/

#define WGL_CMD_HTS_GET_PAGE_INDC_IMG               WGL_MAKE_CONTENT_CMD(WGL_CONTENT_HTS_DEF, 103) 
/**< 
This command gets the information for page-up / page-down indication images. 

Input arguments

pv_param2	Reserved. It must be NULL.

Output arguments

pv_param1	Contains the pointer of a single WGL_HTS_PAGE_INDC_INFO_T buffer to receive the paging image information. Note that this argument must be of type (WGL_HTS_PAGE_INDC_INFO_T *) and cannot be NULL.

Returns

WGLR_OK	The function call is successful.

WGL_INV_ARG	The argument pv_param1 is NULL.
*/


#define WGL_CLR_HTS_VP_BK                           (WGL_CLR_WGT_SPF_START+5) 
/**< 
Indicates the color is for viewport background. This definition could be used by the following commands: 
 	WGL_CMD_GL_SET_COLOR 
 	WGL_CMD_GL_GET_COLOR 
*/

#define WGL_CLR_HTS_SEC_TEXT                        (WGL_CLR_WGT_SPF_START+6) 
/**< 
Indicates the color is for the text of a section. This definition could be used by the following commands: 

 	WGL_CMD_HTS_DFT_SEC_SET_COLOR

 	WGL_CMD_HTS_DFT_SEC_GET_COLOR

 	WGL_CMD_HTS_SEC_SET_COLOR

 	WGL_CMD_HTS_SEC_GET_COLOR
*/

#define WGL_CLR_HTS_SEC_TEXT_BK                     (WGL_CLR_WGT_SPF_START+7)   
/**<
Indicates the color is for the text background of a section. This definition could be used by the following commands: 
 	WGL_CMD_HTS_DFT_SEC_SET_COLOR

 	WGL_CMD_HTS_DFT_SEC_GET_COLOR

 	WGL_CMD_HTS_SEC_SET_COLOR

 	WGL_CMD_HTS_SEC_GET_COLOR
*/


#define WGL_IMG_HTS_VP_BK                           (WGL_IMG_WGT_SPF_START+10)   
/**< 
Indicates the template image is for drawing the viewport background. This definition could be used by the following commands: 

 	WGL_CMD_GL_SET_IMAGE 

 	WGL_CMD_GL_GET_IMAGE 
*/

/*-----------------------------------------------------------------------------
                    structure
 ----------------------------------------------------------------------------*/

/*------------------------------------------------------------------*/
/*! @struct WGL_HTS_PAGE_INDC_INFO_T
 *  @brief  This structure holds the information for page-up/page-down indication images. This structure is defined as general content structure.   
 *  @code
 *  typedef struct _WGL_HTS_PAGE_INDC_INFO_T
 *  {
 *  	GL_POINT_T      		            t_location_up;
 *  	GL_POINT_T      		            t_location_down;
 *  	WGL_HIMG_TPL_T  		            h_img_up_on;
 *  	WGL_HIMG_TPL_T  		            h_img_up_off;
 *  	WGL_HIMG_TPL_T  		            h_img_down_on;
 *  	WGL_HIMG_TPL_T  		            h_img_down_off;
 *  } WGL_HTS_PAGE_INDC_INFO_T;    
 *  @endcode
 *  @li@c  t_location_up                                     -Indicates the location of the page-up or scroll-up images. 
 *  @li@c  t_location_down                                   -Indicates the location of the page-down or scroll-down images.
 *  @li@c  h_img_up_on                                       -Contains the handle of the page-up or scroll-up image for "on" state. The "on" state indicates there are one or more lines above the current first visible line in the viewport and thus the article could be paged up or scrolled up.
 *  @li@c  h_img_up_off                                      -Contains the handle of the page-up or scroll-up image for "off" state. The "off" state indicates the viewport already reaches the top of the article and thus the article could not be paged up or scrolled up anymore.
 *  @li@c  h_img_down_on                                     -Contains the handle of the page-down or scroll-down image for "on" state. The "on" state indicates there are one or more lines below the current last visible line in the viewport and thus the article could be paged down or scrolled down.
 *  @li@c  h_img_down_off                                    -Contains the handle of the page-down or scroll-down image for "off" state. The "off" state indicates the viewport already reaches the bottom of the article and thus the article could not be paged down or scrolled down anymore.
 */
/*------------------------------------------------------------------*/
typedef struct _WGL_HTS_PAGE_INDC_INFO_T
{
	GL_POINT_T      		            t_location_up;
	GL_POINT_T      		            t_location_down;

	WGL_HIMG_TPL_T  		            h_img_up_on;
	WGL_HIMG_TPL_T  		            h_img_up_off;
	WGL_HIMG_TPL_T  		            h_img_down_on;
	WGL_HIMG_TPL_T  		            h_img_down_off;
} WGL_HTS_PAGE_INDC_INFO_T;    




#ifdef __cplusplus
}
#endif


#endif

/*----------------------------------------------------------------------------*/
/*! @} */   /* end of groupMW_WGL_HTS*/
/*----------------------------------------------------------------------------*/


