コード例 #1
0
ファイル: gwytool.c プロジェクト: svn2github/gwyddion
static void
gwy_tool_response(GwyTool *tool,
                  gint response)
{
    static guint response_id = 0;

    if (!response_id)
        response_id = g_signal_lookup("response", GTK_TYPE_DIALOG);

    switch (response) {
        case GTK_RESPONSE_CLOSE:
        case GTK_RESPONSE_DELETE_EVENT:
        g_signal_stop_emission(tool->dialog, response_id, 0);
        gwy_tool_hide(tool);
        break;

        case GTK_RESPONSE_NONE:
        g_warning("Tool dialog destroyed.");
        g_signal_stop_emission(tool->dialog, response_id, 0);
        g_object_unref(tool);
        break;

        default:
        {
            GwyToolClass *klass;

            klass = GWY_TOOL_GET_CLASS(tool);
            if (klass->response)
                klass->response(tool, response);
        }
        break;
    }
}
コード例 #2
0
ファイル: gtk-utils.c プロジェクト: ejona86/quarry
static void
block_key_signal (GtkWidget *widget, GdkEventKey *event, gpointer signal_id)
{
  UNUSED (event);

  g_signal_stop_emission (widget, GPOINTER_TO_INT (signal_id), 0);
}
コード例 #3
0
ファイル: gtksignal.c プロジェクト: batman52/dingux-code
void
gtk_signal_emit_stop_by_name (GtkObject   *object,
			      const gchar *name)
{
  g_return_if_fail (GTK_IS_OBJECT (object));
  
  g_signal_stop_emission (object, g_signal_lookup (name, G_OBJECT_TYPE (object)), 0);
}
コード例 #4
0
ファイル: mx-fade-effect.c プロジェクト: 3v1n0/mx
static void
mx_fade_effect_paint_cb (ClutterActor *actor,
                         MxFadeEffect *self)
{
  MxFadeEffectPrivate *priv = self->priv;

  g_signal_stop_emission (actor,
                          g_signal_lookup ("paint", CLUTTER_TYPE_ACTOR), 0);

  g_signal_handler_disconnect (actor, priv->blocked_id);
  priv->blocked_id = 0;
}
コード例 #5
0
static void
text_inserted (GtkEditable *editable,
               gchar       *new_text,
               gint         new_text_length,
               gint        *position,
               gpointer     user_data)
{
  GtkEntryBuffer *buffer;
  gchar* new_label;
  gint i;
  gint current_length, max_length;
  gboolean valid;

  valid = TRUE;
  buffer = gtk_entry_get_buffer (GTK_ENTRY (editable));
  current_length = gtk_entry_buffer_get_length (buffer);
  max_length = gtk_entry_get_max_length (GTK_ENTRY (editable));

  /* honor max length property */
  if (current_length + new_text_length > max_length)
    return;

  /* stop the default implementation */
  g_signal_stop_emission (editable, g_signal_lookup ("insert-text", GTK_TYPE_ENTRY), 0);

  for (i = 0; i < new_text_length; i++)
    {
      gchar c;
      c = *(new_text + i);

      /* trying to insert a non-numeric char */
      if (c < '0' || c > '9')
        {
          valid = FALSE;
          break;
        }
    }

  if (!valid)
    return;

  new_label = g_strdup_printf ("%s%s", gtk_entry_buffer_get_text (buffer), new_text);
  gtk_entry_buffer_set_text (buffer, new_label, current_length + new_text_length);
  *position = *position + new_text_length;

  g_free (new_label);
}
コード例 #6
0
ファイル: trace-capture.c プロジェクト: feedcafe/trace-cmd
static void insert_text(GtkEditable *buffer,
			gchar *new_text,
			gint new_text_length,
			gint *position,
			gpointer data)
{
	int i;
	guint sigid;

	/* Only allow 0-9 to be written to the entry */
	for (i = 0; i < new_text_length; i++) {
		if (new_text[i] < '0' || new_text[i] > '9') {
			sigid = g_signal_lookup("insert-text",
						G_OBJECT_TYPE(buffer));
			g_signal_stop_emission(buffer, sigid, 0);
			return;
		}
	}
}
コード例 #7
0
ファイル: dates_callbacks.c プロジェクト: GNOME/dates
void
dates_details_time_entry_changed (GtkEditable *entry, gchar *new_text,
				  gint new_text_length,
				  gint *position,
				  DatesData *d)
{
    gint i;
    gchar *c;
	
    for (i = 0, c = new_text; c;
	 c = g_utf8_find_next_char (c, (new_text_length != -1) ?
				    (new_text + new_text_length) : NULL)) {
	if (*c < '0' || *c > '9') {
	    g_signal_stop_emission (entry, g_signal_lookup (
					"insert-text", GTK_TYPE_EDITABLE), 0);
	    gdk_beep ();
	    break;
	}
    }
}
コード例 #8
0
ファイル: glade-gtk-dialog.c プロジェクト: kugel-/glade
static void
glade_gtk_stop_emission_POINTER (gpointer instance, gpointer dummy,
                                 gpointer data)
{
  g_signal_stop_emission (instance, GPOINTER_TO_UINT (data), 0);
}
コード例 #9
0
ファイル: snd-gregion.c プロジェクト: huangjs/cl
static gboolean region_labels_mouse_enter(GtkWidget *w, GdkEventCrossing *ev, gpointer data)
{
  g_signal_stop_emission(GTK_OBJECT(w), g_signal_lookup("enter_notify_event", G_OBJECT_TYPE(GTK_OBJECT(w))), 0);
  return(false);
}