MotionPanel.h

#pragma once


namespace Core
{
    ref class Model;
    ref class Motion;


    /// <summary>
    /// モーション パネル
    /// </summary>
    public ref class MotionPanel : public System::Windows::Forms::UserControl
    {
    // Construction --------------------------------------------------------
    public:
        MotionPanel(void);

    protected:
        ~MotionPanel();


    // Operation -----------------------------------------------------------
    public:
        void Initialize( Model^ model );

        System::Xml::XmlElement^ SaveSettings( System::Xml::XmlDocument^ document );
        void LoadSettings( System::Xml::XmlDocument^ document );

        bool SetMotionName();

    private:
        void InitializeComponent(void);
        void SetTimeByLastPoseTime();


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

        System::Void RewindButtonClick(System::Object^ sender, System::EventArgs^ e);
        System::Void FastforwardButtonClick(System::Object^ sender, System::EventArgs^ e);
        System::Void PlayButtonClick(System::Object^ sender, System::EventArgs^ e);
        System::Void TimerTick(System::Object^ sender, System::EventArgs^ e);

        void StopTimer( System::Object^ sender, System::EventArgs^ e );


    // Attribute ===========================================================
    private:
        Motion^ m_motion;       ///< モーション


    // Property ------------------------------------------------------------
    public:
        /// モーション
        property Motion^ Motion
        {
            Core::Motion^ get()
            {
                return m_motion;
            }
        }

        /// モーション名
        property System::String^ MotionName
        {
            System::String^ get();
        }


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


    private: System::Windows::Forms::Label^ m_timeLabel;
    private: System::Windows::Forms::TextBox^ m_timeTextBox;
    private: System::Windows::Forms::TrackBar^ m_timeTrackBar;
    private: System::Windows::Forms::Label^ m_unitLabel;
    private: System::Windows::Forms::Button^ m_appendButton;
    private: System::Windows::Forms::Button^ m_fastforwardButton;
    private: System::Windows::Forms::Button^ m_rewindButton;
    private: System::Windows::Forms::Button^ m_playButton;
    private: System::Windows::Forms::ImageList^ m_controlImageList;
    private: System::Windows::Forms::CheckBox^ m_repeatCheckBox;
    private: System::Windows::Forms::Timer^ m_timer;

    private: System::ComponentModel::IContainer^ components;

    };
}