summaryrefslogtreecommitdiffstats
path: root/languages/cpp/debugger/memviewdlg.h
diff options
context:
space:
mode:
Diffstat (limited to 'languages/cpp/debugger/memviewdlg.h')
-rw-r--r--languages/cpp/debugger/memviewdlg.h118
1 files changed, 118 insertions, 0 deletions
diff --git a/languages/cpp/debugger/memviewdlg.h b/languages/cpp/debugger/memviewdlg.h
new file mode 100644
index 00000000..a29de924
--- /dev/null
+++ b/languages/cpp/debugger/memviewdlg.h
@@ -0,0 +1,118 @@
+/***************************************************************************
+ begin : Tue Oct 5 1999
+ copyright : (C) 1999 by John Birch
+ email : jbb@kdevelop.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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. *
+ * *
+ ***************************************************************************/
+
+#ifndef _MEMVIEW_H_
+#define _MEMVIEW_H_
+
+#include "mi/gdbmi.h"
+
+#include <kdialog.h>
+
+#include <qvaluevector.h>
+
+class KLineEdit;
+class QMultiLineEdit;
+class QToolBox;
+
+namespace GDBDebugger
+{
+ class MemoryView;
+ class GDBController;
+
+ class ViewerWidget : public QWidget
+ {
+ Q_OBJECT
+ public:
+ ViewerWidget(GDBController* controller,
+ QWidget* parent, const char* name);
+
+ public slots:
+ /** Adds a new memory view to *this, initially showing
+ no data. */
+ void slotAddMemoryView();
+ /** Informs *this about change in debugger state. Should always
+ be connected to, so that *this can disable itself when
+ debugger is not running. */
+ void slotDebuggerState(const QString&, int state);
+
+ signals:
+ void setViewShown(bool shown);
+
+
+ private slots:
+ void slotChildCaptionChanged(const QString& caption);
+ void slotChildDestroyed(QObject* child);
+
+ private: // Data
+ GDBController* controller_;
+ QToolBox* toolBox_;
+ QValueVector<MemoryView*> memoryViews_;
+ };
+
+ class MemoryView : public QWidget
+ {
+ Q_OBJECT
+ public:
+ MemoryView(GDBController* controller,
+ QWidget* parent, const char* name = 0);
+
+ void debuggerStateChanged(int state);
+
+ signals:
+ void captionChanged(const QString& caption);
+
+ private: // Callbacks
+ void sizeComputed(const QString& value);
+
+ void memoryRead(const GDBMI::ResultRecord& r);
+
+ private slots:
+ void memoryEdited(int start, int end);
+
+ private:
+ // Returns true is we successfully created the hexeditor, and so
+ // can work.
+ bool isOk() const;
+
+
+
+ private slots:
+ /** Invoked when user has changed memory range.
+ Gets memory for the new range. */
+ void slotChangeMemoryRange();
+ void slotHideRangeDialog();
+ void slotEnableOrDisable();
+
+ private: // QWidget overrides
+ void contextMenuEvent(QContextMenuEvent* e);
+
+ private:
+ void initWidget();
+
+ private:
+ GDBController* controller_;
+ class MemoryRangeSelector* rangeSelector_;
+ QWidget* khexedit2_widget;
+ QWidget* khexedit2_real_widget;
+
+ uint start_, amount_;
+ QString startAsString_, amountAsString_;
+ char* data_;
+
+ int debuggerState_;
+ };
+}
+
+#endif