#include <CClient.hpp>
#include <IIPCChannel.hpp>
#include <ipc.hpp>
+#include <draw_text.hpp> // for the fonts
namespace AxWin {
CClient::CClient(::AxWin::IIPCChannel& channel):
- m_channel(channel)
+ m_channel(channel),
+ m_id(0)
{
}
CWindow* CClient::GetWindow(int ID)
{
- if( ID == 0 )
- return 0;
-
- return m_windows[ID];
+ try {
+ return m_windows.at(ID);
+ }
+ catch(const std::exception& e) {
+ return NULL;
+ }
}
void CClient::SetWindow(int ID, CWindow* window)
{
- if( m_windows[ID] ) {
- delete m_windows[ID];
+ //_SysDebug("SetWindow(ID=%i,window=%p)", ID, window);
+ auto it = m_windows.find(ID);
+ if( it != m_windows.end() ) {
+ _SysDebug("CLIENT BUG: Window ID %i is already used by %p", ID, it->second);
+ }
+ else {
+ m_windows[ID] = window;
+ }
+}
+
+IFontFace& CClient::GetFont(unsigned int id)
+{
+ static CFontFallback fallback_font;
+ if( id == 0 ) {
+ _SysDebug("GetFont: %i = %p", id, &fallback_font);
+ return fallback_font;
}
- m_windows[ID] = window;
+ assert(!"TODO: CClient::GetFont id != 0");
}
void CClient::HandleMessage(CDeserialiser& message)