Re: cairo_path_t to GdkRegion?
On Mon, 14 Apr 2008 02:38:27 -0700 Brian J. Tarricone wrote: > Anybody know of a way to munge a cairo_path_t into at > least an approximate GdkRegion (i.e. suitable for > gdk_window_shape_combine_region())? Or is there a better way to do > this? Figured out something, in case anyone's interested. I used cairo_copy_path_flat() to get a cairo_path_t that doesn't have any of those pesky 'curve_to' operations in it, and then converted the path into a series of GdkPoints, iterating over the path data as described in the cairo docs. Seems to work decently well, though the paths unsurprisingly don't match exactly. -brian ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Translation domains
I'm working on an application, and I keep getting messages from my GtkEntry and GtkTextArea widgets "Input method XXX should not use GTK'S translation domain gtk20" Where/How to I set/change the translation domain? ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: Location entry in GtkFileChooser
Hi Carlos. Well, I'm not familiar with GtkFileChooser, but I think you should retrieve the full filename, and then use g_path_get_basename to get the short filename. Cheers, Luis Carlos Pereira a écrit : > Hullo, > > In a GTkFilechooser, how can I acess the information > on the Location entry? I only find functions to get > the full filename and uri but not the actual short > filename... > > Carlos > ___ > gtk-app-devel-list mailing list > gtk-app-devel-list@gnome.org > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list > ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Location entry in GtkFileChooser
Hullo, In a GTkFilechooser, how can I acess the information on the Location entry? I only find functions to get the full filename and uri but not the actual short filename... Carlos ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: Callback Question
Alexander Semenov escribió: > Hi. Perhaps, this discussion was related to threads? > > >> Thank you all for this! Especialy for the long example, but, it was just >> an example. >> I've made an application that works perfectly on Linux but in Window$ it >> crashes a lot! >> I've been trying to find a solution (actually a clue of what the problem >> might be) in any discussion I was able to find about GTK crashes in the >> internet. >> In one of these discussions it was said that gtk functions can't be >> called inside callbacks, that it wasn't safe yet. That, if you call any >> gtk function inside a callback, it should be done using >> g_object_idle_add. Unfortunatly I didn't check the date of the >> discussion, maybe, it is too old. >> >> Thanks. >> >> Matías. >> ___ >> gtk-app-devel-list mailing list >> gtk-app-devel-list@gnome.org >> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list >> > > > No, no threads are involved. ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
How to draw a primitive with one color and fill it with another?
Hello everyone. I want to draw a red circle filled within with a green color on my pixmap. I've set foreground and background colors and passed TRUE as the "filled" parameter to gdk_draw_arc(). But the circle is filled with the same color as it is drawn, that is with the foreground color - red. How can I draw a red circle filled with green? The relevant part of my code is below. /* ... */ static GdkPixmap *pixmap = NULL; void draw(GtkWidget* widget) { int width = widget->allocation.width; int height = widget->allocation.height; GdkGC *gc; GdkColor colors[2]; int x = width / 2; int y = height / 2; int r = 30; if (pixmap) g_object_unref (pixmap); pixmap = gdk_pixmap_new (widget->window, width, height, -1); gc = gdk_gc_new((GdkDrawable *)pixmap); /* clearing to white: */ gdk_draw_rectangle (pixmap, widget->style->white_gc, TRUE, 0, 0, width, height); gdk_color_parse("#ff", &colors[0]); gdk_color_parse("#00ff00", &colors[1]); /* By the way, can I get red and green GdkColor faster, without these gdk_color_parse()? Are some constants for this available? */ gdk_gc_set_rgb_fg_color(gc, &colors[0]); gdk_gc_set_rgb_bg_color(gc, &colors[1]); gdk_draw_arc(pixmap, gc, TRUE, x - r / 2, y - r / 2, r, r, 0, 64 * 360); } /* ... */ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: Draw text to a GdkPixbuf
Why don't you want to draw the text you need in your "expose" function? You simply redefine the GtkWidgetClass "expose-event" and draw there. On Mon, 2008-04-14 at 12:55 +0200, Francesco Sepic wrote: > On Mon, Apr 14, 2008 at 12:31 PM, Alexander Semenov <[EMAIL PROTECTED]> wrote: > > Hi. > > > > What about drawing GdkPixbuf and then your text on GdkWindow? > > > > I'm drawing a scale bar on a map and I'd like to have different types > of scale bar. > The position of the text that i have to draw (for example "50 km") > depends on specific scale bar. > So i want to create different functions that return a GdkPixbuf with > the text already rendered. > > Thanks. ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: Draw text to a GdkPixbuf
On Mon, Apr 14, 2008 at 12:31 PM, Alexander Semenov <[EMAIL PROTECTED]> wrote: > Hi. > > What about drawing GdkPixbuf and then your text on GdkWindow? > I'm drawing a scale bar on a map and I'd like to have different types of scale bar. The position of the text that i have to draw (for example "50 km") depends on specific scale bar. So i want to create different functions that return a GdkPixbuf with the text already rendered. Thanks. -- Francesco Sepic <[EMAIL PROTECTED]> ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: Draw text to a GdkPixbuf
Hi. What about drawing GdkPixbuf and then your text on GdkWindow? On Mon, 2008-04-14 at 12:05 +0200, Francesco Sepic wrote: > Hello, > is it possible to draw text on a GdkPixbuf using Pango? > gdk_draw_text () takes a GdkDrawable as the destination on which draw > text. Is it possible to get a GdkDrawable from a GdkPixbuf? > > Thanks. ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: Preventing Multiple instance of GTK application
Liam R E Quin wrote: > On Sat, 2008-04-12 at 15:16 +0100, Carlos Pereira wrote: > > I agree with everything you said. But in some cases lock files can be useful... this is the way vim checks if other instances of the same file are open, so the new instance is open in read-only mode... of course you need to remove the .filename.swp file yourself, if your machine crashs... as you said... I suppose it depends of the specific needs... but in general I agree with your advices, thank you! Carlos >> You can write a .lock file everytime you start and then remove it when >> you close. To know if other instance is running, you just have to check >> if your .lock file exists. >> > > Please don't do this. > > If you must, take into account > (1) multiple instances may create the file -- especially if it is > on a network file system. You can use O_CREAT|E_EXCL but it > is not guaranteed to work over a network and neither in > practice. > > (2) after a system crash, or if your application crashes, the lock > file will not be removed. > A way round this is to make the lock file by a symbolic link > to a non-existant file with your process ID in it, and then on > startup to check if that process name exists use kill(the_proc, 0), > but this will fail on a network drive if the program is running on > another machine. > A way round this is to include your machine's IP address in the > link, but this fails on a laptop (say) that gets a new IP address > each time it starts and which might get shut down quickly. > > (3) if your application was run as root, or as another user, you might > not be able to delete the lock file. > > (4) the above 3 items don't have portable solutions between operating > systems. > > It is much better to use dbus, or an X Windows property.. > > and even better to use a library that packages all this stuff, > as was suggested by others. > > If you do end up making a lock file, consider making it a directory, > as there are generally fewer locking problems. > > best, > > Liam > > ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Draw text to a GdkPixbuf
Hello, is it possible to draw text on a GdkPixbuf using Pango? gdk_draw_text () takes a GdkDrawable as the destination on which draw text. Is it possible to get a GdkDrawable from a GdkPixbuf? Thanks. -- Francesco Sepic <[EMAIL PROTECTED]> ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
cairo_path_t to GdkRegion?
Hi all, I'm writing a semi-transparent window widget that uses cairo for drawing. I'm using an ARGB window, and the window itself isn't necessarily rectangular (sometimes it'll have rounded corners of arbitrary radius, and other non-regular shapes are possible). Since I'm using cairo to do the drawing, I can of course very easily get a cairo_path_t for the visible outline of the window. I want to be able to draw this at least passably well for users not running a compositing manager (and it would be nice to set an input shape as well). Anybody know of a way to munge a cairo_path_t into at least an approximate GdkRegion (i.e. suitable for gdk_window_shape_combine_region())? Or is there a better way to do this? Thanks, Brian ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: Preventing Multiple instance of GTK application
On Sat, 2008-04-12 at 15:16 +0100, Carlos Pereira wrote: > You can write a .lock file everytime you start and then remove it when > you close. To know if other instance is running, you just have to check > if your .lock file exists. Please don't do this. If you must, take into account (1) multiple instances may create the file -- especially if it is on a network file system. You can use O_CREAT|E_EXCL but it is not guaranteed to work over a network and neither in practice. (2) after a system crash, or if your application crashes, the lock file will not be removed. A way round this is to make the lock file by a symbolic link to a non-existant file with your process ID in it, and then on startup to check if that process name exists use kill(the_proc, 0), but this will fail on a network drive if the program is running on another machine. A way round this is to include your machine's IP address in the link, but this fails on a laptop (say) that gets a new IP address each time it starts and which might get shut down quickly. (3) if your application was run as root, or as another user, you might not be able to delete the lock file. (4) the above 3 items don't have portable solutions between operating systems. It is much better to use dbus, or an X Windows property.. and even better to use a library that packages all this stuff, as was suggested by others. If you do end up making a lock file, consider making it a directory, as there are generally fewer locking problems. best, Liam -- Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/ Pictures from old books: http://fromoldbooks.org/ Ankh: irc.sorcery.net irc.gnome.org www.advogato.org ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: Cant get GtkTextBuffer from GtkTextView widget
В Пнд, 14/04/2008 в 09:59 +0300, Tiberius DULUMAN пишет: > The handler should be: > > static void handler(GtkWidget *widget, GtkTextView *tview) > { > GtkTextBuffer *buffer = NULL; > GtkTextIter iterator; > > buffer = gtk_text_view_get_buffer(tview); > g_assert(buffer != NULL); <<< assert that it is not null > gtk_text_buffer_get_end_iter(buffer, &iterator); <<< pass an allocated > iterator > gtk_text_buffer_insert(buffer, &iterator, "Info message", -1); > } Thanks, it helps me. -- If you think of MS-DOS as mono, and Windows as stereo, then Linux is Dolby Digital and all the music is free... ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: Callback Question
Hi. Perhaps, this discussion was related to threads? > Thank you all for this! Especialy for the long example, but, it was just > an example. > I've made an application that works perfectly on Linux but in Window$ it > crashes a lot! > I've been trying to find a solution (actually a clue of what the problem > might be) in any discussion I was able to find about GTK crashes in the > internet. > In one of these discussions it was said that gtk functions can't be > called inside callbacks, that it wasn't safe yet. That, if you call any > gtk function inside a callback, it should be done using > g_object_idle_add. Unfortunatly I didn't check the date of the > discussion, maybe, it is too old. > > Thanks. > > Matías. > ___ > gtk-app-devel-list mailing list > gtk-app-devel-list@gnome.org > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: Cant get GtkTextBuffer from GtkTextView widget
The handler should be: static void handler(GtkWidget *widget, GtkTextView *tview) { GtkTextBuffer *buffer = NULL; GtkTextIter iterator; buffer = gtk_text_view_get_buffer(tview); g_assert(buffer != NULL); <<< assert that it is not null gtk_text_buffer_get_end_iter(buffer, &iterator); <<< pass an allocated iterator gtk_text_buffer_insert(buffer, &iterator, "Info message", -1); } 2008/4/14 Roman Makurin <[EMAIL PROTECTED]>: > Hi All! > > I`ve got a problem with GtkTextView object. I want to append text to it > everytime when some event occurs. > > Here is code snippet: > > static void handler(GtkWidget *widget, GtkTextView *tview) { >GtkTextBuffer *buffer; >GtkTextIter *iterator; > >buffer = gtk_text_view_get_buffer(tview); >g_assert(buffer == NULL); >gtk_text_buffer_get_end_iter(buffer, iterator); >gtk_text_buffer_insert(buffer, iterator, >"Info message", -1); > } > > int main(int argc, char ** argv) { >GtkWiget *tview; >tview = gtk_text_view_new(); > >g_signal_connect(G_OBJECT(button), "clicked", >G_CALLBACK(handler), tview); > >return 0; > } > > > When I`m trying to get buffer object in habdler() it allways returned as > NULL and I`ve got segmentation fault. I can`t figure out where is my > fault :( > > How can I append text to GtkTextView ? > > Thanks > > PS: Sorry for my english > -- > If you think of MS-DOS as mono, and Windows as stereo, > then Linux is Dolby Digital and all the music is free... > > > ___ > gtk-app-devel-list mailing list > gtk-app-devel-list@gnome.org > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list > ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list