On Thu, February 14, 2013 9:15 am, Tristan Matthews wrote: > 2013/2/13 Patrick Shirkey <[email protected]>: >> >> On Thu, February 14, 2013 3:43 am, Patrick Shirkey wrote: >>> On Tue, February 12, 2013 9:00 pm, SxDx wrote: >>>> On 02/12/2013 09:56 AM, Patrick Shirkey wrote: >>>>> >>>>> On Tue, February 12, 2013 3:50 am, Paul Davis wrote: >>>>>> On Mon, Feb 11, 2013 at 11:44 AM, Patrick Shirkey < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> >>>>>>> Thanks for the tip. Will save me some braincells. >>>>>>> >>>>>>> Found it here: >>>>>>> >>>>>>> >>>>>>> http://guitarix.sourcearchive.com/documentation/0.10.0-2/GtkFastMeter_8cpp-source.html >>>>>>> >>>>>>> http://guitarix.sourcearchive.com/documentation/0.10.0-2/GtkFastMeter_8h-source.html >>>>>>> >>>>>> >>>>>> the code in ardour3 doesn't use pixbufs and is entirely drawn >>>>>> directly >>>>>> with >>>>>> cairo. you may or may not care. >>>>>> >>>>> >>>>> It's a multistep process to get it all integrated. I couldn't find >>>>> anything specific online for making a custom widget with gtk3 so I >>>>> have >>>>> copied the structure and methods from the gtkscale/gtkrange widgets. >>>>> >>>>> http://git.gnome.org/browse/gtk+/tree/gtk/gtkscale.c?h=gtk-3-6 >>>>> http://git.gnome.org/browse/gtk+/tree/gtk/gtkrange.c?h=gtk-3-6 >>>>> >>>>> I got it to the point where it the class is building and init() is >>>>> being >>>>> called but I am having a problem with assigning the correct TYPE for >>>>> GTK_METER and getting the draw/realize methods to fire. >>>>> >>>>> http://boosthardware.com/code/jamin/ >>>> >>>> Can you provide a small main.c or something? >>>> All I see in there are static init functions never called. >>>> >>> >>> Yeah it's just the class, no wrapping. >>> >>> It can be called like this: >>> >>> GtkWidget *gtkmeter; >>> GtkAdjustment *adjustment = (GtkAdjustment*) gtk_adjustment_new(0.0, >>> -40, >>> 6, 0.0, 0.0, 0.0); >>> >>> meter = gtk_meter_net(adjustment, GTK_METER_UP, 0. -40, 6); >>> >>> >> >> >> Turns out there were a couple of small items that needed to be changed. >> I >> had to disable the additional params in the call to g_object_new() in >> gtk_meter_init() and fix the Type Declaration. >> >> I have updated the files. http://boosthardware.com/code/jamin/ >> >> At the moment I have a meter that doesn't update which shouldn't take >> long >> to fix. However what I am aiming for is to integrate the different cairo >> meters into one class. >> >> fastmeter - ardour >> vumeter - scenic >> GtkMeter - jackeq > > I would recommend avoiding subclassing, if possible, and maybe install > a "render-style" property for your object which will determine which > drawing code to call. Maybe it's not as easy as that though. >
That can be done. Just need a switch for the different draw code. -- Patrick Shirkey Boost Hardware Ltd _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
