diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt index 21f3e18a2a..906308c4c2 100644 --- a/apps/openmw/CMakeLists.txt +++ b/apps/openmw/CMakeLists.txt @@ -58,6 +58,7 @@ set(GAMEGUI_HEADER mwgui/window_base.hpp mwgui/stats_window.hpp mwgui/messagebox.hpp + mwgui/journalwindow.hpp ) set(GAMEGUI mwgui/window_manager.cpp @@ -74,6 +75,7 @@ set(GAMEGUI mwgui/window_base.cpp mwgui/stats_window.cpp mwgui/messagebox.cpp + mwgui/journalwindow.cpp ) source_group(apps\\openmw\\mwgui FILES ${GAMEGUI_HEADER} ${GAMEGUI}) diff --git a/apps/openmw/mwgui/journal_window.cpp b/apps/openmw/mwgui/journal_window.cpp deleted file mode 100644 index 8dee4efc6b..0000000000 --- a/apps/openmw/mwgui/journal_window.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include "journal_window.hpp" -#include "window_manager.hpp" - - -void formatText() -{ - //std::string -} - - -MWGui::JournalWindow::JournalWindow (WindowManager& parWindowManager) - : WindowBase("openmw_journal_layout.xml", parWindowManager) - , lastPos(0) -{ - setCoord(0,0,498, 342); - - getWidget(mLeftTextWidget, "LeftText"); - getWidget(mRightTextWidget, "RightText"); - //MyGUI::ItemBox* list = new MyGUI::ItemBox(); - //list->addItem("qaq","aqzazaz"); - //mScrollerWidget->addChildItem(list); - //mScrollerWidget->addItem("dserzt",MyGUI::UString("fedgdfg")); - //mEditWidget->addText("ljblsxdvdsfvgedfvdfvdkjfghldfjgn sdv,nhsxl;vvn lklksbvlksb lbsdflkbdSLKJGBLskdhbvlshow(); - //mEditWidget->setEditStatic(true); - mLeftTextWidget->addText("left texxxt "); - mLeftTextWidget->setEditReadOnly(true); - mRightTextWidget->setEditReadOnly(true); - mRightTextWidget->setEditStatic(true); - mLeftTextWidget->setEditStatic(true); - mRightTextWidget->addText("Right texxt "); - - displayLeftText("sdfsdfsdfvf"); - - MyGUI::WindowPtr t = static_cast(mMainWidget); - t->eventWindowChangeCoord = MyGUI::newDelegate(this, &JournalWindow::onWindowResize); -} - -void MWGui::JournalWindow::onWindowResize(MyGUI::Window* window) -{ -} - -void MWGui::JournalWindow::displayLeftText(std::string text) -{ - mLeftTextWidget->eraseText(0,mLeftTextWidget->getTextLength()); - mLeftTextWidget->addText(text); -} - -void MWGui::JournalWindow::displayRightText(std::string text) -{ - mRightTextWidget->eraseText(0,mRightTextWidget->getTextLength()); - mRightTextWidget->addText(text); -} \ No newline at end of file diff --git a/apps/openmw/mwgui/journalwindow.cpp b/apps/openmw/mwgui/journalwindow.cpp new file mode 100644 index 0000000000..12909aebcd --- /dev/null +++ b/apps/openmw/mwgui/journalwindow.cpp @@ -0,0 +1,108 @@ +#include "journalwindow.hpp" +#include "window_manager.hpp" + + +std::list formatText(std::string text) +{ + std::cout << "\n \n \n"; + std::list stringList; + //stringList.push_back(""); + int maxLine = 10; + int lineSize = 20; + + int cLineSize = 0; + int cLine = 0; + std::string cString; + + std::string::iterator wordBegin = text.begin(); + std::string::iterator wordEnd; + + std::string cText = text; + + while(cText.length() != 0) + { + std::cout << "a"; + size_t firstSpace = cText.find_first_of(' '); + if(firstSpace == std::string::npos) + { + cString = cString + cText; + stringList.push_back(cString); + //TODO:finnish this + std::cout << "brerak?"; + break; + } + std::cout << "notbreak"; + if(firstSpace + cLineSize <= lineSize) + { + cLineSize = firstSpace + cLineSize; + cString = cString + cText.substr(0,firstSpace +1); + } + else + { + cLineSize = firstSpace; + if(cLine +1 <= maxLine) + { + cLine = cLine + 1; + cString = cString + std::string("\n") + cText.substr(0,firstSpace +1); + } + else + { + cLine = 0; + stringList.push_back(cString); + cString = cText.substr(0,firstSpace +1); + } + } + //std::cout << cText << "\n"; + std::cout << cText.length(); + if(firstSpace == cText.length()) std::cout << "maxi error en veu"; + cText = cText.substr(firstSpace +1,cText.length() - firstSpace -1); + } + return stringList; + //std::string +} + + +MWGui::JournalWindow::JournalWindow (WindowManager& parWindowManager) + : WindowBase("openmw_journal_layout.xml", parWindowManager) + , lastPos(0) +{ + setCoord(0,0,498, 342); + + getWidget(mLeftTextWidget, "LeftText"); + getWidget(mRightTextWidget, "RightText"); + //MyGUI::ItemBox* list = new MyGUI::ItemBox(); + //list->addItem("qaq","aqzazaz"); + //mScrollerWidget->addChildItem(list); + //mScrollerWidget->addItem("dserzt",MyGUI::UString("fedgdfg")); + //mEditWidget->addText("ljblsxdvdsfvgedfvdfvdkjfghldfjgn sdv,nhsxl;vvn lklksbvlksb lbsdflkbdSLKJGBLskdhbvlshow(); + //mEditWidget->setEditStatic(true); + mLeftTextWidget->addText("left texxxt "); + mLeftTextWidget->setEditReadOnly(true); + mRightTextWidget->setEditReadOnly(true); + mRightTextWidget->setEditStatic(true); + mLeftTextWidget->setEditStatic(true); + mRightTextWidget->addText("Right texxt "); + + std::list list = formatText("OpenMW rgh dsfg sqef srg ZT uzql n ZLIEHRF LQSJH GLOIjf qjfmj hslkdgn jlkdjhg qlr isgli shli uhs fiuh qksf cg ksjnf lkqsnbf ksbf sbfkl zbf kuyzflkj sbgdfkj zlfh ozhjfmo hzmfh lizuf rty qzt ezy tkyEZT RYYJ DG fgh is an open-source implementation of the game engine found in the game Morrowind. This is a dumb test text msodjbg smojg smoig fiiinnn"); + displayLeftText(list.front()); + + MyGUI::WindowPtr t = static_cast(mMainWidget); + t->eventWindowChangeCoord = MyGUI::newDelegate(this, &JournalWindow::onWindowResize); +} + +void MWGui::JournalWindow::onWindowResize(MyGUI::Window* window) +{ +} + +void MWGui::JournalWindow::displayLeftText(std::string text) +{ + mLeftTextWidget->eraseText(0,mLeftTextWidget->getTextLength()); + mLeftTextWidget->addText(text); +} + +void MWGui::JournalWindow::displayRightText(std::string text) +{ + mRightTextWidget->eraseText(0,mRightTextWidget->getTextLength()); + mRightTextWidget->addText(text); +} \ No newline at end of file diff --git a/apps/openmw/mwgui/journal_window.hpp b/apps/openmw/mwgui/journalwindow.hpp similarity index 100% rename from apps/openmw/mwgui/journal_window.hpp rename to apps/openmw/mwgui/journalwindow.hpp diff --git a/apps/openmw/mwgui/window_manager.cpp b/apps/openmw/mwgui/window_manager.cpp index ff98df7afd..eeac575196 100644 --- a/apps/openmw/mwgui/window_manager.cpp +++ b/apps/openmw/mwgui/window_manager.cpp @@ -14,7 +14,7 @@ #include "../mwinput/inputmanager.hpp" #include "console.hpp" -#include "journal_window.hpp" +#include "journalwindow.hpp" #include #include