aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Touch/Controls/TouchHamburgerButton.cs
blob: 408a90a2bf5d044cc744991bc26488fc8d62f5dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Tango.Touch.Controls
{
    public class TouchHamburgerButton : TouchButton
    {
        static TouchHamburgerButton()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(TouchHamburgerButton), new FrameworkPropertyMetadata(typeof(TouchHamburgerButton)));
        }

        public bool IsBack
        {
            get { return (bool)GetValue(IsBackProperty); }
            set { SetValue(IsBackProperty, value); }
        }
        public static readonly DependencyProperty IsBackProperty =
            DependencyProperty.Register("IsBack", typeof(bool), typeof(TouchHamburgerButton), new PropertyMetadata(false,(d,e) => (d as TouchHamburgerButton).OnIsBackChanged()));

        private void OnIsBackChanged()
        {
            if (IsBack)
            {
                VisualStateManager.GoToState(this, "Menu", true);
            }
            else
            {
                VisualStateManager.GoToState(this, "Hamburger", true);
            }
        }
    }
}
an class="w"> /// <returns></returns> /// <remarks> /// The compiler program must be located in the compilers folder. /// </remarks> protected override string GetProtoCompilerName() { return "protoc-c"; } /// <summary> /// Compiles all files in the specified folder recursively. /// </summary> /// <param name="sourceFolder">The source folder</param> /// <returns> /// Compilation result. /// </returns> public override CompilerFolderResult CompileFolder(string sourceFolder, params String[] includeFolders) { var temp = TemporaryManager.Default.CreateFolder(); PathHelper.CopyDirectory(sourceFolder, temp.Path, true); List<String> directories = Directory.GetDirectories(sourceFolder, "*", SearchOption.AllDirectories).Where(x => includeFolders == null || includeFolders.Length == 0 || includeFolders.Contains(Path.GetFileName(x))).ToList(); foreach (var dir in Directory.GetDirectories(temp.Path)) { if (!directories.Select(x => Path.GetFileName(x)).Contains(Path.GetFileName(dir))) { Directory.Delete(dir, true); } } foreach (var file in Directory.GetFiles(temp.Path, "*.proto", SearchOption.AllDirectories)) { String str = File.ReadAllText(file); var lines = str.ToLines(); lines.RemoveAll(x => x.Contains("package ")); for (int i = 0; i < lines.Count; i++) { if (!lines[i].Contains("import ") || lines[i].StartsWith("//")) { string[] wordsAndComments = lines[i].Split('/'); string lineWords = wordsAndComments.FirstOrDefault(); string[] words = lineWords.Split(' '); for (int j = 0; j < words.Length; j++) { words[j] = words[j].Split('.').LastOrDefault(); } lines[i] = String.Join(" ", words); } } str = String.Join(Environment.NewLine, lines); File.WriteAllText(file, str); } var result = base.CompileFolder(temp.Path); if (Minimize) { MinimizeFolder(result); } return result; } private void MinimizeFolder(CompilerFolderResult folder) { foreach (var childFolder in folder.Results.OfType<CompilerFolderResult>()) { MinimizeFolder(childFolder); } foreach (var childFile in folder.Results.OfType<CompilerFileResult>()) { MinimizeFile(childFile); } } private void MinimizeFile(CompilerFileResult file) { file.Content = MinimizeCode(file.Content); } private String MinimizeCode(String code) { Regex reg = new Regex("(?<=\")(\\w{1,})(?=\")"); return reg.Replace(code, ""); } } }