Lhaz
lhazcol.h
[詳解]
1 /*************************************************************************/
6 #pragma once
7 
8 #include "altstr.hpp"
9 #include <vector>
10 #include <Windows.h>
11 #include "lhazfile.h"
12 
13 class ARCHIVE;
14 
15 
16 namespace gui {
17 
18 
23 class LVCOLM {
24 public:
25  LVCOLM(LHAZFILE::FIELD field, int fmt, UINT idtext, int size, BOOL dsp, UINT idmenu);
26  //
28  int Fmt; // カラムのフォーマット
29  WSTR Text; // カラムの文字列
30  int Size; // デフォルトの横幅
31  BOOL Dsp; // デフォルトで表示するかどうか
32  WSTR Menu; // システムメニューの「表示」に表示する文字列
33 };
34 
35 class LVCOLMS {
36 public:
37  struct LVCONTENT {
38  int Index; // カラムのインデックス
39  BOOL Checked; // 表示しているかどうか
40  int Size; // カラムの横幅
41  };
42  //
43  LVCOLMS(
44  HWND hwnd,
45  HMENU memu,
46  int sortkind,
47  int sortrev,
48  int colcont,
49  LVCOLM cols[],
50  const WSTR& regprefix,
51  bool setmenu
52  );
53  ‾LVCOLMS();
54  //
55  LVCONTENT GetContents(int idx) const { return m_contents[idx]; }
56  void SetContent(int idx, const LVCONTENT& con) { m_contents[idx] = con; }
57  BOOL GetChecked(int idx) const { return m_contents[idx].Checked; }
58  void SetSize(int idx, int size) { m_contents[m_disp_conts[idx]].Size = size; }
59  int GetDispCont(int idx) const { return m_disp_conts[idx]; }
60  size_t GetDispContsSize() const { return m_disp_conts.size(); }
61  void SetListView();
62  const WSTR& GetDsp(ARCHIVE* archive, int subitem, int item, bool hastreeview) const;
63  void SetMenu();
64  void CheckMenu(int sortkind, int sortrev);
65  void SetSizeText(int kb_b) { m_view_kb_b = kb_b; }
66  int GetContent(int idx) const { return m_contents[idx].Index; }
67  int GetFmt(int idx) const { return m_columns[m_contents[idx].Index].Fmt; }
68  const WSTR& GetText(int idx) const { return m_columns[m_contents[idx].Index].Text; }
69  void ChangeDisp(bool setmenu);
70  int GetIndex(int subitem) const { return m_contents[m_disp_conts[subitem]].Index; }
71  LHAZFILE::FIELD GetField(int idx) const { return m_columns[m_contents[m_disp_conts[idx]].Index].Field; }
72  int GetSortKind() const { return m_sort_kind; }
73 
74 private:
75  HWND m_lv_window; // リストビューのハンドル
76  HMENU m_menu; // ソートメニューのハンドル
77  int m_sort_kind; // ソート種別
78  int m_sort_rev; // ソート逆順
79  std::vector<LVCONTENT> m_contents; // 実際のカラムの表示状況を保持する
80  std::vector<int> m_disp_conts; // 表示しているカラムのインデックスを保持するバッファ
81  int m_view_kb_b; // サイズをKB表示にするかどうか
82  int m_col_cnt; // 対応する全カラムの数
83  LVCOLM* m_columns; // 対応する全カラム一覧
84  WSTR m_reg_prefix; // レジストリに保存する時のプレフィックス
85  //
86  void ReadColumns();
87  void SaveColumns();
88  void UseDefaultDisplay(); // デフォルトのカラム表示を使う
89 
90 };
91 
92 
93 } // namespace gui
size_t GetDispContsSize() const
Definition: lhazcol.h:60
std::vector< LVCONTENT > m_contents
Definition: lhazcol.h:79
int GetFmt(int idx) const
Definition: lhazcol.h:67
void SetSizeText(int kb_b)
Definition: lhazcol.h:65
Definition: lhazarc.h:25
BOOL Checked
Definition: lhazcol.h:39
Definition: lhazbz2.h:17
LHAZFILE::FIELD Field
Definition: lhazcol.h:27
const WSTR & GetText(int idx) const
Definition: lhazcol.h:68
Definition: lhazcol.h:37
Definition: lhazcol.h:35
int m_sort_rev
Definition: lhazcol.h:78
LVCONTENT GetContents(int idx) const
Definition: lhazcol.h:55
BOOL Dsp
Definition: lhazcol.h:31
int GetDispCont(int idx) const
Definition: lhazcol.h:59
LVCOLM(LHAZFILE::FIELD field, int fmt, UINT idtext, int size, BOOL dsp, UINT idmenu)
Definition: lhazcol.cpp:23
LVCOLM * m_columns
Definition: lhazcol.h:83
int Fmt
Definition: lhazcol.h:28
void SetSize(int idx, int size)
Definition: lhazcol.h:58
FIELD
Definition: lhazfile.h:16
void SetContent(int idx, const LVCONTENT &con)
Definition: lhazcol.h:56
std::vector< int > m_disp_conts
Definition: lhazcol.h:80
HMENU m_menu
Definition: lhazcol.h:76
WSTR Text
Definition: lhazcol.h:29
WSTR Menu
Definition: lhazcol.h:32
int m_sort_kind
Definition: lhazcol.h:77
WSTR m_reg_prefix
Definition: lhazcol.h:84
int GetContent(int idx) const
Definition: lhazcol.h:66
int m_view_kb_b
Definition: lhazcol.h:81
int GetIndex(int subitem) const
Definition: lhazcol.h:70
HWND m_lv_window
Definition: lhazcol.h:75
int Size
Definition: lhazcol.h:40
LHAZFILE::FIELD GetField(int idx) const
Definition: lhazcol.h:71
int GetSortKind() const
Definition: lhazcol.h:72
int Size
Definition: lhazcol.h:30
BOOL GetChecked(int idx) const
Definition: lhazcol.h:57
int m_col_cnt
Definition: lhazcol.h:82
int Index
Definition: lhazcol.h:38
リストビューで用いるカラム.
Definition: lhazcol.h:23