Port ActionBanner
This commit is contained in:
parent
3d86a76db9
commit
f9ad9cc794
|
@ -11,7 +11,17 @@
|
||||||
|
|
||||||
#include "action_banner.h"
|
#include "action_banner.h"
|
||||||
|
|
||||||
|
#ifdef LIMBOAI_MODULE
|
||||||
#include "scene/gui/button.h"
|
#include "scene/gui/button.h"
|
||||||
|
#endif // LIMBOAI_MODULE
|
||||||
|
|
||||||
|
#ifdef LIMBOAI_GDEXTENSION
|
||||||
|
#include "../util/limbo_def.h"
|
||||||
|
#include "../util/limbo_string_names.h"
|
||||||
|
|
||||||
|
#include <godot_cpp/classes/button.hpp>
|
||||||
|
|
||||||
|
#endif // LIMBOAI_GDEXTENSION
|
||||||
|
|
||||||
void ActionBanner::set_text(const String &p_text) {
|
void ActionBanner::set_text(const String &p_text) {
|
||||||
message->set_text(p_text);
|
message->set_text(p_text);
|
||||||
|
@ -28,14 +38,20 @@ void ActionBanner::close() {
|
||||||
void ActionBanner::add_action(const String &p_name, const Callable &p_action, bool p_auto_close) {
|
void ActionBanner::add_action(const String &p_name, const Callable &p_action, bool p_auto_close) {
|
||||||
Button *action_btn = memnew(Button);
|
Button *action_btn = memnew(Button);
|
||||||
action_btn->set_text(p_name);
|
action_btn->set_text(p_name);
|
||||||
action_btn->connect(SNAME("pressed"), callable_mp(this, &ActionBanner::_execute_action).bind(p_action, p_auto_close));
|
action_btn->connect(LSNAME(pressed), callable_mp(this, &ActionBanner::_execute_action).bind(p_action, p_auto_close));
|
||||||
hbox->add_child(action_btn);
|
hbox->add_child(action_btn);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActionBanner::_execute_action(const Callable &p_action, bool p_auto_close) {
|
void ActionBanner::_execute_action(const Callable &p_action, bool p_auto_close) {
|
||||||
|
#ifdef LIMBOAI_MODULE
|
||||||
Callable::CallError ce;
|
Callable::CallError ce;
|
||||||
Variant ret;
|
Variant ret;
|
||||||
p_action.callp(nullptr, 0, ret, ce);
|
p_action.callp(nullptr, 0, ret, ce);
|
||||||
|
#endif // LIMBOAI_MODULE
|
||||||
|
|
||||||
|
#ifdef LIMBOAI_GDEXTENSION
|
||||||
|
p_action.call();
|
||||||
|
#endif // LIMBOAI_GDEXTENSION
|
||||||
|
|
||||||
if (p_auto_close) {
|
if (p_auto_close) {
|
||||||
queue_free();
|
queue_free();
|
||||||
|
@ -45,7 +61,7 @@ void ActionBanner::_execute_action(const Callable &p_action, bool p_auto_close)
|
||||||
void ActionBanner::_notification(int p_what) {
|
void ActionBanner::_notification(int p_what) {
|
||||||
switch (p_what) {
|
switch (p_what) {
|
||||||
case NOTIFICATION_THEME_CHANGED: {
|
case NOTIFICATION_THEME_CHANGED: {
|
||||||
icon->set_texture(get_theme_icon(SNAME("StatusWarning"), SNAME("EditorIcons")));
|
icon->set_texture(get_theme_icon(LSNAME(StatusWarning), LSNAME(EditorIcons)));
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,11 +13,21 @@
|
||||||
#ifndef ACTION_BANNER_H
|
#ifndef ACTION_BANNER_H
|
||||||
#define ACTION_BANNER_H
|
#define ACTION_BANNER_H
|
||||||
|
|
||||||
#include "scene/gui/margin_container.h"
|
#ifdef LIMBOAI_MODULE
|
||||||
|
|
||||||
#include "scene/gui/box_container.h"
|
#include "scene/gui/box_container.h"
|
||||||
#include "scene/gui/label.h"
|
#include "scene/gui/label.h"
|
||||||
|
#include "scene/gui/margin_container.h"
|
||||||
#include "scene/gui/texture_rect.h"
|
#include "scene/gui/texture_rect.h"
|
||||||
|
#endif // LIMBOAI_MODULE
|
||||||
|
|
||||||
|
#ifdef LIMBOAI_GDEXTENSION
|
||||||
|
#include <godot_cpp/classes/h_box_container.hpp>
|
||||||
|
#include <godot_cpp/classes/label.hpp>
|
||||||
|
#include <godot_cpp/classes/margin_container.hpp>
|
||||||
|
#include <godot_cpp/classes/texture_rect.hpp>
|
||||||
|
|
||||||
|
using namespace godot;
|
||||||
|
#endif // LIMBOAI_GDEXTENSION
|
||||||
|
|
||||||
class ActionBanner : public MarginContainer {
|
class ActionBanner : public MarginContainer {
|
||||||
GDCLASS(ActionBanner, MarginContainer);
|
GDCLASS(ActionBanner, MarginContainer);
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
* =============================================================================
|
* =============================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef LIMBOAI_MODULE
|
||||||
|
|
||||||
#include "editor_property_bb_param.h"
|
#include "editor_property_bb_param.h"
|
||||||
|
|
||||||
#include "core/variant/variant.h"
|
#include "core/variant/variant.h"
|
||||||
|
@ -345,3 +347,5 @@ bool EditorInspectorPluginBBParam::parse_property(Object *p_object, const Varian
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // LIMBOAI_MODULE
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
#ifndef EDITOR_PROPERTY_BB_PARAM_H
|
#ifndef EDITOR_PROPERTY_BB_PARAM_H
|
||||||
#define EDITOR_PROPERTY_BB_PARAM_H
|
#define EDITOR_PROPERTY_BB_PARAM_H
|
||||||
|
|
||||||
|
#ifdef LIMBOAI_MODULE
|
||||||
|
|
||||||
#include "editor/editor_inspector.h"
|
#include "editor/editor_inspector.h"
|
||||||
|
|
||||||
#include "modules/limboai/blackboard/bb_param/bb_param.h"
|
#include "modules/limboai/blackboard/bb_param/bb_param.h"
|
||||||
|
@ -68,4 +70,6 @@ public:
|
||||||
virtual bool parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const BitField<PropertyUsageFlags> p_usage, const bool p_wide = false) override;
|
virtual bool parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const BitField<PropertyUsageFlags> p_usage, const bool p_wide = false) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif // LIMBOAI_MODULE
|
||||||
|
|
||||||
#endif // EDITOR_PROPERTY_BB_PARAM_H
|
#endif // EDITOR_PROPERTY_BB_PARAM_H
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#ifdef LIMBOAI_GDEXTENSION
|
#ifdef LIMBOAI_GDEXTENSION
|
||||||
|
|
||||||
#include <godot_cpp/classes/editor_settings.hpp>
|
#include <godot_cpp/classes/editor_settings.hpp>
|
||||||
|
#include <godot_cpp/classes/translation_server.hpp>
|
||||||
|
|
||||||
using namespace godot;
|
using namespace godot;
|
||||||
|
|
||||||
|
@ -24,4 +25,12 @@ Variant _EDITOR_GET(const String &p_setting) {
|
||||||
return es->get(p_setting);
|
return es->get(p_setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
String TTR(const String &p_text, const String &p_context) {
|
||||||
|
if (TranslationServer::get_singleton()) {
|
||||||
|
return TranslationServer::get_singleton()->translate(p_text, p_context);
|
||||||
|
}
|
||||||
|
|
||||||
|
return p_text;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // LIMBOAI_GDEXTENSION
|
||||||
|
|
|
@ -9,6 +9,9 @@
|
||||||
* =============================================================================
|
* =============================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef LIMBO_DEF_H
|
||||||
|
#define LIMBO_DEF_H
|
||||||
|
|
||||||
#ifdef LIMBOAI_MODULE
|
#ifdef LIMBOAI_MODULE
|
||||||
|
|
||||||
#include "core/string/print_string.h"
|
#include "core/string/print_string.h"
|
||||||
|
@ -46,4 +49,8 @@ Variant _EDITOR_GET(const String &p_setting);
|
||||||
|
|
||||||
#define EDSCALE ((int)EDITOR_GET("interface/editor/display_scale"))
|
#define EDSCALE ((int)EDITOR_GET("interface/editor/display_scale"))
|
||||||
|
|
||||||
|
String TTR(const String &p_text, const String &p_context = "");
|
||||||
|
|
||||||
#endif // LIMBOAI_GDEXTENSION
|
#endif // LIMBOAI_GDEXTENSION
|
||||||
|
|
||||||
|
#endif // LIMBO_DEF_H
|
||||||
|
|
|
@ -51,6 +51,8 @@ LimboStringNames::LimboStringNames() {
|
||||||
bold = SN("bold");
|
bold = SN("bold");
|
||||||
EditorFonts = SN("EditorFonts");
|
EditorFonts = SN("EditorFonts");
|
||||||
item_collapsed = SN("item_collapsed");
|
item_collapsed = SN("item_collapsed");
|
||||||
|
pressed = SN("pressed");
|
||||||
|
StatusWarning = SN("StatusWarning");
|
||||||
|
|
||||||
EVENT_FINISHED = "finished";
|
EVENT_FINISHED = "finished";
|
||||||
repeat_forever.parse_utf8("Repeat ∞");
|
repeat_forever.parse_utf8("Repeat ∞");
|
||||||
|
|
|
@ -70,6 +70,8 @@ public:
|
||||||
StringName bold;
|
StringName bold;
|
||||||
StringName EditorFonts;
|
StringName EditorFonts;
|
||||||
StringName item_collapsed;
|
StringName item_collapsed;
|
||||||
|
StringName pressed;
|
||||||
|
StringName StatusWarning;
|
||||||
|
|
||||||
String EVENT_FINISHED;
|
String EVENT_FINISHED;
|
||||||
String repeat_forever;
|
String repeat_forever;
|
||||||
|
|
|
@ -105,6 +105,8 @@ Ref<Texture2D> LimboUtility::get_task_icon(String p_class_or_script_path) const
|
||||||
return theme->get_icon(SNAME("Resource"), SNAME("EditorIcons"));
|
return theme->get_icon(SNAME("Resource"), SNAME("EditorIcons"));
|
||||||
#endif // TOOLS_ENABLED
|
#endif // TOOLS_ENABLED
|
||||||
|
|
||||||
|
// TODO: GDExtension needs the icons too.
|
||||||
|
|
||||||
// * Class icons are not available at runtime as they are part of the editor theme.
|
// * Class icons are not available at runtime as they are part of the editor theme.
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue