Files
recycled-ni-neutrino/src/gui/epgview.h
Thilo Graf 4d00d39731 CEpgData: fix header size
Header height was bound to font size in previous versions, but new
header is using other font as default, so we have wrong height,
therefore header items could paint outside of header. This should fix this.

In future we should unify header size with other windows.


Origin commit data
------------------
Commit: 23912ba583
Author: Thilo Graf <dbt@novatux.de>
Date: 2017-05-04 (Thu, 04 May 2017)
2017-05-04 16:55:43 +02:00

124 lines
3.5 KiB
C++

/*
Neutrino-GUI - DBoxII-Project
Copyright (C) 2001 Steffen Hehn 'McClean'
Homepage: http://dbox.cyberphoria.org/
Kommentar:
Diese GUI wurde von Grund auf neu programmiert und sollte nun vom
Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert
auf der Client-Server Idee, diese GUI ist also von der direkten DBox-
Steuerung getrennt. Diese wird dann von Daemons uebernommen.
License: GPL
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 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 the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __epgview__
#define __epgview__
#include <driver/rcinput.h>
#include <system/settings.h>
#include <driver/movieinfo.h>
#include "widget/menue.h"
#include <vector>
#include <string>
class CFrameBuffer;
class CEpgData
{
private:
CFrameBuffer *frameBuffer;
CChannelEventList evtlist;
CChannelEventList followlist;
CEPGData epgData;
CComponentsHeader *header;
CComponentsFrmChain *Bottombox;
CComponentsPictureScalable *lpic, *rpic;
CComponentsText *lText, *rText;
CProgressBar *pb;
Font *font_title;
std::string epg_date;
std::string epg_start;
std::string epg_end;
int epg_done;
bool bigFonts;
bool has_follow_screenings;
bool call_fromfollowlist;
bool tmdb_active;
int stars;
time_t tmp_curent_zeit;
uint64_t prev_id;
time_t prev_zeit;
uint64_t next_id;
time_t next_zeit;
int ox, oy, sx, sy, toph, sb;
int emptyLineCount, info1_lines;
int textCount;
typedef std::pair<std::string,int> epg_pair;
std::vector<epg_pair> epgText;
std::vector<epg_pair> epgText_saved;
std::string epgTextSwitch;
std::string extMovieInfo;
int topheight,topboxheight;
int buttonheight,botboxheight;
int medlineheight,medlinecount;
MI_MOVIE_INFO *mp_movie_info;
void GetEPGData(const t_channel_id channel_id, uint64_t id, time_t* startzeit, bool clear = true );
void GetPrevNextEPGData( uint64_t id, time_t* startzeit );
void addTextToArray( const std::string & text, int screening );
void processTextToArray(std::string text, int screening = 0, bool has_cover = false);
void showText(int startPos, int ypos, bool has_cover = false, bool fullClear = true);
bool hasFollowScreenings(const t_channel_id channel_id, const std::string & title);
int FollowScreenings(const t_channel_id channel_id, const std::string & title);
void showTimerEventBar(bool show, bool adzap = false, bool mp_info = false);
void showProgressBar();
bool isCurrentEPG(const t_channel_id channel_id);
public:
CEpgData();
~CEpgData();
void start( );
int show(const t_channel_id channel_id, uint64_t id = 0, time_t* startzeit = NULL, bool doLoop = true, bool callFromfollowlist = false, bool mp_info = false );
int show_mp(MI_MOVIE_INFO *mi, int mp_position = 0, int mp_duration = 0, bool doLoop = true);
void hide();
void ResetModules();
};
class CEPGDataHandler : public CMenuTarget
{
public:
int exec( CMenuTarget* parent, const std::string &actionkey);
};
#endif