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 /** Scroll Management (Scrollbar) */ 18 /** */ 19 /**************************************************************************/ 20 /**************************************************************************/ 21 22 23 /**************************************************************************/ 24 /* */ 25 /* COMPONENT DEFINITION RELEASE */ 26 /* */ 27 /* gx_scrollbar.h PORTABLE C */ 28 /* 6.1 */ 29 /* AUTHOR */ 30 /* */ 31 /* Kenneth Maxwell, Microsoft Corporation */ 32 /* */ 33 /* DESCRIPTION */ 34 /* */ 35 /* This file defines the GUIX icon management component, */ 36 /* including all data types and external references. It is assumed */ 37 /* that gx_api.h and gx_port.h have already been included. */ 38 /* */ 39 /* RELEASE HISTORY */ 40 /* */ 41 /* DATE NAME DESCRIPTION */ 42 /* */ 43 /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 44 /* 09-30-2020 Kenneth Maxwell Modified comment(s), */ 45 /* resulting in version 6.1 */ 46 /* */ 47 /**************************************************************************/ 48 49 #ifndef GX_SCROLLBAR_H 50 #define GX_SCROLLBAR_H 51 52 53 /* Define scrollbar management function prototypes. */ 54 55 UINT _gx_horizontal_scrollbar_create(GX_SCROLLBAR *scrollbar, GX_CONST GX_CHAR *name, GX_WINDOW *parent, 56 GX_SCROLLBAR_APPEARANCE *appearance, ULONG style); 57 58 UINT _gx_vertical_scrollbar_create(GX_SCROLLBAR *scrollbar, GX_CONST GX_CHAR *name, GX_WINDOW *parent, 59 GX_SCROLLBAR_APPEARANCE *appearance, ULONG style); 60 61 62 VOID _gx_scrollbar_draw(GX_SCROLLBAR *scrollbar); 63 UINT _gx_scrollbar_event_process(GX_SCROLLBAR *scrollbar, GX_EVENT *event_ptr); 64 UINT _gx_scrollbar_limit_check(GX_SCROLLBAR *scrollbar); 65 VOID _gx_scrollbar_thumb_position_calculate(GX_SCROLLBAR *scroll); 66 UINT _gx_scrollbar_reset(GX_SCROLLBAR *scrollbar, GX_SCROLL_INFO *info); 67 VOID _gx_scrollbar_size_update(GX_SCROLLBAR *scroll); 68 VOID _gx_scrollbar_value_calculate(GX_SCROLLBAR *scroll, INT offset, INT size); 69 UINT _gx_scrollbar_value_set(GX_SCROLLBAR *scroll, INT value); 70 71 /* Define scroll thumb management function prototypes. */ 72 73 UINT _gx_scroll_thumb_create(GX_SCROLL_THUMB *scroll_thumb, GX_SCROLLBAR *parent, ULONG style); 74 VOID _gx_scroll_thumb_draw(GX_SCROLL_THUMB *scroll_thumb); 75 UINT _gx_scroll_thumb_event_process(GX_SCROLL_THUMB *scroll_thumb, GX_EVENT *event_ptr); 76 INT _gx_scroll_thumb_shift_limit(GX_SCROLL_THUMB *thumb, INT shift); 77 78 79 /* Define error checking shells for API services. These are only referenced by the 80 application. */ 81 82 UINT _gxe_horizontal_scrollbar_create(GX_SCROLLBAR *scrollbar, GX_CONST GX_CHAR *name, GX_WINDOW *parent, 83 GX_SCROLLBAR_APPEARANCE *appearance, ULONG style, 84 UINT scrollbar_control_block_size); 85 86 UINT _gxe_vertical_scrollbar_create(GX_SCROLLBAR *scrollbar, GX_CONST GX_CHAR *name, GX_WINDOW *parent, 87 GX_SCROLLBAR_APPEARANCE *appearance, 88 ULONG style, UINT scrollbar_control_block_size); 89 UINT _gxe_scroll_thumb_event_process(GX_SCROLL_THUMB *scroll_thumb, GX_EVENT *event_ptr); 90 UINT _gxe_scroll_thumb_create(GX_SCROLL_THUMB *scroll_thumb, GX_SCROLLBAR *parent, ULONG style, UINT scroll_thumb_control_block_size); 91 92 UINT _gxe_scrollbar_event_process(GX_SCROLLBAR *scrollbar, GX_EVENT *event_ptr); 93 UINT _gxe_scrollbar_limit_check(GX_SCROLLBAR *scrollbar); 94 UINT _gxe_scrollbar_reset(GX_SCROLLBAR *scrollbar, GX_SCROLL_INFO *info); 95 UINT _gxe_scrollbar_value_set(GX_SCROLLBAR *scrollbar, INT value); 96 #endif 97 98