rockbox/apps/plugins/text_viewer/tv_display.h

160 lines
3.4 KiB
C
Raw Normal View History

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2010 Yoshihisa Uchida
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef PLUGIN_TEXT_VIEWER_DISPLAY_H
#define PLUGIN_TEXT_VIEWER_DISPLAY_H
#include "plugin.h"
#include "tv_screen_pos.h"
/* text viewer layout parts functions */
#ifdef HAVE_LCD_BITMAP
/* show headaer */
void tv_show_header(void);
/*
* show footer
*
* [In] pos
* the current position
*/
void tv_show_footer(const struct tv_screen_pos *pos);
/*
* initialize the scrollbar
*
* [In] total
* total text size
*
* [In] show_scrollbar
* true: show the vertical scrollbar
* false: does not show the vertical scrollbar
*/
void tv_init_scrollbar(off_t total, bool show_scrollbar);
/*
* show horizontal/vertical scrollbar
*
* [In] window
* the current window
*
* [In] col
* the current column
*
* [In] cur_pos
* the current text position
*
* [In] size
* the size of text in displayed.
*/
void tv_show_scrollbar(int window, int col, off_t cur_pos, int size);
#endif
/*
* show bookmark
*
* [In] rows
* the array of row where the bookmark
*
* [In] count
* want to show bookmark count
*/
void tv_show_bookmarks(const int *rows, int count);
/* common display functons */
/* initialized display functions */
void tv_init_display(void);
/* start the display processing */
void tv_start_display(void);
/* end the display processing */
void tv_end_display(void);
/*update the display */
void tv_update_display(void);
/*
* draw the text
*
* [In] row
* the row that displays the text
*
* [In] text
* text
*
* [In] offset
* display the text that is since offset columns
*/
void tv_draw_text(int row, const unsigned char *text, int offset);
/* layout functions */
#ifdef HAVE_LCD_BITMAP
/*
* set the layout
*
* [In] col_w
* width per column
*
* [In] show_scrollbar
* true: show the vertical scrollbar
* false: does not show the vertical scrollbar
*/
void tv_set_layout(int col_w, bool show_scrollbar);
#else
/*
* set the layout
*
* [In] col_w
* width per column
*/
void tv_set_layout(int col_w);
#endif
/*
* get the draw area info
*
* [Out] width
* width of the draw area
*
* [Out] cols
* column count of the draw area
*
* [Out] width
* row count of the draw area
*/
void tv_get_drawarea_info(int *width, int *cols, int *rows);
/* viewport functions */
/* change the viewport */
void tv_change_viewport(void);
/* undo the viewport */
void tv_undo_viewport(void);
#endif