Move windows to uptr. Add simple text editing.

This commit is contained in:
jmsgrogan 2020-06-20 16:34:10 +01:00
parent 2bcc7b3d83
commit b99708e7d3
55 changed files with 1257 additions and 994 deletions

View file

@ -3,14 +3,14 @@
#include <iostream>
DesktopManager::DesktopManager()
: mScreens(),
mWindowManager(),
mKeyboard(),
mMainApplication(),
mModified(false)
: mScreens(),
mWindowManager(WindowManager::Create()),
mKeyboard(Keyboard::Create()),
mMainApplication(),
mModified(false),
mEventManager(EventManager::Create())
{
mWindowManager = WindowManager::Create();
mKeyboard = Keyboard::Create();
}
DesktopManager::~DesktopManager()
@ -18,95 +18,100 @@ DesktopManager::~DesktopManager()
}
std::shared_ptr<DesktopManager> DesktopManager::Create()
std::unique_ptr<DesktopManager> DesktopManager::Create()
{
return std::make_shared<DesktopManager>();
return std::make_unique<DesktopManager>();
}
void DesktopManager::OnKeyboardEvent(KeyboardEventPtr keyboardEvent)
void DesktopManager::ClearEvents()
{
std::cout << "Key: " << keyboardEvent->GetKeyString() << std::endl;
mEventManager->ClearEvents();
}
void DesktopManager::OnPaintEvent(PaintEventPtr paintEvent)
void DesktopManager::OnKeyboardEvent(const KeyboardEvent* event)
{
GetWindowManager()->OnPaintEvent(paintEvent);
GetWindowManager()->OnKeyboardEvent(event);
}
void DesktopManager::OnMouseEvent(MouseEventPtr mouseEvent)
void DesktopManager::OnPaintEvent(const PaintEvent* event)
{
GetWindowManager()->OnMouseEvent(mouseEvent);
GetWindowManager()->OnPaintEvent(event);
}
bool DesktopManager::IsModified()
void DesktopManager::OnMouseEvent(const MouseEvent* event)
{
return mModified;
GetWindowManager()->OnMouseEvent(event);
}
void DesktopManager::OnUiEvent(UiEventPtr event)
bool DesktopManager::IsModified() const
{
mModified = false;
switch (event->GetType())
{
case (UiEvent::Type::Paint):
{
OnPaintEvent(std::dynamic_pointer_cast<PaintEvent>(event));
break;
}
case (UiEvent::Type::Keyboard):
{
OnKeyboardEvent(std::dynamic_pointer_cast<KeyboardEvent>(event));
//mModified = true;
break;
}
case (UiEvent::Type::Mouse):
{
auto mouseEvent = std::dynamic_pointer_cast<MouseEvent>(event);
return mModified;
}
OnMouseEvent(mouseEvent);
if(mouseEvent->GetAction() == MouseEvent::Action::Pressed)
{
std::cout << "mouse pressed" << std::endl;
mModified = true;
}
break;
}
default:
break;
}
void DesktopManager::OnUiEvent(UiEventUPtr eventUPtr)
{
mModified = false;
const auto event = mEventManager->AddEvent(std::move(eventUPtr));
switch (event->GetType())
{
case (UiEvent::Type::Paint):
{
OnPaintEvent(dynamic_cast<const PaintEvent*>(event));
break;
}
case (UiEvent::Type::Keyboard):
{
OnKeyboardEvent(dynamic_cast<const KeyboardEvent*>(event));
mModified = true;
break;
}
case (UiEvent::Type::Mouse):
{
auto mouseEvent = dynamic_cast<const MouseEvent*>(event);
OnMouseEvent(mouseEvent);
if(mouseEvent->GetAction() == MouseEvent::Action::Pressed)
{
std::cout << "mouse pressed" << std::endl;
mModified = true;
}
break;
}
default:
break;
}
}
void DesktopManager::SetIsModified(bool modified)
{
mModified = modified;
mModified = modified;
}
KeyboardPtr DesktopManager::GetKeyboard()
Keyboard* DesktopManager::GetKeyboard() const
{
return mKeyboard;
return mKeyboard.get();
}
void DesktopManager::SetKeyboard(KeyboardPtr keyboard)
void DesktopManager::SetKeyboard(KeyboardUPtr keyboard)
{
mKeyboard = keyboard;
mKeyboard = std::move(keyboard);
}
void DesktopManager::SetMainApp(AbstractDesktopAppPtr mainApp)
{
mMainApplication = mainApp;
mMainApplication = mainApp;
}
AbstractDesktopAppPtr DesktopManager::GetMainApp()
{
return mMainApplication;
return mMainApplication;
}
void DesktopManager::SetWindowManager(WindowManagerPtr windowManager)
void DesktopManager::SetWindowManager(WindowManagerUPtr windowManager)
{
mWindowManager = windowManager;
mWindowManager = std::move(windowManager);
}
WindowManagerPtr DesktopManager::GetWindowManager()
WindowManager* DesktopManager::GetWindowManager() const
{
return mWindowManager;
return mWindowManager.get();
}