Fixed compilation errors

Signed-off-by: jiajia_deng <2894220@gmail.com>
This commit is contained in:
jiajia_deng 2019-09-22 12:21:38 +08:00
parent ad9a6b3edc
commit ce1686db1a
21 changed files with 86 additions and 49 deletions

View File

@ -5,6 +5,11 @@
#include "main.h"
#include "basic_form.h"
enum ThreadId
{
kThreadUI
};
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
@ -24,7 +29,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
void MainThread::Init()
{
nbase::ThreadManager::RegisterThread(kThreadMain);
nbase::ThreadManager::RegisterThread(kThreadUI);
// 获取资源路径,初始化全局参数
std::wstring theme_dir = nbase::win32::GetCurrentModuleDirectory();

View File

@ -31,10 +31,10 @@ ui::Control* CefForm::CreateControl(const std::wstring& pstrClass)
// 扫描 XML 发现有名称为 CefControl 的节点,则创建一个 ui::CefControl 控件
if (pstrClass == L"CefControl")
{
if (nim_cef::CefManager::GetInstance()->IsEnableOffsetRender())
return new ui::CefControl;
if (nim_comp::CefManager::GetInstance()->IsEnableOffsetRender())
return new nim_comp::CefControl;
else
return new ui::CefNativeControl;
return new nim_comp::CefNativeControl;
}
return NULL;
@ -46,8 +46,8 @@ void CefForm::InitWindow()
m_pRoot->AttachBubbledEvent(ui::kEventClick, nbase::Bind(&CefForm::OnClicked, this, std::placeholders::_1));
// 从 XML 中查找指定控件
cef_control_ = dynamic_cast<ui::CefControlBase*>(FindControl(L"cef_control"));
cef_control_dev_ = dynamic_cast<ui::CefControlBase*>(FindControl(L"cef_control_dev"));
cef_control_ = dynamic_cast<nim_comp::CefControlBase*>(FindControl(L"cef_control"));
cef_control_dev_ = dynamic_cast<nim_comp::CefControlBase*>(FindControl(L"cef_control_dev"));
btn_dev_tool_ = dynamic_cast<ui::Button*>(FindControl(L"btn_dev_tool"));
edit_url_ = dynamic_cast<ui::RichEdit*>(FindControl(L"edit_url"));
@ -64,13 +64,13 @@ void CefForm::InitWindow()
// 加载皮肤目录下的 html 文件
cef_control_->LoadURL(nbase::win32::GetCurrentModuleDirectory() + L"resources\\themes\\default\\cef\\cef.html");
if (!nim_cef::CefManager::GetInstance()->IsEnableOffsetRender())
if (!nim_comp::CefManager::GetInstance()->IsEnableOffsetRender())
cef_control_dev_->SetVisible(false);
}
LRESULT CefForm::OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
nim_cef::CefManager::GetInstance()->PostQuitMessage(0L);
nim_comp::CefManager::GetInstance()->PostQuitMessage(0L);
return __super::OnClose(uMsg, wParam, lParam, bHandled);
}
@ -89,7 +89,7 @@ bool CefForm::OnClicked(ui::EventArgs* msg)
cef_control_->AttachDevTools(cef_control_dev_);
}
if (nim_cef::CefManager::GetInstance()->IsEnableOffsetRender())
if (nim_comp::CefManager::GetInstance()->IsEnableOffsetRender())
{
cef_control_dev_->SetVisible(cef_control_->IsAttachedDevTools());
}
@ -131,8 +131,8 @@ void CefForm::OnLoadEnd(int httpStatusCode)
FindControl(L"btn_forward")->SetEnabled(cef_control_->CanGoForward());
// 注册一个方法提供前端调用
cef_control_->RegisterCppFunc(L"ShowMessageBox", ToWeakCallback([this](const std::string& params, nim_cef::ReportResultFunction callback) {
shared::Toast::ShowToast(nbase::UTF8ToUTF16(params), 3000, GetHWND());
cef_control_->RegisterCppFunc(L"ShowMessageBox", ToWeakCallback([this](const std::string& params, nim_comp::ReportResultFunction callback) {
nim_comp::Toast::ShowToast(nbase::UTF8ToUTF16(params), 3000, GetHWND());
callback(false, R"({ "message": "Success." })");
}));
}

View File

@ -4,7 +4,7 @@
// 当为 false 时因使用了真窗口模式不支持带有 WS_EX_LAYERED 属性窗口,所以使用外置窗口阴影方案,需要在 xml 中将窗口 shadowattached 属性设置为 false
const bool kEnableOffsetRender = false;
class CefForm : public std::conditional<kEnableOffsetRender, ui::WindowImplBase, ui::ShadowWndBase>::type
class CefForm : public std::conditional<kEnableOffsetRender, ui::WindowImplBase, nim_comp::ShadowWndBase>::type
{
public:
CefForm();
@ -39,8 +39,8 @@ private:
void OnLoadEnd(int httpStatusCode);
private:
ui::CefControlBase* cef_control_;
ui::CefControlBase* cef_control_dev_;
nim_comp::CefControlBase* cef_control_;
nim_comp::CefControlBase* cef_control_dev_;
ui::Button* btn_dev_tool_;
ui::RichEdit* edit_url_;
};

View File

@ -5,6 +5,11 @@
#include "main.h"
#include "cef_form.h"
enum ThreadId
{
kThreadUI
};
#pragma comment(lib, "dbghelp.lib")
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
@ -17,7 +22,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
// 将 bin\\cef 目录添加到环境变量,这样可以将所有 CEF 相关文件放到该目录下,方便管理
// 在项目属性->连接器->输入,延迟加载 nim_libcef.dll
nim_cef::CefManager::GetInstance()->AddCefDllToPath();
nim_comp::CefManager::GetInstance()->AddCefDllToPath();
HRESULT hr = ::OleInitialize(NULL);
if (FAILED(hr))
@ -25,7 +30,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
// 初始化 CEF
CefSettings settings;
if (!nim_cef::CefManager::GetInstance()->Initialize(nbase::win32::GetCurrentModuleDirectory() + L"cef_temp\\", settings, kEnableOffsetRender))
if (!nim_comp::CefManager::GetInstance()->Initialize(nbase::win32::GetCurrentModuleDirectory() + L"cef_temp\\", settings, kEnableOffsetRender))
{
return 0;
}
@ -37,7 +42,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
thread.RunOnCurrentThreadWithLoop(nbase::MessageLoop::kUIMessageLoop);
// 清理 CEF
nim_cef::CefManager::GetInstance()->UnInitialize();
nim_comp::CefManager::GetInstance()->UnInitialize();
::OleUninitialize();
@ -46,7 +51,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
void MainThread::Init()
{
nbase::ThreadManager::RegisterThread(kThreadMain);
nbase::ThreadManager::RegisterThread(kThreadUI);
// 获取资源路径,初始化全局参数
// 默认皮肤使用 resources\\themes\\default
@ -57,7 +62,7 @@ void MainThread::Init()
// 创建一个默认带有阴影的居中窗口
CefForm* window = new CefForm();
window->Create(NULL, CefForm::kClassName.c_str(), WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX, 0, nim_cef::CefManager::GetInstance()->IsEnableOffsetRender());
window->Create(NULL, CefForm::kClassName.c_str(), WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX, 0, nim_comp::CefManager::GetInstance()->IsEnableOffsetRender());
window->CenterWindow();
window->ShowWindow();
}

View File

@ -103,7 +103,7 @@ void ControlForm::InitWindow()
}
// Post task to UI thread
nbase::ThreadManager::PostTask(kThreadMain, nbase::Bind(&ControlForm::OnLoadedResourceFile, this, xml)); // or Post2UI(nbase::Bind(&ControlForm::OnLoadedResourceFile, this, xml));
nbase::ThreadManager::PostTask(kThreadUI, nbase::Bind(&ControlForm::OnLoadedResourceFile, this, xml)); // or Post2UI(nbase::Bind(&ControlForm::OnLoadedResourceFile, this, xml));
};
// Using ToWeakCallback to protect closure when if [ControlForm] was destoryed
nbase::ThreadManager::PostTask(kThreadGlobalMisc, ToWeakCallback(closure)); // or Post2GlobalMisc(ToWeakCallback(closure));
@ -111,7 +111,7 @@ void ControlForm::InitWindow()
/* Post repeat task to update progress value 200 milliseconds once */
StdClosure repeat_task = [this]() {
nbase::TimeDelta time_delta = nbase::TimeDelta::FromMicroseconds(nbase::Time::Now().ToInternalValue());
nbase::ThreadManager::PostTask(kThreadMain, nbase::Bind(&ControlForm::OnProgressValueChagned, this, time_delta.ToMilliseconds() % 100));
nbase::ThreadManager::PostTask(kThreadUI, nbase::Bind(&ControlForm::OnProgressValueChagned, this, time_delta.ToMilliseconds() % 100));
};
nbase::ThreadManager::PostRepeatedTask(kThreadGlobalMisc, ToWeakCallback(repeat_task), nbase::TimeDelta::FromMilliseconds(200));
@ -124,7 +124,7 @@ void ControlForm::InitWindow()
point.y = rect.top + 10;
ClientToScreen(m_hWnd, &point);
ui::CMenuWnd* pMenu = new ui::CMenuWnd(NULL);
nim_comp::CMenuWnd* pMenu = new nim_comp::CMenuWnd(NULL);
ui::STRINGorID xml(L"settings_menu.xml");
pMenu->Init(xml, _T("xml"), point);
return true;

View File

@ -1,5 +1,11 @@
#pragma once
enum ThreadId
{
kThreadUI,
kThreadGlobalMisc
};
class ControlForm : public ui::WindowImplBase
{
public:

View File

@ -30,7 +30,7 @@ void MiscThread::Cleanup()
void MainThread::Init()
{
nbase::ThreadManager::RegisterThread(kThreadMain);
nbase::ThreadManager::RegisterThread(kThreadUI);
// 启动杂事处理线程
misc_thread_.reset(new MiscThread(kThreadGlobalMisc, "Global Misc Thread"));

View File

@ -10,7 +10,7 @@
class MiscThread : public nbase::FrameworkThread
{
public:
MiscThread(enum ThreadIds thread_id, const char *name)
MiscThread(enum ThreadId thread_id, const char *name)
: FrameworkThread(name)
, thread_id_(thread_id) {}
@ -30,7 +30,7 @@ private:
virtual void Cleanup() override;
private:
enum ThreadIds thread_id_;
enum ThreadId thread_id_;
};
/** @class MainThread

View File

@ -5,6 +5,11 @@
#include "main.h"
#include "layouts_form.h"
enum ThreadId
{
kThreadUI
};
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
@ -24,7 +29,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
void MainThread::Init()
{
nbase::ThreadManager::RegisterThread(kThreadMain);
nbase::ThreadManager::RegisterThread(kThreadUI);
// 获取资源路径,初始化全局参数
// 默认皮肤使用 resources\\themes\\default

View File

@ -21,7 +21,7 @@ MultiBrowserForm* BrowserBox::GetBrowserForm() const
return browser_form_;
}
ui::CefControlBase* BrowserBox::GetCefControl()
nim_comp::CefControlBase* BrowserBox::GetCefControl()
{
return cef_control_;
}
@ -33,7 +33,7 @@ std::wstring& BrowserBox::GetTitle()
void BrowserBox::InitBrowserBox(const std::wstring &url)
{
cef_control_ = static_cast<CefControlBase*>(FindSubControl(L"cef_control"));
cef_control_ = static_cast<nim_comp::CefControlBase*>(FindSubControl(L"cef_control"));
cef_control_->AttachBeforeContextMenu(nbase::Bind(&BrowserBox::OnBeforeMenu, this, std::placeholders::_1, std::placeholders::_2));
cef_control_->AttachMenuCommand(nbase::Bind(&BrowserBox::OnMenuCommand, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));
cef_control_->AttachTitleChange(nbase::Bind(&BrowserBox::OnTitleChange, this, std::placeholders::_1));
@ -80,10 +80,10 @@ ui::Control* BrowserBox::CreateControl(const std::wstring& pstrClass)
{
if (pstrClass == L"CefControl")
{
if (nim_cef::CefManager::GetInstance()->IsEnableOffsetRender())
return new CefControl;
if (nim_comp::CefManager::GetInstance()->IsEnableOffsetRender())
return new nim_comp::CefControl;
else
return new CefNativeControl;
return new nim_comp::CefNativeControl;
}
return NULL;
@ -173,7 +173,7 @@ void BrowserBox::OnLoadStart()
void BrowserBox::OnLoadEnd(int httpStatusCode)
{
// 注册一个方法提供前端调用
cef_control_->RegisterCppFunc(L"ShowMessageBox", ToWeakCallback([](const std::string& params, nim_cef::ReportResultFunction callback) {
cef_control_->RegisterCppFunc(L"ShowMessageBox", ToWeakCallback([](const std::string& params, nim_comp::ReportResultFunction callback) {
MessageBoxA(NULL, params.c_str(), "接收到 JavaScript 发来的消息", MB_OK);
callback(false, R"({ "message": "Success." })");
}));

View File

@ -36,7 +36,7 @@ public:
* Cef控件指针
* @return ui::CefControlBase* Cef控件
*/
ui::CefControlBase* GetCefControl();
nim_comp::CefControlBase* GetCefControl();
/**
*
@ -115,7 +115,7 @@ private:
void OnLoadError(CefLoadHandler::ErrorCode errorCode, const CefString& errorText, const CefString& failedUrl);
private:
ui::CefControlBase *cef_control_;
nim_comp::CefControlBase *cef_control_;
// 任务栏缩略图管理
TaskbarTabItem *taskbar_item_;

View File

@ -6,6 +6,7 @@
using namespace ui;
using namespace std;
using namespace nim_comp;
namespace
{

View File

@ -12,7 +12,7 @@ interface IDropTargetHelper;
class BrowserBox;
class BrowserTabItem;
class MultiBrowserForm : public ui::ShadowWndBase, public IDropTarget, public TaskbarManager::ITaskbarDelegate
class MultiBrowserForm : public nim_comp::ShadowWndBase, public IDropTarget, public TaskbarManager::ITaskbarDelegate
{
public:
MultiBrowserForm();

View File

@ -175,7 +175,7 @@ bool MultiBrowserForm::OnProcessTabItemDrag(ui::EventArgs* param)
// 把被拖拽的浏览器盒子生成一个宽度300的位图
HBITMAP bitmap = NULL;
if (nim_cef::CefManager::GetInstance()->IsEnableOffsetRender())
if (nim_comp::CefManager::GetInstance()->IsEnableOffsetRender())
bitmap = GenerateBoxOffsetRenderBitmap(borwser_box_tab_->GetPos(true));
else
bitmap = GenerateBoxWindowBitmap();
@ -186,7 +186,7 @@ bool MultiBrowserForm::OnProcessTabItemDrag(ui::EventArgs* param)
StdClosure cb = [=]{
MultiBrowserManager::GetInstance()->DoDragBorwserBox(active_browser_box_, bitmap, pt);
};
nbase::ThreadManager::PostTask(kThreadMain, cb);
nbase::ThreadManager::PostTask(kThreadUI, cb);
}
}
break;

View File

@ -106,7 +106,7 @@ void MultiBrowserManager::RemoveBorwserBox( std::string id, const BrowserBox* bo
}
if (box_map_.empty())
nim_cef::CefManager::GetInstance()->PostQuitMessage(0);
nim_comp::CefManager::GetInstance()->PostQuitMessage(0);
}
void MultiBrowserManager::SetEnableMerge(bool enable)

View File

@ -1,6 +1,11 @@
#pragma once
#include "browser_box.h"
enum ThreadId
{
kThreadUI
};
/** @class MultiBrowserManager
* @brief
* @date 2019/3/20

View File

@ -17,7 +17,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
// 将 bin\\cef 目录添加到环境变量,这样可以将所有 CEF 相关文件放到该目录下,方便管理
// 在项目属性->连接器->输入,延迟加载 nim_libcef.dll
nim_cef::CefManager::GetInstance()->AddCefDllToPath();
nim_comp::CefManager::GetInstance()->AddCefDllToPath();
_wsetlocale(LC_ALL, L"chs");
@ -34,7 +34,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
// 初始化 CEF
CefSettings settings;
if (!nim_cef::CefManager::GetInstance()->Initialize(nbase::win32::GetCurrentModuleDirectory() + L"cef_temp\\", settings, true))
if (!nim_comp::CefManager::GetInstance()->Initialize(nbase::win32::GetCurrentModuleDirectory() + L"cef_temp\\", settings, true))
{
return 0;
}
@ -46,7 +46,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
thread.RunOnCurrentThreadWithLoop(nbase::MessageLoop::kUIMessageLoop);
// 清理 CEF
nim_cef::CefManager::GetInstance()->UnInitialize();
nim_comp::CefManager::GetInstance()->UnInitialize();
::OleUninitialize();
@ -55,7 +55,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
void MainThread::Init()
{
nbase::ThreadManager::RegisterThread(kThreadMain);
nbase::ThreadManager::RegisterThread(kThreadUI);
std::wstring theme_dir = nbase::win32::GetCurrentModuleDirectory();
ui::GlobalManager::Startup(theme_dir + L"resources\\", ui::CreateControlCallback(), false);

View File

@ -5,6 +5,11 @@
#include "main.h"
#include "richlist_form.h"
enum ThreadId
{
kThreadUI
};
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
@ -24,7 +29,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
void MainThread::Init()
{
nbase::ThreadManager::RegisterThread(kThreadMain);
nbase::ThreadManager::RegisterThread(kThreadUI);
// 获取资源路径,初始化全局参数
std::wstring theme_dir = nbase::win32::GetCurrentModuleDirectory();

View File

@ -56,7 +56,7 @@ bool RichlistForm::OnSelected(ui::EventArgs* args)
auto message = nbase::StringPrintf(L"您选择了索引为 %d 的子项,上一次选择子项索引为 %d", current, old);
ShowMsgBox(GetHWND(), MsgboxCallback(), message, false, L"Ìáʾ", false);
nim_comp::ShowMsgBox(GetHWND(), nim_comp::MsgboxCallback(), message, false, L"Ìáʾ", false);
return true;
}

View File

@ -6,6 +6,11 @@
#include "main_form.h"
#include "VirtualTileBox.h"
enum ThreadId
{
kThreadUI
};
ui::Control* MyCreateControlCallback(const std::wstring& sName)
{
if (sName == L"VirtualTileBox")
@ -34,7 +39,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
void MainThread::Init()
{
nbase::ThreadManager::RegisterThread(kThreadMain);
nbase::ThreadManager::RegisterThread(kThreadUI);
// 获取资源路径,初始化全局参数
std::wstring theme_dir = nbase::win32::GetCurrentModuleDirectory();

View File

@ -107,7 +107,7 @@
</Link>
<Lib>
<AdditionalLibraryDirectories>..\libs\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>nim_libcef_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalOptions>/IGNORE:4006,4221 %(AdditionalOptions)</AdditionalOptions>
</Lib>
</ItemDefinitionGroup>
@ -128,7 +128,7 @@
</Link>
<Lib>
<AdditionalLibraryDirectories>..\libs\x64\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>nim_libcef_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalOptions>/IGNORE:4006,4221 %(AdditionalOptions)</AdditionalOptions>
</Lib>
</ItemDefinitionGroup>
@ -153,7 +153,7 @@
</Link>
<Lib>
<AdditionalLibraryDirectories>..\libs\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>nim_libcef.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalOptions>/IGNORE:4006,4221 %(AdditionalOptions)</AdditionalOptions>
</Lib>
</ItemDefinitionGroup>
@ -178,7 +178,7 @@
</Link>
<Lib>
<AdditionalLibraryDirectories>..\libs\x64\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>nim_libcef.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalOptions>/IGNORE:4006,4221 %(AdditionalOptions)</AdditionalOptions>
</Lib>
</ItemDefinitionGroup>