4#include <unordered_map>
9#include "webcface/common/webcface-config.h"
16#pragma message("warning: Disabling macro definition of 'min' and 'max', since they conflicts in webcface/component_view.h.")
30struct ViewComponentData;
33struct TemporalViewComponentData;
75WEBCFACE_DLL ViewColor colorFromRGB(
double r,
double g,
double b);
111 std::shared_ptr<message::ViewComponentData> msg_data;
112 std::weak_ptr<internal::ClientData> data_w;
116 mutable std::unique_ptr<wcfMultiVal[]> options_s;
117 mutable std::unique_ptr<wcfMultiValW[]> options_sw;
119 void checkData()
const;
121 template <
typename CComponent,
typename CVal, std::
size_t v_index>
122 CComponent cDataT()
const;
131 ViewComponent(
const std::shared_ptr<message::ViewComponentData> &msg_data,
132 const std::weak_ptr<internal::ClientData> &data_w,
153 std::
string id() const;
163 std::wstring idW() const;
180 return !(*
this == other);
192 std::string text()
const;
197 std::wstring textW()
const;
202 std::optional<Func> onClick()
const;
213 std::optional<Func> onChange()
const;
223 std::optional<Variant> bind()
const;
240 std::optional<double> min()
const;
247 std::optional<double> max()
const;
253 std::optional<double> step()
const;
259 std::vector<ValAdaptor> option()
const;
268 std::unique_ptr<internal::TemporalViewComponentData> msg_data;
294 friend class internal::ViewBuf;
304 std::unique_ptr<internal::TemporalViewComponentData>
305 lockTmp(const std::shared_ptr<internal::ClientData> &data,
331 return std::move(*
this);
344 return std::move(*
this);
358 return std::move(*
this);
372 return std::move(*
this);
383 template <typename T, decltype(std::declval<T>()(),
nullptr) =
nullptr>
392 template <typename T, decltype(std::declval<T>()(),
nullptr) =
nullptr>
394 this->onClick(std::move(func));
395 return std::move(*
this);
417 return std::move(*
this);
428 template <
typename T>
433 [ref, func = std::move(func)](
ValAdaptor val) {
434 ref.lockedField().set(val);
443 template <
typename T>
445 this->onChange(std::move(func));
446 return std::move(*
this);
466 return std::move(*
this);
478 return std::move(*
this);
489 template <
typename T>
497 template <
typename T>
500 return std::move(*
this);
523 return std::move(*
this);
541 return std::move(*
this);
557 return std::move(*
this);
567 template <
typename T>
569 std::vector<ValAdaptor> option_v;
570 for (
const auto &v : option) {
573 return this->option(std::move(option_v));
579 template <
typename T>
581 this->option(option);
582 return std::move(*
this);
590 this->option(std::move(option));
591 return std::move(*
this);
関数1つを表すクラス
Definition func.h:95
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:69
Viewを構築するときに使う一時的なViewComponent.
Definition component_view.h:267
TemporalViewComponent && onChange(T func) &&
値が変化した時に実行される関数を設定
Definition component_view.h:444
TemporalViewComponent && textColor(ViewColor c) &&
Definition component_view.h:464
TemporalViewComponent && init(const T &init) &&
デフォルト値を設定する。
Definition component_view.h:498
TemporalViewComponent && step(double step) &&
数値の刻み幅を設定する。
Definition component_view.h:555
TemporalViewComponent & init(const T &init) &
デフォルト値を設定する。
Definition component_view.h:490
TemporalViewComponent && onClick(T func) &&
クリック時に実行される関数を設定
Definition component_view.h:393
TemporalViewComponent & onChange(T func) &
値が変化した時に実行される関数を設定
Definition component_view.h:429
TemporalViewComponent && onClick(const Func &func) &&
クリック時に実行される関数を設定 (登録済みFunc)
Definition component_view.h:356
TemporalViewComponent & option(std::initializer_list< T > option) &
引数の選択肢を設定する。
Definition component_view.h:568
TemporalViewComponent & onClick(T func) &
クリック時に実行される関数を設定
Definition component_view.h:384
TemporalViewComponent && bind(const InputRef &ref) &&
変更した値を格納するInputRefを設定
Definition component_view.h:415
TemporalViewComponent & operator=(TemporalViewComponent &&other) noexcept
TemporalViewComponent && option(std::vector< ValAdaptor > option) &&
Definition component_view.h:589
TemporalViewComponent && max(double max) &&
最大値を設定する。
Definition component_view.h:539
TemporalViewComponent && min(double min) &&
最小値を設定する。
Definition component_view.h:521
TemporalViewComponent && option(std::initializer_list< T > option) &&
引数の選択肢を設定する。
Definition component_view.h:580
TemporalViewComponent(TemporalViewComponent &&other) noexcept
TemporalViewComponent && onClick(const FuncListener &func) &&
クリック時に実行される関数を設定 (FuncListener)
Definition component_view.h:370
~TemporalViewComponent() noexcept
TemporalViewComponent && bgColor(ViewColor c) &&
Definition component_view.h:476
TemporalViewComponent && text(std::wstring_view text) &&
表示する文字列を設定 (wstring)
Definition component_view.h:342
数値、文字列などの値を相互変換するクラス
Definition val_adaptor.h:87
Viewに表示する要素です
Definition component_view.h:110
ViewComponent(ViewComponent &&) noexcept
Viewの送受信データを表すクラス
Definition view.h:26
TemporalViewComponent button(std::string_view text, T &&func)
buttonコンポーネント
Definition components.h:615
ViewComponentType
Definition component_view.h:77
ViewColor
Definition component_view.h:40
数値と文字列をまとめて扱うためのstruct (wstring)
Definition def_types.h:84
数値と文字列をまとめて扱うためのstruct
Definition def_types.h:50
Viewの要素を表すstruct (wstring)
Definition def_types.h:289
Viewの要素を表すstruct.
Definition def_types.h:218
#define WEBCFACE_DLL
Definition webcface-config.h:60
#define WEBCFACE_NS_END
Definition webcface-config.h:104
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:103
#define WEBCFACE_CALL_FP
Definition webcface-config.h:98