/** *@brief メインウインドウのコンストラクタ *@param argc コマンドライン引数の数 *@param argv コマンドライン引数 *@param parent 親ウィジェット */ MainWindow::MainWindow(int argc, char** argv, QWidget *parent) : QMainWindow(parent) { tc = QTextCodec::codecForLocale(); QHBoxLayout *layout = new QHBoxLayout; mOgreWidget = new OgreWidget() ; layout->addWidget(mOgreWidget); tabWidget = new QTabWidget; mBodySetWidget = new BodySetWidget(); tabWidget->addTab(mBodySetWidget, tc->toUnicode("ボディ")); mBornSetWidget = new BornSetWidget(); tabWidget->addTab(mBornSetWidget, tc->toUnicode("ボーン")); mCameraSetWidget = new CameraSetWidget(); tabWidget->addTab(mCameraSetWidget, tc->toUnicode("カメラ")); mGUISetWidget = new GUISetWidget(); tabWidget->addTab(mGUISetWidget, tc->toUnicode("CEGUI")); mGUITextSetWidget = new GUITextSetWidget(); tabWidget->addTab(mGUITextSetWidget, tc->toUnicode("CEGUIのテキスト")); mImageSetWidget = new ImageSetWidget(); tabWidget->addTab(mImageSetWidget, tc->toUnicode("CEGUIの画像")); mParticleSetWidget = new ParticleSetWidget(); tabWidget->addTab(mParticleSetWidget, tc->toUnicode("パーティクル")); mSubWindowSetWidget = new SubWindowSetWidget(); tabWidget->addTab(mSubWindowSetWidget, tc->toUnicode("画面分割")); mAnimationSetWidget = new AnimationSetWidget(); tabWidget->addTab(mAnimationSetWidget, tc->toUnicode("アニメーション")); mLightSetWidget = new LightSetWidget(); tabWidget->addTab(mLightSetWidget, tc->toUnicode("光源")); mNodeSetWidget = new NodeSetWidget(); tabWidget->addTab(mNodeSetWidget, tc->toUnicode("ノード")); mSimulationSetWidget = new SimulationSetWidget(); tabWidget->addTab(mSimulationSetWidget, tc->toUnicode("物理シミュレーション(設定)")); mSimBodySetWidget = new SimBodySetWidget(); tabWidget->addTab(mSimBodySetWidget, tc->toUnicode("物理シミュレーション(ボディ)")); mSimJointSetWidget = new SimJointSetWidget(); tabWidget->addTab(mSimJointSetWidget, tc->toUnicode("物理シミュレーション(ジョイント)")); mOtherSetWidget = new OtherSetWidget(); tabWidget->addTab(mOtherSetWidget, tc->toUnicode("その他")); connect(mBodySetWidget, SIGNAL(UpdateBody()), mBornSetWidget, SLOT(UpdateBody())); connect(mGUISetWidget, SIGNAL(UpdateGUI()), mGUITextSetWidget, SLOT(UpdateGUI())); connect(mGUISetWidget, SIGNAL(UpdateGUI()), mImageSetWidget, SLOT(UpdateGUI())); connect(this, SIGNAL(UpdateList()), mBodySetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mCameraSetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mGUISetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mGUITextSetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mImageSetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mParticleSetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mSubWindowSetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mAnimationSetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mLightSetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mNodeSetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mSimulationSetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mSimBodySetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mSimJointSetWidget, SLOT(UpdateList())); connect(this, SIGNAL(UpdateList()), mOtherSetWidget, SLOT(UpdateList())); connect(mBodySetWidget, SIGNAL(UpdateBody()), mNodeSetWidget, SLOT(UpdateList())); connect(mParticleSetWidget, SIGNAL(UpdateParticle()), mNodeSetWidget, SLOT(UpdateList())); connect(mAnimationSetWidget, SIGNAL(UpdateAnimation()), mNodeSetWidget, SLOT(UpdateList())); connect(mLightSetWidget, SIGNAL(UpdateLight()), mNodeSetWidget, SLOT(UpdateList())); connect(mSimBodySetWidget, SIGNAL(UpdateODEBody()), mNodeSetWidget, SLOT(UpdateList())); connect(mSimJointSetWidget, SIGNAL(UpdateODEJoint()), mNodeSetWidget, SLOT(UpdateList())); connect(mSimBodySetWidget, SIGNAL(UpdateODEBody()), mSimJointSetWidget, SLOT(UpdateList())); connect(mOgreWidget, SIGNAL(mouseMoveSignal(QMouseEvent*, int, int)), mCameraSetWidget, SLOT(mouseMoveSlot(QMouseEvent*, int, int))); connect(mOgreWidget, SIGNAL(mousePressSignal(QMouseEvent*)), mCameraSetWidget, SLOT(mousePressSlot(QMouseEvent*))); connect(mOgreWidget, SIGNAL(mouseReleaseSignal(QMouseEvent*)), mCameraSetWidget, SLOT(mouseReleaseSlot(QMouseEvent*))); connect(mOgreWidget, SIGNAL(mouseMoveSignal(QMouseEvent*, int, int)), mBodySetWidget, SLOT(mouseMoveSlot(QMouseEvent*, int, int))); connect(mOgreWidget, SIGNAL(mousePressSignal(QMouseEvent*)), mBodySetWidget, SLOT(mousePressSlot(QMouseEvent*))); connect(mOgreWidget, SIGNAL(mouseReleaseSignal(QMouseEvent*)), mBodySetWidget, SLOT(mouseReleaseSlot(QMouseEvent*))); QVBoxLayout *alayout = new QVBoxLayout; alayout->addWidget(tabWidget); QWidget *awidget = new QWidget; awidget->setLayout(alayout); tabWidget->setMinimumSize(250, 768); tabWidget->setMaximumWidth(250); QScrollArea *area = new QScrollArea(); area->setWidget(awidget); area->setMaximumSize(300, 708); area->setMinimumSize(300, 708); layout->addWidget(area); QWidget *widget = new QWidget; widget->setLayout(layout); widget->setMinimumSize(1244, 708); setCentralWidget(widget); setWindowTitle(tr("OgreRTC")); setUnifiedTitleAndToolBarOnMac(true); mOgreWidget->initOgre(); EC = mOgreWidget->mOgreRTCApplication; mBodySetWidget->EC = mOgreWidget->mOgreRTCApplication; mBornSetWidget->EC = mOgreWidget->mOgreRTCApplication; mCameraSetWidget->EC = mOgreWidget->mOgreRTCApplication; mGUISetWidget->EC = mOgreWidget->mOgreRTCApplication; mGUITextSetWidget->EC = mOgreWidget->mOgreRTCApplication; mImageSetWidget->EC = mOgreWidget->mOgreRTCApplication; mParticleSetWidget->EC = mOgreWidget->mOgreRTCApplication; mSubWindowSetWidget->EC = mOgreWidget->mOgreRTCApplication; mAnimationSetWidget->EC = mOgreWidget->mOgreRTCApplication; mLightSetWidget->EC = mOgreWidget->mOgreRTCApplication; mNodeSetWidget->EC = mOgreWidget->mOgreRTCApplication; mSimulationSetWidget->EC = mOgreWidget->mOgreRTCApplication; mSimBodySetWidget->EC = mOgreWidget->mOgreRTCApplication; mSimJointSetWidget->EC = mOgreWidget->mOgreRTCApplication; mOtherSetWidget->EC = mOgreWidget->mOgreRTCApplication; createAction(); createMenus(); if(EC && argc > 1) { EC->reset(); EC->OpenFile(argv[1]); } }