Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions dearpygui/dearpygui.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

76 changes: 76 additions & 0 deletions src/mvAppItem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,24 @@ void mvAppItem::submitCallback(std::array<int, 4> app_data)
submitCallbackEx([app_data=std::move(app_data)]() { return ToPyIntList(app_data.data(), (int) app_data.size()); });
}

template<>
void mvAppItem::submitCallback(std::array<int, 2> app_data)
{
submitCallbackEx([app_data=std::move(app_data)]() { return ToPyIntList(app_data.data(), (int) app_data.size()); });
}

template<>
void mvAppItem::submitCallback(std::array<float, 4> app_data)
{
submitCallbackEx([app_data=std::move(app_data)]() { return ToPyFloatList(app_data.data(), (int) app_data.size()); });
}

template<>
void mvAppItem::submitCallback(std::array<float, 2> app_data)
{
submitCallbackEx([app_data=std::move(app_data)]() { return ToPyFloatList(app_data.data(), (int) app_data.size()); });
}

template<>
void mvAppItem::submitCallback(std::array<double, 4> app_data)
{
Expand Down Expand Up @@ -3731,6 +3743,70 @@ DearPyGui::GetEntityParser(mvAppItemType type)
setup.about = "Adds drag input for a set of int values up to 4. Directly entry can be done with double click or CTRL+Click. Min and Max alone are a soft limit for the drag. Use clamped keyword to also apply limits to the direct entry modes.";
break;
}
case mvAppItemType::mvDragIntRange:
{
AddCommonArgs(args, (CommonParserArgs)(
MV_PARSER_ARG_ID |
MV_PARSER_ARG_WIDTH |
MV_PARSER_ARG_INDENT |
MV_PARSER_ARG_PARENT |
MV_PARSER_ARG_BEFORE |
MV_PARSER_ARG_SOURCE |
MV_PARSER_ARG_CALLBACK |
MV_PARSER_ARG_SHOW |
MV_PARSER_ARG_ENABLED |
MV_PARSER_ARG_FILTER |
MV_PARSER_ARG_DROP_CALLBACK |
MV_PARSER_ARG_DRAG_CALLBACK |
MV_PARSER_ARG_PAYLOAD_TYPE |
MV_PARSER_ARG_TRACKED |
MV_PARSER_ARG_POS)
);

args.push_back({ mvPyDataType::IntList, "default_value", mvArgType::KEYWORD_ARG, "(0, 100)", "Initial (min, max) range values." });
args.push_back({ mvPyDataType::String, "format", mvArgType::KEYWORD_ARG, "'%d'", "Determines the format the values will be displayed as." });
args.push_back({ mvPyDataType::String, "format_max", mvArgType::KEYWORD_ARG, "''", "Format for the max value (uses format if empty)." });
args.push_back({ mvPyDataType::Float, "speed", mvArgType::KEYWORD_ARG, "1.0", "Sets the sensitivity while dragging." });
args.push_back({ mvPyDataType::Integer, "min_value", mvArgType::KEYWORD_ARG, "0", "Minimum allowed value for the range." });
args.push_back({ mvPyDataType::Integer, "max_value", mvArgType::KEYWORD_ARG, "100", "Maximum allowed value for the range." });
args.push_back({ mvPyDataType::Bool, "no_input", mvArgType::KEYWORD_ARG, "False", "Disable direct entry methods." });
args.push_back({ mvPyDataType::Bool, "clamped", mvArgType::KEYWORD_ARG, "False", "Apply min/max limits to direct entry." });

setup.about = "Adds a drag widget for a range of two int values (min and max). The min value cannot exceed max and vice versa.";
break;
}
case mvAppItemType::mvDragFloatRange:
{
AddCommonArgs(args, (CommonParserArgs)(
MV_PARSER_ARG_ID |
MV_PARSER_ARG_WIDTH |
MV_PARSER_ARG_INDENT |
MV_PARSER_ARG_PARENT |
MV_PARSER_ARG_BEFORE |
MV_PARSER_ARG_SOURCE |
MV_PARSER_ARG_CALLBACK |
MV_PARSER_ARG_SHOW |
MV_PARSER_ARG_ENABLED |
MV_PARSER_ARG_FILTER |
MV_PARSER_ARG_DROP_CALLBACK |
MV_PARSER_ARG_DRAG_CALLBACK |
MV_PARSER_ARG_PAYLOAD_TYPE |
MV_PARSER_ARG_TRACKED |
MV_PARSER_ARG_POS)
);

args.push_back({ mvPyDataType::FloatList, "default_value", mvArgType::KEYWORD_ARG, "(0.0, 100.0)", "Initial (min, max) range values." });
args.push_back({ mvPyDataType::String, "format", mvArgType::KEYWORD_ARG, "'%.3f'", "Determines the format the values will be displayed as." });
args.push_back({ mvPyDataType::String, "format_max", mvArgType::KEYWORD_ARG, "''", "Format for the max value (uses format if empty)." });
args.push_back({ mvPyDataType::Float, "speed", mvArgType::KEYWORD_ARG, "1.0", "Sets the sensitivity while dragging." });
args.push_back({ mvPyDataType::Float, "min_value", mvArgType::KEYWORD_ARG, "0.0", "Minimum allowed value for the range." });
args.push_back({ mvPyDataType::Float, "max_value", mvArgType::KEYWORD_ARG, "100.0", "Maximum allowed value for the range." });
args.push_back({ mvPyDataType::Bool, "no_input", mvArgType::KEYWORD_ARG, "False", "Disable direct entry methods." });
args.push_back({ mvPyDataType::Bool, "clamped", mvArgType::KEYWORD_ARG, "False", "Apply min/max limits to direct entry." });

setup.about = "Adds a drag widget for a range of two float values (min and max). The min value cannot exceed max and vice versa.";
break;
}
case mvAppItemType::mvSliderFloatMulti:
{
AddCommonArgs(args, (CommonParserArgs)(
Expand Down
2 changes: 2 additions & 0 deletions src/mvAppItem.h
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,8 @@ GetEntityCommand(mvAppItemType type)
case mvAppItemType::mvDragFloatMulti: return "add_drag_floatx";
case mvAppItemType::mvDragDoubleMulti: return "add_drag_doublex";
case mvAppItemType::mvDragIntMulti: return "add_drag_intx";
case mvAppItemType::mvDragIntRange: return "add_drag_int_range";
case mvAppItemType::mvDragFloatRange: return "add_drag_float_range";
case mvAppItemType::mvSliderFloatMulti: return "add_slider_floatx";
case mvAppItemType::mvSliderDoubleMulti: return "add_slider_doublex";
case mvAppItemType::mvSliderIntMulti: return "add_slider_intx";
Expand Down
2 changes: 2 additions & 0 deletions src/mvAppItemTypes.inc
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,8 @@
X( mvInputDoubleMulti ) \
X( mvDragDouble ) \
X( mvDragDoubleMulti ) \
X( mvDragIntRange ) \
X( mvDragFloatRange ) \
X( mvSliderDouble ) \
X( mvSliderDoubleMulti ) \
X( mvCustomSeries )
Loading
Loading