• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdepim
  • Sitemap
  • Contact Us
 

kdgantt1

KDGanttView.h

Go to the documentation of this file.
00001 /* -*- Mode: C++ -*-
00002    $Id: KDGanttView.h 836291 2008-07-22 04:34:42Z pradeepto $
00003    KDChart - a multi-platform charting engine
00004 */
00005 
00006 /****************************************************************************
00007  ** Copyright (C)  2001-2004 Klarälvdalens Datakonsult AB.  All rights reserved.
00008  **
00009  ** This file is part of the KDGantt library.
00010  **
00011  ** This file may be used under the terms of the GNU General Public
00012  ** License versions 2.0 or 3.0 as published by the Free Software
00013  ** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
00014  ** included in the packaging of this file.  Alternatively you may (at
00015  ** your option) use any later version of the GNU General Public
00016  ** License if such license has been publicly approved by
00017  ** Klarälvdalens Datakonsult AB (or its successors, if any).
00018  ** 
00019  ** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
00020  ** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
00021  ** A PARTICULAR PURPOSE. Klarälvdalens Datakonsult AB reserves all rights
00022  ** not expressly granted herein.
00023  ** 
00024  ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00025  ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00026  **
00027  ** As a special exception, permission is given to link this program
00028  ** with any edition of Qt, and distribute the resulting executable,
00029  ** without including the source code for Qt in the source distribution.
00030  **
00031  **********************************************************************/
00032 
00033 #ifndef KDGANTTVIEW_H
00034 #define KDGANTTVIEW_H
00035 
00036 
00037 
00038 #include <QWidget>
00039 #include <QSplitter>
00040 #include <QLayout>
00041 #include <QFont>
00042 
00043 #include "kdgantt_qt3_compat.h"
00044 
00045 #include "KDGanttViewItem.h"
00046 #include "KDGanttViewTaskLinkGroup.h"
00047 #include "KDGanttMinimizeSplitter.h"
00048 #include "KDGanttViewItemDrag.h"
00049 
00050 class KDIntervalColorRectangle;
00051 class KDGanttViewTaskLink;
00052 class QPrinter;
00053 class QIODevice;
00054 class itemAttributeDialog;
00055 class KDListView;
00056 class KDGanttViewItem;
00057 class KDGanttViewEventItem;
00058 class KDGanttViewTaskItem;
00059 class KDGanttViewSummaryItem;
00060 class KDTimeTableWidget;
00061 class KDTimeHeaderWidget;
00062 class KDLegendWidget;
00063 class KDGanttCanvasView;
00064 class KDGanttViewTaskLink;
00065 class KDGanttMinimizeSplitter;
00066 
00067 class KDGanttView : public KDGanttMinimizeSplitter
00068 {
00069     Q_OBJECT
00070 
00071     Q_PROPERTY( bool showLegend READ showLegend WRITE setShowLegend )
00072     Q_PROPERTY( bool showListView READ showListView WRITE setShowListView )
00073     Q_PROPERTY( bool showTaskLinks READ showTaskLinks WRITE setShowTaskLinks )
00074     Q_PROPERTY( bool editorEnabled READ editorEnabled WRITE setEditorEnabled )
00075     Q_PROPERTY( QDateTime horizonStart READ horizonStart WRITE setHorizonStart )
00076     Q_PROPERTY( QDateTime horizonEnd READ horizonEnd WRITE setHorizonEnd )
00077     Q_PROPERTY( Scale scale READ scale WRITE setScale )
00078     Q_PROPERTY( YearFormat yearFormat READ yearFormat WRITE setYearFormat )
00079     Q_PROPERTY( HourFormat hourFormat READ hourFormat WRITE setHourFormat )
00080     Q_PROPERTY( ShowTicksType showTicks READ showTicks WRITE setShowTicks )
00081     Q_PROPERTY( bool editable READ editable WRITE setEditable )
00082     Q_PROPERTY( QColor textColor READ textColor WRITE setTextColor )
00083     Q_PROPERTY( int majorScaleCount READ majorScaleCount WRITE setMajorScaleCount )
00084     Q_PROPERTY( int minorScaleCount READ minorScaleCount WRITE setMinorScaleCount )
00085     Q_PROPERTY( int autoScaleMinorTickCount READ autoScaleMinorTickCount WRITE setAutoScaleMinorTickCount )
00086     Q_PROPERTY( Scale maximumScale READ maximumScale WRITE setMaximumScale )
00087     Q_PROPERTY( Scale minimumScale READ minimumScale WRITE setMinimumScale )
00088     Q_PROPERTY( int minimumColumnWidth READ minimumColumnWidth WRITE setMinimumColumnWidth )
00089     Q_PROPERTY( int ganttMaximumWidth READ ganttMaximumWidth WRITE setGanttMaximumWidth )
00090     Q_PROPERTY( QColor weekendBackgroundColor READ weekendBackgroundColor WRITE setWeekendBackgroundColor )
00091     Q_PROPERTY( QColor ganttViewBackgroundColor READ gvBackgroundColor WRITE setGvBackgroundColor )
00092     Q_PROPERTY( QColor listViewBackgroundColor READ lvBackgroundColor WRITE setLvBackgroundColor )
00093     Q_PROPERTY( QColor timeHeaderBackgroundColor READ timeHeaderBackgroundColor WRITE setTimeHeaderBackgroundColor )
00094     Q_PROPERTY( QColor legendHeaderBackgroundColor READ legendHeaderBackgroundColor WRITE setLegendHeaderBackgroundColor )
00095     Q_PROPERTY( double zoomFactor READ zoomFactor )
00096     Q_PROPERTY( bool showHeaderPopupMenu READ showHeaderPopupMenu WRITE setShowHeaderPopupMenu )
00097     Q_PROPERTY( bool showTimeTablePopupMenu READ showTimeTablePopupMenu WRITE setShowTimeTablePopupMenu )
00098     Q_PROPERTY( bool headerVisible READ headerVisible WRITE setHeaderVisible )
00099     Q_PROPERTY( bool showLegendButton READ showLegendButton WRITE setShowLegendButton )
00100     Q_PROPERTY( bool legendIsDockwindow READ legendIsDockwindow WRITE setLegendIsDockwindow )
00101     Q_PROPERTY( bool displayEmptyTasksAsLine READ displayEmptyTasksAsLine WRITE setDisplayEmptyTasksAsLine )
00102     Q_PROPERTY( QBrush noInformationBrush READ noInformationBrush WRITE setNoInformationBrush )
00103     Q_PROPERTY( bool dragEnabled READ dragEnabled WRITE setDragEnabled )
00104     Q_PROPERTY( bool dropEnabled READ dropEnabled WRITE setDropEnabled )
00105     Q_PROPERTY( bool calendarMode READ calendarMode WRITE setCalendarMode )
00106 
00107     Q_ENUMS( Scale )
00108     Q_ENUMS( YearFormat )
00109     Q_ENUMS( HourFormat )
00110     Q_ENUMS(ShowTicksType)
00111 
00112 public:
00113     enum Scale { Second = 0, Minute, Hour, Day, Week, Month, Auto };
00114     enum YearFormat { FourDigit, TwoDigit, TwoDigitApostrophe, NoDate };
00115     enum HourFormat { Hour_24, Hour_12, Hour_24_FourDigit };
00116     enum RepaintMode { No, Medium, Always };
00117     enum ShowTicksType {  ShowMajorTicks = 0, ShowMinorTicks, ShowNoTicks };
00118 
00119     KDGanttView( QWidget* parent = 0, const char* name = 0 );
00120     ~KDGanttView();
00121 
00122     // Pass-through methods from QListView
00123     virtual int addColumn( const QString& label, int width = -1 );
00124     virtual int addColumn( const QIconSet& iconset, const QString& label, int width = -1 );
00125     virtual void removeColumn( int index );
00126 
00127     virtual bool lvDropEvent ( QDropEvent *e, KDGanttViewItem*, KDGanttViewItem*);
00128     virtual void lvStartDrag (KDGanttViewItem*);
00129     virtual bool lvDragMoveEvent (QDragMoveEvent * e,KDGanttViewItem*, KDGanttViewItem*);
00130     virtual void lvDragEnterEvent (QDragEnterEvent * e );
00131 
00132     void setRepaintMode( RepaintMode mode );
00133     void setUpdateEnabled( bool enable);
00134     bool getUpdateEnabled( )const;
00135 
00136     void setGanttMaximumWidth( int w );
00137     int ganttMaximumWidth() const;
00138     bool showLegend() const;
00139     void setLegendIsDockwindow( bool dock );
00140     bool legendIsDockwindow( ) const;
00141     QDockWindow* legendDockwindow( ) const;
00142     bool showListView() const;
00143     void setEditorEnabled( bool enable );
00144     bool editorEnabled() const;
00145     int listViewWidth();
00146     bool editable() const;
00147     void setCalendarMode( bool mode );
00148     bool calendarMode() const;
00149     void setDisplaySubitemsAsGroup( bool show );
00150     bool displaySubitemsAsGroup() const;
00151     void setDisplayEmptyTasksAsLine( bool show );
00152     bool displayEmptyTasksAsLine() const;
00153 
00154     void setHorBackgroundLines( int count = 2,
00155                 QBrush brush =
00156                 QBrush( QColor ( 200,200,200 ),
00157                     Qt::Dense6Pattern ));
00158     int horBackgroundLines( QBrush& brush ) const;
00159     bool saveProject( QIODevice* );
00160     bool loadProject( QIODevice* );
00161     void print( QPrinter* printer,
00162         bool printListView = true, bool printTimeLine = true,
00163         bool printLegend = false );
00164     QSize drawContents( QPainter* p = 0,
00165               bool drawListView = true, bool drawTimeLine = true,
00166               bool drawLegend = false );
00167     void setZoomFactor( double factor, bool absolute );
00168     double zoomFactor() const;
00169     void ensureVisible( KDGanttViewItem* );
00170     void centerTimelineAfterShow( const QDateTime& center );
00171     void addTicksLeft( int num = 1 );
00172     void addTicksRight( int num = 1 );
00173     bool showTaskLinks() const;
00174 
00175     void setFont(const QFont& f);
00176     void setShowHeaderPopupMenu( bool show = true,
00177                                  bool showZoom = true,
00178                                  bool showScale = true,
00179                                  bool showTime = true,
00180                                  bool showYear = true,
00181                                  bool showGrid = true,
00182                                  bool showPrint = false);
00183     bool showHeaderPopupMenu() const;
00184     void setShowTimeTablePopupMenu( bool );
00185     bool showTimeTablePopupMenu() const;
00186     void setShapes( KDGanttViewItem::Type type,
00187                     KDGanttViewItem::Shape start,
00188                     KDGanttViewItem::Shape middle,
00189                     KDGanttViewItem::Shape end,
00190             bool overwriteExisting = true  );
00191     bool shapes( KDGanttViewItem::Type type,
00192                  KDGanttViewItem::Shape& start,
00193                  KDGanttViewItem::Shape& middle,
00194                  KDGanttViewItem::Shape& end ) const;
00195     void setColors( KDGanttViewItem::Type type,
00196                     const QColor& start, const QColor& middle,
00197                     const QColor& end,
00198             bool overwriteExisting = true );
00199     bool colors( KDGanttViewItem::Type type,
00200                  QColor& start, QColor& middle, QColor& end ) const;
00201     void setDefaultColor( KDGanttViewItem::Type type,
00202               const QColor&,
00203               bool overwriteExisting = true );
00204     QColor defaultColor( KDGanttViewItem::Type type ) const;
00205     void setHighlightColors( KDGanttViewItem::Type type,
00206                              const QColor& start, const QColor& middle,
00207                              const QColor& end,
00208                  bool overwriteExisting = true );
00209     bool highlightColors( KDGanttViewItem::Type type,
00210                           QColor& start, QColor& middle, QColor& end ) const;
00211     void setDefaultHighlightColor( KDGanttViewItem::Type type,
00212                    const QColor&,
00213                    bool overwriteExisting = true );
00214     QColor defaultHighlightColor( KDGanttViewItem::Type type ) const;
00215     void setTextColor( const QColor& color );
00216     QColor textColor() const;
00217 
00218     void setNoInformationBrush( const QBrush& brush );
00219     QBrush noInformationBrush() const;
00220 
00221     // Link-related stuff
00222     QPtrList<KDGanttViewTaskLink> taskLinks() const;
00223     QPtrList<KDGanttViewTaskLinkGroup> taskLinkGroups() const;
00224 
00225     // Legend-related stuff
00226     void addLegendItem( KDGanttViewItem::Shape shape, const QColor& shapeColor, const QString& text );
00227     void addLegendItem( KDGanttViewItem::Shape shape, const QColor& shapeColor, const QString& text, KDGanttViewItem::Shape shape2, const QColor& shapeColor2,const QString& text2 );
00228     void clearLegend();
00229     // Header-related stuff
00230     void setHorizonStart( const QDateTime& start );
00231     QDateTime horizonStart() const;
00232     void setHorizonEnd( const QDateTime& start );
00233     QDateTime horizonEnd() const;
00234     Scale scale() const;
00235     void setMaximumScale( Scale );
00236     Scale maximumScale() const;
00237     void setMinimumScale( Scale );
00238     Scale minimumScale() const;
00239     void setAutoScaleMinorTickCount( int count );
00240     int autoScaleMinorTickCount() const;
00241     void setMajorScaleCount( int count );
00242     int majorScaleCount() const;
00243     void setMinorScaleCount( int count );
00244     int minorScaleCount() const;
00245     void setMinimumColumnWidth( int width );
00246     int minimumColumnWidth() const;
00247     void setYearFormat( YearFormat format );
00248     YearFormat yearFormat() const;
00249     void setHourFormat( HourFormat format );
00250     HourFormat hourFormat() const;
00251     void setShowTicks( ShowTicksType );
00252     ShowTicksType showTicks() const;
00253     void setColumnBackgroundColor( const QDateTime& column,
00254                                    const QColor& color,
00255                                    Scale mini =  KDGanttView::Second ,
00256                                    Scale maxi =  KDGanttView::Month);
00257 #if 0
00258    // This API has been replaced with KDIntervalColorRectangle and addIntervalBackgroundColor
00259     void setIntervalBackgroundColor( const QDateTime& start,
00260                                      const QDateTime& end,
00261                                      const QColor& color,
00262                                      int priority = 0,
00263                                      Scale mini =  KDGanttView::Second ,
00264                                      Scale maxi =  KDGanttView::Month);
00265     bool changeBackgroundInterval( const QDateTime& oldstart,
00266                    const QDateTime& oldend,
00267                    const QDateTime& newstart,
00268                    const QDateTime& newend );
00269     bool deleteBackgroundInterval( const QDateTime& start,
00270                    const QDateTime& end );
00271 #endif
00272     void addIntervalBackgroundColor( KDIntervalColorRectangle* newItem );
00273     void clearBackgroundColor();
00274     QColor columnBackgroundColor( const QDateTime& column ) const;
00275     void setWeekendBackgroundColor( const QColor& color );
00276     QColor weekendBackgroundColor() const;
00277     void setWeekdayBackgroundColor( const QColor& color, int weekday );
00278     QColor weekdayBackgroundColor(int weekday) const;
00279 
00280 
00281     void setPaletteBackgroundColor(const QColor& col);
00282     void setGvBackgroundColor ( const QColor & );
00283     void setLvBackgroundColor ( const QColor & );
00284     void setTimeHeaderBackgroundColor ( const QColor & );
00285     void setLegendHeaderBackgroundColor ( const QColor & );
00286     QColor gvBackgroundColor () const ;
00287     QColor lvBackgroundColor () const ;
00288     QColor timeHeaderBackgroundColor () const ;
00289     QColor legendHeaderBackgroundColor () const ;
00290     void addUserdefinedLegendHeaderWidget( QWidget * w );
00291 
00292     void setWeekendDays( int start, int end );
00293     void weekendDays( int& start, int& end ) const;
00294 
00295     static QPixmap getPixmap( KDGanttViewItem::Shape shape, const QColor& shapeColor,const QColor& backgroundColor, int itemSize);
00296 
00297     void setHeaderVisible( bool );
00298     bool headerVisible() const;
00299 
00300     void setShowLegendButton( bool show );
00301     bool showLegendButton() const;
00302 
00303 
00304     KDGanttViewItem* selectedItem() const;
00305     void setSelected( KDGanttViewItem*, bool );
00306     KDGanttViewItem* firstChild() const;
00307     KDGanttViewItem* lastItem() const;
00308     int childCount() const;
00309     void clear();
00310     void clearAll();
00311 
00312     void setDragEnabled( bool b );
00313     void setDropEnabled( bool b );
00314     void setDragDropEnabled( bool b );
00315     bool dragEnabled() const;
00316     bool dropEnabled() const;
00317     bool isDragEnabled() const;
00318     bool isDropEnabled() const;
00319 
00320     void setUserHorizonChangeEnabled( bool b );
00321     bool userHorizonChangeEnabled() const;
00322 
00323     virtual QSize sizeHint() const;
00324     KDGanttViewItem* getItemByName( const QString& name ) const;
00325     KDGanttViewItem* getItemByUid( const QString& name, KDGanttViewItem* parentItem = 0 ) const;
00326     QDateTime getDateTimeForCoordX(int coordX, bool global = true ) const;
00327     KDGanttViewItem* getItemByListViewPos( const QPoint& pos ) const;
00328     KDGanttViewItem* getItemByGanttViewPos( const QPoint& pos ) const;
00329     KDGanttViewItem* getItemAt( const QPoint& pos , bool global = true ) const;
00330 
00331     // setting the vertical scrollbars of the listview and the timetable
00332     // default values: always off for the listview, always on for the timetable
00333     void setLvVScrollBarMode( QScrollView::ScrollBarMode );
00334     void setGvVScrollBarMode( QScrollView::ScrollBarMode );
00335 
00336 
00337     void setGermanDateTimeFormat();
00338     void setTimeHeaderTooltipDateTimeFormat( const QString& fmt );
00339     QString timeHeaderTooltipDateTimeFormat() const;
00340 
00341     void setTimeHeaderDateFormatMonth( const QString& fmt );
00342     QString timeHeaderDateFormatMonth() const;
00343     void setTimeHeaderDateFormatWeek( const QString& fmt );
00344     QString timeHeaderDateFormatWeek() const;
00345     void setTimeHeaderDateFormatDay( const QString& fmt );
00346     QString timeHeaderDateFormatDay() const;
00347     void setTimeHeaderDatetimeFormatHour( const QString& fmt );
00348     QString timeHeaderDatetimeFormatHour() const;
00349     void setTimeHeaderDatetimeFormatMinute( const QString& fmt );
00350     QString timeHeaderDatetimeFormatMinute() const;
00351     void setTimeHeaderDatetimeFormatSecond( const QString& fmt );
00352     QString timeHeaderDatetimeFormatSecond() const;
00353     void setWeekStartsMonday( bool b );
00354     bool weekStartsMonday() const;
00355     void setWeekScaleShowNumber( bool b );
00356     bool weekScaleShowNumber() const;
00357     QHeader * listViewHeader () const;
00358     int getWeekOfYear( const QDate& date );
00359     void setListViewColumnWidth ( int column, int w );
00360     void setAddTickcountForTimeline( int );
00361     int addTickcountForTimeline() const;
00362 
00363     QDate yesterday() const;
00364     QDate today() const;
00365     QDate tomorrow() const;
00366     QDate currentWeek() const;
00367     QDate lastWeek() const;
00368     QDate currentMonth() const;
00369     QDate lastMonth() const;
00370     QDate currentYear() const;
00371     QDate lastYear() const;
00372 
00373     virtual KDGanttViewItem* createNewItem( QString KDGanttViewItemTypeAsString,
00374                                     KDGanttViewItem* parent = 0,
00375                                     KDGanttViewItem* after = 0,
00376                                     const QString& lvtext = QString(),
00377                                     const QString& name = QString()  );
00378     virtual KDGanttViewItem* createUserDefinedItem( QString KDGanttViewItemTypeAsString,
00379                                                     KDGanttViewItem* parent = 0,
00380                                                     KDGanttViewItem* after = 0,
00381                                                     const QString& lvtext = QString(),
00382                                                     const QString& name = QString()  );
00383 
00384     void setConnectorEnabled( int connector, bool state );
00385     bool isConnectorEnabled( int connector ) const;
00386     void setAllConnectorsEnabled( bool state );
00387     void setAutoScrollEnabled( bool state );
00388 
00389     KDTimeTableWidget * timeTableWidget() { return myTimeTable; }
00390     KDTimeHeaderWidget * timeHeaderWidget() { return myTimeHeader; }
00391 
00392     void setFixedHorizon( bool f ) { mFixedHorizon = f; }
00393 
00394 public slots:
00395     void editItem( KDGanttViewItem* );
00396     void zoomToSelection( const QDateTime& start,  const QDateTime&  end);
00397     void zoomToSelectionAndSetStartEnd( const QDateTime& start,  const QDateTime&  end);
00398     void zoomToFit();
00399     void setShowLegend( bool show );
00400     void setShowListView( bool show );
00401     void setListViewWidth( int );
00402     void setEditable( bool editable );
00403     void center( KDGanttViewItem* );
00404     void centerTimeline( const QDateTime& center );
00405     void setTimelineToStart();
00406     void setTimelineToEnd();
00407     void setShowTaskLinks( bool show );
00408     void setScale( Scale );
00409     void setScaleSilent( Scale );
00410     void setAllOpen();
00411     void setAllClose();
00412 
00413     void gotoToday();
00414     void gotoYesterday();
00415     void gotoCurrentWeek();
00416     void gotoLastWeek();
00417     void gotoCurrentMonth();
00418     void gotoLastMonth();
00419     void gotoCurrentYear();
00420     void gotoLastYear();
00421 
00422     void selectToday();
00423     void selectYesterday();
00424     void selectCurrentWeek();
00425     void selectLastWeek();
00426     void selectCurrentMonth();
00427     void selectLastMonth();
00428     void selectCurrentYear();
00429     void selectLastYear();
00430 
00431     void print();
00432 
00433 signals:
00434     void itemDeleted( KDGanttViewItem* );
00435     void timeIntervallSelected( const QDateTime& start,  const QDateTime&  end);
00436     void timeIntervalSelected( const QDateTime& start,  const QDateTime&  end);
00437     void rescaling( KDGanttView::Scale );
00438     void intervalColorRectangleMoved( const QDateTime& start, const QDateTime& end );
00439 
00440     // the following signals are emitted if an item is clicked in the
00441     // listview (inclusive) or in the ganttview
00442     void itemLeftClicked( KDGanttViewItem* );
00443     void itemMidClicked( KDGanttViewItem* );
00444     void itemRightClicked( KDGanttViewItem* );
00445     void itemDoubleClicked( KDGanttViewItem* );
00446 
00447     // the following signals are emitted if an item is clicked in the
00448     // listview (exlusive) or in the ganttview
00449     // gv... means item in ganttview clicked
00450 
00451     void gvCurrentChanged( KDGanttViewItem* );
00452     void gvItemLeftClicked( KDGanttViewItem* );
00453     void gvItemMidClicked( KDGanttViewItem* );
00454     void gvItemRightClicked( KDGanttViewItem* );
00455   // the point is the global position!!
00456     void gvMouseButtonClicked ( int button, KDGanttViewItem* item, const QPoint & pos);
00457     void gvMouseButtonPressed ( int button, KDGanttViewItem* item, const QPoint & pos);
00458     void gvMouseButtonReleased ( int button, KDGanttViewItem* item, const QPoint & pos);
00459     void gvMouseMove ( int button, KDGanttViewItem* item, const QPoint & pos);
00460     void gvItemDoubleClicked( KDGanttViewItem* );
00461     // the point is the global position!!
00462     void gvContextMenuRequested ( KDGanttViewItem * item, const QPoint & pos );
00463     void gvItemMoved( KDGanttViewItem* );
00464 
00465     void gvCreateTaskLink( KDGanttViewItem*, int, KDGanttViewItem*, int );
00466 
00467     // lv... means item in listview clicked
00468     void lvCurrentChanged( KDGanttViewItem* );
00469     void lvItemRenamed( KDGanttViewItem* , int col, const QString & text  );
00470     void lvMouseButtonPressed(  int button, KDGanttViewItem * item, const QPoint & pos, int c );
00471     void lvItemLeftClicked( KDGanttViewItem* );
00472     void lvItemMidClicked( KDGanttViewItem* );
00473     void lvItemRightClicked( KDGanttViewItem* );
00474     void lvContextMenuRequested ( KDGanttViewItem * item, const QPoint & pos, int col );
00475     void lvMouseButtonClicked ( int button, KDGanttViewItem* item, const QPoint & pos, int c );
00476     void lvItemDoubleClicked( KDGanttViewItem* );
00477     void lvSelectionChanged( KDGanttViewItem* );
00478 
00479     void itemConfigured( KDGanttViewItem* );
00480     void itemChanged( KDGanttViewItem* );
00481     void itemExpanded ( KDGanttViewItem * item );
00482     void itemCollapsed ( KDGanttViewItem * item );
00483 
00484     void taskLinkLeftClicked( KDGanttViewTaskLink* );
00485     void taskLinkMidClicked( KDGanttViewTaskLink* );
00486     void taskLinkRightClicked( KDGanttViewTaskLink* );
00487     void taskLinkDoubleClicked( KDGanttViewTaskLink* );
00488 
00489     void dropped ( QDropEvent * e, KDGanttViewItem* droppedItem, KDGanttViewItem* itemBelowMouse);
00490     void dateTimeDoubleClicked ( const QDateTime& );
00491     void addOneTickRight();
00492     void addOneTickLeft();
00493 
00494 protected:
00495     // virtual protected methods
00496     virtual QDragObject * dragObject ();
00497     virtual void startDrag ();
00498     virtual void userReadFromElement( QDomElement& element );
00499     virtual void userWriteToElement( QDomDocument& doc,
00500                                      QDomElement& parentElement ) const ;
00501     virtual void showEvent ( QShowEvent * event );
00502     virtual void closeEvent ( QCloseEvent * event );
00503 
00504 private slots:
00505     void updateGanttContent();
00506     void forceRepaint( int val = 0 );
00507     void vScrollBarAction( int action );
00508     void hScrollBarAction( int action );
00509 
00510 #if QT_VERSION < 0x040000
00511     void slotSelectionChanged( QListViewItem* item );
00512     void slotCurrentChanged ( QListViewItem * item );
00513     void slotItemRenamed ( QListViewItem * item, int col, const QString & text  );
00514     void slotMouseButtonPressed (  int button, QListViewItem * item, const QPoint & pos, int c );
00515     void slotmouseButtonClicked ( int button, QListViewItem * item, const QPoint & pos, int c );
00516     void slotcontextMenuRequested ( QListViewItem * item, const QPoint & pos, int col );
00517     void slotItemExpanded ( QListViewItem * item );
00518     void slotItemCollapsed ( QListViewItem * item );
00519 #else
00520     void slotSelectionChanged( Q3ListViewItem* item );
00521     void slotCurrentChanged ( Q3ListViewItem * item );
00522     void slotItemRenamed ( Q3ListViewItem * item, int col, const QString & text  );
00523     void slotMouseButtonPressed (  int button, Q3ListViewItem * item, const QPoint & pos, int c );
00524     void slotmouseButtonClicked ( int button, Q3ListViewItem * item, const QPoint & pos, int c );
00525     void slotcontextMenuRequested ( Q3ListViewItem * item, const QPoint & pos, int col );
00526     void slotItemExpanded ( Q3ListViewItem * item );
00527     void slotItemCollapsed ( Q3ListViewItem * item );
00528 #endif
00529     void slotHeaderSizeChanged();
00530     void addTickRight();
00531     void addTickLeft();
00532     void enableAdding( int );
00533     void slot_lvDropped(QDropEvent* e, KDGanttViewItem* droppedItem, KDGanttViewItem* itemBelowMouse );
00534 private:
00535     struct legendItem {
00536         KDGanttViewItem::Shape shape;
00537         QColor color;
00538         QString text;
00539         KDGanttViewItem::Shape shape2;
00540         QColor color2;
00541