more ui and ux improvements
This commit is contained in:
parent
b2dd352688
commit
b48075fbc5
@ -15,8 +15,8 @@
|
|||||||
MainWindow::MainWindow()
|
MainWindow::MainWindow()
|
||||||
: m_button_spin("spin"), m_button_reset("reset money"),
|
: m_button_spin("spin"), m_button_reset("reset money"),
|
||||||
m_button_quit("Quit"), slot_image0(), slot_image1(), slot_image2(),
|
m_button_quit("Quit"), slot_image0(), slot_image1(), slot_image2(),
|
||||||
m_label_money(), m_label_spins(), m_label_info(), m_label_bet("bet:"),
|
m_label_money(), m_label_spins(), m_label_info(), m_entry_bet(),
|
||||||
m_entry_bet(), m_timer_number(0) {
|
m_timer_number(0) {
|
||||||
set_title("Pupes Slots!");
|
set_title("Pupes Slots!");
|
||||||
|
|
||||||
m_grid_quit.set_margin(12);
|
m_grid_quit.set_margin(12);
|
||||||
@ -27,8 +27,15 @@ MainWindow::MainWindow()
|
|||||||
money = 100;
|
money = 100;
|
||||||
spins = 0;
|
spins = 0;
|
||||||
|
|
||||||
m_label_spins.set_label(std::to_string(spins));
|
// bet entry
|
||||||
m_label_money.set_label(std::to_string(money));
|
m_entry_bet.set_icon_from_icon_name("input-gaming");
|
||||||
|
m_entry_bet.set_placeholder_text("enter you bet");
|
||||||
|
|
||||||
|
// spins and money
|
||||||
|
m_label_spins.set_label("spins: " + std::to_string(spins));
|
||||||
|
m_label_spins.set_justify(Gtk::Justification::LEFT);
|
||||||
|
m_label_money.set_label("money: " + std::to_string(money));
|
||||||
|
m_label_money.set_justify(Gtk::Justification::LEFT);
|
||||||
|
|
||||||
// set image size
|
// set image size
|
||||||
slot_image0.set_size_request(128, 128);
|
slot_image0.set_size_request(128, 128);
|
||||||
@ -44,13 +51,15 @@ MainWindow::MainWindow()
|
|||||||
m_grid_main.attach(slot_image1, 1, 2);
|
m_grid_main.attach(slot_image1, 1, 2);
|
||||||
m_grid_main.attach(slot_image2, 2, 2);
|
m_grid_main.attach(slot_image2, 2, 2);
|
||||||
|
|
||||||
|
// info label
|
||||||
m_grid_main.attach(m_label_info, 1, 3);
|
m_grid_main.attach(m_label_info, 1, 3);
|
||||||
|
|
||||||
|
// row 4 spin button, bet entry, reset button
|
||||||
m_grid_main.attach(m_button_spin, 0, 4);
|
m_grid_main.attach(m_button_spin, 0, 4);
|
||||||
m_grid_main.attach(m_label_bet, 1, 4);
|
m_grid_main.attach(m_entry_bet, 1, 4);
|
||||||
m_grid_main.attach(m_entry_bet, 2, 4);
|
m_grid_main.attach(m_button_reset, 2, 4);
|
||||||
m_grid_main.attach(m_button_reset, 3, 4);
|
|
||||||
|
|
||||||
|
// attach main grid to to level quit grid and add quit button
|
||||||
m_grid_quit.attach(m_grid_main, 0, 0);
|
m_grid_quit.attach(m_grid_main, 0, 0);
|
||||||
m_grid_quit.attach(m_button_quit, 0, 1);
|
m_grid_quit.attach(m_button_quit, 0, 1);
|
||||||
|
|
||||||
@ -92,7 +101,7 @@ void MainWindow::randomise_slots(bool save, Glib::ustring *slot_status) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MainWindow::refresh_slots(int timer_number) {
|
bool MainWindow::refresh_slots(int timer_number, unsigned long long bet) {
|
||||||
|
|
||||||
std::cout << "This is timer " << timer_number;
|
std::cout << "This is timer " << timer_number;
|
||||||
|
|
||||||
@ -147,17 +156,24 @@ bool MainWindow::refresh_slots(int timer_number) {
|
|||||||
|
|
||||||
void MainWindow::on_button_spin() {
|
void MainWindow::on_button_spin() {
|
||||||
if (can_spin) {
|
if (can_spin) {
|
||||||
|
|
||||||
|
unsigned long long bet;
|
||||||
|
try {
|
||||||
|
bet = std::stoull(m_entry_bet.get_text());
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << "input a number\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
can_spin = false;
|
can_spin = false;
|
||||||
spins++;
|
spins++;
|
||||||
|
m_label_spins.set_label("spins: " + std::to_string(spins));
|
||||||
m_label_spins.set_label(std::to_string(spins));
|
|
||||||
|
|
||||||
count_value = get_random_num(30, 50);
|
count_value = get_random_num(30, 50);
|
||||||
// Creation of a new object prevents long lines and shows us a little
|
// Creation of a new object prevents long lines and shows us a little
|
||||||
// how slots work. We have 0 parameters and bool as a return value
|
// how slots work. We have 0 parameters and bool as a return value
|
||||||
// after calling sigc::bind.
|
// after calling sigc::bind.
|
||||||
sigc::slot<bool()> my_slot = sigc::bind(
|
sigc::slot<bool()> my_slot = sigc::bind(
|
||||||
sigc::mem_fun(*this, &MainWindow::refresh_slots), m_timer_number);
|
sigc::mem_fun(*this, &MainWindow::refresh_slots), m_timer_number, bet);
|
||||||
|
|
||||||
// This is where we connect the slot to the Glib::signal_timeout()
|
// This is where we connect the slot to the Glib::signal_timeout()
|
||||||
auto conn = Glib::signal_timeout().connect(my_slot, 300);
|
auto conn = Glib::signal_timeout().connect(my_slot, 300);
|
||||||
|
|||||||
@ -18,12 +18,12 @@ private:
|
|||||||
// Signal handlers:
|
// Signal handlers:
|
||||||
void on_button_quit();
|
void on_button_quit();
|
||||||
void on_button_spin();
|
void on_button_spin();
|
||||||
bool refresh_slots(int timer_number);
|
bool refresh_slots(int timer_number, unsigned long long bet);
|
||||||
void randomise_slots(bool save_to_global, Glib::ustring *slot_status);
|
void randomise_slots(bool save, Glib::ustring *slot_status);
|
||||||
|
|
||||||
// Child widgets:
|
// Child widgets:
|
||||||
Gtk::Grid m_grid_quit, m_grid_main;
|
Gtk::Grid m_grid_quit, m_grid_main;
|
||||||
Gtk::Label m_label_money, m_label_spins, m_label_info, m_label_bet;
|
Gtk::Label m_label_money, m_label_spins, m_label_info;
|
||||||
Gtk::Image slot_image0, slot_image1, slot_image2;
|
Gtk::Image slot_image0, slot_image1, slot_image2;
|
||||||
Gtk::Button m_button_spin, m_button_reset, m_button_quit;
|
Gtk::Button m_button_spin, m_button_reset, m_button_quit;
|
||||||
Gtk::Entry m_entry_bet;
|
Gtk::Entry m_entry_bet;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user