private void SelectTab(HeaderTab tab) { if (tab.Selected == false) { tab.Selected = true; Tenor.Mobile.Device.Device.HapticSoft(); OnSelectedTabChanged(new EventArgs()); } }
public Main() { InitializeComponent(); this.Icon = Resources.mySquare; Tenor.Mobile.UI.Skin.Current.ApplyColorsToControl(this); header.Tabs.Add(tabPlaces = new Tenor.Mobile.UI.HeaderTab("Places", Resources.PinMap)); header.Tabs.Add(tabTips = new Tenor.Mobile.UI.HeaderTab("Tips Nearby", Resources.To_Do)); header.Tabs.Add(tabFriends = new Tenor.Mobile.UI.HeaderTab("Friends", Resources.Friends)); header.Tabs.Add(tabSettings = new Tenor.Mobile.UI.HeaderTab("Settings", Resources.Settings)); header.Tabs.Add(tabMore = new Tenor.Mobile.UI.HeaderTab("Extra", Resources.MoreActions)); }
internal override void DrawTabs(HeaderStrip control, PaintEventArgs e) { if (control.Tabs.Count == 0) { return; } Size size = control.Size; size.Height -= HeaderSelectedTabStrip * ScaleFactor.Height; IList <HeaderTab> tabs = control.Tabs; int bottomHeight = 15 * ScaleFactor.Height; Point offset = new Point(2 * ScaleFactor.Width, 2 * ScaleFactor.Width); int defaultWidth = 42 * ScaleFactor.Width; Size corner = new Size(8 * ScaleFactor.Width, 8 * ScaleFactor.Height); Pen penBorder = new Pen(Strings.ToColor(BorderLineColor)); try { HeaderTab selected = null; foreach (HeaderTab tab in tabs) { tab.area = new Rectangle(offset.X + tab.TabIndex * defaultWidth, offset.Y, defaultWidth, size.Height - offset.Y + corner.Height); if (tab.Selected) { selected = tab; using (SolidBrush backColor = new SolidBrush(Color.Black)) RoundedRectangle.Fill(e.Graphics, penBorder, backColor, tab.area, corner); } if (tab.Image != null) { //draw icon Rectangle destImg = new Rectangle(0, 0, tab.Image.Width, tab.Image.Height); if (tab.Image.Size.Height > tab.area.Height || tab.Image.Size.Width > tab.area.Width) { int oX = 8 * ScaleFactor.Width; int oY = 8 * ScaleFactor.Height; int imageSize = tab.area.Height - ((tab.area.Y + oY) * 2); destImg = new Rectangle(tab.area.X + oX, tab.area.Y + oY, imageSize, imageSize); } destImg = new Rectangle(tab.area.X + (tab.area.Width / 2) - (destImg.Width / 2), (tab.area.Height / 2) - (destImg.Height / 2), destImg.Width, destImg.Height); using (AlphaImage image = new AlphaImage(tab.Image)) { image.Draw(e.Graphics, destImg); } } if (!tab.Selected && (tab.TabIndex == tabs.Count - 1 || !tabs[tab.TabIndex + 1].Selected)) { Point sep = new Point(tab.area.Right, offset.Y); DrawSeparator(e, sep, size.Height - (sep.Y * 2), Orientation.Vertical); } } Font font = new Font(FontFamily.GenericSansSerif, HeaderSelectedTabStripFontSize, FontStyle.Regular); SolidBrush brush = new SolidBrush(ControlBackColor); SolidBrush fBrush = new SolidBrush(Strings.ToColor(HeaderSelectedTabStripFontColor)); Rectangle rect = new Rectangle(0, size.Height, control.Width, control.Height - size.Height); e.Graphics.FillRectangle(brush, rect); SizeF textSize = e.Graphics.MeasureString(selected.Text, font); Rectangle stringRect = rect; stringRect.X = Convert.ToInt32(selected.area.X + ((selected.area.Width / 2) - (textSize.Width / 2))); if (stringRect.X < 0) { stringRect.X = 2 * ScaleFactor.Width; } e.Graphics.DrawString(selected.Text, font, fBrush, stringRect); e.Graphics.DrawLine(new Pen(Strings.ToColor(HeaderSelectedTabStripBorderColor)), rect.Left, rect.Bottom - 1, rect.Right, rect.Bottom - 1); brush.Dispose(); fBrush.Dispose(); font.Dispose(); } finally { penBorder.Dispose(); } }