Giter VIP home page Giter VIP logo

simdsoft / redm Goto Github PK

View Code? Open in Web Editor NEW
66.0 5.0 37.0 120.21 MB

REDM是一套基于商业化标准的开源directui界面框架,不仅能提供完善的项目管理方案、详细的文档框架,也可轻松协助完成可视化界面设计,其核心库的稳定性已在内部多个大型商化项目中通过验证。

Home Page: http://hgy413.com/3426.html

License: MIT License

CMake 1.04% C++ 98.46% C 0.23% Batchfile 0.17% PowerShell 0.10%
dui directui skia duimagic uidesigner pugixml

redm's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

redm's Issues

如果开启了对话框阴影,双击对话框阴影即消失

win7以上可考虑如下方式:

static bool IsCompositionEnabled()
{
	static int NTVer = 6;
	if (NTVer < 6) return false;

	BOOL enabled = FALSE;
	DwmIsCompositionEnabled(&enabled);

	return enabled;
}
if (bShadow) {
       if(IsCompositionEnabled()) {
		// apply shadow
		int v = 2;
		DwmSetWindowAttribute(m_hWnd, 2, &v, 4);

		MARGINS margins = {1, 1, 1, 1};
		DwmExtendFrameIntoClientArea(m_hWnd, &margins);
	} else {
		; // Use CS_DROPSHADOW
	}
}

Fix building with MSYS2 MinGW-w64

After #17 I could get cmake generated the ninja build script and I could start the build. But I'm unable to complete the build. It failed right away at DMDef.h.

消息循环优化,模态对话框优化,关闭后父窗口被系统置于后层问题

关键问题原因是: Enable父窗口之前Destroy了模态对话框, 详见: https://blog.walterlv.com/post/fix-owner-window-dropping-down-when-close-a-modal-child-window.html
但现有代码里,gApp->Run消息循环结束后会DestroyWindow, 导致外部DHMDialog::DoModal里Enable父窗口时已经晚了,在Destory模态对话框时系统已经自动选择了其他进程窗口作为前台窗口, 优化思路:

  1. DMAppData::Run里面不再负责HWND的销毁, 也不再负责ActiveWindow的Enable,Disable/Enable最好成对出现,也就是只在DHMDialog::DoModal里去做, 可参考mfc代码
  2. 为了复用DMAppData::Run提供的消息循环,不在向外部暴露,进而使用顶级窗口类DMHWnd类向外暴露例如MainLoop, 进而hwnd的Destory也由DHHwnd负责

Roadmap

roadmap

v1.x 保持兼容的情况下修复一些问题

  • appveyor ci集成
  • 模态对话框父窗口隐藏问题 [bug]
  • 使用DWM重新实现对话框阴影,详见: #5
  • DUIWindow增加获取文本接口
  • 优化文本多行显示增强: a. 优化转义换行,更接近编程语言转义, b. 真实换行符支持
  • 设计器ValueEdit承载多行内容
  • 优化BSTR使用,修复内存泄露

v2.x 更多的优化,和特性

  • 升级pugixml库,保持可独立更新
  • 统一布局xml元素命名风格,目前看来有些大写,有些小写,早期dm对pugixml库做了特殊修改忽略大小写
  • 更换布局元素Static为label
  • 优化GetText/SetText,使之更易用,作为虚接口可作用于label, button, edit, richedit控件
  • 优化编码转换接口,统一为ntcvt实现,避免不必要的内存拷贝
  • CMake脚本增加C++标准选择, 例如: -D_CXX_STD=17
  • 优化BSTR使用,修复内存泄露
  • - UTF-8: 解析
    - UTF-16:
    - 文本渲染
    - 路径处理
    - 字体创建
  • 支持通过DM_EXCLUDE_XXX宏裁剪ActiveX等组件
  • 优化头文件包含,用户不再需要添加一堆DM头文件搜索路径,更方便集成到已有软件系统
  • DPI实现
  • 支持在vs2010~vs2022下编译
  • Github CI持续集成
  • svg支持
  • D2D渲染
  • Microsoft Edge webview2
  • 文档markdown化,后续可考虑集成readthedocs或docfx

v3.x 更远的理想

  • OpenGL渲染
  • Cross-platform

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.