[Goodies-commits] r5791 - in xfce4-dict/trunk: . lib panel-plugin
Enrico Troeger
enrico at xfce.org
Fri Oct 24 19:30:19 CEST 2008
Author: enrico
Date: 2008-10-24 17:30:19 +0000 (Fri, 24 Oct 2008)
New Revision: 5791
Modified:
xfce4-dict/trunk/ChangeLog
xfce4-dict/trunk/lib/common.c
xfce4-dict/trunk/lib/gui.c
xfce4-dict/trunk/lib/sexy-icon-entry.c
xfce4-dict/trunk/lib/sexy-icon-entry.h
xfce4-dict/trunk/panel-plugin/xfce4-dict-plugin.c
Log:
Bring the 'Search Term' string back, this time in the search entry to get auto cleared on click.
Use for the panel text entry also a SexyIconEntry.
Modified: xfce4-dict/trunk/ChangeLog
===================================================================
--- xfce4-dict/trunk/ChangeLog 2008-10-24 16:49:55 UTC (rev 5790)
+++ xfce4-dict/trunk/ChangeLog 2008-10-24 17:30:19 UTC (rev 5791)
@@ -1,6 +1,13 @@
+2008-10-23 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+
+ * Bring the 'Search Term' string back, this time in the search
+ entry to get auto cleared on click.
+ * Use for the panel text entry also a SexyIconEntry.
+
+
2008-10-19 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
- * Fix a segfault in link parsing caused by malformed dictionary texts.
+ * Fix a crash in link parsing caused by malformed dictionary texts.
2008-10-18 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: xfce4-dict/trunk/lib/common.c
===================================================================
--- xfce4-dict/trunk/lib/common.c 2008-10-24 16:49:55 UTC (rev 5790)
+++ xfce4-dict/trunk/lib/common.c 2008-10-24 17:30:19 UTC (rev 5791)
@@ -287,7 +287,7 @@
gint mode_in_use = DICTMODE_DICT;
gint mode_default = DICTMODE_LAST_USED;
gint port = 2628;
- gint panel_entry_size = 120;
+ gint panel_entry_size = 150;
gboolean show_panel_entry = FALSE;
const gchar *server = "dict.org";
const gchar *dict = "*";
Modified: xfce4-dict/trunk/lib/gui.c
===================================================================
--- xfce4-dict/trunk/lib/gui.c 2008-10-24 16:49:55 UTC (rev 5790)
+++ xfce4-dict/trunk/lib/gui.c 2008-10-24 17:30:19 UTC (rev 5791)
@@ -259,6 +259,21 @@
}
+static gboolean entry_button_press_cb(GtkWidget *widget, GdkEventButton *event, DictData *dd)
+{
+ static gboolean ran = FALSE;
+
+ if (! ran)
+ {
+ ran = TRUE;
+ if (event->button == 1)
+ gtk_entry_set_text(GTK_ENTRY(widget), "");
+ }
+
+ return FALSE;
+}
+
+
static const gchar *get_icon_name(const gchar *req1, const gchar *req2, const gchar *fallback)
{
GtkIconTheme *theme = gtk_icon_theme_get_default();
@@ -412,8 +427,7 @@
void dict_gui_create_main_window(DictData *dd)
{
- GtkWidget *main_box;
- GtkWidget *entry_box, *label_box, *image;
+ GtkWidget *main_box, *entry_box, *label_box;
GtkWidget *sep, *align, *scrolledwindow_results;
GdkPixbuf *icon;
GtkWidget *method_chooser, *radio, *label;
@@ -443,19 +457,11 @@
gtk_widget_show(label_box);
gtk_box_pack_start(GTK_BOX(entry_box), label_box, TRUE, TRUE, 0);
- dd->main_entry = sexy_icon_entry_new();
- image = gtk_image_new_from_stock("gtk-find", GTK_ICON_SIZE_MENU);
- sexy_icon_entry_set_icon(SEXY_ICON_ENTRY(dd->main_entry),
- SEXY_ICON_ENTRY_PRIMARY, GTK_IMAGE(image));
- sexy_icon_entry_set_icon_highlight(
- SEXY_ICON_ENTRY(dd->main_entry), SEXY_ICON_ENTRY_PRIMARY, TRUE);
- image = gtk_image_new_from_stock("gtk-clear", GTK_ICON_SIZE_MENU);
- sexy_icon_entry_set_icon(SEXY_ICON_ENTRY(dd->main_entry),
- SEXY_ICON_ENTRY_SECONDARY, GTK_IMAGE(image));
- sexy_icon_entry_set_icon_highlight(
- SEXY_ICON_ENTRY(dd->main_entry), SEXY_ICON_ENTRY_SECONDARY, TRUE);
+ dd->main_entry = sexy_icon_entry_new_full("gtk-find", "gtk-clear");
+ gtk_entry_set_text(GTK_ENTRY(dd->main_entry), _("Search term"));
gtk_widget_show(dd->main_entry);
gtk_box_pack_start(GTK_BOX(label_box), dd->main_entry, TRUE, TRUE, 0);
+ g_signal_connect(dd->main_entry, "button-press-event", G_CALLBACK(entry_button_press_cb), dd);
g_signal_connect(dd->main_entry, "activate", G_CALLBACK(entry_activate_cb), dd);
g_signal_connect(dd->main_entry, "icon_released", G_CALLBACK(entry_icon_pressed_cb), dd);
Modified: xfce4-dict/trunk/lib/sexy-icon-entry.c
===================================================================
--- xfce4-dict/trunk/lib/sexy-icon-entry.c 2008-10-24 16:49:55 UTC (rev 5790)
+++ xfce4-dict/trunk/lib/sexy-icon-entry.c 2008-10-24 17:30:19 UTC (rev 5791)
@@ -794,6 +794,32 @@
return GTK_WIDGET(g_object_new(SEXY_TYPE_ICON_ENTRY, NULL));
}
+GtkWidget *sexy_icon_entry_new_full(const gchar *stock_id_pri, const gchar *stock_id_sec)
+{
+ GtkWidget *icon;
+ SexyIconEntry *entry;
+
+ entry = g_object_new(SEXY_TYPE_ICON_ENTRY, NULL);
+
+ if (stock_id_pri != NULL)
+ {
+ icon = gtk_image_new_from_stock(stock_id_pri, GTK_ICON_SIZE_MENU);
+ gtk_widget_show(icon);
+ sexy_icon_entry_set_icon(SEXY_ICON_ENTRY(entry), SEXY_ICON_ENTRY_PRIMARY, GTK_IMAGE(icon));
+ sexy_icon_entry_set_icon_highlight(SEXY_ICON_ENTRY(entry), SEXY_ICON_ENTRY_PRIMARY, TRUE);
+ }
+
+ if (stock_id_sec != NULL)
+ {
+ icon = gtk_image_new_from_stock(stock_id_sec, GTK_ICON_SIZE_MENU);
+ gtk_widget_show(icon);
+ sexy_icon_entry_set_icon(SEXY_ICON_ENTRY(entry), SEXY_ICON_ENTRY_SECONDARY, GTK_IMAGE(icon));
+ sexy_icon_entry_set_icon_highlight(SEXY_ICON_ENTRY(entry), SEXY_ICON_ENTRY_SECONDARY, TRUE);
+ }
+
+ return GTK_WIDGET(entry);
+}
+
/**
* sexy_icon_entry_set_icon
* @entry: A #SexyIconEntry.
@@ -921,3 +947,4 @@
return entry->priv->icons[icon_pos].highlight;
}
+
Modified: xfce4-dict/trunk/lib/sexy-icon-entry.h
===================================================================
--- xfce4-dict/trunk/lib/sexy-icon-entry.h 2008-10-24 16:49:55 UTC (rev 5790)
+++ xfce4-dict/trunk/lib/sexy-icon-entry.h 2008-10-24 17:30:19 UTC (rev 5791)
@@ -80,6 +80,7 @@
GType sexy_icon_entry_get_type(void);
GtkWidget *sexy_icon_entry_new(void);
+GtkWidget *sexy_icon_entry_new_full(const gchar *stock_id_pri, const gchar *stock_id_sec);
void sexy_icon_entry_set_icon(SexyIconEntry *entry,
SexyIconEntryPosition position,
Modified: xfce4-dict/trunk/panel-plugin/xfce4-dict-plugin.c
===================================================================
--- xfce4-dict/trunk/panel-plugin/xfce4-dict-plugin.c 2008-10-24 16:49:55 UTC (rev 5790)
+++ xfce4-dict/trunk/panel-plugin/xfce4-dict-plugin.c 2008-10-24 17:30:19 UTC (rev 5791)
@@ -39,6 +39,7 @@
#include <string.h>
#include "libdict.h"
+#include "sexy-icon-entry.h"
typedef struct
@@ -264,7 +265,15 @@
static gboolean dict_plugin_panel_entry_buttonpress_cb(GtkWidget *entry, GdkEventButton *event, DictPanelData *dpd)
{
GtkWidget *toplevel;
+ static gboolean ran = FALSE;
+ if (! ran)
+ {
+ ran = TRUE;
+ if (event->button == 1)
+ gtk_entry_set_text(GTK_ENTRY(entry), "");
+ }
+
/* Determine toplevel parent widget */
toplevel = gtk_widget_get_toplevel(entry);
@@ -334,6 +343,26 @@
}
+static void entry_icon_pressed_cb(SexyIconEntry *entry, gint pos, gint button, DictPanelData *dpd)
+{
+ if (button != 1)
+ return;
+
+ if (pos == SEXY_ICON_ENTRY_PRIMARY)
+ {
+ dict_plugin_panel_entry_activate_cb(NULL, dpd);
+ gtk_widget_grab_focus(dpd->dd->main_entry);
+ }
+ else if (pos == SEXY_ICON_ENTRY_SECONDARY)
+ {
+ dict_gui_clear_text_buffer(dpd->dd);
+ gtk_entry_set_text(GTK_ENTRY(dpd->dd->main_entry), "");
+ dict_gui_set_panel_entry_text(dpd->dd, "");
+ dict_gui_status_add(dpd->dd, _("Ready."));
+ }
+}
+
+
static void dict_plugin_drag_data_received(GtkWidget *widget, GdkDragContext *drag_context,
gint x, gint y, GtkSelectionData *data, guint info, guint ltime, DictPanelData *dpd)
{
@@ -396,8 +425,11 @@
g_signal_connect(dpd->dd->pref_menu_item, "activate", G_CALLBACK(dict_plugin_properties_dialog), dpd);
/* panel entry */
- dpd->dd->panel_entry = gtk_entry_new();
- gtk_entry_set_width_chars(GTK_ENTRY(dpd->dd->panel_entry), 15);
+ dpd->dd->panel_entry = sexy_icon_entry_new_full(NULL, "gtk-clear");
+ gtk_entry_set_width_chars(GTK_ENTRY(dpd->dd->panel_entry), 25);
+ gtk_entry_set_text(GTK_ENTRY(dpd->dd->panel_entry), _("Search term"));
+ g_signal_connect(dpd->dd->panel_entry, "icon_released",
+ G_CALLBACK(entry_icon_pressed_cb), dpd);
g_signal_connect(dpd->dd->panel_entry, "activate",
G_CALLBACK(dict_plugin_panel_entry_activate_cb), dpd);
g_signal_connect(dpd->dd->panel_entry, "button-press-event",
@@ -409,7 +441,7 @@
gtk_widget_show(dpd->dd->panel_entry);
}
- hbox = gtk_hbox_new(FALSE, 0);
+ hbox = gtk_hbox_new(FALSE, 3);
gtk_widget_show(hbox);
gtk_box_pack_start(GTK_BOX(hbox), dpd->panel_button, FALSE, FALSE, 0);
More information about the Goodies-commits
mailing list