Freeciv21
Develop your civilization from humble roots to a global empire
diplodlg.h
Go to the documentation of this file.
1 /**************************************************************************
2  Copyright (c) 1996-2020 Freeciv21 and Freeciv contributors. This file is
3  part of Freeciv21. Freeciv21 is free software: you can redistribute it
4  and/or modify it under the terms of the GNU General Public License as
5  published by the Free Software Foundation, either version 3 of the
6  License, or (at your option) any later version. You should have received
7  a copy of the GNU General Public License along with Freeciv21. If not,
8  see https://www.gnu.org/licenses/.
9 **************************************************************************/
10 #pragma once
11 
12 // Qt
13 #include <QMap>
14 #include <QTabWidget>
15 // common
16 #include "diptreaty.h"
17 
18 class QCloseEvent;
19 class QGridLayout;
20 class QLabel;
21 class QObject;
22 class QPushButton;
23 class QSpinBox;
24 class QTableWidget;
25 class QTableWidgetItem;
26 
27 /****************************************************************************
28  Diplomacy tab for one nation
29 ****************************************************************************/
30 class diplo_wdg : public QWidget {
31  Q_OBJECT
32  QGridLayout *layout;
33  QLabel *plr1_accept;
34  QLabel *plr2_accept;
35  QPushButton *accept_treaty;
36  QPushButton *cancel_treaty;
37  QSpinBox *gold_edit1;
38  QSpinBox *gold_edit2;
39  QTableWidget *text_edit;
40 
41 public:
42  diplo_wdg(int id, int id2);
43  ~diplo_wdg() override;
44  void update_wdg();
45  void set_index(int ind);
46  int get_index();
47  struct Treaty treaty;
48 
49 private slots:
50  void all_advances();
51  void dbl_click(QTableWidgetItem *item);
52  void give_advance(int tech);
53  void give_city(int city_num);
54  void give_embassy();
55  void give_shared_vision();
56  void gold_changed1(int val);
57  void gold_changed2(int val);
58  void pact_allianze();
59  void pact_ceasfire();
60  void pact_peace();
61  void response_accept();
62  void response_cancel();
63  void sea_map_clause();
64  void show_menu(int player);
65  void show_menu_p1();
66  void show_menu_p2();
67  void world_map_clause();
68  void restore_pixmap();
69 
70 protected:
71  void closeEvent(QCloseEvent *event) override;
72 
73 private:
74  int player1;
75  int player2;
78  bool p1_accept;
79  bool p2_accept;
80  int index;
81 };
82 
83 /****************************************************************************
84  Diplomacy dialog containing many diplo_wdg
85 ****************************************************************************/
86 class diplo_dlg : public QTabWidget {
87  Q_OBJECT
89 
90 public:
91  diplo_dlg(int counterpart, int initiated_from);
92  ~diplo_dlg() override;
93  void update_dlg();
94  bool init(bool raise);
95  diplo_wdg *find_widget(int counterpart);
96  void close_widget(int counterpart);
97  void add_widget(int counterpart, int initiated_from);
98  void make_active(int party);
99 
100 private:
101  int index;
102 };
QMap< int, diplo_wdg * > treaty_list
Definition: diplodlg.h:88
void make_active(int party)
Sets given widget as active in current dialog.
Definition: diplodlg.cpp:733
~diplo_dlg() override
Destructor for diplomacy dialog.
Definition: diplodlg.cpp:767
diplo_dlg(int counterpart, int initiated_from)
Constructor for diplomacy dialog.
Definition: diplodlg.cpp:705
void close_widget(int counterpart)
Closes given diplomacy widget.
Definition: diplodlg.cpp:794
void update_dlg()
Updates all diplomacy widgets in current dialog.
Definition: diplodlg.cpp:809
void add_widget(int counterpart, int initiated_from)
Creates new diplomacy widget and adds to diplomacy dialog.
Definition: diplodlg.cpp:714
diplo_wdg * find_widget(int counterpart)
Finds diplomacy widget in current dialog.
Definition: diplodlg.cpp:786
bool init(bool raise)
Initializes some data for diplomacy dialog.
Definition: diplodlg.cpp:747
int index
Definition: diplodlg.h:101
void response_accept()
Button 'Accept treaty' has been clicked.
Definition: diplodlg.cpp:685
void pact_ceasfire()
Ceasefire pact menu activated.
Definition: diplodlg.cpp:469
bool p2_accept
Definition: diplodlg.h:79
int active_menu
Definition: diplodlg.h:76
QSpinBox * gold_edit1
Definition: diplodlg.h:37
void show_menu_p1()
Show menu for first player.
Definition: diplodlg.cpp:609
void give_embassy()
Give embassy menu activated.
Definition: diplodlg.cpp:439
~diplo_wdg() override
Destructor for diplomacy widget.
QLabel * plr2_accept
Definition: diplodlg.h:34
void show_menu(int player)
Shows popup menu with available clauses to create.
Definition: diplodlg.cpp:290
void gold_changed1(int val)
Gold changed on first spinner.
Definition: diplodlg.cpp:272
void world_map_clause()
World map menu activated.
Definition: diplodlg.cpp:499
void gold_changed2(int val)
Gold changed on second spinner.
Definition: diplodlg.cpp:281
QTableWidget * text_edit
Definition: diplodlg.h:39
int get_index()
Sets index in QTabWidget.
Definition: diplodlg.cpp:619
void pact_allianze()
Create alliance menu activated.
Definition: diplodlg.cpp:459
int player1
Definition: diplodlg.h:74
void all_advances()
Give all advances menu activated.
Definition: diplodlg.cpp:556
QPushButton * cancel_treaty
Definition: diplodlg.h:36
void closeEvent(QCloseEvent *event) override
Received event about diplomacy widget being closed.
Definition: diplodlg.cpp:261
void sea_map_clause()
Sea map menu activated.
Definition: diplodlg.cpp:489
void give_shared_vision()
Give shared vision menu activated.
Definition: diplodlg.cpp:449
QSpinBox * gold_edit2
Definition: diplodlg.h:38
void give_city(int city_num)
Give city menu activated.
Definition: diplodlg.cpp:508
void response_cancel()
Button 'Cancel treaty' has been clicked.
Definition: diplodlg.cpp:695
void dbl_click(QTableWidgetItem *item)
Double click on treaty list - it removes clicked clause from list.
Definition: diplodlg.cpp:239
void show_menu_p2()
Show menu for second player.
Definition: diplodlg.cpp:604
void update_wdg()
Updates diplomacy widget - updates clauses and redraws pixmaps.
Definition: diplodlg.cpp:624
int curr_player
Definition: diplodlg.h:77
int index
Definition: diplodlg.h:80
void restore_pixmap()
Restores original nations pixmap.
Definition: diplodlg.cpp:675
bool p1_accept
Definition: diplodlg.h:78
diplo_wdg(int id, int id2)
Constructor for diplomacy widget.
Definition: diplodlg.cpp:48
QPushButton * accept_treaty
Definition: diplodlg.h:35
int player2
Definition: diplodlg.h:75
void give_advance(int tech)
Give advance menu activated.
Definition: diplodlg.cpp:532
QGridLayout * layout
Definition: diplodlg.h:32
void pact_peace()
Peace pact menu activated.
Definition: diplodlg.cpp:479
void set_index(int ind)
Sets index in QTabWidget.
Definition: diplodlg.cpp:614
struct Treaty treaty
Definition: diplodlg.h:47
QLabel * plr1_accept
Definition: diplodlg.h:33
enum event_type event
Definition: events.cpp:68
Definition: climisc.h:66
Definition: player.h:231