Added support to debug XSLT using xsldbg by Keith Isdale.
[kdbg.git] / kdbg / dbgmainwnd.h
blob07c75afadc5d1a31c9d5ac2db1bd715506e193a7
1 // $Id$
3 // Copyright by Johannes Sixt
4 // This file is under GPL, the GNU General Public Licence
6 #ifndef DBGMAINWND_H
7 #define DBGMAINWND_H
9 #include <qtimer.h>
10 #include "dockmainwindow.h"
11 #include "mainwndbase.h"
12 #include "regwnd.h"
14 class WinStack;
15 class QPopupMenu;
16 class QListBox;
17 class ExprWnd;
18 class DockWidget;
19 class BreakpointTable;
20 class ThreadList;
21 class MemoryWindow;
22 struct DbgAddr;
24 class DebuggerMainWnd : public DockMainWindow, public DebuggerMainWndBase
26 Q_OBJECT
27 public:
28 DebuggerMainWnd(const char* name);
29 ~DebuggerMainWnd();
31 bool debugProgram(const QString& exe);
33 protected:
34 // session properties
35 virtual void saveProperties(KConfig*);
36 virtual void readProperties(KConfig*);
37 // settings
38 void saveSettings(KConfig*);
39 void restoreSettings(KConfig*);
41 // statusbar texts
42 void updateLineStatus(int lineNo); /* zero-based line number */
44 void initMenu();
45 void initFileWndMenus();
46 void initToolbar();
48 // view windows
49 WinStack* m_filesWindow;
50 QListBox* m_btWindow;
51 ExprWnd* m_localVariables;
52 WatchWindow* m_watches;
53 RegisterView* m_registers;
54 BreakpointTable* m_bpTable;
55 TTYWindow* m_ttyWindow;
56 ThreadList* m_threads;
57 MemoryWindow* m_memoryWindow;
59 // menus
60 QPopupMenu* m_menuFile;
61 QPopupMenu* m_menuView;
62 QPopupMenu* m_menuProgram;
63 QPopupMenu* m_menuBrkpt;
64 QPopupMenu* m_menuWindow;
66 QPopupMenu* m_menuRecentExecutables;
68 QPopupMenu* m_popupLocals;
70 // popup menus of the files window
71 QPopupMenu* m_popupFilesEmpty;
72 QPopupMenu* m_popupFiles;
74 QTimer m_backTimer;
76 protected:
77 virtual void closeEvent(QCloseEvent* e);
78 virtual KToolBar* dbgToolBar();
79 virtual KStatusBar* dbgStatusBar();
80 virtual TTYWindow* ttyWindow();
81 virtual QString createOutputWindow();
83 DockWidget* dockParent(QWidget* w);
84 bool isDockVisible(QWidget* w);
85 bool canChangeDockVisibility(QWidget* w);
86 void dockUpdateHelper(UpdateUI* item, QWidget* w);
87 void intoBackground();
89 QString makeSourceFilter();
90 void fillRecentExecMenu();
92 // to avoid flicker when the status bar is updated,
93 // we store the last string that we put there
94 QString m_lastActiveStatusText;
96 signals:
97 void setTabWidth(int tabWidth);
99 public slots:
100 virtual void menuCallback(int item);
101 void updateUIItem(UpdateUI* item);
102 virtual void updateUI();
103 virtual void updateLineItems();
104 void slotFileChanged();
105 void slotLineChanged();
106 void slotAddWatch();
107 void slotNewFileLoaded();
108 void slotNewStatusMsg();
109 void slotAnimationTimeout();
110 void slotDebuggerStarting();
111 void slotToggleBreak(const QString&, int, const DbgAddr&, bool);
112 void slotEnaDisBreak(const QString&, int, const DbgAddr&);
113 void slotTermEmuExited();
114 void slotProgramStopped();
115 void slotBackTimer();
116 void slotRecentExec(int item);
117 void slotLocalsPopup(int item, const QPoint& pt);
118 void slotLocalsToWatch();
120 void slotFileOpen();
121 void slotFileQuit();
122 void slotFileExe();
123 void slotFileCore();
124 void slotFileGlobalSettings();
125 void slotFileProgSettings();
126 void slotViewToolbar();
127 void slotViewStatusbar();
128 void slotExecUntil();
129 void slotExecAttach();
130 void slotExecArgs();
132 void slotFileWndMenu(const QPoint& pos);
133 void slotFileWndEmptyMenu(const QPoint& pos);
136 #endif // DBGMAINWND_H