Play-/tools/ElfView/Source/ElfViewFrame.cpp

49 lines
1.1 KiB
C++

#include "ElfViewFrame.h"
#include "win32/Rect.h"
#include "StdStream.h"
using namespace Framework;
#define CLSNAME _T("ElfViewFrame")
CElfViewFrame::CElfViewFrame(const char* path) :
m_elfView(NULL)
{
if(!DoesWindowClassExist(CLSNAME))
{
WNDCLASSEX wc;
memset(&wc, 0, sizeof(WNDCLASSEX));
wc.cbSize = sizeof(WNDCLASSEX);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
wc.hInstance = GetModuleHandle(NULL);
wc.lpszClassName = CLSNAME;
wc.lpfnWndProc = CWindow::WndProc;
RegisterClassEx(&wc);
}
Create(NULL, CLSNAME, _T("Elf Viewer"), WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
Win32::CRect(0, 0, 770, 580), NULL, NULL);
SetClassPtr();
CreateClient(NULL);
m_elfView = Open(path);
}
CElfViewFrame::~CElfViewFrame()
{
if(m_elfView)
{
delete m_elfView;
}
}
CElfViewEx* CElfViewFrame::Open(const char* path)
{
CStdStream stream(path, "rb");
CElfViewEx* elfView = new CElfViewEx(m_pMDIClient->m_hWnd, stream);
elfView->SetTextA(path);
elfView->Show(SW_MAXIMIZE);
return elfView;
}