On Mon, May 03, 2004 at 09:24:20AM +0200, Peter Krueger wrote:
On Sun, 2 May 2004 rgammans computer-surgery co uk wrote:
So what do I have to do to get gtk_paint_check() to find/create a valid gc?Hi! Your gc problem seems to have its origin in the gtk_widget_get_default_style() call. Try to use gtk_widget_get_style(GtkWidget *widget) with the widget you want to paint to instead.
Ahh, therein lies the rub, I've spent some time investigating and think I now understand whats going on. Your suggestion:- (at least I think this is what you meant) chkbox = gtk_check_button_new(); style = gtk_widget_style_get(chkbox); gtk_paint_check(style, mywindow,state,shadow, area,chkbox,"checkbutton", rect.x -1, rect.y -1, rect_size.width, rect_size.width); Doesn't work either but after all chkbox isn't a real widget, it's just a proxy for one so that I can query the Gtk runtime about the how it should look. AFAICT from reading the gtk source a widget's style is not initialised untill it is added to a container - which is reasonable as as this means styles have containership inheirtance - so chkbox's style isn't initialised Unfortunately I don't want to add a widget to my window , just draw one, as if it were there - but since we know it style is going to initialised from mywindow I take the style thus:- style=gtk_widget_get_style(mywindow); and set the widget's style from it:0. gtk_wiget_set_style(chkbox,style); Doing this I can now get the window is now painted correctly. So is just copying the style from the window, to a proxy widget like this ok, or is it likely to be fragile when deployed? TTFN -- Roger. Home| http://www.sandman.uklinux.net/ Master of Peng Shui. (Ancient oriental art of Penguin Arranging) Work|Independent Sys Consultant | http://www.computer-surgery.co.uk/ So what are the eigenvalues and eigenvectors of 'The Matrix'? --anon
Attachment:
pgpXVChQWGqZm.pgp
Description: PGP signature