summaryrefslogtreecommitdiff
path: root/core/settings/citytime/zonemap.h
Side-by-side diff
Diffstat (limited to 'core/settings/citytime/zonemap.h') (more/less context) (show whitespace changes)
-rw-r--r--core/settings/citytime/zonemap.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/core/settings/citytime/zonemap.h b/core/settings/citytime/zonemap.h
index c9c2035..ea0142b 100644
--- a/core/settings/citytime/zonemap.h
+++ b/core/settings/citytime/zonemap.h
@@ -13,118 +13,126 @@
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef ZONEMAP_H
#define ZONEMAP_H
#include "stylusnormalizer.h"
#include <qlist.h>
#include <qscrollview.h>
#include <qstring.h>
extern const int iCITYOFFSET;
class QImage;
class QComboBox;
class QLabel;
class QTimer;
class QToolButton;
-
+class QListViewItem;
+class QListView;
class ZoneField
{
public:
ZoneField( const QString & );
void showStructure( void ) const;
inline int x( void ) const { return _x; };
inline int y( void ) const { return _y; };
inline QString city( void ) const { return strCity; };
inline QString country( void ) const { return strCountry; };
inline QString code( void ) const { return strCountryCode; };
private:
int _x;
int _y;
QString strCountryCode;
QString strCountry;
QString strCity;
};
class ZoneMap : public QScrollView
{
Q_OBJECT
public:
ZoneMap( QWidget *parent = 0, const char *name = 0 );
~ZoneMap();
void showZones( void ) const;
+ QWidget* selectionWidget( QWidget* parent );
// convert between the pixels on the image and the coordinates in the
// database
inline bool zoneToWin( int zoneX, int zoneY, int &winX, int &winY ) const;
inline bool winToZone( int winX, int winY, int &zoneX, int &zoneY ) const;
public slots:
void slotZoom( bool setZoom );
void slotIllum( bool setIllum );
void slotUpdate( void );
void slotRedraw( void );
void slotFindCity( const QPoint &pos ); // Find the closest city
void changeClock( bool );
signals:
void signalTz( const QString &newCountry, const QString &newCity );
protected:
virtual void viewportMouseMoveEvent( QMouseEvent *event );
virtual void viewportMousePressEvent( QMouseEvent *event );
virtual void viewportMouseReleaseEvent( QMouseEvent *event );
virtual void keyPressEvent( QKeyEvent * );
virtual void resizeEvent( QResizeEvent *);
virtual void drawContents( QPainter *p, int cx, int cy, int cw, int ch );
+private slots:
+ void slotGetCities( QListViewItem * );
+ void slotCitySelected( QListViewItem * );
private:
ZoneField *findCityNear( ZoneField *city, int key );
void showCity( ZoneField *city );
void drawCities( QPainter *p ); // put all the cities on the map (ugly)
void drawCity( QPainter *p, const ZoneField *pCity ); // draw the given city on the map
void readZones( void ); // Read in the zone information from the file
void zoom( void ); // Zoom the map...
void makeMap( int width, int height );
QPixmap* pixCurr; // image to be drawn on the screen
QLabel* lblCity; // the "tool-tip" that shows up when you pick a city...
QToolButton *cmdZoom; // our zoom option...
QTimer* tHide; // the timer to hide the "tool tip"
ZoneField *pLast; // the last known good city that was found...
ZoneField *pRepaint; // save the location to maximize the repaint...
QList<ZoneField> zones; // a linked list to hold all this information
StylusNormalizer norm;
+ QListView *cityView;
+ QString selectedCont;
+
//the True width and height of the map...
int wImg;
int hImg;
// the pixel points that correspond to (0, 0);
int ox;
int oy;
// the drawable area of the map...
int drawableW;
int drawableH;
bool bZoom; // a flag to indicate zoom is active
bool bIllum; // flag to indicat that illumination is active
bool ampm;
ZoneField *cursor;
};
inline bool ZoneMap::zoneToWin( int zoneX, int zoneY,
int &winX, int &winY ) const
{
winY = oy - ( ( hImg * zoneY ) / 648000 ); // 180 degrees in secs
winX = ox + ( ( wImg * zoneX ) / 1296000 ); // 360 degrees in secs
// whoa, some things aren't in the best spots..