Compare commits

...

3 Commits

Author SHA1 Message Date
朱子楚\zhuzi a184e6b7df update 2024-03-15 22:18:02 +08:00
朱子楚\zhuzi 7c4bedb907 update 2024-03-15 22:02:30 +08:00
朱子楚\zhuzi 2d2f991128 update 2024-03-15 22:00:47 +08:00
5 changed files with 49 additions and 6 deletions

View File

@ -34,6 +34,26 @@ static inline bool isCompositionEnabled(){
}
return false;
}
static inline void showShadow(HWND hwnd){
if(isCompositionEnabled()){
const MARGINS shadow = { 0, 0, 1, 0 };
typedef HRESULT (WINAPI* DwmExtendFrameIntoClientAreaPtr)(HWND hWnd, const MARGINS *pMarInset);
HMODULE module = LoadLibraryW(L"dwmapi.dll");
if (module)
{
DwmExtendFrameIntoClientAreaPtr dwm_extendframe_into_client_area_;
dwm_extendframe_into_client_area_= reinterpret_cast<DwmExtendFrameIntoClientAreaPtr>(GetProcAddress(module, "DwmExtendFrameIntoClientArea"));
if (dwm_extendframe_into_client_area_)
{
dwm_extendframe_into_client_area_(hwnd, &shadow);
}
}
}else{
ULONG_PTR cNewStyle = GetClassLongPtr(hwnd, GCL_STYLE) | CS_DROPSHADOW;
SetClassLongPtr(hwnd, GCL_STYLE, cNewStyle);
}
}
#endif
FramelessEventFilter::FramelessEventFilter(FluFramelessHelper* helper){
@ -322,6 +342,11 @@ void FluFramelessHelper::componentComplete(){
_appBar.value<QObject*>()->setProperty("systemMoveEnable",false);
}
window->setFlags((window->flags()) | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint | Qt::FramelessWindowHint);
#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
if(FluTools::getInstance()->isSoftware()){
window->setFlag(Qt::FramelessWindowHint,false);
}
#endif
if(resizeable()){
window->setFlag(Qt::WindowMaximizeButtonHint);
}

View File

@ -20,6 +20,7 @@ Item {
d.flag = false
}
}
clip: true
Rectangle{
id:layout_header
width: parent.width
@ -79,10 +80,10 @@ Item {
topMargin: -1
left: layout_header.left
}
clip: true
visible: contentHeight+container.anchors.topMargin !== 0
height: contentHeight+container.anchors.topMargin
width: parent.width
z:-999
Rectangle{
id:container
anchors.fill: parent

View File

@ -9,11 +9,19 @@ FluWindow {
property Component contentDelegate
autoVisible: false
autoCenter: false
autoDestory: false
autoDestory: true
fixSize: true
Loader{
anchors.fill: parent
sourceComponent: control.visible ? control.contentDelegate : undefined
sourceComponent: {
if(control.autoDestory){
return control.visible ? control.contentDelegate : undefined
}
return control.contentDelegate
}
}
closeListener: function(event){
event.accepted = true
}
function showDialog(){
var x = transientParent.x + (transientParent.width - width)/2

View File

@ -20,6 +20,7 @@ Item {
d.flag = false
}
}
clip: true
Rectangle{
id:layout_header
width: parent.width
@ -79,10 +80,10 @@ Item {
topMargin: -1
left: layout_header.left
}
clip: true
visible: contentHeight+container.anchors.topMargin !== 0
height: contentHeight+container.anchors.topMargin
width: parent.width
z:-999
Rectangle{
id:container
anchors.fill: parent

View File

@ -9,11 +9,19 @@ FluWindow {
property Component contentDelegate
autoVisible: false
autoCenter: false
autoDestory: false
autoDestory: true
fixSize: true
Loader{
anchors.fill: parent
sourceComponent: control.visible ? control.contentDelegate : undefined
sourceComponent: {
if(control.autoDestory){
return control.visible ? control.contentDelegate : undefined
}
return control.contentDelegate
}
}
closeListener: function(event){
event.accepted = true
}
function showDialog(){
var x = transientParent.x + (transientParent.width - width)/2