24#include "kptcontext.h"
26#include <tqsplitter.h>
36class KDGanttViewSummaryItem;
37class KDGanttViewTaskItem;
38class KDGanttViewEventItem;
40class KDGanttViewTaskLink;
48class TaskAppointmentsView;
55class GanttView :
public TQSplitter
62 GanttView(TQWidget *parent,
bool readWrite=
true,
const char* name = 0 );
66 void setZoom(
double zoom);
68 void draw(Project &project);
69 void drawChanges(Project &project);
74 void drawOnPainter(TQPainter* painter,
const TQRect rect);
76 Node *currentNode()
const;
79 void print(KPrinter &prts);
81 void addTaskLink(KDGanttViewTaskLink *link);
83 bool exportGantt(TQIODevice* device);
85 virtual bool setContext(Context::Ganttview &context, Project &project);
86 virtual void getContext(Context::Ganttview &context)
const;
88 void setReadWriteMode(
bool on);
89 bool isReadWriteMode()
const {
return m_readWrite; }
90 KDGanttViewItem *currentItem()
const {
return m_currentItem; }
92 bool showNoInformation()
const {
return m_showNoInformation; }
95 void enableActions(
bool);
96 void modifyRelation(Relation *rel) ;
97 void addRelation(Node *par, Node *child);
98 void modifyRelation(Relation *rel,
int linkType) ;
99 void addRelation(Node *par, Node *child,
int linkType);
100 void itemDoubleClicked();
102 void itemRenamed(Node*,
const TQString&);
108 void requestPopupMenu(
const TQString& menuname,
const TQPoint & pos);
114 void popupMenuRequested(KDGanttViewItem * item,
const TQPoint & pos,
int);
116 void setShowExpected(
bool on) { m_showExpected = on; }
117 void setShowOptimistic(
bool on) { m_showOptimistic = on; }
118 void setShowPessimistic(
bool on) { m_showPessimistic = on; }
119 void setShowResources(
bool on) { m_showResources = on; }
120 void setShowTaskName(
bool on) { m_showTaskName = on; }
121 void setShowTaskLinks(
bool on) { m_showTaskLinks = on; }
122 void setShowProgress(
bool on) { m_showProgress = on; }
123 void setShowPositiveFloat(
bool on) { m_showPositiveFloat = on; }
124 void setShowCriticalTasks(
bool on) { m_showCriticalTasks = on; }
125 void setShowCriticalPath(
bool on) { m_showCriticalPath = on; }
126 void setShowNoInformation(
bool on) { m_showNoInformation = on; }
127 void setShowAppointments(
bool on) { m_showAppointments = on; }
130 void currentItemChanged(KDGanttViewItem *);
131 void slotItemDoubleClicked(TQListViewItem*);
132 void slotItemRenamed(KDGanttViewItem*,
int,
const TQString&);
134 void slotLinkItems(KDGanttViewItem* from, KDGanttViewItem* to,
int linkType);
136 void slotGvItemClicked(KDGanttViewItem*);
138 void slotModifyLink(KDGanttViewTaskLink* link);
141 int linkTypeToRelation(
int linkType);
142 void setRenameEnabled(TQListViewItem *item,
bool on);
144 KDGanttViewItem *findItem(Node *node);
145 KDGanttViewItem *findItem(Node *node, KDGanttViewItem *item);
146 Node *getNode(KDGanttViewItem *item)
const;
147 bool isDrawn(KDGanttViewItem *item);
148 void setDrawn(KDGanttViewItem *item,
bool state);
149 void resetDrawn(KDGanttViewItem *_item);
150 void removeNotDrawn(KDGanttViewItem *_item);
151 void deleteItem(KDGanttViewItem *item);
152 KDGanttViewItem *correctType(KDGanttViewItem *item, Node *node);
153 void correctPosition(KDGanttViewItem *item, Node *node);
154 KDGanttViewItem *correctParent(KDGanttViewItem *item, Node *node);
156 void updateChildren(Node *node);
157 void updateNode(Node *node);
159 void modifyChildren(Node *node);
160 void modifyNode(Node *node);
161 void modifyProject(KDGanttViewItem *item, Node *node);
162 void modifySummaryTask(KDGanttViewItem *item, Task *task);
163 void modifyTask(KDGanttViewItem *item, Task *task);
164 void modifyMilestone(KDGanttViewItem *item, Task *task);
166 KDGanttViewItem *addNode(KDGanttViewItem *parentItem, Node *node,KDGanttViewItem *after=0);
168 KDGanttViewItem *addProject(KDGanttViewItem *parentItem, Node *node, KDGanttViewItem *after=0);
169 KDGanttViewItem *addSubProject(KDGanttViewItem *parentItem, Node *node, KDGanttViewItem *after=0);
170 KDGanttViewItem *addSummaryTask(KDGanttViewItem *parentItem, Task *task, KDGanttViewItem *after=0);
171 KDGanttViewItem *addTask(KDGanttViewItem *parentItem, Task *task, KDGanttViewItem *after=0);
172 KDGanttViewItem *addMilestone(KDGanttViewItem *parentItem, Task *task, KDGanttViewItem *after=0);
174 void drawChildren(KDGanttViewItem *item, Node &node);
175 void drawProject(KDGanttViewItem *parentItem, Node *node);
176 void drawSubProject(KDGanttViewItem *parentItem, Node *node);
177 void drawSummaryTask(KDGanttViewItem *parentItem, Task *task);
178 void drawTask(KDGanttViewItem *parentItem, Task *task);
179 void drawMilestone(KDGanttViewItem *parentItem, Task *task);
181 void drawRelations();
182 void drawRelations(KDGanttViewItem *item);
183 void drawChildRelations(KDGanttViewItem *item);
185 void getContextClosedNodes(Context::Ganttview &context, KDGanttViewItem *item)
const;
189 int m_defaultFontSize;
190 KDGanttViewItem *m_currentItem;
191 MyKDGanttView *m_gantt;
192 TaskAppointmentsView *m_taskView;
194 bool m_showOptimistic;
195 bool m_showPessimistic;
196 bool m_showResources;
198 bool m_showTaskLinks;
200 bool m_showPositiveFloat;
201 bool m_showCriticalTasks;
202 bool m_showCriticalPath;
203 bool m_showNoInformation;
204 bool m_showAppointments;
206 TQPtrList<KDGanttViewTaskLink> m_taskLinks;