static void action_changed (GtkComboBox *combo, UmPasswordDialog *um) { gint active; active = gtk_combo_box_get_active (combo); if (active == 0) { gtk_widget_set_sensitive (um->password_entry, TRUE); gtk_entry_set_icon_sensitive (GTK_ENTRY (um->password_entry), GTK_ENTRY_ICON_SECONDARY, TRUE); gtk_widget_set_sensitive (um->verify_entry, TRUE); gtk_widget_set_sensitive (um->old_password_entry, TRUE); gtk_widget_set_sensitive (um->strength_indicator_label, TRUE); gtk_widget_set_sensitive (um->show_password_button, TRUE); update_sensitivity (um); } else { gtk_widget_set_sensitive (um->password_entry, FALSE); gtk_entry_set_icon_sensitive (GTK_ENTRY (um->password_entry), GTK_ENTRY_ICON_SECONDARY, FALSE); gtk_widget_set_sensitive (um->verify_entry, FALSE); gtk_widget_set_sensitive (um->old_password_entry, FALSE); gtk_widget_set_sensitive (um->strength_indicator_label, FALSE); gtk_widget_set_sensitive (um->show_password_button, FALSE); gtk_widget_set_sensitive (um->ok_button, TRUE); } }
static void facq_plug_dialog_constructed(GObject *self) { FacqPlugDialog *dialog = FACQ_PLUG_DIALOG(self); GtkWidget *vbox = NULL, *table = NULL, *widget = NULL; dialog->priv->dialog = gtk_dialog_new_with_buttons("Plug preferences", GTK_WINDOW(dialog->priv->top_window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL, GTK_STOCK_OK,GTK_RESPONSE_OK,NULL); vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog->priv->dialog)); table = gtk_table_new(2,2,FALSE); widget = gtk_label_new("Address:"); gtk_label_set_justify(GTK_LABEL(widget),GTK_JUSTIFY_LEFT); gtk_table_attach_defaults(GTK_TABLE(table),widget,0,1,0,1); widget = gtk_entry_new(); if(dialog->priv->address) gtk_entry_set_text(GTK_ENTRY(widget),dialog->priv->address); else gtk_entry_set_text(GTK_ENTRY(widget),"all"); gtk_entry_set_icon_from_stock(GTK_ENTRY(widget),GTK_ENTRY_ICON_PRIMARY,GTK_STOCK_CLEAR); gtk_entry_set_icon_from_stock(GTK_ENTRY(widget),GTK_ENTRY_ICON_SECONDARY,GTK_STOCK_NETWORK); gtk_entry_set_icon_activatable(GTK_ENTRY(widget),GTK_ENTRY_ICON_PRIMARY,TRUE); gtk_entry_set_icon_activatable(GTK_ENTRY(widget),GTK_ENTRY_ICON_SECONDARY,TRUE); gtk_entry_set_icon_sensitive(GTK_ENTRY(widget),GTK_ENTRY_ICON_PRIMARY,TRUE); gtk_entry_set_icon_sensitive(GTK_ENTRY(widget),GTK_ENTRY_ICON_SECONDARY,TRUE); g_signal_connect(widget,"icon-press", G_CALLBACK(address_icons_callback),dialog); dialog->priv->address_entry = widget; gtk_table_attach_defaults(GTK_TABLE(table),widget,1,2,0,1); widget = gtk_label_new("Port:"); gtk_label_set_justify(GTK_LABEL(widget),GTK_JUSTIFY_LEFT); gtk_table_attach_defaults(GTK_TABLE(table),widget,0,1,1,2); widget = gtk_spin_button_new_with_range(0,65535,1); gtk_entry_set_icon_from_stock(GTK_ENTRY(widget),GTK_ENTRY_ICON_PRIMARY,GTK_STOCK_CLEAR); gtk_entry_set_icon_from_stock(GTK_ENTRY(widget),GTK_ENTRY_ICON_SECONDARY,GTK_STOCK_CONNECT); gtk_spin_button_set_increments(GTK_SPIN_BUTTON(widget),1,10); gtk_spin_button_set_digits(GTK_SPIN_BUTTON(widget),0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),dialog->priv->port); g_signal_connect(GTK_ENTRY(widget),"icon-press", G_CALLBACK(port_icons_callback),dialog); dialog->priv->spin_button = widget; gtk_table_attach_defaults(GTK_TABLE(table),widget,1,2,1,2); gtk_widget_show_all(table); gtk_container_add(GTK_CONTAINER(vbox),table); }
static void presence_chooser_set_status_editing (EmpathyPresenceChooser *self, gboolean editing) { EmpathyPresenceChooserPriv *priv = GET_PRIV (self); GtkWidget *entry; if (priv->block_set_editing) { return; } entry = gtk_bin_get_child (GTK_BIN (self)); if (editing) { priv->editing_status = TRUE; gtk_entry_set_icon_from_stock (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_OK); gtk_entry_set_icon_tooltip_text (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY, _("Set status")); gtk_entry_set_icon_sensitive (GTK_ENTRY (entry), GTK_ENTRY_ICON_PRIMARY, FALSE); } else { GtkWidget *window; presence_chooser_set_favorite_icon (self); gtk_entry_set_icon_sensitive (GTK_ENTRY (entry), GTK_ENTRY_ICON_PRIMARY, TRUE); /* attempt to get the toplevel for this widget */ window = gtk_widget_get_toplevel (GTK_WIDGET (self)); if (GTK_WIDGET_TOPLEVEL (window) && GTK_IS_WINDOW (window)) { /* unset the focus */ gtk_window_set_focus (GTK_WINDOW (window), NULL); } /* see presence_chooser_entry_focus_out_cb () * for what this does */ if (priv->focus_out_idle_source != 0) { g_source_remove (priv->focus_out_idle_source); priv->focus_out_idle_source = 0; } gtk_editable_set_position (GTK_EDITABLE (entry), 0); priv->editing_status = FALSE; } }
static gboolean simple_filter_search_activate_handler(GtkEntry *entry, PraghaFilterDialog *fdialog) { gchar *text = NULL; gchar *u_str = NULL; gboolean has_text; has_text = gtk_entry_get_text_length (GTK_ENTRY(entry)) > 0; if (fdialog->filter_string != NULL) { g_free (fdialog->filter_string); fdialog->filter_string = NULL; } if (has_text) { text = gtk_editable_get_chars (GTK_EDITABLE(entry), 0, -1); u_str = g_utf8_strdown (text, -1); fdialog->filter_string = u_str; } gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(fdialog->filter_model)); gtk_entry_set_icon_sensitive (GTK_ENTRY(entry), GTK_ENTRY_ICON_SECONDARY, has_text); g_free (text); return FALSE; }
static gboolean simple_filter_search_keyrelease_handler(GtkEntry *entry, PraghaFilterDialog *fdialog) { gchar *text = NULL; gchar *u_str = NULL; gboolean has_text; if (fdialog->filter_string != NULL) { g_free (fdialog->filter_string); fdialog->filter_string = NULL; } has_text = gtk_entry_get_text_length (GTK_ENTRY(entry)) > 0; if (has_text) { text = gtk_editable_get_chars (GTK_EDITABLE(entry), 0, -1); u_str = g_utf8_strdown (text, -1); fdialog->filter_string = u_str; } gtk_entry_set_icon_sensitive (GTK_ENTRY(entry), GTK_ENTRY_ICON_SECONDARY, has_text); if (!pragha_preferences_get_instant_search(fdialog->preferences)) return FALSE; queue_filter_dialog_refilter(fdialog); return FALSE; }
/** * search entry text changed */ void on_search_entry_changed(GtkEditable *edit, gpointer data) { gboolean has_text; has_text = gtk_entry_get_text_length(GTK_ENTRY(edit)) > 0; gtk_entry_set_icon_sensitive(GTK_ENTRY(edit), GTK_ENTRY_ICON_SECONDARY, has_text); }
static void text_changed_cb (GtkEntry *entry, GParamSpec *pspec, GtkWidget *button) { gboolean has_text = gtk_entry_get_text_length(entry) > 0; gtk_entry_set_icon_sensitive ( entry, GTK_ENTRY_ICON_SECONDARY, has_text ); gtk_widget_set_sensitive ( button, has_text ); }
static void gimp_action_editor_filter_changed (GtkEntry *entry, GimpActionEditor *editor) { gimp_action_view_set_filter (GIMP_ACTION_VIEW (editor->view), gtk_entry_get_text (entry)); gtk_entry_set_icon_sensitive (entry, GTK_ENTRY_ICON_SECONDARY, gtk_entry_get_text_length (entry) > 0); }
static void text_changed_cb (GtkEntry *entry, GParamSpec *pspec, gpointer data) { if ( data ) { gboolean has_text = gtk_entry_get_text_length(entry) > 0; gtk_entry_set_icon_sensitive ( entry, GPOINTER_TO_INT(data), has_text ); } }
static void gimp_combo_tag_entry_tag_count_changed (GimpTaggedContainer *container, gint tag_count, GimpComboTagEntry *entry) { gboolean sensitive; sensitive = tag_count > 0 && ! GIMP_TAG_ENTRY (entry)->has_invalid_tags; gtk_entry_set_icon_sensitive (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY, sensitive); }
/** * gva_main_search_entry_changed_cb: * @entry: the search entry * * Handler for #GtkEditable::changed signals to the search entry. * * Updates the sensitivity of the clear search icon. **/ void gva_main_search_entry_changed_cb (GtkEntry *entry) { GtkEntryIconPosition position; gboolean sensitive; const gchar *text; text = gtk_entry_get_text (entry); position = GTK_ENTRY_ICON_SECONDARY; sensitive = (text != NULL) && (*text != '\0'); gtk_entry_set_icon_sensitive (entry, position, sensitive); }
static void password_entry_changed_cb (GtkEditable *entry, gpointer user_data) { EmpathyPasswordDialogPriv *priv = EMPATHY_PASSWORD_DIALOG (user_data)->priv; const gchar *str; str = gtk_entry_get_text (GTK_ENTRY (entry)); gtk_entry_set_icon_sensitive (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY, !EMP_STR_EMPTY (str)); gtk_widget_set_sensitive (priv->ok_button, !EMP_STR_EMPTY (str)); }
GtkWidget* pragha_search_entry_new(PraghaPreferences *preferences) { GtkWidget *search_entry; search_entry = gtk_entry_new (); gtk_entry_set_icon_from_stock (GTK_ENTRY(search_entry), GTK_ENTRY_ICON_PRIMARY, GTK_STOCK_FIND); gtk_entry_set_icon_from_stock (GTK_ENTRY(search_entry), GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR); gtk_entry_set_icon_sensitive (GTK_ENTRY(search_entry), GTK_ENTRY_ICON_SECONDARY, FALSE); /* Signal handlers */ g_signal_connect (G_OBJECT(search_entry), "icon-press", G_CALLBACK (pragha_search_bar_icon_pressed_cb), preferences); return search_entry; }
static void gimp_action_editor_init (GimpActionEditor *editor) { GtkWidget *hbox; GtkWidget *label; GtkWidget *entry; gtk_orientable_set_orientation (GTK_ORIENTABLE (editor), GTK_ORIENTATION_VERTICAL); gtk_box_set_spacing (GTK_BOX (editor), 12); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); gtk_box_pack_start (GTK_BOX (editor), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); label = gtk_label_new_with_mnemonic (_("_Search:")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_widget_show (label); entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); gtk_widget_show (entry); gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry); gtk_entry_set_icon_from_stock (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR); gtk_entry_set_icon_activatable (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY, TRUE); gtk_entry_set_icon_sensitive (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY, FALSE); g_signal_connect (entry, "icon-press", G_CALLBACK (gimp_action_editor_filter_clear), NULL); g_signal_connect (entry, "changed", G_CALLBACK (gimp_action_editor_filter_changed), editor); }
static void empathy_password_dialog_constructed (GObject *object) { EmpathyPasswordDialog *dialog; EmpathyPasswordDialogPriv *priv; TpAccount *account; GtkWidget *icon; GtkBox *box; gchar *text; dialog = EMPATHY_PASSWORD_DIALOG (object); priv = dialog->priv; g_assert (priv->handler != NULL); priv->grabbing = FALSE; account = empathy_server_sasl_handler_get_account (priv->handler); tp_g_signal_connect_object (priv->handler, "invalidated", G_CALLBACK (password_dialog_handler_invalidated_cb), object, 0); /* dialog */ gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); priv->ok_button = gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_OK, GTK_RESPONSE_OK); gtk_widget_set_sensitive (priv->ok_button, FALSE); text = g_strdup_printf (_("Enter your password for account\n<b>%s</b>"), tp_account_get_display_name (account)); gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (dialog), text); g_free (text); gtk_window_set_icon_name (GTK_WINDOW (dialog), GTK_STOCK_DIALOG_AUTHENTICATION); box = GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))); /* dialog icon */ icon = gtk_image_new_from_icon_name (tp_account_get_icon_name (account), GTK_ICON_SIZE_DIALOG); gtk_message_dialog_set_image (GTK_MESSAGE_DIALOG (dialog), icon); gtk_widget_show (icon); /* entry */ priv->entry = gtk_entry_new (); gtk_entry_set_visibility (GTK_ENTRY (priv->entry), FALSE); /* entry clear icon */ gtk_entry_set_icon_from_stock (GTK_ENTRY (priv->entry), GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR); gtk_entry_set_icon_sensitive (GTK_ENTRY (priv->entry), GTK_ENTRY_ICON_SECONDARY, FALSE); g_signal_connect (priv->entry, "icon-release", G_CALLBACK (clear_icon_released_cb), NULL); g_signal_connect (priv->entry, "changed", G_CALLBACK (password_entry_changed_cb), dialog); g_signal_connect (priv->entry, "activate", G_CALLBACK (password_entry_activate_cb), dialog); gtk_box_pack_start (box, priv->entry, FALSE, FALSE, 0); gtk_widget_show (priv->entry); /* remember password ticky box */ priv->ticky = gtk_check_button_new_with_label (_("Remember password")); gtk_box_pack_start (box, priv->ticky, FALSE, FALSE, 0); /* only show it if we actually support it */ if (empathy_server_sasl_handler_can_save_response_somewhere (priv->handler)) gtk_widget_show (priv->ticky); g_signal_connect (dialog, "response", G_CALLBACK (password_dialog_response_cb), dialog); g_signal_connect (dialog, "window-state-event", G_CALLBACK (password_dialog_window_state_changed), dialog); g_signal_connect (dialog, "map-event", G_CALLBACK (password_dialog_grab_keyboard), dialog); g_signal_connect (dialog, "unmap-event", G_CALLBACK (password_dialog_ungrab_keyboard), dialog); gtk_widget_grab_focus (priv->entry); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS); }
int main (int argc, char **argv) { GtkWidget *window; GtkWidget *table; GtkWidget *label; GtkWidget *entry; GtkWidget *button; GIcon *icon; GtkTargetList *tlist; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Gtk Entry Icons Test"); gtk_container_set_border_width (GTK_CONTAINER (window), 12); g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL); table = gtk_table_new (2, 4, FALSE); gtk_container_add (GTK_CONTAINER (window), table); gtk_table_set_row_spacings (GTK_TABLE (table), 6); gtk_table_set_col_spacings (GTK_TABLE (table), 6); /* * Open File - Sets the icon using a GIcon */ label = gtk_label_new ("Open File:"); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); entry = gtk_entry_new (); gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); icon = g_themed_icon_new ("folder"); g_themed_icon_append_name (G_THEMED_ICON (icon), "gtk-directory"); gtk_entry_set_icon_from_gicon (GTK_ENTRY (entry), GTK_ENTRY_ICON_PRIMARY, icon); gtk_entry_set_icon_sensitive (GTK_ENTRY (entry), GTK_ENTRY_ICON_PRIMARY, FALSE); gtk_entry_set_icon_tooltip_text (GTK_ENTRY (entry), GTK_ENTRY_ICON_PRIMARY, "Open a file"); button = gtk_button_new_with_label ("Properties"); gtk_table_attach (GTK_TABLE (table), button, 2, 3, 0, 1, GTK_FILL, GTK_FILL, 0, 0); g_signal_connect (button, "clicked", G_CALLBACK (properties_cb), entry); /* * Save File - sets the icon using a stock id. */ label = gtk_label_new ("Save File:"); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0); gtk_misc_set_alignment (GTK_MISC(label), 0.0, 0.5); entry = gtk_entry_new (); gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 1, 2, GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); gtk_entry_set_text (GTK_ENTRY (entry), "ā€¸Right-to-left"); gtk_widget_set_direction (entry, GTK_TEXT_DIR_RTL); gtk_entry_set_icon_from_stock (GTK_ENTRY (entry), GTK_ENTRY_ICON_PRIMARY, GTK_STOCK_SAVE); gtk_entry_set_icon_tooltip_text (GTK_ENTRY (entry), GTK_ENTRY_ICON_PRIMARY, "Save a file"); tlist = gtk_target_list_new (NULL, 0); gtk_target_list_add_text_targets (tlist, 0); gtk_entry_set_icon_drag_source (GTK_ENTRY (entry), GTK_ENTRY_ICON_PRIMARY, tlist, GDK_ACTION_COPY); g_signal_connect_after (entry, "drag-begin", G_CALLBACK (drag_begin_cb), NULL); g_signal_connect (entry, "drag-data-get", G_CALLBACK (drag_data_get_cb), NULL); gtk_target_list_unref (tlist); button = gtk_button_new_with_label ("Properties"); gtk_table_attach (GTK_TABLE (table), button, 2, 3, 1, 2, GTK_FILL, GTK_FILL, 0, 0); g_signal_connect (button, "clicked", G_CALLBACK (properties_cb), entry); /* * Search - Uses a helper function */ label = gtk_label_new ("Search:"); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); entry = gtk_entry_new (); gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 2, 3, GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); gtk_entry_set_icon_from_stock (GTK_ENTRY (entry), GTK_ENTRY_ICON_PRIMARY, GTK_STOCK_FIND); gtk_entry_set_icon_from_stock (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR); g_signal_connect (entry, "icon-press", G_CALLBACK (clear_pressed), NULL); button = gtk_button_new_with_label ("Properties"); gtk_table_attach (GTK_TABLE (table), button, 2, 3, 2, 3, GTK_FILL, GTK_FILL, 0, 0); g_signal_connect (button, "clicked", G_CALLBACK (properties_cb), entry); /* * Password - Sets the icon using a stock id */ label = gtk_label_new ("Password:"******"Properties"); gtk_table_attach (GTK_TABLE (table), button, 2, 3, 3, 4, GTK_FILL, GTK_FILL, 0, 0); g_signal_connect (button, "clicked", G_CALLBACK (properties_cb), entry); /* Name - Does not set any icons. */ label = gtk_label_new ("Name:"); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 4, 5, GTK_FILL, GTK_FILL, 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); entry = gtk_entry_new (); gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 4, 5, GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); button = gtk_button_new_with_label ("Properties"); gtk_table_attach (GTK_TABLE (table), button, 2, 3, 4, 5, GTK_FILL, GTK_FILL, 0, 0); g_signal_connect (button, "clicked", G_CALLBACK (properties_cb), entry); gtk_widget_show_all (window); gtk_main(); return 0; }