text: /*-
   * Copyright(c) <2010-2021>, Intel Corporation. All rights reserved.
   *
   * SPDX-License-Identifier: BSD-3-Clause
   */
  
  /* Created 2010 by Keith Wiles @ intel.com */
  
  #ifndef _PKTGEN_DISPLAY_H_
  #define _PKTGEN_DISPLAY_H_
  
  /* TODO create pktgen_display_*() abstractions and remove this #include */
  #include <cli_scrn.h>
  
  #include <copyright_info.h>
  
  #include "pktgen.h"
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  /* Initialize screen data structures */
  void pktgen_init_screen(int theme);
  
  /**
   *
   * display_topline - Print out the top line on the screen.
   *
   * DESCRIPTION
   * Print out the top line on the screen and any other information.
   *
   * RETURNS: N/A
   *
   * SEE ALSO:
   */
  void display_topline(const char *msg);
  
  /**
   *
   * display_dashline - Print out the dashed line on the screen.
   *
   * DESCRIPTION
   * Print out the dashed line on the screen and any other information.
   *
   * RETURNS: N/A
   *
   * SEE ALSO:
   */
  void display_dashline(int last_row);
  
  /**
   *
   * pktgen_display_set_geometry - Set the display geometry
   *
   * DESCRIPTION
   * Set the display geometry.
   *
   * RETURNS: N/A
   *
   * SEE ALSO:
   */
  void pktgen_display_set_geometry(uint16_t rows, uint16_t cols);
  
  /**
   *
   * pktgen_display_get_geometry - Get the display geometry
   *
   * DESCRIPTION
   * Get the display geometry.
   *
   * RETURNS: N/A
   *
   * SEE ALSO:
   */
  void pktgen_display_get_geometry(uint16_t *rows, uint16_t *cols);
  
  /**
   *
   * pktgen_display_set_color - Changes the color to the color of the specified element.
   *
   * DESCRIPTION
   * Changes the color to the color of the specified element.
   *
   * RETURNS: N/A
   *
   * SEE ALSO:
   */
  void pktgen_display_set_color(const char *elem);
  
  /**
   *
   * pktgen_set_prompt - Sets the prompt for the command line.
   * The new string will include color support if enabled, which includes
   * ANSI color codes to style the prompt according to the color theme.
   *
   * DESCRIPTION
   * None
   *
   * RETURNS: N/A
   *
   * SEE ALSO:
   */
  void pktgen_set_prompt(void);
  
  /**
   *
   * pktgen_show_theme - Display the current color theme information
   *
   * DESCRIPTION
   * Display the current color theme information with color
   *
   * RETURNS: N/A
   *
   * SEE ALSO:
   */
  void pktgen_show_theme(void);
  
  /**
   *
   * pktgen_set_theme_item - Set the given item name with the colors and attribute
   *
   * DESCRIPTION
   * Set the given theme item with the colors and attributes.
   *
   * RETURNS: N/A
   *
   * SEE ALSO:
   */
  void pktgen_set_theme_item(char *item,
  				  char *fg_color,
  				  char *bg_color,
  				  char *attr);
  
  /**
   *
   * pktgen_theme_save - Save the theme to a file.
   *
   * DESCRIPTION
   * Save a set of commands to set the theme colors and attributes.
   *
   * RETURNS: N/A
   *
   * SEE ALSO:
   */
  void pktgen_theme_save(char *filename);
  
  /**
   *
   * pktgen_theme_state - Set the current theme state.
   *
   * DESCRIPTION
   * Set the current theme state.
   *
   * RETURNS: N/A
   *
   * SEE ALSO:
   */
  void pktgen_theme_state(const char *state);
  
  /**
   *
   * pktgen_theme_show - Show the current theme state.
   *
   * DESCRIPTION
   * Show the current theme state.
   *
   * RETURNS: N/A
   *
   * SEE ALSO:
   */
  void pktgen_theme_show(void);
  
  /**
   *
   * pktgen_print_div - Draw the column divider with colons
   *
   * DESCRIPTION
   * Draw the column divider with colons.
   *
   * RETURNS: N/A
   *
   * SEE ALSO:
   */
  void pktgen_print_div(uint32_t row_first, uint32_t row_last, uint32_t col);
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif  /* _PKTGEN_DISPLAY_H_ */
  