Example #1
0
        public MainForm()
        {
            this.InitLocalVars();

            RulerInfo rulerInfo = RulerInfo.GetDefaultRulerInfo();

            this.Init(rulerInfo);
        }
Example #2
0
        public static string GetHelpText()
        {
            RulerInfo defaultValues    = RulerInfo.GetDefaultRulerInfo();
            string    defaultLength    = defaultValues.Length.ToString();
            string    defaultThickness = defaultValues.Thickness.ToString();

            string defaultColor   = RulerInfo.GetNameFromColor(defaultValues.BackColor);
            string defaultOpacity = defaultValues.Opacity.ToString();

            Func <bool, string> flagSign = b => b ? "+" : "-";
            string defaultDownTicks      = flagSign(defaultValues.ShowDownTicks) + "d";
            string defaultFlipped        = flagSign(defaultValues.IsFlipped) + "f";
            string defaultLock           = flagSign(defaultValues.IsLocked) + "l";
            string defaultTopMost        = flagSign(defaultValues.TopMost) + "m";
            string defaultToolTop        = flagSign(defaultValues.ShowToolTip) + "t";
            string defaultUpTicks        = flagSign(defaultValues.ShowUpTicks) + "u";
            string defaultVertical       = flagSign(defaultValues.IsVertical) + "v";

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("Usage: ruler");
            sb.AppendLine("    or:    ruler [OPTIONS | FLAGS] LENGTH [THICKNESS]");
            sb.AppendLine();
            sb.AppendLine("Display a ruler on screen");
            sb.AppendLine();

            sb.AppendLine("LENGTH\t\tThe length of the ruler, in pixels (default: " + defaultLength + ")");
            sb.AppendLine("THICKNESS\tThe thickness of the ruler, in pixels (default: " + defaultThickness + ")");
            sb.AppendLine();
            sb.AppendLine("OPTIONS");
            sb.AppendLine("========");

            // Colors fanciness
            sb.AppendLine("--color=COLOR\tThe color of the ruler. One of:");
            sb.Append("\t\t     ");
            string[] colorNames = RulerInfo.Colors.Keys.OrderBy(c => c).ToArray();
            sb.Append(String.Join(", ", colorNames.Take(colorNames.Length - 1)));
            sb.Append(" or ");
            sb.Append(colorNames[colorNames.Length - 1]);
            sb.AppendLine(" (default: " + defaultColor + ")");

            sb.AppendLine("--opacity=OPACITY\tThe opacity of the ruler in a [0.1, 1.0] range (default: " + defaultOpacity + ")");
            sb.AppendLine("--usedefaults\tUse default values for all unspecified values");

            sb.AppendLine();
            sb.AppendLine("FLAGS");
            sb.AppendLine("========");
            sb.AppendLine("[+|-]d\t\tShow / hide down ticks (default: " + defaultDownTicks + ")");
            sb.AppendLine("[+|-]f\t\tFlipped / unflipped the ruler (default: " + defaultFlipped + ")");
            sb.AppendLine("[+|-]l\t\tLock / unlock the ruler (default: " + defaultLock + ")");
            sb.AppendLine("[+|-]m\t\tMake / do not make top most (default: " + defaultTopMost + ")");
            sb.AppendLine("[+|-]t\t\tShow / hide the tooltip (default: " + defaultToolTop + ")");
            sb.AppendLine("[+|-]u\t\tShow / hide up ticks (default: " + defaultUpTicks + ")");
            sb.AppendLine("[+|-]v\t\tShow the ruler vertically / horizontally (default: " + defaultVertical + ")");
            return(sb.ToString());
        }
Example #3
0
File: Config.cs Project: FDIM/ruler
 public static Config Load()
 {
     var config = new Config();
     var lines = File.Exists(ConfigPath) ? File.ReadAllLines(ConfigPath) : new string[0];
     if (lines.Length == 2)
     {
         config.HorizontalRulerInfo = RulerInfo.CovertToRulerInfo(lines[0].Split(' '));
         config.VerticalRulerInfo = RulerInfo.CovertToRulerInfo(lines[1].Split(' '));
     }
     else
     {
         config.HorizontalRulerInfo = RulerInfo.GetDefaultRulerInfo();
         config.VerticalRulerInfo = RulerInfo.GetDefaultRulerInfo(true);
     }
     return config;
 }
Example #4
0
        public MainForm()
            : this(RulerInfo.GetDefaultRulerInfo())
        {
            using (var desktopHwnd = Graphics.FromHwnd(IntPtr.Zero))
            {
                var hdc = desktopHwnd.GetHdc();

                try
                {
                    _dpiX = GetDeviceCaps(hdc, (int)DeviceCap.LOGPIXELSX);
                    _dpiY = GetDeviceCaps(hdc, (int)DeviceCap.LOGPIXELSY);
                }
                finally
                {
                    desktopHwnd.ReleaseHdc(hdc);
                }
            }
        }
Example #5
0
 public MainForm()
     : this(RulerInfo.GetDefaultRulerInfo())
 {
 }
Example #6
0
 private void ResetToDefaulHandler(object sender, EventArgs e)
 {
     RulerInfo.CopyInto(RulerInfo.GetDefaultRulerInfo(), this);
 }
Example #7
0
        public static bool ParseArguments(string[] args, out RulerInfo info, out string error)
        {
            info  = null;
            error = string.Empty;
            RulerInfo ret = args.Contains("--defaultvalues") ? RulerInfo.GetDefaultRulerInfo() : new RulerInfo();

            int numCnt = 0;

            int[] nums = new int[3];
            // Parse numerical arguments that should be at the end, if any.
            for (int i = args.Length - 1; i >= 0; i--)
            {
                if (int.TryParse(args[i], out nums[numCnt]))
                {
                    numCnt++;
                    if (numCnt > 2)
                    {
                        numCnt--;
                        error = "Too many numerical arguments";
                    }
                }
            }

            if (error != string.Empty)
            {
                return(false);
            }

            if (numCnt == 1)
            {
                ret.Length = nums[0];
            }
            else if (numCnt == 2)
            {
                ret.Length    = nums[1];
                ret.Thickness = nums[0];
            }

            for (int i = 0; i < args.Length - numCnt; i++)
            {
                if (args[i].StartsWith("--"))
                {
                    if (args[i].StartsWith("--color="))
                    {
                        string colorName = args[i].Substring(8);
                        if (!RulerInfo.Colors.Keys.Contains(colorName))
                        {
                            error = "Unknown color: " + colorName;
                            return(false);
                        }
                        ret.BackColor = RulerInfo.Colors[colorName];
                        continue;
                    }

                    if (args[i].StartsWith("--opacity="))
                    {
                        string opacityString = args[i].Substring(10);
                        double opacity;
                        if (!double.TryParse(opacityString, out opacity))
                        {
                            error = "Don't know how to parse opacity: " + opacityString;
                            return(false);
                        }
                        // need to clamp in [0.1 - 1.0] range and in 0.1 increments.
                        ret.Opacity = opacity;
                        continue;
                    }

                    if (args[i].Equals("--defaultvalues"))
                    {
                        continue;
                    }

                    error = "Unknown option: " + args[i];
                    return(false);
                }

                if (args[i].StartsWith("-") || args[i].StartsWith("+"))
                {
                    if (args[i].Length != 2)
                    {
                        error = "Unknown flag: " + args[i];
                        return(false);
                    }

                    bool enable = args[i][0] == '+';
                    char rest   = args[i][1];
                    switch (rest)
                    {
                    case 'd':
                        ret.ShowDownTicks = enable;
                        break;

                    case 'f':
                        ret.IsFlipped = enable;
                        break;

                    case 'l':
                        ret.IsLocked = enable;
                        break;

                    case 'm':
                        ret.TopMost = enable;
                        break;

                    case 't':
                        ret.ShowToolTip = enable;
                        break;

                    case 'u':
                        ret.ShowUpTicks = enable;
                        break;

                    case 'v':
                        ret.IsVertical = enable;
                        break;

                    default:
                        error = "Unknown flag: " + args[i];
                        return(false);
                    }
                    continue;
                }

                error = "Unknown option: " + args[i];
                return(false);
            }

            info = ret;

            return(true);
        }
Example #8
0
        public MainForm()
        {
            RulerInfo rulerInfo = RulerInfo.GetDefaultRulerInfo();

            this.Init(rulerInfo);
        }
Example #9
0
 public RulerForm(RulerApplicationContext context)
 {
     _context = context;
     _info    = RulerInfo.GetDefaultRulerInfo();
     this.Init();
 }