FmFileMenu

FmFileMenu — Simple context menu for files.

Synopsis

                    FmFileMenu;
void                fm_file_menu_destroy                (FmFileMenu *menu);
GtkActionGroup *    fm_file_menu_get_action_group       (FmFileMenu *menu);
FmFileInfoList *    fm_file_menu_get_file_info_list     (FmFileMenu *menu);
GtkMenu *           fm_file_menu_get_menu               (FmFileMenu *menu);
GtkUIManager *      fm_file_menu_get_ui                 (FmFileMenu *menu);
gboolean            fm_file_menu_is_single_file_type    (FmFileMenu *menu);
FmFileMenu *        fm_file_menu_new_for_file           (GtkWindow *parent,
                                                         FmFileInfo *fi,
                                                         FmPath *cwd,
                                                         gboolean auto_destroy);
FmFileMenu *        fm_file_menu_new_for_files          (GtkWindow *parent,
                                                         FmFileInfoList *files,
                                                         FmPath *cwd,
                                                         gboolean auto_destroy);
void                fm_file_menu_set_folder_func        (FmFileMenu *menu,
                                                         FmLaunchFolderFunc func,
                                                         gpointer user_data);

Description

include: libfm/fm-file-menu.h

The FmFileMenu can be used to create context menu on some file(s).

The menu consists of items:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Open
------------------------
<placeholder name='ph1'/>
------------------------
<placeholder name='ph2'/>
------------------------
Cut
Copy
Paste
Del
------------------------
Rename
------------------------
<placeholder name='ph3'/>
------------------------
Prop

You can modity the menu replacing placeholders. Note that internally the menu constructor also puts some conditional elements into those placeholders:

  • ph1: 'UnTrash' item if files are in trash can

  • ph2: 'OpenWith' list and submenu;

  • ph3: custom (user defined) menu elements 'Compress' if there is archiver defined; 'Extract' if this is an archive

Element 'Rename' is hidden if menu is created for more than one file.

Elements 'Cut', 'Copy', 'Paste', and 'Del' are hidden for any virtual place but trash can.

Details

FmFileMenu

typedef struct _FmFileMenu FmFileMenu;

fm_file_menu_destroy ()

void                fm_file_menu_destroy                (FmFileMenu *menu);

Destroys menu object.

menu :

a menu

Since 0.1.0


fm_file_menu_get_action_group ()

GtkActionGroup *    fm_file_menu_get_action_group       (FmFileMenu *menu);

Retrieves action group for menu. Returned data are owned by menu and should be not freed by caller.

menu :

a menu

Returns :

the action group. [transfer none]

Since 0.1.0


fm_file_menu_get_file_info_list ()

FmFileInfoList *    fm_file_menu_get_file_info_list     (FmFileMenu *menu);

Retrieves list of files menu was created for. Returned data are owned by menu and should be not freed by caller.

menu :

a menu

Returns :

list of files. [transfer none]

Since 0.1.0


fm_file_menu_get_menu ()

GtkMenu *           fm_file_menu_get_menu               (FmFileMenu *menu);

fm_file_menu_get_ui ()

GtkUIManager *      fm_file_menu_get_ui                 (FmFileMenu *menu);

Builds the menu with GtkUIManager. Returned data are owned by menu and should be not freed by caller.

menu :

a menu

Returns :

created GtkMenu widget. [transfer none]

Since 0.1.0


fm_file_menu_is_single_file_type ()

gboolean            fm_file_menu_is_single_file_type    (FmFileMenu *menu);

Checks if menu was created for files of the same type.

menu :

a menu

Returns :

TRUE if menu is single-type.

Since 0.1.0


fm_file_menu_new_for_file ()

FmFileMenu *        fm_file_menu_new_for_file           (GtkWindow *parent,
                                                         FmFileInfo *fi,
                                                         FmPath *cwd,
                                                         gboolean auto_destroy);

Creates new menu for the file.

parent :

window to place menu over

fi :

target file

cwd :

working directory

auto_destroy :

TRUE if manu should be destroyed after some action was activated

Returns :

a new FmFileMenu object.

Since 0.1.0


fm_file_menu_new_for_files ()

FmFileMenu *        fm_file_menu_new_for_files          (GtkWindow *parent,
                                                         FmFileInfoList *files,
                                                         FmPath *cwd,
                                                         gboolean auto_destroy);

Creates new menu for some files list.

parent :

window to place menu over

files :

target files

cwd :

working directory

auto_destroy :

TRUE if manu should be destroyed after some action was activated

Returns :

a new FmFileMenu object.

Since 0.1.0


fm_file_menu_set_folder_func ()

void                fm_file_menu_set_folder_func        (FmFileMenu *menu,
                                                         FmLaunchFolderFunc func,
                                                         gpointer user_data);

Sets up function to open folders for menu. Function will be called if action 'Open' was activated for some folder.

menu :

a menu

func :

function to open folder

user_data :

data supplied for func

Since 0.1.0