Added increment_pressed and decrement_pressed icons to scrollbars
(cherry picked from commit e27ab2708f
)
This commit is contained in:
parent
8a6bc045ea
commit
f53294f874
6 changed files with 47 additions and 2 deletions
|
@ -19,6 +19,9 @@
|
||||||
<theme_item name="decrement_highlight" data_type="icon" type="Texture">
|
<theme_item name="decrement_highlight" data_type="icon" type="Texture">
|
||||||
Displayed when the mouse cursor hovers over the decrement button.
|
Displayed when the mouse cursor hovers over the decrement button.
|
||||||
</theme_item>
|
</theme_item>
|
||||||
|
<theme_item name="decrement_pressed" data_type="icon" type="Texture">
|
||||||
|
Displayed when the decrement button is being pressed.
|
||||||
|
</theme_item>
|
||||||
<theme_item name="grabber" data_type="style" type="StyleBox">
|
<theme_item name="grabber" data_type="style" type="StyleBox">
|
||||||
Used as texture for the grabber, the draggable element representing current scroll.
|
Used as texture for the grabber, the draggable element representing current scroll.
|
||||||
</theme_item>
|
</theme_item>
|
||||||
|
@ -34,6 +37,9 @@
|
||||||
<theme_item name="increment_highlight" data_type="icon" type="Texture">
|
<theme_item name="increment_highlight" data_type="icon" type="Texture">
|
||||||
Displayed when the mouse cursor hovers over the increment button.
|
Displayed when the mouse cursor hovers over the increment button.
|
||||||
</theme_item>
|
</theme_item>
|
||||||
|
<theme_item name="increment_pressed" data_type="icon" type="Texture">
|
||||||
|
Displayed when the increment button is being pressed.
|
||||||
|
</theme_item>
|
||||||
<theme_item name="scroll" data_type="style" type="StyleBox">
|
<theme_item name="scroll" data_type="style" type="StyleBox">
|
||||||
Used as background of this [ScrollBar].
|
Used as background of this [ScrollBar].
|
||||||
</theme_item>
|
</theme_item>
|
||||||
|
|
|
@ -23,6 +23,9 @@
|
||||||
<theme_item name="decrement_highlight" data_type="icon" type="Texture">
|
<theme_item name="decrement_highlight" data_type="icon" type="Texture">
|
||||||
Displayed when the mouse cursor hovers over the decrement button.
|
Displayed when the mouse cursor hovers over the decrement button.
|
||||||
</theme_item>
|
</theme_item>
|
||||||
|
<theme_item name="decrement_pressed" data_type="icon" type="Texture">
|
||||||
|
Displayed when the decrement button is being pressed.
|
||||||
|
</theme_item>
|
||||||
<theme_item name="grabber" data_type="style" type="StyleBox">
|
<theme_item name="grabber" data_type="style" type="StyleBox">
|
||||||
Used as texture for the grabber, the draggable element representing current scroll.
|
Used as texture for the grabber, the draggable element representing current scroll.
|
||||||
</theme_item>
|
</theme_item>
|
||||||
|
@ -38,6 +41,9 @@
|
||||||
<theme_item name="increment_highlight" data_type="icon" type="Texture">
|
<theme_item name="increment_highlight" data_type="icon" type="Texture">
|
||||||
Displayed when the mouse cursor hovers over the increment button.
|
Displayed when the mouse cursor hovers over the increment button.
|
||||||
</theme_item>
|
</theme_item>
|
||||||
|
<theme_item name="increment_pressed" data_type="icon" type="Texture">
|
||||||
|
Displayed when the increment button is being pressed.
|
||||||
|
</theme_item>
|
||||||
<theme_item name="scroll" data_type="style" type="StyleBox">
|
<theme_item name="scroll" data_type="style" type="StyleBox">
|
||||||
Used as background of this [ScrollBar].
|
Used as background of this [ScrollBar].
|
||||||
</theme_item>
|
</theme_item>
|
||||||
|
|
|
@ -1037,8 +1037,10 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
||||||
|
|
||||||
theme->set_icon("increment", "HScrollBar", empty_icon);
|
theme->set_icon("increment", "HScrollBar", empty_icon);
|
||||||
theme->set_icon("increment_highlight", "HScrollBar", empty_icon);
|
theme->set_icon("increment_highlight", "HScrollBar", empty_icon);
|
||||||
|
theme->set_icon("increment_pressed", "HScrollBar", empty_icon);
|
||||||
theme->set_icon("decrement", "HScrollBar", empty_icon);
|
theme->set_icon("decrement", "HScrollBar", empty_icon);
|
||||||
theme->set_icon("decrement_highlight", "HScrollBar", empty_icon);
|
theme->set_icon("decrement_highlight", "HScrollBar", empty_icon);
|
||||||
|
theme->set_icon("decrement_pressed", "HScrollBar", empty_icon);
|
||||||
|
|
||||||
// VScrollBar
|
// VScrollBar
|
||||||
theme->set_stylebox("scroll", "VScrollBar", make_stylebox(theme->get_icon("GuiScrollBg", "EditorIcons"), 5, 5, 5, 5, 0, 0, 0, 0));
|
theme->set_stylebox("scroll", "VScrollBar", make_stylebox(theme->get_icon("GuiScrollBg", "EditorIcons"), 5, 5, 5, 5, 0, 0, 0, 0));
|
||||||
|
@ -1049,8 +1051,10 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
||||||
|
|
||||||
theme->set_icon("increment", "VScrollBar", empty_icon);
|
theme->set_icon("increment", "VScrollBar", empty_icon);
|
||||||
theme->set_icon("increment_highlight", "VScrollBar", empty_icon);
|
theme->set_icon("increment_highlight", "VScrollBar", empty_icon);
|
||||||
|
theme->set_icon("increment_pressed", "VScrollBar", empty_icon);
|
||||||
theme->set_icon("decrement", "VScrollBar", empty_icon);
|
theme->set_icon("decrement", "VScrollBar", empty_icon);
|
||||||
theme->set_icon("decrement_highlight", "VScrollBar", empty_icon);
|
theme->set_icon("decrement_highlight", "VScrollBar", empty_icon);
|
||||||
|
theme->set_icon("decrement_pressed", "VScrollBar", empty_icon);
|
||||||
|
|
||||||
// HSlider
|
// HSlider
|
||||||
theme->set_icon("grabber_highlight", "HSlider", theme->get_icon("GuiSliderGrabberHl", "EditorIcons"));
|
theme->set_icon("grabber_highlight", "HSlider", theme->get_icon("GuiSliderGrabberHl", "EditorIcons"));
|
||||||
|
|
|
@ -79,12 +79,16 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) {
|
||||||
double total = orientation == VERTICAL ? get_size().height : get_size().width;
|
double total = orientation == VERTICAL ? get_size().height : get_size().width;
|
||||||
|
|
||||||
if (ofs < decr_size) {
|
if (ofs < decr_size) {
|
||||||
|
decr_active = true;
|
||||||
set_value(get_value() - (custom_step >= 0 ? custom_step : get_step()));
|
set_value(get_value() - (custom_step >= 0 ? custom_step : get_step()));
|
||||||
|
update();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ofs > total - incr_size) {
|
if (ofs > total - incr_size) {
|
||||||
|
incr_active = true;
|
||||||
set_value(get_value() + (custom_step >= 0 ? custom_step : get_step()));
|
set_value(get_value() + (custom_step >= 0 ? custom_step : get_step()));
|
||||||
|
update();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,6 +133,8 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
incr_active = false;
|
||||||
|
decr_active = false;
|
||||||
drag.active = false;
|
drag.active = false;
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
@ -214,8 +220,24 @@ void ScrollBar::_notification(int p_what) {
|
||||||
if (p_what == NOTIFICATION_DRAW) {
|
if (p_what == NOTIFICATION_DRAW) {
|
||||||
RID ci = get_canvas_item();
|
RID ci = get_canvas_item();
|
||||||
|
|
||||||
Ref<Texture> decr = highlight == HIGHLIGHT_DECR ? get_icon("decrement_highlight") : get_icon("decrement");
|
Ref<Texture> decr, incr;
|
||||||
Ref<Texture> incr = highlight == HIGHLIGHT_INCR ? get_icon("increment_highlight") : get_icon("increment");
|
|
||||||
|
if (decr_active) {
|
||||||
|
decr = get_icon("decrement_pressed");
|
||||||
|
} else if (highlight == HIGHLIGHT_DECR) {
|
||||||
|
decr = get_icon("decrement_highlight");
|
||||||
|
} else {
|
||||||
|
decr = get_icon("decrement");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (incr_active) {
|
||||||
|
incr = get_icon("increment_pressed");
|
||||||
|
} else if (highlight == HIGHLIGHT_INCR) {
|
||||||
|
incr = get_icon("increment_highlight");
|
||||||
|
} else {
|
||||||
|
incr = get_icon("increment");
|
||||||
|
}
|
||||||
|
|
||||||
Ref<StyleBox> bg = has_focus() ? get_stylebox("scroll_focus") : get_stylebox("scroll");
|
Ref<StyleBox> bg = has_focus() ? get_stylebox("scroll_focus") : get_stylebox("scroll");
|
||||||
|
|
||||||
Ref<StyleBox> grabber;
|
Ref<StyleBox> grabber;
|
||||||
|
|
|
@ -51,6 +51,9 @@ class ScrollBar : public Range {
|
||||||
|
|
||||||
HighlightStatus highlight;
|
HighlightStatus highlight;
|
||||||
|
|
||||||
|
bool incr_active = false;
|
||||||
|
bool decr_active = false;
|
||||||
|
|
||||||
struct Drag {
|
struct Drag {
|
||||||
bool active;
|
bool active;
|
||||||
float pos_at_click;
|
float pos_at_click;
|
||||||
|
|
|
@ -502,8 +502,10 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
|
||||||
|
|
||||||
theme->set_icon("increment", "HScrollBar", empty_icon);
|
theme->set_icon("increment", "HScrollBar", empty_icon);
|
||||||
theme->set_icon("increment_highlight", "HScrollBar", empty_icon);
|
theme->set_icon("increment_highlight", "HScrollBar", empty_icon);
|
||||||
|
theme->set_icon("increment_pressed", "HScrollBar", empty_icon);
|
||||||
theme->set_icon("decrement", "HScrollBar", empty_icon);
|
theme->set_icon("decrement", "HScrollBar", empty_icon);
|
||||||
theme->set_icon("decrement_highlight", "HScrollBar", empty_icon);
|
theme->set_icon("decrement_highlight", "HScrollBar", empty_icon);
|
||||||
|
theme->set_icon("decrement_pressed", "HScrollBar", empty_icon);
|
||||||
|
|
||||||
// VScrollBar
|
// VScrollBar
|
||||||
|
|
||||||
|
@ -515,8 +517,10 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
|
||||||
|
|
||||||
theme->set_icon("increment", "VScrollBar", empty_icon);
|
theme->set_icon("increment", "VScrollBar", empty_icon);
|
||||||
theme->set_icon("increment_highlight", "VScrollBar", empty_icon);
|
theme->set_icon("increment_highlight", "VScrollBar", empty_icon);
|
||||||
|
theme->set_icon("increment_pressed", "VScrollBar", empty_icon);
|
||||||
theme->set_icon("decrement", "VScrollBar", empty_icon);
|
theme->set_icon("decrement", "VScrollBar", empty_icon);
|
||||||
theme->set_icon("decrement_highlight", "VScrollBar", empty_icon);
|
theme->set_icon("decrement_highlight", "VScrollBar", empty_icon);
|
||||||
|
theme->set_icon("decrement_pressed", "VScrollBar", empty_icon);
|
||||||
|
|
||||||
// HSlider
|
// HSlider
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue