LocalFileChooserDialog

LocalFileChooserDialog — A local SandboxFileChooserDialog for privileged servers to provide a GTK+ dialog through D-Bus

Stability Level

Unstable, unless otherwise indicated

Functions

Object Hierarchy

    GObject
    ╰── SandboxFileChooserDialog
        ╰── LocalFileChooserDialog

Includes

#include <sandboxutils.h>

Description

See also: SandboxFileChooserDialog

LocalFileChooserDialog is a private class, that implements the SandboxFileChooserDialog API. This class exposes multiple constructors, which are convenience functions for people to implement servers or wrappers (where one may store the button list of the dialog in a GVariant or va_list).

In a normal application, you almost always want to use sfcd_new() which will detect whether to use local GTK+ dialogs or remote dialogs over D-Bus. Users and application launchers can pass a parameter to your application which will cause sandboxutils_init() to detect what backend to use.

Bear in mind local dialogs do not pass through the sandboxing container that your application may be contained in, so using LocalFileChooserDialog directly may not be a good idea.

Functions

lfcd_get_type ()

GType
lfcd_get_type (void);

lfcd_new_valist ()

SandboxFileChooserDialog *
lfcd_new_valist (const gchar *title,
                 const gchar *parentWinId,
                 GtkWindow *parent,
                 GtkFileChooserAction action,
                 const gchar *first_button_text,
                 va_list varargs);

Creates a new LocalFileChooserDialog. You usually should not use this function, unless implementing a server or a wrapper for LocalFileChooserDialog. In a normal application, you almost always want to use sfcd_new().

parentWinId refers to a unique window identifier that a privileged server may pass onto the compositor of your session, so that the compositor treats the LocalFileChooserDialog created by this function as a transient child of the window identified by parentWinId . Bear in mind that the compositor needs to recognise your application as a legitimate privileged server for it to attach this dialog to other processes' windows. If you specify both parent and parentWinId at the same time, this function will return NULL.

This is equivalent to gtk_file_chooser_dialog_new() in the GTK+ API.

Parameters

title

Title of the dialog, or NULL.

[allow-none]

parentWinId

Window Identifier of a remote transient parent, or NULL.

[allow-none]

parent

Transient parent of the dialog, or NULL.

[allow-none]

action

Open or save mode for the dialog (see GtkFileChooserAction)

 

first_button_text

stock ID or text to go in the first button, or NULL.

[allow-none]

varargs

response ID for the first button, then additional (button, id) pairs, ending with NULL

 

Returns

a new SansboxFileChooserDialog

See also: lfcd_new() and lfcd_new_with_remote_parent() to create a LocalFileChooserDialog, and sfcd_new() to create a SandboxFileChooserDialog regardless of whether local or remote.

Since 0.5


lfcd_new_variant ()

SandboxFileChooserDialog *
lfcd_new_variant (const gchar *title,
                  const gchar *parentWinId,
                  GtkWindow *parent,
                  GtkFileChooserAction action,
                  GVariant *button_list);

Creates a new LocalFileChooserDialog. You usually should not use this function, unless implementing a server or a wrapper for LocalFileChooserDialog. In a normal application, you almost always want to use sfcd_new().

parentWinId refers to a unique window identifier that a privileged server may pass onto the compositor of your session, so that the compositor treats the LocalFileChooserDialog created by this function as a transient child of the window identified by parentWinId . Bear in mind that the compositor needs to recognise your application as a legitimate privileged server for it to attach this dialog to other processes' windows. If you specify both parent and parentWinId at the same time, this function will return NULL.

This is equivalent to gtk_file_chooser_dialog_new() in the GTK+ API.

Parameters

title

Title of the dialog, or NULL.

[allow-none]

parentWinId

Window Identifier of a remote transient parent, or NULL.

[allow-none]

parent

Transient parent of the dialog, or NULL.

[allow-none]

action

Open or save mode for the dialog (see GtkFileChooserAction)

 

button_list

an array of (gchar *button, GtkResponseType id) pairs stored in a GVariant

 

Returns

a new SansboxFileChooserDialog

See also: lfcd_new() and lfcd_new_with_remote_parent() to create a LocalFileChooserDialog, and sfcd_new() to create a SandboxFileChooserDialog regardless of whether local or remote.

Since 0.5


lfcd_new ()

SandboxFileChooserDialog *
lfcd_new (const gchar *title,
          GtkWindow *parent,
          GtkFileChooserAction action,
          const gchar *first_button_text,
          ...);

Creates a new LocalFileChooserDialog. You usually do not need to use this function. See sfcd_new() instead.

This is equivalent to gtk_file_chooser_dialog_new() in the GTK+ API.

Parameters

title

Title of the dialog, or NULL.

[allow-none]

parent

Transient parent of the dialog, or NULL.

[allow-none]

action

Open or save mode for the dialog (see GtkFileChooserAction)

 

first_button_text

stock ID or text to go in the first button, or NULL.

[allow-none]

...

response ID for the first button, then additional (button, id) pairs, ending with NULL

 

Returns

a new SansboxFileChooserDialog

See also: lfcd_new_with_remote_parent() to create a LocalFileChooserDialog with a remote parent, and sfcd_new() to create a SandboxFileChooserDialog regardless of whether local or remote.

Since 0.5


lfcd_new_with_remote_parent ()

SandboxFileChooserDialog *
lfcd_new_with_remote_parent (const gchar *title,
                             const gchar *parentWinId,
                             GtkFileChooserAction action,
                             const gchar *first_button_text,
                             ...);

Creates a new LocalFileChooserDialog, whose transient parent is owned by a remote process. You usually should not use this function, unless implementing a server. In a normal application, you almost always want to use sfcd_new().

parentWinId refers to a unique window identifier that a privileged server may pass onto the compositor of your session, so that the compositor treats the LocalFileChooserDialog created by this function as a transient child of the window identified by parentWinId . Bear in mind that the compositor needs to recognise your application as a legitimate privileged server for it to attach this dialog to other processes' windows.

This is equivalent to gtk_file_chooser_dialog_new() in the GTK+ API.

Parameters

title

Title of the dialog, or NULL.

[allow-none]

parentWinId

Window Identifier of a remote transient parent, or NULL.

[allow-none]

action

Open or save mode for the dialog (see GtkFileChooserAction)

 

first_button_text

stock ID or text to go in the first button, or NULL.

[allow-none]

...

response ID for the first button, then additional (button, id) pairs, ending with NULL

 

Returns

a new SansboxFileChooserDialog

See also: lfcd_new() to create a LocalFileChooserDialog with a local parent, and sfcd_new() to create a SandboxFileChooserDialog regardless of whether local or remote.

Since 0.5

Types and Values