von sac » 13.06.2011, 21:22
Danke für den Tipp mit der shell32.dll, das sieht vielversprechend aus. Ich konnte folgende UIFILEs ausfinding machen (einfach mit Resource Hacker x64 nach "mouse" gesucht). Ich denke die UIFILE müsste zusätzlich noch "keyboard" enthalten, um festzulegen wie das selektierte Symbol fokusiert dargestellt werden soll. Könnte ich sie so noch weiter eingrenzen? Hier mal meine erste Auswahl (UIFILES 9,14,22,23,24,25,32,33,42,43,44,45,50,59,60,61):
https://rapidshare.com/files/2418716295/Dokument.txt
"mouse" und "keyboard" enthalten nur noch diese (9,25,32,43,44,45,59):
Code: Alles auswählen
9
<duixml>
<Element resid="ProperTree" sheet="propertreestyle" layout="borderlayout()" animation="rectangle|s|fast">
</Element>
<Element resid="ProperTreeInner" sheet="propertreestyle" layout="filllayout()">
<Element layoutpos="client" layout="borderlayout()">
<Element id="atom(ProperTreeLinksGroup)" layoutpos="top" layout="borderlayout()">
<Element id="atom(ProperTreeLinksHeader)" layoutpos="top" content="resstr(0xC2FB, library(shell32.dll))"/>
</Element>
<Element id="atom(ProperTreeExpandoGroup)" layout="filllayout()" layoutpos="top">
<Button id="atom(ProperTreeHeaderExpand)" layout="borderlayout()" layoutpos="top" accessible="true" accname="resstr(0x8014, library(shell32.dll))" accrole="pushbutton" active="mouse | keyboard">
<Element id="atom(ProperTreeHeader)" content="resstr(0xC2FC, library(shell32.dll))" layoutpos="left"/>
<Element id="atom(ProperTreeExpandoButtonExpand)" layoutpos="right"/>
</Button>
<Button id="atom(ProperTreeHeaderCollapse)" layout="borderlayout()" layoutpos="top" accessible="true" accname="resstr(0x8015, library(shell32.dll))" accrole="pushbutton" active="mouse | keyboard">
<Element id="atom(ProperTreeHeader)" content="resstr(0xC2FC, library(shell32.dll))" layoutpos="left"/>
<Element id="atom(ProperTreeExpandoButtonCollapse)" layoutpos="right"/>
</Button>
<Sizer id="atom(ProperTreeExpandoSizer)" sizingtarget="atom(ProperTreeLinksGroup)" ReservedTarget="atom(ProperTreeModuleInner)" SlidesUpAndDown="true" DownOrRightGrowsTarget="true" FramePersistType="2" layoutpos="top"/>
</Element>
<ProperTreeHost id="atom(ProperTreeHost)" width="170rp" layoutpos="client" accessible="true" accname="resstr(0x8001, library(shell32.dll))"/>
</Element>
<Sizer id="atom(PageSpaceControlSizer)" sizingtarget="atom(ProperTreeModuleInner)" SlidesUpAndDown="false" FramePersistType="2" layoutpos="Right"/>
</Element>
</duixml>
25
<duixml>
<CIDGroupControl accessible="true" accrole="grouping" resid="CIDVisualGroup" layout="borderlayout()">
<Element layoutpos="left" Shortcut="Auto" id="atom(Label)"/>
<Element layoutpos="left" Enabled="false" id="atom(Group)" layout="verticalflowlayout(0, 0, 0, 0)" active="mouseandkeyboard" AbsorbsShortcut="true">
</Element>
</CIDGroupControl>
</duixml>
32
<duixml>
<Element resid="FolderBand" sheet="FolderBandStyle" accessible="true" accname="resstr(0x7C03, library(shell32.dll))" accrole="toolbar" layout="BorderLayout()" padding="rect(3rp, 2rp, 9rp, 3rp)">
<Button3d id="atom(OverflowButton)" accessible="true" accname="resstr(0x7C01, library(shell32.dll))" accdesc="resstr(0x7C02, library(shell32.dll))" accrole="pushbutton" accdefaction="Click" active="mouseandkeyboard" layoutpos="left" tooltip="true"/>
<Button3d id="atom(HelpButton)" accdefaction="resstr(0x79AC, library(shell32.dll))" accdesc="resstr(0x79AF, library(shell32.dll))" accessible="true" accname="resstr(0x79AE, library(shell32.dll))" accrole="pushbutton" active="mouseandkeyboard" layoutpos="right" tooltip="true"/>
<Button3d id="atom(PreviewButton)" shortcut="80" accdefaction="resstr(0x79AC, library(shell32.dll))" accdesc="resstr(0x7AC0, library(shell32.dll))" accessible="true" accname="resstr(0x7ABF, library(shell32.dll))" accrole="checkbutton" active="mouseandkeyboard" tooltip="true"/>
</Element>
</duixml>
43
<duixml>
<AJOSplitButton resid="CommandElement" sheet="SplitButtonStylePlaceholder" layout="BorderLayout()" layoutpos="left" accessible="true" accrole="splitbutton" accdefaction="Click" active="keyboard">
<Button3d id="atom(ActionButton)" layoutpos="left" layout="BorderLayout()" active="mouse" tooltip="true">
<Element id="atom(ActionButtonIcon)" layoutpos="left"/>
<Element id="atom(ActionButtonLabel)" layoutpos="left" shortcut="-1"/>
</Button3d>
<Button3d id="atom(SplitMenuButton)" layoutpos="left" active="mouse" tooltip="true" accessible="true" accrole="buttondropdown" accname="resstr(0x79B0, library(shell32.dll))" accdesc="resstr(0x79B1, library(shell32.dll))" accdefaction="resstr(0x79AC, library(shell32.dll))"/>
</AJOSplitButton>
</duixml>
44
<duixml>
<AJOSplitButton resid="CommandElement" sheet="TaskButtonStylePlaceholder" layout="BorderLayout()" layoutpos="left" accessible="true" accrole="pushbutton" accdefaction="Click" active="keyboard">
<Button3d id="atom(ActionButton)" layoutpos="left" layout="BorderLayout()" active="mouse" tooltip="true">
<Element id="atom(ActionButtonIcon)" layoutpos="left"/>
<Element id="atom(ActionButtonLabel)" layoutpos="left" shortcut="None"/>
<Element id="atom(MenuButtonGlyph)" layoutpos="left"/>
</Button3d>
</AJOSplitButton>
<Element resid="TopViewPrefixElement" content="resstr(0xC602, library(shell32.dll))" layoutpos="left" contentalign="middleleft" padding="rect(3rp,0,0,0)" sheet="TopViewPrefix"/>
<stylesheets>
<style resid="TopViewPrefix">
<Element foreground="themeable(gtc(CommandModule, 3, 1, 3803), windowtext)"/>
</style>
</stylesheets>
</duixml>
45
<duixml>
<ViewControl resid="CommandElement" id="atom(ViewControl)" sheet="SplitButtonStylePlaceholder" layout="BorderLayout()" layoutpos="left" active="keyboard" accessible="true" accrole="splitbutton" accname="resstr(0x79A9, library(shell32.dll))" accdesc="resstr(0x7A41, library(shell32.dll))" accdefaction="resstr(0x79AC, library(shell32.dll))">
<Button3d id="atom(ActionButton)" class="ViewControl" active="mouse" layoutpos="left" layout="flowlayout(0)" accdesc="resstr(0x7A41, library(shell32.dll))" tooltip="true">
<Element id="atom(ActionButtonIcon)"/>
</Button3d>
<Button3d id="atom(SplitMenuButton)" accessible="true" accrole="buttondropdown" accname="resstr(0x79AB, library(shell32.dll))" accdesc="resstr(0x79B1, library(shell32.dll))" accdefaction="resstr(0x79AC, library(shell32.dll))" active="mouse" layoutpos="left" tooltip="true"/>
</ViewControl>
</duixml>
59
<duixml>
<Element resid="LibraryPane" layout="filllayout()" sheet="librarypanestyle">
<Sizer id="atom(LibraryPaneSizer)" sizingtarget="atom(LibraryPaneContainer)" FramePersistType="2"/>
<Element id="atom(LibraryPaneContainer)" layout="filllayout()">
<Element id="atom(LibraryPaneBackground)"/>
<Element id="atom(LibraryPaneShine)"/>
<Element id="atom(LibraryPaneOverlayContainer)" background="argb(0, 0, 0, 0)">
<Element id="atom(LibraryPaneOverlay)"/>
</Element>
<Element id="atom(LibraryPane)" class="library_pane">
<Element id="atom(LibraryIdentifier)" tooltip="true" accessible="true" accrole="statictext" active="mouse"/>
<Element id="atom(Locations)" layout="flowlayout()">
<Element class="location_includes" id="atom(Leaf)" contentalign="endellipsis"/>
<Element class="location_includes" id="atom(LocationIncludes)" content="resstr(0x95A3, library(shell32.dll))"/>
<Button id="atom(LocationButton)" accdefaction="resstr(0x79AC, library(shell32.dll))" accessible="true" accrole="pushbutton" active="mouseandkeyboard" tooltip="true"/>
</Element>
<Element layout="verticalflowlayout()">
<Element id="atom(TopViewControl)" layout="filllayout()"/>
<Element class="library_pane_spacer"/>
</Element>
</Element>
</Element>
</Element>
</duixml>
PS: Mir ist gerade aufgefallen, dass bei Vista die Icons auch bei mittelgroß genauso dargestellt werden wie bei XP mit denselben Dimensionen. Ich werde morgen einmal überprüfen, was es da in der UIFILE für Unterschiede gibt in den beiden. Vielleicht kann ich es auch hierüber eingrenzen. Das Design bei der Win7 Version der shell32.dll scheint einfach nur ein Bug zu sein (das Vista Design ist ja doch recht ähnlich und wie gesagt, da funktioniert es tadellos mit Aero).
Danke für den Tipp mit der shell32.dll, das sieht vielversprechend aus. Ich konnte folgende UIFILEs ausfinding machen (einfach mit Resource Hacker x64 nach "mouse" gesucht). Ich denke die UIFILE müsste zusätzlich noch "keyboard" enthalten, um festzulegen wie das selektierte Symbol fokusiert dargestellt werden soll. Könnte ich sie so noch weiter eingrenzen? Hier mal meine erste Auswahl (UIFILES 9,14,22,23,24,25,32,33,42,43,44,45,50,59,60,61):
[url]https://rapidshare.com/files/2418716295/Dokument.txt[/url]
"mouse" und "keyboard" enthalten nur noch diese (9,25,32,43,44,45,59):
[code]
9
<duixml>
<Element resid="ProperTree" sheet="propertreestyle" layout="borderlayout()" animation="rectangle|s|fast">
</Element>
<Element resid="ProperTreeInner" sheet="propertreestyle" layout="filllayout()">
<Element layoutpos="client" layout="borderlayout()">
<Element id="atom(ProperTreeLinksGroup)" layoutpos="top" layout="borderlayout()">
<Element id="atom(ProperTreeLinksHeader)" layoutpos="top" content="resstr(0xC2FB, library(shell32.dll))"/>
</Element>
<Element id="atom(ProperTreeExpandoGroup)" layout="filllayout()" layoutpos="top">
<Button id="atom(ProperTreeHeaderExpand)" layout="borderlayout()" layoutpos="top" accessible="true" accname="resstr(0x8014, library(shell32.dll))" accrole="pushbutton" active="mouse | keyboard">
<Element id="atom(ProperTreeHeader)" content="resstr(0xC2FC, library(shell32.dll))" layoutpos="left"/>
<Element id="atom(ProperTreeExpandoButtonExpand)" layoutpos="right"/>
</Button>
<Button id="atom(ProperTreeHeaderCollapse)" layout="borderlayout()" layoutpos="top" accessible="true" accname="resstr(0x8015, library(shell32.dll))" accrole="pushbutton" active="mouse | keyboard">
<Element id="atom(ProperTreeHeader)" content="resstr(0xC2FC, library(shell32.dll))" layoutpos="left"/>
<Element id="atom(ProperTreeExpandoButtonCollapse)" layoutpos="right"/>
</Button>
<Sizer id="atom(ProperTreeExpandoSizer)" sizingtarget="atom(ProperTreeLinksGroup)" ReservedTarget="atom(ProperTreeModuleInner)" SlidesUpAndDown="true" DownOrRightGrowsTarget="true" FramePersistType="2" layoutpos="top"/>
</Element>
<ProperTreeHost id="atom(ProperTreeHost)" width="170rp" layoutpos="client" accessible="true" accname="resstr(0x8001, library(shell32.dll))"/>
</Element>
<Sizer id="atom(PageSpaceControlSizer)" sizingtarget="atom(ProperTreeModuleInner)" SlidesUpAndDown="false" FramePersistType="2" layoutpos="Right"/>
</Element>
</duixml>
25
<duixml>
<CIDGroupControl accessible="true" accrole="grouping" resid="CIDVisualGroup" layout="borderlayout()">
<Element layoutpos="left" Shortcut="Auto" id="atom(Label)"/>
<Element layoutpos="left" Enabled="false" id="atom(Group)" layout="verticalflowlayout(0, 0, 0, 0)" active="mouseandkeyboard" AbsorbsShortcut="true">
</Element>
</CIDGroupControl>
</duixml>
32
<duixml>
<Element resid="FolderBand" sheet="FolderBandStyle" accessible="true" accname="resstr(0x7C03, library(shell32.dll))" accrole="toolbar" layout="BorderLayout()" padding="rect(3rp, 2rp, 9rp, 3rp)">
<Button3d id="atom(OverflowButton)" accessible="true" accname="resstr(0x7C01, library(shell32.dll))" accdesc="resstr(0x7C02, library(shell32.dll))" accrole="pushbutton" accdefaction="Click" active="mouseandkeyboard" layoutpos="left" tooltip="true"/>
<Button3d id="atom(HelpButton)" accdefaction="resstr(0x79AC, library(shell32.dll))" accdesc="resstr(0x79AF, library(shell32.dll))" accessible="true" accname="resstr(0x79AE, library(shell32.dll))" accrole="pushbutton" active="mouseandkeyboard" layoutpos="right" tooltip="true"/>
<Button3d id="atom(PreviewButton)" shortcut="80" accdefaction="resstr(0x79AC, library(shell32.dll))" accdesc="resstr(0x7AC0, library(shell32.dll))" accessible="true" accname="resstr(0x7ABF, library(shell32.dll))" accrole="checkbutton" active="mouseandkeyboard" tooltip="true"/>
</Element>
</duixml>
43
<duixml>
<AJOSplitButton resid="CommandElement" sheet="SplitButtonStylePlaceholder" layout="BorderLayout()" layoutpos="left" accessible="true" accrole="splitbutton" accdefaction="Click" active="keyboard">
<Button3d id="atom(ActionButton)" layoutpos="left" layout="BorderLayout()" active="mouse" tooltip="true">
<Element id="atom(ActionButtonIcon)" layoutpos="left"/>
<Element id="atom(ActionButtonLabel)" layoutpos="left" shortcut="-1"/>
</Button3d>
<Button3d id="atom(SplitMenuButton)" layoutpos="left" active="mouse" tooltip="true" accessible="true" accrole="buttondropdown" accname="resstr(0x79B0, library(shell32.dll))" accdesc="resstr(0x79B1, library(shell32.dll))" accdefaction="resstr(0x79AC, library(shell32.dll))"/>
</AJOSplitButton>
</duixml>
44
<duixml>
<AJOSplitButton resid="CommandElement" sheet="TaskButtonStylePlaceholder" layout="BorderLayout()" layoutpos="left" accessible="true" accrole="pushbutton" accdefaction="Click" active="keyboard">
<Button3d id="atom(ActionButton)" layoutpos="left" layout="BorderLayout()" active="mouse" tooltip="true">
<Element id="atom(ActionButtonIcon)" layoutpos="left"/>
<Element id="atom(ActionButtonLabel)" layoutpos="left" shortcut="None"/>
<Element id="atom(MenuButtonGlyph)" layoutpos="left"/>
</Button3d>
</AJOSplitButton>
<Element resid="TopViewPrefixElement" content="resstr(0xC602, library(shell32.dll))" layoutpos="left" contentalign="middleleft" padding="rect(3rp,0,0,0)" sheet="TopViewPrefix"/>
<stylesheets>
<style resid="TopViewPrefix">
<Element foreground="themeable(gtc(CommandModule, 3, 1, 3803), windowtext)"/>
</style>
</stylesheets>
</duixml>
45
<duixml>
<ViewControl resid="CommandElement" id="atom(ViewControl)" sheet="SplitButtonStylePlaceholder" layout="BorderLayout()" layoutpos="left" active="keyboard" accessible="true" accrole="splitbutton" accname="resstr(0x79A9, library(shell32.dll))" accdesc="resstr(0x7A41, library(shell32.dll))" accdefaction="resstr(0x79AC, library(shell32.dll))">
<Button3d id="atom(ActionButton)" class="ViewControl" active="mouse" layoutpos="left" layout="flowlayout(0)" accdesc="resstr(0x7A41, library(shell32.dll))" tooltip="true">
<Element id="atom(ActionButtonIcon)"/>
</Button3d>
<Button3d id="atom(SplitMenuButton)" accessible="true" accrole="buttondropdown" accname="resstr(0x79AB, library(shell32.dll))" accdesc="resstr(0x79B1, library(shell32.dll))" accdefaction="resstr(0x79AC, library(shell32.dll))" active="mouse" layoutpos="left" tooltip="true"/>
</ViewControl>
</duixml>
59
<duixml>
<Element resid="LibraryPane" layout="filllayout()" sheet="librarypanestyle">
<Sizer id="atom(LibraryPaneSizer)" sizingtarget="atom(LibraryPaneContainer)" FramePersistType="2"/>
<Element id="atom(LibraryPaneContainer)" layout="filllayout()">
<Element id="atom(LibraryPaneBackground)"/>
<Element id="atom(LibraryPaneShine)"/>
<Element id="atom(LibraryPaneOverlayContainer)" background="argb(0, 0, 0, 0)">
<Element id="atom(LibraryPaneOverlay)"/>
</Element>
<Element id="atom(LibraryPane)" class="library_pane">
<Element id="atom(LibraryIdentifier)" tooltip="true" accessible="true" accrole="statictext" active="mouse"/>
<Element id="atom(Locations)" layout="flowlayout()">
<Element class="location_includes" id="atom(Leaf)" contentalign="endellipsis"/>
<Element class="location_includes" id="atom(LocationIncludes)" content="resstr(0x95A3, library(shell32.dll))"/>
<Button id="atom(LocationButton)" accdefaction="resstr(0x79AC, library(shell32.dll))" accessible="true" accrole="pushbutton" active="mouseandkeyboard" tooltip="true"/>
</Element>
<Element layout="verticalflowlayout()">
<Element id="atom(TopViewControl)" layout="filllayout()"/>
<Element class="library_pane_spacer"/>
</Element>
</Element>
</Element>
</Element>
</duixml>
[/code]
PS: Mir ist gerade aufgefallen, dass bei Vista die Icons auch bei mittelgroß genauso dargestellt werden wie bei XP mit denselben Dimensionen. Ich werde morgen einmal überprüfen, was es da in der UIFILE für Unterschiede gibt in den beiden. Vielleicht kann ich es auch hierüber eingrenzen. Das Design bei der Win7 Version der shell32.dll scheint einfach nur ein Bug zu sein (das Vista Design ist ja doch recht ähnlich und wie gesagt, da funktioniert es tadellos mit Aero).