3b722fcca49c83fde7b7ef528fc4abbb8a329426
[novacoin.git] / gui / include / bitcoingui.h
1 #ifndef BITCOINGUI_H
2 #define BITCOINGUI_H
3
4 #include <QMainWindow>
5 #include <QSystemTrayIcon>
6
7 /* Forward declarations */
8 class TransactionTableModel;
9 class ClientModel;
10
11 QT_BEGIN_NAMESPACE
12 class QLabel;
13 class QLineEdit;
14 QT_END_NAMESPACE
15
16 class BitcoinGUI : public QMainWindow
17 {
18     Q_OBJECT
19 public:
20     explicit BitcoinGUI(QWidget *parent = 0);
21     void setModel(ClientModel *model);
22     
23     /* Transaction table tab indices */
24     enum {
25         AllTransactions = 0,
26         SentReceived = 1,
27         Sent = 2,
28         Received = 3
29     } TabIndex;
30 private:
31     TransactionTableModel *transaction_model;
32     ClientModel *model;
33
34     QLineEdit *address;
35     QLabel *labelBalance;
36     QLabel *labelConnections;
37     QLabel *labelBlocks;
38     QLabel *labelTransactions;
39
40     QAction *quit;
41     QAction *sendcoins;
42     QAction *addressbook;
43     QAction *about;
44     QAction *receiving_addresses;
45     QAction *options;
46     QAction *openBitCoin;
47
48     QSystemTrayIcon *trayIcon;
49
50     void createActions();
51     QWidget *createTabs();
52     void createTrayIcon();
53
54 public slots:
55     void setBalance(double balance);
56     void setAddress(const QString &address);
57     void setNumConnections(int count);
58     void setNumBlocks(int count);
59     void setNumTransactions(int count);
60
61 private slots:
62     void sendcoinsClicked();
63     void addressbookClicked();
64     void optionsClicked();
65     void receivingAddressesClicked();
66     void aboutClicked();
67
68     void newAddressClicked();
69     void copyClipboardClicked();
70 };
71
72 #endif