Changeset 457


Ignore:
Timestamp:
May 23, 2015, 5:39:04 AM (7 years ago)
Author:
roman
Message:

Added media trace item highlighting

Location:
trunk/DirectShowSpy
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/DirectShowSpy/MediaSampleTrace.h

    r455 r457  
    127127                        ITEM m_Item;
    128128                        PAGEITEM m_PageItem;
     129                        UINT m_nHighlightIndex;
    129130
    130131                public:
    131132                // CItem
     133                        CItem() :
     134                                m_nHighlightIndex(0)
     135                        {
     136                        }
     137                        static BOOL GetBackgroundColor(UINT nIndex, COLORREF& nColor)
     138                        {
     139                                static const COLORREF g_pnColors[] =
     140                                {
     141                                        RGB(0xFF, 0xCC, 0xCC),
     142                                        RGB(0xFF, 0xFF, 0xCC),
     143                                        RGB(0xCC, 0xFF, 0xCC),
     144                                        RGB(0x88, 0xCC, 0xFF),
     145                                        RGB(0xFF, 0x88, 0x88),
     146                                        RGB(0xFF, 0xFF, 0x88),
     147                                        RGB(0x88, 0xFF, 0x88),
     148                                        RGB(0x44, 0x88, 0xFF),
     149                                };
     150                                if(nIndex - 1 < DIM(g_pnColors))
     151                                {
     152                                        nColor = g_pnColors[nIndex - 1];
     153                                        return TRUE;
     154                                }
     155                                return FALSE;
     156                        }
     157                        BOOL GetBackgroundColor(COLORREF& nColor) const
     158                        {
     159                                return GetBackgroundColor(m_nHighlightIndex, nColor);
     160                        }
    132161                        LPCTSTR FormatType() const
    133162                        {
     
    707736                public CPropertyPageT<CMediaSamplePropertyPage>,
    708737                public CPropertyPageWithAcceleratorsT<CMediaSamplePropertyPage>,
    709                 public CDialogResize<CMediaSamplePropertyPage>
     738                public CDialogResize<CMediaSamplePropertyPage>,
     739                public CCustomDraw<CMediaSamplePropertyPage>
    710740        {
    711741                typedef CThreadT<CMediaSamplePropertyPage> CThread;
     
    718748                CHAIN_MSG_MAP(CPropertyPageWithAccelerators)
    719749                CHAIN_MSG_MAP(CDialogResize<CMediaSamplePropertyPage>)
     750                CHAIN_MSG_MAP(CCustomDraw<CMediaSamplePropertyPage>)
    720751                MSG_WM_INITDIALOG(OnInitDialog)
    721752                MSG_WM_DESTROY(OnDestroy)
     
    729760                COMMAND_ID_HANDLER_EX(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_OPENFILTERGRAPHLIST, OnOpenFilterGraphList)
    730761                COMMAND_ID_HANDLER_EX(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_OPENFILTERGRAPHPROPERTIES, OnOpenFilterGraphProperties)
     762                COMMAND_ID_HANDLER_EX(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_REMOVEALL, OnHighlightRemoveAll)
     763                COMMAND_RANGE_HANDLER_EX(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_REMOVE, IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_8, OnHighlight)
    731764                REFLECT_NOTIFICATIONS()
    732765        END_MSG_MAP()
     
    11651198                                _T("Data Size"),
    11661199                                _T("Comment"),
     1200                                _T("Highlight"),
    11671201                        };
    11681202                        sText += _StringHelper::Join(g_ppszHeader, _T("\t")) + _T("\r\n");
     
    12171251                                        Array.Add(CString(Item.m_PageItem.pszComment));
    12181252                                }
     1253                                if(Item.m_nHighlightIndex)
     1254                                {
     1255                                        while(Array.GetCount() < 15)
     1256                                                Array.Add(_T(""));
     1257                                        Array.Add(AtlFormatString(_T("*%d"), Item.m_nHighlightIndex));
     1258                                }
    12191259                                sText += _StringHelper::Join(Array, _T("\t"));
    12201260                                sText += _T("\r\n");
     
    12311271                                        m_ListView.InsertItem(nItem++, Item);
    12321272                        // SUGG: Preserve selection
     1273                }
     1274
     1275        // CCustomDraw
     1276                DWORD OnPrePaint(INT nIdentifier, NMCUSTOMDRAW*)
     1277                {
     1278                        if(nIdentifier == IDC_MEDIASAMPLETRACE_MEDIASAMPLE_LIST)
     1279                                return CDRF_NOTIFYITEMDRAW;
     1280                        return CDRF_DODEFAULT;
     1281                }
     1282                DWORD OnItemPrePaint(INT, NMCUSTOMDRAW* pHeader)
     1283                {
     1284                        NMLVCUSTOMDRAW* pHeaderEx = (NMLVCUSTOMDRAW*) pHeader;
     1285                        const CData::CItem& Item = m_ListView.DataFromParameter(pHeaderEx->nmcd.lItemlParam);
     1286                        Item.GetBackgroundColor(pHeaderEx->clrTextBk);
     1287                        return CDRF_DODEFAULT;
    12331288                }
    12341289
     
    14301485                        CMenu ContainerMenu = AtlLoadMenu(IDD);
    14311486                        CMenuHandle Menu = ContainerMenu.GetSubMenu(0);
     1487                        const INT nItemCount = m_ListView.GetItemCount();
     1488                        const INT nSelectItemCount = m_ListView.GetSelectedCount();
     1489                        for(INT nIdentifier = IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_REMOVE; nIdentifier <= IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_8; nIdentifier++)
     1490                                Menu.EnableMenuItem(nIdentifier, nSelectItemCount ? MF_ENABLED : MF_GRAYED | MF_DISABLED);
     1491                        Menu.EnableMenuItem(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_REMOVEALL, nItemCount ? MF_ENABLED : MF_GRAYED | MF_DISABLED);
     1492                        Menu.EnableMenuItem(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_COPYTOCLIPBOARD, nItemCount ? MF_ENABLED : MF_GRAYED | MF_DISABLED);
     1493                        Menu.EnableMenuItem(IDC_MEDIASAMPLETRACE_MEDIASAMPLE_SAVETOFILE, nItemCount ? MF_ENABLED : MF_GRAYED | MF_DISABLED);
    14321494                        Menu.TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN | TPM_TOPALIGN, Position.x, Position.y, m_hWnd);
    14331495                        return 0;
     
    15281590                        return 0;
    15291591                }
     1592                LRESULT OnHighlightRemoveAll(UINT, INT nIdentifier, HWND)
     1593                {
     1594                        const INT nItemCount = m_ListView.GetItemCount();
     1595                        if(nItemCount > 0)
     1596                        {
     1597                                for(INT nItem = 0; nItem < nItemCount; nItem++)
     1598                                        m_ListView.GetItemData(nItem).m_nHighlightIndex = 0;
     1599                                m_ListView.RedrawItems(0, nItemCount - 1);
     1600                        }
     1601                        return 0;
     1602                }
     1603                LRESULT OnHighlight(UINT, INT nIdentifier, HWND)
     1604                {
     1605                        for(INT nItem: m_ListView.GetSelectedItems())
     1606                        {
     1607                                m_ListView.GetItemData(nItem).m_nHighlightIndex = nIdentifier - IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_REMOVE;
     1608                                m_ListView.RedrawItems(nItem, nItem);
     1609                        }
     1610                        return 0;
     1611                }
    15301612        };
    15311613
  • trunk/DirectShowSpy/resource.h

    r441 r457  
    141141#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_FILTER_STREAM_TITLE 2137
    142142#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_FILTER_STREAM 2138
     143#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_REMOVEALL 2150
     144#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_REMOVE 2151
     145#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_1 2152
     146#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_2 2153
     147#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_3 2154
     148#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_4 2155
     149#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_5 2156
     150#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_6 2157
     151#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_7 2158
     152#define IDC_MEDIASAMPLETRACE_MEDIASAMPLE_HIGHLIGHT_8 2159
    143153#define IDR_FILTERGRAPHSPY              25000
    144154#define IDR_NOTHREADFILTERGRAPHSPY      25001
     
    163173#ifndef APSTUDIO_READONLY_SYMBOLS
    164174#define _APS_NEXT_RESOURCE_VALUE        214
    165 #define _APS_NEXT_COMMAND_VALUE         32798
     175#define _APS_NEXT_COMMAND_VALUE         32806
    166176#define _APS_NEXT_CONTROL_VALUE         257
    167177#define _APS_NEXT_SYMED_VALUE           103
Note: See TracChangeset for help on using the changeset viewer.