⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main-window.c

📁 台湾人开发的Linux下的文件管理器
💻 C
📖 第 1 页 / 共 5 页
字号:
    */     return FALSE;}gbooleanon_forward_btn_popup_menu ( GtkWidget *widget,                            gpointer user_data ){    /*    GtkWidget* file_browser = fm_main_window_get_current_file_browser( widget );    */     return FALSE;}void fm_main_window_add_new_window( FMMainWindow* main_window,                                    const char* path,                                    gboolean open_side_pane,                                    PtkFileBrowserSidePaneMode side_pane_mode ){    GtkWidget * new_win = fm_main_window_new();    FM_MAIN_WINDOW( new_win ) ->splitter_pos = main_window->splitter_pos;    gtk_window_set_default_size( GTK_WINDOW( new_win ),                                 GTK_WIDGET( main_window ) ->allocation.width,                                 GTK_WIDGET( main_window ) ->allocation.height );    gtk_widget_show( new_win );    fm_main_window_add_new_tab( FM_MAIN_WINDOW( new_win ), path,                                open_side_pane, side_pane_mode );}voidon_new_window_activate ( GtkMenuItem *menuitem,                         gpointer user_data ){    /*    * FIXME: There sould be an option to let the users choose wether    * home dir or current dir should be opened in new windows and new tabs.    */    PtkFileBrowser * file_browser;    const char* path;    FMMainWindow* main_window = FM_MAIN_WINDOW( user_data );    file_browser = PTK_FILE_BROWSER( fm_main_window_get_current_file_browser( main_window ) );    path = file_browser ? ptk_file_browser_get_cwd( file_browser ) : g_get_home_dir();    fm_main_window_add_new_window( main_window, path,                                   appSettings.showSidePane,                                   file_browser->side_pane_mode );}voidon_new_tab_activate ( GtkMenuItem *menuitem,                      gpointer user_data ){    /*    * FIXME: There sould be an option to let the users choose wether    * home dir or current dir should be opened in new windows and new tabs.    */    PtkFileBrowser * file_browser;    const char* path;    gboolean show_side_pane;    PtkFileBrowserSidePaneMode side_pane_mode;    FMMainWindow* main_window = FM_MAIN_WINDOW( user_data );    file_browser = PTK_FILE_BROWSER( fm_main_window_get_current_file_browser( main_window ) );    if ( file_browser )    {        path = ptk_file_browser_get_cwd( file_browser );        show_side_pane = ptk_file_browser_is_side_pane_visible( file_browser );        side_pane_mode = ptk_file_browser_get_side_pane_mode( file_browser );    }    else    {        path = g_get_home_dir();        show_side_pane = appSettings.showSidePane;        side_pane_mode = appSettings.sidePaneMode;    }    fm_main_window_add_new_tab( main_window, path,                                show_side_pane, side_pane_mode );}static gboolean delayed_focus( GtkWidget* widget ){    gdk_threads_enter();    gtk_widget_grab_focus( widget );    gdk_threads_leave();    return FALSE;}voidon_folder_notebook_switch_pape ( GtkNotebook *notebook,                                 GtkNotebookPage *page,                                 guint page_num,                                 gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    PtkFileBrowser* file_browser;    const char* path;    char* disp_path;    file_browser = ( PtkFileBrowser* ) gtk_notebook_get_nth_page( notebook, page_num );    fm_main_window_update_command_ui( main_window, file_browser );    fm_main_window_update_status_bar( main_window, file_browser );    gtk_paned_set_position ( GTK_PANED ( file_browser ), main_window->splitter_pos );    if( file_browser->dir && (disp_path = file_browser->dir->disp_path) )    {        gtk_entry_set_text( main_window->address_bar, disp_path );        gtk_window_set_title( GTK_WINDOW( main_window ), disp_path );    }    else    {        path = ptk_file_browser_get_cwd( file_browser );        if ( path )        {            disp_path = g_filename_display_name( path );            gtk_entry_set_text( main_window->address_bar, disp_path );            gtk_window_set_title( GTK_WINDOW( main_window ), disp_path );            g_free( disp_path );        }    }    g_idle_add( ( GSourceFunc ) delayed_focus, file_browser->folder_view );}voidon_cut_activate ( GtkMenuItem *menuitem,                  gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    GtkWidget* file_browser;    file_browser = fm_main_window_get_current_file_browser( main_window );    ptk_file_browser_cut( PTK_FILE_BROWSER( file_browser ) );}voidon_copy_activate ( GtkMenuItem *menuitem,                   gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    GtkWidget* file_browser;    file_browser = fm_main_window_get_current_file_browser( main_window );    ptk_file_browser_copy( PTK_FILE_BROWSER( file_browser ) );}voidon_paste_activate ( GtkMenuItem *menuitem,                    gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    GtkWidget* file_browser;    file_browser = fm_main_window_get_current_file_browser( main_window );    ptk_file_browser_paste( PTK_FILE_BROWSER( file_browser ) );}voidon_delete_activate ( GtkMenuItem *menuitem,                     gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    GtkWidget* file_browser;    file_browser = fm_main_window_get_current_file_browser( main_window );    ptk_file_browser_delete( PTK_FILE_BROWSER( file_browser ) );}voidon_select_all_activate ( GtkMenuItem *menuitem,                         gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    GtkWidget* file_browser = fm_main_window_get_current_file_browser( main_window );    ptk_file_browser_select_all( PTK_FILE_BROWSER( file_browser ) );}voidon_edit_bookmark_activate ( GtkMenuItem *menuitem,                            gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    GtkWidget* bookmark;    GtkWidget* bookmark_menu;    edit_bookmarks( GTK_WINDOW( main_window ) );}int bookmark_item_comp( const char* item, const char* path ){    return strcmp( ptk_bookmarks_item_get_path( item ), path );}voidon_add_to_bookmark_activate ( GtkMenuItem *menuitem,                              gpointer user_data ){    GList * l;    FMMainWindow* main_window = FM_MAIN_WINDOW( user_data );    GtkWidget* bookmark;    GtkWidget* bookmark_menu;    GtkWidget* file_browser = fm_main_window_get_current_file_browser( main_window );    const char* path = ptk_file_browser_get_cwd( PTK_FILE_BROWSER( file_browser ) );    gchar* name;    if ( ! g_list_find_custom( appSettings.bookmarks->list,                               path,                               ( GCompareFunc ) bookmark_item_comp ) )    {        name = g_path_get_basename( path );        ptk_bookmarks_append( name, path );        g_free( name );    }}voidon_invert_selection_activate ( GtkMenuItem *menuitem,                               gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    GtkWidget* file_browser = fm_main_window_get_current_file_browser( main_window );    ptk_file_browser_invert_selection( PTK_FILE_BROWSER( file_browser ) );}voidon_close_tab_activate ( GtkMenuItem *menuitem,                        gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    GtkNotebook* notebook = main_window->notebook;    GtkWidget* file_browser = fm_main_window_get_current_file_browser( main_window );    gint idx;    if ( gtk_notebook_get_n_pages ( notebook ) <= 1 )    {        fm_main_window_close( GTK_WIDGET( main_window ) );        return ;    }    idx = gtk_notebook_page_num ( GTK_NOTEBOOK( notebook ),                                  file_browser );    gtk_notebook_remove_page( notebook, idx );    if ( gtk_notebook_get_n_pages ( notebook ) == 1 )        gtk_notebook_set_show_tabs( notebook, FALSE );}voidon_rename_activate ( GtkMenuItem *menuitem,                     gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    GtkWidget* file_browser = fm_main_window_get_current_file_browser( main_window );    ptk_file_browser_rename_selected_file( PTK_FILE_BROWSER( file_browser ) );}voidon_open_side_pane_activate ( GtkMenuItem *menuitem,                             gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    GtkCheckMenuItem* check = GTK_CHECK_MENU_ITEM( menuitem );    PtkFileBrowser* file_browser;    GtkNotebook* nb = main_window->notebook;    GtkToggleToolButton* btn = main_window->open_side_pane_btn;    int i;    int n = gtk_notebook_get_n_pages( nb );    appSettings.showSidePane = gtk_check_menu_item_get_active( check );    g_signal_handlers_block_matched ( btn, G_SIGNAL_MATCH_FUNC,                                      0, 0, NULL, on_side_pane_toggled, NULL );    gtk_toggle_tool_button_set_active( btn, appSettings.showSidePane );    g_signal_handlers_unblock_matched ( btn, G_SIGNAL_MATCH_FUNC,                                        0, 0, NULL, on_side_pane_toggled, NULL );    for ( i = 0; i < n; ++i )    {        file_browser = PTK_FILE_BROWSER( gtk_notebook_get_nth_page( nb, i ) );        if ( appSettings.showSidePane )        {            ptk_file_browser_show_side_pane( file_browser,                                             file_browser->side_pane_mode );        }        else        {            ptk_file_browser_hide_side_pane( file_browser );        }    }}void on_show_dir_tree ( GtkMenuItem *menuitem, gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    PtkFileBrowser* file_browser;    int i, n;    if ( ! GTK_CHECK_MENU_ITEM( menuitem ) ->active )        return ;    appSettings.sidePaneMode = FB_SIDE_PANE_DIR_TREE;    n = gtk_notebook_get_n_pages( main_window->notebook );    for ( i = 0; i < n; ++i )    {        file_browser = PTK_FILE_BROWSER( gtk_notebook_get_nth_page(                                             main_window->notebook, i ) );        ptk_file_browser_set_side_pane_mode( file_browser, FB_SIDE_PANE_DIR_TREE );    }}void on_show_loation_pane ( GtkMenuItem *menuitem, gpointer user_data ){    FMMainWindow * main_window = FM_MAIN_WINDOW( user_data );    PtkFileBrowser* file_browser;    int i, n;    if ( ! GTK_CHECK_MENU_ITEM( menuitem ) ->active )        return ;    appSettings.sidePaneMode = FB_SIDE_PANE_BOOKMARKS;    n = gtk_notebook_get_n_pages( main_window->notebook );    for ( i = 0; i < n; ++i )

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -