/// <summary> /// Erzeugt eine neue Instanz zum Zeichnen einer Videotext Zeile. /// </summary> /// <param name="page"></param> internal LineDrawingContext(PageDrawingContext page) { // Remember PageContext = page; // Create helper m_CurrentContext = new CharDrawingContext(this); }
/// <summary> /// Erzeugt die aktuelle Seite als <see cref="Bitmap"/>. /// </summary> /// <param name="holder">Ein Anzeigeelement als Referenz für die Parameter der <see cref="Bitmap"/>.</param> /// <param name="digits">Alle auf der Seite verwendeten Zahlen.</param> /// <param name="extend">Beschreibt den tatsächlich relevanten Teil der Seite.</param> /// <returns>Eine Darstellung der aktuellen Videotext Seite.</returns> public Bitmap CreatePage(Control holder, out DigitManager digits, out RectangleF extend) { // Create device context using (var referenceContext = Graphics.FromHwnd(holder.Handle)) using (var pageDraw = new PageDrawingContext(referenceContext, IsTransparent)) { // Process header if (!IsTransparent) { if (!NoHeader) { // Get the prefix for the headline string prefix; if (!string.IsNullOrEmpty(Feedback)) { prefix = string.Format("{0} ", Feedback).Substring(0, 8); } else if (SubPage < 1) { prefix = string.Format("{0:000} ", Page); } else { prefix = string.Format("{0:000}/{1:00} ", Page, SubPage).Substring(0, 8); } // Fill the headline pageDraw.DrawHeader(prefix, Header); } } // Fill the body if (!Hide) { for (int i = 0; ++i < 26;) { // Line data byte[] line; if (!m_Lines.TryGetValue(i, out line)) { continue; } // Fill the line LineDrawingContext context = pageDraw.DrawLine(i, line); // Skip line if double height characters are used if (context.HasDoubleHeight) { i++; } } } // Attach to digit manager of context digits = pageDraw.Digits; extend = pageDraw.Extend; // Report return(pageDraw.Detach()); } }
/// <summary> /// Erzeugt eine neue Instanz zum Zeichnen einer Videotext Zeile. /// </summary> /// <param name="page"></param> internal LineDrawingContext( PageDrawingContext page ) { // Remember PageContext = page; // Create helper m_CurrentContext = new CharDrawingContext( this ); }
/// <summary> /// Erzeugt die aktuelle Seite als <see cref="Bitmap"/>. /// </summary> /// <param name="holder">Ein Anzeigeelement als Referenz für die Parameter der <see cref="Bitmap"/>.</param> /// <param name="digits">Alle auf der Seite verwendeten Zahlen.</param> /// <param name="extend">Beschreibt den tatsächlich relevanten Teil der Seite.</param> /// <returns>Eine Darstellung der aktuellen Videotext Seite.</returns> public Bitmap CreatePage( Control holder, out DigitManager digits, out RectangleF extend ) { // Create device context using (var referenceContext = Graphics.FromHwnd( holder.Handle )) using (var pageDraw = new PageDrawingContext( referenceContext, IsTransparent )) { // Process header if (!IsTransparent) if (!NoHeader) { // Get the prefix for the headline string prefix; if (!string.IsNullOrEmpty( Feedback )) prefix = string.Format( "{0} ", Feedback ).Substring( 0, 8 ); else if (SubPage < 1) prefix = string.Format( "{0:000} ", Page ); else prefix = string.Format( "{0:000}/{1:00} ", Page, SubPage ).Substring( 0, 8 ); // Fill the headline pageDraw.DrawHeader( prefix, Header ); } // Fill the body if (!Hide) for (int i = 0; ++i < 26; ) { // Line data byte[] line; if (!m_Lines.TryGetValue( i, out line )) continue; // Fill the line LineDrawingContext context = pageDraw.DrawLine( i, line ); // Skip line if double height characters are used if (context.HasDoubleHeight) i++; } // Attach to digit manager of context digits = pageDraw.Digits; extend = pageDraw.Extend; // Report return pageDraw.Detach(); } }