1103 lines
35 KiB
Plaintext
1103 lines
35 KiB
Plaintext
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
*< FOXBIN2PRG: Version="1.21" SourceFile="themedcontrols.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
|
|
*
|
|
*
|
|
DEFINE CLASS themedbutton AS button OF "buttons.vcx"
|
|
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*<PropValue>
|
|
Name = "themedbutton"
|
|
imgBackgroundLeft.Name = "imgBackgroundLeft"
|
|
imgBackgroundMiddle.Name = "imgBackgroundMiddle"
|
|
imgBackgroundRight.Name = "imgBackgroundRight"
|
|
CMDFOCUS.Name = "CMDFOCUS"
|
|
SHPMOUSEHANDLER.Name = "SHPMOUSEHANDLER"
|
|
imgIcon.Name = "imgIcon"
|
|
LBLCAPTION.Name = "LBLCAPTION"
|
|
*</PropValue>
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedcontainer AS container
|
|
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*<DefinedPropArrayMethod>
|
|
*m: changetheme && Occurs when theme change.
|
|
*m: initthemedcontrol
|
|
*p: _memberdata && XML Metadata for customizable properties
|
|
*</DefinedPropArrayMethod>
|
|
|
|
PROTECTED Init
|
|
*<PropValue>
|
|
Anchor = 15
|
|
BackColor = 255,255,255
|
|
Height = 400
|
|
Name = "themedcontainer"
|
|
Width = 250
|
|
_memberdata = <VFPData>
|
|
<memberdata name="changetheme" type="method" display="ChangeTheme"/>
|
|
<memberdata name="initthemedcontrol" type="method" display="InitThemedControl"/>
|
|
</VFPData>
|
|
*</PropValue>
|
|
|
|
PROCEDURE changetheme && Occurs when theme change.
|
|
With _Screen.ThemesManager
|
|
This.BorderColor = .GetMember("Container.BorderColor")
|
|
Endwith
|
|
ENDPROC
|
|
|
|
PROTECTED PROCEDURE Init
|
|
This.InitThemedControl()
|
|
ENDPROC
|
|
|
|
HIDDEN PROCEDURE initthemedcontrol
|
|
If Not Vartype(_Screen.ThemesManager)=="O"
|
|
_Screen.Newobject("ThemesManager","ThemesManager",This.ClassLibrary)
|
|
Endif
|
|
This.ChangeTheme()
|
|
ENDPROC
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedexplorerbar AS explorerbar OF "explorerbar.vcx"
|
|
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*<PropValue>
|
|
Name = "themedexplorerbar"
|
|
imgBackground.Name = "imgBackground"
|
|
ctl32_scrollbar.ctlTextBox.Name = "ctlTextBox"
|
|
ctl32_scrollbar.lblname.Name = "lblname"
|
|
ctl32_scrollbar.Name = "ctl32_scrollbar"
|
|
*</PropValue>
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedexplorergroup AS explorergroup OF "explorerbar.vcx"
|
|
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*<PropValue>
|
|
Name = "themedexplorergroup"
|
|
imgBackground.Name = "imgBackground"
|
|
linLeftBorder.Name = "linLeftBorder"
|
|
linRightBorder.Name = "linRightBorder"
|
|
linBottomBorder.Name = "linBottomBorder"
|
|
imgTitle.Name = "imgTitle"
|
|
lblTitle.Name = "lblTitle"
|
|
cmdFocus.Name = "cmdFocus"
|
|
cntUserControls.Name = "cntUserControls"
|
|
imgPicture.Name = "imgPicture"
|
|
shpMouseHandler.Name = "shpMouseHandler"
|
|
*</PropValue>
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedform AS form
|
|
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
|
|
*< OBJECTDATA: ObjPath="imgBackground" UniqueID="" Timestamp="" />
|
|
|
|
*<DefinedPropArrayMethod>
|
|
*m: changetheme && Occurs when theme change.
|
|
*m: initthemedcontrol
|
|
*p: _memberdata && XML Metadata for customizable properties
|
|
*</DefinedPropArrayMethod>
|
|
|
|
*<PropValue>
|
|
Caption = "Form"
|
|
DoCreate = .T.
|
|
Left = 0
|
|
Name = "themedform"
|
|
ShowTips = .T.
|
|
Top = 0
|
|
Width = 375
|
|
WindowState = 2
|
|
_memberdata = <VFPData>
|
|
<memberdata name="changetheme" type="method" display="ChangeTheme"/>
|
|
<memberdata name="initthemedcontrol" type="method" display="InitThemedControl"/>
|
|
</VFPData>
|
|
*</PropValue>
|
|
|
|
ADD OBJECT 'imgBackground' AS image WITH ;
|
|
Height = 0, ;
|
|
Name = "imgBackground", ;
|
|
Stretch = 2, ;
|
|
Width = 0
|
|
*< END OBJECT: BaseClass="image" />
|
|
|
|
PROCEDURE changetheme && Occurs when theme change.
|
|
With _Screen.ThemesManager
|
|
This.imgBackground.Picture = .GetMember("Form.Background.Picture")
|
|
Endwith
|
|
ENDPROC
|
|
|
|
PROCEDURE Init
|
|
With Thisform.imgBackground
|
|
.ZOrder(1)
|
|
.Anchor = 0
|
|
.Height = This.Height
|
|
.Width = This.Width
|
|
.Anchor = 15
|
|
Endwith
|
|
This.InitThemedControl()
|
|
ENDPROC
|
|
|
|
HIDDEN PROCEDURE initthemedcontrol
|
|
If Not Vartype(_Screen.ThemesManager)=="O"
|
|
_Screen.Newobject("ThemesManager","ThemesManager",This.ClassLibrary)
|
|
Endif
|
|
This.ChangeTheme()
|
|
ENDPROC
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedoutlooknavbar AS outlooknavbar OF "outlooknavbar.vcx"
|
|
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*<PropValue>
|
|
Name = "themedoutlooknavbar"
|
|
panelvertical.lblCaption.Name = "lblCaption"
|
|
panelvertical.Name = "panelvertical"
|
|
title.imgBackground.Name = "imgBackground"
|
|
title.lblCaption.Name = "lblCaption"
|
|
title.Name = "title"
|
|
overflowpanel.MenuButton.imgPicture.Name = "imgPicture"
|
|
overflowpanel.MenuButton.Name = "MenuButton"
|
|
overflowpanel.MenuButton.shpTransparent.Name = "shpTransparent"
|
|
overflowpanel.Name = "overflowpanel"
|
|
shrinkbutton.Name = "shrinkbutton"
|
|
Panel.Name = "Panel"
|
|
Splitter.imgBackground.Name = "imgBackground"
|
|
Splitter.imgGripper.Name = "imgGripper"
|
|
Splitter.Name = "Splitter"
|
|
panes.ActivePage = 0
|
|
panes.ErasePage = .T.
|
|
panes.Height = 332
|
|
panes.Name = "panes"
|
|
panes.Top = 28
|
|
*</PropValue>
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedoutlooknavbartbr AS toolbar
|
|
*< CLASSDATA: Baseclass="toolbar" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
|
|
*< OBJECTDATA: ObjPath="ThemedOutlookNavBar" UniqueID="" Timestamp="" />
|
|
|
|
*<PropValue>
|
|
Caption = "Toolbar1"
|
|
Height = 406
|
|
Left = 0
|
|
Name = "themedoutlooknavbartbr"
|
|
ShowWindow = 1
|
|
Top = 0
|
|
Width = 210
|
|
*</PropValue>
|
|
|
|
ADD OBJECT 'ThemedOutlookNavBar' AS themedoutlooknavbar WITH ;
|
|
Anchor = 15, ;
|
|
Left = 5, ;
|
|
Name = "ThemedOutlookNavBar", ;
|
|
targetformname = (MWindow()), ;
|
|
Top = 3, ;
|
|
panelvertical.lblCaption.Name = "lblCaption", ;
|
|
panelvertical.Name = "panelvertical", ;
|
|
title.imgBackground.Name = "imgBackground", ;
|
|
title.lblCaption.Name = "lblCaption", ;
|
|
title.Name = "title", ;
|
|
overflowpanel.MenuButton.imgPicture.Name = "imgPicture", ;
|
|
overflowpanel.MenuButton.Name = "MenuButton", ;
|
|
overflowpanel.MenuButton.shpTransparent.Anchor = 15, ;
|
|
overflowpanel.MenuButton.shpTransparent.Name = "shpTransparent", ;
|
|
overflowpanel.Name = "overflowpanel", ;
|
|
shrinkbutton.Name = "shrinkbutton", ;
|
|
Panel.Name = "Panel", ;
|
|
Splitter.imgBackground.Name = "imgBackground", ;
|
|
Splitter.imgGripper.Name = "imgGripper", ;
|
|
Splitter.Name = "Splitter", ;
|
|
panes.ActivePage = 0, ;
|
|
panes.ErasePage = .T., ;
|
|
panes.Height = 332, ;
|
|
panes.Name = "panes", ;
|
|
panes.Top = 28
|
|
*< END OBJECT: ClassLib="themedcontrols.vcx" BaseClass="container" />
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedtitlecontainer AS control
|
|
*< CLASSDATA: Baseclass="control" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
|
|
*< OBJECTDATA: ObjPath="imgBackground" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="lblCaption" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="imgTitle" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="linTitle" UniqueID="" Timestamp="" />
|
|
|
|
*<DefinedPropArrayMethod>
|
|
*m: caption_assign
|
|
*m: changetheme && Occurs when theme change.
|
|
*m: fontname_assign
|
|
*m: initthemedcontrol
|
|
*m: picture24_assign
|
|
*p: caption && Specifies the text displayed in an object's caption.
|
|
*p: fontname && Specifies the name of the font used to display text.
|
|
*p: picture24 && 24x24 image displayed in the title.
|
|
*p: _memberdata && XML Metadata for customizable properties
|
|
*</DefinedPropArrayMethod>
|
|
|
|
PROTECTED Init
|
|
*<PropValue>
|
|
Anchor = 15
|
|
BackColor = 255,255,255
|
|
caption = .F.
|
|
fontname = Arial
|
|
Height = 400
|
|
Name = "themedtitlecontainer"
|
|
picture24 = ("")
|
|
Width = 250
|
|
_memberdata = <VFPData>
|
|
<memberdata name="caption_assign" type="method" display="Caption_Assign"/>
|
|
<memberdata name="changetheme" type="method" display="ChangeTheme"/>
|
|
<memberdata name="picture24" type="property" display="Picture24"/>
|
|
<memberdata name="picture24_assign" type="method" display="Picture24_Assign"/>
|
|
<memberdata name="caption" type="property" display="Caption"/>
|
|
<memberdata name="fontname" type="property" display="FontName"/>
|
|
<memberdata name="fontname_assign" type="method" display="FontName_Assign"/>
|
|
<memberdata name="initthemedcontrol" type="method" display="InitThemedControl"/>
|
|
</VFPData>
|
|
*</PropValue>
|
|
|
|
ADD OBJECT 'imgBackground' AS image WITH ;
|
|
Anchor = 11, ;
|
|
Height = 26, ;
|
|
Left = 1, ;
|
|
Name = "imgBackground", ;
|
|
Stretch = 2, ;
|
|
Top = 1, ;
|
|
Width = 248
|
|
*< END OBJECT: BaseClass="image" />
|
|
|
|
ADD OBJECT 'imgTitle' AS image WITH ;
|
|
Anchor = 3, ;
|
|
Height = 24, ;
|
|
Left = 3, ;
|
|
Name = "imgTitle", ;
|
|
Stretch = 1, ;
|
|
Top = 2, ;
|
|
Width = 24
|
|
*< END OBJECT: BaseClass="image" />
|
|
|
|
ADD OBJECT 'lblCaption' AS label WITH ;
|
|
Anchor = 11, ;
|
|
BackStyle = 0, ;
|
|
Caption = "Title", ;
|
|
FontBold = .T., ;
|
|
FontSize = 12, ;
|
|
Height = 22, ;
|
|
Left = 31, ;
|
|
Name = "lblCaption", ;
|
|
Top = 3, ;
|
|
Width = 213
|
|
*< END OBJECT: BaseClass="label" />
|
|
|
|
ADD OBJECT 'linTitle' AS line WITH ;
|
|
Anchor = 11, ;
|
|
Height = 0, ;
|
|
Left = 1, ;
|
|
Name = "linTitle", ;
|
|
Top = 27, ;
|
|
Width = 248
|
|
*< END OBJECT: BaseClass="line" />
|
|
|
|
HIDDEN PROCEDURE caption_assign
|
|
Lparameters vNewVal
|
|
With This
|
|
Store m.vNewVal To .Caption, .lblCaption.Caption
|
|
Endwith
|
|
ENDPROC
|
|
|
|
PROCEDURE changetheme && Occurs when theme change.
|
|
With _Screen.ThemesManager
|
|
This.BorderColor = .GetMember("Title.BorderColor")
|
|
This.imgBackground.Left = .GetMember("Title.Background.Left")
|
|
This.imgBackground.Width = This.Width - This.imgBackground.Left - 1
|
|
This.imgBackground.Picture = .GetMember("Title.Background.Picture")
|
|
This.imgBackground.Anchor = 0
|
|
This.imgBackground.Anchor = 11
|
|
This.lblCaption.ForeColor = .GetMember("Title.FontColor")
|
|
This.linTitle.BorderColor = This.BorderColor
|
|
This.linTitle.Width = This.Width - 2
|
|
This.linTitle.Anchor = 0
|
|
This.linTitle.Anchor = 11
|
|
Endwith
|
|
ENDPROC
|
|
|
|
PROCEDURE fontname_assign
|
|
Lparameters vNewVal
|
|
Store m.vNewVal To This.FontName, ;
|
|
This.lblCaption.FontName
|
|
ENDPROC
|
|
|
|
PROTECTED PROCEDURE Init
|
|
This.InitThemedControl()
|
|
ENDPROC
|
|
|
|
HIDDEN PROCEDURE initthemedcontrol
|
|
If Not Vartype(_Screen.ThemesManager)=="O"
|
|
_Screen.Newobject("ThemesManager","ThemesManager","ThemedControls.vcx")
|
|
Endif
|
|
This.ChangeTheme()
|
|
ENDPROC
|
|
|
|
HIDDEN PROCEDURE picture24_assign
|
|
Lparameters vNewVal
|
|
This.imgTitle.Picture = m.vNewVal
|
|
ENDPROC
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedtitlepage AS page
|
|
*< CLASSDATA: Baseclass="page" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
|
|
*< OBJECTDATA: ObjPath="TitleContainer" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="UserControls" UniqueID="" Timestamp="" />
|
|
|
|
*<DefinedPropArrayMethod>
|
|
*m: caption_assign && Specifies the text displayed in an object's caption.
|
|
*m: picture24_assign
|
|
*p: clientareaheight
|
|
*p: clientareatop
|
|
*p: clientareawidth
|
|
*p: picture24 && 24x24 image displayed in the title.
|
|
*p: _memberdata && XML Metadata for customizable properties
|
|
*</DefinedPropArrayMethod>
|
|
|
|
*<PropValue>
|
|
Caption = "Page1"
|
|
clientareaheight = 0
|
|
clientareatop = 0
|
|
clientareawidth = 0
|
|
Height = 379
|
|
Name = "themedtitlepage"
|
|
picture24 = .F.
|
|
Width = 229
|
|
_memberdata = <VFPData>
|
|
<memberdata name="caption_assign" type="method" display="Caption_Assign"/>
|
|
<memberdata name="picture24" type="property" display="Picture24" script="Local aControl[1]
If Aselobj(aControl) = 0
 If Aselobj(aControl, 1) = 0
 Return
 Endif
Endif
aControl[1].Picture16 = Getpict()
Return"/>
|
|
<memberdata name="picture24_assign" type="method" display="Picture24_Assign"/>
|
|
<memberdata name="clientareaheight" type="property" display="ClientAreaHeight"/>
|
|
<memberdata name="clientareatop" type="property" display="ClientAreaTop"/>
|
|
<memberdata name="clientareawidth" type="property" display="ClientAreaWidth"/>
|
|
</VFPData>
|
|
*</PropValue>
|
|
|
|
ADD OBJECT 'TitleContainer' AS themedtitlecontainer WITH ;
|
|
Name = "TitleContainer", ;
|
|
imgBackground.Name = "imgBackground", ;
|
|
lblCaption.Name = "lblCaption", ;
|
|
imgTitle.Name = "imgTitle", ;
|
|
linTitle.Name = "linTitle"
|
|
*< END OBJECT: ClassLib="themedcontrols.vcx" BaseClass="control" />
|
|
|
|
ADD OBJECT 'UserControls' AS container WITH ;
|
|
Anchor = 15, ;
|
|
BackStyle = 0, ;
|
|
BorderWidth = 0, ;
|
|
Height = 371, ;
|
|
Left = 1, ;
|
|
Name = "UserControls", ;
|
|
Top = 28, ;
|
|
Width = 248
|
|
*< END OBJECT: BaseClass="container" />
|
|
|
|
HIDDEN PROCEDURE caption_assign && Specifies the text displayed in an object's caption.
|
|
Lparameters vNewVal
|
|
This.Caption = m.vNewVal
|
|
This.TitleContainer.Caption = m.vNewVal
|
|
ENDPROC
|
|
|
|
PROCEDURE Init
|
|
Local lnAnchor
|
|
With This.TitleContainer
|
|
lnAnchor = .Anchor
|
|
.Anchor = 0
|
|
.Width = This.Parent.Width
|
|
.Height = This.Parent.Height
|
|
.Anchor = lnAnchor
|
|
Endwith
|
|
DoDefault()
|
|
ENDPROC
|
|
|
|
HIDDEN PROCEDURE picture24_assign
|
|
Lparameters vNewVal
|
|
This.Picture24 = m.vNewVal
|
|
This.TitleContainer.Picture24 = m.vNewVal
|
|
ENDPROC
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedtitlepageframe AS pageframe
|
|
*< CLASSDATA: Baseclass="pageframe" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
PROTECTED Resize
|
|
*<PropValue>
|
|
ActivePage = 1
|
|
Anchor = 7
|
|
BorderWidth = 0
|
|
ErasePage = .T.
|
|
Height = 400
|
|
MemberClass = "themedtitlepage"
|
|
MemberClassLibrary = themedcontrols.vcx
|
|
Name = "themedtitlepageframe"
|
|
PageCount = 2
|
|
Tabs = .F.
|
|
Themes = .F.
|
|
Width = 250
|
|
Themedtitlepage1.Name = "Themedtitlepage1"
|
|
Themedtitlepage1.titlecontainer.imgBackground.Name = "imgBackground"
|
|
Themedtitlepage1.titlecontainer.imgTitle.Name = "imgTitle"
|
|
Themedtitlepage1.titlecontainer.lblCaption.Name = "lblCaption"
|
|
Themedtitlepage1.titlecontainer.linTitle.Name = "linTitle"
|
|
Themedtitlepage1.titlecontainer.Name = "titlecontainer"
|
|
Themedtitlepage2.Name = "Themedtitlepage2"
|
|
Themedtitlepage2.titlecontainer.imgBackground.Name = "imgBackground"
|
|
Themedtitlepage2.titlecontainer.imgTitle.Name = "imgTitle"
|
|
Themedtitlepage2.titlecontainer.lblCaption.Name = "lblCaption"
|
|
Themedtitlepage2.titlecontainer.linTitle.Name = "linTitle"
|
|
Themedtitlepage2.titlecontainer.Name = "titlecontainer"
|
|
*</PropValue>
|
|
|
|
PROTECTED PROCEDURE Resize
|
|
*!* DoDefault()
|
|
*!* Local loPage
|
|
*!* For Each loPage In This.Pages
|
|
*!* With loPage
|
|
*!* .ClientAreaTop = .TitleHeight
|
|
*!* .ClientAreaHeight = (This.Height - .TitleHeight)
|
|
*!* .ClientAreaWidth = This.Width
|
|
*!* Endwith
|
|
*!* Endfor
|
|
*!* loPage = Null
|
|
ENDPROC
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedtoolbox AS toolbox OF "toolbox.vcx"
|
|
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*<PropValue>
|
|
Name = "themedtoolbox"
|
|
Panes.ErasePage = .T.
|
|
Panes.Height = 398
|
|
Panes.Name = "Panes"
|
|
Panes.Top = 1
|
|
*</PropValue>
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedtoolboxtbr AS toolbar
|
|
*< CLASSDATA: Baseclass="toolbar" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
|
|
*< OBJECTDATA: ObjPath="ThemedToolBox" UniqueID="" Timestamp="" />
|
|
|
|
*<PropValue>
|
|
Caption = "Toolbar1"
|
|
Height = 406
|
|
Left = 0
|
|
Name = "themedtoolboxtbr"
|
|
ShowWindow = 1
|
|
Top = 0
|
|
Width = 210
|
|
*</PropValue>
|
|
|
|
ADD OBJECT 'ThemedToolBox' AS themedtoolbox WITH ;
|
|
Left = 5, ;
|
|
Name = "ThemedToolBox", ;
|
|
Top = 3, ;
|
|
Panes.ErasePage = .T., ;
|
|
Panes.Height = 398, ;
|
|
Panes.Name = "Panes", ;
|
|
Panes.Top = 1
|
|
*< END OBJECT: ClassLib="themedcontrols.vcx" BaseClass="container" />
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedzoomnavbar AS zoomnavbar OF "zoomnavbar.vcx"
|
|
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*<PropValue>
|
|
Name = "themedzoomnavbar"
|
|
imgBackground.Name = "imgBackground"
|
|
cntReflected.Name = "cntReflected"
|
|
cntZoom.Name = "cntZoom"
|
|
shpMouseHandler.Name = "shpMouseHandler"
|
|
*</PropValue>
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themedzoomnavbartbr AS toolbar
|
|
*< CLASSDATA: Baseclass="toolbar" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
|
|
*< OBJECTDATA: ObjPath="ThemedZoomNavBar" UniqueID="" Timestamp="" />
|
|
|
|
*<PropValue>
|
|
Caption = "Toolbar1"
|
|
Height = 131
|
|
Left = 0
|
|
Name = "themedzoomnavbartbr"
|
|
ShowWindow = 1
|
|
Top = 0
|
|
Width = 210
|
|
*</PropValue>
|
|
|
|
ADD OBJECT 'ThemedZoomNavBar' AS themedzoomnavbar WITH ;
|
|
Left = 5, ;
|
|
Name = "ThemedZoomNavBar", ;
|
|
Top = 3, ;
|
|
imgBackground.Name = "imgBackground", ;
|
|
cntReflected.Name = "cntReflected", ;
|
|
cntZoom.Name = "cntZoom", ;
|
|
shpMouseHandler.Name = "shpMouseHandler"
|
|
*< END OBJECT: ClassLib="themedcontrols.vcx" BaseClass="container" />
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themesmanager AS custom
|
|
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
#INCLUDE "themedcontrols.h"
|
|
*<DefinedPropArrayMethod>
|
|
*m: activetheme_assign
|
|
*m: apigetcurrentthemename
|
|
*m: changetheme && Occurs when theme change.
|
|
*m: getmember && Get a specified theme member.
|
|
*m: getwindowstheme
|
|
*m: inheritwindowstheme_assign
|
|
*m: loadthemes && Load the available themes.
|
|
*m: loopthroughcontrols
|
|
*m: setactivetheme && Disable InheritWindowsTheme property and set ActiveTheme to the specified value.
|
|
*m: showpanel && Show a form with Themes settings that can be changed by the user.
|
|
*m: windowsthemechanged
|
|
*p: activetheme && Specify the active theme.
|
|
*p: inheritwindowstheme
|
|
*p: inheritwindowsthemetext && Text displayed in the "Inherit Windows Theme" option.
|
|
*p: tempfolder && Temp folder name used to create the temporary images.
|
|
*p: themes && An object containing all Themes.
|
|
*p: themescount && Number of available themes.
|
|
*p: themessupport
|
|
*p: themesxmlfile && Path and name of a XML file containing themes.
|
|
*p: version && ThemesManager version.
|
|
*p: _memberdata && XML Metadata for customizable properties
|
|
*</DefinedPropArrayMethod>
|
|
|
|
HIDDEN themescount,themessupport
|
|
PROTECTED version
|
|
*<PropValue>
|
|
activetheme = 5
|
|
inheritwindowstheme = .F.
|
|
inheritwindowsthemetext = \<Inherit Windows Theme
|
|
Name = "themesmanager"
|
|
tempfolder = ("")
|
|
themes = .F.
|
|
themescount = 0
|
|
themessupport = (Os(3)+Os(4)>="51")
|
|
themesxmlfile = .F.
|
|
version = 3.5.0
|
|
Width = 90
|
|
_memberdata = <VFPData>
|
|
<memberdata name="activetheme" type="property" display="ActiveTheme"/>
|
|
<memberdata name="changetheme" type="method" display="ChangeTheme"/>
|
|
<memberdata name="getmember" type="method" display="GetMember"/>
|
|
<memberdata name="version" type="property" display="Version"/>
|
|
<memberdata name="tempfolder" type="property" display="TempFolder"/>
|
|
<memberdata name="themes" type="property" display="Themes"/>
|
|
<memberdata name="loadthemes" type="method" display="LoadThemes"/>
|
|
<memberdata name="showpanel" type="method" display="ShowPanel"/>
|
|
<memberdata name="loopthroughcontrols" type="method" display="LoopThroughControls"/>
|
|
<memberdata name="themesxmlfile" type="property" display="ThemesXMLFile"/>
|
|
<memberdata name="activetheme_assign" type="method" display="ActiveTheme_Assign"/>
|
|
<memberdata name="themescount" type="property" display="ThemesCount"/>
|
|
<memberdata name="windowsthemechanged" type="method" display="WindowsThemeChanged"/>
|
|
<memberdata name="getwindowstheme" type="method" display="GetWindowsTheme"/>
|
|
<memberdata name="inheritwindowstheme" type="property" display="InheritWindowsTheme"/>
|
|
<memberdata name="inheritwindowstheme_assign" type="method" display="InheritWindowsTheme_Assign"/>
|
|
<memberdata name="themessupport" type="property" display="ThemesSupport"/>
|
|
<memberdata name="apigetcurrentthemename" type="method" display="apiGetCurrentThemeName"/>
|
|
<memberdata name="inheritwindowsthemetext" type="property" display="InheritWindowsThemeText"/>
|
|
<memberdata name="setactivetheme" type="method" display="SetActiveTheme"/>
|
|
</VFPData>
|
|
*</PropValue>
|
|
|
|
HIDDEN PROCEDURE activetheme_assign
|
|
Lparameters vNewVal
|
|
m.vNewVal = Iif(Between(m.vNewVal,1,This.ThemesCount),m.vNewVal,This.ThemesCount)
|
|
This.ActiveTheme = m.vNewVal
|
|
This.ChangeTheme()
|
|
ENDPROC
|
|
|
|
HIDDEN PROCEDURE apigetcurrentthemename
|
|
Lparameters stringThemeName, lengthThemeName, stringColorName, lengthColorName, stringSizeName, lengthSizeName
|
|
Declare Integer GetCurrentThemeName In uxtheme ;
|
|
String @ stringThemeName, ;
|
|
Integer lengthThemeName, ;
|
|
String @ stringColorName, ;
|
|
Integer lengthColorName, ;
|
|
String @ stringSizeName, ;
|
|
Integer lengthSizeName
|
|
Return GetCurrentThemeName(@m.stringThemeName, m.lengthThemeName, @m.stringColorName, m.lengthColorName, @m.stringSizeName, lengthSizeName)
|
|
ENDPROC
|
|
|
|
PROCEDURE changetheme && Occurs when theme change.
|
|
Local loForm
|
|
For Each loForm In _Screen.Forms
|
|
This.LoopThroughControls(loForm)
|
|
Endfor
|
|
loForm = Null
|
|
ENDPROC
|
|
|
|
PROCEDURE Destroy
|
|
This.InheritWindowsTheme = .F.
|
|
Store Null To _Screen.ThemesPanel
|
|
Clear Resources
|
|
ENDPROC
|
|
|
|
PROCEDURE getmember && Get a specified theme member.
|
|
Lparameters lcMemberName
|
|
m.lcMemberName = Strtran(Strtran(Upper(m.lcMemberName),".","_"),"_PICTURE","")
|
|
Return Evaluate("This.Themes.Item(This.ActiveTheme)."+m.lcMemberName)
|
|
ENDPROC
|
|
|
|
HIDDEN PROCEDURE getwindowstheme
|
|
Local lnTheme
|
|
lnTheme = 5 && Office 2007 Blue
|
|
Local lc_ColorBuff
|
|
If apiIsThemeActive()==1
|
|
Local lcWindows, lnAttempts
|
|
Local lw_ThemeFileName, lw_ColorBuff, lw_SizeBuff
|
|
Local lc_ColorBuff, llThemed
|
|
lcWindows = Os(3)
|
|
lnAttempts = 1
|
|
Do While lnAttempts<=3
|
|
Store Space(254) To ;
|
|
lw_ThemeFileName, ;
|
|
lw_ColorBuff, ;
|
|
lw_SizeBuff
|
|
llThemed = (This.apiGetCurrentThemeName(@lw_ThemeFileName, Len(lw_ThemeFileName), @lw_ColorBuff, Len(lw_ColorBuff), @lw_SizeBuff, Len(lw_SizeBuff))==0)
|
|
If Not llThemed
|
|
* Give to Windows a try to return correct current theme
|
|
lnAttempts = lnAttempts + 1
|
|
Else
|
|
Exit
|
|
Endif
|
|
Enddo
|
|
If llThemed
|
|
lc_ColorBuff = Strconv(Strconv(lw_ColorBuff,6),2)
|
|
lc_ColorBuff = Upper(Left(lc_ColorBuff, At(Chr(0), lc_ColorBuff) - 1))
|
|
Do Case
|
|
Case lcWindows=="5"
|
|
Do Case
|
|
Case (lc_ColorBuff == 'NORMALCOLOR')
|
|
lnTheme = 1 && Office 2003 Blue
|
|
Case (lc_ColorBuff == 'HOMESTEAD')
|
|
lnTheme = 2 && Office 2003 Olive
|
|
Case (lc_ColorBuff == 'METALLIC')
|
|
lnTheme = 3 && Office 2003 Silver
|
|
Endcase
|
|
Case lcWindows=="6"
|
|
If (lc_ColorBuff == 'NORMALCOLOR')
|
|
lnTheme = 4 && Office 2007 Black
|
|
Endif
|
|
Endcase
|
|
Else
|
|
lc_ColorBuff = 'Error'
|
|
If lcWindows=="5"
|
|
* Give to Windows the last chance to return correct current theme
|
|
Local lnSysColor
|
|
lnSysColor = apiGetSysColor(2)
|
|
Do Case
|
|
Case lnSysColor == 14898176
|
|
lnTheme = 1 && Office 2003 Blue
|
|
Case lnSysColor == 6922635
|
|
lnTheme = 2 && Office 2003 Olive
|
|
Case lnSysColor == 12632256
|
|
lnTheme = 3 && Office 2003 Silver
|
|
Endcase
|
|
Endif
|
|
Endif
|
|
Else
|
|
lc_ColorBuff = 'Theme is not active (Windows Classic)'
|
|
Endif
|
|
Return lnTheme
|
|
ENDPROC
|
|
|
|
HIDDEN PROCEDURE inheritwindowstheme_assign
|
|
Lparameters vNewVal
|
|
If m.vNewVal
|
|
If This.ThemesSupport
|
|
*
|
|
* Add BindWindowsEventsProxy property to _VFP
|
|
If Not Pemstatus(_vfp,"BindWindowsEventsProxy",5)
|
|
AddProperty(_vfp,"BindWindowsEventsProxy",Null)
|
|
Endif
|
|
* Create BindWindowsEventsProxy object
|
|
If Not Vartype(_vfp.BindWindowsEventsProxy)=="O"
|
|
_vfp.BindWindowsEventsProxy = Newobject("BindWindowsEventsProxy", ;
|
|
Addbs(Justpath(This.ClassLibrary))+"VFPX.vcx")
|
|
Endif
|
|
* Bind to BindWindowsEventsProxy _Msg property changes
|
|
Bindevent(_vfp.BindWindowsEventsProxy,"_Msg",This,"WindowsThemeChanged",1)
|
|
*
|
|
This.ActiveTheme = This.GetWindowsTheme()
|
|
Else
|
|
m.vNewVal = .F.
|
|
Endif
|
|
Else
|
|
If Pemstatus(_vfp,"BindWindowsEventsProxy",5)
|
|
Unbindevents(_vfp.BindWindowsEventsProxy,"_Msg",This,"WindowsThemeChanged")
|
|
Endif
|
|
Endif
|
|
This.InheritWindowsTheme = m.vNewVal
|
|
ENDPROC
|
|
|
|
PROCEDURE Init
|
|
Local lcTempFolder
|
|
Try
|
|
lcTempFolder = Addbs(Sys(5)+Sys(2003))+"Temp"
|
|
If Not Directory(lcTempFolder)
|
|
Md (lcTempFolder)
|
|
Endif
|
|
Catch
|
|
lcTempFolder = Sys(2023)
|
|
Endtry
|
|
This.TempFolder = lcTempFolder
|
|
This.LoadThemes()
|
|
*
|
|
If Not Pemstatus(_Screen,"ThemesPanel",5)
|
|
_Screen.AddProperty("ThemesPanel",Null)
|
|
Endif
|
|
ENDPROC
|
|
|
|
HIDDEN PROCEDURE loadthemes && Load the available themes.
|
|
Local lcXML
|
|
If Empty(This.ThemesXMLFile)
|
|
m.lcXML = "Themes.xml"
|
|
Else
|
|
m.lcXML = This.ThemesXMLFile
|
|
Endif
|
|
If Not File(m.lcXML)
|
|
lcXML = Forcepath(lcXML, Justpath(This.ClassLibrary))
|
|
Endif
|
|
If File(m.lcXML)
|
|
Local lcAlias, loThemes As Collection, loXA As Xmladapter, loXT As Xmltable, ;
|
|
loTheme, lcMemberName, lnMemberValue, lcMemberImage, lcImageName
|
|
m.lcAlias = Alias()
|
|
m.loThemes = Createobject("Collection")
|
|
m.loXA = Createobject("XMLAdapter")
|
|
m.loXA.LoadXML(m.lcXML,.T.)
|
|
For Each m.loXT In m.loXA.Tables
|
|
m.loXT.ToCursor()
|
|
Endfor
|
|
Store Null To m.loXA, m.loXT
|
|
Select ThemesHeader
|
|
Go Top
|
|
Scan
|
|
m.loTheme = Createobject("Empty")
|
|
Select ThemesDetails
|
|
Scan For ThemesDetails.ThemeID==ThemesHeader.ThemeID
|
|
m.lcMemberName = Alltrim(ThemesDetails.MemberName)
|
|
m.lnMemberValue = ThemesDetails.MemberValue
|
|
m.lcMemberImage = ThemesDetails.MemberImage
|
|
If Empty(m.lcMemberImage)
|
|
AddProperty(m.loTheme,m.lcMemberName,m.lnMemberValue)
|
|
Else
|
|
m.lcImageName = Addbs(This.TempFolder) + ;
|
|
Alltrim(ThemesHeader.ThemeName) + ;
|
|
"_" + m.lcMemberName + ;
|
|
Iif(Substr(m.lcMemberImage,1,2)=="BM",".bmp",".png")
|
|
If Not File(m.lcImageName)
|
|
Strtofile(m.lcMemberImage,m.lcImageName)
|
|
Endif
|
|
AddProperty(m.loTheme,m.lcMemberName,m.lcImageName)
|
|
Endif
|
|
Endscan
|
|
Select ThemesHeader
|
|
m.loThemes.Add(m.loTheme,Alltrim(ThemesHeader.ThemeName))
|
|
m.loTheme = Null
|
|
Endscan
|
|
Use In ThemesHeader
|
|
Use In ThemesDetails
|
|
If Not Empty(m.lcAlias)
|
|
Select (m.lcAlias)
|
|
Endif
|
|
This.Themes = m.loThemes
|
|
This.ThemesCount = m.loThemes.Count
|
|
m.loThemes = Null
|
|
Endif
|
|
ENDPROC
|
|
|
|
HIDDEN PROCEDURE loopthroughcontrols
|
|
Lparameters toStartObj
|
|
Local loRef, lnCnt, lnCnt2, loObj, lcClass
|
|
loRef = toStartObj
|
|
If Pemstatus(loRef, "ChangeTheme", 5)
|
|
loRef.ChangeTheme()
|
|
Endif
|
|
*** Get the Base Class of the current object
|
|
lcClass = Lower(Alltrim(loRef.BaseClass))
|
|
*** Now Process the current object
|
|
Do Case
|
|
*** First Check for the classes with other collection names
|
|
Case lcClass = 'pageframe'
|
|
For lnCnt = 1 To loRef.PageCount
|
|
*** Call this method for each page
|
|
This.LoopThroughControls( loRef.Pages[lnCnt] )
|
|
Next
|
|
Case lcClass = 'grid'
|
|
For lnCnt = 1 To loRef.ColumnCount
|
|
*** Call this method for each column
|
|
This.LoopThroughControls( loRef.Columns[lnCnt] )
|
|
Next
|
|
Case Inlist( lcClass, 'form', 'container', 'column', 'custom', 'toolbar') Or lcClass == 'page' &&'control'
|
|
*** If so, loop through its collection
|
|
For lnCnt = 1 To loRef.ControlCount
|
|
loObj = loRef.Controls[lnCnt]
|
|
Do Case
|
|
Case Inlist( loObj.BaseClass, 'Grid', 'Custom', 'Control', 'Container', 'Pageframe')
|
|
*** Call this method recursively if this is a contained container
|
|
This.LoopThroughControls( loObj )
|
|
Case loObj.BaseClass = 'Optiongroup' Or loObj.BaseClass = 'Commandgroup'
|
|
If Pemstatus(loObj, "ChangeTheme", 5)
|
|
loObj.ChangeTheme()
|
|
Endif
|
|
For lnCnt2 = 1 To loObj.ButtonCount
|
|
*** Call this method for each form
|
|
This.LoopThroughControls( loObj.Buttons[lnCnt2] )
|
|
Next
|
|
Otherwise
|
|
If Pemstatus(loObj, "ChangeTheme", 5)
|
|
loObj.ChangeTheme()
|
|
Endif
|
|
Endcase
|
|
Next
|
|
Otherwise
|
|
*** Nothing more to do at this level
|
|
Endcase
|
|
*** Just return
|
|
Return
|
|
ENDPROC
|
|
|
|
PROCEDURE setactivetheme && Disable InheritWindowsTheme property and set ActiveTheme to the specified value.
|
|
Lparameters lnTheme
|
|
With This
|
|
.InheritWindowsTheme = .F.
|
|
.ActiveTheme = lnTheme
|
|
Endwith
|
|
ENDPROC
|
|
|
|
PROCEDURE showpanel && Show a form with Themes settings that can be changed by the user.
|
|
Lparameters tcThemePanelClass, tcThemePanelClassLibrary
|
|
If Vartype(tcThemePanelClass) = "C" And Not Empty(tcThemePanelClass)
|
|
* Already passed in, keep going
|
|
Else
|
|
tcThemePanelClass = "ThemesPanel"
|
|
Endif
|
|
If Vartype(tcThemePanelClass) = "C" And Not Empty(tcThemePanelClassLibrary)
|
|
* Already passed in, keep going
|
|
Else
|
|
tcThemePanelClassLibrary = This.ClassLibrary
|
|
Endif
|
|
If Not Vartype(_Screen.ThemesPanel)=="O"
|
|
_Screen.ThemesPanel = Newobject(tcThemePanelClass, tcThemePanelClassLibrary,"",This.Themes,This.ThemesSupport)
|
|
Endif
|
|
_Screen.ThemesPanel.Show()
|
|
_Screen.ThemesPanel = Null
|
|
ENDPROC
|
|
|
|
PROCEDURE windowsthemechanged
|
|
If _vfp.BindWindowsEventsProxy._Msg = WM_THEMECHANGED
|
|
This.ActiveTheme = This.GetWindowsTheme()
|
|
Endif
|
|
ENDPROC
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS themespanel AS form
|
|
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
|
|
|
|
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
|
|
*< OBJECTDATA: ObjPath="lstThemes" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="cmdApply" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="cmdOk" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="cmdCancel" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="chkInherit" UniqueID="" Timestamp="" />
|
|
|
|
*<DefinedPropArrayMethod>
|
|
*m: applytheme && Apply the selected theme.
|
|
*p: oldinherit
|
|
*p: oldtheme && The active theme number before changes.
|
|
*p: _memberdata && XML Metadata for customizable properties
|
|
*</DefinedPropArrayMethod>
|
|
|
|
*<PropValue>
|
|
AlwaysOnTop = .T.
|
|
AutoCenter = .T.
|
|
BorderStyle = 2
|
|
Caption = "Change the current theme"
|
|
Desktop = .T.
|
|
DoCreate = .T.
|
|
Height = 250
|
|
MaxButton = .F.
|
|
MinButton = .F.
|
|
Name = "themespanel"
|
|
oldinherit = .F.
|
|
oldtheme = .F.
|
|
ShowWindow = 1
|
|
Width = 375
|
|
WindowType = 1
|
|
_memberdata = <VFPData>
|
|
<memberdata name="applytheme" type="method" display="ApplyTheme"/>
|
|
<memberdata name="oldtheme" type="property" display="OldTheme"/>
|
|
<memberdata name="oldinherit" type="property" display="OldInherit"/>
|
|
</VFPData>
|
|
*</PropValue>
|
|
|
|
ADD OBJECT 'chkInherit' AS checkbox WITH ;
|
|
Alignment = 0, ;
|
|
AutoSize = .T., ;
|
|
BackStyle = 0, ;
|
|
Caption = "\<Inherit Windows theme", ;
|
|
FontSize = 8, ;
|
|
Height = 16, ;
|
|
Left = 2, ;
|
|
Name = "chkInherit", ;
|
|
Top = 226, ;
|
|
Width = 128
|
|
*< END OBJECT: BaseClass="checkbox" />
|
|
|
|
ADD OBJECT 'cmdApply' AS commandbutton WITH ;
|
|
Caption = "\<Apply", ;
|
|
FontSize = 8, ;
|
|
Height = 27, ;
|
|
Left = 323, ;
|
|
Name = "cmdApply", ;
|
|
TabIndex = 5, ;
|
|
Top = 221, ;
|
|
Width = 50
|
|
*< END OBJECT: BaseClass="commandbutton" />
|
|
|
|
ADD OBJECT 'cmdCancel' AS commandbutton WITH ;
|
|
Caption = "\<Cancel", ;
|
|
FontSize = 8, ;
|
|
Height = 27, ;
|
|
Left = 272, ;
|
|
Name = "cmdCancel", ;
|
|
TabIndex = 4, ;
|
|
Top = 221, ;
|
|
Width = 50
|
|
*< END OBJECT: BaseClass="commandbutton" />
|
|
|
|
ADD OBJECT 'cmdOk' AS commandbutton WITH ;
|
|
Caption = "\<Ok", ;
|
|
FontSize = 8, ;
|
|
Height = 27, ;
|
|
Left = 221, ;
|
|
Name = "cmdOk", ;
|
|
TabIndex = 3, ;
|
|
Top = 221, ;
|
|
Width = 50
|
|
*< END OBJECT: BaseClass="commandbutton" />
|
|
|
|
ADD OBJECT 'lstThemes' AS listbox WITH ;
|
|
AutoHideScrollbar = 1, ;
|
|
FontSize = 8, ;
|
|
Height = 214, ;
|
|
Left = 2, ;
|
|
Name = "lstThemes", ;
|
|
TabIndex = 1, ;
|
|
Top = 2, ;
|
|
Width = 371
|
|
*< END OBJECT: BaseClass="listbox" />
|
|
|
|
PROCEDURE applytheme && Apply the selected theme.
|
|
_Screen.ThemesManager.ActiveTheme = This.lstThemes.ListIndex
|
|
ENDPROC
|
|
|
|
PROCEDURE Init
|
|
Lparameters loThemes, llThemesSupport
|
|
Local lnTheme
|
|
For m.lnTheme=1 To m.loThemes.Count
|
|
This.lstThemes.AddItem(m.loThemes.GetKey(m.lnTheme))
|
|
Endfor
|
|
m.loThemes = Null
|
|
*
|
|
With _Screen.ThemesManager
|
|
Store .ActiveTheme To ;
|
|
This.lstThemes.Value, ;
|
|
This.OldTheme
|
|
Store .InheritWindowsTheme To ;
|
|
This.chkInherit.Value, ;
|
|
This.OldInherit
|
|
This.chkInherit.Caption = .InheritWindowsThemeText
|
|
Endwith
|
|
This.chkInherit.Visible = llThemesSupport
|
|
ENDPROC
|
|
|
|
PROCEDURE QueryUnload
|
|
Nodefault
|
|
This.Release()
|
|
ENDPROC
|
|
|
|
PROCEDURE Unload
|
|
_Screen.ThemesPanel = Null
|
|
ENDPROC
|
|
|
|
PROCEDURE chkInherit.InteractiveChange
|
|
With _Screen.ThemesManager
|
|
Store This.Value To ;
|
|
.InheritWindowsTheme
|
|
Thisform.lstThemes.Value = .ActiveTheme
|
|
Endwith
|
|
Thisform.lstThemes.Enabled = Not This.Value
|
|
ENDPROC
|
|
|
|
PROCEDURE chkInherit.ProgrammaticChange
|
|
Thisform.lstThemes.Enabled = Not This.Value
|
|
ENDPROC
|
|
|
|
PROCEDURE cmdApply.Click
|
|
Thisform.Release()
|
|
ENDPROC
|
|
|
|
PROCEDURE cmdCancel.Click
|
|
With _Screen.ThemesManager
|
|
If Not .ActiveTheme = Thisform.OldTheme
|
|
.ActiveTheme = Thisform.OldTheme
|
|
Endif
|
|
If Not .InheritWindowsTheme = Thisform.OldInherit
|
|
.InheritWindowsTheme = Thisform.OldInherit
|
|
Endif
|
|
Endwith
|
|
Thisform.Release()
|
|
ENDPROC
|
|
|
|
PROCEDURE cmdOk.Click
|
|
Thisform.Release()
|
|
ENDPROC
|
|
|
|
PROCEDURE lstThemes.Click
|
|
Thisform.ApplyTheme()
|
|
ENDPROC
|
|
|
|
PROCEDURE lstThemes.DblClick
|
|
Thisform.ApplyTheme()
|
|
Thisform.Release()
|
|
ENDPROC
|
|
|
|
ENDDEFINE
|