Fix tutorial bug

This commit is contained in:
vczh
2021-10-12 13:32:23 -07:00
parent d1e421ba3d
commit 81ce019fe9
6 changed files with 58 additions and 7 deletions
+20
View File
@@ -21322,6 +21322,23 @@ GuiRibbonGroup
dropdownMenu->SetControlTemplate(ct->GetSubMenuTemplate()); dropdownMenu->SetControlTemplate(ct->GetSubMenuTemplate());
} }
bool GuiRibbonGroup::IsAltAvailable()
{
return alt != L"";
}
compositions::IGuiAltActionHost* GuiRibbonGroup::GetActivatingAltHost()
{
if (IsAltAvailable())
{
return this;
}
else
{
return GuiControl::GetActivatingAltHost();
}
}
void GuiRibbonGroup::OnBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) void GuiRibbonGroup::OnBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments)
{ {
dropdownMenu->GetBoundsComposition()->SetPreferredMinSize(Size(0, containerComposition->GetBounds().Height())); dropdownMenu->GetBoundsComposition()->SetPreferredMinSize(Size(0, containerComposition->GetBounds().Height()));
@@ -21377,6 +21394,9 @@ GuiRibbonGroup
:GuiControl(themeName) :GuiControl(themeName)
, items(this) , items(this)
{ {
SetAltComposition(boundsComposition);
SetAltControl(this, false);
commandExecutor = new CommandExecutor(this); commandExecutor = new CommandExecutor(this);
{ {
stack = new GuiStackComposition(); stack = new GuiStackComposition();
+3 -1
View File
@@ -18855,7 +18855,7 @@ Ribbon Containers
}; };
/// <summary>Ribbon group control, adding to the Groups property of a <see cref="GuiRibbonTabPage"/>.</summary> /// <summary>Ribbon group control, adding to the Groups property of a <see cref="GuiRibbonTabPage"/>.</summary>
class GuiRibbonGroup : public GuiControl, public Description<GuiRibbonGroup> class GuiRibbonGroup : public GuiControl, protected compositions::GuiAltActionHostBase, public Description<GuiRibbonGroup>
{ {
friend class GuiRibbonGroupItemCollection; friend class GuiRibbonGroupItemCollection;
GUI_SPECIFY_CONTROL_TEMPLATE_TYPE(RibbonGroupTemplate, GuiControl) GUI_SPECIFY_CONTROL_TEMPLATE_TYPE(RibbonGroupTemplate, GuiControl)
@@ -18885,6 +18885,8 @@ Ribbon Containers
GuiToolstripButton* dropdownButton = nullptr; GuiToolstripButton* dropdownButton = nullptr;
GuiMenu* dropdownMenu = nullptr; GuiMenu* dropdownMenu = nullptr;
bool IsAltAvailable()override;
compositions::IGuiAltActionHost* GetActivatingAltHost()override;
void OnBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments); void OnBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
void OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments); void OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
void OnBeforeSwitchingView(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments); void OnBeforeSwitchingView(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments);
-1
View File
@@ -12,7 +12,6 @@ https://zhuanlan.zhihu.com/p/39369370
- **DocumentEditor**: When a document's height is smaller than the control, the lower part cannot click to interact with the last line. - **DocumentEditor**: When a document's height is smaller than the control, the lower part cannot click to interact with the last line.
- **DocumentEditor**: In default font, the lower part of "g" in the last line is clipped, not rendered properly. - **DocumentEditor**: In default font, the lower part of "g" in the last line is clipped, not rendered properly.
- **DocumentEditorRibbon**: The dropdown menu for ribbon gallery cannot be properly resized by dragging the resize bar. - **DocumentEditorRibbon**: The dropdown menu for ribbon gallery cannot be properly resized by dragging the resize bar.
- **ALT Sequence** ribbon group needs to behave like menu item to implement `GetActivatingAltHost`.
- **Github Issues** - **Github Issues**
- https://github.com/vczh-libraries/GacUI/issues/66 - https://github.com/vczh-libraries/GacUI/issues/66
@@ -252,7 +252,7 @@
<RibbonTabPage Text="Edit" Alt="E"> <RibbonTabPage Text="Edit" Alt="E">
<att.ContainerComposition-set PreferredMinSize="y:110"/> <att.ContainerComposition-set PreferredMinSize="y:110"/>
<att.Groups> <att.Groups>
<RibbonGroup Text="Alignment" Expandable="true" LargeImage-uri="res://ToolbarImages/EditableLarge"> <RibbonGroup Text="Alignment" Expandable="true" LargeImage-uri="res://ToolbarImages/EditableLarge" Alt="A">
<ev.ExpandButtonClicked-eval> <ev.ExpandButtonClicked-eval>
<![CDATA[ <![CDATA[
{ {
@@ -280,7 +280,7 @@
</att.Items> </att.Items>
</RibbonGroup> </RibbonGroup>
<RibbonGroup Text="Edit" LargeImage-uri="res://ToolbarImages/PasteLarge"> <RibbonGroup Text="Edit" LargeImage-uri="res://ToolbarImages/PasteLarge" Alt="E">
<att.Items> <att.Items>
<RibbonButtons MaxSize="Large" MinSize="Icon"> <RibbonButtons MaxSize="Large" MinSize="Icon">
<att.Buttons> <att.Buttons>
@@ -301,7 +301,7 @@
</att.Items> </att.Items>
</RibbonGroup> </RibbonGroup>
<RibbonGroup Text="Text"> <RibbonGroup Text="Text" Alt="T">
<att.Items> <att.Items>
<RibbonToolstrips> <RibbonToolstrips>
<att.Groups> <att.Groups>
@@ -327,7 +327,7 @@
</att.Items> </att.Items>
</RibbonGroup> </RibbonGroup>
<RibbonGroup Text="Icon Labels"> <RibbonGroup Text="Icon Labels" Alt="I">
<att.Items> <att.Items>
<RibbonButtons MaxSize="Small" MinSize="Icon"> <RibbonButtons MaxSize="Small" MinSize="Icon">
<att.Buttons> <att.Buttons>
@@ -371,7 +371,7 @@
</att.Items> </att.Items>
</RibbonGroup> </RibbonGroup>
<RibbonGroup Text="Style" LargeImage-uri="res://ToolbarImages/EditableLarge"> <RibbonGroup Text="Style" LargeImage-uri="res://ToolbarImages/EditableLarge" Alt="S">
<att.Items> <att.Items>
<BindableRibbonGalleryList ref.Name="styleGallery" ItemTemplate="demo:StyleItemTemplate" MinCount="2" MaxCount="5" VisibleItemCount="5" env.ItemType="demo::StyleGroup^"> <BindableRibbonGalleryList ref.Name="styleGallery" ItemTemplate="demo:StyleItemTemplate" MinCount="2" MaxCount="5" VisibleItemCount="5" env.ItemType="demo::StyleGroup^">
<att.ItemSource-bind>self.StyleGroups</att.ItemSource-bind> <att.ItemSource-bind>self.StyleGroups</att.ItemSource-bind>
@@ -15266,6 +15266,9 @@ Class (::demo::DocumentEditorRibbonConstructor)
auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_12)->GetItems()); auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_12)->GetItems());
::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_19)); ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_19));
} }
{
::vl::__vwsn::This(this->__vwsn_precompile_12)->SetAlt(::vl::WString(L"A", false));
}
{ {
::vl::__vwsn::This(this->__vwsn_precompile_12)->SetText(::vl::WString(L"Alignment", false)); ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetText(::vl::WString(L"Alignment", false));
} }
@@ -15364,6 +15367,9 @@ Class (::demo::DocumentEditorRibbonConstructor)
auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_23)->GetItems()); auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_23)->GetItems());
::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_33)); ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_33));
} }
{
::vl::__vwsn::This(this->__vwsn_precompile_23)->SetAlt(::vl::WString(L"E", false));
}
{ {
::vl::__vwsn::This(this->__vwsn_precompile_23)->SetText(::vl::WString(L"Edit", false)); ::vl::__vwsn::This(this->__vwsn_precompile_23)->SetText(::vl::WString(L"Edit", false));
} }
@@ -15490,6 +15496,9 @@ Class (::demo::DocumentEditorRibbonConstructor)
auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_34)->GetItems()); auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_34)->GetItems());
::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_35)); ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_35));
} }
{
::vl::__vwsn::This(this->__vwsn_precompile_34)->SetAlt(::vl::WString(L"T", false));
}
{ {
::vl::__vwsn::This(this->__vwsn_precompile_34)->SetText(::vl::WString(L"Text", false)); ::vl::__vwsn::This(this->__vwsn_precompile_34)->SetText(::vl::WString(L"Text", false));
} }
@@ -15677,6 +15686,9 @@ Class (::demo::DocumentEditorRibbonConstructor)
auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_49)->GetItems()); auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_49)->GetItems());
::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_61)); ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_61));
} }
{
::vl::__vwsn::This(this->__vwsn_precompile_49)->SetAlt(::vl::WString(L"I", false));
}
{ {
::vl::__vwsn::This(this->__vwsn_precompile_49)->SetText(::vl::WString(L"Icon Labels", false)); ::vl::__vwsn::This(this->__vwsn_precompile_49)->SetText(::vl::WString(L"Icon Labels", false));
} }
@@ -15785,6 +15797,9 @@ Class (::demo::DocumentEditorRibbonConstructor)
auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_71)->GetItems()); auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_71)->GetItems());
::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->styleGallery)); ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->styleGallery));
} }
{
::vl::__vwsn::This(this->__vwsn_precompile_71)->SetAlt(::vl::WString(L"S", false));
}
{ {
::vl::__vwsn::This(this->__vwsn_precompile_71)->SetText(::vl::WString(L"Style", false)); ::vl::__vwsn::This(this->__vwsn_precompile_71)->SetText(::vl::WString(L"Style", false));
} }
@@ -1291,6 +1291,9 @@ namespace demo
{ {
::vl::__vwsn::This(this->__vwsn_precompile_21)->SetExpandable(true); ::vl::__vwsn::This(this->__vwsn_precompile_21)->SetExpandable(true);
} }
{
::vl::__vwsn::This(this->__vwsn_precompile_21)->SetAlt(::vl::WString(L"A", false));
}
{ {
::vl::__vwsn::This(this->__vwsn_precompile_21)->SetText(::vl::WString(L"Alignment", false)); ::vl::__vwsn::This(this->__vwsn_precompile_21)->SetText(::vl::WString(L"Alignment", false));
} }
@@ -1389,6 +1392,9 @@ namespace demo
auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_32)->GetItems()); auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_32)->GetItems());
::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_42)); ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_42));
} }
{
::vl::__vwsn::This(this->__vwsn_precompile_32)->SetAlt(::vl::WString(L"E", false));
}
{ {
::vl::__vwsn::This(this->__vwsn_precompile_32)->SetText(::vl::WString(L"Edit", false)); ::vl::__vwsn::This(this->__vwsn_precompile_32)->SetText(::vl::WString(L"Edit", false));
} }
@@ -1515,6 +1521,9 @@ namespace demo
auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_43)->GetItems()); auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_43)->GetItems());
::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_44)); ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_44));
} }
{
::vl::__vwsn::This(this->__vwsn_precompile_43)->SetAlt(::vl::WString(L"T", false));
}
{ {
::vl::__vwsn::This(this->__vwsn_precompile_43)->SetText(::vl::WString(L"Text", false)); ::vl::__vwsn::This(this->__vwsn_precompile_43)->SetText(::vl::WString(L"Text", false));
} }
@@ -1702,6 +1711,9 @@ namespace demo
auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_58)->GetItems()); auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_58)->GetItems());
::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_70)); ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_70));
} }
{
::vl::__vwsn::This(this->__vwsn_precompile_58)->SetAlt(::vl::WString(L"I", false));
}
{ {
::vl::__vwsn::This(this->__vwsn_precompile_58)->SetText(::vl::WString(L"Icon Labels", false)); ::vl::__vwsn::This(this->__vwsn_precompile_58)->SetText(::vl::WString(L"Icon Labels", false));
} }
@@ -1810,6 +1822,9 @@ namespace demo
auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_80)->GetItems()); auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_80)->GetItems());
::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->styleGallery)); ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->styleGallery));
} }
{
::vl::__vwsn::This(this->__vwsn_precompile_80)->SetAlt(::vl::WString(L"S", false));
}
{ {
::vl::__vwsn::This(this->__vwsn_precompile_80)->SetText(::vl::WString(L"Style", false)); ::vl::__vwsn::This(this->__vwsn_precompile_80)->SetText(::vl::WString(L"Style", false));
} }