ParameterPanel.h

#pragma once


namespace Core
{
    ref class Link;
    ref class Joint;

    ref class ExtendedNumericUpDown;


    /// <summary>
    /// 属性パネル
    /// </summary>
    public ref class ParameterPanel : public WeifenLuo::WinFormsUI::Docking::DockContent
    {
    // Construction --------------------------------------------------------
    public:
        ParameterPanel( void );

    protected:
        ~ParameterPanel();


    // Operation -----------------------------------------------------------
    public:
        void SetTarget( Link^ link );

    protected:
        virtual void OnLoad( System::EventArgs^ e ) override;

    private:
        void InitializeComponent(void);
        void SetInputEnable( System::Object^ sender, System::EventArgs^ e );

        void SetLink( Link^ link );
        void SetJoint( Joint^ joint );

        double GetRadian( System::Windows::Forms::NumericUpDown^ control );


    // Event ---------------------------------------------------------------
    public:
        event System::EventHandler^ JointAngleChanged;   ///< 関節角度の変更イベント


    // Event Handler -------------------------------------------------------
    private:
        System::Void PositionOrPostureChanged( System::Object^ sender, System::EventArgs^ e );
        System::Void AngleChanged( System::Object^ sender, System::EventArgs^ e );

        void SetPosition( System::Object^ sender, System::EventArgs^ e );
        void SetPosture( System::Object^ sender, System::EventArgs^ e );
        void SetAngle( System::Object^ sender, System::EventArgs^ e );


    // Attribute ===========================================================
    private:
        Link^ m_link;     ///< リンク


        //
        // 以降は デザイナによって自動生成されたコード
        //


    private: System::Windows::Forms::GroupBox^ m_postureGroupBox;
    private: ExtendedNumericUpDown^ m_yawSpinBox;
    private: ExtendedNumericUpDown^ m_pitchSpinBox;
    private: ExtendedNumericUpDown^ m_rollSpinBox;
    private: System::Windows::Forms::Label^ m_yawLabel;
    private: System::Windows::Forms::Label^ m_pitchLabel;
    private: System::Windows::Forms::Label^ m_rollLabel;
    private: System::Windows::Forms::GroupBox^ m_positionGroupBox;
    private: ExtendedNumericUpDown^ m_zSpinBox;
    private: ExtendedNumericUpDown^ m_ySpinBox;
    private: ExtendedNumericUpDown^ m_xSpinBox;
    private: System::Windows::Forms::Label^ m_zLabel;
    private: System::Windows::Forms::Label^ m_yLabel;
    private: System::Windows::Forms::Label^ m_xLabel;
    private: System::Windows::Forms::Label^ m_zUnitLabel;
    private: System::Windows::Forms::Label^ m_yUnitLabel;
    private: System::Windows::Forms::Label^ m_xUnitLabel;
    private: System::Windows::Forms::Label^ m_yawUnitLabel;
    private: System::Windows::Forms::Label^ m_pitchUnitLabel;
    private: System::Windows::Forms::Label^ m_rollUnitLabel;
    private: System::Windows::Forms::Label^ m_unitLabel;
    private: System::Windows::Forms::Label^ m_nameLabel;
    private: ExtendedNumericUpDown^ m_angleSpinBox;
    private: System::Windows::Forms::Label^ m_angleLabel;

    private: System::ComponentModel::Container ^components;

    };
}