/*(GPL) ------------------------------------------------------------ Kobo Deluxe - An enhanced SDL port of XKobo ------------------------------------------------------------ * Copyright (C) 2003, 2007 David Olofson * * 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 KOBO_DASHBOARD_H #define KOBO_DASHBOARD_H #include "window.h" /* "Screen" window; takes care of the border, if any. */ class screen_window_t : public window_t { int _top, _left, _right, _bottom; public: void border(int top, int left, int right, int bottom); void refresh(SDL_Rect *r); }; enum dashboard_modes_t { DASHBOARD_OFF = 0, DASHBOARD_BLACK, DASHBOARD_GAME, DASHBOARD_LOADING }; /* Dashboard window; dashboard or loading screen. */ class dashboard_window_t : public window_t { char *_msg; float _percent; dashboard_modes_t _mode; int progress_index; float *progress_table; Uint32 progress_time; int progress_bench; void render_progress(); public: dashboard_window_t(); ~dashboard_window_t(); void mode(dashboard_modes_t m); void doing(const char *msg); void progress_init(float *progtab); void progress(); void progress_done(); /* * Tools: * -1: Random tool * 0: Black 4x4 square * 1+: Brushes from "brushes.png"; * 1: Soft black 16 pixel round brush * 2: (4/8)x4 tilable romboid brush * 3: Tilable garbage brush * 4: Vertical "D" brush */ void nibble(int tool = -1); void refresh(SDL_Rect *r); }; /* Bar graph display */ class bargraph_t : public window_t { float _value; int _redmax; int _y; int _enabled; public: bargraph_t(); void value(float val); void refresh(SDL_Rect *r); void redmax(int rm) { _redmax = rm; } void enable(int ena); }; #endif /* KOBO_DASHBOARD_H */