summaryrefslogtreecommitdiffstats
path: root/tdemid/kdisptext.h
diff options
context:
space:
mode:
Diffstat (limited to 'tdemid/kdisptext.h')
-rw-r--r--tdemid/kdisptext.h126
1 files changed, 126 insertions, 0 deletions
diff --git a/tdemid/kdisptext.h b/tdemid/kdisptext.h
new file mode 100644
index 00000000..04a25f27
--- /dev/null
+++ b/tdemid/kdisptext.h
@@ -0,0 +1,126 @@
+/**************************************************************************
+
+ kdisptext.h - The widget that displays the karaoke/lyrics text
+ Copyright (C) 1997,98 Antonio Larrosa Jimenez
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ Send comments and bug fixes to larrosa@kde.org
+ or to Antonio Larrosa, Rio Arnoya, 10 5B, 29006 Malaga, Spain
+
+***************************************************************************/
+#ifndef _kdisptext_h_
+#define _kdisptext_h_
+
+#include <tqwidget.h>
+#include <tqscrollview.h>
+#include <libtdemid/player.h>
+
+struct kdispt_ev
+{
+ SpecialEvent *spev;
+ int xpos;
+ class TQRect r;
+ kdispt_ev *next;
+};
+
+struct kdispt_line
+{
+ kdispt_ev *ev;
+ int num;
+ int ypos;
+ kdispt_line *next;
+};
+
+class TQFont;
+class TQFontMetrics;
+class TQScrollBar;
+
+class KDisplayText : public TQScrollView
+{
+ Q_OBJECT
+
+private:
+ TQTextCodec *lyrics_codec;
+
+ TQFontMetrics *qfmetr;
+ TQFont *qtextfont;
+
+ int typeoftextevents;
+
+ kdispt_line *linked_list_[2];
+ int nlines_[2];
+ kdispt_line *first_line_[2];
+ kdispt_line *cursor_line_[2];
+ kdispt_ev *cursor_[2];
+
+ kdispt_line *linked_list;
+ kdispt_line *cursor_line;
+ kdispt_ev *cursor;
+
+ kdispt_line *first_line; // Pointer to first text at first visible line
+
+ int nlines; // Total number of lines
+ int nvisiblelines; // Number of visible lines
+
+ void RemoveLine(kdispt_line *tmpl);
+ void RemoveLinkedList(void);
+
+ int IsLineFeed(char c,int type=0);
+ virtual void drawContents(TQPainter *qpaint,int clipx,int clipy,int clipw,int cliph);
+
+ kdispt_line * searchYOffset(int y, kdispt_line *start);
+
+ int maxX[2];
+ int maxY[2];
+ int autoscrollv;
+
+protected:
+ virtual void resizeEvent(TQResizeEvent *qre);
+ virtual void timerEvent(TQTimerEvent *e);
+
+public:
+ KDisplayText(TQWidget *parent,const char *name);
+ virtual ~KDisplayText();
+
+ void ClearEv(bool totally=true);
+ void AddEv(SpecialEvent *ev);
+ void calculatePositions(void);
+
+ void CursorToHome(void);
+
+ void ChangeTypeOfTextEvents(int type);
+ int ChooseTypeOfTextEvents(void);
+ void PaintIn(int type);
+ void gotomsec(ulong i);
+
+ TQFont *getFont(void);
+ void fontChanged(void);
+
+ void saveLyrics(FILE *fh);
+
+ void setLyricsEncoding(const TQString &enc);
+
+// TQSize sizeHint();
+
+public slots:
+ void ScrollDown();
+ void ScrollUp();
+ void ScrollPageDown();
+ void ScrollPageUp();
+
+};
+
+#endif