mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 07:29:21 +02:00
qt theme drawing for window title buttons (not finished)
git-svn-id: trunk@13629 -
This commit is contained in:
parent
d8ddd624b8
commit
0b84bcb377
@ -31,9 +31,13 @@ type
|
|||||||
);
|
);
|
||||||
TQtDrawElement = record
|
TQtDrawElement = record
|
||||||
case DrawVariant: TQtDrawVariant of
|
case DrawVariant: TQtDrawVariant of
|
||||||
qdvPrimitive : (PrimitiveElement: QStylePrimitiveElement);
|
qdvPrimitive:
|
||||||
qdvControl : (ControlElement : QStyleControlElement);
|
(PrimitiveElement: QStylePrimitiveElement);
|
||||||
qdvComplexControl: (ComplexElement : QStyleComplexControl);
|
qdvControl:
|
||||||
|
(ControlElement: QStyleControlElement);
|
||||||
|
qdvComplexControl:
|
||||||
|
(ComplexControl: QStyleComplexControl;
|
||||||
|
SubControls: QStyleSubControls);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TQtThemeServices }
|
{ TQtThemeServices }
|
||||||
@ -150,14 +154,23 @@ begin
|
|||||||
end;
|
end;
|
||||||
qdvComplexControl:
|
qdvComplexControl:
|
||||||
begin
|
begin
|
||||||
if Element.ComplexElement = QStyleCC_ToolButton then
|
case Element.ComplexControl of
|
||||||
opt := QStyleOptionToolButton_create()
|
QStyleCC_ToolButton: opt := QStyleOptionToolButton_create();
|
||||||
|
QStyleCC_TitleBar,
|
||||||
|
QStyleCC_MdiControls:
|
||||||
|
begin
|
||||||
|
opt := QStyleOptionTitleBar_create();
|
||||||
|
QStyleOptionTitleBar_setTitleBarFlags(QStyleOptionTitleBarH(opt), QtWindow or QtWindowSystemMenuHint);
|
||||||
|
end;
|
||||||
else
|
else
|
||||||
opt := QStyleOptionComplex_create(LongInt(QStyleOptionVersion), LongInt(QStyleOptionSO_Default));
|
opt := QStyleOptionComplex_create(LongInt(QStyleOptionVersion), LongInt(QStyleOptionSO_Default));
|
||||||
|
end;
|
||||||
|
|
||||||
|
QStyleOptionComplex_setSubControls(QStyleOptionComplexH(opt), Element.SubControls);
|
||||||
|
|
||||||
QStyleOption_setState(opt, GetControlState(Details));
|
QStyleOption_setState(opt, GetControlState(Details));
|
||||||
QStyleOption_setRect(opt, @ARect);
|
QStyleOption_setRect(opt, @ARect);
|
||||||
QStyle_drawComplexControl(Style, Element.ComplexElement, QStyleOptionComplexH(opt), Context.Widget);
|
QStyle_drawComplexControl(Style, Element.ComplexControl, QStyleOptionComplexH(opt), Context.Widget);
|
||||||
QStyleOption_Destroy(opt);
|
QStyleOption_Destroy(opt);
|
||||||
end;
|
end;
|
||||||
qdvPrimitive:
|
qdvPrimitive:
|
||||||
@ -278,7 +291,8 @@ begin
|
|||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
Result.DrawVariant := qdvComplexControl;
|
Result.DrawVariant := qdvComplexControl;
|
||||||
Result.ComplexElement := QStyleCC_GroupBox;
|
Result.ComplexControl := QStyleCC_GroupBox;
|
||||||
|
Result.SubControls := QStyleSC_GroupBoxFrame;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
teHeader:
|
teHeader:
|
||||||
@ -331,6 +345,29 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
teWindow:
|
||||||
|
begin
|
||||||
|
case Details.Part of
|
||||||
|
WP_SYSBUTTON: Result.SubControls := QStyleSC_TitleBarSysMenu;
|
||||||
|
WP_MINBUTTON: Result.SubControls := QStyleSC_TitleBarMinButton;
|
||||||
|
WP_MDIMINBUTTON: Result.SubControls := QStyleSC_MdiMinButton;
|
||||||
|
WP_MAXBUTTON: Result.SubControls := QStyleSC_TitleBarMaxButton;
|
||||||
|
WP_CLOSEBUTTON: Result.SubControls := QStyleSC_TitleBarCloseButton;
|
||||||
|
WP_SMALLCLOSEBUTTON: Result.SubControls := QStyleSC_TitleBarCloseButton;
|
||||||
|
WP_MDICLOSEBUTTON: Result.SubControls := QStyleSC_MdiCloseButton;
|
||||||
|
WP_RESTOREBUTTON: Result.SubControls := QStyleSC_TitleBarNormalButton;
|
||||||
|
WP_MDIRESTOREBUTTON: Result.SubControls := QStyleSC_MdiNormalButton;
|
||||||
|
WP_HELPBUTTON: Result.SubControls := QStyleSC_TitleBarContextHelpButton;
|
||||||
|
WP_MDIHELPBUTTON: Result.SubControls := QStyleSC_TitleBarContextHelpButton;
|
||||||
|
else
|
||||||
|
Result.SubControls := QStyleSC_None;
|
||||||
|
end;
|
||||||
|
if Result.SubControls >= QStyleSC_MdiMinButton then
|
||||||
|
Result.ComplexControl := QStyleCC_MdiControls
|
||||||
|
else
|
||||||
|
Result.ComplexControl := QStyleCC_TitleBar;
|
||||||
|
Result.DrawVariant := qdvComplexControl;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user