Exemplo n.º 1
0
        /// <summary>
        /// Construction
        /// </summary>
        /// <param name="daddy">Reference to main window (MainWindow instance), used for callback purposes</param>
        /// <param name="geo">Associated geocache</param>
        public WaypointsMgr(MainWindow daddy, Geocache geo)
        {
            _Daddy = daddy;
            _geo   = geo;

            InitializeComponent();
            this.Icon = _Daddy.Icon;
            this.Font = _Daddy.Font;

            this.Text = _Daddy.GetTranslator().GetString("WaypointsMgr");
            btnWaypointMgrAdd.Text  = _Daddy.GetTranslator().GetString("WaypointMgrAdd");
            btnWaypointMgrDel.Text  = _Daddy.GetTranslator().GetString("WaypointMgrDel");
            btnWaypointMgrEdit.Text = _Daddy.GetTranslator().GetString("WaypointMgrEdit");
            btnCartoDisplay.Image   = _Daddy.GetImageSized("Earth");

            lvWaypointsMgrView.Columns.Add(_Daddy.GetTranslator().GetString("WaypointCode"), 80);
            lvWaypointsMgrView.Columns.Add(_Daddy.GetTranslator().GetString("WaypointType"), 160);
            lvWaypointsMgrView.Columns.Add(_Daddy.GetTranslator().GetString("WaypointName"), 250);
            lvWaypointsMgrView.Columns.Add(_Daddy.GetTranslator().GetString("WaypointDate"), 100);
            lvWaypointsMgrView.Columns.Add(_Daddy.GetTranslator().GetString("LblWaypointFromUser"), 80);


            foreach (String s in GeocachingConstants.GetSupportedWaypointsType())
            {
                _imageList.Images.Add(s, _Daddy.GetImageSized(s));
            }
            lvWaypointsMgrView.SmallImageList = _imageList;

            Dictionary <String, Waypoint> dicowpts = _geo.GetListOfWaypoints();

            foreach (KeyValuePair <String, Waypoint> paire in dicowpts)
            {
                Waypoint wpt = paire.Value;
                AddWptToList(wpt);
            }

            _Daddy.TranslateTooltips(this, null);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Rendering method
        /// </summary>
        /// <param name="g">Graphic to render</param>
        public override void OnRender(Graphics g)
        {
            if (_geo != null)
            {
                String imgpath       = _daddy.GetResourcesDataPath() + Path.DirectorySeparatorChar + "Img";
                String imgpath_clean = imgpath.Replace("\\", "/");


                String nameHtml = "";
                if (_geo._Available.ToLower() == "true")
                {
                    nameHtml = _geo._Name.Replace("'", "&#146;");
                }
                else
                {
                    nameHtml = "<span style=\"text-decoration:line-through;\">" + _geo._Name.Replace("'", " ") + "</span>";
                }

                String           stats = "";
                OfflineCacheData ocd   = _geo._Ocd;
                if ((ocd != null) && (ocd.HasStats()))
                {
                    // On a des stats
                    double rating;
                    rating = (_daddy._bUseGCPopularity) ? ocd._dRatingSimple : ocd._dRating;
                    if (rating >= 0)
                    {
                        stats = "	<tr><td><img width=16 height=16 src='"+ imgpath_clean + "/Fav.png'>" + ocd._iNbFavs.ToString() +
                                ",&nbsp;" + _daddy.GetTranslator().GetString("LVRating") + ":&nbsp;" + "</td>" +
                                "		<td>"+
                                "<img src='" + imgpath_clean + "/Ratios/" + "ratio_" + ((int)(ocd._dRating * 100.0)).ToString() + ".png'>" + rating.ToString("0.0%").ToString() + "</td></tr>";
                    }
                    else if (ocd._iNbFavs > 0)
                    {
                        stats = "	<tr><td><img width=16 height=16 src='"+ imgpath_clean + "/Fav.png'>" + ocd._iNbFavs.ToString() + "</td>" +
                                "		<td>&nbsp;</td></tr>";
                    }
                }

                //String theType = "		<img width=16 height=16 src='" + imgpath_clean + "/Type/" + _geo._Type + ".gif'>";
                String theType = "		<img src='"+ imgpath_clean + "/TypeCat/" + _daddy._geocachingConstants.GetDicoTypeSmallIcon()[_geo._Type] + ".png'>";

                if (MyTools.InsensitiveContainsInStringList(GeocachingConstants.GetSupportedCacheTypes(), _geo._Type) == false)
                {
                    theType = "		<img width=16 height=16 src='"+ imgpath_clean + "/Fail.png'>";
                }
                String infpopup =
                    "<body><table border=0>" +
                    "	<tr><td><b>"+
                    theType +
                    "		"+ nameHtml + "</b>" +
                    "	</td>"+
                    "	<td align='right'><h4>"+ _geo._Code + "</h4></td></tr>" +
                    stats +
                    "		<tr><td>"+ _daddy.GetTranslator().GetString("HTMLACacheBy") + ":&nbsp;" + MyTools.RemoveDiacritics(_geo._PlacedBy).Replace("'", " ") + "</td>" +
                    "		<td>"+ _daddy.GetTranslator().GetString("HTMLHidden") + ":&nbsp;" + MyTools.CleanDate(_geo._DateCreation) + "</td></tr>" +
                    "		<tr><td>"+ _daddy.GetTranslator().GetString("HTMLDifficulty") + ":&nbsp;<img src='" + imgpath_clean + "/Star/" + _geo._D + ".gif'></td>" +
                    "		<td>"+ _daddy.GetTranslator().GetString("HTMLTerrain") + ":&nbsp;<img src='" + imgpath_clean + "/Star/" + _geo._T + ".gif'></td></tr>" +
                    "		<tr><td>"+ _daddy.GetTranslator().GetString("HTMLSize") + ":&nbsp;<img src='" + imgpath_clean + "/Size/" + _geo._Container + ".gif'></td>";

                if ((_geo._Ocd != null) && (_geo._Ocd._dAltiMeters != Double.MaxValue))
                {
                    String salti = "";
                    if (_daddy._bUseKm)
                    {
                        salti = String.Format("{0:0.#}", _geo._Ocd._dAltiMeters) + " m";
                    }
                    else
                    {
                        salti = String.Format("{0:0.#}", _geo._Ocd._dAltiMeters * 3.2808399) + " ft";
                    }
                    infpopup += "<td>" + _daddy.GetTranslator().GetString("HTMLAltitude") + ":&nbsp;" + salti + "</td>";
                }
                else
                {
                    infpopup += "<td>&nbsp;</td>";
                }
                infpopup += "</tr></table></body>";

                // A VIRER !!!!!!!!!!
                //_daddy.Log(infpopup);


                Image   img = null;
                CssData css = CssData.Parse("body { font:8pt Tahoma } h3 { color: navy; font-weight:normal; }", true);
                img = HtmlRender.RenderToImage(infpopup, 330, 150, Color.White, css, null, null);

                System.Drawing.Size      st   = img.Size;
                System.Drawing.Rectangle rect = new System.Drawing.Rectangle(Marker.ToolTipPosition.X, Marker.ToolTipPosition.Y - st.Height / 2, st.Width + TextPadding.Width, st.Height + TextPadding.Height);
                rect.Offset(Offset.X, Offset.Y);

                g.DrawImage(img, new Point(rect.X, rect.Y));
            }
        }