summaryrefslogtreecommitdiffstats
path: root/src/libgui/main_global.h
blob: 020253e48cf18af8e74e6f4c784ae01202e4bd02 (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
62
63
64
65
66
67
68
69
70
/***************************************************************************
 *   Copyright (C) 2005-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 MAIN_GLOBAL_H
#define MAIN_GLOBAL_H

#include <qstring.h>
#include <qpopupmenu.h>
#include <kstdaction.h>

#include "progs/base/generic_prog.h"

class EditorManager;
namespace ProjectManager { class View; }
class Editor;
class Project;
namespace Compile { class LogWidget; class Manager; }
namespace Register { class List; class WatchView; }
namespace Breakpoint { class View; }
class MainWindow;
namespace Programmer { class Group; class Base; }
namespace Device { class Data; }
namespace Tool { class Group; }
class ConsoleView;

class Main
{
public:
  enum State { Idle, Compiling, Programming, Closing };
  static void setState(State state);
  static State state() { return _state; }

  static MainWindow &toplevel() { return *_toplevel; }
  static const Programmer::Group &programmerGroup();
  static Programmer::Base *programmer();
  static Programmer::State programmerState();
  static KAction *action(const char *name);
  static KAction *action(KStdAction::StdAction action);
  static QPopupMenu &popup(const char *name);
  static EditorManager &editorManager() { return *_editorManager; }
  static Editor *currentEditor();
  static QString device();
  static const Device::Data *deviceData();
  static Breakpoint::View &breakpointsView() { return *_breakpointsView; }
  static ProjectManager::View &projectManager() { return *_projectManager; }
  static Project *project();
  static Register::WatchView &watchView() { return *_watchView; }
  static Compile::LogWidget &compileLog() { return *_compileLog; }
  static const Tool::Group &toolGroup();

private:
  static State                 _state;
  static MainWindow           *_toplevel;
  static EditorManager        *_editorManager;
  static ProjectManager::View *_projectManager;
  static Breakpoint::View     *_breakpointsView;
  static Register::WatchView  *_watchView;
  static Compile::LogWidget   *_compileLog;
  static Compile::Manager     *_compileManager;
  static ConsoleView          *_consoleView;

  friend class MainWindow;
};

#endif