From ea76b6988ccafaa6a4d4ed90f2489d0e49e1f180 Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Sat, 5 Sep 2015 09:32:30 -0400 Subject: Imported Upstream version 0.40.24 --- g_src/interface.h | 149 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100755 g_src/interface.h (limited to 'g_src/interface.h') diff --git a/g_src/interface.h b/g_src/interface.h new file mode 100755 index 0000000..6df8fdd --- /dev/null +++ b/g_src/interface.h @@ -0,0 +1,149 @@ +#ifndef INTERFACE_H +#define INTERFACE_H + +#include +using std::string; +#include +#include "svector.h" +#include "ViewBase.h" +#include "keybindings.h" +#include "enabler.h" +#include "music_and_sound_g.h" + +struct cursesmovie_headerst +{ + int dimx,dimy; + int delayrate; +}; + +class viewscreen_movieplayerst : viewscreenst +{ + public: + static viewscreen_movieplayerst *create(char pushtype,viewscreenst *scr=NULL); + virtual void help(); + virtual void feed(std::set &events); + virtual void logic(); + virtual void render(); + virtual char movies_okay(){return 0;} + void clearfilelist(); + void force_play(const string &file); + + virtual char is_option_screen(){if(is_playing)return 2;else return 0;} + + protected: + char saving; + char loading; + char editing; + char text_mode; + unsigned char editing_char; + int editing_copy_from; + short editing_screenf; + short editing_screenb; + short editing_screenbright; + int editing_selected_sound; + char editing_menu; + string savename; + string force_file; + char is_playing; + char is_forced_play; + char quit_if_no_play; + int maxmoviepos; + int end_frame_pos; + + int32_t selfile; + svector filelist; + + viewscreen_movieplayerst(); + virtual ~viewscreen_movieplayerst(){clearfilelist();}; +}; + +enum InterfacePushType +{ + INTERFACE_PUSH_AS_PARENT, + INTERFACE_PUSH_AS_CHILD, + INTERFACE_PUSH_AT_BACK, + INTERFACE_PUSH_AT_FRONT, + INTERFACE_PUSHNUM +}; + +#define INTERFACEFLAG_RETAIN_NONZERO_INPUT BIT1 + +#define MOVIEBUFFSIZE 800000 +#define COMPMOVIEBUFFSIZE 1000000 + +class interfacest +{ + int original_fps; + viewscreenst *grab_lastscreen(); + friend class viewscreen_movieplayerst; + + public: + viewscreenst view; + unsigned int flag; + + int shutdown_interface_tickcount; + int shutdown_interface_for_ms; + + char loop(); + void remove_to_first(); + void removescreen(viewscreenst *scr); + void addscreen(viewscreenst *scr,char pushtype,viewscreenst *relate); + char is_supermovie_on() + { + return supermovie_on; + } + + void print_interface_token(InterfaceKey key,justification just=justify_left); + + interfacest(); + ~interfacest(); + + protected: + char supermovie_on; + int supermovie_pos; + int supermovie_delayrate; + int supermovie_delaystep; + stringvectst supermovie_sound; +#ifndef NO_FMOD + int supermovie_sound_time[200][SOUND_CHANNELNUM]; +#endif + unsigned char supermoviebuffer[MOVIEBUFFSIZE]; + unsigned char supermoviebuffer_comp[COMPMOVIEBUFFSIZE]; + int currentblocksize; + int nextfilepos; + char first_movie_write; + string movie_file; + + void insertscreen_as_parent(viewscreenst *scr,viewscreenst *child); + void insertscreen_as_child(viewscreenst *scr,viewscreenst *parent); + void insertscreen_at_back(viewscreenst *scr); + void insertscreen_at_front(viewscreenst *scr); + void handlemovie(char flushall); + void finish_movie(); + void use_movie_input(); + + int write_movie_chunk(); + void read_movie_chunk(int &maxmoviepos,char &is_playing); +}; + +#define SCROLLING_NOSELECT BIT1 +#define SCROLLING_NO_WRAP BIT2 +#define SCROLLING_REVERSE BIT3 +void finishscrolling(int32_t &selection,int32_t min,int32_t max,int32_t jump,uint32_t flag,char littlekey); +char standardscrolling(std::set &events,short &selection,int32_t min,int32_t max,int32_t jump,uint32_t flag=0); +char standardscrolling(std::set &events,int32_t &selection,int32_t min,int32_t max,int32_t jump,uint32_t flag=0); +char secondaryscrolling(std::set &events,short &scroll,int32_t min,int32_t max,int32_t jump,uint32_t flag=0); +char secondaryscrolling(std::set &events,int32_t &scroll,int32_t min,int32_t max,int32_t jump,uint32_t flag=0); +#define STRINGENTRY_LETTERS BIT1 +#define STRINGENTRY_SPACE BIT2 +#define STRINGENTRY_NUMBERS BIT3 +#define STRINGENTRY_CAPS BIT4 +#define STRINGENTRY_SYMBOLS BIT5 +char standardstringentry(char *str,int maxlen,unsigned int flag,std::set &events); +char standardstringentry(string &str,int maxlen,unsigned int flag,std::set &events); + +void drawborder(const char *str,char style=0,const char *colorstr=NULL); + +extern interfacest gview; + +#endif -- cgit v1.2.3