/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* e-url-entry.c * * Copyright (C) 2002 JP Rosevear * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * * Author: JP Rosevear */ #ifdef HAVE_CONFIG_H #include <config.h> #endif #include <gtk/gtk.h> #include <libgnome/gnome-url.h> #include <glib/gi18n.h> #include "e-url-entry.h" #include <e-util/e-icon-factory.h> struct _EUrlEntryPrivate { GtkWidget *entry; GtkWidget *button; }; static void class_init (EUrlEntryClass *klass); static void init (EUrlEntry *url_entry); static void destroy (GtkObject *obj); static void button_clicked_cb (GtkWidget *widget, gpointer data); static void entry_changed_cb (GtkEditable *editable, gpointer data); static gboolean mnemonic_activate (GtkWidget *widget, gboolean group_cycling); static GtkHBoxClass *parent_class = NULL; GtkType e_url_entry_get_type (void) { static GtkType type = 0; if (type == 0) { static const GtkTypeInfo info = { "EUrlEntry", sizeof (EUrlEntry), sizeof (EUrlEntryClass), (GtkClassInitFunc) class_init, (GtkObjectInitFunc) init, /* reserved_1 */ NULL, /* reserved_2 */ NULL, (GtkClassInitFunc) NULL, }; type = gtk_type_unique (gtk_hbox_get_type (), &info); } return type; } static void class_init (EUrlEntryClass *klass) { GtkObjectClass *object_class; GtkWidgetClass *widget_class; object_class = GTK_OBJECT_CLASS (klass); widget_class = GTK_WIDGET_CLASS (klass); parent_class = g_type_class_ref(gtk_hbox_get_type ()); object_class->destroy = destroy; widget_class->mnemonic_activate = mnemonic_activate; } static void init (EUrlEntry *url_entry) { EUrlEntryPrivate *priv; GtkWidget *pixmap; priv = g_new0 (EUrlEntryPrivate, 1); url_entry->priv = priv; priv->entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (url_entry), priv->entry, TRUE, TRUE, 0); priv->button = gtk_button_new (); gtk_widget_set_sensitive (priv->button, FALSE); gtk_box_pack_start (GTK_BOX (url_entry), priv->button, FALSE, FALSE, 0); atk_object_set_name (gtk_widget_get_accessible (priv->button), _("Click here to go to URL")); pixmap = e_icon_factory_get_image ("go-jump", E_ICON_SIZE_BUTTON); gtk_container_add (GTK_CONTAINER (priv->button), pixmap); gtk_widget_show (pixmap); gtk_widget_show (priv->button); gtk_widget_show (priv->entry); g_signal_connect (priv->button, "clicked", G_CALLBACK (button_clicked_cb), url_entry); g_signal_connect (priv->entry, "changed", G_CALLBACK (entry_changed_cb), url_entry); } static void destroy (GtkObject *obj) { EUrlEntry *url_entry; url_entry = E_URL_ENTRY (obj); if (url_entry->priv) { g_free (url_entry->priv); url_entry->priv = NULL; } GTK_OBJECT_CLASS (parent_class)->destroy (obj); } /* GtkWidget::mnemonic_activate() handler for the EUrlEntry */ static gboolean mnemonic_activate (GtkWidget *widget, gboolean group_cycling) { EUrlEntry *url_entry; EUrlEntryPrivate *priv; url_entry = E_URL_ENTRY (widget); priv = url_entry->priv; return gtk_widget_mnemonic_activate (priv->entry, group_cycling); } GtkWidget * e_url_entry_new (void) { return g_object_new (E_TYPE_URL_ENTRY, NULL); } GtkWidget * e_url_entry_get_entry (EUrlEntry *url_entry) { EUrlEntryPrivate *priv; g_return_val_if_fail (url_entry != NULL, NULL); g_return_val_if_fail (E_IS_URL_ENTRY (url_entry), NULL); priv = url_entry->priv; return priv->entry; } static void button_clicked_cb (GtkWidget *widget, gpointer data) { EUrlEntry *url_entry; EUrlEntryPrivate *priv; url_entry = E_URL_ENTRY (data); priv = url_entry->priv; gnome_url_show (gtk_entry_get_text (GTK_ENTRY (priv->entry)), NULL); } static void entry_changed_cb (GtkEditable *editable, gpointer data) { EUrlEntry *url_entry; EUrlEntryPrivate *priv; const char *url; url_entry = E_URL_ENTRY (data); priv = url_entry->priv; url = gtk_entry_get_text (GTK_ENTRY (priv->entry)); gtk_widget_set_sensitive (priv->button, url != NULL && *url != '\0'); } 21Q1</option> <option value='branches/RELEASE_8_4_0'>branches/RELEASE_8_4_0</option> <option value='branches/RELENG_2_1_0'>branches/RELENG_2_1_0</option> <option value='branches/RELENG_2_2'>branches/RELENG_2_2</option> <option value='branches/RELENG_9_1_0'>branches/RELENG_9_1_0</option> <option value='branches/RELENG_9_2_0'>branches/RELENG_9_2_0</option> <option value='dependabot/npm_and_yarn/devel/electron4/files/eslint-utils-1.4.3'>dependabot/npm_and_yarn/devel/electron4/files/eslint-utils-1.4.3</option> <option value='dependabot/npm_and_yarn/devel/electron4/files/lodash-4.17.15'>dependabot/npm_and_yarn/devel/electron4/files/lodash-4.17.15</option> <option value='dependabot/npm_and_yarn/devel/electron4/files/lodash.merge-4.6.2'>dependabot/npm_and_yarn/devel/electron4/files/lodash.merge-4.6.2</option> <option value='dependabot/npm_and_yarn/devel/electron4/files/lodash.template-4.5.0'>dependabot/npm_and_yarn/devel/electron4/files/lodash.template-4.5.0</option> <option value='dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.2'>dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.2</option> <option value='dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'>dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2</option> <option value='main' selected='selected'>main</option> <option value='master'>master</option> <option value='svn_head'>svn_head</option> </select> <input type='submit' value='switch'/></form></td></tr> <tr><td class='sub'>FreeBSD Ports (https://github.com/freebsd/freebsd-ports)</td><td class='sub right'></td></tr></table> <table class='tabs'><tr><td> <a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/about/'>about</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/'>summary</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/refs/?id=359fcf18da3ffa1bd213f98b0018b4e4d22b9ce2'>refs</a><a class='active' href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/x11-toolkits/py-gtk2'>log</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/tree/x11-toolkits/py-gtk2?id=359fcf18da3ffa1bd213f98b0018b4e4d22b9ce2'>tree</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=359fcf18da3ffa1bd213f98b0018b4e4d22b9ce2'>commit</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/diff/x11-toolkits/py-gtk2?id=359fcf18da3ffa1bd213f98b0018b4e4d22b9ce2'>diff</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/stats/x11-toolkits/py-gtk2'>stats</a></td><td class='form'><form class='right' method='get' action='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/x11-toolkits/py-gtk2'> <input type='hidden' name='id' value='359fcf18da3ffa1bd213f98b0018b4e4d22b9ce2'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/?id=359fcf18da3ffa1bd213f98b0018b4e4d22b9ce2'>root</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/x11-toolkits?id=359fcf18da3ffa1bd213f98b0018b4e4d22b9ce2'>x11-toolkits</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/x11-toolkits/py-gtk2?id=359fcf18da3ffa1bd213f98b0018b4e4d22b9ce2'>py-gtk2</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/x11-toolkits/py-gtk2?id=359fcf18da3ffa1bd213f98b0018b4e4d22b9ce2&showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Age</th><th class='left'>Files</th><th class='left'>Lines</th></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=e1c6649edf48e1cb8863aca8abf8d880a2f0c31c'>- Remove WITH_FBSD10_FIX, is no longer needed</a></td><td>Martin Wilke</td><td><span title='2011-11-09 23:26:04 +0800'>2011-11-09</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+0</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=f7d2c3ea3e037a0e21af4b04c3a17c5cf394207e'>Fix build on FreeBSD 10</a></td><td>Koop Mast</td><td><span title='2011-10-30 06:53:25 +0800'>2011-10-30</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=989772c9ac17dbf61d27a16069c9a6a83b5b0c2c'>The vast majority of pkg-descr files had the following format when they</a></td><td>Doug Barton</td><td><span title='2011-10-24 17:11:38 +0800'>2011-10-24</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=6f6fbe4bdf9851de1eb6ebef5287e3007846045e'>- Add LDFLAGS to CONFIGURE_ENV and MAKE_ENV (as it was done with LDFLAGS)</a></td><td>Dmitry Marakasov</td><td><span title='2011-09-24 06:26:39 +0800'>2011-09-24</span></td><td>1</td><td><span class='deletions'>-7</span>/<span class='insertions'>+4</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=59f9ae20c705cd4c0114ebb463ea1bb8eafaa6df'>Also update these to there latest stable versions.</a></td><td>Koop Mast</td><td><span title='2011-07-30 17:26:59 +0800'>2011-07-30</span></td><td>4</td><td><span class='deletions'>-28</span>/<span class='insertions'>+18</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=4ed31e1af788e2e1c47b24cce14728aad707dd35'>- Kick MD5 support</a></td><td>Martin Wilke</td><td><span title='2011-07-03 02:18:48 +0800'>2011-07-03</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+0</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=45b47603e1777051d393c7a55ae4d5430e1d0710'>Fix CPU hogging when subprocess terminates.</a></td><td>Koop Mast</td><td><span title='2011-02-28 19:31:37 +0800'>2011-02-28</span></td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+16</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=3680f27ebff58ece429c4e032f9ad84fb1372114'>Presenting GNOME 2.32.1 for FreeBSD. The offical release notes for this</a></td><td>Koop Mast</td><td><span title='2010-11-20 23:37:08 +0800'>2010-11-20</span></td><td>4</td><td><span class='deletions'>-6</span>/<span class='insertions'>+27</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=e9f130dc430236e9fe94eba1cfcb97803a13d526'>Correct typo.</a></td><td>Joe Marcus Clarke</td><td><span title='2010-06-01 03:48:04 +0800'>2010-06-01</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=8d837132c7954ce8a9f54a814b670237ca156d10'>Bounce PORTREVISION for gettext-related ports. Have fun, ya'll.</a></td><td>Ade Lovett</td><td><span title='2010-05-31 10:01:56 +0800'>2010-05-31</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=8903287a848d4f2405e06ebc0e1b49d34e03ad30'>Bump portrevision for last chance, since dependancy list changed for default</a></td><td>Koop Mast</td><td><span title='2010-05-17 19:17:08 +0800'>2010-05-17</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=45f3157a88ad828628706cc83694074b83f72ab1'>Make numpy optional, defaulting to off. Because it depends gcc44.</a></td><td>Koop Mast</td><td><span title='2010-05-17 17:40:21 +0800'>2010-05-17</span></td><td>1</td><td><span class='deletions'>-3</span>/<span class='insertions'>+15</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=24bfc42687672aeecf50fa74f8b802eea24148ec'>Correct depend on Numpy instead of Numeric.</a></td><td>Koop Mast</td><td><span title='2010-05-17 06:07:20 +0800'>2010-05-17</span></td><td>1</td><td><span class='deletions'>-3</span>/<span class='insertions'>+3</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=48e62d9a379cd45a15f6ae89d564f81b3c13d16e'>Presenting GNOME 2.30.1 for FreeBSD. The offical release notes for this</a></td><td>Koop Mast</td><td><span title='2010-05-11 05:19:08 +0800'>2010-05-11</span></td><td>3</td><td><span class='deletions'>-6</span>/<span class='insertions'>+9</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=de78af3ac53da4687d22975cd2e236a0668d9a0d'>- update to 1.4.1</a></td><td>Dirk Meyer</td><td><span title='2010-03-28 14:47:48 +0800'>2010-03-28</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=ca9c60461cb276ee2afe18260afc8dec97c1b6f8'>- update to jpeg-8</a></td><td>Dirk Meyer</td><td><span title='2010-02-05 19:46:55 +0800'>2010-02-05</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=f76d32b8e89fed7c0e459c1a7fe7a4b57661b01c'>Presenting GNOME 2.28.1 for FreeBSD. The official release notes for this</a></td><td>Joe Marcus Clarke</td><td><span title='2009-11-29 04:06:37 +0800'>2009-11-29</span></td><td>3</td><td><span class='deletions'>-9</span>/<span class='insertions'>+13</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=a694f84aaa43d20bd32568bd6978018df6255448'>Add a unique LATEST_LINK.</a></td><td>Joe Marcus Clarke</td><td><span title='2009-08-23 01:19:22 +0800'>2009-08-23</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-toolkits/py-gtk2?id=eca78ec61b7c6c87d59106128bee6ac57b1bdbb5'>- bump all port that indirectly depends on libjpeg and have not yet been bump...</a></td><td>Dirk Meyer</td><td><span title='2009-07-31 21:57:52 +0800'>2009-07-31</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr>