Esempio n. 1
0
 /// <summary>
 /// Called when the user closes the item's details view using any of the special
 /// buttons or just by clicking the close button
 /// </summary>
 /// <param name="flags"></param>
 public new void ProcessDetailsViewFeedback(GoogleDesktopDisplayDetailsViewFlags flags)
 {
     if ((flags &
          GoogleDesktopDisplayDetailsViewFlags.GDD_DETAILS_VIEW_FLAG_TOOLBAR_OPEN) != 0)
     {
         OpenItem();
         return;
     }
     if ((flags &
          GoogleDesktopDisplayDetailsViewFlags.GDD_DETAILS_VIEW_FLAG_NEGATIVE_FEEDBACK) != 0)
     {
         MessageBox.Show("Not interesting: " + heading + "Doing default processing");
     }
     // throw this exception to let the default processing happen for all other
     // details view commands
     throw new NotImplementedException();
 }
Esempio n. 2
0
        /// <summary>
        /// Called when the user tries to view the details view of this item. We can
        /// create an activex control which shows the details view content, or use the
        /// details view helper. If we dont want to show the details view return true.
        /// </summary>
        /// <param name="title">title for the details view</param>
        /// <param name="flags">flags specifying the features to include in the details view</param>
        /// <param name="detailsControl">store the details view activex control here</param>
        /// <returns>true if details view should be cancelled, false if not</returns>
        public new bool OnDetailsView(out string title,
                                      out GoogleDesktopDisplayDetailsViewFlags flags, out object detailsControl)
        {
            // Here we can create any ActiveX control for displaying the details, and
            // return it via the detailsControl parameter.  We choose the
            // 'GoogleDesktopDisplayDetailsViewHelper' control that will give us a
            // UI that's inline with how the sidebar looks.
            GoogleDesktopDisplayDetailsViewHelperClass details = new
                                                                 GoogleDesktopDisplayDetailsViewHelperClass();

            // set the details control's content from our own data
            String text = "Some sample text\r\n\r\nwithout formatting\r\nhttp://www.google.com";

            details.SetContent(source, time_created, text, false, layout);

            detailsControl = details;
            title          = heading;
            flags          =
                GoogleDesktopDisplayDetailsViewFlags.GDD_DETAILS_VIEW_FLAG_TOOLBAR_OPEN |
                GoogleDesktopDisplayDetailsViewFlags.GDD_DETAILS_VIEW_FLAG_NEGATIVE_FEEDBACK;

            return(false); // return false to show details view, true to cancel it.
        }
Esempio n. 3
0
 /// <summary>
 /// Called when the user closes the item's details view using any of the special
 /// buttons or just by clicking the close button
 /// </summary>
 /// <param name="flags"></param>
 public new void ProcessDetailsViewFeedback(GoogleDesktopDisplayDetailsViewFlags flags)
 {
     if ((flags &
       GoogleDesktopDisplayDetailsViewFlags.GDD_DETAILS_VIEW_FLAG_TOOLBAR_OPEN) != 0) {
     OpenItem();
     return;
       }
       if ((flags &
       GoogleDesktopDisplayDetailsViewFlags.GDD_DETAILS_VIEW_FLAG_NEGATIVE_FEEDBACK) != 0) {
     MessageBox.Show("Not interesting: " + heading + "Doing default processing");
       }
       // throw this exception to let the default processing happen for all other
       // details view commands
       throw new NotImplementedException();
 }
Esempio n. 4
0
        /// <summary>
        /// Called when the user tries to view the details view of this item. We can
        /// create an activex control which shows the details view content, or use the
        /// details view helper. If we dont want to show the details view return true.
        /// </summary>
        /// <param name="title">title for the details view</param>
        /// <param name="flags">flags specifying the features to include in the details view</param>
        /// <param name="detailsControl">store the details view activex control here</param>
        /// <returns>true if details view should be cancelled, false if not</returns>
        public new bool OnDetailsView(out string title,
        out GoogleDesktopDisplayDetailsViewFlags flags, out object detailsControl)
        {
            // Here we can create any ActiveX control for displaying the details, and
              // return it via the detailsControl parameter.  We choose the
              // 'GoogleDesktopDisplayDetailsViewHelper' control that will give us a
              // UI that's inline with how the sidebar looks.
              GoogleDesktopDisplayDetailsViewHelperClass details = new
            GoogleDesktopDisplayDetailsViewHelperClass();

              // set the details control's content from our own data
              String text = "Some sample text\r\n\r\nwithout formatting\r\nhttp://www.google.com";
              details.SetContent(source, time_created, text, false, layout);

              detailsControl = details;
              title = heading;
              flags =
            GoogleDesktopDisplayDetailsViewFlags.GDD_DETAILS_VIEW_FLAG_TOOLBAR_OPEN |
            GoogleDesktopDisplayDetailsViewFlags.GDD_DETAILS_VIEW_FLAG_NEGATIVE_FEEDBACK;

              return false; // return false to show details view, true to cancel it.
        }
Esempio n. 5
0
 // We are not interested in the following members so always throw a not-implemented
 // exception to let default processing happen.
 public void ProcessDetailsViewFeedback(GoogleDesktopDisplayDetailsViewFlags flags)
 {
     throw new NotImplementedException();
 }
Esempio n. 6
0
        /// <summary>
        /// Called when the user tries to view the details view of this item. We can
        /// create an activex control which shows the details view content, or use the
        /// details view helper. If we dont want to show the details view return true.
        /// </summary>
        /// <param name="title">title for the details view</param>
        /// <param name="flags">flags specifying the features to include in the details view</param>
        /// <param name="detailsControl">store the details view activex control here</param>
        /// <returns>true if details view should be cancelled, false if not</returns>
        public new bool OnDetailsView(out string title,
            out GoogleDesktopDisplayDetailsViewFlags flags, out object detailsControl)
        {
            // Here we can create any ActiveX control for displaying the details, and
            // return it via the detailsControl parameter.  We choose the
            // 'GoogleDesktopDisplayDetailsViewHelper' control that will give us a
            // UI that's inline with how the sidebar looks.
            // Well actually the Example used GoogleDesktopDisplayDetailsViewHelper but
            // we use a standard panel which is then filled by the standard components.

            GameserverPlugin ctl = ((GameserverPlugin)open_command);

            if (this.snippet == "MESSAGE")
            {
                formServer newServer = new formServer(0);
                newServer.dataObject = ctl;
                newServer.ShowDialog();

                ctl.refresh(null);

                detailsControl = open_command;
                title = heading;
                flags = GoogleDesktopDisplayDetailsViewFlags.GDD_DETAILS_VIEW_FLAG_TOOLBAR_OPEN;

                return true; // return false to show details view, true to cancel it.
            }
            RegistryKey key;
            String[] cmd = this.snippet.Split('|');
            String[] listData, listRules, listPlayers;

            int queryPort = Int32.Parse(cmd[4]);
            ctl.queryServerDetails(cmd[3],
                                                                cmd[1],
                                                                queryPort,
                                                                out listData,
                                                                out listRules,
                                                                out listPlayers
                                                               );

            System.Windows.Forms.Panel serverPanel;
            System.Windows.Forms.PictureBox serverPic;
            System.Windows.Forms.Label serverStats;
            System.Windows.Forms.ListView serverPlayers;
            System.Windows.Forms.Label serverMap;
            System.Windows.Forms.Label serverType;
            System.Windows.Forms.Label serverName;
            System.Windows.Forms.ColumnHeader columnID;
            System.Windows.Forms.TabControl tabControl1;
            System.Windows.Forms.TabPage tabPage1;
            System.Windows.Forms.TabPage tabPage2;
            System.Windows.Forms.ColumnHeader ruleName;
            System.Windows.Forms.ColumnHeader ruleValue;
            System.Windows.Forms.ListView serverRules;

            serverPanel = new System.Windows.Forms.Panel();
            serverPic = new System.Windows.Forms.PictureBox();
            serverStats = new System.Windows.Forms.Label();
            serverPlayers = new System.Windows.Forms.ListView();
            columnID = new System.Windows.Forms.ColumnHeader();
            serverMap = new System.Windows.Forms.Label();
            serverType = new System.Windows.Forms.Label();
            serverName = new System.Windows.Forms.Label();
            tabControl1 = new System.Windows.Forms.TabControl();
            tabPage1 = new System.Windows.Forms.TabPage();
            tabPage2 = new System.Windows.Forms.TabPage();
            serverRules = new System.Windows.Forms.ListView();
            ruleName = new System.Windows.Forms.ColumnHeader();
            ruleValue = new System.Windows.Forms.ColumnHeader();

            try
            {
                String[] snippetData = snippet.Split('|');
                //
                // serverPanel
                //
                serverPanel.BackColor = System.Drawing.Color.White;
                serverPanel.Controls.Add(serverPic);
                serverPanel.Controls.Add(serverStats);
                serverPanel.Controls.Add(tabControl1);
                serverPanel.Controls.Add(serverMap);
                serverPanel.Controls.Add(serverType);
                serverPanel.Controls.Add(serverName);
                serverPanel.Location = new System.Drawing.Point(4, 7);
                serverPanel.Name = "serverPanel";
                serverPanel.Size = new System.Drawing.Size(364, 352);
                serverPanel.TabIndex = 1;
                //
                // tabControl1
                //
                tabControl1.Controls.Add(tabPage1);
                tabControl1.Controls.Add(tabPage2);
                tabControl1.Location = new System.Drawing.Point(8, 96);
                tabControl1.Name = "tabControl1";
                tabControl1.SelectedIndex = 0;
                tabControl1.Size = new System.Drawing.Size(352, 232);
                tabControl1.TabIndex = 11;
                tabControl1.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom;
                //
                // tabPage1
                //
                tabPage1.Controls.Add(serverPlayers);
                tabPage1.Location = new System.Drawing.Point(4, 22);
                tabPage1.Name = "tabPlayers";
                tabPage1.Size = new System.Drawing.Size(344, 206);
                tabPage1.TabIndex = 0;
                tabPage1.Text = "Players";
                //
                // tabPage2
                //
                tabPage2.Controls.Add(serverRules);
                tabPage2.Location = new System.Drawing.Point(4, 22);
                tabPage2.Name = "tabRules";
                tabPage2.Size = new System.Drawing.Size(192, 74);
                tabPage2.TabIndex = 1;
                tabPage2.Text = "Rules";
                //
                // serverPic
                //
                serverPic.Location = new System.Drawing.Point(8, 8);
                serverPic.Name = "serverPic";
                serverPic.Size = new System.Drawing.Size(96, 88);
                serverPic.TabIndex = 10;
                serverPic.TabStop = false;
                //
                // serverStats
                //
                serverStats.BackColor = System.Drawing.Color.White;
                serverStats.Location = new System.Drawing.Point(108, 32);
                serverStats.Name = "serverStats";
                serverStats.Size = new System.Drawing.Size(200, 16);
                serverStats.TabIndex = 6;
                if (this.source == "0,0,0")
                {
                    serverStats.Text = ctl.lang.getValue("detailsOffline");
                    serverStats.ForeColor = Color.DarkRed;
                }
                else
                {
                    String[] stats = this.source.Split(',');
                    serverStats.Text = stats[0]+"ms ("+stats[1]+"/"+stats[2]+" Spieler)";

                    int ping = Int32.Parse(stats[0]);
                    if (ping < 80)
                        serverStats.ForeColor = Color.DarkGreen;
                    else if (ping < 100)
                        serverStats.ForeColor = Color.Green;
                    else if (ping < 150)
                        serverStats.ForeColor = Color.Orange;
                    else if (ping < 200)
                        serverStats.ForeColor = Color.DarkOrange;
                    else if (ping < 250)
                        serverStats.ForeColor = Color.Red;
                    else
                        serverStats.ForeColor = Color.DarkRed;

                }
                //
                // serverPlayers
                //
                serverPlayers.BackColor = System.Drawing.Color.White;
                serverPlayers.BorderStyle = System.Windows.Forms.BorderStyle.None;
                serverPlayers.Columns.Add(columnID);
                serverPlayers.FullRowSelect = true;
                serverPlayers.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
                serverPlayers.Location = new System.Drawing.Point(0, 0);
                serverPlayers.Name = "serverPlayers";
                serverPlayers.Size = new System.Drawing.Size(344, 208);
                serverPlayers.TabIndex = 9;
                serverPlayers.View = System.Windows.Forms.View.Details;
                serverPlayers.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom;
                //
                // columnID
                //
                columnID.Text = "#";
                columnID.Width = 25;
                //
                key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Imagine Interactive\Gameserver Panel\Games\"+snippetData[0]);
                String[] columns = key.GetValue("columns").ToString().Split(',');
                key.Close();
                for (int i=0; i<columns.Length; i++)
                {
                    if (columns[i] != "-")
                    {
                        ColumnHeader head = new ColumnHeader();
                        head.Text = columns[i];
                        if (i == 0) head.Width = 200;
                        serverPlayers.Columns.Add(head);
                    }
                }
                //
                // serverMap
                //
                serverMap.BackColor = System.Drawing.Color.White;
                serverMap.Location = new System.Drawing.Point(108, 80);
                serverMap.Name = "serverMap";
                serverMap.Size = new System.Drawing.Size(200, 16);
                serverMap.TabIndex = 8;
                String map = "unknown";
                if (snippetData.Length >= 6)
                {
                    map = snippetData[5];
                }
                serverMap.Text = ctl.lang.getValue("detailsMap")+": "+map;
                //
                // serverType
                //
                serverType.BackColor = System.Drawing.Color.White;
                serverType.Location = new System.Drawing.Point(108, 56);
                serverType.Name = "serverType";
                serverType.Size = new System.Drawing.Size(200, 16);
                serverType.TabIndex = 7;
                serverType.Text = ctl.lang.getValue("detailsGame")+": "+snippetData[0];
                //
                // serverName
                //
                serverName.BackColor = System.Drawing.Color.White;
                serverName.Location = new System.Drawing.Point(108, 8);
                serverName.Name = "serverName";
                serverName.Size = new System.Drawing.Size(240, 16);
                serverName.TabIndex = 5;
                serverName.Text = this.heading + " " + cmd[1]+":"+cmd[2];
                //
                // serverRules
                //
                serverRules.BackColor = System.Drawing.Color.White;
                serverRules.BorderStyle = System.Windows.Forms.BorderStyle.None;
                serverRules.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
                                                                                              ruleName,
                                                                                              ruleValue});
                serverRules.FullRowSelect = true;
                serverRules.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
                serverRules.Location = new System.Drawing.Point(0, -1);
                serverRules.Name = "serverRules";
                serverRules.Size = new System.Drawing.Size(344, 208);
                serverRules.TabIndex = 11;
                serverRules.View = System.Windows.Forms.View.Details;
                serverRules.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom;
                //
                // ruleName
                //
                ruleName.Text = "Name";
                ruleName.Width = 100;
                //
                // ruleValue
                //
                ruleValue.Text = "Value";
                ruleValue.Width = 238;

                // Fill Players
                serverPlayers.Items.Clear();
                for (int i=0; i<listPlayers.Length; i++)
                {
                    try
                    {
                        if (listPlayers[i] == null) continue;
                        String player = listPlayers[i].Trim();
                        if (player.Length > 0)
                        {
                            // MessageBox.Show("adding "+listPlayers[i]);
                            String[] playerData = player.Split(',');
                            ListViewItem listItem = serverPlayers.Items.Add((i+1).ToString()+".");
                            for (int c=0; c<columns.Length; c++)
                            {
                                if (columns[c] != "-")
                                    listItem.SubItems.Add( playerData[c] );
                            }
                        }
                    }
                    catch (Exception E)
                    {
                        Log.Error("Adding Player to DetailsView: "+E.Message);
                    }
                }

                // Fill Rules
                serverRules.Items.Clear();
                for (int i=0; i<listRules.Length; i++)
                {
                    try
                    {
                        if (listRules[i] == null) continue;
                        String rule = listRules[i].Trim();
                        if (rule.Length > 0)
                        {
                            String[] ruleData = rule.Split('=');
                            ListViewItem listItem = serverRules.Items.Add(ruleData[0]);
                            listItem.SubItems.Add( ruleData[1] );
                        }
                    }
                    catch (Exception E)
                    {
                        Log.Error("Adding Rule to DetailsView: "+E.Message);
                    }
                }

                serverPic.Image = new Bitmap( serverPic.Width, serverPic.Height );
                Graphics g = Graphics.FromImage( serverPic.Image );
                String resource = "GameserverPanel.Resources."+cmd[0]+".ico";
                Stream resStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource);
                if (resStream != null)
                {
                    g.DrawImage( new Icon(resStream, 16, 16).ToBitmap(), 0, 0, 64, 64);
                    g.Dispose();
                }
            }
            catch (Exception E)
            {
                Log.Error("DetailsView: "+E.Message);
            }

            detailsControl = serverPanel;
            title = heading;
            flags = GoogleDesktopDisplayDetailsViewFlags.GDD_DETAILS_VIEW_FLAG_TOOLBAR_OPEN;

            return false; // return false to show details view, true to cancel it.
        }