Changeset 406 for trunk


Ignore:
Timestamp:
03/19/08 18:11:57 (12 years ago)
Author:
Eoin
Message:

Moved Listview looging to main thread through PostMessage?.

Location:
trunk/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/WTLx/RadioPaneDlg.hpp

    r398 r406  
    1515typedef ATL::CWinTraits<WS_VISIBLE|WS_POPUP|WS_CAPTION|WS_SYSMENU|DS_CENTER, WS_EX_DLGMODALFRAME> RadioPaneTraits; 
    1616 
    17  
    18  
    1917class CRadioPaneDialog :  
    2018        public CIndirectDialogImpl< 
  • trunk/src/advtabs/Debug.hpp

    r405 r406  
    66 
    77#pragma once 
     8 
     9#define WM_USER_LOGPOST WM_USER + 101 
    810 
    911#include "stdAfx.hpp" 
     
    8183        BEGIN_MSG_MAP_EX(LogListViewCtrl) 
    8284                MSG_WM_DESTROY(OnDestroy) 
     85                MESSAGE_HANDLER_EX(WM_USER_LOGPOST, OnMessageLogPost) 
    8386 
    8487                CHAIN_MSG_MAP(listClass) 
     
    129132        { 
    130133                hal::mutex_t::scoped_lock l(mutex_); 
    131                 wstring timeStamp = lexical_cast<wstring>(event->timeStamp()); 
    132134 
    133135                try 
    134136                { 
    135  
    136 /*              int itemPos = AddItem(0, 0, L"Hello"); 
    137  
    138                 SetItemText(itemPos, 1, event->msg().c_str()); 
    139  
    140                 SetItemText(itemPos, 2, 
    141                         hal::Event::eventLevelToStr(event->level()).c_str()); 
    142 */                       
    143 /*              if (halite().logListLen() <= GetItemCount()) 
    144                         DeleteItem(halite().logListLen()); 
    145 */ 
     137                        events_.push_back(event); 
     138                        PostMessage(WM_USER_LOGPOST, 0, 0); 
    146139                } 
    147140                catch(...) 
     
    149142        } 
    150143 
     144        LRESULT OnMessageLogPost(UINT uMsg, WPARAM wParam, LPARAM lParam) 
     145        { 
     146                hal::mutex_t::scoped_lock l(mutex_); 
     147 
     148                try 
     149                { 
     150                shared_ptr<hal::EventDetail> event(*events_.begin()); 
     151 
     152                wstring timeStamp = lexical_cast<wstring>(event->timeStamp()); 
     153 
     154                int itemPos = AddItem(0, 0, timeStamp.c_str()); 
     155 
     156                SetItemText(itemPos, 1, event->msg().c_str()); 
     157 
     158                SetItemText(itemPos, 2, 
     159                        hal::Event::eventLevelToStr(event->level()).c_str()); 
     160                         
     161                if (halite().logListLen() <= GetItemCount()) 
     162                        DeleteItem(halite().logListLen()); 
     163 
     164                } 
     165                catch(...) 
     166                {} 
     167 
     168                events_.pop_front(); 
     169 
     170                return 0; 
     171        } 
     172 
    151173        void saveStatus() {} 
    152174        void updateListView() {} 
     
    175197        mutable hal::mutex_t mutex_; 
    176198        boost::signals::connection conn_; 
     199        std::deque<shared_ptr<hal::EventDetail> > events_; 
    177200}; 
    178201 
Note: See TracChangeset for help on using the changeset viewer.