private void createMono() { volumeBarGdi_ = new LcdGdiProgressBar(); volumeBarGdi_.Size = new SizeF(136, 5); volumeBarGdi_.Margin = new MarginF(12, 38, 0, 0); volumeBarGdi_.Minimum = 0; volumeBarGdi_.Maximum = 100; volumeBarGdi_.Value = (int)(this.volume_ * 100); Icon icon = (Icon)Resource.lowVolume; icon = new Icon(icon, 16, 16); lowVolumeIcon_ = new LcdGdiIcon(icon); lowVolumeIcon_.Margin = new MarginF(10, 20, 0, 0); icon = (Icon)Resource.highVolume; icon = new Icon(icon, 16, 16); highVolumeIcon_ = new LcdGdiIcon(icon); highVolumeIcon_.Margin = new MarginF(134, 20, 0, 0); this.Children.Add(volumeBarGdi_); this.Children.Add(highVolumeIcon_); this.Children.Add(lowVolumeIcon_); }
/// <summary> /// This event handler is called before the page starts its update. /// </summary> private static void Page_Updating(object sender, UpdateEventArgs e) { LcdGdiPage page = (LcdGdiPage)sender; // Makes the progress bar fill 10% per second LcdGdiProgressBar progressBar = (LcdGdiProgressBar)page.Children[2]; progressBar.Value = (int)((e.ElapsedTotalTime.TotalSeconds % 10.0) * 10.0); // Makes the polygon blink every 0.5 second LcdGdiPolygon polygon = (LcdGdiPolygon)page.Children[3]; polygon.Brush = e.ElapsedTotalTime.Milliseconds < 500 ? Brushes.White : Brushes.Black; }
private void createColor() { settingsGdi_[0] = new LcdGdiText("shuffle: " + shuffle_, font3_); settingsGdi_[0].HorizontalAlignment = LcdGdiHorizontalAlignment.Center; settingsGdi_[0].Margin = new MarginF(5, 5, 5, 0); settingsGdi_[1] = new LcdGdiText("Auto DJ: " + autoDJ_, font3_); settingsGdi_[1].HorizontalAlignment = LcdGdiHorizontalAlignment.Left; settingsGdi_[1].Margin = new MarginF(5, 30, 5, 0); settingsGdi_[2] = new LcdGdiText("Equalizer: " + equaliser_, font3_); settingsGdi_[2].HorizontalAlignment = LcdGdiHorizontalAlignment.Left; settingsGdi_[2].Margin = new MarginF(5, 55, 5, 0); settingsGdi_[3] = new LcdGdiText("Repeat: " + repeat_, font3_); settingsGdi_[3].HorizontalAlignment = LcdGdiHorizontalAlignment.Left; settingsGdi_[3].VerticalAlignment = LcdGdiVerticalAlignment.Top; settingsGdi_[3].Margin = new MarginF(5, 80, 0, 0); settingsGdi_[4] = new LcdGdiText("Volume", font3_); settingsGdi_[4].HorizontalAlignment = LcdGdiHorizontalAlignment.Left; settingsGdi_[4].VerticalAlignment = LcdGdiVerticalAlignment.Top; settingsGdi_[4].Margin = new MarginF(5, 105, 0, 0); volumeBarGdi_ = new LcdGdiProgressBar(); volumeBarGdi_.Minimum = 0; volumeBarGdi_.Maximum = 100; volumeBarGdi_.Size = new SizeF(310, 20); volumeBarGdi_.Margin = new MarginF(5, 150, 5, 0); this.Children.Add(backgroundGdi_); this.Children.Add(settingsGdi_[0]); this.Children.Add(settingsGdi_[1]); this.Children.Add(settingsGdi_[2]); this.Children.Add(settingsGdi_[3]); this.Children.Add(settingsGdi_[4]); this.Children.Add(volumeBarGdi_); }
private void createColor() { volumeBarGdi_ = new LcdGdiProgressBar(); volumeBarGdi_.Minimum = 0; volumeBarGdi_.Maximum = 100; volumeBarGdi_.Size = new SizeF(310, 20); volumeBarGdi_.Margin = new MarginF(5, 150, 5, 0); highVolumeImage_ = (Image)Resource.highVolumeG19; highVolumeImageGdi_ = new LcdGdiImage(highVolumeImage_); highVolumeImageGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Right; highVolumeImageGdi_.Margin = new MarginF(0, 90, 5, 0); lowVolumeImage_ = (Image)Resource.lowVolumeG19; lowVolumeImageGdi_ = new LcdGdiImage(lowVolumeImage_); lowVolumeImageGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Left; lowVolumeImageGdi_.Margin = new MarginF(5, 90, 5, 0); this.Children.Add(backgroundGdi_); this.Children.Add(highVolumeImageGdi_); this.Children.Add(lowVolumeImageGdi_); this.Children.Add(volumeBarGdi_); }
private void createMono() { titleGdi_ = new LcdGdiText(this.title_, font_); titleGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center; titleGdi_.Margin = new MarginF(-2, -1, 0, 0); artistGdi_ = new LcdGdiText(this.artist_, font_); artistGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center; artistGdi_.VerticalAlignment = LcdGdiVerticalAlignment.Top; artistGdi_.Margin = new MarginF(-2, 12, 0, 0); positionGdi_ = new LcdGdiText(Conversions.timetoString(this.position_), font2_); positionGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Left; positionGdi_.Margin = new MarginF(10, 26, 0, 0); ratingGdi_ = new LcdGdiText("", font2_); ratingGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center; ratingGdi_.Margin = new MarginF(0, 26, 0, 0); if (this.rating_ != 0) { ratingGdi_.Text = this.rating_.ToString() + " / 5"; } else { ratingGdi_.Text = ""; } durationGdi_ = new LcdGdiText(Conversions.timetoString(this.duration_), font2_); durationGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Right; durationGdi_.Margin = new MarginF(0, 26, 13, 0); progressBarGdi_ = new LcdGdiProgressBar(); progressBarGdi_.Size = new SizeF(136, 5); progressBarGdi_.Margin = new MarginF(12, 38, 0, 0); progressBarGdi_.Minimum = 0; progressBarGdi_.Maximum = 100; titleScroll_ = new LcdGdiScrollViewer(titleGdi_); titleScroll_.AutoScrollX = true; titleScroll_.AutoScrollY = false; titleScroll_.AutoScrollSpeedY = 0; titleScroll_.AutoScrollSpeedX = 10; titleScroll_.HorizontalAlignment = LcdGdiHorizontalAlignment.Stretch; titleScroll_.VerticalAlignment = LcdGdiVerticalAlignment.Top; artistScroll_ = new LcdGdiScrollViewer(artistGdi_); artistScroll_.AutoScrollY = false; artistScroll_.AutoScrollX = true; artistScroll_.AutoScrollSpeedY = 0; artistScroll_.AutoScrollSpeedX = 10; artistScroll_.HorizontalAlignment = LcdGdiHorizontalAlignment.Stretch; artistScroll_.VerticalAlignment = LcdGdiVerticalAlignment.Top; this.Children.Add(titleGdi_); this.Children.Add(artistGdi_); this.Children.Add(titleScroll_); this.Children.Add(artistScroll_); this.Children.Add(positionGdi_); this.Children.Add(ratingGdi_); this.Children.Add(durationGdi_); this.Children.Add(progressBarGdi_); }
private void createColor() { artistGdi_ = new LcdGdiText(this.artist_, font3_); artistGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center; artistGdi_.Margin = new MarginF(5, 5, 5, 0); titleGdi_ = new LcdGdiText(this.title_, font3_); titleGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center; titleGdi_.Margin = new MarginF(5, 30, 5, 0); albumGdi_ = new LcdGdiText(this.album_, font3_); albumGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center; albumGdi_.Margin = new MarginF(5, 55, 5, 0); positionGdi_ = new LcdGdiText(Conversions.timetoString(this.position_), font4_); positionGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Left; positionGdi_.Margin = new MarginF(5, 105, 0, 0); durationGdi_ = new LcdGdiText(Conversions.timetoString(this.duration_), font4_); durationGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Right; durationGdi_.Margin = new MarginF(0, 105, 5, 0); artworkGdi_ = new LcdGdiImage(Conversions.Base64ToImage(artwork_)); artworkGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center; artworkGdi_.Size = new SizeF(130, 130); artworkGdi_.Margin = new MarginF(0, 105, 0, 0); progressBarGdi_ = new LcdGdiProgressBar(); progressBarGdi_.Minimum = 0; progressBarGdi_.Maximum = 100; progressBarGdi_.Size = new SizeF(310, 20); progressBarGdi_.Margin = new MarginF(5, 80, 5, 0); titleScroll_ = new LcdGdiScrollViewer(titleGdi_); titleScroll_.AutoScrollX = true; titleScroll_.AutoScrollY = false; titleScroll_.AutoScrollSpeedY = 0; titleScroll_.AutoScrollSpeedX = 10; titleScroll_.HorizontalAlignment = LcdGdiHorizontalAlignment.Stretch; titleScroll_.VerticalAlignment = LcdGdiVerticalAlignment.Top; artistScroll_ = new LcdGdiScrollViewer(artistGdi_); artistScroll_.AutoScrollY = false; artistScroll_.AutoScrollX = true; artistScroll_.AutoScrollSpeedY = 0; artistScroll_.AutoScrollSpeedX = 10; artistScroll_.HorizontalAlignment = LcdGdiHorizontalAlignment.Stretch; artistScroll_.VerticalAlignment = LcdGdiVerticalAlignment.Top; albumScroll_ = new LcdGdiScrollViewer(albumGdi_); albumScroll_.AutoScrollY = false; albumScroll_.AutoScrollX = true; albumScroll_.AutoScrollSpeedY = 0; albumScroll_.AutoScrollSpeedX = 10; albumScroll_.HorizontalAlignment = LcdGdiHorizontalAlignment.Stretch; albumScroll_.VerticalAlignment = LcdGdiVerticalAlignment.Top; fullStarImage_ = (Image)Resource.star_rating_full; halfStarImage_ = (Image)Resource.star_rating_half; emptyStarImage_ = (Image)Resource.star_rating_empty; emptyImage_ = (Image)Resource.empty; this.Children.Add(backgroundGdi_); this.Children.Add(titleGdi_); this.Children.Add(titleScroll_); this.Children.Add(artistGdi_); this.Children.Add(artistScroll_); this.Children.Add(positionGdi_); this.Children.Add(durationGdi_); this.Children.Add(progressBarGdi_); this.Children.Add(albumGdi_); this.Children.Add(albumScroll_); this.Children.Add(artworkGdi_); ratingColorGdi_ = new LcdGdiImage[5]; float tempRating = this.rating_; for (int i = 0; i < 5; i++) { if (this.rating_ != 0) { if (tempRating - 1 >= 0) { ratingColorGdi_[i] = new LcdGdiImage(fullStarImage_); tempRating--; } else if (tempRating - 0.5f == 0) { ratingColorGdi_[i] = new LcdGdiImage(halfStarImage_); tempRating -= 0.5f; } else { ratingColorGdi_[i] = new LcdGdiImage(emptyStarImage_); } } else { ratingColorGdi_[i] = new LcdGdiImage(emptyStarImage_); } ratingColorGdi_[i].HorizontalAlignment = LcdGdiHorizontalAlignment.Left; ratingColorGdi_[i].Margin = new MarginF((18 * i) + 5, 215, 0, 0); this.Children.Add(ratingColorGdi_[i]); } }
/// <summary> /// Updates the code page before rendering it. /// </summary> /// <param name="sender">Page being updated</param> /// <param name="e">Update event arguments</param> private static void UpdateEntryPage(object sender, UpdateEventArgs e) { LcdGdiPage page = (LcdGdiPage)sender; LcdGdiImage refreshIcon = (LcdGdiImage)page.Children[0]; LcdGdiProgressBar progressBar = (LcdGdiProgressBar)page.Children[2]; LcdGdiScrollViewer scrollView = (LcdGdiScrollViewer)page.Children[4]; LcdGdiText textName = (LcdGdiText)scrollView.Child; LcdGdiText textCode = (LcdGdiText)page.Children[5]; lock (entriesList.Lock) { progressBar.IsVisible = false; if (!entryCodeRequested && !entryCode.HasValue) { textName.Text = entriesList.Items[entriesList.Selected].Name; entryCodeRequested = true; if (entriesList.Items[entriesList.Selected].Touch) { textCode.Text = "Touch your YubiKey..."; refreshIcon.IsVisible = false; return; } } entryCodeRequested = false; DateTime time = DateTime.UtcNow; Int32 timestamp = (Int32)(time.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; if (!entryCode.HasValue || entryCode.Value.ValidTo != 0 && entryCode.Value.ValidTo < timestamp && entriesList.Items[entriesList.Selected].Type == OATHController.Type.TOTP && !entriesList.Items[entriesList.Selected].Touch) { try { entryCode = oath.Calculate(entriesList.Items[entriesList.Selected], time); textCode.Text = entryCode.Value.Value; } catch (UnexpectedResponseException ex) { entryCode = new OATHController.Code(); // Hack: Set empty code object to prevent code regen if (ex.SW == APDUResponse.StatusWord.AUTH_REQUIRED) { textCode.Text = "Touch timeout."; } else { textCode.Text = "Error: " + ex.SW.ToString(); } refreshIcon.IsVisible = true; return; } } if (entriesList.Items[entriesList.Selected].Type == OATHController.Type.TOTP && entryCode.HasValue && entryCode.Value.ValidTo != 0) { if (entryCode.Value.ValidTo > timestamp) { progressBar.IsVisible = true; progressBar.Value = (int)(((float)(entryCode.Value.ValidTo - timestamp) / entriesList.Items[entriesList.Selected].Period) * 100); } else if (entriesList.Items[entriesList.Selected].Touch) { textCode.Text = "Code expired."; progressBar.IsVisible = false; refreshIcon.IsVisible = true; } } } }