Fix Minimize to the tray instead of the taskbar
[novacoin.git] / src / qt / bitcoingui.h
index e04bcf9..1338998 100644 (file)
@@ -9,6 +9,9 @@ class ClientModel;
 class WalletModel;
 class TransactionView;
 class OverviewPage;
+class AddressBookPage;
+class SendCoinsDialog;
+class Notificator;
 
 QT_BEGIN_NAMESPACE
 class QLabel;
@@ -18,6 +21,7 @@ class QAbstractItemModel;
 class QModelIndex;
 class QProgressBar;
 class QStackedWidget;
+class QUrl;
 QT_END_NAMESPACE
 
 class BitcoinGUI : public QMainWindow
@@ -25,6 +29,8 @@ class BitcoinGUI : public QMainWindow
     Q_OBJECT
 public:
     explicit BitcoinGUI(QWidget *parent = 0);
+    ~BitcoinGUI();
+
     void setClientModel(ClientModel *clientModel);
     void setWalletModel(WalletModel *walletModel);
     
@@ -39,43 +45,63 @@ public:
 protected:
     void changeEvent(QEvent *e);
     void closeEvent(QCloseEvent *event);
+    void dragEnterEvent(QDragEnterEvent *event);
+    void dropEvent(QDropEvent *event);
 
 private:
     ClientModel *clientModel;
     WalletModel *walletModel;
 
     QStackedWidget *centralWidget;
+
+    QWidget *dummyWidget;
+
     OverviewPage *overviewPage;
     QWidget *transactionsPage;
+    AddressBookPage *addressBookPage;
+    AddressBookPage *receiveCoinsPage;
+    SendCoinsDialog *sendCoinsPage;
 
-    QLabel *labelConnections;
+    QLabel *labelEncryptionIcon;
     QLabel *labelConnectionsIcon;
-    QLabel *labelBlocks;
+    QLabel *labelBlocksIcon;
     QLabel *progressBarLabel;
     QProgressBar *progressBar;
 
+    QMenuBar *appMenuBar;
     QAction *overviewAction;
     QAction *historyAction;
-    QAction *quit;
-    QAction *sendCoins;
-    QAction *addressbook;
-    QAction *about;
-    QAction *receiveCoins;
-    QAction *options;
-    QAction *openBitcoin;
+    QAction *quitAction;
+    QAction *sendCoinsAction;
+    QAction *addressBookAction;
+    QAction *aboutAction;
+    QAction *receiveCoinsAction;
+    QAction *optionsAction;
+    QAction *openBitcoinAction;
+    QAction *exportAction;
+    QAction *encryptWalletAction;
+    QAction *changePassphraseAction;
+    QAction *aboutQtAction;
 
     QSystemTrayIcon *trayIcon;
+    Notificator *notificator;
     TransactionView *transactionView;
 
+    QMovie *syncIconMovie;
+
     void createActions();
+    void createMenuBar();
+    void createToolBars();
     QWidget *createTabs();
     void createTrayIcon();
 
 public slots:
-    void setBalance(qint64 balance);
     void setNumConnections(int count);
     void setNumBlocks(int count);
-    void setNumTransactions(int count);
+    void setEncryptionStatus(int status);
+    /** Set the status bar text if there are any warnings (removes sync progress bar if applicable) */
+    void refreshStatusBar();
+
     void error(const QString &title, const QString &message);
     /* It is currently not possible to pass a return value to another thread through
        BlockingQueuedConnection, so use an indirected pointer.
@@ -83,18 +109,26 @@ public slots:
     */
     void askFee(qint64 nFeeRequired, bool *payFee);
 
+    void showNormal();
+
 private slots:
-    void sendCoinsClicked();
-    void addressbookClicked();
+    // UI pages
+    void gotoOverviewPage();
+    void gotoHistoryPage();
+    void gotoAddressBookPage();
+    void gotoReceiveCoinsPage();
+    void gotoSendCoinsPage();
+
+    // Misc actions
     void optionsClicked();
-    void receiveCoinsClicked();
     void aboutClicked();
+#ifndef Q_WS_MAC
     void trayIconActivated(QSystemTrayIcon::ActivationReason reason);
-    void transactionDetails(const QModelIndex& idx);
+#endif
     void incomingTransaction(const QModelIndex & parent, int start, int end);
-
-    void gotoOverviewTab();
-    void gotoHistoryTab();
+    void encryptWallet(bool status);
+    void changePassphrase();
+    void unlockWallet();
 };
 
 #endif