[Xfce4-commits] <thunar-vcs-plugin:master> * tvp-git-helper/tgh-add.c tvp-git-helper/tgh-common.[ch] tvp-git-helper/tgh-notify-dialog.[ch]: Added notify dialog to make add more verbose. * tvp-git-helper/tgh-common.c tvp-git-helper/tgh-file-selection-dialog.c: Improved status output parsing.
Peter de Ridder
noreply at xfce.org
Fri Oct 23 16:00:02 CEST 2009
Updating branch refs/heads/master
to 2cf5cf3a3bea075b4ff2db4218925874183d28e0 (commit)
from 4ec787eadf9705d7b66af44f83aaf78df17f4383 (commit)
commit 2cf5cf3a3bea075b4ff2db4218925874183d28e0
Author: Peter de Ridder <peter at xfce.org>
Date: Fri Oct 23 15:26:33 2009 +0200
* tvp-git-helper/tgh-add.c tvp-git-helper/tgh-common.[ch]
tvp-git-helper/tgh-notify-dialog.[ch]: Added notify dialog to make add
more verbose.
* tvp-git-helper/tgh-common.c
tvp-git-helper/tgh-file-selection-dialog.c: Improved status output
parsing.
tvp-git-helper/Makefile.am | 2 +
tvp-git-helper/tgh-add.c | 56 ++++--------
tvp-git-helper/tgh-common.c | 72 ++++++++++++--
tvp-git-helper/tgh-common.h | 2 +
tvp-git-helper/tgh-file-selection-dialog.c | 26 +++---
.../{tgh-status-dialog.c => tgh-notify-dialog.c} | 102 +++++++-------------
tvp-git-helper/tgh-notify-dialog.h | 50 ++++++++++
7 files changed, 182 insertions(+), 128 deletions(-)
diff --git a/tvp-git-helper/Makefile.am b/tvp-git-helper/Makefile.am
index 96717b6..b3b56a9 100644
--- a/tvp-git-helper/Makefile.am
+++ b/tvp-git-helper/Makefile.am
@@ -36,6 +36,8 @@ tvp_git_helper_SOURCES = \
tgh-file-selection-dialog.c \
tgh-log-dialog.h \
tgh-log-dialog.c \
+ tgh-notify-dialog.h \
+ tgh-notify-dialog.c \
tgh-status-dialog.h \
tgh-status-dialog.c \
tgh-transfer-dialog.h \
diff --git a/tvp-git-helper/tgh-add.c b/tvp-git-helper/tgh-add.c
index 4b57046..f55816d 100644
--- a/tvp-git-helper/tgh-add.c
+++ b/tvp-git-helper/tgh-add.c
@@ -38,57 +38,36 @@
#include "tgh-common.h"
#include "tgh-dialog-common.h"
#include "tgh-file-selection-dialog.h"
+#include "tgh-notify-dialog.h"
#include "tgh-add.h"
-struct exit_args
-{
- TghOutputParser *parser;
- GtkWidget *dialog;
-};
-
-static void child_exit(GPid pid, gint status, gpointer user_data)
-{
- struct exit_args *args = user_data;
-
- gtk_widget_destroy(args->dialog);
-
- if(WEXITSTATUS(status) <= 1)
- {
- GtkWidget *dialog = gtk_message_dialog_new(NULL, 0, GTK_MESSAGE_OTHER, GTK_BUTTONS_CLOSE, _("Add finished"));
- tgh_dialog_start(GTK_DIALOG(dialog), TRUE);
- }
-
- tgh_child_exit(pid, status, args->parser);
-
- g_free(args);
-}
-
static gboolean add_spawn (GtkWidget *dialog, gchar **files, GPid *pid)
{
GError *error = NULL;
- gint fd_err;
- GIOChannel *chan_err;
+ gint fd_out, fd_err;
+ GIOChannel *chan_out, *chan_err;
TghOutputParser *parser;
gsize length;
gint i;
gchar **argv;
- struct exit_args *args = g_new(struct exit_args, 1);
- length = 3;
+ length = 5;
length += g_strv_length(files);
argv = g_new(gchar*, length);
argv[0] = "git";
argv[1] = "add";
+ argv[2] = "-v";
+ argv[3] = "--";
argv[length-1] = NULL;
- i = 2;
+ i = 4;
while(*files)
argv[i++] = *files++;
- if(!g_spawn_async_with_pipes(NULL, argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, NULL, NULL, pid, NULL, NULL, &fd_err, &error))
+ if(!g_spawn_async_with_pipes(NULL, argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, NULL, NULL, pid, NULL, &fd_out, &fd_err, &error))
{
g_free (argv);
return FALSE;
@@ -97,12 +76,11 @@ static gboolean add_spawn (GtkWidget *dialog, gchar **files, GPid *pid)
parser = tgh_error_parser_new(GTK_WIDGET(dialog));
- args->parser = parser;
- args->dialog = dialog;
-
- g_child_watch_add(*pid, (GChildWatchFunc)child_exit, args);
+ g_child_watch_add(*pid, (GChildWatchFunc)tgh_child_exit, parser);
+ chan_out = g_io_channel_unix_new(fd_out);
chan_err = g_io_channel_unix_new(fd_err);
+ g_io_add_watch(chan_out, G_IO_IN|G_IO_HUP, (GIOFunc)tgh_parse_output_func, tgh_notify_parser_new(GTK_WIDGET(dialog)));
g_io_add_watch(chan_err, G_IO_IN|G_IO_HUP, (GIOFunc)tgh_parse_output_func, parser);
return TRUE;
@@ -125,7 +103,7 @@ gboolean tgh_add (gchar **files, GPid *pid)
}
dialog = tgh_file_selection_dialog_new (_("Add"), NULL, 0, TGH_FILE_SELECTION_FLAG_MODIFIED|TGH_FILE_SELECTION_FLAG_UNTRACKED);
- if(gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_OK)
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_OK)
{
gtk_widget_destroy (dialog);
return FALSE;
@@ -134,13 +112,13 @@ gboolean tgh_add (gchar **files, GPid *pid)
files = tgh_file_selection_dialog_get_files (TGH_FILE_SELECTION_DIALOG (dialog));
gtk_widget_destroy (dialog);
- if(!files)
+ if (!files)
return FALSE;
- dialog = gtk_message_dialog_new(NULL, 0, GTK_MESSAGE_OTHER, GTK_BUTTONS_CANCEL, _("Adding ..."));
- g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (tgh_cancel), NULL);
- tgh_dialog_start(GTK_DIALOG(dialog), TRUE);
+ dialog = tgh_notify_dialog_new (_("Add"), NULL, 0);
+ g_signal_connect (dialog, "cancel-clicked", tgh_cancel, NULL);
+ tgh_dialog_start (GTK_DIALOG(dialog), TRUE);
- return add_spawn(dialog, files, pid);
+ return add_spawn (dialog, files, pid);
}
diff --git a/tvp-git-helper/tgh-common.c b/tvp-git-helper/tgh-common.c
index a5facf8..f4fc10d 100644
--- a/tvp-git-helper/tgh-common.c
+++ b/tvp-git-helper/tgh-common.c
@@ -36,6 +36,7 @@
#include <thunar-vfs/thunar-vfs.h>
#include "tgh-dialog-common.h"
+#include "tgh-notify-dialog.h"
#include "tgh-status-dialog.h"
#include "tgh-log-dialog.h"
#include "tgh-branch-dialog.h"
@@ -105,7 +106,54 @@ tgh_error_parser_new(GtkWidget *dialog)
typedef struct {
TghOutputParser parent;
GtkWidget *dialog;
- gboolean commit;
+} TghNotifyParser;
+
+static void
+notify_parser_func(TghNotifyParser *parser, gchar *line)
+{
+ TghNotifyDialog *dialog = TGH_NOTIFY_DIALOG(parser->dialog);
+ if(line)
+ {
+ gchar *action, *file;
+
+ file = strchr(line, '\'');
+ if(file)
+ {
+ *file++ = '\0';
+ *strrchr(file, '\'') = '\0';
+
+ action = g_strstrip(line);
+
+ tgh_notify_dialog_add(dialog, action, file);
+ }
+ }
+ else
+ {
+ tgh_notify_dialog_done(dialog);
+ g_free(parser);
+ }
+}
+
+TghOutputParser*
+tgh_notify_parser_new (GtkWidget *dialog)
+{
+ TghNotifyParser *parser = g_new(TghNotifyParser,1);
+
+ TGH_OUTPUT_PARSER(parser)->parse = TGH_OUTPUT_PARSER_FUNC(notify_parser_func);
+
+ parser->dialog = dialog;
+
+ return TGH_OUTPUT_PARSER(parser);
+}
+
+typedef struct {
+ TghOutputParser parent;
+ GtkWidget *dialog;
+ enum {
+ STATUS_COMMIT,
+ STATUS_MODIFIED,
+ STATUS_UNTRACKED
+ } state;
} TghStatusParser;
static void
@@ -114,25 +162,31 @@ status_parser_func(TghStatusParser *parser, gchar *line)
TghStatusDialog *dialog = TGH_STATUS_DIALOG(parser->dialog);
if(line)
{
- if(strstr(line, "git reset"))
- parser->commit = TRUE;
- else if(strstr(line, "git add"))
- parser->commit = FALSE;
if(line[0] == '#' && line[1] == '\t')
{
gchar *file = strchr(line, ':');
gchar *state = _("untracked");
- if(file)
+ if(file && parser->state != STATUS_UNTRACKED)
{
*file = '\0';
state = line+2;
- file = g_strstrip(file+1);
+ file = line+14;
}
else
- file = g_strstrip(line+2);
+ file = line+2;
+ file[strlen(file)-1] = '\0';
+ file = g_shell_unquote(file, NULL);
- tgh_status_dialog_add(dialog, file, state, parser->commit);
+ tgh_status_dialog_add(dialog, file, state, parser->state == STATUS_COMMIT);
+
+ g_free(file);
}
+ else if(strstr(line, "git reset"))
+ parser->state = STATUS_COMMIT;
+ else if(strstr(line, "git add"))
+ parser->state = STATUS_UNTRACKED;
+ else if(strstr(line, "git checkout"))
+ parser->state = STATUS_MODIFIED;
}
else
{
diff --git a/tvp-git-helper/tgh-common.h b/tvp-git-helper/tgh-common.h
index 1f62d25..72d7522 100644
--- a/tvp-git-helper/tgh-common.h
+++ b/tvp-git-helper/tgh-common.h
@@ -36,6 +36,8 @@ struct _TghOutputParser {
TghOutputParser* tgh_error_parser_new (GtkWidget *);
+TghOutputParser* tgh_notify_parser_new (GtkWidget *);
+
TghOutputParser* tgh_status_parser_new (GtkWidget *);
TghOutputParser* tgh_log_parser_new (GtkWidget *);
diff --git a/tvp-git-helper/tgh-file-selection-dialog.c b/tvp-git-helper/tgh-file-selection-dialog.c
index 387708c..caa2150 100644
--- a/tvp-git-helper/tgh-file-selection-dialog.c
+++ b/tvp-git-helper/tgh-file-selection-dialog.c
@@ -30,7 +30,7 @@
typedef struct {
TghOutputParser parent;
GtkWidget *dialog;
- enum {STATE_ADDED, STATE_MODIFIED, STATE_UNTRACKED} state;
+ enum {STATUS_ADDED, STATUS_MODIFIED, STATUS_UNTRACKED} state;
} StatusParser;
static void status_parser_func(StatusParser *, gchar *);
@@ -249,29 +249,31 @@ status_parser_func(StatusParser *parser, gchar *line)
{
gchar *file = strchr(line, ':');
gchar *state = _("untracked");
- if(file)
+ if(file && parser->state != STATUS_UNTRACKED)
{
*file = '\0';
state = line+2;
- file = g_strstrip(file+1);
+ file = line+14;
}
else
- file = g_strstrip(line+2);
+ file = line+2;
+ file[strlen(file)-1] = '\0';
+ file = g_shell_unquote(file, NULL);
switch(parser->state)
{
- case STATE_ADDED:
+ case STATUS_ADDED:
if(dialog->flags & TGH_FILE_SELECTION_FLAG_ADDED)
add = TRUE;
select_ = TRUE;
break;
- case STATE_MODIFIED:
+ case STATUS_MODIFIED:
if(dialog->flags & TGH_FILE_SELECTION_FLAG_MODIFIED)
add = TRUE;
if(!(dialog->flags & TGH_FILE_SELECTION_FLAG_ADDED))
select_ = TRUE;
break;
- case STATE_UNTRACKED:
+ case STATUS_UNTRACKED:
if(dialog->flags & TGH_FILE_SELECTION_FLAG_UNTRACKED)
add = TRUE;
if(!(dialog->flags & (TGH_FILE_SELECTION_FLAG_ADDED|TGH_FILE_SELECTION_FLAG_MODIFIED)))
@@ -279,8 +281,6 @@ status_parser_func(StatusParser *parser, gchar *line)
break;
}
- g_debug ("%s, %d", line, add);
-
if (add)
{
GtkTreeModel *model;
@@ -295,13 +295,15 @@ status_parser_func(StatusParser *parser, gchar *line)
COLUMN_SELECTION, select_,
-1);
}
+
+ g_free(file);
}
else if(strstr(line, "git reset"))
- parser->state = STATE_ADDED;
+ parser->state = STATUS_ADDED;
else if(strstr(line, "git add"))
- parser->state = STATE_UNTRACKED;
+ parser->state = STATUS_UNTRACKED;
else if(strstr(line, "git checkout"))
- parser->state = STATE_MODIFIED;
+ parser->state = STATUS_MODIFIED;
}
else
{
diff --git a/tvp-git-helper/tgh-status-dialog.c b/tvp-git-helper/tgh-notify-dialog.c
similarity index 60%
copy from tvp-git-helper/tgh-status-dialog.c
copy to tvp-git-helper/tgh-notify-dialog.c
index 6f7f426..d964321 100644
--- a/tvp-git-helper/tgh-status-dialog.c
+++ b/tvp-git-helper/tgh-notify-dialog.c
@@ -24,39 +24,35 @@
#include <thunar-vfs/thunar-vfs.h>
#include <gtk/gtk.h>
-#include "tgh-common.h"
-#include "tgh-status-dialog.h"
+#include "tgh-notify-dialog.h"
static void cancel_clicked (GtkButton*, gpointer);
-static void refresh_clicked (GtkButton*, gpointer);
-struct _TghStatusDialog
+struct _TghNotifyDialog
{
GtkDialog dialog;
GtkWidget *tree_view;
GtkWidget *close;
GtkWidget *cancel;
- GtkWidget *refresh;
};
-struct _TghStatusDialogClass
+struct _TghNotifyDialogClass
{
GtkDialogClass dialog_class;
};
-G_DEFINE_TYPE (TghStatusDialog, tgh_status_dialog, GTK_TYPE_DIALOG)
+G_DEFINE_TYPE (TghNotifyDialog, tgh_notify_dialog, GTK_TYPE_DIALOG)
enum {
SIGNAL_CANCEL = 0,
- SIGNAL_REFRESH,
SIGNAL_COUNT
};
static guint signals[SIGNAL_COUNT];
static void
-tgh_status_dialog_class_init (TghStatusDialogClass *klass)
+tgh_notify_dialog_class_init (TghNotifyDialogClass *klass)
{
signals[SIGNAL_CANCEL] = g_signal_new("cancel-clicked",
G_OBJECT_CLASS_TYPE (klass),
@@ -64,23 +60,16 @@ tgh_status_dialog_class_init (TghStatusDialogClass *klass)
0, NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
- signals[SIGNAL_REFRESH] = g_signal_new("refresh-clicked",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
- 0, NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
}
enum {
- COLUMN_PATH = 0,
- COLUMN_STAT,
- COLUMN_ADDED,
+ COLUMN_ACTION = 0,
+ COLUMN_PATH,
COLUMN_COUNT
};
static void
-tgh_status_dialog_init (TghStatusDialog *dialog)
+tgh_notify_dialog_init (TghNotifyDialog *dialog)
{
GtkWidget *button;
GtkWidget *tree_view;
@@ -93,25 +82,19 @@ tgh_status_dialog_init (TghStatusDialog *dialog)
dialog->tree_view = tree_view = gtk_tree_view_new ();
- renderer = gtk_cell_renderer_toggle_new ();
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tree_view),
- -1, ("Commit"),
- renderer, "active",
- COLUMN_ADDED, NULL);
-
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tree_view),
- -1, _("Path"),
+ -1, _("Action"),
renderer, "text",
- COLUMN_PATH, NULL);
+ COLUMN_ACTION, NULL);
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tree_view),
- -1, ("State"),
+ -1, _("Path"),
renderer, "text",
- COLUMN_STAT, NULL);
+ COLUMN_PATH, NULL);
- model = GTK_TREE_MODEL (gtk_list_store_new (COLUMN_COUNT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN));
+ model = GTK_TREE_MODEL (gtk_list_store_new (COLUMN_COUNT, G_TYPE_STRING, G_TYPE_STRING));
gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), model);
@@ -122,30 +105,23 @@ tgh_status_dialog_init (TghStatusDialog *dialog)
gtk_widget_show (tree_view);
gtk_widget_show (scroll_window);
- gtk_window_set_title (GTK_WINDOW (dialog), _("Status"));
+ gtk_window_set_title (GTK_WINDOW (dialog), _("Notify"));
- gtk_button_box_set_layout(GTK_BUTTON_BOX (GTK_DIALOG (dialog)->action_area), GTK_BUTTONBOX_EDGE);
+ dialog->close = button = gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE);
+ gtk_widget_hide (button);
dialog->cancel = button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), button, FALSE, TRUE, 0);
+ gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->action_area), button, FALSE, TRUE, 0);
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (cancel_clicked), dialog);
gtk_widget_show (button);
- dialog->refresh = button = gtk_button_new_from_stock(GTK_STOCK_REFRESH);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), button, FALSE, TRUE, 0);
- g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (refresh_clicked), dialog);
- gtk_widget_hide (button);
-
- dialog->close = button = gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE);
- gtk_widget_show (button);
-
gtk_window_set_default_size (GTK_WINDOW (dialog), 500, 400);
}
GtkWidget*
-tgh_status_dialog_new (const gchar *title, GtkWindow *parent, GtkDialogFlags flags)
+tgh_notify_dialog_new (const gchar *title, GtkWindow *parent, GtkDialogFlags flags)
{
- TghStatusDialog *dialog = g_object_new (TGH_TYPE_STATUS_DIALOG, NULL);
+ TghNotifyDialog *dialog = g_object_new (TGH_TYPE_NOTIFY_DIALOG, NULL);
if(title)
gtk_window_set_title (GTK_WINDOW(dialog), title);
@@ -166,55 +142,45 @@ tgh_status_dialog_new (const gchar *title, GtkWindow *parent, GtkDialogFlags fla
}
void
-tgh_status_dialog_add (TghStatusDialog *dialog, const gchar *file, const gchar *state, gboolean commit)
+tgh_notify_dialog_add (TghNotifyDialog *dialog, const gchar *action, const gchar *file)
{
GtkTreeModel *model;
GtkTreeIter iter;
+ GtkTreePath *path;
- g_return_if_fail (TGH_IS_STATUS_DIALOG (dialog));
+ g_return_if_fail (TGH_IS_NOTIFY_DIALOG (dialog));
model = gtk_tree_view_get_model (GTK_TREE_VIEW (dialog->tree_view));
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+ COLUMN_ACTION, action,
COLUMN_PATH, file,
- COLUMN_STAT, state,
- COLUMN_ADDED, commit,
-1);
+
+ path = gtk_tree_model_get_path (model, &iter);
+ gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (dialog->tree_view), path, NULL, FALSE, 0, 0);
+
+ gtk_tree_path_free (path);
}
void
-tgh_status_dialog_done (TghStatusDialog *dialog)
+tgh_notify_dialog_done (TghNotifyDialog *dialog)
{
- g_return_if_fail (TGH_IS_STATUS_DIALOG (dialog));
+ g_return_if_fail (TGH_IS_NOTIFY_DIALOG (dialog));
gtk_widget_hide (dialog->cancel);
- gtk_widget_show (dialog->refresh);
+ gtk_widget_show (dialog->close);
}
static void
cancel_clicked (GtkButton *button, gpointer user_data)
{
- TghStatusDialog *dialog = TGH_STATUS_DIALOG (user_data);
-
+ TghNotifyDialog *dialog = TGH_NOTIFY_DIALOG (user_data);
+
gtk_widget_hide (dialog->cancel);
- gtk_widget_show (dialog->refresh);
+ gtk_widget_show (dialog->close);
g_signal_emit (dialog, signals[SIGNAL_CANCEL], 0);
}
-static void
-refresh_clicked (GtkButton *button, gpointer user_data)
-{
- GtkTreeModel *model;
- TghStatusDialog *dialog = TGH_STATUS_DIALOG (user_data);
-
- gtk_widget_hide (dialog->refresh);
- gtk_widget_show (dialog->cancel);
-
- g_signal_emit (dialog, signals[SIGNAL_REFRESH], 0);
-
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (dialog->tree_view));
- gtk_list_store_clear (GTK_LIST_STORE (model));
-}
-
diff --git a/tvp-git-helper/tgh-notify-dialog.h b/tvp-git-helper/tgh-notify-dialog.h
new file mode 100644
index 0000000..a05c488
--- /dev/null
+++ b/tvp-git-helper/tgh-notify-dialog.h
@@ -0,0 +1,50 @@
+/*-
+ * Copyright (c) 2006 Peter de Ridder <peter at xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __TGH_NOTIFY_DIALOG_H__
+#define __TGH_NOTIFY_DIALOG_H__
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS;
+
+typedef struct _TghNotifyDialogClass TghNotifyDialogClass;
+typedef struct _TghNotifyDialog TghNotifyDialog;
+
+#define TGH_TYPE_NOTIFY_DIALOG (tgh_notify_dialog_get_type ())
+#define TGH_NOTIFY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TGH_TYPE_NOTIFY_DIALOG, TghNotifyDialog))
+#define TGH_NOTIFY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TGH_TYPE_NOTIFY_DIALOG, TghNotifyDialogClass))
+#define TGH_IS_NOTIFY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TGH_TYPE_NOTIFY_DIALOG))
+#define TGH_IS_NOTIFY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TGH_TYPE_NOTIFY_DIALOG))
+#define TGH_NOTIFY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TGH_TYPE_NOTIFY_DIALOG, TghNotifyDialogClass))
+
+GType tgh_notify_dialog_get_type (void) G_GNUC_CONST G_GNUC_INTERNAL;
+
+GtkWidget* tgh_notify_dialog_new (const gchar *title,
+ GtkWindow *parent,
+ GtkDialogFlags flags) G_GNUC_MALLOC G_GNUC_INTERNAL;
+
+void tgh_notify_dialog_add (TghNotifyDialog *dialog,
+ const gchar *action,
+ const gchar *path);
+void tgh_notify_dialog_done (TghNotifyDialog *dialog);
+
+G_END_DECLS;
+
+#endif /* !__TGH_NOTIFY_DIALOG_H__ */
More information about the Xfce4-commits
mailing list