summaryrefslogtreecommitdiffstats
path: root/src/libgui/gui_debug_manager.h
blob: 661f86acd04c995e29c583750a42490cb4e4fc25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/***************************************************************************
 *   Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.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 GUI_DEBUG_MANAGER_H
#define GUI_DEBUG_MANAGER_H

#include "progs/manager/debug_manager.h"
#include "text_editor.h"
#include "main_global.h"
#include "tools/list/compile_process.h"
namespace Register { class MainView; }

namespace Debugger
{
class GuiManager : public Manager
{
Q_OBJECT
public:
  GuiManager() {}
  virtual void updateDevice();
  void addTextEditor(TextEditor &editor);
  void addRegisterView(Register::MainView &view);
  void clearEditors();
  virtual void clear();

public slots:
  virtual bool update(bool gotoPC);
  void toggleBreakpoint();
  void toggleEnableBreakpoint();
  void showPC() { updateView(true); }
  void showDisassemblyLocation();

private slots:
  void editorDestroyed();

private:
  QValueList<Editor *> _editors;

  static Breakpoint::Data currentBreakpointData();
  void updateEditorMarks(TextEditor &editor) const; // return PC line
  Register::MainView *registerView() const;
  bool addEditor(Editor &editor);
  virtual bool internalInit();
  virtual bool checkState(bool &first);
  virtual const Programmer::Group *programmerGroup() const { return &Main::programmerGroup(); }
  virtual const Device::Data *deviceData() const { return Main::deviceData(); }
  virtual PURL::Url coffUrl() const;
  virtual Log::View *compileView() { return &Main::compileLog(); }
  virtual void updateView(bool gotoPC);
  virtual bool isProjectSource(const PURL::Url &url) const;
  virtual bool checkIfContinueStepping(bool &continueStepping);
};

} // namespace

#endif