tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ListView.h (6481B)


      1 // Windows/Control/ListView.h
      2 
      3 #ifndef __WINDOWS_CONTROL_LISTVIEW_H
      4 #define __WINDOWS_CONTROL_LISTVIEW_H
      5 
      6 #include "../../Common/MyWindows.h"
      7 
      8 #include <commctrl.h>
      9 
     10 #include "../Window.h"
     11 
     12 namespace NWindows {
     13 namespace NControl {
     14 
     15 class CListView: public NWindows::CWindow
     16 {
     17 public:
     18  bool CreateEx(DWORD exStyle, DWORD style,
     19      int x, int y, int width, int height,
     20      HWND parentWindow, HMENU idOrHMenu,
     21      HINSTANCE instance, LPVOID createParam);
     22 
     23  void SetUnicodeFormat()
     24  {
     25    #ifndef UNDER_CE
     26    ListView_SetUnicodeFormat(_window, TRUE);
     27    #endif
     28  }
     29 
     30  bool DeleteAllItems() { return BOOLToBool(ListView_DeleteAllItems(_window)); }
     31  bool DeleteColumn(int columnIndex) { return BOOLToBool(ListView_DeleteColumn(_window, columnIndex)); }
     32 
     33  int InsertColumn(int columnIndex, const LVCOLUMN *columnInfo) { return ListView_InsertColumn(_window, columnIndex, columnInfo); }
     34  int InsertColumn(int columnIndex, LPCTSTR text, int width);
     35  bool SetColumnOrderArray(int count, const int *columns) { return BOOLToBool(ListView_SetColumnOrderArray(_window, count, columns)); }
     36 
     37  /*
     38  int GetNumColumns()
     39  {
     40    HWND header = ListView_GetHeader(_window);
     41    if (!header)
     42      return -1;
     43    return Header_GetItemCount(header);
     44  }
     45  */
     46 
     47  int InsertItem(const LVITEM* item) { return ListView_InsertItem(_window, item); }
     48  int InsertItem(int index, LPCTSTR text);
     49  bool SetItem(const LVITEM* item) { return BOOLToBool(ListView_SetItem(_window, item)); }
     50  int SetSubItem(int index, int subIndex, LPCTSTR text);
     51 
     52  #ifndef _UNICODE
     53 
     54  int InsertColumn(int columnIndex, const LVCOLUMNW *columnInfo) { return (int)SendMsg(LVM_INSERTCOLUMNW, (WPARAM)columnIndex, (LPARAM)columnInfo); }
     55  int InsertColumn(int columnIndex, LPCWSTR text, int width);
     56  int InsertItem(const LV_ITEMW* item) { return (int)SendMsg(LVM_INSERTITEMW, 0, (LPARAM)item); }
     57  int InsertItem(int index, LPCWSTR text);
     58  bool SetItem(const LV_ITEMW* item) { return BOOLToBool((BOOL)SendMsg(LVM_SETITEMW, 0, (LPARAM)item)); }
     59  int SetSubItem(int index, int subIndex, LPCWSTR text);
     60 
     61  #endif
     62 
     63  bool DeleteItem(int itemIndex) { return BOOLToBool(ListView_DeleteItem(_window, itemIndex)); }
     64 
     65  UINT GetSelectedCount() const { return ListView_GetSelectedCount(_window); }
     66  int GetItemCount() const { return ListView_GetItemCount(_window); }
     67 
     68  INT GetSelectionMark() const { return ListView_GetSelectionMark(_window); }
     69 
     70  void SetItemCount(int numItems) { ListView_SetItemCount(_window, numItems); }
     71  void SetItemCountEx(int numItems, DWORD flags) {  ListView_SetItemCountEx(_window, numItems, flags); }
     72 
     73  int GetNextItem(int startIndex, UINT flags) const { return ListView_GetNextItem(_window, startIndex, flags); }
     74  int GetNextSelectedItem(int startIndex) const { return GetNextItem(startIndex, LVNI_SELECTED); }
     75  int GetFocusedItem() const { return GetNextItem(-1, LVNI_FOCUSED); }
     76  
     77  bool GetItem(LVITEM* item) const { return BOOLToBool(ListView_GetItem(_window, item)); }
     78  bool GetItemParam(int itemIndex, LPARAM &param) const;
     79  void GetItemText(int itemIndex, int subItemIndex, LPTSTR text, int textSizeMax) const
     80    { ListView_GetItemText(_window, itemIndex, subItemIndex, text, textSizeMax); }
     81  bool SortItems(PFNLVCOMPARE compareFunction, LPARAM dataParam)
     82    { return BOOLToBool(ListView_SortItems(_window, compareFunction, dataParam)); }
     83 
     84  void SetItemState(int index, UINT state, UINT mask) { ListView_SetItemState(_window, index, state, mask); }
     85  void SetItemState_Selected(int index, bool select) { SetItemState(index, select ? LVIS_SELECTED : 0, LVIS_SELECTED); }
     86  void SetItemState_Selected(int index) { SetItemState(index, LVIS_SELECTED, LVIS_SELECTED); }
     87  void SelectAll() { SetItemState_Selected(-1); }
     88  void SetItemState_FocusedSelected(int index) { SetItemState(index, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); }
     89  UINT GetItemState(int index, UINT mask) const { return ListView_GetItemState(_window, index, mask); }
     90  bool IsItemSelected(int index) const { return GetItemState(index, LVIS_SELECTED) == LVIS_SELECTED; }
     91 
     92  bool GetColumn(int columnIndex, LVCOLUMN* columnInfo) const
     93    { return BOOLToBool(ListView_GetColumn(_window, columnIndex, columnInfo)); }
     94 
     95  HIMAGELIST SetImageList(HIMAGELIST imageList, int imageListType)
     96    { return ListView_SetImageList(_window, imageList, imageListType); }
     97 
     98  // version 4.70: NT5 | (NT4 + ie3) | w98 | (w95 + ie3)
     99  DWORD GetExtendedListViewStyle() { return ListView_GetExtendedListViewStyle(_window); }
    100  void SetExtendedListViewStyle(DWORD exStyle) { ListView_SetExtendedListViewStyle(_window, exStyle); }
    101  void SetExtendedListViewStyle(DWORD exMask, DWORD exStyle) { ListView_SetExtendedListViewStyleEx(_window, exMask, exStyle); }
    102 
    103  void SetCheckState(UINT index, bool checkState) { ListView_SetCheckState(_window, index, BoolToBOOL(checkState)); }
    104  bool GetCheckState(UINT index) { return BOOLToBool(ListView_GetCheckState(_window, index)); }
    105 
    106  bool EnsureVisible(int index, bool partialOK) { return BOOLToBool(ListView_EnsureVisible(_window, index, BoolToBOOL(partialOK))); }
    107 
    108  bool GetItemRect(int index, RECT *rect, int code) { return BOOLToBool(ListView_GetItemRect(_window, index, rect, code)); }
    109 
    110  HWND GetEditControl() { return ListView_GetEditControl(_window) ; }
    111  HWND EditLabel(int itemIndex) { return ListView_EditLabel(_window, itemIndex) ; }
    112 
    113  bool RedrawItems(int firstIndex, int lastIndex) { return BOOLToBool(ListView_RedrawItems(_window, firstIndex, lastIndex)); }
    114  bool RedrawAllItems()
    115  {
    116    if (GetItemCount() > 0)
    117      return RedrawItems(0, GetItemCount() - 1);
    118    return true;
    119  }
    120  bool RedrawItem(int index) { return RedrawItems(index, index); }
    121 
    122  int HitTest(LPLVHITTESTINFO info) { return ListView_HitTest(_window, info); }
    123  COLORREF GetBkColor() { return ListView_GetBkColor(_window); }
    124  bool SetColumnWidth(int iCol, int cx) { return BOOLToBool(ListView_SetColumnWidth(_window, iCol, cx)); }
    125  bool SetColumnWidthAuto(int iCol) { return SetColumnWidth(iCol, LVSCW_AUTOSIZE); }
    126 };
    127 
    128 class CListView2: public CListView
    129 {
    130  WNDPROC _origWindowProc;
    131 public:
    132  void SetWindowProc();
    133  virtual LRESULT OnMessage(UINT message, WPARAM wParam, LPARAM lParam);
    134 };
    135 
    136 /*
    137 class CListView3: public CListView2
    138 {
    139 public:
    140  virtual LRESULT OnMessage(UINT message, WPARAM wParam, LPARAM lParam);
    141 };
    142 */
    143 
    144 }}
    145 
    146 #endif