#pragma once // using namespace std; #include "../media/xuiscene_debug_item_editor.h" #include "XUI_Ctrl_CraftIngredientSlot.h" #include "XUI_Ctrl_4JEdit.h" #include "../../Minecraft.World/Items/ItemInstance.h" class CScene_DebugItemEditor : public CXuiSceneImpl { #ifdef _DEBUG_MENUS_ENABLED public: typedef struct _ItemEditorInput { int iPad; Slot* slot; AbstractContainerMenu* menu; } ItemEditorInput; private: int m_iPad; std::shared_ptr m_item; Slot* m_slot; AbstractContainerMenu* m_menu; CXuiCtrlCraftIngredientSlot* m_icon; CXuiControl m_generatedXml, m_itemName; CXuiCtrl4JEdit m_itemId, m_itemAuxValue, m_itemCount, m_item4JData; protected: // Message map. Here we tie messages to message handlers. XUI_BEGIN_MSG_MAP() XUI_ON_XM_INIT(OnInit) XUI_ON_XM_KEYDOWN(OnKeyDown) XUI_ON_XM_NOTIFY_VALUE_CHANGED(OnNotifyValueChanged) XUI_END_MSG_MAP() // Control mapping to objects BEGIN_CONTROL_MAP() MAP_CONTROL(IDC_itemId, m_itemId) MAP_CONTROL(IDC_itemAuxValue, m_itemAuxValue) MAP_CONTROL(IDC_itemCount, m_itemCount) MAP_CONTROL(IDC_item4JData, m_item4JData) MAP_OVERRIDE(IDC_icon, m_icon) MAP_CONTROL(IDC_ruleXml, m_generatedXml) MAP_CONTROL(IDC_itemName, m_itemName) END_CONTROL_MAP() HRESULT OnInit(XUIMessageInit* pInitData, BOOL& bHandled); HRESULT OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled); HRESULT OnNotifyValueChanged(HXUIOBJ hObjSource, XUINotifyValueChanged* pNotifyValueChangedData, BOOL& bHandled); public: // Define the class. The class name must match the ClassOverride property // set for the scene in the UI Authoring tool. XUI_IMPLEMENT_CLASS(CScene_DebugItemEditor, L"CScene_DebugItemEditor", XUI_CLASS_SCENE) #endif };