* Icon label 4.x-dev

Mon, 28 Jun 2021 10:08:45 +0300

author
cemkalyoncu
date
Mon, 28 Jun 2021 10:08:45 +0300
branch
4.x-dev
changeset 1694
81a7134f0140
parent 1693
b7e471ab6eed
child 1695
accb75196605

* Icon label

README.md file | annotate | diff | comparison | revisions
Source/Gorgon/Widgets/Generator.cpp file | annotate | diff | comparison | revisions
Source/Gorgon/Widgets/Generator.h file | annotate | diff | comparison | revisions
Source/Gorgon/Widgets/Registry.h file | annotate | diff | comparison | revisions
--- a/README.md	Mon Jun 07 20:56:13 2021 +0300
+++ b/README.md	Mon Jun 28 10:08:45 2021 +0300
@@ -32,7 +32,7 @@
 ### Fedora 32/33 on 64bit system dependencies
 Run the command below to install all the dependencies on Fedora distros after Fedora 26.
 
-```$ sudo dnf install gcc cmake cmake-gui libX11 libXinerama-devel.x86_64 libXrandr-devel.x86_64 libXext doxygen freetype fifechan-opengl-devel.x86_64 freetype-devel.x86_64 pulseaudio-libs-devel.x86_64 fontconfig-devel libcurl```
+```$ sudo dnf install gcc cmake cmake-gui libX11 libXinerama-devel libXrandr-devel libXext doxygen freetype fifechan-opengl-devel freetype-devel pulseaudio-libs-devel fontconfig-devel libcurl flac-devel libvorbis-devel```
 
 ----
     
--- a/Source/Gorgon/Widgets/Generator.cpp	Mon Jun 07 20:56:13 2021 +0300
+++ b/Source/Gorgon/Widgets/Generator.cpp	Mon Jun 28 10:08:45 2021 +0300
@@ -1760,6 +1760,54 @@
         return temp;
     }
 
+    UI::Template SimpleGenerator::IconLabel() {
+        Geometry::Size defsize = {GetUnitSize(1), unitsize};
+        
+        UI::Template temp = maketemplate();
+        temp.SetSpacing(spacing);
+        temp.SetSize(defsize);
+        
+        temp.AddContainer(0, UI::ComponentCondition::Always)
+            .AddIndex(3) //Border
+            .AddIndex(4) //Content
+        ;
+        
+        auto &bg = temp.AddContainer(3, UI::ComponentCondition::Always);
+        bg.Background.SetAnimation(A(Rectangle, Info));
+        bg.SetPositioning(UI::ComponentTemplate::Absolute);
+        
+        
+        auto &cont = temp.AddContainer(4, UI::ComponentCondition::Always, UI::ComponentCondition::Disabled)
+            .AddIndex(1) //icon
+            .AddIndex(2) //text
+        ;
+        cont.SetValueModification(UI::ComponentTemplate::ModifyAlpha, UI::ComponentTemplate::UseTransition);
+        cont.SetValueRange(0, 1, 0.5);
+        cont.SetReversible(true);
+        cont.SetClip(true);
+        cont.SetPadding(spacing);
+        cont.SetBorderSize(Border.Width + Border.Radius/2);
+        cont.SetPositioning(UI::ComponentTemplate::Absolute);
+        
+        auto &txt = temp.AddTextholder(1, UI::ComponentCondition::Always);
+        txt.SetRenderer(infoprinter);
+        txt.SetColor(Graphics::Color::White);
+        txt.SetAnchor(UI::Anchor::MiddleRight, UI::Anchor::MiddleLeft, UI::Anchor::MiddleLeft);
+        txt.SetDataEffect(UI::ComponentTemplate::Text);
+        txt.SetSize(100, 100, UI::Dimension::Percent);
+        txt.SetSizing(UI::ComponentTemplate::ShrinkOnly);
+        
+        auto &icon = temp.AddPlaceholder(1, UI::ComponentCondition::Icon1IsSet);
+        icon.SetDataEffect(UI::ComponentTemplate::Icon);
+        icon.SetAnchor(UI::Anchor::MiddleRight, UI::Anchor::MiddleLeft, UI::Anchor::MiddleLeft);
+        icon.SetSize(100, 100, UI::Dimension::Percent);
+        icon.SetSizing(UI::ComponentTemplate::ShrinkOnly);
+        icon.SetMargin(0, 0, 0, 0);
+        
+        
+        return temp;
+    }
+
     UI::Template SimpleGenerator::makepanel(SimpleGenerator::AssetID::BorderSide edge, bool scrollers, bool spaced, bool nobg) {
         Geometry::Size defsize = {
             GetUnitSize(6) + Border.Width * 2 * spaced + spacing * 2,
--- a/Source/Gorgon/Widgets/Generator.h	Mon Jun 07 20:56:13 2021 +0300
+++ b/Source/Gorgon/Widgets/Generator.h	Mon Jun 28 10:08:45 2021 +0300
@@ -50,6 +50,8 @@
         
         virtual UI::Template InfoLabel() = 0;
         
+        virtual UI::Template IconLabel() = 0;
+        
         
         
         virtual UI::Template Panel() = 0;
@@ -121,6 +123,8 @@
                 return *new UI::Template(LeadingLabel());
             case Label_Info:
                 return *new UI::Template(InfoLabel());
+            case Label_Icon:
+                return *new UI::Template(InfoLabel());
             case Checkbox_Regular:
                 return *new UI::Template(Checkbox());
             case Checkbox_Button:
@@ -582,6 +586,8 @@
         
         virtual UI::Template InfoLabel() override;
         
+        virtual UI::Template IconLabel() override;
+        
         
         virtual UI::Template BlankPanel() override;
         
--- a/Source/Gorgon/Widgets/Registry.h	Mon Jun 07 20:56:13 2021 +0300
+++ b/Source/Gorgon/Widgets/Registry.h	Mon Jun 28 10:08:45 2021 +0300
@@ -29,6 +29,7 @@
             Label_Subtitle,
             Label_Leading,
             Label_Info,
+            Label_Icon,
             
             Checkbox_Regular,
             Checkbox_Button,

mercurial