summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt2/ToolBar.cpp
blob: a83482fc4da9ae58d240f2b6b85f0cbe009ea129 (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// Copyright 2015 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.

#include <QIcon>

#include "DolphinQt2/Settings.h"
#include "DolphinQt2/ToolBar.h"

static QSize ICON_SIZE(32, 32);

ToolBar::ToolBar(QWidget* parent) : QToolBar(parent)
{
  setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
  setMovable(false);
  setFloatable(false);
  setIconSize(ICON_SIZE);

  MakeActions();
  UpdateIcons();

  EmulationStopped();
}

void ToolBar::EmulationStarted()
{
  m_play_action->setEnabled(false);
  m_play_action->setVisible(false);
  m_pause_action->setEnabled(true);
  m_pause_action->setVisible(true);
  m_stop_action->setEnabled(true);
  m_stop_action->setVisible(true);
  m_fullscreen_action->setEnabled(true);
  m_screenshot_action->setEnabled(true);
}

void ToolBar::EmulationPaused()
{
  m_play_action->setEnabled(true);
  m_play_action->setVisible(true);
  m_pause_action->setEnabled(false);
  m_pause_action->setVisible(false);
  m_stop_action->setEnabled(true);
  m_stop_action->setVisible(true);
}

void ToolBar::EmulationStopped()
{
  m_play_action->setEnabled(true);
  m_play_action->setVisible(true);
  m_pause_action->setEnabled(false);
  m_pause_action->setVisible(false);
  m_stop_action->setEnabled(false);
  m_fullscreen_action->setEnabled(false);
  m_screenshot_action->setEnabled(false);
}

void ToolBar::MakeActions()
{
  constexpr int button_width = 65;
  m_open_action = addAction(tr("Open"), this, SIGNAL(OpenPressed()));
  widgetForAction(m_open_action)->setMinimumWidth(button_width);

  m_play_action = addAction(tr("Play"), this, SIGNAL(PlayPressed()));
  widgetForAction(m_play_action)->setMinimumWidth(button_width);

  m_pause_action = addAction(tr("Pause"), this, SIGNAL(PausePressed()));
  widgetForAction(m_pause_action)->setMinimumWidth(button_width);

  m_stop_action = addAction(tr("Stop"), this, SIGNAL(StopPressed()));
  widgetForAction(m_stop_action)->setMinimumWidth(button_width);

  m_fullscreen_action = addAction(tr("Full Screen"), this, SIGNAL(FullScreenPressed()));
  widgetForAction(m_fullscreen_action)->setMinimumWidth(button_width);

  m_screenshot_action = addAction(tr("Screen Shot"), this, SIGNAL(ScreenShotPressed()));
  widgetForAction(m_screenshot_action)->setMinimumWidth(button_width);

  addSeparator();

  m_paths_action = addAction(tr("Paths"), this, SIGNAL(PathsPressed()));
  widgetForAction(m_paths_action)->setMinimumWidth(button_width);

  m_config_action = addAction(tr("Settings"), this, SIGNAL(SettingsPressed()));
  widgetForAction(m_config_action)->setMinimumWidth(button_width);

  m_controllers_action = addAction(tr("Controllers"));
  widgetForAction(m_controllers_action)->setMinimumWidth(button_width);
  m_controllers_action->setEnabled(false);
}

void ToolBar::UpdateIcons()
{
  QString dir = Settings().GetThemeDir();

  m_open_action->setIcon(QIcon(QStringLiteral("open.png").prepend(dir)));
  m_paths_action->setIcon(QIcon(QStringLiteral("browse.png").prepend(dir)));
  m_play_action->setIcon(QIcon(QStringLiteral("play.png").prepend(dir)));
  m_pause_action->setIcon(QIcon(QStringLiteral("pause.png").prepend(dir)));
  m_stop_action->setIcon(QIcon(QStringLiteral("stop.png").prepend(dir)));
  m_fullscreen_action->setIcon(QIcon(QStringLiteral("fullscreen.png").prepend(dir)));
  m_screenshot_action->setIcon(QIcon(QStringLiteral("screenshot.png").prepend(dir)));
  m_config_action->setIcon(QIcon(QStringLiteral("config.png").prepend(dir)));
  m_controllers_action->setIcon(QIcon(QStringLiteral("classic.png").prepend(dir)));
}