Changeset 109


Ignore:
Timestamp:
12/24/06 18:41:39 (13 years ago)
Author:
Eoin
Message:

Added GUI controls for DHT and IPFiltering. Not coded yet though.

Files:
9 edited

Legend:

Unmodified
Added
Removed
  • Halite.pnproj

    r108 r109  
    1 <Project name="Halite"><MagicFolder excludeFolders="CVS;.svn" filter="*.*" name="res" path="res\"><File path="Halite.aps"></File><File path="Halite.ico"></File><File path="Halite.rc"></File><File path="Manifest.xml"></File><File path="resource.h"></File><File path="toolbar.bmp"></File></MagicFolder><MagicFolder excludeFolders="CVS;.svn" filter="*.*" name="src" path="src\"><MagicFolder excludeFolders="CVS;.svn" filter="*.*" name="ini" path="ini\"><File path="BitTConfig.hpp"></File><File path="Dialog.hpp"></File><File path="General.hpp"></File><File path="Remote.hpp"></File><File path="Splash.hpp"></File><File path="Torrent.hpp"></File><File path="Window.hpp"></File></MagicFolder><File path="AdvHaliteDialog.cpp"></File><File path="AdvHaliteDialog.hpp"></File><File path="ConfigOptions.cpp"></File><File path="ConfigOptions.hpp"></File><File path="CSSFileDialog.hpp"></File><File path="DdxEx.hpp"></File><File path="debugDialog.hpp"></File><File path="DropFileTarget.h"></File><File path="GlobalIni.cpp"></File><File path="GlobalIni.hpp"></File><File path="Halite.cpp"></File><File path="Halite.hpp"></File><File path="HaliteDialog.cpp"></File><File path="HaliteDialog.hpp"></File><File path="HaliteListViewCtrl.cpp"></File><File path="HaliteListViewCtrl.hpp"></File><File path="HaliteWindow.cpp"></File><File path="HaliteWindow.hpp"></File><File path="HalTabCtrl.hpp"></File><File path="halTorrent.cpp"></File><File path="halTorrent.hpp"></File><File path="halXmlRpc.cpp"></File><File path="halXmlRpc.hpp"></File><File path="NTray.cpp"></File><File path="NTray.hpp"></File><File path="SimpleHtml.h"></File><File path="SplashDialog.hpp"></File><File path="SSFileDialog.hpp"></File><File path="stdAfx.cpp"></File><File path="stdAfx.hpp"></File><File path="ThemeTestDialog.hpp"></File><File path="WinAPIMutex.hpp"></File></MagicFolder><File path="Jamfile"></File></Project> 
     1<Project name="Halite"><MagicFolder excludeFolders="CVS;.svn" filter="*.*" name="res" path="res\"><File path="Halite.aps"></File><File path="Halite.ico"></File><File path="Halite.rc"></File><File path="Manifest.xml"></File><File path="resource.h"></File><File path="toolbar.bmp"></File></MagicFolder><MagicFolder excludeFolders="CVS;.svn" filter="*.*" name="src" path="src\"><MagicFolder excludeFolders="CVS;.svn" filter="*.*" name="ini" path="ini\"><File path="BitTConfig.hpp"></File><File path="Dialog.hpp"></File><File path="General.hpp"></File><File path="Remote.hpp"></File><File path="Splash.hpp"></File><File path="Torrent.hpp"></File><File path="Window.hpp"></File></MagicFolder><File path="AdvHaliteDialog.cpp"></File><File path="AdvHaliteDialog.hpp"></File><File path="ConfigOptions.cpp"></File><File path="ConfigOptions.hpp"></File><File path="CSSFileDialog.hpp"></File><File path="DdxEx.hpp"></File><File path="DebugDialog.hpp"></File><File path="DropFileTarget.h"></File><File path="GlobalIni.cpp"></File><File path="GlobalIni.hpp"></File><File path="Halite.cpp"></File><File path="Halite.hpp"></File><File path="HaliteDialog.cpp"></File><File path="HaliteDialog.hpp"></File><File path="HaliteListViewCtrl.cpp"></File><File path="HaliteListViewCtrl.hpp"></File><File path="HaliteWindow.cpp"></File><File path="HaliteWindow.hpp"></File><File path="HalTabCtrl.hpp"></File><File path="halTorrent.cpp"></File><File path="halTorrent.hpp"></File><File path="halXmlRpc.cpp"></File><File path="halXmlRpc.hpp"></File><File path="NTray.cpp"></File><File path="NTray.hpp"></File><File path="SimpleHtml.h"></File><File path="SplashDialog.hpp"></File><File path="SSFileDialog.hpp"></File><File path="stdAfx.cpp"></File><File path="stdAfx.hpp"></File><File path="ThemeTestDialog.hpp"></File><File path="WinAPIMutex.hpp"></File></MagicFolder><File path="Jamfile"></File></Project> 
  • res/Halite.rc

    r108 r109  
    129129END 
    130130 
    131 IDD_CONFIGBIT DIALOGEX 0, 0, 242, 94 
     131IDD_CONFIGBIT DIALOGEX 0, 0, 283, 131 
    132132STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU 
    133133CAPTION "BitTorrent" 
    134134FONT 8, "MS Shell Dlg", 400, 0, 0x1 
    135135BEGIN 
    136     GROUPBOX        "Global Options",IDC_STATIC,6,6,229,59 
    137     EDITTEXT        IDC_BC_MAXCONN,78,18,42,12,ES_AUTOHSCROLL 
    138     RTEXT           "Max connections :",IDC_STATIC,12,19,60,12 
    139     RTEXT           "Uploads :",IDC_STATIC,12,32,60,12 
    140     EDITTEXT        IDC_BC_MAXUP,78,30,42,12,ES_AUTOHSCROLL 
    141     RTEXT           "Listen on port :",IDC_STATIC,17,51,54,12 
    142     RTEXT           "to",IDC_STATIC,119,51,9,10 
    143     EDITTEXT        IDC_BC_PORTFROM,77,49,42,12,ES_AUTOHSCROLL 
    144     EDITTEXT        IDC_BC_PORTTO,131,49,42,12,ES_AUTOHSCROLL 
    145     EDITTEXT        IDC_BC_DOWNRATE,186,18,42,12,ES_AUTOHSCROLL 
    146     RTEXT           "Download Rate :",IDC_STATIC,120,19,60,12 
    147     RTEXT           "Upload Rate :",IDC_STATIC,120,32,60,12 
    148     EDITTEXT        IDC_BC_UPRATE,186,30,42,12,ES_AUTOHSCROLL 
     136    GROUPBOX        "Global Options",IDC_STATIC,7,6,269,96 
     137    EDITTEXT        IDC_BC_MAXCONN,96,18,42,12,ES_AUTOHSCROLL 
     138    RTEXT           "Total max connections :",IDC_STATIC,12,20,78,12 
     139    RTEXT           "Total upload slots :",IDC_STATIC,12,33,78,12 
     140    EDITTEXT        IDC_BC_MAXUP,96,31,42,12,ES_AUTOHSCROLL 
     141    RTEXT           "Attempt to  listen on a port number from",IDC_STATIC,14,50,130,12 
     142    RTEXT           "to",IDC_STATIC,204,50,9,10 
     143    EDITTEXT        IDC_BC_PORTFROM,150,48,54,12,ES_AUTOHSCROLL 
     144    EDITTEXT        IDC_BC_PORTTO,216,48,54,12,ES_AUTOHSCROLL 
     145    EDITTEXT        IDC_BC_DOWNRATE,228,18,42,12,ES_AUTOHSCROLL 
     146    RTEXT           "Download Rate (kb/s) :",IDC_STATIC,144,20,78,12 
     147    RTEXT           "Upload Rate (kb/s) :",IDC_STATIC,150,33,72,12 
     148    EDITTEXT        IDC_BC_UPRATE,228,31,42,12,ES_AUTOHSCROLL 
     149    CONTROL         "Enable DHT. (Note neither DHT nor PEX will apply to private torrents)",IDC_BC_DHT, 
     150                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,66,252,12 
     151    CONTROL         "Enable IP filtering.",IDC_BC_FILTERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,80,76,12 
     152    RTEXT           "ipfilter.dat file :",IDC_BC_FILTERSTATIC,90,82,54,12,WS_DISABLED 
     153    EDITTEXT        IDC_BC_FILTEREDIT,150,80,96,12,ES_AUTOHSCROLL 
     154    PUSHBUTTON      "...",IDC_BC_FILTERBTN,252,80,18,12,WS_DISABLED 
    149155END 
    150156 
     
    315321    BEGIN 
    316322        LEFTMARGIN, 7 
    317         RIGHTMARGIN, 235 
    318         TOPMARGIN, 7 
    319         BOTTOMMARGIN, 87 
     323        RIGHTMARGIN, 276 
     324        TOPMARGIN, 7 
     325        BOTTOMMARGIN, 124 
    320326    END 
    321327 
  • res/resource.h

    r108 r109  
    33// Used by Halite.rc 
    44// 
    5 #define IDD_DEBUGDIALOG                 116 
    65#define IDD_CONFIGBIT                   102 
    76#define IDD_CONFIGREMOTE                103 
     
    1918#define IDD_DIALOG1                     115 
    2019#define IDD_THEMETEST                   115 
     20#define IDD_DEBUGDIALOG                 116 
    2121#define IDR_MAINFRAME                   128 
    2222#define LISTPEERS                       1000 
     
    7171#define IDC_CHECK1                      1045 
    7272#define IDC_RADIO1                      1046 
     73#define IDC_BC_DHT                      1048 
     74#define IDC_BC_DHT2                     1049 
     75#define IDC_BC_FILTERCHECK              1049 
     76#define IDC_BC_FILTERSTATIC             1050 
     77#define IDC_BC_FILTEREDIT               1051 
     78#define IDC_BC_FILTERBTN                1052 
    7379#define ED_CON                          3000 
    7480#define ID_ABOUT_OPENHALITE             40001 
     
    8793#define _APS_NEXT_RESOURCE_VALUE        117 
    8894#define _APS_NEXT_COMMAND_VALUE         40010 
    89 #define _APS_NEXT_CONTROL_VALUE         1048 
     95#define _APS_NEXT_CONTROL_VALUE         1053 
    9096#define _APS_NEXT_SYMED_VALUE           110 
    9197#endif 
  • src/ConfigOptions.hpp

    r107 r109  
    6161    BEGIN_MSG_MAP(BitTorrentOptions) 
    6262        MSG_WM_INITDIALOG(OnInitDialog) 
     63                COMMAND_ID_HANDLER_EX(IDC_BC_FILTERBTN, onFilterBtn) 
     64                COMMAND_ID_HANDLER_EX(IDC_BC_FILTERCHECK, onFilterCheck)         
    6365        CHAIN_MSG_MAP(CPropertyPageImpl<BitTorrentOptions>) 
    6466    END_MSG_MAP() 
     
    7173        DDX_INT(IDC_BC_PORTFROM, INI().bitTConfig().portFrom) 
    7274        DDX_INT(IDC_BC_PORTTO, INI().bitTConfig().portTo) 
     75        DDX_CHECK(IDC_BC_DHT, INI().bitTConfig().enableDHT) 
     76        DDX_CHECK(IDC_BC_FILTERCHECK, INI().bitTConfig().enableIPFilter) 
     77                DDX_EX_STDWSTRING(IDC_BC_FILTEREDIT, INI().bitTConfig().ipFilterFile); 
    7378    END_DDX_MAP() 
    7479  
    75     BOOL OnInitDialog ( HWND hwndFocus, LPARAM lParam ) 
    76         { 
    77                 return DoDataExchange(false); 
    78         }        
     80    BOOL OnInitDialog (HWND hwndFocus, LPARAM lParam) 
     81        { 
     82                BOOL retval =  DoDataExchange(false); 
     83                 
     84                LRESULT result = ::SendMessage(GetDlgItem(IDC_BC_FILTERCHECK), BM_GETCHECK, 0, 0); 
     85                 
     86                if (result == BST_CHECKED) 
     87                { 
     88                        ::EnableWindow(GetDlgItem(IDC_BC_FILTERSTATIC), true); 
     89                        ::EnableWindow(GetDlgItem(IDC_BC_FILTEREDIT), true); 
     90                        ::EnableWindow(GetDlgItem(IDC_BC_FILTERBTN), true); 
     91                } 
     92                else 
     93                { 
     94                        ::EnableWindow(GetDlgItem(IDC_BC_FILTERSTATIC), false); 
     95                        ::EnableWindow(GetDlgItem(IDC_BC_FILTEREDIT), false); 
     96                        ::EnableWindow(GetDlgItem(IDC_BC_FILTERBTN), false);             
     97                } 
     98                 
     99                return retval; 
     100        } 
     101         
    79102    int OnApply() 
    80103        { 
    81104                return DoDataExchange(true); 
    82105        } 
     106         
     107        void onFilterCheck(UINT, int, HWND hWnd) 
     108        { 
     109                LRESULT result = ::SendMessage(hWnd, BM_GETCHECK, 0, 0); 
     110                 
     111                if (result == BST_CHECKED) 
     112                { 
     113                        ::EnableWindow(GetDlgItem(IDC_BC_FILTERSTATIC), true); 
     114                        ::EnableWindow(GetDlgItem(IDC_BC_FILTEREDIT), true); 
     115                        ::EnableWindow(GetDlgItem(IDC_BC_FILTERBTN), true); 
     116                } 
     117                else 
     118                { 
     119                        ::EnableWindow(GetDlgItem(IDC_BC_FILTERSTATIC), false); 
     120                        ::EnableWindow(GetDlgItem(IDC_BC_FILTEREDIT), false); 
     121                        ::EnableWindow(GetDlgItem(IDC_BC_FILTERBTN), false);             
     122                } 
     123        }        
     124         
     125        void onFilterBtn(UINT, int, HWND hWnd) 
     126        { 
     127                CSSFileDialog dlgOpen(TRUE, NULL, NULL, OFN_HIDEREADONLY, L"eMule ipfilter.dat. (*.dat)|*.dat|", m_hWnd); 
     128         
     129                if (dlgOpen.DoModal() == IDOK)  
     130                        SetDlgItemText(IDC_BC_FILTEREDIT, dlgOpen.m_ofn.lpstrFile);      
     131        }        
    83132}; 
    84133 
  • src/DdxEx.hpp

    r97 r109  
    22#pragma once 
    33 
     4#include <boost/type_traits.hpp> 
    45#include <atlddx.h> 
    56 
     
    2526                } 
    2627 
     28#define DDX_EX_STDWSTRING(nID, str) \ 
     29                if(nCtlID == (UINT)-1 || nCtlID == nID) \ 
     30                        return DDX_StdWString(nID, str, bSaveAndValidate); 
     31                         
    2732template <class T> 
    2833class CWinDataExchangeEx : public CWinDataExchange<T> 
    2934{ 
    30 public: 
     35public:  
     36 
     37        BOOL DDX_StdWString(UINT id, wstring& str, BOOL save, const size_t max_len=MAX_PATH) 
     38        { 
     39                T* pT = static_cast<T*>(this); 
     40                bool success = true; 
     41                 
     42                if (save) 
     43                { 
     44                        std::vector<wchar_t> buffer(max_len); 
     45                        size_t len = pT->GetDlgItemText(id, &buffer[0], max_len); 
     46                        str.assign(buffer.begin(), buffer.begin()+len); 
     47                } 
     48                else 
     49                {                
     50                        pT->SetDlgItemText(id, str.c_str()); 
     51                } 
     52                 
     53                return success; 
     54        } 
     55         
    3156        template <typename N> 
    3257        BOOL DDX_Numeric_Inf(UINT nID, N& nVal, BOOL bSave, N lower_limit = 0, bool include_limit = true, BOOL bValidate = FALSE) 
  • src/GlobalIni.hpp

    r107 r109  
    77#include <boost/archive/xml_oarchive.hpp> 
    88#include <boost/archive/xml_iarchive.hpp> 
     9#include <boost/serialization/version.hpp> 
    910 
    1011class BitTConfig; 
  • src/Halite.cpp

    r108 r109  
    128128                        #ifndef NDEBUG 
    129129                        global_debugDialog_.Create(wndMain); 
    130                         global_debugDialog_.ShowWindow(true); 
     130                        global_debugDialog_.ShowWindow(false); 
    131131                        #endif 
    132132                         
  • src/HaliteWindow.cpp

    r107 r109  
    8888         
    8989        mp_dlg->Create(m_Split.m_hWnd); 
    90 //      mp_dlg->ShowWindow(true); 
     90        mp_dlg->ShowWindow(true); 
    9191         
    9292        mp_advDlg.reset(new AdvHaliteDialog(this)); 
    9393        mp_advDlg->Create(m_Split.m_hWnd); 
    94         mp_advDlg->ShowWindow(true); 
    95          
    96         m_Split.SetSplitterPanes(*mp_list, *mp_advDlg); 
     94//      mp_advDlg->ShowWindow(true); 
     95         
     96        m_Split.SetSplitterPanes(*mp_list, *mp_dlg); 
    9797         
    9898        // Create the tray icon. 
  • src/ini/BitTConfig.hpp

    r94 r109  
    44#include <boost/archive/xml_oarchive.hpp> 
    55#include <boost/archive/xml_iarchive.hpp> 
     6#include <boost/serialization/version.hpp> 
    67 
    78class BitTConfig 
     
    1415                upRate(-1), 
    1516                portFrom(6881), 
    16                 portTo(6889) 
     17                portTo(6889), 
     18                enableDHT(false), 
     19                enableIPFilter(false) 
    1720        {} 
    1821         
     
    2730                ar & BOOST_SERIALIZATION_NVP(portFrom); 
    2831                ar & BOOST_SERIALIZATION_NVP(portTo); 
     32                if(version > 0) { 
     33                        ar & BOOST_SERIALIZATION_NVP(enableDHT); 
     34                        ar & BOOST_SERIALIZATION_NVP(enableIPFilter); 
     35                        ar & BOOST_SERIALIZATION_NVP(ipFilterFile); 
     36                } 
    2937        } 
    3038         
     
    4149        int portFrom; 
    4250        int portTo; 
     51         
     52        bool enableDHT; 
     53         
     54        bool enableIPFilter;     
     55        wstring ipFilterFile; 
    4356}; 
     57 
     58BOOST_CLASS_VERSION(BitTConfig, 1) 
     59 
Note: See TracChangeset for help on using the changeset viewer.