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.);
}
Beispiel #4
0
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;
}
Beispiel #6
0
/* 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);
  }
}
Beispiel #7
0
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() */
Beispiel #10
0
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);  
}
Beispiel #11
0
/* 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);
  }
}
Beispiel #12
0
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 (); 
  }
}
Beispiel #15
0
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);
}
Beispiel #17
0
/* 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);
  }
}
Beispiel #18
0
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);
}
Beispiel #19
0
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);
}
Beispiel #20
0
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);
}
Beispiel #22
0
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;
}
Beispiel #23
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);
}
Beispiel #25
0
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;
}
Beispiel #26
0
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);
}
Beispiel #27
0
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));
}
Beispiel #28
0
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);
    }
}
Beispiel #29
0
/**
\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;
}
Beispiel #30
0
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);
}