REPLY,
ABORTED,
SHOW_PROCESSES,
+ SHOW_UNMOUNT_PROGRESS,
LAST_SIGNAL
};
}
static void
+show_unmount_progress (GMountOperation *op,
+ const gchar *message,
+ guint64 time_left,
+ guint64 bytes_left)
+{
+ /* nothing to do */
+}
+
+static void
g_mount_operation_class_init (GMountOperationClass *klass)
{
GObjectClass *object_class;
klass->ask_password = ask_password;
klass->ask_question = ask_question;
klass->show_processes = show_processes;
+ klass->show_unmount_progress = show_unmount_progress;
/**
* GMountOperation::ask-password:
G_TYPE_STRING, G_TYPE_ARRAY, G_TYPE_STRV);
/**
+ * GMountOperation::show-unmount-progress:
+ * @op: a #GMountOperation:
+ * @message: string containing a mesage to display to the user
+ * @time_left: the estimated time left before the operation completes, or -1
+ * @bytes_left: the amount of bytes to be written before the operation
+ * completes (or -1 if such amount is not known), or zero if the operation
+ * is completed
+ *
+ * Emitted when an unmount operation has been busy for more than some time
+ * (typically 1.5 seconds).
+ *
+ * When unmounting or ejecting a volume, the kernel might need to flush
+ * pending data in its buffers to the volume stable storage, and this operation
+ * can take a considerable amount of time. This signal may be emitted several
+ * times as long as the unmount operation is outstanding, and then one
+ * last time when the operation is completed, with @bytes_left set to zero.
+ *
+ * Implementations of GMountOperation should handle this signal by
+ * showing an UI notification, and then dismiss it, or show another notification
+ * of completion, when @bytes_left reaches zero.
+ *
+ * If the message contains a line break, the first line should be
+ * presented as a heading. For example, it may be used as the
+ * primary text in a #GtkMessageDialog.
+ */
+ signals[SHOW_UNMOUNT_PROGRESS] =
+ g_signal_new (I_("show-unmount-progress"),
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GMountOperationClass, show_unmount_progress),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 3,
+ G_TYPE_STRING, G_TYPE_UINT64, G_TYPE_UINT64);
+
+ /**
* GMountOperation:username:
*
* The user name that is used for authentication when carrying out
GArray *processes,
const gchar *choices[]);
+ void (* show_unmount_progress) (GMountOperation *op,
+ const gchar *message,
+ guint64 time_left,
+ guint64 bytes_left);
+
/*< private >*/
/* Padding for future expansion */
void (*_g_reserved1) (void);
void (*_g_reserved7) (void);
void (*_g_reserved8) (void);
void (*_g_reserved9) (void);
- void (*_g_reserved10) (void);
};
GType g_mount_operation_get_type (void) G_GNUC_CONST;