SexyIconEntry is now 67% sexier

The original GTK+ IconEntry widget has just gotten sexier!

I was in need of SexyIconEntry today for some work, and decided now was a good time to fix some of the problems I haven’t taken the time to fix in this widget, and add some features at the same time. To start with, SexyIconEntry now works correctly in all themes I have tested. Clearlooks’s GtkEntry border is no longer cut off, for instance. Also, the ability to put an icon on both sides has been added. See the sexy screenshot!

Such a sexy screenshot

And remember, this is an actual GtkEntry! Anything you can do to a GtkEntry, you can do to this.

I’m adding more features, like the ability to add a clear button with one API call, and icon drag-and-drop support, to the widget. It will be in an upcoming release (possibly tonight or tomorrow morning), along with some other nifty features in other widgets.

By the way, isn’t it about time we replace the asterisk in masked entries with that unicode character for the round filled circle (“●”)? The asterisk is so 1980s.

libsexy, mmmmm

I just put out a release of libsexy and the new GTKMM bindings, libsexymm (pronounced “libsexy, mmmmmmmmm”). The files will probably move at some point, but for now, they’re available here.

I moved GalagoGtkIconEntry into libsexy, and renamed it SexyIconEntry. Also, SexyUrlLabel has been fixed up to allow for hyperlinks that span multiple lines. Thanks to everyone who pushed me in the right direction there. It’s also been optimized a little.

This is not a stable library. I imagine I’ll break things without soname bumps right away, but maybe not. Who knows? This is just a fun library, but useful.

Obligatory screenshots follow.

SexyIconEntry
SexyUrlLabel

SexyIconEntry
SexyIconEntry

libsexy – Doing naughty things to good widgets

I’ve been needing a label widget with support for embedded URLs lately for a couple of projects, but nothing was available that met my needs. So last night I put together libsexy, which will be my testing ground for experimental widgets that do things that I consider very wrong but very cool.

The first widget I put into libsexy is SexyUrlLabel. It’s an actual GtkLabel subclass with a custom sexy_url_label_set_markup() function. This function takes the same markup that gtk_label_set_markup() takes, except it also groks <a href=”…”>…<a>. The link turns into the standard blue text with an underline. Moving the mouse over the link changes the cursor to the standard hand cursor. Clicking it will emit a url_clicked signal, and right-clicking it will pop up a menu with “Open Link” and “Copy Link Address.”

Sexy URL Label

The only problem I have encountered so far is that if you have a link that spans multiple lines, the hyperlink won’t work on the second line except for parts below the top line’s link. I’d like to blame Pango for this, but I know someone will tell me a way to make this work 🙂 I’m currently getting the X and Y coordinates based on the range that Pango specifies for the attribute, but this doesn’t handle line wraps well. Suggestions are welcome.

This will be going into notification-daemon probably today. I won’t be around after today until next Saturday or Sunday. I’m going to Disneyland with my girlfriend and my family, and won’t have net access (nor do I want it). If anyone messes around with the widget and has any patches, please send them to me and I’ll get back to you when I’m next available.

Update: notification-daemon now uses SexyUrlLabel. Markup (as per the spec) is supported and links are supported. Have fun!