qulogic/libgnt

Add a cancelled signal to GntFileSel.
release-2.x.y
2019-04-19, Elliott Sales de Andrade
5ebc09ae93a3
Parents e7ff596b728d
Children fd2f6036d289
Add a cancelled signal to GntFileSel.

It is triggered when the Cancel button is activated.
  • +28 -0
    gntfilesel.c
  • +1 -1
    gntfilesel.h
  • --- a/gntfilesel.c Fri Apr 19 02:42:33 2019 -0400
    +++ b/gntfilesel.c Fri Apr 19 05:12:38 2019 -0400
    @@ -44,6 +44,7 @@
    enum
    {
    SIG_FILE_SELECTED,
    + SIG_CANCELLED,
    SIGS
    };
    @@ -53,6 +54,7 @@
    static void (*orig_size_request)(GntWidget *widget);
    static void select_activated_cb(GntWidget *button, GntFileSel *sel);
    +static void cancel_activated_cb(GntWidget *button, GntFileSel *sel);
    static void
    gnt_file_sel_destroy(GntWidget *widget)
    @@ -508,6 +510,24 @@
    gnt_closure_marshal_VOID__STRING_STRING,
    G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
    + /**
    + * GntFileSel::cancelled
    + * @widget: The file selection window that received the signal
    + *
    + * The ::cancelled signal is emitted when the Cancel button on a
    + * #GntFileSel is activated.
    + *
    + * Since: 2.14.0
    + */
    + signals[SIG_CANCELLED] =
    + g_signal_new("cancelled",
    + G_TYPE_FROM_CLASS(klass),
    + G_SIGNAL_RUN_LAST,
    + G_STRUCT_OFFSET(GntFileSelClass, cancelled),
    + NULL, NULL,
    + g_cclosure_marshal_VOID__VOID,
    + G_TYPE_NONE, 0);
    +
    gnt_bindable_class_register_action(bindable, "toggle-tag", toggle_tag_selection, "t", NULL);
    gnt_bindable_class_register_action(bindable, "clear-tags", clear_tags, "c", NULL);
    gnt_bindable_class_register_action(bindable, "up-directory", up_directory, GNT_KEY_BACKSPACE, NULL);
    @@ -544,6 +564,8 @@
    g_signal_connect(G_OBJECT(sel->location), "key_pressed", G_CALLBACK(location_key_pressed), sel);
    sel->cancel = gnt_button_new("Cancel");
    + g_signal_connect(G_OBJECT(sel->cancel), "activate", G_CALLBACK(cancel_activated_cb), sel);
    +
    sel->select = gnt_button_new("Select");
    g_signal_connect_swapped(G_OBJECT(sel->files), "activate", G_CALLBACK(gnt_widget_activate), sel->select);
    @@ -591,6 +613,12 @@
    g_free(path);
    }
    +static void
    +cancel_activated_cb(GntWidget *button, GntFileSel *sel)
    +{
    + g_signal_emit(sel, signals[SIG_CANCELLED], 0);
    +}
    +
    GntWidget *gnt_file_sel_new(void)
    {
    GntWidget *widget = g_object_new(GNT_TYPE_FILE_SEL, NULL);
    --- a/gntfilesel.h Fri Apr 19 02:42:33 2019 -0400
    +++ b/gntfilesel.h Fri Apr 19 05:12:38 2019 -0400
    @@ -77,12 +77,12 @@
    GntWindowClass parent;
    void (*file_selected)(GntFileSel *sel, const char *path, const char *filename);
    + void (*cancelled)(GntFileSel *sel);
    /*< private >*/
    void (*gnt_reserved1)(void);
    void (*gnt_reserved2)(void);
    void (*gnt_reserved3)(void);
    - void (*gnt_reserved4)(void);
    };
    typedef enum _GntFileType