Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow microsoft-ui-xaml to support multiple sets of styles #3690

Merged
merged 18 commits into from
Dec 4, 2020

Conversation

licanhua
Copy link
Contributor

@licanhua licanhua commented Nov 24, 2020

Please ignore the first commit for CBS packaging.

Supports multiple sets of styles(In this PR, just two are used), and developer can change it by the Version

<XamlControlsResources Version=Latest>
<XamlControlsResources Version="WinUI_2dot5">

Assume we have significant change in styles in 2.6, and the control xaml is:

Foo_themeresources.xaml 
Foo_themeresources_rs5.xaml
Foo_themeresources_rs3.xaml 

The old style is moved and marked renamed it with v2.5 postfix

Foo_themeresources_v2.5.xaml 
Foo_themeresources_rs5_v2.5.xaml 
Foo_themeresources_rs3_v2.5.xaml 

If developer add new xaml files for a control, He need to manually label the page with UseVisualStyle. The Valid value is: Any, Latest and V2dot5. default is any.

    <Page Include="$(MSBuildThisFileDirectory)CommandBarFlyout_themeresources.xaml">
      <UseVisualStyle>Latest</UseVisualStyle>
      <Version>RS2</Version>
      <Type>ThemeResources</Type>
    </Page>
    <Page Include="$(MSBuildThisFileDirectory)CommandBarFlyout_themeresources_v2.5.xaml">
      <UseVisualStyle>V2dot5</UseVisualStyle>
      <Version>RS2</Version>	      <Version>RS2</Version>
      <Type>ThemeResources</Type>	      <Type>ThemeResources</Type>
    </Page>	    </Page>

Existing controls are converted by script. The script did these things:

  1. copy all .xaml files from master branch as Foo...v2.5.xaml
  2. mark the Foo....xaml as Latest
  3. mark the Foo...v2.5 as V2dot5

Because this PR is in feature/token-experiment. and this branch will merge with master branch in the future.
so I created merge.bat. At that time, You need to run it to copy all .xaml needed from master to ...v2.5.xaml

@ghost ghost added the needs-triage Issue needs to be triaged by the area owners label Nov 24, 2020
@ranjeshj ranjeshj added area-DevInternal Internal build infrastructure, code cleanup, engineering efficiency and removed needs-triage Issue needs to be triaged by the area owners labels Nov 24, 2020
@licanhua licanhua marked this pull request as ready for review November 25, 2020 01:58
dev/dll/Microsoft.UI.Xaml.vcxproj Outdated Show resolved Hide resolved
dev/dll/Microsoft.UI.Xaml.vcxproj Show resolved Hide resolved
dev/dll/Microsoft.UI.Xaml.vcxproj Outdated Show resolved Hide resolved
@licanhua
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@licanhua
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@licanhua
Copy link
Contributor Author

licanhua commented Dec 1, 2020

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

dev/dll/Microsoft.UI.Xaml.vcxproj Outdated Show resolved Hide resolved
dev/dll/Microsoft.UI.Xaml.vcxproj Outdated Show resolved Hide resolved
dev/dll/Microsoft.UI.Xaml.vcxproj Show resolved Hide resolved
@licanhua
Copy link
Contributor Author

licanhua commented Dec 1, 2020

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@licanhua
Copy link
Contributor Author

licanhua commented Dec 2, 2020

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mdtauk
Copy link
Contributor

mdtauk commented Dec 2, 2020

Is this a build time feature, so building WinUI 3.1 gives you one set of ThemeResources, but WinUI 2.5 a different set?

Or is this a run time feature where app devs can choose what Resources and Templates to use for controls?

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@licanhua
Copy link
Contributor Author

licanhua commented Dec 3, 2020

copy C:\repo\microsoft-ui-xaml\dev\CalendarDatePicker\CalendarDatePicker_themeresources.xaml D:\repo\microsoft-ui-xaml\dev\CalendarDatePicker\CalendarDatePicker_themeresources_v2.5.xaml

This script doesn't need to be checked in right?

Refers to: merge.bat:3 in 48bbfd1. [](commit_id = 48bbfd1, deletion_comment = False)

If it takes month to merge to master, I will keep it here and remove it after merging with master branch.
It includes too many files, and this script will simplify the copy

@licanhua
Copy link
Contributor Author

licanhua commented Dec 3, 2020

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

…gsl::span or std::string_view created from a temporary will be invalid when the temporary is invalidated (gsl.view).
@licanhua
Copy link
Contributor Author

licanhua commented Dec 3, 2020

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@jevansaks
Copy link
Member

If it takes month to merge to master, I will keep it here and remove it after merging with master branch.
It includes too many files, and this script will simplify the copy

I would rather not check this kind of thing in, but if you think it's valuable at least it should go in a subdir, not in the root. Maybe in the tools dir?

@licanhua
Copy link
Contributor Author

licanhua commented Dec 3, 2020

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@licanhua
Copy link
Contributor Author

licanhua commented Dec 3, 2020

If it takes month to merge to master, I will keep it here and remove it after merging with master branch.
It includes too many files, and this script will simplify the copy

I would rather not check this kind of thing in, but if you think it's valuable at least it should go in a subdir, not in the root. Maybe in the tools dir?

Make sense. I moved it to tools

@licanhua
Copy link
Contributor Author

licanhua commented Dec 4, 2020

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@licanhua licanhua merged commit eb36cf2 into feature/token-experiment Dec 4, 2020
@licanhua licanhua deleted the user/canhua/supportflag branch December 4, 2020 04:19
licanhua added a commit that referenced this pull request Jan 8, 2021
…e 2.5 (#3887)

* Initial check-in for colors/brushes, preliminary button brush updates, and adding visual states test page (#3514)

* add visual states test page

* add visual states test page

* Add new colors, update Button* brushes

* Tweaked CSV, added accent button

* Fix bad merge

* Added elevation border brushes

* Temporarily disable failing tests so other work can be unblocked.

* merge master into feature branch (#3556)

* Move build to windevbuildagents (#3511)

* Remove infobar from innerloop when it isn't explicitly included. (#3512)

* Remove infobar from innerloop when it isn't explicitly included.

* Update InnerLoopAreas.props

Remove feature area from InnerLoopAreas

* add condition

* revert innerloop solution file

* revert innerloop solution file

* Update script to add API test projects and add empty dependency list in FeatureArea.props file (#3474)

* Update new control script to add API test project

* Update script to add dependencies, clean up script

* * Rename FindElementOfTypeInSubtree  -> FindVisualChildByType (#3438)

* FindVisualChildByName() now an extension method

* internal code cleanup

* IsSelectionRequried -> IsSelectionRequired (#3404)

* IsSelectionRequried -> IsSelectionRequired

* TreeViewListAutomationPeer::IsSelectionRequired() always returns false.

* Update the test infra to account for the test app having a different name when built from the inner loop solution. (#3359)

* Feature/expander (#3492)

Adding expander control (#3492).

Co-authored-by: Keith Mahoney <[email protected]>
Co-authored-by: Stephen L Peters <[email protected]>
Co-authored-by: Marcel Wagner <[email protected]>
Co-authored-by: Felix-Dev <[email protected]>
Co-authored-by: Tony Xia <[email protected]>
Co-authored-by: EJ <[email protected]>

* update controls to use design token colors, update styles (#3728)

* merge master into feature branch (#3734)

* Move build to windevbuildagents (#3511)

* Remove infobar from innerloop when it isn't explicitly included. (#3512)

* Remove infobar from innerloop when it isn't explicitly included.

* Update InnerLoopAreas.props

Remove feature area from InnerLoopAreas

* add condition

* revert innerloop solution file

* revert innerloop solution file

* Update script to add API test projects and add empty dependency list in FeatureArea.props file (#3474)

* Update new control script to add API test project

* Update script to add dependencies, clean up script

* * Rename FindElementOfTypeInSubtree  -> FindVisualChildByType (#3438)

* FindVisualChildByName() now an extension method

* internal code cleanup

* IsSelectionRequried -> IsSelectionRequired (#3404)

* IsSelectionRequried -> IsSelectionRequired

* TreeViewListAutomationPeer::IsSelectionRequired() always returns false.

* Update the test infra to account for the test app having a different name when built from the inner loop solution. (#3359)

* Feature/expander (#3492)

Adding expander control (#3492).

* Initial check-in for colors/brushes, preliminary button brush updates, and adding visual states test page (#3514)

* add visual states test page

* add visual states test page

* Add new colors, update Button* brushes

* Tweaked CSV, added accent button

* Fix bad merge

* Added elevation border brushes

* Temporarily disable failing tests so other work can be unblocked.

* NavView: Fix CornerRadius for overflow menu and NavViewItem children flyout menu (#3082)

* Fix corner radius for the overflow menu and the children flyout menu.

* Add two interaction tests.

* Small comment improvements.

* Small comment improvement.

* Move top NavigationView specific overflow button tests from CommonTests to TopModeTests.

* Now close opened flyout in API test before finishing.

* Rename FindElementOfTypeInParentTree  -> FindVisualParentByType

* Add missing resource files to LocConfig (#3567)

* Cache IsFullScreenMode and invalidate the value only when SizeChanged is raised (#3569)

* Fix issue with ProgressRing not acting correctly when moving backwards (#3565)

* Add workaround for awkward progress ring behavior.

* Update progresring backwards behavior

* move pager resources under strings/en-us folder (#3593)

* make footer menu items public (#3519)

* update progress ring idl (#3599)

* TabView: Fix newly-added items not respecting TabWidthMode [compact] when using an ItemsSource collection (#3118)

* Fix the following issues when populating the TabView via its ItemsSource API:
* crash when clearing the ItemsSource
* TabWidthMode [compact] being ignored in XAML Markup and for newly-added items

* small comment improvement

* Added two API tests and modified existing test.

* Unrelated code which was commented out is run again.

* Add API test.

* Simplified API test.

* Merge API tests.

* Add API contract checks for corner radius.

* Ensure that listview selected index is not outside of the item range.

* Update TabView.cpp

Co-authored-by: Ranjesh <[email protected]>

* Switch to using ThemeResource for icon in InfoBar (#3603)

* Allow winui to detect if it's in CBS package (#3520)

* build cbs

* Revert "build cbs"

This reverts commit 24b6812.

* cbs:

* Update dev/dll/SharedHelpers.cpp

Co-authored-by: Jevan Saks <[email protected]>

* Update dev/dll/XamlControlsResources.cpp

Co-authored-by: Jevan Saks <[email protected]>

* remove check for old platform and add assert

* make pipeline build cbs resources.pri and manifest

* Update dev/dll/XamlControlsResources.cpp

* Update dev/dll/XamlControlsResources.cpp

* fail fast

* Update dev/dll/XamlControlsResources.cpp

* fix package name when generate CBSManifest

Co-authored-by: Jevan Saks <[email protected]>

* Doc/roadmap updates (#3618)

* Updating ordering

* Updating feature roadmap

* More updates to feature roadmap, roadmap graphic

* Update bug_report.md (#3622)

* Fix readme to mention Preview 3 instead of P2 (#3621)

* Update NavigationView pane scrolling behavior (#3602)

* Add initial layout updating, add test page

* Add first interaction tests

* Fix behavior, add scrolling behavior

* CR feedback

* Add hacky workaround for weird sizing behavior

* Update layout, add separator

* Fix updating behavior

* Remove hacky workaround, fix test

* Add fault tolerance to tests

* Update verification files

* Change Preview 2 to Preview 3 (#3626)

* Update preview_upgrade_instructions.md (#3636)

* TeachingTip: Fix background for light-dismissable tip (#3440)

* Add missing visual state setters.

* Extend API test.

* update loc strings (#3650)

* File Pipeline build break: Update Nuget from 5.2 to 5.8 (#3664)

* Fixing an issue where we needed a FileWrites to avoid file deletion. (#3661)

* Remove explicit sizes of InfoBar (#3653)

* Remove explicit sizes of InfoBar

* Set minheight for centering

* Switch to lightweight styling resources

* Update CommandBarFlyout closing animation to include button moving (#3594)

* Update more-button animation behavior

* Fix background issue

* CR feedback

* update intellisense file (#3651)

* Update AcrylicBrushes and add new AcrylicBrushes (#3498)

* Add new brushes, update CommandbarFlyout and NavigationView to use new brushes

* Update brushes

* Update brush references

* Update project file

* Update navigationview resources

* Hacky workaround XAML compiler bug

* Add check

* Add comment

* Fix typo

* Add ImageIcon (#3629)

* Add ImageIcon

* Respond to feedback and use an svg image with an MIT license.

* Fix broken test

* Platform check the IsLoaded check which was introduced in RS5

* Fix Innerloop Solution (#3697)

* Add ImageIcon

* Respond to feedback and use an svg image with an MIT license.

* Fix broken test

* Platform check the IsLoaded check which was introduced in RS5

* Add preprocessor declaration around imageIconSource code in MakeIconElementFrom

* Update InfoBarPanel API names (#3704)

* Update API names

* Remove grid.columns

* Adding PipsPager  (#3592)

* PipsControl initial structure

* PipsControl update file structure

* Add boilerplate code

* Add styles and update logic

* Remove Grid inside the PipsControl

* some layout fixes

* Update common styles

* Fix nav buttons visibility logic

* Update themeresources and fix infinite scrolling

* Clean up the code

* Remove InneLoopAreasProps from PR

* Add automation

* Update resources file

* Fix button visibility for automation

* Fix navigaiton buttons disappearing bug

* Update .idl file and add style as properties

* Add handlers for button visibility changes

* Add style handlers and update accessibility

* Add basic test with flipview

* Fix update of max number of pages

* Fix maxdisplayedpages onchange handler and address small PR issues

* remove commented code

* Update Naming

* Fix naming and fix pointer hover event

* Update Tests and leave some comments

* Update naming and tests

* Fix sv change size and override virtual methods

* Address PR comments

* Address PR issues

* Fix button not showing up on initial launch

* Clean up the code

* Update API tests

* Partially Update Tests

* Fix spacing

* Update Strings

* Attempt to fix tests

* Attempt to fix tests

* Fall back to manual scroll if fresh API is not available

* Move API check to SharedHelpers

* Fix naming

Co-authored-by: Ranjesh Jaganathan <[email protected]>

* fix tests

* ImageIcon test fix

Co-authored-by: Keith Mahoney <[email protected]>
Co-authored-by: Stephen L Peters <[email protected]>
Co-authored-by: Marcel Wagner <[email protected]>
Co-authored-by: Felix-Dev <[email protected]>
Co-authored-by: Tony Xia <[email protected]>
Co-authored-by: EJ <[email protected]>
Co-authored-by: T Paine <[email protected]>
Co-authored-by: Jevan Saks <[email protected]>
Co-authored-by: Canhua Li <[email protected]>
Co-authored-by: Ana Wishnoff <[email protected]>
Co-authored-by: Morten Nielsen <[email protected]>
Co-authored-by: Thomas Claudius Huber <[email protected]>
Co-authored-by: Luke Longley <[email protected]>
Co-authored-by: Vsevolod <[email protected]>

* add missing PipsPager generatd file (#3755)

* Allow microsoft-ui-xaml to support multiple sets of styles (#3690)

* update customtask

* update project to use the customtool and support UseVisualStyle

* support new flag in api

* missing one file change for custombuild task

* update to new api and address some comments

* fix the ->

* script to move master xaml to v2.5 and add them to proj

* manually correct the missing items

* vcxproj back to UTF8

* standard the name and replace previous with 2dot5

* batch remove last line for project

* remove pips and address commentss

* trim last line

* remove newline at the end of file

* fix ##[error]dev\dll\XamlControlsResources.cpp(249,0): Error C26449: gsl::span or std::string_view created from a temporary will be invalid when the temporary is invalidated (gsl.view).

* remove return type in lambda

* remove Expander_v2.5.xaml, move merge.bat to tools and fix the test failure

* fix test

* Fix RadioButtons colouring bug (#3756)

* fix radioButtons colouring bug

* changes from comments

* Slider Visual Update (#3768)

* visual update

* re-add missing key

* add innerthumb size animation

* add colour transitions

* changes from comments

* colour transitions fix

* prepare for merge

* Update pfx and cer used for test signing (#3882)

* update pfx

* update CalendarView.xml master

* update default setting and codegen update
avoid crash on expander, reveal, NavView and progressbar

* resolve merge conflict

* enable test

* Fix the Latest still using 2.5 styles

Co-authored-by: T Paine <[email protected]>
Co-authored-by: Ranjesh <[email protected]>
Co-authored-by: Keith Mahoney <[email protected]>
Co-authored-by: Stephen L Peters <[email protected]>
Co-authored-by: Marcel Wagner <[email protected]>
Co-authored-by: Felix-Dev <[email protected]>
Co-authored-by: Tony Xia <[email protected]>
Co-authored-by: EJ <[email protected]>
Co-authored-by: Jevan Saks <[email protected]>
Co-authored-by: Ana Wishnoff <[email protected]>
Co-authored-by: Morten Nielsen <[email protected]>
Co-authored-by: Thomas Claudius Huber <[email protected]>
Co-authored-by: Luke Longley <[email protected]>
Co-authored-by: Vsevolod <[email protected]>
Co-authored-by: Karen Lai <[email protected]>
karkarl pushed a commit that referenced this pull request Jan 8, 2021
* update customtask

* update project to use the customtool and support UseVisualStyle

* support new flag in api

* missing one file change for custombuild task

* update to new api and address some comments

* fix the ->

* script to move master xaml to v2.5 and add them to proj

* manually correct the missing items

* vcxproj back to UTF8

* standard the name and replace previous with 2dot5

* batch remove last line for project

* remove pips and address commentss

* trim last line

* remove newline at the end of file

* fix ##[error]dev\dll\XamlControlsResources.cpp(249,0): Error C26449: gsl::span or std::string_view created from a temporary will be invalid when the temporary is invalidated (gsl.view).

* remove return type in lambda

* remove Expander_v2.5.xaml, move merge.bat to tools and fix the test failure

* fix test
karkarl pushed a commit that referenced this pull request Jan 12, 2021
* update customtask

* update project to use the customtool and support UseVisualStyle

* support new flag in api

* missing one file change for custombuild task

* update to new api and address some comments

* fix the ->

* script to move master xaml to v2.5 and add them to proj

* manually correct the missing items

* vcxproj back to UTF8

* standard the name and replace previous with 2dot5

* batch remove last line for project

* remove pips and address commentss

* trim last line

* remove newline at the end of file

* fix ##[error]dev\dll\XamlControlsResources.cpp(249,0): Error C26449: gsl::span or std::string_view created from a temporary will be invalid when the temporary is invalidated (gsl.view).

* remove return type in lambda

* remove Expander_v2.5.xaml, move merge.bat to tools and fix the test failure

* fix test
karkarl pushed a commit that referenced this pull request Jan 14, 2021
* update customtask

* update project to use the customtool and support UseVisualStyle

* support new flag in api

* missing one file change for custombuild task

* update to new api and address some comments

* fix the ->

* script to move master xaml to v2.5 and add them to proj

* manually correct the missing items

* vcxproj back to UTF8

* standard the name and replace previous with 2dot5

* batch remove last line for project

* remove pips and address commentss

* trim last line

* remove newline at the end of file

* fix ##[error]dev\dll\XamlControlsResources.cpp(249,0): Error C26449: gsl::span or std::string_view created from a temporary will be invalid when the temporary is invalidated (gsl.view).

* remove return type in lambda

* remove Expander_v2.5.xaml, move merge.bat to tools and fix the test failure

* fix test
karkarl pushed a commit that referenced this pull request Jan 22, 2021
* update customtask

* update project to use the customtool and support UseVisualStyle

* support new flag in api

* missing one file change for custombuild task

* update to new api and address some comments

* fix the ->

* script to move master xaml to v2.5 and add them to proj

* manually correct the missing items

* vcxproj back to UTF8

* standard the name and replace previous with 2dot5

* batch remove last line for project

* remove pips and address commentss

* trim last line

* remove newline at the end of file

* fix ##[error]dev\dll\XamlControlsResources.cpp(249,0): Error C26449: gsl::span or std::string_view created from a temporary will be invalid when the temporary is invalidated (gsl.view).

* remove return type in lambda

* remove Expander_v2.5.xaml, move merge.bat to tools and fix the test failure

* fix test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-DevInternal Internal build infrastructure, code cleanup, engineering efficiency
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants