summaryrefslogtreecommitdiff
path: root/editor/plugins/style_box_editor_plugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/plugins/style_box_editor_plugin.cpp')
-rw-r--r--editor/plugins/style_box_editor_plugin.cpp87
1 files changed, 34 insertions, 53 deletions
diff --git a/editor/plugins/style_box_editor_plugin.cpp b/editor/plugins/style_box_editor_plugin.cpp
index f4faab69ed..f6d98cb4c7 100644
--- a/editor/plugins/style_box_editor_plugin.cpp
+++ b/editor/plugins/style_box_editor_plugin.cpp
@@ -30,7 +30,26 @@
#include "style_box_editor_plugin.h"
-void StyleBoxEditor::edit(const Ref<StyleBox> &p_stylebox) {
+bool EditorInspectorPluginStyleBox::can_handle(Object *p_object) {
+
+ return Object::cast_to<StyleBox>(p_object) != NULL;
+}
+
+void EditorInspectorPluginStyleBox::parse_begin(Object *p_object) {
+
+ Ref<StyleBox> sb = Ref<StyleBox>(Object::cast_to<StyleBox>(p_object));
+
+ StyleBoxPreview *preview = memnew(StyleBoxPreview);
+ preview->edit(sb);
+ add_custom_control(preview);
+}
+bool EditorInspectorPluginStyleBox::parse_property(Object *p_object, Variant::Type p_type, const String &p_path, PropertyHint p_hint, const String &p_hint_text, int p_usage) {
+ return false; //do not want
+}
+void EditorInspectorPluginStyleBox::parse_end() {
+}
+
+void StyleBoxPreview::edit(const Ref<StyleBox> &p_stylebox) {
if (stylebox.is_valid())
stylebox->disconnect("changed", this, "_sb_changed");
@@ -39,71 +58,33 @@ void StyleBoxEditor::edit(const Ref<StyleBox> &p_stylebox) {
preview->add_style_override("panel", stylebox);
stylebox->connect("changed", this, "_sb_changed");
}
+ _sb_changed();
}
-void StyleBoxEditor::_sb_changed() {
+void StyleBoxPreview::_sb_changed() {
preview->update();
+ if (stylebox.is_valid()) {
+ Size2 ms = stylebox->get_minimum_size() * 4 / 3;
+ ms.height = MAX(ms.height, 150 * EDSCALE);
+ preview->set_custom_minimum_size(ms);
+ }
}
-void StyleBoxEditor::_bind_methods() {
+void StyleBoxPreview::_bind_methods() {
- ClassDB::bind_method("_sb_changed", &StyleBoxEditor::_sb_changed);
- //ClassDB::bind_method("_import",&StyleBoxEditor::_import);
- //ClassDB::bind_method("_import_accept",&StyleBoxEditor::_import_accept);
- //ClassDB::bind_method("_preview_text_changed",&StyleBoxEditor::_preview_text_changed);
+ ClassDB::bind_method("_sb_changed", &StyleBoxPreview::_sb_changed);
}
-StyleBoxEditor::StyleBoxEditor() {
-
- panel = memnew(Panel);
- add_child(panel);
- panel->set_anchors_and_margins_preset(Control::PRESET_WIDE);
-
- Label *l = memnew(Label);
- l->set_text(TTR("StyleBox Preview:"));
- l->set_position(Point2(5, 5));
- panel->add_child(l);
+StyleBoxPreview::StyleBoxPreview() {
preview = memnew(Panel);
- panel->add_child(preview);
- preview->set_position(Point2(50, 50));
- preview->set_size(Size2(200, 100));
-}
-
-void StyleBoxEditorPlugin::edit(Object *p_node) {
-
- if (Object::cast_to<StyleBox>(p_node)) {
- stylebox_editor->edit(Object::cast_to<StyleBox>(p_node));
- stylebox_editor->show();
- } else
- stylebox_editor->hide();
-}
-
-bool StyleBoxEditorPlugin::handles(Object *p_node) const {
-
- return p_node->is_class("StyleBox");
-}
-
-void StyleBoxEditorPlugin::make_visible(bool p_visible) {
-
- if (p_visible) {
- button->show();
- EditorNode::get_singleton()->make_bottom_panel_item_visible(stylebox_editor);
-
- } else {
- if (stylebox_editor->is_visible_in_tree())
- EditorNode::get_singleton()->hide_bottom_panel();
- button->hide();
- }
+ add_margin_child(TTR("Preview:"), preview);
}
StyleBoxEditorPlugin::StyleBoxEditorPlugin(EditorNode *p_node) {
- stylebox_editor = memnew(StyleBoxEditor);
- stylebox_editor->set_custom_minimum_size(Size2(0, 250));
-
- //p_node->get_viewport()->add_child(stylebox_editor);
- button = p_node->add_bottom_panel_item(TTR("StyleBox"), stylebox_editor);
- button->hide();
+ Ref<EditorInspectorPluginStyleBox> inspector_plugin;
+ inspector_plugin.instance();
+ add_inspector_plugin(inspector_plugin);
}