CoolFace
Datasetpublic

dlxjj/imradv3

sourceHugging Faceupdated 8mo agoView on Hugging Face
0likes262downloads
node_container.h258 linesDownload Raw Back to src
1#pragma once2#include "node_standard.h"3 4struct Table : Widget5{6    struct ColumnData7    {8        direct_val<std::string> label = "";9        bindable<bool> visible;10        direct_val<ImGuiTableColumnFlags_> sizingPolicy = 0;11        direct_val<float> width = 0;12        direct_val<ImGuiTableColumnFlags_> flags;13 14        ColumnData();15        ColumnData(const std::string& l, ImGuiTableColumnFlags_ sizingPolicy, float w = 0);16        const ColumnData& Defaults() const { static ColumnData cd; return cd; }17        auto Properties()->std::vector<Prop>;18        bool PropertyUI(int i, UIContext& ctx);19        std::string SizingPolicyString();20    };21 22    direct_val<ImGuiTableFlags_> flags = ImGuiTableFlags_Borders;23    std::vector<ColumnData> columnData;24    direct_val<bool> header = true;25    bindable<bool> rowFilter;26    bindable<dimension_t> rowHeight = 0;27    direct_val<int> scrollFreeze_x = 0;28    direct_val<int> scrollFreeze_y = 0;29    direct_val<bool> scrollWhenDragging = false;30    direct_val<pzdimension2_t> style_cellPadding;31    bindable<color_t> style_headerBg;32    bindable<color_t> style_rowBg;33    bindable<color_t> style_rowBgAlt;34    bindable<color_t> style_childBg;35    event<> onBeginRow;36    event<> onEndRow;37    event<> onSetup;38 39    Table(UIContext&);40    auto Clone(UIContext& ctx)->std::unique_ptr<Widget>;41    int Behavior() { return Widget::Behavior() | SnapInterior | HasSizeX | HasSizeY; }42    ImDrawList* DoDraw(UIContext& ctx);43    auto Properties() ->std::vector<Prop>;44    bool PropertyUI(int i, UIContext& ctx);45    auto Events()->std::vector<Prop>;46    bool EventUI(int i, UIContext& ctx);47    void DoExport(std::ostream& os, UIContext& ctx);48    void DoImport(const cpp::stmt_iterator& sit, UIContext& ctx);49    const char* GetIcon() const { return ICON_FA_TABLE_CELLS_LARGE; }50    const Table& Defaults() { static Table var(UIContext::Defaults()); return var; }51    int ColumnCount(UIContext& ctx) { return (int)columnData.size(); }52};53 54struct Child : Widget55{56    direct_val<ImGuiChildFlags_> flags = ImGuiChildFlags_AlwaysUseWindowPadding | ImGuiChildFlags_NavFlattened;57    direct_val<ImGuiWindowFlags_> wflags = ImGuiWindowFlags_NoSavedSettings;58    bindable<int> columnCount = 1;59    direct_val<bool> columnBorder = true;60    direct_val<bool> scrollWhenDragging = false;61    direct_val<pzdimension2_t> style_padding;62    direct_val<pzdimension2_t> style_spacing;63    direct_val<bool> style_outerPadding = true;64    direct_val<pzdimension_t> style_rounding;65    direct_val<pzdimension_t> style_borderSize;66    bindable<color_t> style_bg;67 68    Child(UIContext& ctx);69    auto Clone(UIContext& ctx)->std::unique_ptr<Widget>;70    int Behavior();71    ImDrawList* DoDraw(UIContext& ctx);72    auto Properties() ->std::vector<Prop>;73    bool PropertyUI(int i, UIContext& ctx);74    void DoExport(std::ostream& os, UIContext& ctx);75    void DoImport(const cpp::stmt_iterator& sit, UIContext& ctx);76    const char* GetIcon() const { return ICON_FA_SQUARE_FULL; }77    void CalcSizeEx(ImVec2 p1, UIContext& ctx);78    const Child& Defaults() { static Child var(UIContext::Defaults()); return var; }79    int ColumnCount(UIContext& ctx) { return columnCount.eval(ctx); }80};81 82struct CollapsingHeader : Widget83{84    bindable<std::string> label = "label";85    direct_val<ImGuiTreeNodeFlags_> flags;86    bindable<bool> open;87    bindable<color_t> style_header;88    bindable<color_t> style_hovered;89    bindable<color_t> style_active;90 91    CollapsingHeader(UIContext& ctx);92    auto Clone(UIContext& ctx)->std::unique_ptr<Widget>;93    int Behavior() { return SnapSides | SnapInterior; }94    ImDrawList* DoDraw(UIContext& ctx);95    auto Properties()->std::vector<Prop>;96    bool PropertyUI(int i, UIContext& ctx);97    void DoExport(std::ostream& os, UIContext& ctx);98    void DoImport(const cpp::stmt_iterator& sit, UIContext& ctx);99    void CalcSizeEx(ImVec2 p1, UIContext& ctx);100    const char* GetIcon() const { return ICON_FA_ARROW_DOWN_WIDE_SHORT; }101    const CollapsingHeader& Defaults() { static CollapsingHeader var(UIContext::Defaults()); return var; }102};103 104struct TabBar : Widget105{106    direct_val<ImGuiTabBarFlags_> flags;107    field_ref<int> activeTab;108    bindable<color_t> style_tab;109    bindable<color_t> style_tabDimmed;110    bindable<color_t> style_hovered;111    bindable<color_t> style_selected;112    bindable<color_t> style_dimmedSelected;113    bindable<color_t> style_overline;114    direct_val<bool> style_regularWidth = false;115 116    TabBar(UIContext& ctx);117    auto Clone(UIContext& ctx)->std::unique_ptr<Widget>;118    int Behavior() { return NoOverlayPos | SnapSides; }119    ImDrawList* DoDraw(UIContext& ctx);120    auto Properties()->std::vector<Prop>;121    bool PropertyUI(int i, UIContext& ctx);122    void DoExport(std::ostream& os, UIContext& ctx);123    void DoImport(const cpp::stmt_iterator& sit, UIContext& ctx);124    void CalcSizeEx(ImVec2 p1, UIContext& ctx);125    const char* GetIcon() const { return ICON_FA_FOLDER_CLOSED; }126    const TabBar& Defaults() { static TabBar var(UIContext::Defaults()); return var; }127};128 129struct TabItem : Widget130{131    bindable<std::string> label = "TabItem";132    direct_val<bool> closeButton = false;133    event<> onClose;134 135    TabItem(UIContext& ctx);136    auto Clone(UIContext& ctx)->std::unique_ptr<Widget>;137    int Behavior() { return SnapInterior | SnapGrandparentClip | NoOverlayPos; }138    ImDrawList* DoDraw(UIContext& ctx);139    void DoDrawTools(UIContext& ctx);140    auto Properties()->std::vector<Prop>;141    bool PropertyUI(int i, UIContext& ctx);142    auto Events()->std::vector<Prop>;143    bool EventUI(int i, UIContext& ctx);144    void DoExport(std::ostream& os, UIContext& ctx);145    void DoImport(const cpp::stmt_iterator& sit, UIContext& ctx);146    void CalcSizeEx(ImVec2 p1, UIContext& ctx);147    const char* GetIcon() const { return ICON_FA_FOLDER; }148    const TabItem& Defaults() { static TabItem var(UIContext::Defaults()); return var; }149};150 151struct TreeNode : Widget152{153    direct_val<ImGuiTreeNodeFlags_> flags;154    bindable<std::string> label = "Node";155    bindable<bool> open;156    bool lastOpen;157 158    TreeNode(UIContext& ctx);159    auto Clone(UIContext& ctx)->std::unique_ptr<Widget>;160    int Behavior() { return Widget::Behavior() | SnapInterior; }161    ImDrawList* DoDraw(UIContext& ctx);162    auto Properties()->std::vector<Prop>;163    bool PropertyUI(int i, UIContext& ctx);164    void DoExport(std::ostream& os, UIContext& ctx);165    void DoImport(const cpp::stmt_iterator& sit, UIContext& ctx);166    void CalcSizeEx(ImVec2 p1, UIContext& ctx);167    const char* GetIcon() const { return ICON_FA_SITEMAP; }168    const TreeNode& Defaults() { static TreeNode var(UIContext::Defaults()); return var; }169};170 171struct MenuBar : Widget172{173    MenuBar(UIContext& ctx);174    auto Clone(UIContext& ctx)->std::unique_ptr<Widget>;175    int Behavior() { return NoOverlayPos; }176    ImDrawList* DoDraw(UIContext& ctx);177    auto Properties()->std::vector<Prop>;178    bool PropertyUI(int i, UIContext& ctx);179    auto Events()->std::vector<Prop>;180    bool EventUI(int i, UIContext& ctx);181    void DoExport(std::ostream& os, UIContext& ctx);182    void DoImport(const cpp::stmt_iterator& sit, UIContext& ctx);183    void CalcSizeEx(ImVec2 p1, UIContext& ctx);184    const char* GetIcon() const { return ICON_FA_ELLIPSIS; }185    const MenuBar& Defaults() { static MenuBar var(UIContext::Defaults()); return var; }186};187 188struct ContextMenu : Widget189{190    direct_val<std::string> label = "Item";191    direct_val<pzdimension2_t> style_padding;192    direct_val<pzdimension2_t> style_spacing;193    direct_val<pzdimension_t> style_rounding;194 195    ContextMenu(UIContext& ctx);196    auto Clone(UIContext& ctx)->std::unique_ptr<Widget>;197    int Behavior() { return NoOverlayPos | NoContextMenu; }198    ImDrawList* DoDraw(UIContext& ctx);199    auto Properties()->std::vector<Prop>;200    bool PropertyUI(int i, UIContext& ctx);201    auto Events()->std::vector<Prop>;202    bool EventUI(int i, UIContext& ctx);203    void DoExport(std::ostream& os, UIContext& ctx);204    void ExportAllShortcuts(std::ostream& os, UIContext& ctx);205    void DoImport(const cpp::stmt_iterator& sit, UIContext& ctx);206    void CalcSizeEx(ImVec2 p1, UIContext& ctx);207    const char* GetIcon() const { return ICON_FA_MESSAGE; }208    const ContextMenu& Defaults() { static ContextMenu var(UIContext::Defaults()); return var; }209};210 211struct MenuIt : Widget212{213    direct_val<bool> ownerDraw = false;214    direct_val<std::string> label = "Item";215    direct_val<shortcut_t> shortcut = "";216    direct_val<bool> separator = false;217    bindable<bool> checked;218    event<> onChange;219 220    MenuIt(UIContext& ctx);221    auto Clone(UIContext& ctx)->std::unique_ptr<Widget>;222    int Behavior() { return NoOverlayPos | NoContextMenu; }223    ImDrawList* DoDraw(UIContext& ctx);224    void DoDrawTools(UIContext& ctx);225    auto Properties()->std::vector<Prop>;226    bool PropertyUI(int i, UIContext& ctx);227    auto Events()->std::vector<Prop>;228    bool EventUI(int i, UIContext& ctx);229    void DoExport(std::ostream& os, UIContext& ctx);230    void ExportShortcut(std::ostream& os, UIContext& ctx);231    void ExportAllShortcuts(std::ostream& os, UIContext& ctx);232    void DoImport(const cpp::stmt_iterator& sit, UIContext& ctx);233    void CalcSizeEx(ImVec2 p1, UIContext& ctx);234    const char* GetIcon() const { return ICON_FA_BARS; }235    const MenuIt& Defaults() { static MenuIt var(UIContext::Defaults()); return var; }236};237 238struct Splitter : Widget239{240    direct_val<dimension_t> min_size1 = 10;241    direct_val<dimension_t> min_size2 = 10;242    field_ref<dimension_t> position;243    bindable<color_t> style_active;244    bindable<color_t> style_bg;245 246    Splitter(UIContext& ctx);247    auto Clone(UIContext& ctx)->std::unique_ptr<Widget>;248    int Behavior() { return Widget::Behavior() | SnapInterior | HasSizeX | HasSizeY | NoOverlayPos; }249    ImDrawList* DoDraw(UIContext& ctx);250    auto Properties()->std::vector<Prop>;251    bool PropertyUI(int i, UIContext& ctx);252    void DoExport(std::ostream& os, UIContext& ctx);253    void DoImport(const cpp::stmt_iterator& sit, UIContext& ctx);254    //void CalcSizeEx(ImVec2 p1, UIContext& ctx);255    const char* GetIcon() const { return ICON_FA_TABLE_COLUMNS; }256    const Splitter& Defaults() { static Splitter var(UIContext::Defaults()); return var; }257};258