예제 #1
0
        void UpdateInboundModeLabel(VgcApis.Interfaces.CoreCtrlComponents.ICoreStates coreState)
        {
            var text       = @"Config";
            var tooltip    = I18N.InbModeConfigToolTip;
            var inbModeIdx = coreState.GetInboundType();
            var lower      = coreState.GetInboundIp().Equals(VgcApis.Models.Consts.Webs.LoopBackIP);

            switch (inbModeIdx)
            {
            case (int)VgcApis.Models.Datas.Enums.ProxyTypes.HTTP:
                text    = (lower ? @"h" : @"H") + coreState.GetInboundPort();
                tooltip = @"inbound -> http://" + coreState.GetInboundAddr();
                break;

            case (int)VgcApis.Models.Datas.Enums.ProxyTypes.SOCKS:
                text    = (lower ? @"s" : @"S") + coreState.GetInboundPort();
                tooltip = @"inbound -> socks://" + coreState.GetInboundAddr();
                break;

            case (int)VgcApis.Models.Datas.Enums.ProxyTypes.Custom:
                text    = I18N.Custom;
                tooltip = I18N.InbModeCustomToolTip;
                break;
            }
            UpdateControlTextAndTooltip(rlbInboundMode, text, tooltip);
        }
예제 #2
0
파일: ServerUI.cs 프로젝트: ghotm/V2RayGCon
        private void UpdateTitleTextBox(VgcApis.Interfaces.CoreCtrlComponents.ICoreStates coreStates)
        {
            var cs      = coreStates;
            var summary = VgcApis.Misc.Utils.AutoEllipsis(cs.GetSummary(), VgcApis.Models.Consts.AutoEllipsis.ServerSummaryMaxLength);
            var tip     = $"{I18N.NameColon}{cs.GetLongName()}\n{I18N.SummaryColon}{summary}";

            UpdateControlTextAndTooltip(rtboxServerTitle, cs.GetTitle(), tip);
        }
예제 #3
0
        private void UpdateSettingsLable(VgcApis.Interfaces.CoreCtrlComponents.ICoreStates coreStates)
        {
            var text = (coreStates.IsAutoRun() ? "A" : "")
                       + (coreStates.IsInjectSkipCnSite() ? "C" : "")
                       + (coreStates.IsInjectGlobalImport() ? "I" : "")
                       + (coreStates.IsUntrack() ? "U" : "");

            UpdateControlTextOndemand(rlbSetting, text);
        }
예제 #4
0
        void UpdateStatusLable(VgcApis.Interfaces.CoreCtrlComponents.ICoreStates cs)
        {
            var r         = cs.GetSpeedTestResult();
            var isTimeout = r == long.MaxValue;
            var color     = isTimeout ? Color.OrangeRed : Color.DimGray;
            var status    = cs.GetStatus();
            var tooltip   = Ticks2Tooltip(cs.GetLastSpeedTestUtcTicks());

            UpdateControlTextAndTooltip(rlbSpeedtest, status, tooltip);
            if (rlbSpeedtest.ForeColor != color)
            {
                rlbSpeedtest.ForeColor = color;
            }
        }
예제 #5
0
        void UpdateNetworkFlowLable(VgcApis.Interfaces.CoreCtrlComponents.ICoreStates coreState)
        {
            var text    = "";
            var tooltip = "";

            if (settings.isEnableStatistics)
            {
                var up   = coreState.GetUplinkTotalInBytes();
                var down = coreState.GetDownlinkTotalInBytes();
                if (up > 0 || down > 0)
                {
                    const long mib = 1024 * 1024;
                    var        dm  = down / mib;
                    text    = $"⇵ {dm}M";
                    tooltip = string.Format(I18N.NetFlowToolTipTpl, up / mib, dm);
                }
            }
            UpdateControlTextAndTooltip(rlbTotalNetFlow, text, tooltip);
        }