void
ags_lv2_browser_disconnect(AgsConnectable *connectable)
{
  AgsLv2Browser *lv2_browser;

  lv2_browser = AGS_LV2_BROWSER(connectable);

  if((AGS_LV2_BROWSER_CONNECTED & (lv2_browser->flags)) == 0){
    return;
  }

  lv2_browser->flags &= (~AGS_LV2_BROWSER_CONNECTED);
  
  g_object_disconnect(G_OBJECT(lv2_browser->filename),
		      "any_signal::changed",
		      G_CALLBACK(ags_lv2_browser_plugin_filename_callback),
		      lv2_browser,
		      NULL);

  g_object_disconnect(G_OBJECT(lv2_browser->effect),
		      "any_signal::changed",
		      G_CALLBACK(ags_lv2_browser_plugin_uri_callback),
		      lv2_browser,
		      NULL);
}
void
ags_select_acceleration_dialog_disconnect(AgsConnectable *connectable)
{
  AgsAutomationEditor *automation_editor;
  AgsSelectAccelerationDialog *select_acceleration_dialog;

  select_acceleration_dialog = AGS_SELECT_ACCELERATION_DIALOG(connectable);

  if((AGS_SELECT_ACCELERATION_DIALOG_CONNECTED & (select_acceleration_dialog->flags)) == 0){
    return;
  }

  select_acceleration_dialog->flags &= (~AGS_SELECT_ACCELERATION_DIALOG_CONNECTED);

  automation_editor = AGS_WINDOW(select_acceleration_dialog->main_window)->automation_window->automation_editor;

  g_object_disconnect(G_OBJECT(select_acceleration_dialog),
		      "any_signal::response",
		      G_CALLBACK(ags_select_acceleration_dialog_response_callback),
		      select_acceleration_dialog,
		      NULL);

  g_object_disconnect(G_OBJECT(select_acceleration_dialog->add),
		      "any_signal::clicked",
		      G_CALLBACK(ags_select_acceleration_dialog_add_callback),
		      select_acceleration_dialog,
		      NULL);

  g_object_disconnect(G_OBJECT(automation_editor),
		      "any_signal::machine-changed",
		      G_CALLBACK(ags_select_acceleration_dialog_machine_changed_callback),
		      select_acceleration_dialog,
		      NULL);
}
Beispiel #3
0
void
ags_audiorec_disconnect(AgsConnectable *connectable)
{
  AgsAudiorec *audiorec;

  GList *list;

  if((AGS_MACHINE_CONNECTED & (AGS_MACHINE(connectable)->flags)) == 0){
    return;
  }

  ags_audiorec_parent_connectable_interface->disconnect(connectable);

  audiorec = AGS_AUDIOREC(connectable);

  /* filename */
  g_object_disconnect(audiorec->open,
		      "any_signal::clicked",
		      G_CALLBACK(ags_audiorec_open_callback),
		      audiorec,
		      NULL);

  /* mode */
  g_object_disconnect(audiorec->keep_data,
		      "any_signal::clicked",
		      G_CALLBACK(ags_audiorec_keep_data_callback),
		      audiorec,
		      NULL);

  g_object_disconnect(audiorec->replace_data,
		      "any_signal::clicked",
		      G_CALLBACK(ags_audiorec_replace_data_callback),
		      audiorec,
		      NULL);

  g_object_disconnect(audiorec->mix_data,
		      "any_signal::clicked",
		      G_CALLBACK(ags_audiorec_mix_data_callback),
		      audiorec,
		      NULL);
}
Beispiel #4
0
/**
 * Restore the Buddy List to its former glory by splitting off conversations
 *
 * This effectively will undo everything done by pwm_merge_conversation().  The
 * Buddy List should be returned to its original state, and any conversations
 * should be in a separate window.
 *
 * @param[in] gtkblist   The Buddy List that has had enough of this plugin
**/
void pwm_split_conversation(PidginBuddyList *gtkblist)
{
	PidginWindow *
	    gtkconvwin;   /*< Conversation window merged into gtkblist */
	GtkWidget *paned; /*< The panes on the Buddy List window       */
	gchar *title;     /*< Original title of the Buddy List window  */

	gtkconvwin = pwm_blist_get_convs(gtkblist);
	paned = pwm_fetch(gtkblist, "paned");
	title = pwm_fetch(gtkblist, "title");

	/* Ensure the conversation window's menu items are returned. */
	pwm_set_conv_menus_visible(gtkblist, FALSE);

	/* End the association between the Buddy List and its conversation
	 * window. */
	g_object_steal_data(G_OBJECT(gtkblist->notebook), "pwm_convs");
	g_object_steal_data(G_OBJECT(gtkconvwin->notebook), "pwm_blist");

	/* Point the conversation window's structure back to its original
	 * window. */
	gtkconvwin->window = pwm_fetch(gtkblist, "conv_window");
	pwm_clear(gtkblist, "conv_window");

	/* Stop passing focus events from Buddy List to conversation window. */
	g_object_disconnect(G_OBJECT(gtkblist->window), "any_signal",
			    G_CALLBACK(focus_in_event_cb), gtkconvwin->window,
			    NULL);

	/* Restore the conversation window's notebook. */
	pwm_widget_replace(pwm_fetch(gtkblist, "placeholder"),
			   gtkconvwin->notebook, NULL);
	pwm_clear(gtkblist, "placeholder");

	/* Free the dummy conversation, and display the window if it survives.
	 */
	pwm_free_dummy_conversation(gtkblist);
	if (g_list_find(pidgin_conv_windows_get_list(), gtkconvwin) != NULL)
		pidgin_conv_window_show(gtkconvwin);

	/* Restore the Buddy List's original structure, and destroy the panes.
	 */
	pwm_widget_replace(paned, gtkblist->notebook, NULL);
	pwm_clear(gtkblist, "paned");

	/* Restore the window title and icons from before conversations set
	 * them. */
	gtk_window_set_icon_list(GTK_WINDOW(gtkblist->window), NULL);
	gtk_window_set_title(GTK_WINDOW(gtkblist->window), title);
	g_free(title);
	pwm_clear(gtkblist, "title");
}
void
ags_envelope_dialog_disconnect(AgsConnectable *connectable)
{
  AgsEnvelopeDialog *envelope_dialog;

  envelope_dialog = AGS_ENVELOPE_DIALOG(connectable);

  if((AGS_ENVELOPE_DIALOG_CONNECTED & (envelope_dialog->flags)) == 0){
    return;
  }

  envelope_dialog->flags &= (~AGS_ENVELOPE_DIALOG_CONNECTED);

  ags_connectable_disconnect(AGS_CONNECTABLE(envelope_dialog->envelope_editor));
  ags_connectable_disconnect(AGS_CONNECTABLE(envelope_dialog->envelope_info));

  if(envelope_dialog->pattern_envelope != NULL){
    ags_connectable_disconnect(AGS_CONNECTABLE(envelope_dialog->pattern_envelope));
  }
  
  /* applicable */
  g_object_disconnect((GObject *) envelope_dialog->apply,
		      "any_signal::clicked",
		      G_CALLBACK(ags_envelope_dialog_apply_callback),
		      (gpointer) envelope_dialog,
		      NULL);

  g_object_disconnect((GObject *) envelope_dialog->ok,
		      "any_signal::clicked",
		      G_CALLBACK(ags_envelope_dialog_ok_callback),
		      (gpointer) envelope_dialog,
		      NULL);

  g_object_disconnect((GObject *) envelope_dialog->cancel,
		      "any_signal::clicked",
		      G_CALLBACK(ags_envelope_dialog_cancel_callback),
		      (gpointer) envelope_dialog,
		      NULL);
}
Beispiel #6
0
/**
 *  If the child is removed, remove the signals that we attached 
 */
static void
mozilla_embed_remove (GtkContainer *container, GtkWidget *widget)
{
	MozillaEmbed *embed = MOZILLA_EMBED (container);

	g_object_disconnect (widget,
			     "any_signal::scroll-event", mozilla_embed_child_scroll_event_cb, embed,
			     "any_signal::event-after", mozilla_embed_child_event_after_cb, embed,
			     "any_signal::grab-focus", mozilla_embed_child_grab_focus_cb, embed,
			     NULL);

	GTK_CONTAINER_CLASS(parent_class)->remove (container, widget);
}
void
ags_soundcard_thread_stop(AgsThread *thread)
{
  AgsSoundcardThread *soundcard_thread;

  AgsThread *main_loop;
  AgsPollingThread *polling_thread;
  
  GObject *soundcard;

  GList *poll_fd;
    
  soundcard_thread = AGS_SOUNDCARD_THREAD(thread);
  main_loop = ags_thread_get_toplevel(thread);

  soundcard = soundcard_thread->soundcard;

  /* stop thread and soundcard */
  AGS_THREAD_CLASS(ags_soundcard_thread_parent_class)->stop(thread);

  //FIXME:JK: is this safe?
  ags_soundcard_stop(AGS_SOUNDCARD(soundcard));

  g_atomic_int_or(&(thread->flags),
		  AGS_THREAD_TIMING);

  /* find polling thread */
  polling_thread = (AgsPollingThread *) ags_thread_find_type(main_loop,
							     AGS_TYPE_POLLING_THREAD);
    
  /* remove poll fd */
  poll_fd = ags_soundcard_get_poll_fd(AGS_SOUNDCARD(soundcard));
    
  while(poll_fd != NULL){
    if(polling_thread != NULL){
      gint position;
      
      g_object_disconnect(G_OBJECT(poll_fd->data),
			  "any_signal::dispatch",
			  G_CALLBACK(ags_soundcard_thread_dispatch_callback),
			  soundcard_thread,
			  NULL);
      
      ags_polling_thread_remove_poll_fd(polling_thread,
					poll_fd->data);
    }
    
    poll_fd = poll_fd->next;
  }
}
Beispiel #8
0
static void
mouse_gestures_deactivate_tabs (MidoriView*    view,
                                MidoriBrowser* browser)
{
    GtkWidget* web_view = midori_view_get_web_view (view);

    g_object_disconnect (web_view,
        "any_signal::button-press-event",
        mouse_gestures_button_press_event_cb, browser,
        "any_signal::motion-notify-event",
        mouse_gestures_motion_notify_event_cb, browser,
        "any_signal::button-release-event",
        mouse_gestures_button_release_event_cb, view,
        NULL);
}
void
ags_generic_preferences_disconnect(AgsConnectable *connectable)
{
  AgsGenericPreferences *generic_preferences;
  
  generic_preferences = AGS_GENERIC_PREFERENCES(connectable);

  if((AGS_GENERIC_PREFERENCES_CONNECTED & (generic_preferences->flags)) == 0){
    return;
  }

  generic_preferences->flags &= (~AGS_GENERIC_PREFERENCES_CONNECTED);
  
  g_object_disconnect(G_OBJECT(generic_preferences->rt_safe),
		      "any_signal::clicked",
		      G_CALLBACK(ags_generic_preferences_rt_safe_callback),
		      generic_preferences,
		      NULL);
}
void
ags_synth_input_line_disconnect(AgsConnectable *connectable)
{
  AgsSynthInputLine *synth_input_line;

  synth_input_line = AGS_SYNTH_INPUT_LINE(connectable);

  if((AGS_LINE_CONNECTED & (AGS_LINE(synth_input_line)->flags)) == 0){
    return;
  }

  ags_synth_input_line_parent_connectable_interface->disconnect(connectable);

  ags_connectable_disconnect(AGS_CONNECTABLE(synth_input_line->oscillator));

  g_object_disconnect((GObject *) synth_input_line->oscillator,
		      "any_signal::control-changed",
		      G_CALLBACK(ags_synth_input_line_oscillator_control_changed_callback),
		      (gpointer) synth_input_line,
		      NULL);
}
Beispiel #11
0
/**
 * A callback for when the total size of a GtkPaned changes
 *
 * This should be called after a new GtkPaned finds its parent and calculates
 * its "max-position" property.  It is only intended to be run on this single
 * occassion, so it removes itself on completion.  The call is used to set the
 * initial size of the Buddy List to the user's preference.
 *
 * @param[in] gobject    Pointer to the GtkPaned structure that was resized
 * @param[in] pspec      Unused
 * @param[in] data       Pointer to the Buddy List that is a parent of gobject
**/
static void notify_max_position_cb(GObject *gobject, U GParamSpec *pspec,
				   gpointer data)
{
	PidginBuddyList *
	    gtkblist;      /*< Buddy List window containing these panes */
	gint max_position; /*< The "max-position" property of gobject   */
	gint size;	 /*< Desired size of the Buddy List pane      */

	gtkblist = data;

	/* Fetch the user's preferred Buddy List size (depending on
	 * orientation). */
	if (GTK_IS_VPANED(gobject))
		size = purple_prefs_get_int(PREF_HEIGHT);
	else
		size = purple_prefs_get_int(PREF_WIDTH);

	/* If the Buddy List is not the first pane, invert the size preference.
	 */
	if (gtk_paned_get_child1(GTK_PANED(gobject)) != gtkblist->notebook) {
		g_object_get(gobject, "max-position", &max_position, NULL);
		size = max_position - size;
	}

	/* Adjust the panes' slider to set the Buddy List to its desired size.
	 */
	gtk_paned_set_position(GTK_PANED(gobject), size);

	/* Disconnect this callback.  This initial setting was only needed once.
	 */
	g_object_disconnect(gobject, "any_signal",
			    G_CALLBACK(notify_max_position_cb), data, NULL);

	/* Now that system-induced slider changes are done, monitor user
	 * changes. */
	g_object_connect(gobject, "signal::notify::position",
			 G_CALLBACK(notify_position_cb), data, NULL);
}
Beispiel #12
0
static void unhook_ws_event(MetaWorkspace* ws, MetaSwitcher* self)
{
    g_object_disconnect(ws, "any_signal::window-added", on_window_added, self,
            "any_signal::window-removed", on_window_removed, self, NULL);
}
void
ags_osc_server_preferences_disconnect(AgsConnectable *connectable)
{
  AgsOscServerPreferences *osc_server_preferences;

  osc_server_preferences = AGS_OSC_SERVER_PREFERENCES(connectable);

  if((AGS_OSC_SERVER_PREFERENCES_CONNECTED & (osc_server_preferences->flags)) == 0){
    return;
  }

  osc_server_preferences->flags &= (~AGS_OSC_SERVER_PREFERENCES_CONNECTED);

  /* start/stop */
  g_object_disconnect(G_OBJECT(osc_server_preferences->start),
		      "any_signal::clicked",
		      G_CALLBACK(ags_osc_server_preferences_start_callback),
		      osc_server_preferences,
		      NULL);

  g_object_disconnect(G_OBJECT(osc_server_preferences->stop),
		      "any_signal::clicked",
		      G_CALLBACK(ags_osc_server_preferences_stop_callback),
		      osc_server_preferences,
		      NULL);

  /* listen any address */
  g_object_disconnect(G_OBJECT(osc_server_preferences->any_address),
		      "any_signal::clicked",
		      G_CALLBACK(ags_osc_server_preferences_any_address_callback),
		      osc_server_preferences,
		      NULL);

  /* IPv4 */
  g_object_disconnect(G_OBJECT(osc_server_preferences->enable_ip4),
		      "any_signal::clicked",
		      G_CALLBACK(ags_osc_server_preferences_enable_ip6_callback),
		      osc_server_preferences,
		      NULL);

  g_object_disconnect(G_OBJECT(osc_server_preferences->ip4_address),
		      "any_signal::changed",
		      G_CALLBACK(ags_osc_server_preferences_ip4_address_callback),
		      osc_server_preferences,
		      NULL);

  /* IPv6 */
  g_object_disconnect(G_OBJECT(osc_server_preferences->enable_ip6),
		      "any_signal::clicked",
		      G_CALLBACK(ags_osc_server_preferences_enable_ip6_callback),
		      osc_server_preferences,
		      NULL);

  g_object_disconnect(G_OBJECT(osc_server_preferences->ip6_address),
		      "any_signal::changed",
		      G_CALLBACK(ags_osc_server_preferences_ip6_address_callback),
		      osc_server_preferences,
		      NULL);
  
  /* port */
  g_object_disconnect(G_OBJECT(osc_server_preferences->port),
		      "any_signal::changed",
		      G_CALLBACK(ags_osc_server_preferences_port_callback),
		      osc_server_preferences,
		      NULL);
}
void
ags_notation_toolbar_disconnect(AgsConnectable *connectable)
{
  AgsNotationToolbar *notation_toolbar;

  GList *list;
  
  notation_toolbar = AGS_NOTATION_TOOLBAR(connectable);

  if((AGS_NOTATION_TOOLBAR_CONNECTED & (notation_toolbar->flags)) == 0){
    return;
  }

  notation_toolbar->flags &= (~AGS_NOTATION_TOOLBAR_CONNECTED);

  /* tool */
  g_object_disconnect(G_OBJECT(notation_toolbar->position),
		      "any_signal::toggled",
		      G_CALLBACK(ags_notation_toolbar_position_callback),
		      notation_toolbar,
		      NULL);

  g_object_disconnect(G_OBJECT(notation_toolbar->edit),
		      "any_signal::toggled",
		      G_CALLBACK(ags_notation_toolbar_edit_callback),
		      notation_toolbar,
		      NULL);

  g_object_disconnect(G_OBJECT(notation_toolbar->clear),
		      "any_signal::toggled",
		      G_CALLBACK(ags_notation_toolbar_clear_callback),
		      notation_toolbar,
		      NULL);

  g_object_disconnect(G_OBJECT(notation_toolbar->select),
		      "any_signal::toggled",
		      G_CALLBACK(ags_notation_toolbar_select_callback),
		      notation_toolbar,
		      NULL);

  /* edit */
  g_object_disconnect(G_OBJECT(notation_toolbar->copy),
		      "any_signal::clicked",
		      G_CALLBACK(ags_notation_toolbar_copy_or_cut_callback),
		      notation_toolbar,
		      NULL);

  g_object_disconnect(G_OBJECT(notation_toolbar->cut),
		      "any_signal::clicked",
		      G_CALLBACK(ags_notation_toolbar_copy_or_cut_callback),
		      notation_toolbar,
		      NULL);

  g_object_disconnect(G_OBJECT(notation_toolbar->paste_tool),
		      "any_signal::clicked",
		      G_CALLBACK(ags_notation_toolbar_paste_callback),
		      notation_toolbar,
		      NULL);

  g_object_disconnect(G_OBJECT(notation_toolbar->invert),
		      "any_signal::clicked",
		      G_CALLBACK(ags_notation_toolbar_invert_callback),
		      notation_toolbar,
		      NULL);

  list = gtk_container_get_children((GtkContainer *) gtk_menu_tool_button_get_menu(notation_toolbar->paste_tool));

  g_object_disconnect(G_OBJECT(list->data),
		      "any_signal::activate",
		      G_CALLBACK(ags_notation_toolbar_match_audio_channel_callback),
		      notation_toolbar,
		      NULL);

  g_object_disconnect(G_OBJECT(list->next->data),
		      "any_signal::activate",
		      G_CALLBACK(ags_notation_toolbar_no_duplicates_callback),
		      notation_toolbar,
		      NULL);

  g_list_free(list);

  /* additional tools */
  ags_connectable_disconnect(AGS_CONNECTABLE(notation_toolbar->position_notation_cursor));

  ags_connectable_disconnect(AGS_CONNECTABLE(notation_toolbar->crop_note));

  ags_connectable_disconnect(AGS_CONNECTABLE(notation_toolbar->move_note));

  ags_connectable_disconnect(AGS_CONNECTABLE(notation_toolbar->select_note));

  /* zoom */
  g_object_disconnect(G_OBJECT(notation_toolbar->zoom),
		      "any_signal::changed",
		      G_CALLBACK(ags_notation_toolbar_zoom_callback),
		      notation_toolbar,
		      NULL);


  /* opacity */
  g_object_disconnect(G_OBJECT(notation_toolbar->opacity),
		      "any_signal::value-changed",
		      G_CALLBACK(ags_notation_toolbar_opacity_callback),
		      notation_toolbar,
		      NULL);
}