int main(int argc, char** argv) { GtkWidget* w; gtk_init(&argc, &argv); fm_gtk_init(NULL); /* for debugging RTL */ /* gtk_widget_set_default_direction(GTK_TEXT_DIR_RTL); */ w = fm_main_win_new(); gtk_window_set_default_size(GTK_WINDOW(w), 640, 480); gtk_widget_show(w); if(argc > 1) { FmPath* path = fm_path_new(argv[1]); fm_main_win_chdir(FM_MAIN_WIN(w), path); fm_path_unref(path); } gtk_main(); fm_finalize(); return 0; }
static gboolean open_folder_func(GAppLaunchContext* ctx, GList* folder_infos, gpointer user_data, GError** err) { FmMainWin* win = FM_MAIN_WIN(user_data); GList* l = folder_infos; FmFileInfo* fi = (FmFileInfo*)l->data; fm_main_win_chdir(win, fi->path); l=l->next; for(; l; l=l->next) { FmFileInfo* fi = (FmFileInfo*)l->data; /* FIXME: open in new window */ } return TRUE; }
void fm_tab_page_back(FmTabPage* page) { FmMainWin* win = FM_MAIN_WIN(gtk_widget_get_toplevel(GTK_WIDGET(page))); if(fm_nav_history_get_can_back(page->nav_history)) { FmNavHistoryItem* item; GtkAdjustment* vadjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(page->folder_view)); int scroll_pos = gtk_adjustment_get_value(vadjustment); fm_nav_history_back(page->nav_history, scroll_pos); item = fm_nav_history_get_cur(page->nav_history); fm_tab_page_chdir_without_history(page, item->path); } }
static gboolean open_folder_func(GAppLaunchContext* ctx, GList* folder_infos, gpointer user_data, GError** err) { FmMainWin* win = FM_MAIN_WIN(user_data); GList* l = folder_infos; FmFileInfo* fi = (FmFileInfo*)l->data; fm_main_win_chdir(win, fm_file_info_get_path(fi), NULL); l=l->next; for(; l; l=l->next) { FmFileInfo* fi = (FmFileInfo*)l->data; fm_main_win_add_tab(win, fm_file_info_get_path(fi)); } return TRUE; }
static void fm_main_win_finalize(GObject *object) { FmMainWin *self; g_return_if_fail(object != NULL); g_return_if_fail(IS_FM_MAIN_WIN(object)); --n_wins; self = FM_MAIN_WIN(object); g_object_unref(self->nav_history); g_object_unref(self->ui); g_object_unref(self->bookmarks); if (G_OBJECT_CLASS(fm_main_win_parent_class)->finalize) (* G_OBJECT_CLASS(fm_main_win_parent_class)->finalize)(object); if(n_wins == 0) gtk_main_quit(); }