## fm-file-menu

fm-file-menu

## Synopsis

    struct              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

## Details

### struct FmFileMenu

    struct FmFileMenu {
        FmFileInfoList* file_infos;
        gboolean same_type : 1;
        gboolean same_fs : 1;
        gboolean all_virtual : 1;
        gboolean all_trash : 1;
        gboolean auto_destroy : 1; // private
        GtkUIManager* ui;
        GtkActionGroup* act_grp;
        GtkWidget* menu;
        GtkWindow* parent;

        FmLaunchFolderFunc folder_func;
        gpointer folder_func_data;

        FmPath* cwd;
    };

### fm_file_menu_destroy ()

    void                fm_file_menu_destroy                (FmFileMenu *menu);

### fm_file_menu_get_action_group ()

    GtkActionGroup *    fm_file_menu_get_action_group       (FmFileMenu *menu);

### fm_file_menu_get_file_info_list ()

    FmFileInfoList *    fm_file_menu_get_file_info_list     (FmFileMenu *menu);

### 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);

### fm_file_menu_is_single_file_type ()

    gboolean            fm_file_menu_is_single_file_type    (FmFileMenu *menu);

### fm_file_menu_new_for_file ()

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

### fm_file_menu_new_for_files ()

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

### fm_file_menu_set_folder_func ()

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