ドキュメント
TableLockedHeaderComponent
3 min read
TableLockedHeaderComponentはヘッダースクロールを無効にしたコンポーネントです。
table_locaked_header_component.hpp
class TableLockedHeaderComponent : public Component
{
public:
TableLockedHeaderComponent
(
MOD mod,
unsigned int th_height,
std::vector<unsigned int> td_width_vec,
std::function<std::list<TdComponent>()> table_header_generator
);
~TableLockedHeaderComponent() = default;
TableLockedHeaderComponent(
TableLockedHeaderComponent const& other);
TableLockedHeaderComponent& operator=(
TableLockedHeaderComponent const& other);
void configure();
private:
std::unique_ptr<ScrollDisableComponent> disable;
std::unique_ptr<TableComponent> header;
};
引数にヘッダーの高さ、列幅、TdComponentのリストを指定します。ScrollDisableComponentでScrollComponentに配置してもy軸方向を固定します。
table_locked_header_component.cpp
TableLockedHeaderComponent::TableLockedHeaderComponent
(
MOD mod,
unsigned int th_height,
std::vector<unsigned int> td_width_vec,
std::function<std::list<TdComponent>()> table_header_generator
) : Component(mod)
{
disable = std::make_unique<ScrollDisableComponent>(
mod
, false
, true );
std::list<TrComponent> tr = std::list<TrComponent>{};
tr.push_back(TrComponent{mod, table_header_generator() });
header = std::make_unique<TableComponent>(
mod
, th_height
, td_width_vec
, tr );
}
TableHeaderGeneratorは文字列のリストを渡してTdComponentのリストを生成するオブジェクト関数です。
table_header_generator.hpp
class TableHeaderGenerator
{
public:
using MOD = spa::gui::MOD;
public:
TableHeaderGenerator
(
MOD mod,
unsigned int tr_height,
std::vector<unsigned int> td_width_vec,
unsigned char table_bg_color_R,
unsigned char table_bg_color_G,
unsigned char table_bg_color_B,
unsigned char table_bg_color_A,
unsigned int table_text_c_size,
unsigned char table_text_color_R,
unsigned char table_text_color_G,
unsigned char table_text_color_B,
std::list<std::string> headers
);
std::list<TdComponent> operator()();
private:
MOD mod;
unsigned tr_height;
std::vector<unsigned int> td_width_vec;
unsigned char table_bg_color_R;
unsigned char table_bg_color_G;
unsigned char table_bg_color_B;
unsigned char table_bg_color_A;
unsigned int table_text_c_size;
unsigned char table_text_color_R;
unsigned char table_text_color_G;
unsigned char table_text_color_B;
std::list<std::string> headers;
};
ヘッダーの高さ、列幅、背景色、テキストサイズ、テキストカラーを指定します。
コメントを残す