Gtk3.0 Overlay with Labels on DrawingArea - c

I have created a small gtk application that displays an RTP stream in a gtk window. I am also displaying information on top of this video by using the textoverlay element provided by gstreamer. This feels like a back door since it appears to be intended for subtitles.
I would like to display my information using methods provided by gtk. I am currently trying to use the overlay container to hold the drawing area created for the video and then placing a layout container on top of that holding labels.
I am finding that the background of the layout container is being drawn on top of the drawing area, meaning blocked. If I remove the drawing area and use two layout containers with labels in them, overlapping labels are displayed the way that I would expect.
I have tried various combinations of opacity and containers with no luck.

Related

GtkTable overlapping widgets

I have a GtkTable with a background (an image widget spanning the whole dimensions of the table) and at one point I want to add another image widget on top of the background. It seems that, while I attach the second image after the background, it still shows below it. How can I deal with image priority and select which images will be shown over the others?

How to display a background control in transparent overlapping control?

I'm building a form with two layers of controls. The bottom layer is a set of Panels with defined properties, one of which is a color different from the form background. The top layer is a set of picture boxes I'm using to display a circle. I've set the PictureBox Background to Color.Transparent, and I've offset it from the underlying Panel by one pixel to get the form to draw the underlying Panel. However, the area around the circle in the PictureBox is displaying the Form Background color, not the panel color. I don't want to draw the circle in the Panel, because I want the circles to move between Panels, and actually look like just a circle that's floating across the form independent of the Panel board underneath. Think of the effect as moving a piece on a board game (you see the peg move across the board, possibly on a diagonal not following the normal game path, then stop in a place on the game).
How can I get the PictureBox to have the underlying Form and panels show through, not just the form background color? I'm using C# Visual Studio 2010, and I'm not a terribly experienced programmer, so a code example would be helpful. An image of the form is at:
http://www.imageurlhost.com/images/salgmpcxvcz830c3flt.jpg
Found a way around the problem. I got rid of the Panels for the spaces in the game, and instead drew them as rectangles on the form's background image.

Issues with rendering a large tiled map in WPF

What is the best way to manage a very large amount of images (10,000+) in WPF? This is for a 2d tile map editor similar to this : http://www.mapeditor.org/ .
At the moment i have a canvas with all tiles as an image and a list box which contains the different images to choose from. Each tile is added to the canvas as children and then stored in a list for later access. You paint into the canvas by setting the Source property of a tile to the one selected in the listbox. It works well with around 50x50 tile maps but anything above that causes loading delays, in general slow application.
Any suggestions on this? Would QT maybe be more suited instead of wpf?
Thanks in advance
Check out Implementing virtualized panel series of articles.
Virtualized panels are efficient, because:
Only the displayed elements (and a few extra around the borders to enable smooth scrolling) are in the memory (and rendered).
Elements are reused, instead of being repeatedly created and discarded - an old cell is simply filled with new content (supplied with new DataContext) and used in new location.
You might also try to use WPF's DataGrid for this, it supports virtualization out of the box and is essentially what are you trying to do.
WPF is certainly able to do this, if implemented properly (if you can do that in JavaScript, you can certainly do it in WPF as well).

WPF - copying items with brushes attached

I'm developing a multi track video player in wpf and need to be able to copy the video that is playing in one grid layout of the main window into a seperate window that will go out of a projector. The videos are loaded and drawn onto rectangles using drawing brush and are added to a grid. I can't call clone on the rectangle, or the grid, or the canvas, so I'm currently resorting to copying the drawing brushes, passing them through to the otherwindow class and reassigning them to newly drawn rectangles.
However, this gets even worse as I'm 'cross-fading' between two video by drawing another rectangle with a new video in front, then changing the opacity value of the front video to gradually block out the one behind. So I now have two brushes on two rectangles tied to storyboards to animate, and I'm having to pass everything through and basically compute everything twice.
Is there any sensible way of doing this? I'd love to be able to literally grab the pixels from one area of the main video and display them in the second window, but everything seems abstracted away.
Any suggestions would be a massive help
Have you looked at VisualBrush?

What is the best way in Silerlight to make areas of a large graphic clickable?

In a Silverlight application I have large images which have flow charts on them.
I need to handle the clicks on specific hotspots of the image where the flow chart boxes are.
Since the flow charts will always be different, the information of where the hotspots has to be dynamic, e.g. in a list of coordinates.
I've found article like this one but don't need the detail of e.g. the outline of countries but just simple rectangle and circle areas.
I've also found articles where they talk about overlaying an HTML image map over the silverlight application, but it has to be easier than this.
What is the best way to handle clicks on specific areas of an image in silverlight?
Place the Image and a Canvas in a Grid so that the Canvas overlays the Image.
Add shapes of appropriate sizes and placed as needed to the canvas. All shapes will a transparent fill and no border, hence the user only sees the Image. On the Canvas MouseDown (or Up events) use OriginalSource to determine which shape generated the click. Use the Tag property of each shape to associate it with some object that represents the flowchart element being mapped.
I found an easy way to do this without a canvas:
How to get the coordinates of an image mouse click in the event handler?

Resources