⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dayview.h

📁 Trolltech公司发布的图形界面操作系统。可在qt-embedded-2.3.10平台上编译为嵌入式图形界面操作系统。
💻 H
字号:
/************************************************************************ Copyright (C) 2000-2005 Trolltech AS.  All rights reserved.**** This file is part of the Qtopia Environment.** ** 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.** ** A copy of the GNU GPL license version 2 is included in this package as ** LICENSE.GPL.**** 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.**** In addition, as a special exception Trolltech gives permission to link** the code of this program with Qtopia applications copyrighted, developed** and distributed by Trolltech under the terms of the Qtopia Personal Use** License Agreement. You must comply with the GNU General Public License** in all respects for all of the code used other than the applications** licensed under the Qtopia Personal Use License Agreement. If you modify** this file, you may extend this exception to your version of the file,** but you are not obligated to do so. If you do not wish to do so, delete** this exception statement from your version.** ** 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 DATEBOOKDAY_H#define DATEBOOKDAY_H#include "periodview.h"#include <qtopia/pim/event.h>#include <qdatetime.h>#include <qlabel.h>#include <qtable.h>#include <qvbox.h>#include <qlist.h>// Bounds check access to the hourInfo array//#define HOURINFO_INDEX_CHECK#if defined (QTOPIA_NO_POINTER_INPUT) || defined(QTOPIA_PHONE)#define USE_LABEL_HEADER#endifclass DayViewHeader;class DateBookTable;class QDateTime;class QMouseEvent;class QPaintEvent;class QResizeEvent;class QTimer;class DayView;class DayViewLayout;class DayItem;class Occurrence;class LayoutItem;// This can be 3 different views depending on how it's constructedclass DayViewContents : public QScrollView{    Q_OBJECTpublic:    enum Type {	AllDay,	ScrollingDay,	CompressedDay    };    DayViewContents( Type viewType,	    QWidget *parent = 0, const char *name = 0 );    ~DayViewContents();    bool whichClock() const;    void addOccurrence(Occurrence &, const QDate &);    void takeOccurrence(Occurrence &);    void clearItems();    void layoutItems();    int startHour() const { return QMIN(startSel, endSel); }    int endHour() const { return QMAX(startSel, endSel) + 1; }    void clearSelectedTimes();    DayItem *firstItem( bool show=TRUE );    DayItem *lastItem( bool show=TRUE );    DayItem *nextItem( bool show=TRUE );    DayItem *previousItem( bool show=TRUE );    DayItem *currentItem() const;    void setCurrentItem(DayItem *, bool show=TRUE);    void moveSelection( DayItem *, DayItem * );    void setMetrics( const QFontMetrics &);    void setType( Type viewType );public slots:    void startAtTime(int);    void moveUp();  // scrolling with keys from DayView    void moveDown();    void selectDate(const QDate &);signals:    void sigColWidthChanged();    void keyPressed( const QString &txt );    void removeOccurrence( const Occurrence& );    void editOccurrence( const Occurrence& );    void removeEvent( const PimEvent& );    void editEvent( const PimEvent& );    void beamEvent( const PimEvent& );    void showDetails();    void setCurrentEvent( const PimEvent &ev );protected:    void resizeEvent( QResizeEvent *e );    void keyPressEvent( QKeyEvent *e );    void drawContents( QPainter * p, int x, int y, int w, int h );    void contentsMousePressEvent( QMouseEvent * );    void contentsMouseReleaseEvent( QMouseEvent * );    void contentsMouseMoveEvent( QMouseEvent * );private slots:    void makeVisible();    void timeStringChanged();private:    QFont dayViewFont() const;    void newItemList();    Type typ;    DayViewLayout *itemList;    int hourAtPos(int) const;    int posOfHour(int) const;    int startSel, endSel;    bool dragging;    int start_of_day;    int time_width;    int time_height;    QRect visRect;    QTimer *visibleTimer;    bool dataChanged;    bool clicking;    LayoutItem *mClickedItem;};class DayView : public PeriodView{    Q_OBJECTpublic:    DayView( DateBookTable *newDb, bool startOnMonday,		 QWidget *parent, const char *name );    void selectedDates( QDateTime &start, QDateTime &end );    void clearSelectedDates();        //int startViewTime() const;    bool hasSelection() const;    PimEvent currentEvent() const;    void setCurrentItem(const Occurrence &);    Occurrence currentItem() const;    void setCompressDay( bool );public slots:    //void setDate( int y, int m, int d );    void selectDate( const QDate & );    void redraw();    void setStartOnMonday( bool bStartOnMonday );    void setDayStarts( int startHere );    void previousEvent();    void nextEvent();    void setCurrentEvent(const PimEvent &);signals:    void removeOccurrence( const Occurrence& );    void editOccurrence( const Occurrence& );    void removeEvent( const PimEvent& );    void editEvent( const PimEvent& );    void beamEvent( const PimEvent& );    void newEvent();    void newEvent( const QString & );    void showDetails();protected slots:    void keyPressEvent(QKeyEvent *);private slots:    void slotColWidthChanged() { relayoutPage(); };private:    void selectDate( int, int );    void fontChange( const QFont &);    void getEvents();    void relayoutPage( bool fromResize = FALSE );#ifdef USE_LABEL_HEADER    QString header1Text(const QDate &d) const;    QString header2Text(const QDate &d) const;#endif    DayViewContents *view;    DayViewContents *allView;#ifdef USE_LABEL_HEADER    QHBox *header;    QLabel *header1;    QLabel *header2;#else     DayViewHeader *header;#endif    int viewWithFocus;};struct HourInfoNode {    bool stretch;    bool empty;    int hits;};#ifdef HOURINFO_INDEX_CHECKclass HourInfo {public:    const HourInfoNode &operator[]( int index ) const {	ASSERT( index >= 0 && index < 25 );	return hourInfo[index];    }    HourInfoNode &operator[]( int index ) {	ASSERT( index >= 0 && index < 25 );	return hourInfo[index];    }    HourInfoNode hourInfo[25];};#endiftypedef QValueList<QTime> TimeVals;class LayoutItem;class TimeList{public:    TimeList();    void clear();    void add( const QDate &, LayoutItem * );    void addDone();    int height( const QTime & ) const;    int height( const int ) const;    int scale( const int, const int ) const;    int hits( const int index ) const { return hourInfo[index].hits; }    void resize( int, int );    QTime time( int, int = 1 ) const;    void setTimeHeight( int );private:    void add( const QTime & );    void hit( int );    TimeVals list;#ifdef HOURINFO_INDEX_CHECK    HourInfo hourInfo;#else    HourInfoNode hourInfo[25];#endif    int height24;    bool infoModified;    int time_height;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -