mirror of
https://github.com/clangen/musikcube.git
synced 2025-02-11 09:40:26 +00:00
Generalization of message queue stuff so it can be used in non-UI
contexts: - IWindowMessage -> IMessage - New IMessageTarget implemented by IWindow - WindowMessageQueue -> MessageQueue
This commit is contained in:
parent
4f7a6ea7e2
commit
26311255b5
@ -36,7 +36,7 @@
|
||||
#include <cursespp/Colors.h>
|
||||
#include <cursespp/IInput.h>
|
||||
#include <cursespp/IKeyHandler.h>
|
||||
#include <cursespp/WindowMessageQueue.h>
|
||||
#include <cursespp/MessageQueue.h>
|
||||
#include <cursespp/LayoutStack.h>
|
||||
#include <cursespp/WindowLayout.h>
|
||||
|
||||
@ -228,7 +228,7 @@ int main(int argc, char* argv[])
|
||||
|
||||
ensureFocusIsValid(state);
|
||||
Window::WriteToScreen();
|
||||
WindowMessageQueue::Instance().Dispatch();
|
||||
MessageQueue::Instance().Dispatch();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "MainLayout.h"
|
||||
#include <cursespp/Screen.h>
|
||||
#include <cursespp/IWindowMessage.h>
|
||||
#include <cursespp/IMessage.h>
|
||||
|
||||
#define MESSAGE_TYPE_UPDATE 1001
|
||||
#define UPDATE_INTERVAL_MS 1000
|
||||
@ -58,7 +58,7 @@ void MainLayout::Show() {
|
||||
this->UpdateWindows();
|
||||
}
|
||||
|
||||
void MainLayout::ProcessMessage(IWindowMessage &message) {
|
||||
void MainLayout::ProcessMessage(IMessage &message) {
|
||||
if (message.MessageType() == MESSAGE_TYPE_UPDATE) {
|
||||
this->UpdateWindows();
|
||||
this->PostMessage(MESSAGE_TYPE_UPDATE, 0, 0, UPDATE_INTERVAL_MS);
|
||||
|
@ -22,7 +22,7 @@ class MainLayout : public LayoutBase {
|
||||
|
||||
virtual void Layout();
|
||||
virtual void Show();
|
||||
virtual void ProcessMessage(IWindowMessage &message);
|
||||
virtual void ProcessMessage(IMessage &message);
|
||||
|
||||
private:
|
||||
void UpdateWindows();
|
||||
|
@ -1,6 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
class PlaybackService {
|
||||
#include <cursespp/IMessageTarget.h>
|
||||
|
||||
class PlaybackService : public IMessageTarget {
|
||||
public:
|
||||
|
||||
};
|
@ -5,7 +5,7 @@
|
||||
|
||||
#include <cursespp/SingleLineEntry.h>
|
||||
#include <cursespp/MultiLineEntry.h>
|
||||
#include <cursespp/IWindowMessage.h>
|
||||
#include <cursespp/IMessage.h>
|
||||
|
||||
#include <core/library/LocalLibraryConstants.h>
|
||||
|
||||
@ -70,7 +70,7 @@ void CategoryListView::OnQueryCompleted(QueryPtr query) {
|
||||
}
|
||||
}
|
||||
|
||||
void CategoryListView::ProcessMessage(IWindowMessage &message) {
|
||||
void CategoryListView::ProcessMessage(IMessage &message) {
|
||||
if (message.MessageType() == WINDOW_MESSAGE_QUERY_COMPLETED) {
|
||||
this->metadata = activeQuery->GetResult();
|
||||
activeQuery.reset();
|
||||
|
@ -20,7 +20,7 @@ class CategoryListView : public ListWindow, public sigslot::has_slots<> {
|
||||
|
||||
void Requery();
|
||||
|
||||
virtual void ProcessMessage(IWindowMessage &message);
|
||||
virtual void ProcessMessage(IMessage &message);
|
||||
|
||||
DBID GetSelectedId();
|
||||
std::string GetFieldName();
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
#include <cursespp/Screen.h>
|
||||
#include <cursespp/Colors.h>
|
||||
#include <cursespp/WindowMessageQueue.h>
|
||||
#include <cursespp/WindowMessage.h>
|
||||
#include <cursespp/MessageQueue.h>
|
||||
#include <cursespp/Message.h>
|
||||
|
||||
#include "CommandWindow.h"
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include <cursespp/Colors.h>
|
||||
#include <cursespp/SingleLineEntry.h>
|
||||
#include <cursespp/IWindowMessage.h>
|
||||
#include <cursespp/IMessage.h>
|
||||
|
||||
#include "TrackListView.h"
|
||||
|
||||
@ -69,7 +69,7 @@ bool TrackListView::KeyPress(int64 ch) {
|
||||
return ListWindow::KeyPress(ch);
|
||||
}
|
||||
|
||||
void TrackListView::ProcessMessage(IWindowMessage &message) {
|
||||
void TrackListView::ProcessMessage(IMessage &message) {
|
||||
if (message.MessageType() == WINDOW_MESSAGE_QUERY_COMPLETED) {
|
||||
if (this->query && this->query->GetStatus() == IQuery::Finished) {
|
||||
this->metadata = this->query->GetResult();
|
||||
|
@ -20,7 +20,7 @@ class TrackListView : public ListWindow, public sigslot::has_slots<> {
|
||||
TrackListView(Transport& transport, LibraryPtr library, IWindow *parent = NULL);
|
||||
~TrackListView();
|
||||
|
||||
virtual void ProcessMessage(IWindowMessage &message);
|
||||
virtual void ProcessMessage(IMessage &message);
|
||||
virtual bool KeyPress(int64 ch);
|
||||
|
||||
void Requery(const std::string& column, DBID id);
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
#include <cursespp/Screen.h>
|
||||
#include <cursespp/Colors.h>
|
||||
#include <cursespp/WindowMessage.h>
|
||||
#include <cursespp/Message.h>
|
||||
|
||||
#include <app/util/Text.h>
|
||||
|
||||
@ -56,7 +56,7 @@ void TransportWindow::Show() {
|
||||
this->Update();
|
||||
}
|
||||
|
||||
void TransportWindow::ProcessMessage(IWindowMessage &message) {
|
||||
void TransportWindow::ProcessMessage(IMessage &message) {
|
||||
int type = message.MessageType();
|
||||
|
||||
if (type == REFRESH_TRANSPORT_READOUT) {
|
||||
|
@ -18,7 +18,7 @@ class TransportWindow : public Window, public sigslot::has_slots<> {
|
||||
TransportWindow(LibraryPtr library, Transport& transport);
|
||||
~TransportWindow();
|
||||
|
||||
virtual void ProcessMessage(IWindowMessage &message);
|
||||
virtual void ProcessMessage(IMessage &message);
|
||||
virtual void Show();
|
||||
void Update();
|
||||
|
||||
|
17
src/musikbox/cursespp/IMessage.h
Executable file
17
src/musikbox/cursespp/IMessage.h
Executable file
@ -0,0 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdafx.h>
|
||||
#include <memory>
|
||||
|
||||
class IMessageTarget;
|
||||
|
||||
class IMessage {
|
||||
public:
|
||||
virtual ~IMessage() = 0 { }
|
||||
virtual IMessageTarget* Target() = 0;
|
||||
virtual int MessageType() = 0;
|
||||
virtual int64 UserData1() = 0;
|
||||
virtual int64 UserData2() = 0;
|
||||
};
|
||||
|
||||
typedef std::shared_ptr<IMessage> IMessagePtr;
|
9
src/musikbox/cursespp/IMessageTarget.h
Executable file
9
src/musikbox/cursespp/IMessageTarget.h
Executable file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
#include "IMessage.h"
|
||||
|
||||
class IMessageTarget {
|
||||
public:
|
||||
virtual bool IsAcceptingMessages() = 0;
|
||||
virtual void ProcessMessage(IMessage &message) = 0;
|
||||
};
|
@ -3,10 +3,11 @@
|
||||
#include "curses_config.h"
|
||||
#include "IDisplayable.h"
|
||||
#include "IOrderable.h"
|
||||
#include "IMessageTarget.h"
|
||||
|
||||
class IWindowMessage;
|
||||
class IMessage;
|
||||
|
||||
class IWindow : public IOrderable, public IDisplayable {
|
||||
class IWindow : public IOrderable, public IDisplayable, public IMessageTarget {
|
||||
public:
|
||||
virtual ~IWindow() = 0 { }
|
||||
virtual void Repaint() = 0;
|
||||
@ -28,8 +29,6 @@ class IWindow : public IOrderable, public IDisplayable {
|
||||
virtual int GetId() const = 0;
|
||||
virtual int GetFocusOrder() = 0;
|
||||
virtual void SetFocusOrder(int order = -1) = 0;
|
||||
virtual bool IsAcceptingMessages() = 0;
|
||||
virtual void ProcessMessage(IWindowMessage &message) = 0;
|
||||
virtual WINDOW* GetFrame() const = 0;
|
||||
virtual WINDOW* GetContent() const = 0;
|
||||
};
|
||||
|
@ -1,16 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdafx.h>
|
||||
#include "IWindow.h"
|
||||
#include <memory>
|
||||
|
||||
class IWindowMessage {
|
||||
public:
|
||||
virtual ~IWindowMessage() = 0 { }
|
||||
virtual IWindow* Target() = 0;
|
||||
virtual int MessageType() = 0;
|
||||
virtual int64 UserData1() = 0;
|
||||
virtual int64 UserData2() = 0;
|
||||
};
|
||||
|
||||
typedef std::shared_ptr<IWindowMessage> IWindowMessagePtr;
|
39
src/musikbox/cursespp/Message.cpp
Executable file
39
src/musikbox/cursespp/Message.cpp
Executable file
@ -0,0 +1,39 @@
|
||||
#include <stdafx.h>
|
||||
#include "Message.h"
|
||||
|
||||
IMessagePtr Message::Create(
|
||||
IMessageTarget* target,
|
||||
int messageType,
|
||||
int64 data1,
|
||||
int64 data2)
|
||||
{
|
||||
return IMessagePtr(new Message(target, messageType, data1, data2));
|
||||
}
|
||||
|
||||
Message::Message(
|
||||
IMessageTarget* target,
|
||||
int messageType,
|
||||
int64 data1,
|
||||
int64 data2)
|
||||
{
|
||||
this->target = target;
|
||||
this->messageType = messageType;
|
||||
this->data1 = data1;
|
||||
this->data2 = data2;
|
||||
}
|
||||
|
||||
IMessageTarget* Message::Target() {
|
||||
return this->target;
|
||||
}
|
||||
|
||||
int Message::MessageType() {
|
||||
return this->messageType;
|
||||
}
|
||||
|
||||
int64 Message::UserData1() {
|
||||
return this->data1;
|
||||
}
|
||||
|
||||
int64 Message::UserData2() {
|
||||
return this->data2;
|
||||
}
|
@ -1,29 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include "IWindowMessage.h"
|
||||
#include "IMessage.h"
|
||||
|
||||
class WindowMessage : public IWindowMessage {
|
||||
class Message : public IMessage {
|
||||
private:
|
||||
WindowMessage(
|
||||
IWindow* target,
|
||||
Message(
|
||||
IMessageTarget* target,
|
||||
int messageType,
|
||||
int64 data1,
|
||||
int64 data2);
|
||||
|
||||
public:
|
||||
static IWindowMessagePtr Create(
|
||||
IWindow* target,
|
||||
static IMessagePtr Create(
|
||||
IMessageTarget* target,
|
||||
int messageType,
|
||||
int64 data1,
|
||||
int64 data2);
|
||||
|
||||
virtual IWindow* Target();
|
||||
virtual IMessageTarget* Target();
|
||||
virtual int MessageType();
|
||||
virtual int64 UserData1();
|
||||
virtual int64 UserData2();
|
||||
|
||||
private:
|
||||
IWindow* target;
|
||||
IMessageTarget* target;
|
||||
int messageType;
|
||||
int64 data1, data2;
|
||||
};
|
@ -1,19 +1,19 @@
|
||||
#include <stdafx.h>
|
||||
#include "WindowMessageQueue.h"
|
||||
#include "MessageQueue.h"
|
||||
|
||||
using namespace boost::chrono;
|
||||
|
||||
WindowMessageQueue WindowMessageQueue::instance;
|
||||
MessageQueue MessageQueue::instance;
|
||||
|
||||
WindowMessageQueue::WindowMessageQueue() {
|
||||
MessageQueue::MessageQueue() {
|
||||
|
||||
}
|
||||
|
||||
WindowMessageQueue& WindowMessageQueue::Instance() {
|
||||
return WindowMessageQueue::instance;
|
||||
MessageQueue& MessageQueue::Instance() {
|
||||
return MessageQueue::instance;
|
||||
}
|
||||
|
||||
void WindowMessageQueue::Dispatch() {
|
||||
void MessageQueue::Dispatch() {
|
||||
milliseconds now = duration_cast<milliseconds>(
|
||||
system_clock::now().time_since_epoch());
|
||||
|
||||
@ -58,12 +58,12 @@ void WindowMessageQueue::Dispatch() {
|
||||
}
|
||||
}
|
||||
|
||||
void WindowMessageQueue::Remove(IWindow *target, int type) {
|
||||
void MessageQueue::Remove(IMessageTarget *target, int type) {
|
||||
boost::recursive_mutex::scoped_lock lock(this->queueMutex);
|
||||
|
||||
std::list<EnqueuedMessage*>::iterator it = this->queue.begin();
|
||||
while (it != this->queue.end()) {
|
||||
IWindowMessagePtr current = (*it)->message;
|
||||
IMessagePtr current = (*it)->message;
|
||||
|
||||
if (current->Target() == target) {
|
||||
if (type == -1 || type == current->MessageType()) {
|
||||
@ -77,7 +77,7 @@ void WindowMessageQueue::Remove(IWindow *target, int type) {
|
||||
}
|
||||
}
|
||||
|
||||
void WindowMessageQueue::Post(IWindowMessagePtr message, int64 delayMs) {
|
||||
void MessageQueue::Post(IMessagePtr message, int64 delayMs) {
|
||||
boost::recursive_mutex::scoped_lock lock(this->queueMutex);
|
||||
|
||||
delayMs = max(0, delayMs);
|
||||
@ -107,6 +107,6 @@ void WindowMessageQueue::Post(IWindowMessagePtr message, int64 delayMs) {
|
||||
this->queue.insert(curr, m);
|
||||
}
|
||||
|
||||
void WindowMessageQueue::Dispatch(IWindowMessagePtr message) {
|
||||
void MessageQueue::Dispatch(IMessagePtr message) {
|
||||
message->Target()->ProcessMessage(*message);
|
||||
}
|
32
src/musikbox/cursespp/MessageQueue.h
Executable file
32
src/musikbox/cursespp/MessageQueue.h
Executable file
@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
#include "IMessage.h"
|
||||
#include "IMessageTarget.h"
|
||||
|
||||
#include <boost/thread/recursive_mutex.hpp>
|
||||
#include <boost/chrono.hpp>
|
||||
|
||||
class MessageQueue {
|
||||
public:
|
||||
static MessageQueue& Instance();
|
||||
|
||||
void Post(IMessagePtr message, int64 delayMs = 0);
|
||||
void Remove(IMessageTarget *target, int type = -1);
|
||||
|
||||
void Dispatch();
|
||||
|
||||
private:
|
||||
static MessageQueue instance;
|
||||
|
||||
struct EnqueuedMessage {
|
||||
IMessagePtr message;
|
||||
boost::chrono::milliseconds time;
|
||||
};
|
||||
|
||||
boost::recursive_mutex queueMutex;
|
||||
std::list<EnqueuedMessage*> queue;
|
||||
|
||||
MessageQueue();
|
||||
void Dispatch(IMessagePtr message);
|
||||
|
||||
};
|
@ -3,8 +3,8 @@
|
||||
#include <stdafx.h>
|
||||
#include "Window.h"
|
||||
#include "IWindowGroup.h"
|
||||
#include "WindowMessage.h"
|
||||
#include "WindowMessageQueue.h"
|
||||
#include "Message.h"
|
||||
#include "MessageQueue.h"
|
||||
|
||||
static int NEXT_ID = 0;
|
||||
static bool drawPending = false;
|
||||
@ -34,7 +34,7 @@ Window::Window(IWindow *parent) {
|
||||
}
|
||||
|
||||
Window::~Window() {
|
||||
WindowMessageQueue::Instance().Remove(this);
|
||||
MessageQueue::Instance().Remove(this);
|
||||
this->Destroy();
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ int Window::GetId() const {
|
||||
return this->id;
|
||||
}
|
||||
|
||||
void Window::ProcessMessage(IWindowMessage &message) {
|
||||
void Window::ProcessMessage(IMessage &message) {
|
||||
|
||||
}
|
||||
|
||||
@ -75,8 +75,8 @@ void Window::SendToBottom() {
|
||||
}
|
||||
|
||||
void Window::PostMessage(int messageType, int64 user1, int64 user2, int64 delay) {
|
||||
WindowMessageQueue::Instance().Post(
|
||||
WindowMessage::Create(
|
||||
MessageQueue::Instance().Post(
|
||||
Message::Create(
|
||||
this,
|
||||
messageType,
|
||||
user1,
|
||||
@ -85,7 +85,7 @@ void Window::PostMessage(int messageType, int64 user1, int64 user2, int64 delay)
|
||||
}
|
||||
|
||||
void Window::RemoveMessage(int messageType) {
|
||||
WindowMessageQueue::Instance().Remove(this, messageType);
|
||||
MessageQueue::Instance().Remove(this, messageType);
|
||||
}
|
||||
|
||||
void Window::SetParent(IWindow* parent) {
|
||||
|
@ -37,7 +37,7 @@ class Window : public IWindow, public std::enable_shared_from_this<IWindow> {
|
||||
virtual void BringToTop();
|
||||
virtual void SendToBottom();
|
||||
|
||||
virtual void ProcessMessage(IWindowMessage &message);
|
||||
virtual void ProcessMessage(IMessage &message);
|
||||
virtual bool IsAcceptingMessages();
|
||||
|
||||
virtual WINDOW* GetFrame() const;
|
||||
|
@ -1,39 +0,0 @@
|
||||
#include <stdafx.h>
|
||||
#include "WindowMessage.h"
|
||||
|
||||
IWindowMessagePtr WindowMessage::Create(
|
||||
IWindow* target,
|
||||
int messageType,
|
||||
int64 data1,
|
||||
int64 data2)
|
||||
{
|
||||
return IWindowMessagePtr(new WindowMessage(target, messageType, data1, data2));
|
||||
}
|
||||
|
||||
WindowMessage::WindowMessage(
|
||||
IWindow* target,
|
||||
int messageType,
|
||||
int64 data1,
|
||||
int64 data2)
|
||||
{
|
||||
this->target = target;
|
||||
this->messageType = messageType;
|
||||
this->data1 = data1;
|
||||
this->data2 = data2;
|
||||
}
|
||||
|
||||
IWindow* WindowMessage::Target() {
|
||||
return this->target;
|
||||
}
|
||||
|
||||
int WindowMessage::MessageType() {
|
||||
return this->messageType;
|
||||
}
|
||||
|
||||
int64 WindowMessage::UserData1() {
|
||||
return this->data1;
|
||||
}
|
||||
|
||||
int64 WindowMessage::UserData2() {
|
||||
return this->data2;
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "IWindowMessage.h"
|
||||
|
||||
#include <boost/thread/recursive_mutex.hpp>
|
||||
#include <boost/chrono.hpp>
|
||||
|
||||
class WindowMessageQueue {
|
||||
public:
|
||||
static WindowMessageQueue& Instance();
|
||||
|
||||
void Post(IWindowMessagePtr message, int64 delayMs = 0);
|
||||
void Remove(IWindow *target, int type = -1);
|
||||
|
||||
void Dispatch();
|
||||
|
||||
private:
|
||||
static WindowMessageQueue instance;
|
||||
|
||||
struct EnqueuedMessage {
|
||||
IWindowMessagePtr message;
|
||||
boost::chrono::milliseconds time;
|
||||
};
|
||||
|
||||
boost::recursive_mutex queueMutex;
|
||||
std::list<EnqueuedMessage*> queue;
|
||||
|
||||
WindowMessageQueue();
|
||||
void Dispatch(IWindowMessagePtr message);
|
||||
|
||||
};
|
@ -143,8 +143,8 @@
|
||||
<ClCompile Include="cursespp\SingleLineEntry.cpp" />
|
||||
<ClCompile Include="cursespp\Window.cpp" />
|
||||
<ClCompile Include="cursespp\WindowLayout.cpp" />
|
||||
<ClCompile Include="cursespp\WindowMessage.cpp" />
|
||||
<ClCompile Include="cursespp\WindowMessageQueue.cpp" />
|
||||
<ClCompile Include="cursespp\Message.cpp" />
|
||||
<ClCompile Include="cursespp\MessageQueue.cpp" />
|
||||
<ClCompile Include="Main.cpp" />
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
@ -175,13 +175,14 @@
|
||||
<ClInclude Include="cursespp\IKeyHandler.h" />
|
||||
<ClInclude Include="cursespp\ILayout.h" />
|
||||
<ClInclude Include="cursespp\ILayoutStack.h" />
|
||||
<ClInclude Include="cursespp\IMessageTarget.h" />
|
||||
<ClInclude Include="cursespp\IOrderable.h" />
|
||||
<ClInclude Include="cursespp\LayoutStack.h" />
|
||||
<ClInclude Include="cursespp\IScrollable.h" />
|
||||
<ClInclude Include="cursespp\IScrollAdapter.h" />
|
||||
<ClInclude Include="cursespp\IWindow.h" />
|
||||
<ClInclude Include="cursespp\IWindowGroup.h" />
|
||||
<ClInclude Include="cursespp\IWindowMessage.h" />
|
||||
<ClInclude Include="cursespp\IMessage.h" />
|
||||
<ClInclude Include="cursespp\LayoutBase.h" />
|
||||
<ClInclude Include="cursespp\ListWindow.h" />
|
||||
<ClInclude Include="cursespp\MultiLineEntry.h" />
|
||||
@ -192,8 +193,8 @@
|
||||
<ClInclude Include="cursespp\SingleLineEntry.h" />
|
||||
<ClInclude Include="cursespp\Window.h" />
|
||||
<ClInclude Include="cursespp\WindowLayout.h" />
|
||||
<ClInclude Include="cursespp\WindowMessage.h" />
|
||||
<ClInclude Include="cursespp\WindowMessageQueue.h" />
|
||||
<ClInclude Include="cursespp\Message.h" />
|
||||
<ClInclude Include="cursespp\MessageQueue.h" />
|
||||
<ClInclude Include="stdafx.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -27,12 +27,6 @@
|
||||
<ClCompile Include="cursespp\Window.cpp">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="cursespp\WindowMessage.cpp">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="cursespp\WindowMessageQueue.cpp">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="cursespp\Colors.cpp">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClCompile>
|
||||
@ -93,6 +87,12 @@
|
||||
<ClCompile Include="app\service\PlaybackService.cpp">
|
||||
<Filter>app\service</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="cursespp\Message.cpp">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="cursespp\MessageQueue.cpp">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="stdafx.h" />
|
||||
@ -120,12 +120,6 @@
|
||||
<ClInclude Include="cursespp\Window.h">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cursespp\WindowMessage.h">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cursespp\WindowMessageQueue.h">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cursespp\Colors.h">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClInclude>
|
||||
@ -156,9 +150,6 @@
|
||||
<ClInclude Include="cursespp\IWindowGroup.h">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cursespp\IWindowMessage.h">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cursespp\LayoutBase.h">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClInclude>
|
||||
@ -222,6 +213,18 @@
|
||||
<ClInclude Include="app\service\PlaybackService.h">
|
||||
<Filter>app\service</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cursespp\IMessage.h">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cursespp\Message.h">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cursespp\MessageQueue.h">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cursespp\IMessageTarget.h">
|
||||
<Filter>cursespp</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="cursespp">
|
||||
|
Loading…
x
Reference in New Issue
Block a user