示例#1
0
        private IDrawable getXingKongControls(object control)
        {
            if (control is Label)
            {
                Label l = control as Label;
                if (l.Visible)
                {
                    XingKongLabel xLabel = new XingKongLabel();
                    xLabel.Name     = l.Name;
                    xLabel.Text     = l.Text;
                    xLabel.Left     = (short)l.Left;
                    xLabel.Top      = (short)l.Top;
                    xLabel.FontSize = (XingKongScreen.XFontSize)getFontSizeIndex(l.Font);
                    return(xLabel);
                }
            }
            else if (control is PictureBox)
            {
                PictureBox p = control as PictureBox;
                if (p.Visible)
                {
                    XingKongImageBox xImage = new XingKongImageBox();
                    xImage.Name = p.Name;
                    xImage.Left = p.Left;
                    xImage.Top  = p.Top;
                    xImage.LoadPicture(new Bitmap(p.Image));
                    xImage.SkipPreProceed = false;
                    return(xImage);
                }
            }
            else if (control is Button)
            {
                Button b = control as Button;
                if (b.Visible)
                {
                    XingKongButton xButton = new XingKongButton();
                    xButton.Name     = b.Name;
                    xButton.FontSize = (XingKongScreen.XFontSize)getFontSizeIndex(b.Font);
                    xButton.Text     = b.Text;
                    xButton.Left     = b.Left;
                    xButton.Top      = b.Top;
                    xButton.Width    = b.Width;
                    xButton.Height   = b.Height;
                    bool   ischekced = false;
                    string tag       = b.Tag as string;
                    if (tag != null && tag.ToLower().Equals("true"))
                    {
                        ischekced = true;
                    }
                    xButton.IsChecked = ischekced;
                    return(xButton);
                }
            }
            else if (control is Panel)
            {
                Panel p = control as Panel;
                if (p.Visible)
                {
                    XingKongPanel xPanel = new XingKongPanel();
                    xPanel.Name   = p.Name;
                    xPanel.Left   = p.Left;
                    xPanel.Top    = p.Top;
                    xPanel.Width  = p.Width;
                    xPanel.Height = p.Height;

                    foreach (Control pcontrol in p.Controls)
                    {
                        IDrawable xkControl = getXingKongControls(pcontrol);
                        if (xkControl != null)
                        {
                            xkControl.setLeft(xkControl.getLeft() + xPanel.Left);
                            xkControl.setTop(xkControl.getTop() + xPanel.Top);
                            xPanel.AddChild(xkControl);
                        }
                    }

                    return(xPanel);
                }
            }
            else if (control is ListBox)
            {
                ListBox l = control as ListBox;
                if (l.Visible)
                {
                    XingKongListBox xListBox = new XingKongListBox();
                    xListBox.setName(l.Name);
                    xListBox.setLeft(l.Left);
                    xListBox.setTop(l.Top);
                    xListBox.Width    = l.Width;
                    xListBox.Height   = l.Height;
                    xListBox.FontSize = (XingKongScreen.XFontSize)getFontSizeIndex(l.Font);
                    List <string> items = new List <string>();
                    foreach (string item in l.Items)
                    {
                        if (item != null)
                        {
                            items.Add(item);
                        }
                    }
                    xListBox.Items         = items;
                    xListBox.SelectedIndex = l.SelectedIndex;
                    return(xListBox);
                }
            }
            return(null);
        }
示例#2
0
        public override void Init()
        {
            appPath       = Path.Combine("Apps", "TpLinkNetMonitor");
            currentWindow = new XingKongWindow();
            XingKongWindow.Entity entity = JsonConvert.DeserializeObject <XingKongWindow.Entity>(File.ReadAllText(Path.Combine(this.appPath, "MainForm.json")));
            currentWindow.SetEntity(entity);

            XingKongPanel plGlobal = currentWindow.ControlsSet["plGlobal"] as XingKongPanel;

            lbGlobalDownload = plGlobal.ControlsSet["lbGlobalDownload"] as XingKongLabel;
            lbGlobalUpload   = plGlobal.ControlsSet["lbGlobalUpload"] as XingKongLabel;

            XingKongPanel plArea0 = currentWindow.ControlsSet["plArea0"] as XingKongPanel;

            lbArea0PcName = plArea0.ControlsSet["lbArea0PcName"] as XingKongLabel;
            lbArea0Ip     = plArea0.ControlsSet["lbArea0Ip"] as XingKongLabel;
            lbArea0Up     = plArea0.ControlsSet["lbArea0Up"] as XingKongLabel;
            lbArea0Down   = plArea0.ControlsSet["lbArea0Down"] as XingKongLabel;

            XingKongPanel plArea1 = currentWindow.ControlsSet["plArea1"] as XingKongPanel;

            lbArea1PcName = plArea1.ControlsSet["lbArea1PcName"] as XingKongLabel;
            lbArea1Ip     = plArea1.ControlsSet["lbArea1Ip"] as XingKongLabel;
            lbArea1Up     = plArea1.ControlsSet["lbArea1Up"] as XingKongLabel;
            lbArea1Down   = plArea1.ControlsSet["lbArea1Down"] as XingKongLabel;

            XingKongPanel plArea2 = currentWindow.ControlsSet["plArea2"] as XingKongPanel;

            lbArea2PcName = plArea2.ControlsSet["lbArea2PcName"] as XingKongLabel;
            lbArea2Ip     = plArea2.ControlsSet["lbArea2Ip"] as XingKongLabel;
            lbArea2Up     = plArea2.ControlsSet["lbArea2Up"] as XingKongLabel;
            lbArea2Down   = plArea2.ControlsSet["lbArea2Down"] as XingKongLabel;

            XingKongPanel plArea3 = currentWindow.ControlsSet["plArea3"] as XingKongPanel;

            lbArea3PcName = plArea3.ControlsSet["lbArea3PcName"] as XingKongLabel;
            lbArea3Ip     = plArea3.ControlsSet["lbArea3Ip"] as XingKongLabel;
            lbArea3Up     = plArea3.ControlsSet["lbArea3Up"] as XingKongLabel;
            lbArea3Down   = plArea3.ControlsSet["lbArea3Down"] as XingKongLabel;

            XingKongPanel plPage = currentWindow.ControlsSet["plPage"] as XingKongPanel;

            lbPage = plPage.ControlsSet["lbPage"] as XingKongLabel;
            btPrev = currentWindow.ControlsSet["btPrev"] as XingKongButton;
            btNext = currentWindow.ControlsSet["btNext"] as XingKongButton;

            //显示初始内容
            lbGlobalDownload.Text = "下载:N/A";
            lbGlobalUpload.Text   = "上传:N/A";
            for (int i = 0; i < 4; i++)
            {
                setAreaContent(i, null);
            }
            lbPage.Text = "退出:Esc";

            pageManager = new PageManager();

            XingKongScreen.ClearScreen();
            currentWindow.HardworkDraw();
            XingKongScreen.FreshScreen();

            //登陆并启动定时刷新计时器
            if (Login(out token))
            {
                LogData("登陆成功,token:" + token);

                request_url = string.Format("http://192.168.0.1/stok={0}/ds", token);

                if (timer == null)
                {
                    timer          = new System.Timers.Timer();
                    timer.Interval = 1000;
                    timer.Elapsed += Timer_Elapsed;
                    timer.Start();
                }
            }
            else
            {
                LogData("登陆失败");
                XingKongMessageBox msgBox = new XingKongMessageBox();
                msgBox.Title       = "登陆TP-Link后台失败";
                msgBox.Caption     = "提示";
                msgBox.DialogStyle = XingKongMessageBox.Style.OK;
                XingKongMessageBox.DialogResult result = msgBox.ShowAsync().Result;
                LogData("user click : " + result.ToString());
                Quit();
            }

            keyboard             = XingKongScreen.GetKeyboard();
            keyboard.KeyPressed += new Keyboard.KeyPressedHandler(this.Keyboard_KeyPressed);
        }
示例#3
0
        public override void Init()
        {
            //先显示启动画面
            showStartingInterface();

            if (!XingKongScreen.IsRunningOnMono())
            {
                Thread.Sleep(1000);
            }

            string appLoaderWindowJson = File.ReadAllText(@"MainForm.json");

            XingKongWindow.Entity windowEntity = JsonConvert.DeserializeObject <XingKongWindow.Entity>(appLoaderWindowJson);
            currentForm = new XingKongWindow();
            currentForm.SetEntity(windowEntity);

            #region 初始化日期控件
            XingKongPanel panel1 = currentForm.ControlsSet["panel1"] as XingKongPanel;
            lbWeek = panel1.ControlsSet["lbWeek"] as XingKongLabel;
            lbDate = panel1.ControlsSet["lbDate"] as XingKongLabel;
            pbM1   = currentForm.ControlsSet["pbM1"] as XingKongImageBox;
            pbM2   = currentForm.ControlsSet["pbM2"] as XingKongImageBox;
            pbS    = currentForm.ControlsSet["pbS"] as XingKongImageBox;
            pbH1   = currentForm.ControlsSet["pbH1"] as XingKongImageBox;
            pbH2   = currentForm.ControlsSet["pbH2"] as XingKongImageBox;

            pbM1.SkipPreProceed = true;
            pbM2.SkipPreProceed = true;
            pbS.SkipPreProceed  = true;
            pbH1.SkipPreProceed = true;
            pbH2.SkipPreProceed = true;

            pbS.LoadPicture(getNumPic(':'));
            #endregion

            #region 初始化天气控件
            XingKongPanel panel2 = currentForm.ControlsSet["panel2"] as XingKongPanel;
            XingKongPanel panel3 = currentForm.ControlsSet["panel3"] as XingKongPanel;
            pbWeatherIcon  = currentForm.ControlsSet["pbWeatherIcon"] as XingKongImageBox;
            lbCity         = panel2.ControlsSet["lbCity"] as XingKongLabel;
            lbWeather      = panel2.ControlsSet["lbWeather"] as XingKongLabel;
            lbTemp         = panel2.ControlsSet["lbTemp"] as XingKongLabel;
            lbWind         = panel2.ControlsSet["lbWind"] as XingKongLabel;
            lbTempCurrDesc = panel3.ControlsSet["lbTempCurrDesc"] as XingKongLabel;
            lbTempCurr     = panel3.ControlsSet["lbTempCurr"] as XingKongLabel;

            pbWeatherIcon.SkipPreProceed = true;

            lbTomoWeatherAndWind = panel2.ControlsSet["lbTomoWeatherAndWind"] as XingKongLabel;
            lbTomoTemp           = panel2.ControlsSet["lbTomoTemp"] as XingKongLabel;
            #endregion

            #region 初始化系统信息控件
            XingKongPanel panel4 = currentForm.ControlsSet["panel4"] as XingKongPanel;
            lbIp        = panel4.ControlsSet["lbIp"] as XingKongLabel;
            lbCpuStatus = panel4.ControlsSet["lbCpuStatus"] as XingKongLabel;
            lbRamStatus = panel4.ControlsSet["lbRamStatus"] as XingKongLabel;
            #endregion

            #region 初始化按钮控件
            pbPower = currentForm.ControlsSet["pbPower"] as XingKongImageBox;
            pbApp   = currentForm.ControlsSet["pbApp"] as XingKongImageBox;
            btPower = currentForm.ControlsSet["btPower"] as XingKongButton;
            btApp   = currentForm.ControlsSet["btApp"] as XingKongButton;

            pbPower.SkipPreProceed = true;
            pbApp.SkipPreProceed   = true;

            pbPower.LoadPicture(Path.Combine("SystemUI", "POWER.BMP"));
            pbApp.LoadPicture(Path.Combine("SystemUI", "APP.BMP"));
            if (XingKongScreen.IsRunningOnMono())
            {
                btPower.TextXoffset = -9;
                btApp.TextXoffset   = -9;
            }
            else
            {
                btPower.TextXoffset = -2;
                btApp.TextXoffset   = -2;
            }
            #endregion

            UpdateIp();
            UpdateTime();
            UpdateSystemInfo();
            UpdateWeather();
            currentForm.HardworkDraw();

            XingKongScreen.FreshScreen();

            keyboard             = XingKongScreen.GetKeyboard();
            keyboard.KeyPressed += Keyboard_KeyPressed;

            autoSyncMiniuteTimer          = new System.Timers.Timer();//同步时钟间隔
            autoSyncMiniuteTimer.Elapsed += AutoSyncMiniuteTimer_Elapsed;
            SyncMiniuteTimer();

            autoFreshTimer          = new System.Timers.Timer();
            autoFreshTimer.Interval = 1000 * 60;//一分钟刷新一次
            autoFreshTimer.Elapsed += AutoFreshTimer_Elapsed;

            autoWeatherTimer          = new System.Timers.Timer();
            autoWeatherTimer.Interval = 1000 * 60 * 10;//十分钟刷新一次
            autoWeatherTimer.Elapsed += AutoWeatherTimer_Elapsed;
            autoWeatherTimer.Enabled  = true;
        }