summaryrefslogtreecommitdiff
path: root/noncore/todayplugins/stockticker/stocktickerlib
Side-by-side diff
Diffstat (limited to 'noncore/todayplugins/stockticker/stocktickerlib') (more/less context) (show whitespace changes)
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/.cvsignore3
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerlib.pro27
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerplugin.cpp56
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerplugin.h47
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.cpp45
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.h40
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp239
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h62
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktimerpluginwidget.h45
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/ticker.cpp93
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/ticker.h32
11 files changed, 689 insertions, 0 deletions
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/.cvsignore b/noncore/todayplugins/stockticker/stocktickerlib/.cvsignore
new file mode 100644
index 0000000..c9bb88e
--- a/dev/null
+++ b/noncore/todayplugins/stockticker/stocktickerlib/.cvsignore
@@ -0,0 +1,3 @@
+Makefile*
+moc_*
+*.moc \ No newline at end of file
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerlib.pro b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerlib.pro
new file mode 100644
index 0000000..28ef072
--- a/dev/null
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerlib.pro
@@ -0,0 +1,27 @@
+TEMPLATE = lib
+CONFIG -= moc
+CONFIG += qt debug
+
+HEADERS = stocktickerplugin.h stocktickeruginimpl.h stocktickerpluginwidget.h ticker.h \
+ ../libstocks/csv.h \
+ ../libstocks/http.h \
+ ../libstocks/lists.h \
+ ../libstocks/stocks.h
+SOURCES = stocktickerplugin.cpp stocktickerpluginimpl.cpp stocktickerpluginwidget.cpp ticker.cpp \
+ ../libstocks/csv.c \
+ ../libstocks/currency.c \
+ ../libstocks/history.c \
+ ../libstocks/http.c \
+ ../libstocks/lists.c \
+ ../libstocks/stocks.c
+
+INCLUDEPATH += $(OPIEDIR)/include \
+ ../ ../library
+DEPENDPATH += $(OPIEDIR)/include \
+ ../ ../library
+
+LIBS+= -lqpe -lopie
+TMAKE_CFLAGS += -D__UNIX__
+
+DESTDIR = $(OPIEDIR)/plugins/today
+TARGET = todaystocktickerplugin
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerplugin.cpp b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerplugin.cpp
new file mode 100644
index 0000000..82dfb13
--- a/dev/null
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerplugin.cpp
@@ -0,0 +1,56 @@
+/*
+ * stocktickerplugin.cpp
+ *
+ * copyright : (c) 2002 by L.J. Potter
+ * email : llornkcor@handhelds.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. *
+ * *
+ ***************************************************************************/
+
+
+#include "stocktickerplugin.h"
+#include "stocktickerpluginwidget.h"
+
+
+StockTickerPlugin::StockTickerPlugin() {
+}
+
+StockTickerPlugin::~StockTickerPlugin() {
+}
+
+QString StockTickerPlugin::pluginName() const {
+ return QObject::tr( "StockTicker plugin" );
+}
+
+double StockTickerPlugin::versionNumber() const {
+ return 0.6;
+}
+
+QString StockTickerPlugin::pixmapNameWidget() const {
+ return "pass";
+}
+
+QWidget* StockTickerPlugin::widget( QWidget * wid ) {
+ return new StockTickerPluginWidget( wid, "StockTicker " );
+}
+
+QString StockTickerPlugin::pixmapNameConfig() const {
+ return 0l;
+}
+
+TodayConfigWidget* StockTickerPlugin::configWidget( QWidget* wid ) {
+ return 0l;
+}
+
+QString StockTickerPlugin::appName() const {
+ return "stockticker";
+}
+
+
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerplugin.h b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerplugin.h
new file mode 100644
index 0000000..9f174bf
--- a/dev/null
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerplugin.h
@@ -0,0 +1,47 @@
+/*
+ * stocktickerplugin.h
+ *
+ * copyright : (c) 2002 by L.J. Potter
+ * email : llornkcor@handhelds.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. *
+ * *
+ ***************************************************************************/
+
+
+#ifndef STOCKTICKER_PLUGIN_H
+#define STOCKTICKER_PLUGIN_H
+
+#include <qstring.h>
+#include <qwidget.h>
+
+#include <opie/tododb.h>
+#include <opie/oclickablelabel.h>
+
+#include <opie/todayplugininterface.h>
+#include <opie/todayconfigwidget.h>
+
+class StockTickerPlugin : public TodayPluginObject {
+
+public:
+ StockTickerPlugin();
+ ~StockTickerPlugin();
+
+ QString pluginName() const;
+ double versionNumber() const;
+ QString pixmapNameWidget() const;
+ QWidget* widget(QWidget *);
+ QString pixmapNameConfig() const;
+ TodayConfigWidget* configWidget(QWidget *);
+ QString appName() const;
+
+
+};
+
+#endif
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.cpp b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.cpp
new file mode 100644
index 0000000..9a640d4
--- a/dev/null
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.cpp
@@ -0,0 +1,45 @@
+/*
+ * stocktickerpluginimpl.cpp
+ *
+ * copyright : (c) 2002 by L.J. Potter
+ * email : llornkcor@handhelds.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. *
+ * *
+ ***************************************************************************/
+
+
+
+#include "stocktickerplugin.h"
+#include "stocktickerpluginimpl.h"
+
+StockTickerPluginImpl::StockTickerPluginImpl() {
+ stocktickerPlugin = new StockTickerPlugin();
+}
+
+StockTickerPluginImpl::~StockTickerPluginImpl() {
+}
+
+
+TodayPluginObject* StockTickerPluginImpl::guiPart() {
+ return stocktickerPlugin;
+}
+
+QRESULT StockTickerPluginImpl::queryInterface( const QUuid & uuid, QUnknownInterface **iface ) {
+ *iface = 0;
+ if ( ( uuid == IID_QUnknown ) || ( uuid == IID_TodayPluginInterface ) ) {
+ *iface = this, (*iface)->addRef();
+ }
+ return QS_OK;
+
+}
+
+Q_EXPORT_INTERFACE() {
+ Q_CREATE_INSTANCE( StockTickerPluginImpl );
+}
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.h b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.h
new file mode 100644
index 0000000..300c545
--- a/dev/null
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.h
@@ -0,0 +1,40 @@
+/*
+ * stocktickerpluginimpl.h
+ *
+ * copyright : (c) 2002 by L.J. Potter
+ * email : llornkcor@handhelds.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. *
+ * *
+ ***************************************************************************/
+
+#ifndef STOCKTICKER_PLUGIN_IMPL_H
+#define STOCKTICKER_PLUGIN_IMPL_H
+
+#include <opie/todayplugininterface.h>
+
+class StockTickerPlugin;
+
+class StockTickerPluginImpl : public TodayPluginInterface{
+
+public:
+ StockTickerPluginImpl();
+ virtual ~StockTickerPluginImpl();
+
+ QRESULT queryInterface( const QUuid &, QUnknownInterface** );
+ Q_REFCOUNT
+
+ virtual TodayPluginObject *guiPart();
+
+private:
+ StockTickerPlugin *stocktickerPlugin;
+ ulong ref;
+};
+
+#endif
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp
new file mode 100644
index 0000000..3eaade4
--- a/dev/null
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp
@@ -0,0 +1,239 @@
+/*
+ * stocktickerpluginwidget.cpp
+ *
+ * copyright : (c) 2002 by L.J. Potter
+ * email : llornkcor@handhelds.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. *
+ * *
+ ***************************************************************************/
+
+#include <qvaluelist.h>
+#include <qtl.h>
+#include <qstring.h>
+#include <qstringlist.h>
+#include <qobject.h>
+#include <qlayout.h>
+#include <qlineedit.h>
+#include <qregexp.h>
+
+#include <qpe/config.h>
+#include <qpe/timestring.h>
+#include <qpe/qcopenvelope_qws.h>
+
+#include "ticker.h"
+
+extern "C" {
+#include "libstocks/stocks.h"
+}
+
+#include "stocktickerpluginwidget.h"
+
+StockTickerPluginWidget::StockTickerPluginWidget( QWidget *parent, const char* name)
+ : QWidget(parent, name ) {
+ init();
+}
+
+StockTickerPluginWidget::~StockTickerPluginWidget() {
+}
+
+void StockTickerPluginWidget::init() {
+
+ QHBoxLayout* layout = new QHBoxLayout( this );
+
+ stocktickerTicker = new Ticker(this);
+ stocktickerTicker->setMinimumHeight(15);
+ connect( stocktickerTicker, SIGNAL( mousePressed()), this, SLOT( doStocks() ));
+
+ layout->addWidget( stocktickerTicker);
+}
+
+void StockTickerPluginWidget::doStocks() {
+
+ Config cfg( "stockticker");
+ cfg.setGroup( "Symbols" );
+ QString symbollist;
+ symbollist = cfg.readEntry("Symbols", "");
+ symbollist.replace(QRegExp(" "),"+");//seperated by +
+// qDebug(symbollist);
+
+ getStocks( symbollist.latin1());
+
+ stocktickerTicker->setText( output );
+}
+
+void StockTickerPluginWidget::getStocks( const char *blah) {
+
+ stock *stocks_quotes=NULL;
+ stock *stocks_tmp;
+
+ QString tempString;
+ output = "";
+
+ libstocks_return_code error;
+
+ Config cfg( "stockticker");
+ cfg.setGroup( "Fields" );
+ bool dotimeCheck, dodateCheck, dosymbolCheck, donameCheck;
+ bool docurrentPriceCheck, dolastPriceCheck, doopenPriceCheck;
+ bool dominPriceCheck, domaxPriceCheck, dovariationCheck, dovolumeCheck;
+
+ dotimeCheck=dodateCheck=dosymbolCheck=donameCheck= docurrentPriceCheck=dolastPriceCheck=doopenPriceCheck=dominPriceCheck=domaxPriceCheck=dovariationCheck=dovolumeCheck=false;
+
+ dotimeCheck=cfg.readBoolEntry("timeCheck",1);
+ dodateCheck=cfg.readBoolEntry("dateCheck",1);
+ dosymbolCheck=cfg.readBoolEntry("symbolCheck",1);
+ donameCheck=cfg.readBoolEntry("nameCheck",1);
+ docurrentPriceCheck=cfg.readBoolEntry("currentPriceCheck",1);
+ dolastPriceCheck=cfg.readBoolEntry("lastPriceCheck",1);
+ doopenPriceCheck=cfg.readBoolEntry("openPriceCheck",1);
+ dominPriceCheck=cfg.readBoolEntry("minPriceCheck",1);
+ domaxPriceCheck=cfg.readBoolEntry("maxPriceCheck",1);
+ dovariationCheck=cfg.readBoolEntry("variationCheck",1);
+ dovolumeCheck=cfg.readBoolEntry("volumeCheck",1);
+
+ DefProxy();
+ char *stock_liste = (char *)blah;
+ /* Get the stocks and process errors */
+ error = get_stocks( stock_liste, &stocks_quotes);
+
+ if (error) {
+ printf("Error in getting stocks (%d)\n", error);
+ tempString.sprintf("Error in getting stocks (%d)\n", error);
+ output =tempString;
+ return;
+// exit(1);
+ }
+
+ stocks_tmp = stocks_quotes;
+
+ /* Displays the stocks */
+ while(stocks_tmp!=0){
+
+ if (stocks_tmp->Time) {
+// printf("%s ", stocks_tmp->Time);
+ tempString.sprintf("|| %s ", stocks_tmp->Time);
+ tempString.replace(QRegExp("\""),"");
+ if( dotimeCheck)
+ output +=tempString;
+ }
+ if (stocks_tmp->Date) {
+// printf("%s ", stocks_tmp->Date);
+ tempString.sprintf("| %s ", stocks_tmp->Date);
+ tempString.replace(QRegExp("\""),"");
+ if(dodateCheck)
+ output +=tempString;
+ }
+// printf("\n");
+
+// printf("----------------------------------------\n");
+
+ if ( strlen(stocks_tmp->Symbol) > 20 ) {
+// printf("| Symbol | %.20s |\n",stocks_tmp->Symbol);
+ tempString.sprintf("| Symbol %s ",stocks_tmp->Symbol);
+ if(dosymbolCheck)
+ output +=tempString;
+ }
+ else {
+// printf("| Symbol | %-20s |\n",stocks_tmp->Symbol);
+ tempString.sprintf("| Symbol %s ",stocks_tmp->Symbol);
+ if(dosymbolCheck)
+ output +=tempString;
+ }
+
+ if (stocks_tmp->Name) {
+ if ( strlen(stocks_tmp->Name) > 20 ) {
+// printf("| Name %.20s |\n",stocks_tmp->Name);
+ tempString.sprintf("| Name %s ",stocks_tmp->Name);
+ tempString.stripWhiteSpace();
+ if(donameCheck)
+ output +=tempString;
+ } else {
+// printf("| Name | %-20s |\n",stocks_tmp->Name);
+ tempString.sprintf("| Name %s ",stocks_tmp->Name);
+ tempString.stripWhiteSpace();
+ if(donameCheck)
+ output +=tempString;
+ }
+ }
+ else {
+// printf("| Name | |\n");
+ tempString.sprintf("| Name | |");
+ if(donameCheck)
+ output +=tempString;
+ }
+
+// printf("| Price | %-7.2f |\n", stocks_tmp->CurrentPrice);
+ tempString.sprintf("| Price %-7.2f ", stocks_tmp->CurrentPrice);
+ if(docurrentPriceCheck)
+ output +=tempString;
+
+// printf("| Yesterday | %-7.2f |\n",stocks_tmp->LastPrice);
+ tempString.sprintf("| Yesterday %-7.2f ",stocks_tmp->LastPrice);
+ if(dolastPriceCheck)
+ output +=tempString;
+
+// printf("| Open | %-7.2f |\n",stocks_tmp->OpenPrice);
+ tempString.sprintf("| Open %-7.2f ",stocks_tmp->OpenPrice);
+ if(doopenPriceCheck)
+ output +=tempString;
+
+// printf("| Min | %-7.2f |\n", stocks_tmp->MinPrice);
+ tempString.sprintf("| Min %-7.2f ", stocks_tmp->MinPrice);
+ if(dominPriceCheck)
+ output +=tempString;
+
+// printf("| Max | %-7.2f |\n",stocks_tmp->MaxPrice);
+ tempString.sprintf("| Max %-7.2f ",stocks_tmp->MaxPrice);
+ if(domaxPriceCheck)
+ output +=tempString;
+
+// printf("| Var | %-6.2f (%5.2f %%) |\n", stocks_tmp->Variation, stocks_tmp->Pourcentage);
+ tempString.sprintf("| Var %-6.2f (%5.2f %%) ", stocks_tmp->Variation, stocks_tmp->Pourcentage);
+ if(dovariationCheck)
+ output +=tempString;
+
+// printf("| Volume | %-9d |\n", stocks_tmp->Volume);
+ tempString.sprintf("| Volume %-9d ", stocks_tmp->Volume);
+ if(dovolumeCheck)
+ output +=tempString;
+
+// printf("----------------------------------------\n\n");
+ tempString.sprintf("||==++==");
+ output +=tempString;
+
+ /* Simple function which help to browse in the stocks list */
+ stocks_tmp = next_stock(stocks_tmp);
+ }
+
+ /* frees stocks */
+ free_stocks(stocks_quotes);
+
+}
+
+void StockTickerPluginWidget::DefProxy(void) {
+ char *proxy;
+ libstocks_return_code error;
+
+ /* Proxy support */
+ /* Checks for "http_proxy" environment variable */
+ proxy = getenv("http_proxy");
+ if(proxy) {
+ /* printf("proxy set\n"); */
+ error = set_proxy(proxy);
+ if (error) {
+// printf("Proxy error (%d)\n", error);
+ QString tempString;
+ tempString.sprintf("Proxy error (%d)\n", error);
+ output = tempString;
+ return;
+// exit(1);
+ }
+ }
+}
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h
new file mode 100644
index 0000000..6524ae4
--- a/dev/null
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h
@@ -0,0 +1,62 @@
+/*
+ * stocktickerpluginwidget.h
+ *
+ * copyright : (c) 2002 by L.J. Potter
+ * email : lornkcor@handhelds.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. *
+ * *
+ ***************************************************************************/
+
+
+#ifndef STOCKTICKERL_PLUGIN_WIDGET_H
+#define STOCKTICKERL_PLUGIN_WIDGET_H
+
+#include <qstring.h>
+#include <qwidget.h>
+#include <qlineedit.h>
+
+#include <opie/tododb.h>
+#include <opie/oclickablelabel.h>
+
+#include <sys/types.h>
+#include <sys/uio.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "ticker.h"
+
+/* extern "C" { */
+/* #include "stocks.h" */
+/* } */
+
+class StockTickerPluginWidget : public QWidget {
+
+ Q_OBJECT
+
+public:
+ StockTickerPluginWidget( QWidget *parent, const char *name );
+ ~StockTickerPluginWidget();
+ QString output;
+
+protected slots:
+ void doStocks();
+
+private:
+ Ticker *stocktickerTicker;
+
+ void init();
+ void getStocks( const char *stock_liste);
+ void DefProxy(void);
+
+};
+
+#endif
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktimerpluginwidget.h b/noncore/todayplugins/stockticker/stocktickerlib/stocktimerpluginwidget.h
new file mode 100644
index 0000000..2feef80
--- a/dev/null
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktimerpluginwidget.h
@@ -0,0 +1,45 @@
+/*
+ * mailpluginwidget.h
+ *
+ * copyright : (c) 2002 by Maximilian Reiß
+ * email : harlekin@handhelds.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. *
+ * *
+ ***************************************************************************/
+
+
+#ifndef MAIL_PLUGIN_WIDGET_H
+#define MAIL_PLUGIN_WIDGET_H
+
+#include <qstring.h>
+#include <qwidget.h>
+
+#include <opie/tododb.h>
+#include <opie/oclickablelabel.h>
+
+class MailPluginWidget : public QWidget {
+
+ Q_OBJECT
+
+
+public:
+ MailPluginWidget( QWidget *parent, const char *name );
+ ~MailPluginWidget();
+
+protected slots:
+ void startMail();
+
+private:
+ OClickableLabel *mailLabel;
+ void readConfig();
+ void getInfo();
+};
+
+#endif
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/ticker.cpp b/noncore/todayplugins/stockticker/stocktickerlib/ticker.cpp
new file mode 100644
index 0000000..6e6273b
--- a/dev/null
+++ b/noncore/todayplugins/stockticker/stocktickerlib/ticker.cpp
@@ -0,0 +1,93 @@
+/*
+                This file is part of the Opie Project
+
+              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
+ Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
+ Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
+ =.
+ .=l.
+           .>+-=
+ _;:,     .>    :=|. This program is free software; you can
+.> <`_,   >  .   <= redistribute it and/or modify it under
+:`=1 )Y*s>-.--   : the terms of the GNU General Public
+.="- .-=="i,     .._ License as published by the Free Software
+ - .   .-<_>     .<> Foundation; either version 2 of the License,
+     ._= =}       : or (at your option) any later version.
+    .%`+i>       _;_.
+    .i_,=:_.      -<s. 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
+..}^=.=       =       ; Library General Public License for more
+++=   -.     .`     .: details.
+ :     =  ...= . :.=-
+ -.   .:....=;==+<; You should have received a copy of the GNU
+  -_. . .   )=.  = Library General Public License along with
+    --        :-=` this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+*/
+
+#include <qpe/qpeapplication.h>
+#include <qpe/resource.h>
+#include <qpe/config.h>
+
+#include <qwidget.h>
+#include <qpixmap.h>
+#include <qbutton.h>
+#include <qpainter.h>
+#include <qframe.h>
+#include <qlayout.h>
+#include <qdir.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "ticker.h"
+
+Ticker::Ticker( QWidget* parent=0 ) : QFrame( parent ) {
+ setFrameStyle( NoFrame/*WinPanel | Sunken */);
+}
+
+Ticker::~Ticker() {
+}
+
+void Ticker::setText( const QString& text ) {
+
+ pos = 0; // reset it everytime the text is changed
+ scrollText = text;
+
+ int pixelLen = fontMetrics().width( text );
+ QPixmap pm( pixelLen, contentsRect().height() );
+ pm.fill( QColor( 167, 212, 167 ) );
+ QPainter pmp( &pm );
+ pmp.setPen( Qt::black );
+ pmp.drawText( 0, 0, pixelLen, contentsRect().height(), AlignVCenter, scrollText );
+ pmp.end();
+ scrollTextPixmap = pm;
+
+ killTimers();
+ if ( pixelLen > contentsRect().width() )
+ startTimer( 50 );
+ update();
+}
+
+
+void Ticker::timerEvent( QTimerEvent * ) {
+ pos = ( pos <= 0 ) ? scrollTextPixmap.width() : pos - 1;
+ repaint( FALSE );
+}
+
+void Ticker::drawContents( QPainter *p ) {
+ int pixelLen = scrollTextPixmap.width();
+ p->drawPixmap( pos, contentsRect().y(), scrollTextPixmap );
+ if ( pixelLen > contentsRect().width() ) // Scrolling
+ p->drawPixmap( pos - pixelLen, contentsRect().y(), scrollTextPixmap );
+}
+
+void Ticker::mouseReleaseEvent( QMouseEvent * e) {
+ qDebug("<<<<<<<>>>>>>>>>");
+ emit mousePressed();
+}
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/ticker.h b/noncore/todayplugins/stockticker/stocktickerlib/ticker.h
new file mode 100644
index 0000000..3b68928
--- a/dev/null
+++ b/noncore/todayplugins/stockticker/stocktickerlib/ticker.h
@@ -0,0 +1,32 @@
+#ifndef TICKER_H
+#define TICKER_H
+
+#include <qwidget.h>
+#include <qpainter.h>
+#include <qdrawutil.h>
+#include <qpixmap.h>
+#include <qstring.h>
+#include <qslider.h>
+#include <qframe.h>
+#include <qlineedit.h>
+
+class Ticker : public QFrame {
+ Q_OBJECT
+
+public:
+ Ticker( QWidget* parent=0 );
+ ~Ticker();
+ void setText( const QString& text ) ;
+signals:
+ void mousePressed();
+protected:
+ void timerEvent( QTimerEvent * );
+ void drawContents( QPainter *p );
+ void mouseReleaseEvent ( QMouseEvent *);
+private:
+ QString scrollText;
+ QPixmap scrollTextPixmap;
+ int pos;//, pixelLen;
+};
+
+#endif