Changeset 366 for trunk


Ignore:
Timestamp:
12/29/07 15:41:41 (12 years ago)
Author:
Eoin
Message:

Halite edit control seems to work for HaliteDialog? and ConfigOptions?. Not added to AdvTorrent? yet.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/sln/libtorrent/libtorrent.vcproj

    r358 r366  
    364364                        </File> 
    365365                        <File 
    366                                 RelativePath="..\..\lib\libtorrent\src\magnet_uri.cpp" 
    367                                 > 
    368                         </File> 
    369                         <File 
    370                                 RelativePath="..\..\lib\libtorrent\src\mapped_storage.cpp" 
    371                                 > 
    372                         </File> 
    373                         <File 
    374366                                RelativePath="..\..\lib\libtorrent\src\metadata_transfer.cpp" 
    375367                                > 
     
    408400                        </File> 
    409401                        <File 
    410                                 RelativePath="..\..\lib\libtorrent\src\smart_ban.cpp" 
    411                                 > 
    412                         </File> 
    413                         <File 
    414402                                RelativePath="..\..\lib\libtorrent\src\socks4_stream.cpp" 
    415403                                > 
     
    444432                        </File> 
    445433                        <File 
    446                                 RelativePath="..\..\lib\libtorrent\src\udp_socket.cpp" 
    447                                 > 
    448                         </File> 
    449                         <File 
    450434                                RelativePath="..\..\lib\libtorrent\src\udp_tracker_connection.cpp" 
    451435                                > 
     
    453437                        <File 
    454438                                RelativePath="..\..\lib\libtorrent\src\upnp.cpp" 
    455                                 > 
    456                         </File> 
    457                         <File 
    458                                 RelativePath="..\..\lib\libtorrent\src\ut_metadata.cpp" 
    459439                                > 
    460440                        </File> 
  • trunk/src/ConfigOptions.hpp

    r364 r366  
    4848#include "halConfig.hpp" 
    4949#include "HaliteWindow.hpp" 
     50#include "HaliteEditCtrl.hpp" 
    5051#include "DdxEx.hpp" 
    5152#include "CSSFileDialog.hpp" 
     
    526527public: 
    527528    enum { IDD = IDD_CONFIGTORRENT }; 
     529         
     530        TorrentsOptions() : 
     531                gTotalConnections_(0, false, false), 
     532                gUploadConnections_(0, false, false), 
     533                gDownloadRate_(0, false, false), 
     534                gUploadRate_(0, false, false),   
     535                tTotalConnections_(0, false, false), 
     536                tUploadConnections_(0, false, false), 
     537                tDownloadRate_(0, false, false), 
     538                tUploadRate_(0, false, false) 
     539        {} 
    528540 
    529541    BEGIN_MSG_MAP_EX(TorrentsOptions) 
     
    532544        CHAIN_MSG_MAP(CPropertyPageImpl<TorrentsOptions>) 
    533545        CHAIN_MSG_MAP(autosizeClass) 
     546        REFLECT_NOTIFICATIONS() 
    534547    END_MSG_MAP()        
    535548         
     
    567580 
    568581    BEGIN_DDX_MAP(TorrentsOptions) 
    569         DDX_EX_INT_POSITIVE_LIMIT(IDC_BC_MAXCONN, hal::config().maxConnections, 2, true) 
     582/*        DDX_EX_INT_POSITIVE_LIMIT(IDC_BC_MAXCONN, hal::config().maxConnections, 2, true) 
    570583        DDX_EX_INT_POSITIVE_LIMIT(IDC_BC_MAXUP, hal::config().maxUploads, 2, true) 
    571584        DDX_EX_FLOAT_POSITIVE(IDC_BC_DOWNRATE, hal::config().downRate) 
     
    576589        DDX_EX_FLOAT_POSITIVE(IDC_BC_TDOWNRATE, hal::config().torrentDownRate) 
    577590        DDX_EX_FLOAT_POSITIVE(IDC_BC_TUPRATE, hal::config().torrentUpRate) 
    578  
     591*/ 
    579592                DDX_EX_STDWSTRING(IDC_BC_SAVEFOLDER, hal::config().defaultSaveFolder); 
    580593        DDX_CHECK(IDC_BC_PROMPTSAVE, hal::config().savePrompt) 
     
    583596    BOOL OnInitDialog(HWND hwndFocus, LPARAM lParam) 
    584597        { 
     598                gTotalConnections_.Attach(GetDlgItem(IDC_BC_MAXCONN)); 
     599                gUploadConnections_.Attach(GetDlgItem(IDC_BC_MAXUP)); 
     600                gDownloadRate_.Attach(GetDlgItem(IDC_BC_DOWNRATE)); 
     601                gUploadRate_.Attach(GetDlgItem(IDC_BC_UPRATE)); 
     602         
     603                tTotalConnections_.Attach(GetDlgItem(IDC_BC_TMAXCONN)); 
     604                tUploadConnections_.Attach(GetDlgItem(IDC_BC_TMAXUP)); 
     605                tDownloadRate_.Attach(GetDlgItem(IDC_BC_TDOWNRATE)); 
     606                tUploadRate_.Attach(GetDlgItem(IDC_BC_TUPRATE)); 
     607                 
     608                gTotalConnections_ = hal::config().maxConnections; 
     609                gUploadConnections_ = hal::config().maxUploads; 
     610                gDownloadRate_ = hal::config().downRate; 
     611                gUploadRate_ = hal::config().upRate; 
     612         
     613                tTotalConnections_ = hal::config().torrentMaxConnections; 
     614                tUploadConnections_ = hal::config().torrentMaxUploads; 
     615                tDownloadRate_ = hal::config().torrentDownRate; 
     616                tUploadRate_ = hal::config().torrentUpRate; 
     617         
    585618                BOOL retval =  DoDataExchange(false); 
    586619 
     
    604637    int OnApply() 
    605638        { 
     639                hal::config().maxConnections = gTotalConnections_; 
     640                hal::config().maxUploads = gUploadConnections_; 
     641                hal::config().downRate = gDownloadRate_; 
     642                hal::config().upRate = gUploadRate_; 
     643         
     644                hal::config().torrentMaxConnections = tTotalConnections_; 
     645                hal::config().torrentMaxUploads = tUploadConnections_; 
     646                hal::config().torrentDownRate = tDownloadRate_; 
     647                hal::config().torrentUpRate = tUploadRate_; 
     648                 
    606649                return DoDataExchange(true); 
    607650        } 
     651         
     652private: 
     653        CHaliteEditCtrl<int> gTotalConnections_; 
     654        CHaliteEditCtrl<int> gUploadConnections_; 
     655        CHaliteEditCtrl<float> gDownloadRate_; 
     656        CHaliteEditCtrl<float> gUploadRate_; 
     657         
     658        CHaliteEditCtrl<int> tTotalConnections_; 
     659        CHaliteEditCtrl<int> tUploadConnections_; 
     660        CHaliteEditCtrl<float> tDownloadRate_; 
     661        CHaliteEditCtrl<float> tUploadRate_; 
    608662}; 
    609663 
  • trunk/src/HaliteDialog.cpp

    r358 r366  
    2626        m_list.SubclassWindow(GetDlgItem(LISTPEERS)); 
    2727         
    28         NoConnDown = -1; 
    29         NoConnUp = -1; 
    30         TranLimitDown = -1; 
    31         TranLimitUp = -1;        
     28        totalConnections_.Attach(GetDlgItem(IDC_EDITNCD)); 
     29        uploadConnections_.Attach(GetDlgItem(IDC_EDITNCU)); 
     30        downloadRate_.Attach(GetDlgItem(IDC_EDITTLD)); 
     31        uploadRate_.Attach(GetDlgItem(IDC_EDITTLU)); 
     32         
     33        totalConnections_ = -1; 
     34        uploadConnections_ = -1; 
     35        downloadRate_ = -1; 
     36        uploadRate_ = -1;        
    3237         
    3338        DoDataExchange(false); 
     
    137142                string torrentName = hal::to_utf8(torrent->name()); 
    138143                 
    139                 hal::bittorrent().setTorrentSpeed(torrentName, TranLimitDown, TranLimitUp); 
    140                 hal::bittorrent().setTorrentLimit(torrentName, NoConnDown, NoConnUp); 
     144                hal::bittorrent().setTorrentSpeed(torrentName, downloadRate_, uploadRate_); 
     145                hal::bittorrent().setTorrentLimit(torrentName, totalConnections_, uploadConnections_); 
     146        } 
     147         
     148        return 0; 
     149} 
     150 
     151LRESULT HaliteDialog::OnHalEditChanged(UINT uMsg, WPARAM wParam, LPARAM lParam) 
     152{ 
     153        if (hal::TorrentDetail_ptr torrent = hal::bittorrent().torrentDetails().focusedTorrent())  
     154        { 
     155                string torrentName = hal::to_utf8(torrent->name()); 
     156                 
     157                hal::bittorrent().setTorrentSpeed(torrentName, downloadRate_, uploadRate_); 
     158                hal::bittorrent().setTorrentLimit(torrentName, totalConnections_, uploadConnections_); 
    141159        } 
    142160         
     
    256274        } 
    257275         
    258         NoConnDown = connLimit.first; 
    259         NoConnUp = connLimit.second; 
    260         TranLimitDown = tranLimit.first; 
    261         TranLimitUp = tranLimit.second; 
     276        totalConnections_ = connLimit.first; 
     277        uploadConnections_ = connLimit.second; 
     278        downloadRate_ = tranLimit.first; 
     279        uploadRate_ = tranLimit.second; 
    262280         
    263281        m_list.clearAll(); 
    264282         
    265         DoDataExchange(false);   
    266 } 
    267  
    268 void HaliteDialog::uiUpdate(const hal::TorrentDetails& tD)  
     283        DoDataExchange(false); 
     284} 
     285 
     286void HaliteDialog::uiUpdate(const hal::TorrentDetails& tD) 
    269287{        
    270288        std::pair<float, float> tranLimit(-1.0, -1.0); 
  • trunk/src/HaliteDialog.hpp

    r356 r366  
    11 
    2 //         Copyright E O'Callaghan 2006 - 2007. 
     2//         Copyright Eoin O'Callaghan 2006 - 2007. 
    33// Distributed under the Boost Software License, Version 1.0. 
    44//    (See accompanying file LICENSE_1_0.txt or copy at 
     
    1919#include "HaliteSortListViewCtrl.hpp" 
    2020#include "HaliteDialogBase.hpp" 
     21#include "HaliteEditCtrl.hpp" 
    2122#include "halIni.hpp" 
    2223 
     
    164165                MSG_WM_INITDIALOG(OnInitDialog) 
    165166                MSG_WM_CLOSE(OnClose) 
    166                  
    167                 COMMAND_RANGE_CODE_HANDLER_EX(IDC_EDITTLU, IDC_EDITNCU, EN_KILLFOCUS, OnEditKillFocus) 
     167                MESSAGE_HANDLER_EX(WM_USER_HAL_EDITCHANGED, OnHalEditChanged) 
     168                 
     169//              COMMAND_RANGE_CODE_HANDLER_EX(IDC_EDITTLU, IDC_EDITNCU, EN_KILLFOCUS, OnEditKillFocus) 
    168170 
    169171                if(uMsg == WM_FORWARDMSG) 
     
    180182 
    181183        BEGIN_DDX_MAP(thisClass) 
    182         DDX_EX_INT_POSITIVE_LIMIT(IDC_EDITNCD, NoConnDown, 2, true) 
    183         DDX_EX_INT_POSITIVE_LIMIT(IDC_EDITNCU, NoConnUp, 2, true) 
    184         DDX_EX_INT_FLOAT_LIMIT(IDC_EDITTLD, TranLimitDown, 1, false) 
    185         DDX_EX_INT_FLOAT_LIMIT(IDC_EDITTLU, TranLimitUp, 1, false) 
     184    //    DDX_INT(IDC_EDITNCD, totalConnections_) 
     185    //    DDX_EX_INT_POSITIVE_LIMIT(IDC_EDITNCU, NoConnUp, 2, true) 
     186    //    DDX_EX_INT_FLOAT_LIMIT(IDC_EDITTLD, TranLimitDown, 1, false) 
     187    //    DDX_EX_INT_FLOAT_LIMIT(IDC_EDITTLU, TranLimitUp, 1, false) 
    186188    END_DDX_MAP() 
    187189 
     
    201203        LRESULT OnEditKillFocus(UINT uCode, int nCtrlID, HWND hwndCtrl); 
    202204        LRESULT OnCltColor(HDC hDC, HWND hWnd);  
     205        LRESULT OnHalEditChanged(UINT uMsg, WPARAM wParam, LPARAM lParam); 
    203206 
    204207private: 
    205208        CButton m_btn_start; 
    206209        DialogListView m_list; 
    207         CContainedWindow m_wndNCD; 
    208210        CProgressBarCtrl m_prog; 
    209211         
     212        CHaliteEditCtrl<int> totalConnections_; 
     213        CHaliteEditCtrl<int> uploadConnections_; 
     214        CHaliteEditCtrl<float> downloadRate_; 
     215        CHaliteEditCtrl<float> uploadRate_; 
     216         
    210217        string current_torrent_name_; 
    211  
    212         int NoConnDown, NoConnUp; 
    213         float TranLimitDown, TranLimitUp; 
    214218}; 
    215219 
  • trunk/src/HaliteEditCtrl.hpp

    r268 r366  
    11 
    2 //         Copyright Eóin O'Callaghan 2006 - 2007. 
     2//         Copyright Eoin O'Callaghan 2006 - 2007. 
    33// Distributed under the Boost Software License, Version 1.0. 
    44//    (See accompanying file LICENSE_1_0.txt or copy at 
    55//          http://www.boost.org/LICENSE_1_0.txt) 
    66 
     7#pragma once  
     8 
     9#define WM_USER_HAL_EDITCHANGED WM_USER + 100 
     10 
    711#include "stdAfx.hpp" 
     12#include <boost/logic/tribool.hpp> 
    813#include "global/string_conv.hpp" 
    914 
    1015template<typename T> 
    11 class CHalEditCtrl : 
    12         public CWindowImpl<CHalEditCtrl<T>, CEdit>, 
     16class CHaliteEditCtrl : 
     17        public CWindowImpl<CHaliteEditCtrl<T>, CEdit>, 
    1318        private boost::noncopyable 
    1419{ 
    1520protected: 
    16         typedef CHalEditCtrl<T> thisClass; 
    17         typedef CWindowImpl<CHalEditCtrl<T>, CEdit> baseClass; 
     21        typedef CHaliteEditCtrl<T> thisClass; 
     22        typedef CWindowImpl<thisClass, CEdit> baseClass; 
    1823         
    1924public: 
    20         CHalEditCtrl(T lwr = -1, bool include = true) : 
     25        explicit CHaliteEditCtrl(T lwr = 0, bool include = false, bool signal = true) : 
    2126                range_lwr_(lwr), 
    22                 range_inc_(include) 
     27                range_inc_(include), 
     28                unapplied_(false), 
     29                signal_(signal) 
    2330        {} 
    2431 
    25     BEGIN_MSG_MAP_EX(CHalEditCtrl<T>) 
    26                 REFLECTED_NOTIFY_CODE_HANDLER_EX(EN_KILLFOCUS, OnKillFocus) 
     32    BEGIN_MSG_MAP_EX(thisClass) 
     33                REFLECTED_COMMAND_CODE_HANDLER_EX(EN_KILLFOCUS, OnKillFocus) 
     34                REFLECTED_COMMAND_CODE_HANDLER_EX(EN_CHANGE, OnChange) 
     35                MSG_OCM_CTLCOLOREDIT(OnReflectedCtlColorEdit) 
    2736                 
    2837        DEFAULT_REFLECTION_HANDLER() 
     
    3544        } 
    3645         
    37         LRESULT OnKillFocus(LPNMHDR lpHdr) 
    38         { 
     46        LRESULT OnChange(UINT uNotifyCode, int nID, CWindow wndCtl) 
     47        {        
     48                if (unapplied_) 
     49                { 
     50                } 
     51                else if (!unapplied_) 
     52                { 
     53                        unapplied_ = true; 
     54                        InvalidateRect(0, true); 
     55                } 
     56                else 
     57                { 
     58                        unapplied_ = false; 
     59                } 
     60                 
     61                return 0; 
     62        } 
     63         
     64        LRESULT OnKillFocus(UINT uNotifyCode, int nID, CWindow wndCtl) 
     65        {        
    3966                const int buffer_size = 512; 
    4067                boost::array<wchar_t, buffer_size> buffer; 
     
    4370                try 
    4471                { 
    45                 T val = lexical_cast<T>(buffer.elems); 
    46          
     72                value_ = lexical_cast<T>(buffer.elems); 
     73                         
    4774                if (range_inc_) 
    48                         if (value_ < range_lwr_) val = -1; 
     75                { 
     76                        if (value_ < range_lwr_) value_ = -102; 
     77                } 
    4978                else 
    50                         if (value_ <= range_lwr_) val = -1; 
     79                { 
     80                        if (value_ <= range_lwr_) value_ = -103; 
     81                } 
    5182                         
    5283                }         
    5384                catch(boost::bad_lexical_cast &) 
    5485                { 
    55                 value_ = -1; 
     86                value_ = -101; 
    5687                } 
    5788                 
    58                 if (value_ < 0) SetWindowText(L"∞"); 
     89                if (value_ < 0) SetWindowText(hal::app().res_wstr(HAL_INF).c_str()); 
    5990                 
    60                 SetMsgHandled(false); 
     91                if (signal_) 
     92                { 
     93                        ::SendMessage(GetParent(), WM_USER_HAL_EDITCHANGED, 0, 0); 
     94                        unapplied_ = false; 
     95                } 
    6196                 
    6297                return 0; 
    6398        } 
    6499         
    65         T Value() { return value_; } 
     100        HBRUSH OnReflectedCtlColorEdit(CDCHandle dc, CEdit edit) 
     101        { 
     102                if (signal_ && unapplied_) 
     103                { 
     104                        SetTextColor(dc, RGB(0,0,255)); 
     105                        return GetSysColorBrush(COLOR_3DHILIGHT); 
     106                } 
     107                else 
     108                { 
     109                        return false; 
     110                } 
     111        } 
     112         
     113        T& Value() { return value_; } 
     114         
     115        operator T& () { return Value(); } 
     116         
     117        T& operator=(T val)  
     118        { 
     119                if (!unapplied_) unapplied_ = boost::logic::indeterminate; 
     120                 
     121                if (range_inc_) 
     122                { 
     123                        if (val < range_lwr_) val = -102; 
     124                } 
     125                else 
     126                { 
     127                        if (val <= range_lwr_) val = -103; 
     128                } 
     129                 
     130                if (val < 0)     
     131                { 
     132                        value_ = -1; 
     133                        SetWindowText(hal::app().res_wstr(HAL_INF).c_str()); 
     134                } 
     135                else 
     136                { 
     137                        value_ = val; 
     138                        SetWindowText((lexical_cast<wstring>(value_)).c_str()); 
     139                } 
     140                 
     141                return value_; 
     142        }                
    66143         
    67144private: 
     
    70147        T range_lwr_; 
    71148        bool range_inc_; 
     149         
     150        boost::logic::tribool unapplied_; 
     151        bool signal_; 
    72152}; 
    73153 
    74 typedef CHalEditCtrl<int> CHalIntegerEditCtrl; 
Note: See TracChangeset for help on using the changeset viewer.