Merge branch 'log-timestamp' of https://github.com/TheBlueMatt/bitcoin
authorGavin Andresen <gavinandresen@gmail.com>
Sun, 13 Mar 2011 21:15:57 +0000 (17:15 -0400)
committerGavin Andresen <gavinandresen@gmail.com>
Sun, 13 Mar 2011 21:15:57 +0000 (17:15 -0400)
contrib/gitian.yml [new file with mode: 0644]
init.cpp
main.cpp
main.h
rpc.cpp
serialize.h
uibase.cpp
uibase.h
uiproject.fbp
util.cpp
util.h

diff --git a/contrib/gitian.yml b/contrib/gitian.yml
new file mode 100644 (file)
index 0000000..92385e5
--- /dev/null
@@ -0,0 +1,37 @@
+---
+name: "bitcoin"
+suites:
+- "lucid"
+architectures:
+- "i386"
+- "amd64"
+packages: 
+- "libdb4.8++-dev"
+- "libxxf86vm-dev"
+- "libgtk2.0-dev"
+- "libboost-all-dev"
+- "libssl-dev"
+- "git-core"
+reference_datetime: "2011-01-30 00:00:00"
+remotes:
+- "url": "https://github.com/bitcoin/bitcoin.git"
+  "dir": "bitcoin"
+files:
+- "wxWidgets-2.9.1.tar.bz2"
+script: |
+  INSTDIR="$HOME/install"
+  export LIBRARY_PATH="$INSTDIR/lib"
+  tar xjf wxWidgets-2.9.1.tar.bz2
+  cd wxWidgets-2.9.1
+  ./configure --prefix=$INSTDIR --enable-monolithic --disable-shared
+  perl -i -p -e "s/__TIME__/\"$REFERENCE_TIME\"/;s/__DATE__/\"$REFERENCE_DATE\"/" include/wx/chartype.h
+  make $MAKEOPTS install
+  cd ../bitcoin
+  mkdir -p $OUTDIR/src
+  cp -a . $OUTDIR/src
+  rm -rf $OUTDIR/src/.git
+  mv $OUTDIR/src/locale $OUTDIR
+  cp $OUTDIR/src/license.txt $OUTDIR
+  make -f makefile.unix $MAKEOPTS  WXLIBS="-Wl,-Bstatic -l wx_gtk2u-2.9 -Wl,-Bdynamic -l gtk-x11-2.0 -l SM -l Xxf86vm" INCLUDEPATHS="`$INSTDIR/bin/wx-config --cflags`" bitcoin bitcoind
+  mkdir -p $OUTDIR/bin/$GBUILD_BITS
+  cp bitcoin bitcoind $OUTDIR/bin/$GBUILD_BITS
index 9c84dca..ac2721d 100644 (file)
--- a/init.cpp
+++ b/init.cpp
@@ -74,32 +74,11 @@ void HandleSIGTERM(int)
 #ifndef GUI
 int main(int argc, char* argv[])
 {
-    for (int i = 1; i < argc; i++)
-        if (!IsSwitchChar(argv[i][0]))
-            fCommandLine = true;
-    fDaemon = !fCommandLine;
-
-#ifdef __WXGTK__
-    if (!fCommandLine)
-    {
-        // Daemonize
-        pid_t pid = fork();
-        if (pid < 0)
-        {
-            fprintf(stderr, "Error: fork() returned %d errno %d\n", pid, errno);
-            return 1;
-        }
-        if (pid > 0)
-            pthread_exit((void*)0);
-    }
-#endif
-
-    if (!AppInit(argc, argv))
-        return 1;
+    bool fRet = false;
+    fRet = AppInit(argc, argv);
 
-    while (!fShutdown)
-        Sleep(1000000);
-    return 0;
+    if (fRet && fDaemon)
+        pthread_exit((void*)0);
 }
 #endif
 
@@ -177,8 +156,10 @@ bool AppInit2(int argc, char* argv[])
             "  -connect=<ip>    \t\t  " + _("Connect only to the specified node\n") +
             "  -nolisten        \t  "   + _("Don't accept connections from outside\n") +
             "  -paytxfee=<amt>  \t  "   + _("Fee per KB to add to transactions you send\n") +
+#ifdef GUI
             "  -server          \t\t  " + _("Accept command line and JSON-RPC commands\n") +
             "  -daemon          \t\t  " + _("Run in the background as a daemon and accept commands\n") +
+#endif
             "  -testnet         \t\t  " + _("Use the test network\n") +
             "  -rpcuser=<user>  \t  "   + _("Username for JSON-RPC connections\n") +
             "  -rpcpassword=<pw>\t  "   + _("Password for JSON-RPC connections\n") +
@@ -213,6 +194,19 @@ bool AppInit2(int argc, char* argv[])
 
     fDebug = GetBoolArg("-debug");
 
+    fDaemon = GetBoolArg("-daemon");
+
+    if (fDaemon)
+        fServer = true;
+    else
+        fServer = GetBoolArg("-server");
+
+    /* force fServer and fDaemon when running without GUI */
+#ifndef GUI
+    fServer = true;
+    fDaemon = true;
+#endif
+
     fPrintToConsole = GetBoolArg("-printtoconsole");
     fPrintToDebugger = GetBoolArg("-printtodebugger");
 
@@ -220,12 +214,31 @@ bool AppInit2(int argc, char* argv[])
     
     fNoListen = GetBoolArg("-nolisten");
 
+    for (int i = 1; i < argc; i++)
+        if (!IsSwitchChar(argv[i][0]))
+            fCommandLine = true;
+
     if (fCommandLine)
     {
         int ret = CommandLineRPC(argc, argv);
         exit(ret);
     }
 
+#ifndef GUI
+    if (fDaemon)
+    {
+        // Daemonize
+        pid_t pid = fork();
+        if (pid < 0)
+        {
+            fprintf(stderr, "Error: fork() returned %d errno %d\n", pid, errno);
+            return false;
+        }
+        if (pid > 0)
+            return true;
+    }
+#endif
+
     if (!fDebug && !pszSetDataDir[0])
         ShrinkDebugFile();
     printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
@@ -443,7 +456,7 @@ bool AppInit2(int argc, char* argv[])
     if (!CreateThread(StartNode, NULL))
         wxMessageBox("Error: CreateThread(StartNode) failed", "Bitcoin");
 
-    if (GetBoolArg("-server") || fDaemon)
+    if (fServer)
         CreateThread(ThreadRPCServer, NULL);
 
 #if defined(__WXMSW__) && defined(GUI)
index a47f3a9..298e76e 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -287,7 +287,7 @@ void EraseOrphanTx(uint256 hash)
 
 //////////////////////////////////////////////////////////////////////////////
 //
-// CTransaction
+// CTransaction and CTxIndex
 //
 
 bool CTransaction::ReadFromDisk(CTxDB& txdb, COutPoint prevout, CTxIndex& txindexRet)
@@ -678,7 +678,11 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
 
     // Safety limits
     unsigned int nSize = ::GetSerializeSize(*this, SER_NETWORK);
-    if (GetSigOpCount() > 2 || nSize < 100)
+    // Checking ECDSA signatures is a CPU bottleneck, so to avoid denial-of-service
+    // attacks disallow transactions with more than one SigOp per 34 bytes.
+    // 34 bytes because a TxOut is:
+    //   20-byte address + 8 byte bitcoin amount + 5 bytes of ops + 1 byte script length
+    if (GetSigOpCount() > nSize / 34 || nSize < 100)
         return error("AcceptToMemoryPool() : nonstandard transaction");
 
     // Rather not work on nonstandard transactions
@@ -738,19 +742,29 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
         if (nFees < GetMinFee(1000))
             return error("AcceptToMemoryPool() : not enough fees");
 
-        // Limit free transactions per 10 minutes
-        if (nFees < CENT && GetBoolArg("-limitfreerelay"))
+        // Continuously rate-limit free transactions
+        // This mitigates 'penny-flooding' -- sending thousands of free transactions just to
+        // be annoying or make other's transactions take longer to confirm.
+        if (nFees < CENT)
         {
-            static int64 nNextReset;
-            static int64 nFreeCount;
-            if (GetTime() > nNextReset)
+            static CCriticalSection cs;
+            static double dFreeCount;
+            static int64 nLastTime;
+            int64 nNow = GetTime();
+
+            CRITICAL_BLOCK(cs)
             {
-                nNextReset = GetTime() + 10 * 60;
-                nFreeCount = 0;
+                // Use an exponentially decaying ~10-minute window:
+                dFreeCount *= pow(1.0 - 1.0/600.0, (double)(nNow - nLastTime));
+                nLastTime = nNow;
+                // -limitfreerelay unit is thousand-bytes-per-minute
+                // At default rate it would take over a month to fill 1GB
+                if (dFreeCount > GetArg("-limitfreerelay", 15)*10*1000 && !IsFromMe())
+                    return error("AcceptToMemoryPool() : free transaction rejected by rate limiter");
+                if (fDebug)
+                    printf("Rate limit dFreeCount: %g => %g\n", dFreeCount, dFreeCount+nSize);
+                dFreeCount += nSize;
             }
-            if (nFreeCount > 150000 && !IsFromMe())
-                return error("AcceptToMemoryPool() : free transaction rejected by rate limiter");
-            nFreeCount += nSize;
         }
     }
 
@@ -1034,6 +1048,22 @@ void ResendWalletTransactions()
     }
 }
 
+int CTxIndex::GetDepthInMainChain() const
+{
+    // Read block header
+    CBlock block;
+    if (!block.ReadFromDisk(pos.nFile, pos.nBlockPos, false))
+        return 0;
+    // Find the block in the index
+    map<uint256, CBlockIndex*>::iterator mi = mapBlockIndex.find(block.GetHash());
+    if (mi == mapBlockIndex.end())
+        return 0;
+    CBlockIndex* pindex = (*mi).second;
+    if (!pindex || !pindex->IsInMainChain())
+        return 0;
+    return 1 + nBestHeight - pindex->nHeight;
+}
+
 
 
 
@@ -3327,18 +3357,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
                 int64 nValueIn = txPrev.vout[txin.prevout.n].nValue;
 
                 // Read block header
-                int nConf = 0;
-                CBlock block;
-                if (block.ReadFromDisk(txindex.pos.nFile, txindex.pos.nBlockPos, false))
-                {
-                    map<uint256, CBlockIndex*>::iterator it = mapBlockIndex.find(block.GetHash());
-                    if (it != mapBlockIndex.end())
-                    {
-                        CBlockIndex* pindex = (*it).second;
-                        if (pindex->IsInMainChain())
-                            nConf = 1 + nBestHeight - pindex->nHeight;
-                    }
-                }
+                int nConf = txindex.GetDepthInMainChain();
 
                 dPriority += (double)nValueIn * nConf;
 
@@ -3383,7 +3402,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
                 continue;
 
             // Transaction fee required depends on block size
-            bool fAllowFree = (nBlockSize + nTxSize < 4000 || dPriority > COIN * 144 / 250);
+            bool fAllowFree = (nBlockSize + nTxSize < 4000 || CTransaction::AllowFree(dPriority));
             int64 nMinFee = tx.GetMinFee(nBlockSize, fAllowFree);
 
             // Connecting shouldn't fail due to dependency on other memory pool transactions
@@ -3750,16 +3769,16 @@ bool SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfTheirs, set<
             int64 n = pcoin->GetCredit();
             if (n <= 0)
                 continue;
-            if (n < nTargetValue)
-            {
-                vValue.push_back(make_pair(n, pcoin));
-                nTotalLower += n;
-            }
-            else if (n == nTargetValue)
+            if (n == nTargetValue)
             {
                 setCoinsRet.insert(pcoin);
                 return true;
             }
+            else if (n < nTargetValue + CENT)
+            {
+                vValue.push_back(make_pair(n, pcoin));
+                nTotalLower += n;
+            }
             else if (n < nLowestLarger)
             {
                 nLowestLarger = n;
@@ -3768,7 +3787,14 @@ bool SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfTheirs, set<
         }
     }
 
-    if (nTotalLower < nTargetValue)
+    if (nTotalLower == nTargetValue || nTotalLower == nTargetValue + CENT)
+    {
+        for (int i = 0; i < vValue.size(); ++i)
+            setCoinsRet.insert(vValue[i].second);
+        return true;
+    }
+
+    if (nTotalLower < nTargetValue + (pcoinLowestLarger ? CENT : 0))
     {
         if (pcoinLowestLarger == NULL)
             return false;
@@ -3776,6 +3802,9 @@ bool SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfTheirs, set<
         return true;
     }
 
+    if (nTotalLower >= nTargetValue + CENT)
+        nTargetValue += CENT;
+
     // Solve subset sum by stochastic approximation
     sort(vValue.rbegin(), vValue.rend());
     vector<char> vfIncluded;
@@ -3841,8 +3870,18 @@ bool SelectCoins(int64 nTargetValue, set<CWalletTx*>& setCoinsRet)
 
 
 
-bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet)
+bool CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet)
 {
+    int64 nValue = 0;
+    foreach (const PAIRTYPE(CScript, int64)& s, vecSend)
+    {
+        if (nValue < 0)
+            return false;
+        nValue += s.second;
+    }
+    if (vecSend.empty() || nValue < 0)
+        return false;
+
     CRITICAL_BLOCK(cs_main)
     {
         // txdb must be opened before the mapWallet lock
@@ -3855,10 +3894,12 @@ bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CR
                 wtxNew.vin.clear();
                 wtxNew.vout.clear();
                 wtxNew.fFromMe = true;
-                if (nValue < 0)
-                    return false;
-                int64 nValueOut = nValue;
+
                 int64 nTotalValue = nValue + nFeeRet;
+                double dPriority = 0;
+                // vouts to the payees
+                foreach (const PAIRTYPE(CScript, int64)& s, vecSend)
+                    wtxNew.vout.push_back(CTxOut(s.second, s.first));
 
                 // Choose coins to use
                 set<CWalletTx*> setCoins;
@@ -3866,12 +3907,11 @@ bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CR
                     return false;
                 int64 nValueIn = 0;
                 foreach(CWalletTx* pcoin, setCoins)
-                    nValueIn += pcoin->GetCredit();
-
-                // Fill a vout to the payee
-                bool fChangeFirst = GetRand(2);
-                if (!fChangeFirst)
-                    wtxNew.vout.push_back(CTxOut(nValueOut, scriptPubKey));
+                {
+                    int64 nCredit = pcoin->GetCredit();
+                    nValueIn += nCredit;
+                    dPriority += (double)nCredit * pcoin->GetDepthInMainChain();
+                }
 
                 // Fill a vout back to self with any change
                 int64 nChange = nValueIn - nTotalValue;
@@ -3890,19 +3930,18 @@ bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CR
 
                     // Fill a vout to ourself, using same address type as the payment
                     CScript scriptChange;
-                    if (scriptPubKey.GetBitcoinAddressHash160() != 0)
+                    if (vecSend[0].first.GetBitcoinAddressHash160() != 0)
                         scriptChange.SetBitcoinAddress(vchPubKey);
                     else
                         scriptChange << vchPubKey << OP_CHECKSIG;
-                    wtxNew.vout.push_back(CTxOut(nChange, scriptChange));
+
+                    // Insert change txn at random position:
+                    vector<CTxOut>::iterator position = wtxNew.vout.begin()+GetRandInt(wtxNew.vout.size());
+                    wtxNew.vout.insert(position, CTxOut(nChange, scriptChange));
                 }
                 else
                     reservekey.ReturnKey();
 
-                // Fill a vout to the payee
-                if (fChangeFirst)
-                    wtxNew.vout.push_back(CTxOut(nValueOut, scriptPubKey));
-
                 // Fill vin
                 foreach(CWalletTx* pcoin, setCoins)
                     for (int nOut = 0; nOut < pcoin->vout.size(); nOut++)
@@ -3921,10 +3960,12 @@ bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CR
                 unsigned int nBytes = ::GetSerializeSize(*(CTransaction*)&wtxNew, SER_NETWORK);
                 if (nBytes >= MAX_BLOCK_SIZE_GEN/5)
                     return false;
+                dPriority /= nBytes;
 
                 // Check that enough fee is included
                 int64 nPayFee = nTransactionFee * (1 + (int64)nBytes / 1000);
-                int64 nMinFee = wtxNew.GetMinFee();
+                bool fAllowFree = CTransaction::AllowFree(dPriority);
+                int64 nMinFee = wtxNew.GetMinFee(1, fAllowFree);
                 if (nFeeRet < max(nPayFee, nMinFee))
                 {
                     nFeeRet = max(nPayFee, nMinFee);
@@ -3942,6 +3983,13 @@ bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CR
     return true;
 }
 
+bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet)
+{
+    vector< pair<CScript, int64> > vecSend;
+    vecSend.push_back(make_pair(scriptPubKey, nValue));
+    return CreateTransaction(vecSend, wtxNew, reservekey, nFeeRet);
+}
+
 // Call after CreateTransaction unless you want to abort
 bool CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey)
 {
diff --git a/main.h b/main.h
index a7ef336..e9d0c00 100644 (file)
--- a/main.h
+++ b/main.h
@@ -77,6 +77,7 @@ bool ProcessMessages(CNode* pfrom);
 bool ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv);
 bool SendMessages(CNode* pto, bool fSendTrickle);
 int64 GetBalance();
+bool CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet);
 bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet);
 bool CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey);
 bool BroadcastTransaction(CWalletTx& wtxNew);
@@ -574,6 +575,13 @@ public:
         return nValueOut;
     }
 
+    static bool AllowFree(double dPriority)
+    {
+        // Large (in bytes) low-priority (new, small-coin) transactions
+        // need a fee.
+        return dPriority > COIN * 144 / 250;
+    }
+
     int64 GetMinFee(unsigned int nBlockSize=1, bool fAllowFree=true) const
     {
         // Base fee is 1 cent per kilobyte
@@ -998,6 +1006,7 @@ public:
     {
         return !(a == b);
     }
+    int GetDepthInMainChain() const;
 };
 
 
diff --git a/rpc.cpp b/rpc.cpp
index dd94acc..97710ff 100644 (file)
--- a/rpc.cpp
+++ b/rpc.cpp
@@ -768,6 +768,69 @@ Value sendfrom(const Array& params, bool fHelp)
     return wtx.GetHash().GetHex();
 }
 
+Value sendmany(const Array& params, bool fHelp)
+{
+    if (fHelp || params.size() < 2 || params.size() > 4)
+        throw runtime_error(
+            "sendmany <fromaccount> {address:amount,...} [minconf=1] [comment]\n"
+            "amounts are double-precision floating point numbers");
+
+    string strAccount = AccountFromValue(params[0]);
+    Object sendTo = params[1].get_obj();
+    int nMinDepth = 1;
+    if (params.size() > 2)
+        nMinDepth = params[2].get_int();
+
+    CWalletTx wtx;
+    wtx.strFromAccount = strAccount;
+    if (params.size() > 3 && params[3].type() != null_type && !params[3].get_str().empty())
+        wtx.mapValue["comment"] = params[3].get_str();
+
+    set<string> setAddress;
+    vector<pair<CScript, int64> > vecSend;
+
+    int64 totalAmount = 0;
+    foreach(const Pair& s, sendTo)
+    {
+        uint160 hash160;
+        string strAddress = s.name_;
+
+        if (setAddress.count(strAddress))
+            throw JSONRPCError(-8, string("Invalid parameter, duplicated address: ")+strAddress);
+        setAddress.insert(strAddress);
+
+        CScript scriptPubKey;
+        if (!scriptPubKey.SetBitcoinAddress(strAddress))
+            throw JSONRPCError(-5, string("Invalid bitcoin address:")+strAddress);
+        int64 nAmount = AmountFromValue(s.value_); 
+        totalAmount += nAmount;
+
+        vecSend.push_back(make_pair(scriptPubKey, nAmount));
+    }
+
+    CRITICAL_BLOCK(cs_mapWallet)
+    {
+        // Check funds
+        int64 nBalance = GetAccountBalance(strAccount, nMinDepth);
+        if (totalAmount > nBalance)
+            throw JSONRPCError(-6, "Account has insufficient funds");
+
+        // Send
+        CReserveKey keyChange;
+        int64 nFeeRequired = 0;
+        bool fCreated = CreateTransaction(vecSend, wtx, keyChange, nFeeRequired);
+        if (!fCreated)
+        {
+            if (totalAmount + nFeeRequired > GetBalance())
+                throw JSONRPCError(-6, "Insufficient funds");
+            throw JSONRPCError(-4, "Transaction creation failed");
+        }
+        if (!CommitTransaction(wtx, keyChange))
+            throw JSONRPCError(-4, "Transaction commit failed");
+    }
+
+    return wtx.GetHash().GetHex();
+}
 
 
 struct tallyitem
@@ -1344,6 +1407,7 @@ pair<string, rpcfn_type> pCallTable[] =
     make_pair("getbalance",            &getbalance),
     make_pair("move",                  &movecmd),
     make_pair("sendfrom",              &sendfrom),
+    make_pair("sendmany",              &sendmany),
     make_pair("gettransaction",        &gettransaction),
     make_pair("listtransactions",      &listtransactions),
     make_pair("getwork",               &getwork),
@@ -1995,6 +2059,15 @@ int CommandLineRPC(int argc, char *argv[])
         if (strMethod == "sendfrom"               && n > 3) ConvertTo<boost::int64_t>(params[3]);
         if (strMethod == "listtransactions"       && n > 1) ConvertTo<boost::int64_t>(params[1]);
         if (strMethod == "listaccounts"           && n > 0) ConvertTo<boost::int64_t>(params[0]);
+        if (strMethod == "sendmany"               && n > 1)
+        {
+            string s = params[1].get_str();
+            Value v;
+            if (!read_string(s, v) || v.type() != obj_type)
+                throw runtime_error("type mismatch");
+            params[1] = v.get_obj();
+        }
+        if (strMethod == "sendmany"                && n > 2) ConvertTo<boost::int64_t>(params[2]);
 
         // Execute
         Object reply = CallRPC(strMethod, params);
index 6bf6fbf..383c987 100644 (file)
@@ -25,7 +25,7 @@ class CDataStream;
 class CAutoFile;
 static const unsigned int MAX_SIZE = 0x02000000;
 
-static const int VERSION = 32002;
+static const int VERSION = 32100;
 static const char* pszSubVer = "";
 static const bool VERSION_IS_BETA = true;
 
index 5c7ada4..71c84f7 100644 (file)
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Apr 16 2008)
+// C++ code generated with wxFormBuilder (version Dec 21 2009)
 // http://www.wxformbuilder.org/
 //
 // PLEASE DO "NOT" EDIT THIS FILE!
@@ -61,7 +61,6 @@ CMainFrameBase::CMainFrameBase( wxWindow* parent, wxWindowID id, const wxString&
        m_toolBar->Realize();
        
        m_statusBar = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY );
-       
        wxBoxSizer* bSizer2;
        bSizer2 = new wxBoxSizer( wxVERTICAL );
        
@@ -355,7 +354,6 @@ COptionsDialogBase::COptionsDialogBase( wxWindow* parent, wxWindowID id, const w
        bSizer71 = new wxBoxSizer( wxHORIZONTAL );
        
        m_checkBoxLimitProcessors = new wxCheckBox( m_panelMain, wxID_ANY, _("&Limit coin generation to"), wxDefaultPosition, wxDefaultSize, 0 );
-       
        bSizer71->Add( m_checkBoxLimitProcessors, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
        
        m_spinCtrlLimitProcessors = new wxSpinCtrl( m_panelMain, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 48,-1 ), wxSP_ARROW_KEYS, 1, 999, 1 );
@@ -368,22 +366,18 @@ COptionsDialogBase::COptionsDialogBase( wxWindow* parent, wxWindowID id, const w
        bSizer69->Add( bSizer71, 0, 0, 5 );
        
        m_checkBoxStartOnSystemStartup = new wxCheckBox( m_panelMain, wxID_ANY, _("&Start Bitcoin on system startup"), wxDefaultPosition, wxDefaultSize, 0 );
-       
        bSizer69->Add( m_checkBoxStartOnSystemStartup, 0, wxALL, 5 );
        
        m_checkBoxMinimizeToTray = new wxCheckBox( m_panelMain, wxID_ANY, _("&Minimize to the tray instead of the taskbar"), wxDefaultPosition, wxDefaultSize, 0 );
-       
        bSizer69->Add( m_checkBoxMinimizeToTray, 0, wxALL, 5 );
        
        m_checkBoxMinimizeOnClose = new wxCheckBox( m_panelMain, wxID_ANY, _("M&inimize to the tray on close"), wxDefaultPosition, wxDefaultSize, 0 );
-       
        bSizer69->Add( m_checkBoxMinimizeOnClose, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
        
        wxBoxSizer* bSizer102;
        bSizer102 = new wxBoxSizer( wxHORIZONTAL );
        
        m_checkBoxUseProxy = new wxCheckBox( m_panelMain, wxID_ANY, _("&Connect through socks4 proxy: "), wxDefaultPosition, wxDefaultSize, 0 );
-       
        bSizer102->Add( m_checkBoxUseProxy, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
        
        bSizer69->Add( bSizer102, 1, wxEXPAND, 5 );
@@ -677,6 +671,11 @@ CSendDialogBase::CSendDialogBase( wxWindow* parent, wxWindowID id, const wxStrin
        
        bSizer21->Add( fgSizer1, 0, wxEXPAND|wxLEFT, 5 );
        
+       wxBoxSizer* bSizer672;
+       bSizer672 = new wxBoxSizer( wxHORIZONTAL );
+       
+       bSizer21->Add( bSizer672, 0, wxEXPAND, 5 );
+       
        wxBoxSizer* bSizer23;
        bSizer23 = new wxBoxSizer( wxHORIZONTAL );
        
@@ -698,6 +697,7 @@ CSendDialogBase::CSendDialogBase( wxWindow* parent, wxWindowID id, const wxStrin
        
        // Connect Events
        m_textCtrlAddress->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );
+       m_textCtrlAddress->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( CSendDialogBase::OnTextAddress ), NULL, this );
        m_buttonPaste->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonPaste ), NULL, this );
        m_buttonAddress->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonAddressBook ), NULL, this );
        m_textCtrlAmount->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );
@@ -710,6 +710,7 @@ CSendDialogBase::~CSendDialogBase()
 {
        // Disconnect Events
        m_textCtrlAddress->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );
+       m_textCtrlAddress->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( CSendDialogBase::OnTextAddress ), NULL, this );
        m_buttonPaste->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonPaste ), NULL, this );
        m_buttonAddress->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonAddressBook ), NULL, this );
        m_textCtrlAmount->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );
index 25af62a..eff5bd6 100644 (file)
--- a/uibase.h
+++ b/uibase.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Apr 16 2008)
+// C++ code generated with wxFormBuilder (version Dec 21 2009)
 // http://www.wxformbuilder.org/
 //
 // PLEASE DO "NOT" EDIT THIS FILE!
@@ -93,28 +93,28 @@ class CMainFrameBase : public wxFrame
                wxPanel* m_panel93;
                
                // Virtual event handlers, overide them in your derived class
-               virtual void OnClose( wxCloseEvent& event ){ event.Skip(); }
-               virtual void OnIconize( wxIconizeEvent& event ){ event.Skip(); }
-               virtual void OnIdle( wxIdleEvent& event ){ event.Skip(); }
-               virtual void OnMouseEvents( wxMouseEvent& event ){ event.Skip(); }
-               virtual void OnPaint( wxPaintEvent& event ){ event.Skip(); }
-               virtual void OnMenuFileExit( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnMenuOptionsGenerate( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnUpdateUIOptionsGenerate( wxUpdateUIEvent& event ){ event.Skip(); }
-               virtual void OnMenuOptionsChangeYourAddress( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnMenuOptionsOptions( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnMenuHelpAbout( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonSend( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonAddressBook( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnKeyDown( wxKeyEvent& event ){ event.Skip(); }
-               virtual void OnMouseEventsAddress( wxMouseEvent& event ){ event.Skip(); }
-               virtual void OnSetFocusAddress( wxFocusEvent& event ){ event.Skip(); }
-               virtual void OnButtonNew( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonCopy( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnNotebookPageChanged( wxNotebookEvent& event ){ event.Skip(); }
-               virtual void OnListColBeginDrag( wxListEvent& event ){ event.Skip(); }
-               virtual void OnListItemActivated( wxListEvent& event ){ event.Skip(); }
-               virtual void OnPaintListCtrl( wxPaintEvent& event ){ event.Skip(); }
+               virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+               virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); }
+               virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
+               virtual void OnMouseEvents( wxMouseEvent& event ) { event.Skip(); }
+               virtual void OnPaint( wxPaintEvent& event ) { event.Skip(); }
+               virtual void OnMenuFileExit( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnMenuOptionsGenerate( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnUpdateUIOptionsGenerate( wxUpdateUIEvent& event ) { event.Skip(); }
+               virtual void OnMenuOptionsChangeYourAddress( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnMenuOptionsOptions( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnMenuHelpAbout( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonSend( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonAddressBook( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnKeyDown( wxKeyEvent& event ) { event.Skip(); }
+               virtual void OnMouseEventsAddress( wxMouseEvent& event ) { event.Skip(); }
+               virtual void OnSetFocusAddress( wxFocusEvent& event ) { event.Skip(); }
+               virtual void OnButtonNew( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonCopy( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnNotebookPageChanged( wxNotebookEvent& event ) { event.Skip(); }
+               virtual void OnListColBeginDrag( wxListEvent& event ) { event.Skip(); }
+               virtual void OnListItemActivated( wxListEvent& event ) { event.Skip(); }
+               virtual void OnPaintListCtrl( wxPaintEvent& event ) { event.Skip(); }
                
        
        public:
@@ -125,6 +125,7 @@ class CMainFrameBase : public wxFrame
                wxListCtrl* m_listCtrlSentReceived;
                wxListCtrl* m_listCtrlSent;
                wxListCtrl* m_listCtrlReceived;
+               
                CMainFrameBase( wxWindow* parent, wxWindowID id = wxID_MAINFRAME, const wxString& title = _("Bitcoin"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 723,484 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxTAB_TRAVERSAL );
                ~CMainFrameBase();
        
@@ -142,10 +143,11 @@ class CTxDetailsDialogBase : public wxDialog
                wxButton* m_buttonOK;
                
                // Virtual event handlers, overide them in your derived class
-               virtual void OnButtonOK( wxCommandEvent& event ){ event.Skip(); }
+               virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
                
        
        public:
+               
                CTxDetailsDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Transaction Details"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 620,450 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
                ~CTxDetailsDialogBase();
        
@@ -188,18 +190,19 @@ class COptionsDialogBase : public wxDialog
                wxButton* m_buttonApply;
                
                // Virtual event handlers, overide them in your derived class
-               virtual void OnListBox( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnCheckBoxLimitProcessors( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnCheckBoxMinimizeToTray( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnCheckBoxUseProxy( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnKillFocusProxy( wxFocusEvent& event ){ event.Skip(); }
-               virtual void OnKillFocusTransactionFee( wxFocusEvent& event ){ event.Skip(); }
-               virtual void OnButtonOK( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonCancel( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonApply( wxCommandEvent& event ){ event.Skip(); }
+               virtual void OnListBox( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnCheckBoxLimitProcessors( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnCheckBoxMinimizeToTray( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnCheckBoxUseProxy( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnKillFocusProxy( wxFocusEvent& event ) { event.Skip(); }
+               virtual void OnKillFocusTransactionFee( wxFocusEvent& event ) { event.Skip(); }
+               virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonApply( wxCommandEvent& event ) { event.Skip(); }
                
        
        public:
+               
                COptionsDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 540,360 ), long style = wxDEFAULT_DIALOG_STYLE );
                ~COptionsDialogBase();
        
@@ -223,11 +226,12 @@ class CAboutDialogBase : public wxDialog
                wxButton* m_buttonOK;
                
                // Virtual event handlers, overide them in your derived class
-               virtual void OnButtonOK( wxCommandEvent& event ){ event.Skip(); }
+               virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
                
        
        public:
                wxStaticText* m_staticTextVersion;
+               
                CAboutDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About Bitcoin"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 532,333 ), long style = wxDEFAULT_DIALOG_STYLE );
                ~CAboutDialogBase();
        
@@ -256,26 +260,23 @@ class CSendDialogBase : public wxDialog
                wxChoice* m_choiceTransferType;
                
                
-               wxStaticText* m_staticTextFrom;
-               wxTextCtrl* m_textCtrlFrom;
-               wxStaticText* m_staticTextMessage;
-               wxTextCtrl* m_textCtrlMessage;
                
                wxButton* m_buttonSend;
                wxButton* m_buttonCancel;
                
                // Virtual event handlers, overide them in your derived class
-               virtual void OnKeyDown( wxKeyEvent& event ){ event.Skip(); }
-               virtual void OnTextAddress( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonPaste( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonAddressBook( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnKillFocusAmount( wxFocusEvent& event ){ event.Skip(); }
-               virtual void OnButtonSend( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonCancel( wxCommandEvent& event ){ event.Skip(); }
+               virtual void OnKeyDown( wxKeyEvent& event ) { event.Skip(); }
+               virtual void OnTextAddress( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonPaste( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonAddressBook( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnKillFocusAmount( wxFocusEvent& event ) { event.Skip(); }
+               virtual void OnButtonSend( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
                
        
        public:
-               CSendDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Send Coins"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 675,298 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+               
+               CSendDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Send Coins"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 498,157 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
                ~CSendDialogBase();
        
 };
@@ -295,13 +296,14 @@ class CSendingDialogBase : public wxDialog
                wxButton* m_buttonCancel;
                
                // Virtual event handlers, overide them in your derived class
-               virtual void OnClose( wxCloseEvent& event ){ event.Skip(); }
-               virtual void OnPaint( wxPaintEvent& event ){ event.Skip(); }
-               virtual void OnButtonOK( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonCancel( wxCommandEvent& event ){ event.Skip(); }
+               virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+               virtual void OnPaint( wxPaintEvent& event ) { event.Skip(); }
+               virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
                
        
        public:
+               
                CSendingDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Sending..."), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 442,151 ), long style = wxDEFAULT_DIALOG_STYLE );
                ~CSendingDialogBase();
        
@@ -326,18 +328,19 @@ class CYourAddressDialogBase : public wxDialog
                wxButton* m_buttonCancel;
                
                // Virtual event handlers, overide them in your derived class
-               virtual void OnClose( wxCloseEvent& event ){ event.Skip(); }
-               virtual void OnListEndLabelEdit( wxListEvent& event ){ event.Skip(); }
-               virtual void OnListItemActivated( wxListEvent& event ){ event.Skip(); }
-               virtual void OnListItemSelected( wxListEvent& event ){ event.Skip(); }
-               virtual void OnButtonRename( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonNew( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonCopy( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonOK( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonCancel( wxCommandEvent& event ){ event.Skip(); }
+               virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+               virtual void OnListEndLabelEdit( wxListEvent& event ) { event.Skip(); }
+               virtual void OnListItemActivated( wxListEvent& event ) { event.Skip(); }
+               virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
+               virtual void OnButtonRename( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonNew( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonCopy( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
                
        
        public:
+               
                CYourAddressDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Your Bitcoin Addresses"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 610,390 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
                ~CYourAddressDialogBase();
        
@@ -369,21 +372,22 @@ class CAddressBookDialogBase : public wxDialog
                wxButton* m_buttonOK;
                
                // Virtual event handlers, overide them in your derived class
-               virtual void OnClose( wxCloseEvent& event ){ event.Skip(); }
-               virtual void OnNotebookPageChanged( wxNotebookEvent& event ){ event.Skip(); }
-               virtual void OnListEndLabelEdit( wxListEvent& event ){ event.Skip(); }
-               virtual void OnListItemActivated( wxListEvent& event ){ event.Skip(); }
-               virtual void OnListItemSelected( wxListEvent& event ){ event.Skip(); }
-               virtual void OnButtonDelete( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonCopy( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonEdit( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonNew( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonOK( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonCancel( wxCommandEvent& event ){ event.Skip(); }
+               virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+               virtual void OnNotebookPageChanged( wxNotebookEvent& event ) { event.Skip(); }
+               virtual void OnListEndLabelEdit( wxListEvent& event ) { event.Skip(); }
+               virtual void OnListItemActivated( wxListEvent& event ) { event.Skip(); }
+               virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
+               virtual void OnButtonDelete( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonCopy( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonEdit( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonNew( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
                
        
        public:
                wxButton* m_buttonCancel;
+               
                CAddressBookDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Address Book"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 610,390 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
                ~CAddressBookDialogBase();
        
@@ -408,13 +412,14 @@ class CGetTextFromUserDialogBase : public wxDialog
                wxButton* m_buttonCancel;
                
                // Virtual event handlers, overide them in your derived class
-               virtual void OnClose( wxCloseEvent& event ){ event.Skip(); }
-               virtual void OnKeyDown( wxKeyEvent& event ){ event.Skip(); }
-               virtual void OnButtonOK( wxCommandEvent& event ){ event.Skip(); }
-               virtual void OnButtonCancel( wxCommandEvent& event ){ event.Skip(); }
+               virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+               virtual void OnKeyDown( wxKeyEvent& event ) { event.Skip(); }
+               virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
+               virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
                
        
        public:
+               
                CGetTextFromUserDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 440,138 ), long style = wxDEFAULT_DIALOG_STYLE );
                ~CGetTextFromUserDialogBase();
        
index bf01732..ae712e8 100644 (file)
@@ -7,6 +7,7 @@
         <property name="disconnect_events">1</property>\r
         <property name="encoding">UTF-8</property>\r
         <property name="event_generation">connect</property>\r
+        <property name="event_handler">impl_virtual</property>\r
         <property name="file">uibase</property>\r
         <property name="first_id">1000</property>\r
         <property name="help_provider">none</property>\r
             <property name="subclass"></property>\r
             <property name="title">Bitcoin</property>\r
             <property name="tooltip"></property>\r
+            <property name="validator_data_type"></property>\r
+            <property name="validator_style">wxFILTER_NONE</property>\r
+            <property name="validator_type">wxDefaultValidator</property>\r
+            <property name="validator_variable"></property>\r
             <property name="window_extra_style"></property>\r
             <property name="window_name"></property>\r
             <property name="window_style">wxTAB_TRAVERSAL</property>\r
                 <property name="style"></property>\r
                 <property name="subclass"></property>\r
                 <property name="tooltip"></property>\r
+                <property name="validator_data_type"></property>\r
+                <property name="validator_style">wxFILTER_NONE</property>\r
+                <property name="validator_type">wxDefaultValidator</property>\r
+                <property name="validator_variable"></property>\r
                 <property name="window_extra_style"></property>\r
                 <property name="window_name"></property>\r
                 <property name="window_style"></property>\r
                 <property name="style">wxTB_FLAT|wxTB_HORZ_TEXT</property>\r
                 <property name="subclass"></property>\r
                 <property name="tooltip"></property>\r
+                <property name="validator_data_type"></property>\r
+                <property name="validator_style">wxFILTER_NONE</property>\r
+                <property name="validator_type">wxDefaultValidator</property>\r
+                <property name="validator_variable"></property>\r
                 <property name="window_extra_style"></property>\r
                 <property name="window_name"></property>\r
                 <property name="window_style"></property>\r
                 <property name="style">wxST_SIZEGRIP</property>\r
                 <property name="subclass"></property>\r
                 <property name="tooltip"></property>\r
+                <property name="validator_data_type"></property>\r
+                <property name="validator_style">wxFILTER_NONE</property>\r
+                <property name="validator_type">wxDefaultValidator</property>\r
+                <property name="validator_variable"></property>\r
                 <property name="window_extra_style"></property>\r
                 <property name="window_name"></property>\r
                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style">wxTE_READONLY</property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="value"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="style">wxBU_EXACTFIT</property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style">wxBU_EXACTFIT</property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                         <property name="style"></property>\r
                                         <property name="subclass"></property>\r
                                         <property name="tooltip"></property>\r
+                                        <property name="validator_data_type"></property>\r
+                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                        <property name="validator_variable"></property>\r
                                         <property name="window_extra_style"></property>\r
                                         <property name="window_name"></property>\r
                                         <property name="window_style"></property>\r
                                         <property name="style">wxALIGN_RIGHT|wxST_NO_AUTORESIZE</property>\r
                                         <property name="subclass"></property>\r
                                         <property name="tooltip"></property>\r
+                                        <property name="validator_data_type"></property>\r
+                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                        <property name="validator_variable"></property>\r
                                         <property name="window_extra_style"></property>\r
                                         <property name="window_name"></property>\r
                                         <property name="window_style"></property>\r
                                 <property name="size">110,-1</property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                         <property name="style"></property>\r
                         <property name="subclass"></property>\r
                         <property name="tooltip"></property>\r
+                        <property name="validator_data_type"></property>\r
+                        <property name="validator_style">wxFILTER_NONE</property>\r
+                        <property name="validator_type">wxDefaultValidator</property>\r
+                        <property name="validator_variable"></property>\r
                         <property name="window_extra_style"></property>\r
                         <property name="window_name"></property>\r
                         <property name="window_style"></property>\r
                                 <property name="size"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style">wxTAB_TRAVERSAL</property>\r
                                             <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING</property>\r
                                             <property name="subclass"></property>\r
                                             <property name="tooltip"></property>\r
+                                            <property name="validator_data_type"></property>\r
+                                            <property name="validator_style">wxFILTER_NONE</property>\r
+                                            <property name="validator_type">wxDefaultValidator</property>\r
+                                            <property name="validator_variable"></property>\r
                                             <property name="window_extra_style"></property>\r
                                             <property name="window_name"></property>\r
                                             <property name="window_style"></property>\r
                                 <property name="size"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style">wxTAB_TRAVERSAL</property>\r
                                             <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING</property>\r
                                             <property name="subclass"></property>\r
                                             <property name="tooltip"></property>\r
+                                            <property name="validator_data_type"></property>\r
+                                            <property name="validator_style">wxFILTER_NONE</property>\r
+                                            <property name="validator_type">wxDefaultValidator</property>\r
+                                            <property name="validator_variable"></property>\r
                                             <property name="window_extra_style"></property>\r
                                             <property name="window_name"></property>\r
                                             <property name="window_style"></property>\r
                                 <property name="size"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style">wxTAB_TRAVERSAL</property>\r
                                             <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING</property>\r
                                             <property name="subclass"></property>\r
                                             <property name="tooltip"></property>\r
+                                            <property name="validator_data_type"></property>\r
+                                            <property name="validator_style">wxFILTER_NONE</property>\r
+                                            <property name="validator_type">wxDefaultValidator</property>\r
+                                            <property name="validator_variable"></property>\r
                                             <property name="window_extra_style"></property>\r
                                             <property name="window_name"></property>\r
                                             <property name="window_style"></property>\r
                                 <property name="size"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style">wxTAB_TRAVERSAL</property>\r
                                             <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING</property>\r
                                             <property name="subclass"></property>\r
                                             <property name="tooltip"></property>\r
+                                            <property name="validator_data_type"></property>\r
+                                            <property name="validator_style">wxFILTER_NONE</property>\r
+                                            <property name="validator_type">wxDefaultValidator</property>\r
+                                            <property name="validator_variable"></property>\r
                                             <property name="window_extra_style"></property>\r
                                             <property name="window_name"></property>\r
                                             <property name="window_style"></property>\r
             <property name="subclass"></property>\r
             <property name="title">Transaction Details</property>\r
             <property name="tooltip"></property>\r
+            <property name="validator_data_type"></property>\r
+            <property name="validator_style">wxFILTER_NONE</property>\r
+            <property name="validator_type">wxDefaultValidator</property>\r
+            <property name="validator_variable"></property>\r
             <property name="window_extra_style"></property>\r
             <property name="window_name"></property>\r
             <property name="window_style"></property>\r
                                 <property name="style">wxHW_SCROLLBAR_AUTO</property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
             <property name="subclass"></property>\r
             <property name="title">Options</property>\r
             <property name="tooltip"></property>\r
+            <property name="validator_data_type"></property>\r
+            <property name="validator_style">wxFILTER_NONE</property>\r
+            <property name="validator_type">wxDefaultValidator</property>\r
+            <property name="validator_variable"></property>\r
             <property name="window_extra_style"></property>\r
             <property name="window_name"></property>\r
             <property name="window_style"></property>\r
                                 <property name="style">wxLB_NEEDED_SB|wxLB_SINGLE</property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="size"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                             <property name="size"></property>\r
                                             <property name="subclass"></property>\r
                                             <property name="tooltip"></property>\r
+                                            <property name="validator_data_type"></property>\r
+                                            <property name="validator_style">wxFILTER_NONE</property>\r
+                                            <property name="validator_type">wxDefaultValidator</property>\r
+                                            <property name="validator_variable"></property>\r
                                             <property name="window_extra_style"></property>\r
                                             <property name="window_name"></property>\r
                                             <property name="window_style">wxTAB_TRAVERSAL</property>\r
                                                                 <property name="style"></property>\r
                                                                 <property name="subclass"></property>\r
                                                                 <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
                                                                 <property name="window_extra_style"></property>\r
                                                                 <property name="window_name"></property>\r
                                                                 <property name="window_style"></property>\r
                                                                 <property name="style">wxSP_ARROW_KEYS</property>\r
                                                                 <property name="subclass"></property>\r
                                                                 <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
                                                                 <property name="value"></property>\r
                                                                 <property name="window_extra_style"></property>\r
                                                                 <property name="window_name"></property>\r
                                                                 <property name="style"></property>\r
                                                                 <property name="subclass"></property>\r
                                                                 <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
                                                                 <property name="window_extra_style"></property>\r
                                                                 <property name="window_name"></property>\r
                                                                 <property name="window_style"></property>\r
                                                         <property name="style"></property>\r
                                                         <property name="subclass"></property>\r
                                                         <property name="tooltip"></property>\r
+                                                        <property name="validator_data_type"></property>\r
+                                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                                        <property name="validator_variable"></property>\r
                                                         <property name="window_extra_style"></property>\r
                                                         <property name="window_name"></property>\r
                                                         <property name="window_style"></property>\r
                                                         <property name="style"></property>\r
                                                         <property name="subclass"></property>\r
                                                         <property name="tooltip"></property>\r
+                                                        <property name="validator_data_type"></property>\r
+                                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                                        <property name="validator_variable"></property>\r
                                                         <property name="window_extra_style"></property>\r
                                                         <property name="window_name"></property>\r
                                                         <property name="window_style"></property>\r
                                                         <property name="style"></property>\r
                                                         <property name="subclass"></property>\r
                                                         <property name="tooltip"></property>\r
+                                                        <property name="validator_data_type"></property>\r
+                                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                                        <property name="validator_variable"></property>\r
                                                         <property name="window_extra_style"></property>\r
                                                         <property name="window_name"></property>\r
                                                         <property name="window_style"></property>\r
                                                                 <property name="style"></property>\r
                                                                 <property name="subclass"></property>\r
                                                                 <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
                                                                 <property name="window_extra_style"></property>\r
                                                                 <property name="window_name"></property>\r
                                                                 <property name="window_style"></property>\r
                                                                 <property name="style"></property>\r
                                                                 <property name="subclass"></property>\r
                                                                 <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
                                                                 <property name="window_extra_style"></property>\r
                                                                 <property name="window_name"></property>\r
                                                                 <property name="window_style"></property>\r
                                                                 <property name="style"></property>\r
                                                                 <property name="subclass"></property>\r
                                                                 <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
                                                                 <property name="value"></property>\r
                                                                 <property name="window_extra_style"></property>\r
                                                                 <property name="window_name"></property>\r
                                                                 <property name="style"></property>\r
                                                                 <property name="subclass"></property>\r
                                                                 <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
                                                                 <property name="window_extra_style"></property>\r
                                                                 <property name="window_name"></property>\r
                                                                 <property name="window_style"></property>\r
                                                                 <property name="style"></property>\r
                                                                 <property name="subclass"></property>\r
                                                                 <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
                                                                 <property name="value"></property>\r
                                                                 <property name="window_extra_style"></property>\r
                                                                 <property name="window_name"></property>\r
                                                         <property name="style"></property>\r
                                                         <property name="subclass"></property>\r
                                                         <property name="tooltip"></property>\r
+                                                        <property name="validator_data_type"></property>\r
+                                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                                        <property name="validator_variable"></property>\r
                                                         <property name="window_extra_style"></property>\r
                                                         <property name="window_name"></property>\r
                                                         <property name="window_style"></property>\r
                                                                 <property name="style"></property>\r
                                                                 <property name="subclass"></property>\r
                                                                 <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
                                                                 <property name="window_extra_style"></property>\r
                                                                 <property name="window_name"></property>\r
                                                                 <property name="window_style"></property>\r
                                                                 <property name="style"></property>\r
                                                                 <property name="subclass"></property>\r
                                                                 <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
                                                                 <property name="value"></property>\r
                                                                 <property name="window_extra_style"></property>\r
                                                                 <property name="window_name"></property>\r
                                             <property name="size"></property>\r
                                             <property name="subclass"></property>\r
                                             <property name="tooltip"></property>\r
+                                            <property name="validator_data_type"></property>\r
+                                            <property name="validator_style">wxFILTER_NONE</property>\r
+                                            <property name="validator_type">wxDefaultValidator</property>\r
+                                            <property name="validator_variable"></property>\r
                                             <property name="window_extra_style"></property>\r
                                             <property name="window_name"></property>\r
                                             <property name="window_style">wxTAB_TRAVERSAL</property>\r
                                                         <property name="style"></property>\r
                                                         <property name="subclass"></property>\r
                                                         <property name="tooltip"></property>\r
+                                                        <property name="validator_data_type"></property>\r
+                                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                                        <property name="validator_variable"></property>\r
                                                         <property name="window_extra_style"></property>\r
                                                         <property name="window_name"></property>\r
                                                         <property name="window_style"></property>\r
                                                         <property name="style"></property>\r
                                                         <property name="subclass"></property>\r
                                                         <property name="tooltip"></property>\r
+                                                        <property name="validator_data_type"></property>\r
+                                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                                        <property name="validator_variable"></property>\r
                                                         <property name="window_extra_style"></property>\r
                                                         <property name="window_name"></property>\r
                                                         <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
             <property name="subclass"></property>\r
             <property name="title">About Bitcoin</property>\r
             <property name="tooltip"></property>\r
+            <property name="validator_data_type"></property>\r
+            <property name="validator_style">wxFILTER_NONE</property>\r
+            <property name="validator_type">wxDefaultValidator</property>\r
+            <property name="validator_variable"></property>\r
             <property name="window_extra_style"></property>\r
             <property name="window_name"></property>\r
             <property name="window_style"></property>\r
                         <property name="size"></property>\r
                         <property name="subclass"></property>\r
                         <property name="tooltip"></property>\r
+                        <property name="validator_data_type"></property>\r
+                        <property name="validator_style">wxFILTER_NONE</property>\r
+                        <property name="validator_type">wxDefaultValidator</property>\r
+                        <property name="validator_variable"></property>\r
                         <property name="window_extra_style"></property>\r
                         <property name="window_name"></property>\r
                         <property name="window_style"></property>\r
                                                         <property name="style"></property>\r
                                                         <property name="subclass"></property>\r
                                                         <property name="tooltip"></property>\r
+                                                        <property name="validator_data_type"></property>\r
+                                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                                        <property name="validator_variable"></property>\r
                                                         <property name="window_extra_style"></property>\r
                                                         <property name="window_name"></property>\r
                                                         <property name="window_style"></property>\r
                                                         <property name="style"></property>\r
                                                         <property name="subclass"></property>\r
                                                         <property name="tooltip"></property>\r
+                                                        <property name="validator_data_type"></property>\r
+                                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                                        <property name="validator_variable"></property>\r
                                                         <property name="window_extra_style"></property>\r
                                                         <property name="window_name"></property>\r
                                                         <property name="window_style"></property>\r
                                                 <property name="style"></property>\r
                                                 <property name="subclass"></property>\r
                                                 <property name="tooltip"></property>\r
+                                                <property name="validator_data_type"></property>\r
+                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                <property name="validator_variable"></property>\r
                                                 <property name="window_extra_style"></property>\r
                                                 <property name="window_name"></property>\r
                                                 <property name="window_style"></property>\r
                                         <property name="style"></property>\r
                                         <property name="subclass"></property>\r
                                         <property name="tooltip"></property>\r
+                                        <property name="validator_data_type"></property>\r
+                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                        <property name="validator_variable"></property>\r
                                         <property name="window_extra_style"></property>\r
                                         <property name="window_name"></property>\r
                                         <property name="window_style"></property>\r
                 </object>\r
             </object>\r
         </object>\r
-        <object class="Dialog" expanded="0">\r
+        <object class="Dialog" expanded="1">\r
             <property name="bg"></property>\r
             <property name="center"></property>\r
             <property name="context_help"></property>\r
             <property name="minimum_size"></property>\r
             <property name="name">CSendDialogBase</property>\r
             <property name="pos"></property>\r
-            <property name="size">675,298</property>\r
+            <property name="size">498,157</property>\r
             <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>\r
             <property name="subclass"></property>\r
             <property name="title">Send Coins</property>\r
             <property name="tooltip"></property>\r
+            <property name="validator_data_type"></property>\r
+            <property name="validator_style">wxFILTER_NONE</property>\r
+            <property name="validator_type">wxDefaultValidator</property>\r
+            <property name="validator_variable"></property>\r
             <property name="window_extra_style"></property>\r
             <property name="window_name"></property>\r
             <property name="window_style"></property>\r
                                 <property name="font"></property>\r
                                 <property name="hidden">0</property>\r
                                 <property name="id">wxID_ANY</property>\r
-                                <property name="label">Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)</property>\r
+                                <property name="label">Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</property>\r
                                 <property name="maximum_size"></property>\r
                                 <property name="minimum_size"></property>\r
                                 <property name="name">m_staticTextInstructions</property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                         <property name="size">16,16</property>\r
                                         <property name="subclass"></property>\r
                                         <property name="tooltip"></property>\r
+                                        <property name="validator_data_type"></property>\r
+                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                        <property name="validator_variable"></property>\r
                                         <property name="window_extra_style"></property>\r
                                         <property name="window_name"></property>\r
                                         <property name="window_style"></property>\r
                                         <property name="style">wxALIGN_RIGHT</property>\r
                                         <property name="subclass"></property>\r
                                         <property name="tooltip"></property>\r
+                                        <property name="validator_data_type"></property>\r
+                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                        <property name="validator_variable"></property>\r
                                         <property name="window_extra_style"></property>\r
                                         <property name="window_name"></property>\r
                                         <property name="window_style"></property>\r
                                         <property name="style"></property>\r
                                         <property name="subclass"></property>\r
                                         <property name="tooltip"></property>\r
+                                        <property name="validator_data_type"></property>\r
+                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                        <property name="validator_variable"></property>\r
                                         <property name="value"></property>\r
                                         <property name="window_extra_style"></property>\r
                                         <property name="window_name"></property>\r
                                                 <property name="style">wxBU_EXACTFIT</property>\r
                                                 <property name="subclass"></property>\r
                                                 <property name="tooltip"></property>\r
+                                                <property name="validator_data_type"></property>\r
+                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                <property name="validator_variable"></property>\r
                                                 <property name="window_extra_style"></property>\r
                                                 <property name="window_name"></property>\r
                                                 <property name="window_style"></property>\r
                                                 <property name="style"></property>\r
                                                 <property name="subclass"></property>\r
                                                 <property name="tooltip"></property>\r
+                                                <property name="validator_data_type"></property>\r
+                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                <property name="validator_variable"></property>\r
                                                 <property name="window_extra_style"></property>\r
                                                 <property name="window_name"></property>\r
                                                 <property name="window_style"></property>\r
                                 <property name="style">wxALIGN_RIGHT</property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="value"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="style">wxALIGN_RIGHT</property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="size"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                         <property name="name">bSizer672</property>\r
                         <property name="orient">wxHORIZONTAL</property>\r
                         <property name="permission">none</property>\r
-                        <object class="sizeritem" expanded="1">\r
-                            <property name="border">5</property>\r
-                            <property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>\r
-                            <property name="proportion">1</property>\r
-                            <object class="wxBoxSizer" expanded="1">\r
-                                <property name="minimum_size"></property>\r
-                                <property name="name">bSizer681</property>\r
-                                <property name="orient">wxVERTICAL</property>\r
-                                <property name="permission">none</property>\r
-                                <object class="sizeritem" expanded="1">\r
-                                    <property name="border">5</property>\r
-                                    <property name="flag">wxBOTTOM|wxLEFT</property>\r
-                                    <property name="proportion">0</property>\r
-                                    <object class="wxStaticText" expanded="1">\r
-                                        <property name="bg"></property>\r
-                                        <property name="context_help"></property>\r
-                                        <property name="enabled">1</property>\r
-                                        <property name="fg"></property>\r
-                                        <property name="font"></property>\r
-                                        <property name="hidden">0</property>\r
-                                        <property name="id">wxID_ANY</property>\r
-                                        <property name="label">&amp;From:</property>\r
-                                        <property name="maximum_size"></property>\r
-                                        <property name="minimum_size"></property>\r
-                                        <property name="name">m_staticTextFrom</property>\r
-                                        <property name="permission">protected</property>\r
-                                        <property name="pos"></property>\r
-                                        <property name="size"></property>\r
-                                        <property name="style"></property>\r
-                                        <property name="subclass"></property>\r
-                                        <property name="tooltip"></property>\r
-                                        <property name="window_extra_style"></property>\r
-                                        <property name="window_name"></property>\r
-                                        <property name="window_style"></property>\r
-                                        <property name="wrap">-1</property>\r
-                                        <event name="OnChar"></event>\r
-                                        <event name="OnEnterWindow"></event>\r
-                                        <event name="OnEraseBackground"></event>\r
-                                        <event name="OnKeyDown"></event>\r
-                                        <event name="OnKeyUp"></event>\r
-                                        <event name="OnKillFocus"></event>\r
-                                        <event name="OnLeaveWindow"></event>\r
-                                        <event name="OnLeftDClick"></event>\r
-                                        <event name="OnLeftDown"></event>\r
-                                        <event name="OnLeftUp"></event>\r
-                                        <event name="OnMiddleDClick"></event>\r
-                                        <event name="OnMiddleDown"></event>\r
-                                        <event name="OnMiddleUp"></event>\r
-                                        <event name="OnMotion"></event>\r
-                                        <event name="OnMouseEvents"></event>\r
-                                        <event name="OnMouseWheel"></event>\r
-                                        <event name="OnPaint"></event>\r
-                                        <event name="OnRightDClick"></event>\r
-                                        <event name="OnRightDown"></event>\r
-                                        <event name="OnRightUp"></event>\r
-                                        <event name="OnSetFocus"></event>\r
-                                        <event name="OnSize"></event>\r
-                                        <event name="OnUpdateUI"></event>\r
-                                    </object>\r
-                                </object>\r
-                                <object class="sizeritem" expanded="1">\r
-                                    <property name="border">5</property>\r
-                                    <property name="flag">wxLEFT|wxEXPAND</property>\r
-                                    <property name="proportion">0</property>\r
-                                    <object class="wxTextCtrl" expanded="1">\r
-                                        <property name="bg"></property>\r
-                                        <property name="context_help"></property>\r
-                                        <property name="enabled">1</property>\r
-                                        <property name="fg"></property>\r
-                                        <property name="font"></property>\r
-                                        <property name="hidden">0</property>\r
-                                        <property name="id">wxID_ANY</property>\r
-                                        <property name="maximum_size"></property>\r
-                                        <property name="maxlength">0</property>\r
-                                        <property name="minimum_size"></property>\r
-                                        <property name="name">m_textCtrlFrom</property>\r
-                                        <property name="permission">protected</property>\r
-                                        <property name="pos"></property>\r
-                                        <property name="size">-1,-1</property>\r
-                                        <property name="style"></property>\r
-                                        <property name="subclass"></property>\r
-                                        <property name="tooltip"></property>\r
-                                        <property name="value"></property>\r
-                                        <property name="window_extra_style"></property>\r
-                                        <property name="window_name"></property>\r
-                                        <property name="window_style"></property>\r
-                                        <event name="OnChar"></event>\r
-                                        <event name="OnEnterWindow"></event>\r
-                                        <event name="OnEraseBackground"></event>\r
-                                        <event name="OnKeyDown">OnKeyDown</event>\r
-                                        <event name="OnKeyUp"></event>\r
-                                        <event name="OnKillFocus"></event>\r
-                                        <event name="OnLeaveWindow"></event>\r
-                                        <event name="OnLeftDClick"></event>\r
-                                        <event name="OnLeftDown"></event>\r
-                                        <event name="OnLeftUp"></event>\r
-                                        <event name="OnMiddleDClick"></event>\r
-                                        <event name="OnMiddleDown"></event>\r
-                                        <event name="OnMiddleUp"></event>\r
-                                        <event name="OnMotion"></event>\r
-                                        <event name="OnMouseEvents"></event>\r
-                                        <event name="OnMouseWheel"></event>\r
-                                        <event name="OnPaint"></event>\r
-                                        <event name="OnRightDClick"></event>\r
-                                        <event name="OnRightDown"></event>\r
-                                        <event name="OnRightUp"></event>\r
-                                        <event name="OnSetFocus"></event>\r
-                                        <event name="OnSize"></event>\r
-                                        <event name="OnText"></event>\r
-                                        <event name="OnTextEnter"></event>\r
-                                        <event name="OnTextMaxLen"></event>\r
-                                        <event name="OnTextURL"></event>\r
-                                        <event name="OnUpdateUI"></event>\r
-                                    </object>\r
-                                </object>\r
-                            </object>\r
-                        </object>\r
-                    </object>\r
-                </object>\r
-                <object class="sizeritem" expanded="1">\r
-                    <property name="border">5</property>\r
-                    <property name="flag">wxEXPAND</property>\r
-                    <property name="proportion">1</property>\r
-                    <object class="wxBoxSizer" expanded="0">\r
-                        <property name="minimum_size"></property>\r
-                        <property name="name">bSizer67</property>\r
-                        <property name="orient">wxHORIZONTAL</property>\r
-                        <property name="permission">none</property>\r
-                        <object class="sizeritem" expanded="1">\r
-                            <property name="border">5</property>\r
-                            <property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>\r
-                            <property name="proportion">1</property>\r
-                            <object class="wxBoxSizer" expanded="1">\r
-                                <property name="minimum_size"></property>\r
-                                <property name="name">bSizer68</property>\r
-                                <property name="orient">wxVERTICAL</property>\r
-                                <property name="permission">none</property>\r
-                                <object class="sizeritem" expanded="1">\r
-                                    <property name="border">5</property>\r
-                                    <property name="flag">wxTOP|wxBOTTOM|wxLEFT</property>\r
-                                    <property name="proportion">0</property>\r
-                                    <object class="wxStaticText" expanded="1">\r
-                                        <property name="bg"></property>\r
-                                        <property name="context_help"></property>\r
-                                        <property name="enabled">1</property>\r
-                                        <property name="fg"></property>\r
-                                        <property name="font"></property>\r
-                                        <property name="hidden">0</property>\r
-                                        <property name="id">wxID_ANY</property>\r
-                                        <property name="label">&amp;Message:</property>\r
-                                        <property name="maximum_size"></property>\r
-                                        <property name="minimum_size"></property>\r
-                                        <property name="name">m_staticTextMessage</property>\r
-                                        <property name="permission">protected</property>\r
-                                        <property name="pos"></property>\r
-                                        <property name="size"></property>\r
-                                        <property name="style"></property>\r
-                                        <property name="subclass"></property>\r
-                                        <property name="tooltip"></property>\r
-                                        <property name="window_extra_style"></property>\r
-                                        <property name="window_name"></property>\r
-                                        <property name="window_style"></property>\r
-                                        <property name="wrap">-1</property>\r
-                                        <event name="OnChar"></event>\r
-                                        <event name="OnEnterWindow"></event>\r
-                                        <event name="OnEraseBackground"></event>\r
-                                        <event name="OnKeyDown"></event>\r
-                                        <event name="OnKeyUp"></event>\r
-                                        <event name="OnKillFocus"></event>\r
-                                        <event name="OnLeaveWindow"></event>\r
-                                        <event name="OnLeftDClick"></event>\r
-                                        <event name="OnLeftDown"></event>\r
-                                        <event name="OnLeftUp"></event>\r
-                                        <event name="OnMiddleDClick"></event>\r
-                                        <event name="OnMiddleDown"></event>\r
-                                        <event name="OnMiddleUp"></event>\r
-                                        <event name="OnMotion"></event>\r
-                                        <event name="OnMouseEvents"></event>\r
-                                        <event name="OnMouseWheel"></event>\r
-                                        <event name="OnPaint"></event>\r
-                                        <event name="OnRightDClick"></event>\r
-                                        <event name="OnRightDown"></event>\r
-                                        <event name="OnRightUp"></event>\r
-                                        <event name="OnSetFocus"></event>\r
-                                        <event name="OnSize"></event>\r
-                                        <event name="OnUpdateUI"></event>\r
-                                    </object>\r
-                                </object>\r
-                                <object class="sizeritem" expanded="1">\r
-                                    <property name="border">5</property>\r
-                                    <property name="flag">wxEXPAND|wxLEFT</property>\r
-                                    <property name="proportion">1</property>\r
-                                    <object class="wxTextCtrl" expanded="1">\r
-                                        <property name="bg"></property>\r
-                                        <property name="context_help"></property>\r
-                                        <property name="enabled">1</property>\r
-                                        <property name="fg"></property>\r
-                                        <property name="font"></property>\r
-                                        <property name="hidden">0</property>\r
-                                        <property name="id">wxID_ANY</property>\r
-                                        <property name="maximum_size"></property>\r
-                                        <property name="maxlength">0</property>\r
-                                        <property name="minimum_size"></property>\r
-                                        <property name="name">m_textCtrlMessage</property>\r
-                                        <property name="permission">protected</property>\r
-                                        <property name="pos"></property>\r
-                                        <property name="size"></property>\r
-                                        <property name="style">wxTE_MULTILINE</property>\r
-                                        <property name="subclass"></property>\r
-                                        <property name="tooltip"></property>\r
-                                        <property name="value"></property>\r
-                                        <property name="window_extra_style"></property>\r
-                                        <property name="window_name"></property>\r
-                                        <property name="window_style"></property>\r
-                                        <event name="OnChar"></event>\r
-                                        <event name="OnEnterWindow"></event>\r
-                                        <event name="OnEraseBackground"></event>\r
-                                        <event name="OnKeyDown">OnKeyDown</event>\r
-                                        <event name="OnKeyUp"></event>\r
-                                        <event name="OnKillFocus"></event>\r
-                                        <event name="OnLeaveWindow"></event>\r
-                                        <event name="OnLeftDClick"></event>\r
-                                        <event name="OnLeftDown"></event>\r
-                                        <event name="OnLeftUp"></event>\r
-                                        <event name="OnMiddleDClick"></event>\r
-                                        <event name="OnMiddleDown"></event>\r
-                                        <event name="OnMiddleUp"></event>\r
-                                        <event name="OnMotion"></event>\r
-                                        <event name="OnMouseEvents"></event>\r
-                                        <event name="OnMouseWheel"></event>\r
-                                        <event name="OnPaint"></event>\r
-                                        <event name="OnRightDClick"></event>\r
-                                        <event name="OnRightDown"></event>\r
-                                        <event name="OnRightUp"></event>\r
-                                        <event name="OnSetFocus"></event>\r
-                                        <event name="OnSize"></event>\r
-                                        <event name="OnText"></event>\r
-                                        <event name="OnTextEnter"></event>\r
-                                        <event name="OnTextMaxLen"></event>\r
-                                        <event name="OnTextURL"></event>\r
-                                        <event name="OnUpdateUI"></event>\r
-                                    </object>\r
-                                </object>\r
-                            </object>\r
-                        </object>\r
                     </object>\r
                 </object>\r
                 <object class="sizeritem" expanded="1">\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
             <property name="subclass"></property>\r
             <property name="title">Sending...</property>\r
             <property name="tooltip"></property>\r
+            <property name="validator_data_type"></property>\r
+            <property name="validator_style">wxFILTER_NONE</property>\r
+            <property name="validator_type">wxDefaultValidator</property>\r
+            <property name="validator_variable"></property>\r
             <property name="window_extra_style"></property>\r
             <property name="window_name"></property>\r
             <property name="window_style"></property>\r
                         <property name="style"></property>\r
                         <property name="subclass"></property>\r
                         <property name="tooltip"></property>\r
+                        <property name="validator_data_type"></property>\r
+                        <property name="validator_style">wxFILTER_NONE</property>\r
+                        <property name="validator_type">wxDefaultValidator</property>\r
+                        <property name="validator_variable"></property>\r
                         <property name="window_extra_style"></property>\r
                         <property name="window_name"></property>\r
                         <property name="window_style"></property>\r
                         <property name="style">wxTE_CENTRE|wxTE_MULTILINE|wxTE_NO_VSCROLL|wxTE_READONLY</property>\r
                         <property name="subclass"></property>\r
                         <property name="tooltip"></property>\r
+                        <property name="validator_data_type"></property>\r
+                        <property name="validator_style">wxFILTER_NONE</property>\r
+                        <property name="validator_type">wxDefaultValidator</property>\r
+                        <property name="validator_variable"></property>\r
                         <property name="value">&#x0A;&#x0A;Connecting...</property>\r
                         <property name="window_extra_style"></property>\r
                         <property name="window_name"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
             <property name="subclass"></property>\r
             <property name="title">Your Bitcoin Addresses</property>\r
             <property name="tooltip"></property>\r
+            <property name="validator_data_type"></property>\r
+            <property name="validator_style">wxFILTER_NONE</property>\r
+            <property name="validator_type">wxDefaultValidator</property>\r
+            <property name="validator_variable"></property>\r
             <property name="window_extra_style"></property>\r
             <property name="window_name"></property>\r
             <property name="window_style"></property>\r
                         <property name="style"></property>\r
                         <property name="subclass"></property>\r
                         <property name="tooltip"></property>\r
+                        <property name="validator_data_type"></property>\r
+                        <property name="validator_style">wxFILTER_NONE</property>\r
+                        <property name="validator_type">wxDefaultValidator</property>\r
+                        <property name="validator_variable"></property>\r
                         <property name="window_extra_style"></property>\r
                         <property name="window_name"></property>\r
                         <property name="window_style"></property>\r
                         <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING</property>\r
                         <property name="subclass"></property>\r
                         <property name="tooltip"></property>\r
+                        <property name="validator_data_type"></property>\r
+                        <property name="validator_style">wxFILTER_NONE</property>\r
+                        <property name="validator_type">wxDefaultValidator</property>\r
+                        <property name="validator_variable"></property>\r
                         <property name="window_extra_style"></property>\r
                         <property name="window_name"></property>\r
                         <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
             <property name="subclass"></property>\r
             <property name="title">Address Book</property>\r
             <property name="tooltip"></property>\r
+            <property name="validator_data_type"></property>\r
+            <property name="validator_style">wxFILTER_NONE</property>\r
+            <property name="validator_type">wxDefaultValidator</property>\r
+            <property name="validator_variable"></property>\r
             <property name="window_extra_style"></property>\r
             <property name="window_name"></property>\r
             <property name="window_style"></property>\r
                         <property name="style"></property>\r
                         <property name="subclass"></property>\r
                         <property name="tooltip"></property>\r
+                        <property name="validator_data_type"></property>\r
+                        <property name="validator_style">wxFILTER_NONE</property>\r
+                        <property name="validator_type">wxDefaultValidator</property>\r
+                        <property name="validator_variable"></property>\r
                         <property name="window_extra_style"></property>\r
                         <property name="window_name"></property>\r
                         <property name="window_style"></property>\r
                                 <property name="size"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style">wxTAB_TRAVERSAL</property>\r
                                             <property name="style"></property>\r
                                             <property name="subclass"></property>\r
                                             <property name="tooltip"></property>\r
+                                            <property name="validator_data_type"></property>\r
+                                            <property name="validator_style">wxFILTER_NONE</property>\r
+                                            <property name="validator_type">wxDefaultValidator</property>\r
+                                            <property name="validator_variable"></property>\r
                                             <property name="window_extra_style"></property>\r
                                             <property name="window_name"></property>\r
                                             <property name="window_style"></property>\r
                                             <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING</property>\r
                                             <property name="subclass"></property>\r
                                             <property name="tooltip"></property>\r
+                                            <property name="validator_data_type"></property>\r
+                                            <property name="validator_style">wxFILTER_NONE</property>\r
+                                            <property name="validator_type">wxDefaultValidator</property>\r
+                                            <property name="validator_variable"></property>\r
                                             <property name="window_extra_style"></property>\r
                                             <property name="window_name"></property>\r
                                             <property name="window_style"></property>\r
                                 <property name="size"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style">wxTAB_TRAVERSAL</property>\r
                                             <property name="style"></property>\r
                                             <property name="subclass"></property>\r
                                             <property name="tooltip"></property>\r
+                                            <property name="validator_data_type"></property>\r
+                                            <property name="validator_style">wxFILTER_NONE</property>\r
+                                            <property name="validator_type">wxDefaultValidator</property>\r
+                                            <property name="validator_variable"></property>\r
                                             <property name="window_extra_style"></property>\r
                                             <property name="window_name"></property>\r
                                             <property name="window_style"></property>\r
                                             <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING</property>\r
                                             <property name="subclass"></property>\r
                                             <property name="tooltip"></property>\r
+                                            <property name="validator_data_type"></property>\r
+                                            <property name="validator_style">wxFILTER_NONE</property>\r
+                                            <property name="validator_type">wxDefaultValidator</property>\r
+                                            <property name="validator_variable"></property>\r
                                             <property name="window_extra_style"></property>\r
                                             <property name="window_name"></property>\r
                                             <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
             <property name="subclass"></property>\r
             <property name="title"></property>\r
             <property name="tooltip"></property>\r
+            <property name="validator_data_type"></property>\r
+            <property name="validator_style">wxFILTER_NONE</property>\r
+            <property name="validator_type">wxDefaultValidator</property>\r
+            <property name="validator_variable"></property>\r
             <property name="window_extra_style"></property>\r
             <property name="window_name"></property>\r
             <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style">wxTE_PROCESS_ENTER</property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="value"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style">wxTE_PROCESS_ENTER</property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="value"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
                                 <property name="style"></property>\r
                                 <property name="subclass"></property>\r
                                 <property name="tooltip"></property>\r
+                                <property name="validator_data_type"></property>\r
+                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                <property name="validator_type">wxDefaultValidator</property>\r
+                                <property name="validator_variable"></property>\r
                                 <property name="window_extra_style"></property>\r
                                 <property name="window_name"></property>\r
                                 <property name="window_style"></property>\r
index d3f3ed1..26f8e0a 100644 (file)
--- a/util.cpp
+++ b/util.cpp
@@ -14,6 +14,7 @@ char pszSetDataDir[MAX_PATH] = "";
 bool fRequestShutdown = false;
 bool fShutdown = false;
 bool fDaemon = false;
+bool fServer = false;
 bool fCommandLine = false;
 string strMiscWarning;
 bool fTestNet = false;
diff --git a/util.h b/util.h
index c69bf1c..1b780d5 100644 (file)
--- a/util.h
+++ b/util.h
@@ -143,6 +143,7 @@ extern char pszSetDataDir[MAX_PATH];
 extern bool fRequestShutdown;
 extern bool fShutdown;
 extern bool fDaemon;
+extern bool fServer;
 extern bool fCommandLine;
 extern string strMiscWarning;
 extern bool fTestNet;