acid-drop

- Hacking the planet from a LilyGo T-Deck using custom firmware
git clone git://git.acid.vegas/acid-drop.git
Log | Files | Refs | Archive | README | LICENSE

lv_gridnav.h (2943B)

      1 /**
      2  * @file lv_templ.c
      3  *
      4  */
      5 
      6 /*********************
      7  *      INCLUDES
      8  *********************/
      9 
     10 /*********************
     11  *      DEFINES
     12  *********************/
     13 
     14 /**********************
     15  *      TYPEDEFS
     16  **********************/
     17 
     18 /*This typedef exists purely to keep -Wpedantic happy when the file is empty.*/
     19 /*It can be removed.*/
     20 typedef int _keep_pedantic_happy;
     21 
     22 /**********************
     23  *  STATIC PROTOTYPES
     24  **********************/
     25 
     26 /**********************
     27  *  STATIC VARIABLES
     28  **********************/
     29 
     30 /**********************
     31  *      MACROS
     32  **********************/
     33 
     34 /**********************
     35  *   GLOBAL FUNCTIONS
     36  **********************/
     37 
     38 /**********************
     39  *   STATIC FUNCTIONS
     40  **********************/
     41 /**
     42  * @file lv_gridnav.h
     43  *
     44  */
     45 
     46 #ifndef LV_GRIDFOCUS_H
     47 #define LV_GRIDFOCUS_H
     48 
     49 #ifdef __cplusplus
     50 extern "C" {
     51 #endif
     52 
     53 /*********************
     54  *      INCLUDES
     55  *********************/
     56 #include "../../../core/lv_obj.h"
     57 
     58 #if LV_USE_GRIDNAV
     59 
     60 /*********************
     61  *      DEFINES
     62  *********************/
     63 
     64 /**********************
     65  *      TYPEDEFS
     66  **********************/
     67 typedef enum {
     68     LV_GRIDNAV_CTRL_NONE = 0x0,
     69 
     70     /**
     71      * If there is no next/previous object in a direction,
     72      * the focus goes to the object in the next/previous row (on left/right keys)
     73      * or first/last row (on up/down keys)
     74      */
     75     LV_GRIDNAV_CTRL_ROLLOVER = 0x1,
     76 
     77     /**
     78      * If an arrow is pressed and the focused object can be scrolled in that direction
     79      * then it will be scrolled instead of going to the next/previous object.
     80      * If there is no more room for scrolling the next/previous object will be focused normally */
     81     LV_GRIDNAV_CTRL_SCROLL_FIRST = 0x2,
     82 
     83 } lv_gridnav_ctrl_t;
     84 
     85 /**********************
     86  * GLOBAL PROTOTYPES
     87  **********************/
     88 
     89 /**
     90  * Add grid navigation feature to an object. It expects the children to be arranged
     91  * into a grid-like layout. Although it's not required to have pixel perfect alignment.
     92  * This feature makes possible to use keys to navigate among the children and focus them.
     93  * The keys other than arrows and press/release related events
     94  * are forwarded to the focused child.
     95  * @param obj       pointer to an object on which navigation should be applied.
     96  * @param ctrl      control flags from `lv_gridnav_ctrl_t`.
     97  */
     98 void lv_gridnav_add(lv_obj_t * obj, lv_gridnav_ctrl_t ctrl);
     99 
    100 /**
    101  * Remove the grid navigation support from an object
    102  * @param obj       pointer to an object
    103  */
    104 void lv_gridnav_remove(lv_obj_t * obj);
    105 
    106 /**
    107  * Manually focus an object on gridnav container
    108  * @param cont      pointer to a gridnav container
    109  * @param to_focus  pointer to an object to focus
    110  * @param anim_en   LV_ANIM_ON/OFF
    111  */
    112 void lv_gridnav_set_focused(lv_obj_t * cont, lv_obj_t * to_focus, lv_anim_enable_t anim_en);
    113 
    114 /**********************
    115  *      MACROS
    116  **********************/
    117 #endif /*LV_USE_GRIDNAV*/
    118 
    119 #ifdef __cplusplus
    120 } /*extern "C"*/
    121 #endif
    122 
    123 #endif /*LV_GRIDFOCUS_H*/