aboutsummaryrefslogtreecommitdiff
path: root/src/aocharbutton.cpp
blob: 6acad70b3ecbd39d8569e8caaea216dac465eb82 (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
#include "aocharbutton.h"

#include "file_functions.h"

AOCharButton::AOCharButton(QWidget *parent, AOApplication *p_ao_app, int x_pos, int y_pos, bool is_taken) : QPushButton(parent)
{
  m_parent = parent;

  ao_app = p_ao_app;

  taken = is_taken;

  this->resize(60, 60);
  this->move(x_pos, y_pos);

  ui_taken = new AOImage(this, ao_app);
  ui_taken->resize(60, 60);
  ui_taken->set_image("char_taken");
  ui_taken->setAttribute(Qt::WA_TransparentForMouseEvents);
  ui_taken->hide();

  ui_passworded = new AOImage(this, ao_app);
  ui_passworded->resize(60, 60);
  ui_passworded->set_image("char_passworded");
  ui_passworded->setAttribute(Qt::WA_TransparentForMouseEvents);
  ui_passworded->hide();

  ui_selector = new AOImage(parent, ao_app);
  ui_selector->resize(62, 62);
  ui_selector->move(x_pos - 1, y_pos - 1);
  ui_selector->set_image("char_selector");
  ui_selector->setAttribute(Qt::WA_TransparentForMouseEvents);
  ui_selector->hide();
}

void AOCharButton::reset()
{
  ui_taken->hide();
  ui_passworded->hide();
  ui_selector->hide();
}

void AOCharButton::set_taken(bool is_taken)
{
  taken = is_taken;
}

void AOCharButton::apply_taken_image()
{
  if (taken)
  {
    ui_taken->move(0,0);
    ui_taken->show();
  }
  else
  {
    ui_taken->hide();
  }
}

void AOCharButton::set_passworded()
{
  ui_passworded->show();
}

void AOCharButton::set_image(QString p_character)
{
  QString image_path = ao_app->get_static_image_suffix(ao_app->get_character_path(p_character, "char_icon"));

  this->setText("");

  if (file_exists(image_path))
  {
    this->setStyleSheet("QPushButton { border-image: url(\"" + image_path + "\") 0 0 0 0 stretch stretch; }"
        "QToolTip { background-image: url(); color: #000000; background-color: #ffffff; border: 0px; }");
  }
  else
  {
    this->setStyleSheet("QPushButton { border-image: url(); }"
        "QToolTip { background-image: url(); color: #000000; background-color: #ffffff; border: 0px; }");
    this->setText(p_character);
  }
}

void AOCharButton::enterEvent(QEvent * e)
{
  ui_selector->move(this->x() - 1, this->y() - 1);
  ui_selector->raise();
  ui_selector->show();

  setFlat(false);
  QPushButton::enterEvent(e);
}

void AOCharButton::leaveEvent(QEvent * e)
{
  ui_selector->hide();
  QPushButton::leaveEvent(e);
}