diff options
Diffstat (limited to 'asciiquarium/src/screen.h')
-rw-r--r-- | asciiquarium/src/screen.h | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/asciiquarium/src/screen.h b/asciiquarium/src/screen.h deleted file mode 100644 index 26fa3efd..00000000 --- a/asciiquarium/src/screen.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Asciiquarium - Native KDE Screensaver based on the Asciiquarium program - * (c) Kirk Baucom <kbaucom@schizoid.com>, which you can find at - * http://www.robobunny.com/projects/asciiquarium/ - * - * Ported to KDE by Maksim Orlovich <maksim@kde.org> and - * Michael Pyne <michael.pyne@kdemail.net>. - * - * Copyright (c) 2003 Kirk Baucom <kbaucom@schizoid.com> - * Copyright (c) 2005 Maksim Orlovich <maksim@kde.org> - * Copyright (c) 2005 Michael Pyne <michael.pyne@kdemail.net> - * - * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -#ifndef AA_SCREEN_H -#define AA_SCREEN_H - -#include <ntqcolor.h> -#include <ntqfont.h> -#include <ntqobject.h> -#include <ntqvaluevector.h> -#include <ntqpixmap.h> - -class Sprite; -class AASaver; - -/** - * This is the main display class of Asciiquarium. We use a pseudo-terminal-ish - * type coordinate system, where although this is a full fledged GUI application, - * Sprites and most external functions deal with logical text position - * coordinates instead of GUI coordinates. (x, y) starts in the upper-left of - * the real screen at (0, 0), and continues on to (width - 1, height - 1). - * - * Use addSprite() to add new Sprites to the Screen after you have created them - * and added their Frames. - */ -class Screen: public TQObject -{ - Q_OBJECT - -public: - /** - * Represents a logical character on the Screen. - */ - struct Pixel { - char letter; ///< Character to display in the cell. - TQRgb color; ///< Color to use for the cell. - - /// Default constructor. - Pixel(): letter(' '), color(0) - { - } - }; - -private: - AASaver* m_widget; ///< Widget that we should paint on. - int m_width; ///< Number of logical columns in the screen. - int m_height; ///< Number of logical rows on the screen. - int m_offX; ///< Number of pixels on left side needed to center image. - int m_offY; ///< Number of pixels on top side needed to center image. - - /** Pixmap cache of the image used to speed up rendering. All paints happen - * to the pixmap, which is then bitBlt()'ed to m_widget when the time comes - * to paint. - */ - TQPixmap m_backBuffer; - - int m_cellW; ///< The GUI width of a character cell. - int m_cellH; ///< The GUI height of a character cell. - - TQValueVector<Sprite*> m_sprites; ///< List of Sprites on screen. - TQValueVector<Sprite*> m_addedSprites; ///< List of Sprites to be added next frame. - -private slots: - /** - * Handles updating the screen buffer to draw the next frame. - */ - void doAnimate(); - -public: - /** - * Constructor. - * - * @param widget The widget to draw on. - */ - Screen(AASaver* widget); - ~Screen(); - - /// Returns the logical width of the screen. - int width() const - { - return m_width; - } - - /// Returns the logical height of the screen. - int height() const - { - return m_height; - } - - /// Returns the GUI width of a character cell. - int cellWidth() const - { - return m_cellW; - } - - /// Returns the GUI height of a character cell. - int cellHeight() const - { - return m_cellH; - } - - /** - * Adds a sprite to the internal sprite list. - * - * @param sprite The Sprite to add. It will show up in the next frame. - */ - void addSprite(Sprite* sprite) - { - m_addedSprites.append(sprite); - } - - /// Returns the number of milliseconds separating each animation tick. - int msPerTick() const; - - /** - * Updates the backbuffer, and asks the portion of the widget to be - * repainted. - * - * @param x The logical x coordinate of the left edge of the update area. - * @param y The logical y coordinate of the top edge of the update area. - * @param updatePixmap The pixmap to draw into the buffer, which should be - * masked to only draw non-transparent regions. - */ - void updateSpan(int x, int y, const TQPixmap &updatePixmap); - - /** - * Clear the given portion of the backbuffer, asks for a repaint. - * - * @param x The logical x coordinate of the left edge of the update region. - * @param y The logical y coordinate of the top edge of the update region. - * @param clearPixmap the pixmap to use to clear the span, which should be - * the background color of the Screen, and masked to - * only draw the area that needs cleared. - */ - void clearSpan(int x, int y, const TQPixmap &clearPixmap); - - /** - * Actually paints the region on the widget. - * - * @param r The region of the widget to update. - */ - void paint(TQRegion r); -}; - -#endif - -// vim: set et ts=8 sw=4: |