UI: Status Bar Display for POSELIB_OT_blend_pose_asset
Simplify and improve the status bar display by adding icons and state highlighting while running "Blend Pose Asset". Pull Request: https://projects.blender.org/blender/blender/pulls/133397
This commit is contained in:
committed by
Harley Acheson
parent
ecdeeca5b3
commit
efe75841d3
@@ -535,21 +535,19 @@ static int poselib_blend_modal(bContext *C, wmOperator *op, const wmEvent *event
|
||||
}
|
||||
|
||||
if (pbd->needs_redraw) {
|
||||
char status_string[UI_MAX_DRAW_STR];
|
||||
char slider_string[UI_MAX_DRAW_STR];
|
||||
char tab_string[50];
|
||||
|
||||
ED_slider_status_string_get(pbd->slider, slider_string, sizeof(slider_string));
|
||||
WorkspaceStatus status(C);
|
||||
|
||||
if (pbd->state == POSE_BLEND_BLENDING) {
|
||||
STRNCPY(tab_string, IFACE_("[Tab] - Show original pose"));
|
||||
status.item(IFACE_("Show Original Pose"), ICON_EVENT_TAB);
|
||||
}
|
||||
else {
|
||||
STRNCPY(tab_string, IFACE_("[Tab] - Show blended pose"));
|
||||
status.item(IFACE_("Show Blended Pose"), ICON_EVENT_TAB);
|
||||
}
|
||||
|
||||
SNPRINTF(status_string, IFACE_("%s | %s | [Ctrl] - Flip Pose"), tab_string, slider_string);
|
||||
ED_workspace_status_text(C, status_string);
|
||||
ED_slider_status_get(pbd->slider, status);
|
||||
|
||||
status.item_bool(IFACE_("Flip Pose"), pbd->is_flipped, ICON_EVENT_CTRL);
|
||||
|
||||
poselib_blend_apply(C, op);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
struct Main;
|
||||
struct bContext;
|
||||
class WorkspaceStatus;
|
||||
|
||||
namespace blender::bke::id {
|
||||
class IDRemapper;
|
||||
@@ -86,6 +87,8 @@ void ED_slider_status_string_get(const tSlider *slider,
|
||||
char *status_string,
|
||||
size_t size_of_status_string);
|
||||
|
||||
void ED_slider_status_get(const tSlider *slider, WorkspaceStatus &status);
|
||||
|
||||
float ED_slider_factor_get(const tSlider *slider);
|
||||
void ED_slider_factor_set(tSlider *slider, float factor);
|
||||
|
||||
|
||||
@@ -556,6 +556,22 @@ void ED_slider_status_string_get(const tSlider *slider,
|
||||
increments_str);
|
||||
}
|
||||
|
||||
void ED_slider_status_get(const tSlider *slider, WorkspaceStatus &status)
|
||||
{
|
||||
if (slider->allow_overshoot_lower || slider->allow_overshoot_upper) {
|
||||
status.item_bool(IFACE_("Overshoot"), slider->overshoot, ICON_EVENT_E);
|
||||
}
|
||||
else {
|
||||
status.item(IFACE_("Overshoot Disabled"), ICON_INFO);
|
||||
}
|
||||
|
||||
status.item_bool(IFACE_("Precision"), slider->precision, ICON_EVENT_SHIFT);
|
||||
|
||||
if (slider->allow_increments) {
|
||||
status.item_bool(IFACE_("Increments"), slider->increments, ICON_EVENT_CTRL);
|
||||
}
|
||||
}
|
||||
|
||||
void ED_slider_destroy(bContext *C, tSlider *slider)
|
||||
{
|
||||
/* Remove draw callback. */
|
||||
|
||||
Reference in New Issue
Block a user