From 4087ab3cdaf14950bdef98b8824758cf272914b9 Mon Sep 17 00:00:00 2001 From: gugus Date: Thu, 1 Dec 2011 13:44:34 +0100 Subject: [PATCH] correct CMake and add some text formating attempt. --- apps/openmw/CMakeLists.txt | 2 + apps/openmw/mwgui/journal_window.cpp | 53 --------- apps/openmw/mwgui/journalwindow.cpp | 108 ++++++++++++++++++ .../{journal_window.hpp => journalwindow.hpp} | 0 apps/openmw/mwgui/window_manager.cpp | 2 +- 5 files changed, 111 insertions(+), 54 deletions(-) delete mode 100644 apps/openmw/mwgui/journal_window.cpp create mode 100644 apps/openmw/mwgui/journalwindow.cpp rename apps/openmw/mwgui/{journal_window.hpp => journalwindow.hpp} (100%) diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt index 21f3e18a2..906308c4c 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 8dee4efc6..000000000 --- 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 000000000..12909aebc --- /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 ff98df7af..eeac57519 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