void warlock_color_button_set_active (WarlockColorButton *button, gboolean active) { if (active) { button->active = TRUE; gtk_widget_set_sensitive (button->color_button, TRUE); g_signal_handlers_block_matched (G_OBJECT (button->check_button), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, button); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button->check_button), TRUE); g_signal_handlers_unblock_matched (G_OBJECT (button->check_button), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, button); } else { GdkRGBA color; button->active = FALSE; gtk_widget_set_sensitive (button->color_button, FALSE); gdk_rgba_parse (&color, "black"); warlock_color_button_set_color_real (button, &color); g_signal_handlers_block_matched (G_OBJECT (button->check_button), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, button); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button->check_button), FALSE); g_signal_handlers_unblock_matched (G_OBJECT (button->check_button), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, button); } }
// Make sure the scale and the number of pages tall/wide agree static void check_scale (print_properties_D *dialog, GtkAdjustment *adj) { double dcxPg, dcyPg, tmp, dNanoToUnits = gtk_adjustment_get_value (GTK_ADJUSTMENT (dialog->adjNanoToUnits)) ; int icxWorld = 0, icyWorld = 0, /* in nanos */ icxPages = 0, icyPages = 0 ; print_OP po = {0} ; qcad_print_dialog_get_options (QCAD_PRINT_DIALOG (dialog->dlgPrintProps), &po) ; if (NULL != po.pszPrintString) g_free (po.pszPrintString) ; calc_world_size (&icxWorld, &icyWorld, dialog) ; dcxPg = po.dPaperCX - po.dLMargin - po.dRMargin ; dcyPg = po.dPaperCY - po.dTMargin - po.dBMargin ; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->rbFitPages))) { if (adj == dialog->adjCXPages) dNanoToUnits = qcad_print_dialog_to_current_units (QCAD_PRINT_DIALOG (dialog->dlgPrintProps), (dcxPg * gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (dialog->spnCXPages)))) / icxWorld ; else if (adj == dialog->adjCYPages) dNanoToUnits = qcad_print_dialog_to_current_units (QCAD_PRINT_DIALOG (dialog->dlgPrintProps), (dcyPg * gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (dialog->spnCYPages)))) / icyWorld ; else dNanoToUnits = MIN ( qcad_print_dialog_to_current_units (QCAD_PRINT_DIALOG (dialog->dlgPrintProps), (dcxPg * gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (dialog->spnCXPages)))) / icxWorld, qcad_print_dialog_to_current_units (QCAD_PRINT_DIALOG (dialog->dlgPrintProps), (dcyPg * gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (dialog->spnCYPages)))) / icyWorld) ; dNanoToUnits = floor (dNanoToUnits * 1000.0) / 1000.0 ; gtk_adjustment_set_value (GTK_ADJUSTMENT (dialog->adjNanoToUnits), dNanoToUnits) ; } tmp = qcad_print_dialog_from_current_units (QCAD_PRINT_DIALOG (dialog->dlgPrintProps), icxWorld * dNanoToUnits) / dcxPg ; icxPages = (int)((fabs (tmp - (double)((int)tmp)) > CEIL_EXCEPTION_EPSILON) ? ceil (tmp) : tmp) ; tmp = qcad_print_dialog_from_current_units (QCAD_PRINT_DIALOG (dialog->dlgPrintProps), icyWorld * dNanoToUnits) / dcyPg ; icyPages = (int)((fabs (tmp - (double)((int)tmp)) > CEIL_EXCEPTION_EPSILON) ? ceil (tmp) : tmp) ; g_signal_handlers_block_matched ((gpointer)dialog->adjCXPages, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer)validate_value_change, NULL) ; g_signal_handlers_block_matched ((gpointer)dialog->adjCYPages, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer)validate_value_change, NULL) ; if (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (dialog->spnCXPages)) != icxPages) gtk_adjustment_set_value (GTK_ADJUSTMENT (dialog->adjCXPages), icxPages) ; if (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (dialog->spnCYPages)) != icyPages) gtk_adjustment_set_value (GTK_ADJUSTMENT (dialog->adjCYPages), icyPages) ; g_signal_handlers_unblock_matched ((gpointer)dialog->adjCXPages, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer)validate_value_change, NULL) ; g_signal_handlers_unblock_matched ((gpointer)dialog->adjCYPages, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer)validate_value_change, NULL) ; }
void cairo_dock_update_desklet_widgets (CairoDesklet *pDesklet, GSList *pWidgetList) { CairoDockGroupKeyWidget *pGroupKeyWidget; GtkWidget *pOneWidget; pGroupKeyWidget = cairo_dock_gui_find_group_key_widget_in_list (pWidgetList, "Desklet", "locked"); g_return_if_fail (pGroupKeyWidget != NULL && pGroupKeyWidget->pSubWidgetList != NULL); pOneWidget = pGroupKeyWidget->pSubWidgetList->data; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pOneWidget), pDesklet->bPositionLocked); pGroupKeyWidget = cairo_dock_gui_find_group_key_widget_in_list (pWidgetList, "Desklet", "size"); g_return_if_fail (pGroupKeyWidget != NULL && pGroupKeyWidget->pSubWidgetList != NULL); pOneWidget = pGroupKeyWidget->pSubWidgetList->data; g_signal_handlers_block_matched (pOneWidget, (GSignalMatchType) G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _cairo_dock_set_value_in_pair, NULL); gtk_spin_button_set_value (GTK_SPIN_BUTTON (pOneWidget), pDesklet->container.iWidth); g_signal_handlers_unblock_matched (pOneWidget, (GSignalMatchType) G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _cairo_dock_set_value_in_pair, NULL); if (pGroupKeyWidget->pSubWidgetList->next != NULL) { pOneWidget = pGroupKeyWidget->pSubWidgetList->next->data; g_signal_handlers_block_matched (pOneWidget, (GSignalMatchType) G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _cairo_dock_set_value_in_pair, NULL); gtk_spin_button_set_value (GTK_SPIN_BUTTON (pOneWidget), pDesklet->container.iHeight); g_signal_handlers_unblock_matched (pOneWidget, (GSignalMatchType) G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _cairo_dock_set_value_in_pair, NULL); } int iRelativePositionX = (pDesklet->container.iWindowPositionX + pDesklet->container.iWidth/2 <= gldi_desktop_get_width()/2 ? pDesklet->container.iWindowPositionX : pDesklet->container.iWindowPositionX - gldi_desktop_get_width()); int iRelativePositionY = (pDesklet->container.iWindowPositionY + pDesklet->container.iHeight/2 <= gldi_desktop_get_height()/2 ? pDesklet->container.iWindowPositionY : pDesklet->container.iWindowPositionY - gldi_desktop_get_height()); pGroupKeyWidget = cairo_dock_gui_find_group_key_widget_in_list (pWidgetList, "Desklet", "x position"); g_return_if_fail (pGroupKeyWidget != NULL && pGroupKeyWidget->pSubWidgetList != NULL); pOneWidget = pGroupKeyWidget->pSubWidgetList->data; gtk_spin_button_set_value (GTK_SPIN_BUTTON (pOneWidget), iRelativePositionX); pGroupKeyWidget = cairo_dock_gui_find_group_key_widget_in_list (pWidgetList, "Desklet", "y position"); g_return_if_fail (pGroupKeyWidget != NULL && pGroupKeyWidget->pSubWidgetList != NULL); pOneWidget = pGroupKeyWidget->pSubWidgetList->data; gtk_spin_button_set_value (GTK_SPIN_BUTTON (pOneWidget), iRelativePositionY); pGroupKeyWidget = cairo_dock_gui_find_group_key_widget_in_list (pWidgetList, "Desklet", "rotation"); g_return_if_fail (pGroupKeyWidget != NULL && pGroupKeyWidget->pSubWidgetList != NULL); pOneWidget = pGroupKeyWidget->pSubWidgetList->data; gtk_range_set_value (GTK_RANGE (pOneWidget), pDesklet->fRotation/G_PI*180.); }
static void _lib_modulegroups_toggle(GtkWidget *button, gpointer user_data) { dt_lib_module_t *self = (dt_lib_module_t *)user_data; dt_lib_modulegroups_t *d = (dt_lib_modulegroups_t *)self->data; /* block all button callbacks */ for (int k = 0; k < DT_MODULEGROUP_SIZE; k++) g_signal_handlers_block_matched (d->buttons[k], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _lib_modulegroups_toggle, NULL); /* deactivate all buttons */ uint32_t cb = 0; for (int k = 0; k < DT_MODULEGROUP_SIZE; k++) { /* store toggled modulegroup */ if(d->buttons[k] == button) cb=k; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->buttons[k]), FALSE); } if (d->current == cb) d->current = DT_MODULEGROUP_NONE; else { d->current = cb; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->buttons[cb]), TRUE); } /* unblock all button callbacks */ for (int k = 0; k < DT_MODULEGROUP_SIZE; k++) g_signal_handlers_unblock_matched (d->buttons[k], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _lib_modulegroups_toggle, NULL); /* update visibility */ _lib_modulegroups_update_iop_visibility(self); }
gboolean on_match_selected( GtkEntryCompletion *completion, GtkTreeModel *model, GtkTreeIter *iter, GtkWidget *entry ) { char* path = NULL; gtk_tree_model_get( model, iter, COL_PATH, &path, -1 ); if ( path && path[0] && !g_str_has_suffix( path, "/" ) ) { g_signal_handlers_block_matched( G_OBJECT( entry ), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, on_changed, NULL ); char* new_path = g_strdup_printf( "%s/", path ); gtk_entry_set_text( GTK_ENTRY( entry ), new_path ); g_free( new_path ); g_free( path ); gtk_editable_set_position( (GtkEditable*)entry, -1 ); g_signal_handlers_unblock_matched( G_OBJECT( entry ), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, on_changed, NULL ); on_changed( GTK_ENTRY( entry ), NULL ); return TRUE; } return FALSE; }
/* DESCRIPTION : Generic notifiers for int-based option menus. * This callback is called when a specific key of * the config database associated with an option menu changes, * it only updates the menu. * BEHAVIOR : It only updates the widget. * PRE : The config key triggering that notifier on modifiction * should be of type integer. */ void int_option_menu_changed_nt (G_GNUC_UNUSED gpointer cid, GmConfEntry *entry, gpointer data) { GtkWidget *e = NULL; gint current_value = 0; if (gm_conf_entry_get_type (entry) == GM_CONF_INT) { e = GTK_WIDGET (data); current_value = gm_conf_entry_get_int (entry); g_signal_handlers_block_matched (G_OBJECT (e), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) int_option_menu_changed, NULL); if (current_value != gtk_combo_box_get_active (GTK_COMBO_BOX (e))) gtk_combo_box_set_active (GTK_COMBO_BOX (e), current_value); g_signal_handlers_unblock_matched (G_OBJECT (e), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) int_option_menu_changed, NULL); } }
void adjustment_changed_nt (G_GNUC_UNUSED gpointer cid, GmConfEntry *entry, gpointer data) { GtkAdjustment *s = NULL; gdouble current_value = 0.0; if (gm_conf_entry_get_type (entry) == GM_CONF_INT) { s = GTK_ADJUSTMENT (data); current_value = gm_conf_entry_get_int (entry); g_signal_handlers_block_matched (G_OBJECT (s), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) adjustment_changed, NULL); if (gtk_adjustment_get_value (GTK_ADJUSTMENT (s)) > current_value || gtk_adjustment_get_value (GTK_ADJUSTMENT (s)) < current_value) gtk_adjustment_set_value (GTK_ADJUSTMENT (s), current_value); g_signal_handlers_unblock_matched (G_OBJECT (s), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) adjustment_changed, NULL); } }
// This callback is responsible for enabling/disabling the appropriate buttons depending on // the contents of the selection static void tree_view_selection_changed (GtkTreeSelection *sel, gpointer data) { bus_layout_D *dialog = (bus_layout_D *)data ; gboolean bSomethingSelected = FALSE ; gboolean bBusSelected = FALSE ; gboolean bSelectionIsFromBus = FALSE ; gboolean bFirstSelected = FALSE ; gboolean bLastSelected = FALSE ; gboolean bFirstBusSelected = TRUE ; gboolean bLastBusSelected = TRUE ; GtkTreePath *tpSelBus = NULL, *tp = NULL ; GtkTreeModel *tm = NULL ; int icChildren = -1, Nix ; tm = gtk_tree_view_get_model (gtk_tree_selection_get_tree_view (sel)) ; if ((bSelectionIsFromBus = (NULL != (tpSelBus = get_selection_bus (sel, &bSomethingSelected))))) if (!(bFirstSelected = bLastSelected = bBusSelected = whole_bus_selected_p (sel, tm, tpSelBus))) if ((icChildren = gtk_tree_model_path_n_children (tm, tpSelBus)) > 0) { gtk_tree_path_down (tp = gtk_tree_path_copy (tpSelBus)) ; bFirstSelected = gtk_tree_selection_path_is_selected (sel, tp) ; for (Nix = 1 ; Nix < icChildren ; Nix++) gtk_tree_path_next (tp) ; bLastSelected = gtk_tree_selection_path_is_selected (sel, tp) ; gtk_tree_path_free (tp) ; } if (bSelectionIsFromBus) determine_first_or_last_bus (tm, tpSelBus, &bFirstBusSelected, &bLastBusSelected) ; gtk_widget_set_sensitive (dialog->btnCreateBus, bSomethingSelected && !bBusSelected) ; gtk_widget_set_sensitive (dialog->btnDeleteBus, bSelectionIsFromBus) ; gtk_widget_set_sensitive (dialog->btnMoveBusUp, bSelectionIsFromBus && !bFirstBusSelected) ; gtk_widget_set_sensitive (dialog->btnMoveBusDown, bSelectionIsFromBus && !bLastBusSelected) ; gtk_widget_set_sensitive (dialog->btnMoveCellsUp, bSelectionIsFromBus && !bFirstSelected) ; gtk_widget_set_sensitive (dialog->btnMoveCellsDown, bSelectionIsFromBus && !bLastSelected) ; gtk_widget_set_sensitive (dialog->lblBusName, bSelectionIsFromBus) ; gtk_widget_set_sensitive (dialog->txtBusName, bSelectionIsFromBus) ; // Fill in the text box with the name of the bus if (bSelectionIsFromBus) { GtkTreeIter itr ; char *psz = NULL ; gtk_tree_model_get_iter (tm, &itr, tpSelBus) ; gtk_tree_model_get (tm, &itr, BUS_LAYOUT_MODEL_COLUMN_NAME, &psz, -1) ; g_signal_handlers_block_matched (G_OBJECT (dialog->txtBusName), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer)bus_name_changed, NULL) ; gtk_entry_set_text (GTK_ENTRY (dialog->txtBusName), psz) ; g_signal_handlers_unblock_matched (G_OBJECT (dialog->txtBusName), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer)bus_name_changed, NULL) ; g_free (psz) ; } if (NULL != (tp = g_object_get_data (G_OBJECT (gtk_tree_selection_get_tree_view (sel)), "tpBus"))) gtk_tree_path_free (tp) ; g_object_set_data (G_OBJECT (gtk_tree_selection_get_tree_view (sel)), "tpBus", tpSelBus) ; }
static void reset_slider(CtkDisplayDeviceTv *ctk_display_device_tv, GtkWidget *scale) { GtkAdjustment *adj; gint attribute; ReturnStatus ret; gint val; adj = CTK_SCALE(scale)->gtk_adjustment; if (!adj) return; if (!get_scale_active(CTK_SCALE(scale))) return; attribute = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(adj), "attribute")); ret = NvCtrlGetAttribute(ctk_display_device_tv->handle, attribute, &val); if (ret != NvCtrlSuccess) return; g_signal_handlers_block_matched(adj, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, G_CALLBACK(adjustment_value_changed), NULL); gtk_adjustment_set_value(GTK_ADJUSTMENT(adj), val); g_signal_handlers_unblock_matched(adj, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, G_CALLBACK(adjustment_value_changed), NULL); } /* reset_slider() */
void adj_value_changed_cb (GtkWidget * widget, gpointer data) { sw_view * v = (sw_view *)data; SampleDisplay * sd = SAMPLE_DISPLAY(v->display); GtkAdjustment * adj = GTK_ADJUSTMENT(v->adj); if (!v->sample->play_head->going || !v->following) { g_signal_handlers_block_matched (GTK_OBJECT(GTK_OBJECT(sd)), G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, v); sample_display_set_window(sd, (gint)adj->value, (gint)(adj->value + adj->page_size)); g_signal_handlers_unblock_matched (GTK_OBJECT(GTK_OBJECT(sd)), G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, v); } if (v->following) { if (v->sample->user_offset < adj->value || v->sample->user_offset > adj->value + adj->page_size) sample_set_playmarker (v->sample, adj->value + adj->page_size/2, TRUE); } view_refresh_hruler (v); }
/* DESCRIPTION : Generic notifiers for toggles. * This callback is called when a specific key of * the config database associated with a toggle changes, this * only updates the toggle. * BEHAVIOR : It only updates the widget. * PRE : The config key triggering that notifier on modification *" should be of type boolean. */ void toggle_changed_nt (G_GNUC_UNUSED gpointer cid, GmConfEntry *entry, gpointer data) { GtkWidget *e = NULL; gboolean current_value = FALSE; if (gm_conf_entry_get_type (entry) == GM_CONF_BOOL) { e = GTK_WIDGET (data); /* We set the new value for the widget */ current_value = gm_conf_entry_get_bool (entry); g_signal_handlers_block_matched (G_OBJECT (e), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) toggle_changed, NULL); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (e)) != current_value) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (e), current_value); g_signal_handlers_unblock_matched (G_OBJECT (e), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) toggle_changed, NULL); } }
static void bus_name_entry_set_quiet (GtkWidget *entry, gboolean bQuiet, gboolean bChangedSignalAsWell) { if (bQuiet) { g_signal_handlers_block_matched (G_OBJECT (entry), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_delete_text, NULL) ; g_signal_handlers_block_matched (G_OBJECT (entry), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_insert_text, NULL) ; if (bChangedSignalAsWell) g_signal_handlers_block_matched (G_OBJECT (entry), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, bus_name_changed, NULL) ; } else { g_signal_handlers_unblock_matched (G_OBJECT (entry), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_delete_text, NULL) ; g_signal_handlers_unblock_matched (G_OBJECT (entry), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_insert_text, NULL) ; if (bChangedSignalAsWell) g_signal_handlers_unblock_matched (G_OBJECT (entry), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, bus_name_changed, NULL) ; } }
static void web_browser_update_radio_buttons(MateDACapplet* capplet, const gchar* command) { GList *entry; gboolean has_net_remote; entry = g_list_find_custom (capplet->web_browsers, command, (GCompareFunc) web_item_comp); if (entry) { MateDAWebItem *item = (MateDAWebItem *) entry->data; has_net_remote = item->netscape_remote; if (has_net_remote) { /* disable "toggle" signal emitting, thus preventing calling this function twice */ g_signal_handlers_block_matched (capplet->default_radiobutton, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, G_CALLBACK (web_radiobutton_toggled_cb), NULL); g_signal_handlers_block_matched (capplet->new_tab_radiobutton, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, G_CALLBACK (web_radiobutton_toggled_cb), NULL); g_signal_handlers_block_matched (capplet->new_win_radiobutton,G_SIGNAL_MATCH_FUNC, 0, 0, NULL, G_CALLBACK (web_radiobutton_toggled_cb), NULL); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (capplet->default_radiobutton), strcmp (item->generic.command, command) == 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (capplet->new_tab_radiobutton), strcmp (item->tab_command, command) == 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (capplet->new_win_radiobutton), strcmp (item->win_command, command) == 0); g_signal_handlers_unblock_matched (capplet->default_radiobutton, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, G_CALLBACK (web_radiobutton_toggled_cb), NULL); g_signal_handlers_unblock_matched (capplet->new_tab_radiobutton, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, G_CALLBACK (web_radiobutton_toggled_cb), NULL); g_signal_handlers_unblock_matched (capplet->new_win_radiobutton, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, G_CALLBACK (web_radiobutton_toggled_cb), NULL); } } else { has_net_remote = FALSE; } gtk_widget_set_sensitive (capplet->default_radiobutton, has_net_remote); gtk_widget_set_sensitive (capplet->new_win_radiobutton, has_net_remote); gtk_widget_set_sensitive (capplet->new_tab_radiobutton, has_net_remote); }
/* DESCRIPTION : Generic notifiers for entries. * This callback is called when a specific key of * the config database associated with an entry changes. * BEHAVIOR : It updates the widget. * PRE : The config key triggering that notifier on modification * should be of type string. */ void entry_changed_nt (G_GNUC_UNUSED gpointer cid, GmConfEntry *entry, gpointer data) { GtkWidget *e = NULL; gchar *current_value = NULL; if (gm_conf_entry_get_type(entry) == GM_CONF_STRING) { gdk_threads_enter (); e = GTK_WIDGET (data); current_value = (gchar *) gm_conf_entry_get_string (entry); if (current_value && strcmp (current_value, gtk_entry_get_text (GTK_ENTRY (e)))) { g_signal_handlers_block_matched (G_OBJECT (e), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) entry_focus_changed, NULL); g_signal_handlers_block_matched (G_OBJECT (e), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) entry_activate_changed, NULL); gtk_entry_set_text (GTK_ENTRY (e), current_value); g_signal_handlers_unblock_matched (G_OBJECT (e), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) entry_activate_changed, NULL); g_signal_handlers_unblock_matched (G_OBJECT (e), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) entry_focus_changed, NULL); } gdk_threads_leave (); } }
void remove_current_playlist_entry(gmpv_handle *ctx) { const gchar *cmd[] = {"playlist_remove", NULL, NULL}; PlaylistWidget *playlist; GtkTreePath *path; playlist = PLAYLIST_WIDGET(ctx->gui->playlist); gtk_tree_view_get_cursor ( GTK_TREE_VIEW(playlist->tree_view), &path, NULL ); if(path) { gint index; gchar *index_str; index = gtk_tree_path_get_indices(path)[0]; index_str = g_strdup_printf("%d", index); cmd[1] = index_str; g_signal_handlers_block_matched ( playlist->list_store, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, ctx ); playlist_widget_remove(playlist, index); if(ctx->loaded) { mpv_check_error(mpv_command(ctx->mpv_ctx, cmd)); } if(playlist_widget_empty(playlist)) { control_box_set_enabled (CONTROL_BOX(ctx->gui->control_box), FALSE); } g_signal_handlers_unblock_matched ( playlist->list_store, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, ctx ); g_free(index_str); } }
void cd_mixer_set_volume_with_no_callback (GtkWidget *pScale, int iVolume) { g_signal_handlers_block_matched (GTK_WIDGET(pScale), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (void*)on_change_volume, NULL); gtk_range_set_value (GTK_RANGE (pScale), (double) iVolume); g_signal_handlers_unblock_matched (GTK_WIDGET(pScale), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (void*)on_change_volume, NULL); }
/* DESCRIPTION : Generic notifiers for string-based option_menus. * This callback is called when a specific key of * the config database associated with an option menu changes, * this only updates the menu. * BEHAVIOR : It only updates the widget. * PRE : The config key triggering that notifier on modifiction * should be of type string. */ void string_option_menu_changed_nt (G_GNUC_UNUSED gpointer cid, GmConfEntry *entry, gpointer data) { int cpt = 0; int count = 0; GtkTreeModel *model = NULL; GtkTreeIter iter; GtkWidget *e = NULL; gchar *text = NULL; gchar* txt = NULL; if (gm_conf_entry_get_type (entry) == GM_CONF_STRING) { e = GTK_WIDGET (data); model = gtk_combo_box_get_model (GTK_COMBO_BOX (e)); count = gtk_tree_model_iter_n_children (model, NULL); gtk_tree_model_get_iter_first (model, &iter); for (cpt = 0 ; cpt < count ; cpt++) { gtk_tree_model_get (model, &iter, 0, &text, -1); txt = gm_conf_entry_get_string (entry); if (text && !g_strcmp0 (text, txt)) { g_free (text); g_free (txt); break; } g_free (txt); gtk_tree_model_iter_next (model, &iter); g_free (text); } g_signal_handlers_block_matched (G_OBJECT (e), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) string_option_menu_changed, NULL); if (cpt != count && gtk_combo_box_get_active (GTK_COMBO_BOX (data)) != cpt) gtk_combo_box_set_active (GTK_COMBO_BOX (data), cpt); g_signal_handlers_unblock_matched (G_OBJECT (e), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) string_option_menu_changed, NULL); } }
static void block_picker_signals (DateCell *cell) { PopBox *box = cell->cell.gui_private; if (!box->signals_connected) return; g_signal_handlers_block_matched (box->date_picker, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, cell); }
void gtk_widget_block_signal(GtkWidget *widget, const char *signal, GCallback callback) { g_signal_handlers_block_matched ( widget, G_SIGNAL_MATCH_FUNC, g_signal_lookup (signal, G_TYPE_FROM_INSTANCE (widget)), 0, NULL, callback, NULL); }
static void terminal_unrealize_cb (GtkWidget *term, TerminalPlugin *plugin) { gint count; count = g_signal_handlers_block_matched (term, G_SIGNAL_MATCH_DATA, 0, g_quark_from_string ("style-set"), NULL, NULL, NULL); DEBUG_PRINT ("Blocked %d terminal signal", count); }
static void block_toggle_signals(GncItemEdit *item_edit) { GObject *obj; if (!item_edit->popup_toggle.signals_connected) return; obj = G_OBJECT (item_edit->popup_toggle.tbutton); g_signal_handlers_block_matched (obj, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, item_edit); }
static int clearModel( GtkComboBox *comboBox, GtkTreeModel *model ) { GObject *sigObj = getSigObj( comboBox ); int blocked = g_signal_handlers_block_matched( sigObj, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (void *)changedFunc, NULL ); gtk_list_store_clear( GTK_LIST_STORE( model ) ); if( blocked ) g_signal_handlers_unblock_matched( sigObj, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (void *)changedFunc, NULL ); return 0; }
void sd_win_changed_cb (GtkWidget * widget) { SampleDisplay * sd = SAMPLE_DISPLAY(widget); sw_view * v = sd->view; g_signal_handlers_block_matched (GTK_OBJECT(v->adj), G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, v); view_fix_adjustment (sd->view); g_signal_handlers_unblock_matched (GTK_OBJECT(v->adj), G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, v); view_refresh_hruler (v); }
static void warlock_color_button_set_color_real (WarlockColorButton *button, const GdkRGBA *color) { g_assert (color != NULL); memcpy (button->color, color, sizeof (GdkRGBA)); g_signal_handlers_block_matched (G_OBJECT (button->color_button), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, button); gtk_color_button_set_rgba (GTK_COLOR_BUTTON (button->color_button), color); g_signal_handlers_unblock_matched (G_OBJECT (button->color_button), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, button); }
static int setVal ( GtkEntry *entry, const char *txt ) { int blocked = g_signal_handlers_block_matched ( G_OBJECT ( entry ), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, ( gpointer * ) changedFunc, NULL ); gtk_entry_set_text ( entry, txt ); if ( blocked ) g_signal_handlers_unblock_matched ( G_OBJECT ( entry ), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, ( gpointer * ) changedFunc, NULL ); return TCL_OK; }
gboolean stpui_slider_refresh(stpui_Slider *c) { gboolean result; g_signal_handlers_block_matched (G_OBJECT (c->scale), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, c); g_signal_handlers_block_matched (G_OBJECT (c->spin), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, c); result=stpui_slider_update(c); g_signal_handlers_unblock_matched (G_OBJECT (c->scale), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, c); g_signal_handlers_unblock_matched (G_OBJECT (c->spin), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, c); return(result); }
static void sci_entry_set_value(GtkAdjustment *adj, GtkComboBox *metric, gdouble val) { gint mag; mag = 3*(gint)floor(log10(val)/3.0); mag = CLAMP(mag, -12, -3); g_signal_handlers_block_matched(metric, G_SIGNAL_MATCH_FUNC, 0, 0, 0, thresh_changed, 0); gwy_enum_combo_box_set_active(GTK_COMBO_BOX(metric), mag); g_signal_handlers_unblock_matched(metric, G_SIGNAL_MATCH_FUNC, 0, 0, 0, thresh_changed, 0); gtk_adjustment_set_value(adj, val/pow10(mag)); }
static void channel_unfavourited_cb(GtFavouritesManager* mgr, GtChannel* chan, gpointer udata) { GtChannel* self = GT_CHANNEL(udata); GtChannelPrivate* priv = gt_channel_get_instance_private(self); if (!gt_channel_compare(self, chan) && priv->favourited) { GQuark detail = g_quark_from_static_string("favourited"); g_signal_handlers_block_matched(self, G_SIGNAL_MATCH_DATA | G_SIGNAL_MATCH_DETAIL, 0, detail, NULL, NULL, main_app->fav_mgr); g_object_set(self, "favourited", FALSE, NULL); g_signal_handlers_unblock_matched(self, G_SIGNAL_MATCH_DATA | G_SIGNAL_MATCH_DETAIL, 0, detail, NULL, NULL, main_app->fav_mgr); } }
/** \brief \author Peter G Baum, William J Giddings \date **/ static int setVal ( GtkLabel *label, const char *txt ) { int blocked; blocked = g_signal_handlers_block_matched ( G_OBJECT ( label ), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, ( gpointer * ) changedFunc, NULL ); //gtk_label_set_text ( label, txt ); gtk_label_set_markup ( label, txt ); //OptLabelFull ( label, txt ); if ( blocked ) { g_signal_handlers_unblock_matched ( G_OBJECT ( label ), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, ( gpointer * ) changedFunc, NULL ); } return TCL_OK; }
static void on_name_notify (const BtSongInfo * song_info, GParamSpec * arg, gpointer user_data) { BtMainPageInfo *self = BT_MAIN_PAGE_INFO (user_data); gchar *name; g_object_get ((gpointer) song_info, "name", &name, NULL); g_signal_handlers_block_matched (self->priv->name, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0, NULL, on_name_changed, (gpointer) self); gtk_entry_set_text (self->priv->name, safe_string (name)); g_free (name); g_signal_handlers_unblock_matched (self->priv->name, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0, NULL, on_name_changed, (gpointer) self); }