mirror of
https://github.com/OpenMW/openmw.git
synced 2025-03-03 19:39:41 +00:00
Add the journal window (J key). It's still not in the right position.
This commit is contained in:
parent
241cf2555d
commit
bc51ba5a38
7 changed files with 141 additions and 0 deletions
52
apps/openmw/mwgui/journal_window.cpp
Normal file
52
apps/openmw/mwgui/journal_window.cpp
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
#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 lbsdflkbdSLKJGBLskdhbvl<kbvlqksbgkqsjhdvb");
|
||||||
|
//mEditWidget->show();
|
||||||
|
//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<MyGUI::WindowPtr>(mMainWidget);
|
||||||
|
t->eventWindowChangeCoord = MyGUI::newDelegate(this, &JournalWindow::onWindowResize);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWGui::JournalWindow::onWindowResize(MyGUI::Window* window)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWGui::JournalWindow::displayLeftText(std::string text)
|
||||||
|
{
|
||||||
|
mLeftTextWidget->removeAllRenderItems();
|
||||||
|
mLeftTextWidget->addText(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWGui::JournalWindow::displayRightText(std::string text)
|
||||||
|
{
|
||||||
|
mRightTextWidget->addText(text);
|
||||||
|
}
|
45
apps/openmw/mwgui/journal_window.hpp
Normal file
45
apps/openmw/mwgui/journal_window.hpp
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#ifndef MWGUI_JOURNAL_H
|
||||||
|
#define MWGUI_JOURNAL_H
|
||||||
|
|
||||||
|
#include <sstream>
|
||||||
|
#include <set>
|
||||||
|
#include <string>
|
||||||
|
#include <utility>
|
||||||
|
#include "../mwdialogue/journal.hpp"
|
||||||
|
|
||||||
|
#include "window_base.hpp"
|
||||||
|
|
||||||
|
namespace MWGui
|
||||||
|
{
|
||||||
|
class WindowManager;
|
||||||
|
|
||||||
|
class JournalWindow : public WindowBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
JournalWindow(WindowManager& parWindowManager);
|
||||||
|
|
||||||
|
private:
|
||||||
|
enum ColorStyle
|
||||||
|
{
|
||||||
|
CS_Sub,
|
||||||
|
CS_Normal,
|
||||||
|
CS_Super
|
||||||
|
};
|
||||||
|
|
||||||
|
void onWindowResize(MyGUI::Window* window);
|
||||||
|
|
||||||
|
void displayLeftText(std::string text);
|
||||||
|
void displayRightText(std::string text);
|
||||||
|
|
||||||
|
static const int lineHeight;
|
||||||
|
|
||||||
|
MyGUI::WidgetPtr skillAreaWidget, skillClientWidget;
|
||||||
|
MyGUI::VScrollPtr skillScrollerWidget;
|
||||||
|
int lastPos, clientHeight;
|
||||||
|
MyGUI::EditPtr mLeftTextWidget;
|
||||||
|
MyGUI::EditPtr mRightTextWidget;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -10,6 +10,7 @@ namespace MWGui
|
||||||
GM_MainMenu, // Main menu mode
|
GM_MainMenu, // Main menu mode
|
||||||
|
|
||||||
GM_Console, // Console mode
|
GM_Console, // Console mode
|
||||||
|
GM_Journal, // Journal mode
|
||||||
|
|
||||||
// None of the following are implemented yet
|
// None of the following are implemented yet
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include "../mwinput/inputmanager.hpp"
|
#include "../mwinput/inputmanager.hpp"
|
||||||
|
|
||||||
#include "console.hpp"
|
#include "console.hpp"
|
||||||
|
#include "journal_window.hpp"
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
@ -61,6 +62,7 @@ WindowManager::WindowManager(MyGUI::Gui *_gui, MWWorld::Environment& environment
|
||||||
inventory = new InventoryWindow ();
|
inventory = new InventoryWindow ();
|
||||||
#endif
|
#endif
|
||||||
console = new Console(w,h, environment, extensions);
|
console = new Console(w,h, environment, extensions);
|
||||||
|
mJournal = new JournalWindow(*this);
|
||||||
mMessageBoxManager = new MessageBoxManager(this);
|
mMessageBoxManager = new MessageBoxManager(this);
|
||||||
|
|
||||||
// The HUD is always on
|
// The HUD is always on
|
||||||
|
@ -89,6 +91,7 @@ WindowManager::~WindowManager()
|
||||||
delete map;
|
delete map;
|
||||||
delete menu;
|
delete menu;
|
||||||
delete stats;
|
delete stats;
|
||||||
|
delete mJournal;
|
||||||
#if 0
|
#if 0
|
||||||
delete inventory;
|
delete inventory;
|
||||||
#endif
|
#endif
|
||||||
|
@ -156,6 +159,7 @@ void WindowManager::updateVisible()
|
||||||
inventory->setVisible(false);
|
inventory->setVisible(false);
|
||||||
#endif
|
#endif
|
||||||
console->disable();
|
console->disable();
|
||||||
|
mJournal->setVisible(false);
|
||||||
|
|
||||||
// Mouse is visible whenever we're not in game mode
|
// Mouse is visible whenever we're not in game mode
|
||||||
gui->setVisiblePointer(isGuiMode());
|
gui->setVisiblePointer(isGuiMode());
|
||||||
|
@ -338,6 +342,12 @@ void WindowManager::updateVisible()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(mode == GM_Journal)
|
||||||
|
{
|
||||||
|
mJournal->setVisible(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Unsupported mode, switch back to game
|
// Unsupported mode, switch back to game
|
||||||
// Note: The call will eventually end up this method again but
|
// Note: The call will eventually end up this method again but
|
||||||
|
|
|
@ -51,6 +51,7 @@ namespace MWGui
|
||||||
class StatsWindow;
|
class StatsWindow;
|
||||||
class InventoryWindow;
|
class InventoryWindow;
|
||||||
class Console;
|
class Console;
|
||||||
|
class JournalWindow;
|
||||||
|
|
||||||
class TextInputDialog;
|
class TextInputDialog;
|
||||||
class InfoBoxDialog;
|
class InfoBoxDialog;
|
||||||
|
@ -90,6 +91,7 @@ namespace MWGui
|
||||||
InventoryWindow *inventory;
|
InventoryWindow *inventory;
|
||||||
#endif
|
#endif
|
||||||
Console *console;
|
Console *console;
|
||||||
|
JournalWindow* mJournal;
|
||||||
|
|
||||||
// Character creation
|
// Character creation
|
||||||
TextInputDialog *nameDialog;
|
TextInputDialog *nameDialog;
|
||||||
|
|
|
@ -134,6 +134,21 @@ namespace MWInput
|
||||||
else setGuiMode(GM_Console);
|
else setGuiMode(GM_Console);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void toggleJournal()
|
||||||
|
{
|
||||||
|
using namespace MWGui;
|
||||||
|
|
||||||
|
GuiMode mode = windows.getMode();
|
||||||
|
|
||||||
|
// Toggle between game mode and journal mode
|
||||||
|
if(mode == GM_Game)
|
||||||
|
setGuiMode(GM_Journal);
|
||||||
|
else if(mode == GM_Journal)
|
||||||
|
setGuiMode(GM_Game);
|
||||||
|
|
||||||
|
// .. but don't touch any other mode.
|
||||||
|
}
|
||||||
|
|
||||||
void activate()
|
void activate()
|
||||||
{
|
{
|
||||||
mEngine.activate();
|
mEngine.activate();
|
||||||
|
@ -188,6 +203,8 @@ namespace MWInput
|
||||||
"Toggle inventory screen");
|
"Toggle inventory screen");
|
||||||
disp->funcs.bind(A_Console, boost::bind(&InputImpl::toggleConsole, this),
|
disp->funcs.bind(A_Console, boost::bind(&InputImpl::toggleConsole, this),
|
||||||
"Toggle console");
|
"Toggle console");
|
||||||
|
disp->funcs.bind(A_Journal, boost::bind(&InputImpl::toggleJournal, this),
|
||||||
|
"Toggle journal");
|
||||||
disp->funcs.bind(A_Activate, boost::bind(&InputImpl::activate, this),
|
disp->funcs.bind(A_Activate, boost::bind(&InputImpl::activate, this),
|
||||||
"Activate");
|
"Activate");
|
||||||
disp->funcs.bind(A_AutoMove, boost::bind(&InputImpl::toggleAutoMove, this),
|
disp->funcs.bind(A_AutoMove, boost::bind(&InputImpl::toggleAutoMove, this),
|
||||||
|
@ -236,6 +253,7 @@ namespace MWInput
|
||||||
disp->bind(A_Screenshot, KC_SYSRQ);
|
disp->bind(A_Screenshot, KC_SYSRQ);
|
||||||
disp->bind(A_Inventory, KC_I);
|
disp->bind(A_Inventory, KC_I);
|
||||||
disp->bind(A_Console, KC_F1);
|
disp->bind(A_Console, KC_F1);
|
||||||
|
disp->bind(A_Journal, KC_J);
|
||||||
disp->bind(A_Activate, KC_SPACE);
|
disp->bind(A_Activate, KC_SPACE);
|
||||||
disp->bind(A_AutoMove, KC_Z);
|
disp->bind(A_AutoMove, KC_Z);
|
||||||
disp->bind(A_ToggleSneak, KC_X);
|
disp->bind(A_ToggleSneak, KC_X);
|
||||||
|
|
13
extern/mygui_3.0.1/openmw_resources/openmw_journal_layout.xml
vendored
Normal file
13
extern/mygui_3.0.1/openmw_resources/openmw_journal_layout.xml
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MyGUI type="Layout">
|
||||||
|
|
||||||
|
<Widget type="Window" skin="StaticImage" layer="Windows"position="0 0 485 375" name="_Main">
|
||||||
|
|
||||||
|
<Widget type="StaticImage" skin="StaticImage" layer="Windows" position_real="0 0 1 1" name="JImage">
|
||||||
|
<Property key="Image_Texture" value="textures\tx_menubook.dds"/>
|
||||||
|
|
||||||
|
<Widget type="Edit" skin="MW_ConsoleLog" position_real="0.22 0.186667 0.31 0.613333" name = "LeftText"/>
|
||||||
|
<Widget type="Edit" skin="MW_ConsoleLog" position_real="0.58 0.2 0.3 0.6" name = "RightText"/>
|
||||||
|
</Widget>
|
||||||
|
</Widget>
|
||||||
|
</MyGUI>
|
Loading…
Reference in a new issue