another try to fix those win/linux crashes :)
[quassel.git] / src / qtopia / topicbar.h
index 23afb1d..9f00f53 100644 (file)
@@ -1,11 +1,11 @@
 /***************************************************************************
- *   Copyright (C) 2005-07 by The Quassel IRC Development Team             *
+ *   Copyright (C) 2005-08 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   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.                                   *
+ *   (at your option) version 3.                                           *
  *                                                                         *
  *   This program is distributed in the hope that it will be useful,       *
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifndef _TOPICBAR_H_
-#define _TOPICBAR_H_
+#ifndef TOPICBAR_H_
+#define TOPICBAR_H_
 
 #include <QPushButton>
 #include <QTimeLine>
 
-#include <QtGui>
+#include "buffermodel.h"
 
 class QPixmap;
 class QTimer;
@@ -38,21 +38,33 @@ class TopicBar : public QPushButton {
 
   public slots:
     void setContents(QString text, bool oneshot = true);
+    void startScrolling();
+    void stopScrolling();
 
   protected:
-    virtual void paintEvent(QPaintEvent * event);
+    virtual void paintEvent(QPaintEvent *event);
+    virtual void resizeEvent (QResizeEvent *event);
+    
 
   private slots:
     void updateOffset();
+    void dataChanged(const QModelIndex &, const QModelIndex &);
+    void currentChanged(const QModelIndex &, const QModelIndex &);
 
   private:
+    void calcTextMetrics();
+
+    BufferModel *_model;
+    QItemSelectionModel *_selectionModel;
+    
     QTimer *timer;
     int offset;
     int fillTextStart, secondTextStart;
-    QString text;
+    QString text, displayText;
     QString fillText;
     QFont topicFont;
     int frameWidth;
+    int textWidth;
     bool oneshot;
 };