Support debugger drivers that use a regular expression to search for the prompt.
[kdbg.git] / kdbg / dbgmainwnd.h
blob8c2f20776765b1c5b63b3f20f5d834b42860f0de
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 protected:
32 // session properties
33 virtual void saveProperties(KConfig*);
34 virtual void readProperties(KConfig*);
35 // settings
36 void saveSettings(KConfig*);
37 void restoreSettings(KConfig*);
39 // statusbar texts
40 void updateLineStatus(int lineNo); /* zero-based line number */
42 void initMenu();
43 void initFileWndMenus();
44 void initToolbar();
46 // view windows
47 WinStack* m_filesWindow;
48 QListBox* m_btWindow;
49 ExprWnd* m_localVariables;
50 WatchWindow* m_watches;
51 RegisterView* m_registers;
52 BreakpointTable* m_bpTable;
53 TTYWindow* m_ttyWindow;
54 ThreadList* m_threads;
55 MemoryWindow* m_memoryWindow;
57 // menus
58 QPopupMenu* m_menuFile;
59 QPopupMenu* m_menuView;
60 QPopupMenu* m_menuProgram;
61 QPopupMenu* m_menuBrkpt;
62 QPopupMenu* m_menuWindow;
64 QPopupMenu* m_menuRecentExecutables;
66 QPopupMenu* m_popupLocals;
68 // popup menus of the files window
69 QPopupMenu* m_popupFilesEmpty;
70 QPopupMenu* m_popupFiles;
72 QTimer m_backTimer;
74 protected:
75 virtual void closeEvent(QCloseEvent* e);
76 virtual KToolBar* dbgToolBar();
77 virtual KStatusBar* dbgStatusBar();
78 virtual TTYWindow* ttyWindow();
79 virtual QString createOutputWindow();
81 DockWidget* dockParent(QWidget* w);
82 bool isDockVisible(QWidget* w);
83 bool canChangeDockVisibility(QWidget* w);
84 void dockUpdateHelper(UpdateUI* item, QWidget* w);
85 void intoBackground();
87 QString makeSourceFilter();
88 void fillRecentExecMenu();
90 // to avoid flicker when the status bar is updated,
91 // we store the last string that we put there
92 QString m_lastActiveStatusText;
94 signals:
95 void setTabWidth(int tabWidth);
97 public slots:
98 virtual void menuCallback(int item);
99 void updateUIItem(UpdateUI* item);
100 virtual void updateUI();
101 virtual void updateLineItems();
102 void slotFileChanged();
103 void slotLineChanged();
104 void slotAddWatch();
105 void slotNewFileLoaded();
106 void slotNewStatusMsg();
107 void slotAnimationTimeout();
108 void slotDebuggerStarting();
109 void slotToggleBreak(const QString&, int, const DbgAddr&, bool);
110 void slotEnaDisBreak(const QString&, int, const DbgAddr&);
111 void slotTermEmuExited();
112 void slotProgramStopped();
113 void slotBackTimer();
114 void slotRecentExec(int item);
115 void slotLocalsPopup(int item, const QPoint& pt);
116 void slotLocalsToWatch();
118 void slotFileOpen();
119 void slotFileQuit();
120 void slotFileExe();
121 void slotFileCore();
122 void slotFileGlobalSettings();
123 void slotFileProgSettings();
124 void slotViewToolbar();
125 void slotViewStatusbar();
126 void slotExecUntil();
127 void slotExecAttach();
128 void slotExecArgs();
130 void slotFileWndMenu(const QPoint& pos);
131 void slotFileWndEmptyMenu(const QPoint& pos);
134 #endif // DBGMAINWND_H