Changeset 387 for trunk


Ignore:
Timestamp:
02/29/08 17:57:46 (12 years ago)
Author:
Eoin
Message:

Tab presses in 'Advanced' tabs correctly pass to relevent dialogs.

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/res/Halite.rc

    r386 r387  
    3030    CONTROL         "",TORRENTPROG,"msctls_progress32",WS_BORDER,10,77,291,8 
    3131 
     32    EDITTEXT        IDC_EDITTLD,210,46,34,12,ES_AUTOHSCROLL 
    3233    EDITTEXT        IDC_EDITTLU,267,46,34,12,ES_AUTOHSCROLL 
    33     EDITTEXT        IDC_EDITTLD,210,46,34,12,ES_AUTOHSCROLL 
    3434    EDITTEXT        IDC_EDITNCD,210,22,34,12,ES_AUTOHSCROLL 
    3535    EDITTEXT        IDC_EDITNCU,267,22,34,12,ES_AUTOHSCROLL 
     
    379379BEGIN 
    380380    LTEXT           "List of Trackers.",IDC_TRACKER_LABEL,7,6,95,8,SS_WORDELLIPSIS|SS_CENTERIMAGE 
     381    PUSHBUTTON      "Apply",IDC_TRACKER_APPLY,126,3,32,14,WS_DISABLED 
     382    PUSHBUTTON      "Reset",IDC_TRACKER_RESET,92,3,32,14 
     383    AUTOCHECKBOX    "Send login info to trackers.",IDC_TRACKER_LOGINCHECK,166,4,101,12 
    381384    EDITTEXT        IDC_TRACKER_USER,208,18,92,12,ES_AUTOHSCROLL 
    382385    EDITTEXT        IDC_TRACKER_PASS,208,32,92,12,ES_AUTOHSCROLL | ES_PASSWORD 
    383386    RTEXT           "Username : ",IDC_TRACKER_USER_S,164,20,42,8,SS_WORDELLIPSIS|SS_CENTERIMAGE 
    384387    RTEXT           "Password : ",IDC_TRACKER_PASS_S,164,34,42,8,SS_WORDELLIPSIS|SS_CENTERIMAGE 
    385     AUTOCHECKBOX    "Send login info to trackers.",IDC_TRACKER_LOGINCHECK,166,4,101,12 
    386     CONTROL         "",IDC_TRACKERLIST,"SysListView32",WS_TABSTOP | WS_BORDER | LVS_ALIGNLEFT | LVS_REPORT,4,19,154,47 
     388    CONTROL         "",IDC_TRACKERLIST,"SysListView32",WS_BORDER | LVS_ALIGNLEFT | LVS_REPORT,4,19,154,47 
    387389    PUSHBUTTON      "Reannounce",BTNREANNOUNCE,207,46,51,14 
    388     PUSHBUTTON      "Apply",IDC_TRACKER_APPLY,126,3,32,14,WS_DISABLED 
    389     PUSHBUTTON      "Reset",IDC_TRACKER_RESET,92,3,32,14 
    390390END 
    391391 
     
    394394FONT 8,"MS Shell Dlg",400,0,1 
    395395BEGIN 
    396     AUTOCHECKBOX    "Log to file.",IDC_DEBUGFILECHECK,4,69,54,9 
    397     CONTROL         "",IDC_DEBUGLISTVIEW,"SysListView32",WS_TABSTOP | WS_BORDER | LVS_ALIGNLEFT | LVS_REPORT,4,7,296,59 
    398     AUTOCHECKBOX    "Log debug events.",IDC_DEBUGDEBUGCHECK,58,69,78,9 
     396    CONTROL         "",IDC_DEBUGLISTVIEW,"SysListView32",WS_TABSTOP|WS_BORDER|LVS_ALIGNLEFT|LVS_REPORT,4,7,296,59 
     397    AUTOCHECKBOX    "Log to file.",IDC_DEBUGFILECHECK,4,69,44,9 
     398    AUTOCHECKBOX    "Log debug events.",IDC_DEBUGDEBUGCHECK,48,69,198,9 
    399399END 
    400400 
  • trunk/src/AdvHaliteDialog.cpp

    r383 r387  
    1919        SetDlgItemText(IDC_ADVDLG_VERSION, hal::app().res_wstr(HAL_VERSION_STRING).c_str()); 
    2020         
    21         m_tabCtrl.SubclassWindow(GetDlgItem(IDC_TAB)); 
     21        tabCtrl_.SubclassWindow(GetDlgItem(IDC_TAB)); 
    2222         
    2323/*      mp_dlg.reset(new ThemeTestDialog()); 
     
    2929        hal::event().post(shared_ptr<hal::EventDetail>( 
    3030                new hal::EventMsg(L"Creating torrent tab...")));         
    31         m_torrent.Create(m_tabCtrl); 
    32         m_tabCtrl.AddPage(m_torrent, hal::app().res_wstr(HAL_TORRENT_TAB).c_str()); 
     31        m_torrent.Create(tabCtrl_); 
     32        tabCtrl_.AddPage(m_torrent, hal::app().res_wstr(HAL_TORRENT_TAB).c_str()); 
    3333         
    3434        hal::event().post(shared_ptr<hal::EventDetail>( 
    3535                new hal::EventMsg(L"Creating peers tab...")));   
    36         m_peers.Create(m_tabCtrl); 
    37         m_tabCtrl.AddPage(m_peers, hal::app().res_wstr(HAL_PEERS_TAB).c_str()); 
     36        m_peers.Create(tabCtrl_); 
     37        tabCtrl_.AddPage(m_peers, hal::app().res_wstr(HAL_PEERS_TAB).c_str()); 
    3838         
    3939        hal::event().post(shared_ptr<hal::EventDetail>( 
    4040                new hal::EventMsg(L"Creating files tab...")));   
    41         m_files.Create(m_tabCtrl); 
    42         m_tabCtrl.AddPage(m_files, hal::app().res_wstr(HAL_FILES_TAB).c_str()); 
     41        m_files.Create(tabCtrl_); 
     42        tabCtrl_.AddPage(m_files, hal::app().res_wstr(HAL_FILES_TAB).c_str()); 
    4343         
    4444        hal::event().post(shared_ptr<hal::EventDetail>( 
    4545                new hal::EventMsg(L"Creating tracker tab...")));         
    46         m_tracker.Create(m_tabCtrl); 
    47         m_tabCtrl.AddPage(m_tracker, hal::app().res_wstr(HAL_TRACKER_TAB).c_str()); 
     46        m_tracker.Create(tabCtrl_); 
     47        tabCtrl_.AddPage(m_tracker, hal::app().res_wstr(HAL_TRACKER_TAB).c_str()); 
    4848         
    4949        hal::event().post(shared_ptr<hal::EventDetail>( 
    5050                new hal::EventMsg(L"Creating log tab...")));     
    51         m_debug.Create(m_tabCtrl); 
    52         m_tabCtrl.AddPage(m_debug, hal::app().res_wstr(HAL_DEBUG_TAB).c_str()); 
     51        m_debug.Create(tabCtrl_); 
     52        tabCtrl_.AddPage(m_debug, hal::app().res_wstr(HAL_DEBUG_TAB).c_str()); 
    5353         
    54         m_tabCtrl.SetCurrentPage(0); 
     54        tabCtrl_.SetCurrentPage(0); 
    5555        hal::event().post(shared_ptr<hal::EventDetail>( 
    5656                new hal::EventMsg(L"All tabs complete!")));      
     
    6262{ 
    6363        RECT rect; 
    64         m_tabCtrl.GetClientRect(&rect); 
    65         m_tabCtrl.AdjustRect(false, &rect); 
     64        tabCtrl_.GetClientRect(&rect); 
     65        tabCtrl_.AdjustRect(false, &rect); 
    6666         
    6767//      mp_dlg->SetWindowPos(HWND_TOP, 0, 0, rect.right-rect.left, rect.bottom-rect.top, SWP_NOMOVE); 
  • trunk/src/AdvHaliteDialog.hpp

    r370 r387  
    4343        {} 
    4444 
    45         BOOL PreTranslateMessage(MSG* pMsg) 
     45        virtual BOOL PreTranslateMessage(MSG* pMsg) 
    4646        { 
    47                 return this->IsDialogMessage(pMsg); 
     47                return tabCtrl_.PreTranslateMessage(pMsg); 
    4848        } 
    4949 
     
    7474        void InitializeValues(void); 
    7575 
    76         CHalTabCtrl m_tabCtrl; 
     76        CHalTabCtrl tabCtrl_; 
    7777        boost::scoped_ptr<ThemeTestDialog> mp_dlg; 
    7878        boost::scoped_ptr<AdvTorrentDialog> mp_dlg2; 
  • trunk/src/HaliteTabCtrl.hpp

    r369 r387  
    1010#include "HaliteTabPage.hpp" 
    1111 
    12 class CHalTabCtrl : public CWindowImpl<CHalTabCtrl, CTabCtrl> 
     12class CHalTabCtrl :  
     13        public CWindowImpl<CHalTabCtrl, CTabCtrl>, 
     14        public CMessageFilter 
    1315{ 
     16        struct CHalTabPage 
     17        { 
     18                CHalTabPage() : 
     19                        hWnd(0), 
     20                        msgFilter(NULL) 
     21                {} 
     22 
     23                template <class T> 
     24                CHalTabPage(CHalTabPageImpl<T>& tabPage) : 
     25                        hWnd(tabPage), 
     26                        msgFilter(&tabPage) 
     27                {} 
     28 
     29                HWND hWnd; 
     30                WTL::CMessageFilter* msgFilter; 
     31        }; 
     32 
    1433public: 
    1534        CHalTabCtrl() : 
     
    1938    BEGIN_MSG_MAP_EX(CHalTabCtrl) 
    2039                MSG_WM_SIZE(OnSize) 
    21 //              MSG_WM_ERASEBKGND(OnEraseBkgnd) 
    22 //        MESSAGE_HANDLER(WM_CREATE, OnCreate) 
     40 
    2341                REFLECTED_NOTIFY_CODE_HANDLER_EX(TCN_SELCHANGE, OnSelChange) 
     42 
    2443        DEFAULT_REFLECTION_HANDLER() 
    2544    END_MSG_MAP() 
     45 
     46        virtual BOOL PreTranslateMessage(MSG* pMsg) 
     47        { 
     48                assert(pages_[GetCurSel()].msgFilter); 
     49                 
     50                return pages_[GetCurSel()].msgFilter->PreTranslateMessage(pMsg); 
     51        } 
    2652 
    2753        void Attach(HWND hWndNew) 
     
    3864                if (!pages_.empty()) 
    3965                { 
    40                         currentPage_ = pages_[index]; 
     66                        currentPage_ = pages_[index].hWnd; 
    4167                        ::ShowWindow(currentPage_, SW_SHOW); 
    4268 
     
    5884        void OnSize(UINT, CSize) 
    5985        { 
    60                 RECT rect; 
     86                CRect rect; 
    6187                GetClientRect(&rect); 
    6288                AdjustRect(false, &rect); 
     
    6591        } 
    6692 
    67         void AddPage(HWND hWnd, wstring wndText) 
     93        template <class T> 
     94        void AddPage(CHalTabPageImpl<T>& tabPage, wstring wndText) 
    6895        { 
    6996                TCITEM tie = { TCIF_TEXT, 0, 0, const_cast<wchar_t*>(wndText.c_str()), 0, -1, 0 }; 
    7097                InsertItem(pages_.size(), &tie); 
    7198 
    72                 pages_.push_back(hWnd); 
    73  
    74 /*              ::ShowWindow(hWnd, true); 
    75  
    76                 RECT rect; 
    77                 GetClientRect(&rect); 
    78                 AdjustRect(false, &rect); 
    79  
    80                 ::SetWindowPos(hWnd, HWND_TOP, rect.left, rect.top, 0, 0, SWP_NOSIZE); 
    81 */ 
     99                pages_.push_back(CHalTabPage(tabPage)); 
    82100        } 
    83101 
     102        HWND GetCurrentPage() const     { return currentPage_; } 
     103 
    84104protected: 
    85         std::vector<HWND> pages_; 
     105        std::vector<CHalTabPage> pages_; 
    86106        HWND currentPage_; 
    87107}; 
  • trunk/src/HaliteTabPage.hpp

    r285 r387  
    1010#include "UxthemeWrapper.hpp" 
    1111 
    12 template <class T, class TBase = CWindow> 
    13 class ATL_NO_VTABLE CHalTabPageImpl : public ATL::CDialogImpl< T > 
     12template <class T> 
     13class ATL_NO_VTABLE CHalTabPageImpl :  
     14        public ATL::CDialogImpl< T >, 
     15        public CMessageFilter 
    1416{ 
    1517public: 
  • trunk/src/HaliteWindow.cpp

    r384 r387  
    5252                return TRUE; 
    5353 
    54         return mp_dlg->PreTranslateMessage(pMsg); 
     54        return mp_advDlg->PreTranslateMessage(pMsg); 
    5555} 
    5656 
  • trunk/src/advtabs/Debug.hpp

    r356 r387  
    205205        BEGIN_DLGRESIZE_MAP(thisClass) 
    206206                DLGRESIZE_CONTROL(IDC_DEBUGLISTVIEW, DLSZ_SIZE_X|DLSZ_SIZE_Y) 
    207                 DLGRESIZE_CONTROL(IDC_DEBUGFILECHECK, DLSZ_MOVE_Y) 
    208                 DLGRESIZE_CONTROL(IDC_DEBUGDEBUGCHECK, DLSZ_MOVE_Y) 
     207                DLGRESIZE_CONTROL(IDC_DEBUGFILECHECK, DLSZ_SIZE_X|DLSZ_MOVE_Y) 
     208                DLGRESIZE_CONTROL(IDC_DEBUGDEBUGCHECK, DLSZ_MOVE_X|DLSZ_MOVE_Y) 
    209209        END_DLGRESIZE_MAP() 
    210210 
  • trunk/src/advtabs/Torrent.hpp

    r367 r387  
    6464        virtual BOOL PreTranslateMessage(MSG* pMsg) 
    6565        { 
    66                 return CWindow::IsDialogMessage(pMsg); 
     66                return this->IsDialogMessage(pMsg); 
    6767        } 
    6868         
     
    7171                MSG_WM_CLOSE(onClose) 
    7272                MESSAGE_HANDLER_EX(WM_USER_HAL_EDITCHANGED, OnHalEditChanged) 
    73         //      COMMAND_RANGE_CODE_HANDLER_EX(IDC_EDITTLU, IDC_EDITRATIO, EN_KILLFOCUS, OnEditKillFocus) 
    7473 
    7574                if (uMsg == WM_FORWARDMSG) 
Note: See TracChangeset for help on using the changeset viewer.