/* on_project_new */ void on_project_new(gpointer data) { Coder * coder = data; Project * project; if((project = project_new()) == NULL) return; coder_project_open_project(coder, project); project_properties(project); }
static void new_project (void) { check_dirty (); if (project) g_object_unref (project); project = project_new (scene_store, sequence_store, channel_store); }
/* To create a new project * from project string * returns a newly created Project */ Project * project_new_from_string (gchar *proj_string, gchar *proj_file) { gchar *start, *end; start = g_strstr_len (proj_string, -1, "<name>") + 6; /*strlen("<name>") == 6*/ end = g_strstr_len (proj_string, -1, "</name>"); if (!start || !end) return NULL; end--; gchar *name = get_text_between_strings (proj_string, start, end); start = g_strstr_len (proj_string, -1, "<main_file>") + 11; /*strlen("<main_file>") == 11*/ end = g_strstr_len (proj_string, -1, "</main_file>"); if (!start || !end) return NULL; end--; gchar *main_file = get_text_between_strings (proj_string, start, end); start = g_strstr_len (proj_string, -1, "<current_dir>") + 13; /*strlen("<current_dir>") == 13*/ end = g_strstr_len (proj_string, -1, "</current_dir>"); if (!start || !end) return NULL; end--; gchar *current_dir = get_text_between_strings (proj_string, start, end); start = g_strstr_len (proj_string, -1, "<version>") + 9; /*strlen("<version>") == 9*/ end = g_strstr_len (proj_string, -1, "</version>"); if (!start || !end) return NULL; end--; gchar *version = get_text_between_strings (proj_string, start, end); Project *proj = project_new (name, main_file, proj_file, current_dir, version, NULL, NULL); g_free (name); g_free (main_file); g_free (version); g_free (current_dir); return proj; }
GProject *gproject_new(Quark *parent, const Grace *grace, int mmodel) { GProject *gp = xmalloc(sizeof(GProject)); if (gp) { memset(gp, 0, sizeof(GProject)); gp->q = project_new(parent, grace->qfactory, mmodel); if (!gp->q) { gproject_free(gp); return NULL; } } return gp; }
int main(int argc, char *argv[]) { int i; project_t *project; pthread_t *read_thread; pthread_t **blocking_threads; pthread_t **comparator_threads; project = project_new(); args_parse(project->args, argc, argv); project_parse(project, project->args->project_file); printf("Começando leitura e blocagem\n\n"); read_thread = database_read_async(project->d0); blocking_threads = blocking_async(project); pthread_join(*read_thread, NULL); for(i = 0; i < project->args->max_threads - 1; i++) { pthread_join(*blocking_threads[i], NULL); free(blocking_threads[i]); } free(blocking_threads); free(read_thread); printf("\nComeçando comparação e escrita\n"); comparator_threads = comparator_run_async(project); for(i = 0; i < project->args->max_threads; i++) { pthread_join(*comparator_threads[i], NULL); free(comparator_threads[i]); } free(comparator_threads); printf("Comparação pronta\n"); project_free(project); return 0; }
static void open_file (GtkWidget *button, gpointer user_data) { const gchar *filename; check_dirty (); filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (user_data)); if (project) g_object_unref (project); project = project_new_from_file (filename, scene_store, sequence_store, channel_store); if (project == NULL) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (user_data), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _("Error loading file '%s': %s"), filename, g_strerror (errno)); g_signal_connect_swapped (GTK_OBJECT (dialog), "response", G_CALLBACK (gtk_widget_destroy), GTK_OBJECT (dialog)); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); project = project_new (scene_store, sequence_store, channel_store); } }
/** * initialize this project manager. called from main */ int projects_init( char *filename ) { Ewl_Widget *vbox, *menu, *project_menu, *settings_menu, *windows_menu, *item; /* ui phase... kick on some phat window action */ project_win = ewl_window_new(); ewl_window_title_set(EWL_WINDOW(project_win), "Ewler"); ewl_object_size_request(EWL_OBJECT(project_win), 200, 320); ewl_callback_append(project_win, EWL_CALLBACK_DELETE_WINDOW, project_exit, NULL); ewl_callback_append(project_win, EWL_CALLBACK_KEY_DOWN, project_key_down, NULL); vbox = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(project_win), vbox); menu = ewl_hmenubar_new(); ewl_container_child_append(EWL_CONTAINER(vbox), menu); project_menu = ewl_menubar_menu_add(EWL_MENUBAR(menu), NULL, "Project"); item = ewl_menu_item_new(NULL, "New"); ewl_container_child_append(EWL_CONTAINER(project_menu), item); ewl_widget_show(item); item = ewl_menu_item_new(NULL, "New Form"); ewl_container_child_append(EWL_CONTAINER(project_menu), item); ewl_callback_append(item, EWL_CALLBACK_CLICKED, form_new, NULL); ewl_widget_show(item); item = ewl_menu_item_new(NULL, "Open..."); ewl_container_child_append(EWL_CONTAINER(project_menu), item); ewl_callback_append(item, EWL_CALLBACK_CLICKED, open, NULL); ewl_widget_show(item); item = ewl_menu_separator_new(); ewl_container_child_append(EWL_CONTAINER(project_menu), item); ewl_widget_show(item); item = ewl_menu_item_new(NULL, "Save"); ewl_callback_append(item, EWL_CALLBACK_CLICKED, save, NULL); ewl_container_child_append(EWL_CONTAINER(project_menu), item); ewl_widget_show(item); item = ewl_menu_separator_new(); ewl_container_child_append(EWL_CONTAINER(project_menu), item); ewl_widget_show(item); item = ewl_menu_item_new(NULL, "Exit"); ewl_callback_append(item, EWL_CALLBACK_CLICKED, project_exit, NULL); ewl_container_child_append(EWL_CONTAINER(project_menu), item); ewl_widget_show(item); ewl_widget_show(project_menu); settings_menu = ewl_menubar_menu_add(EWL_MENUBAR(menu), NULL, "Settings"); item = ewl_menu_item_new(NULL, "Options..."); ewl_container_child_append(EWL_CONTAINER(settings_menu), item); ewl_callback_append(item, EWL_CALLBACK_CLICKED, options, NULL); ewl_widget_show(item); ewl_widget_show(settings_menu); windows_menu = ewl_menubar_menu_add(EWL_MENUBAR(menu), NULL, "Windows"); item = ewl_menu_item_new(NULL, "Toolbar"); ewl_container_child_append(EWL_CONTAINER(windows_menu), item); ewl_callback_append(item, EWL_CALLBACK_CLICKED, tools_toggle, NULL); ewl_widget_show(item); item = ewl_menu_item_new(NULL, "Inspector"); ewl_container_child_append(EWL_CONTAINER(windows_menu), item); ewl_callback_append(item, EWL_CALLBACK_CLICKED, inspector_toggle, NULL); ewl_widget_show(item); item = ewl_menu_item_new(NULL, "Callbacks"); ewl_container_child_append(EWL_CONTAINER(windows_menu), item); ewl_callback_append(item, EWL_CALLBACK_CLICKED, callbacks_toggle, NULL); ewl_widget_show(item); ewl_widget_show(windows_menu); ewl_widget_show(menu); file_tree = ewl_tree_new(1); ewl_tree_mode_set(EWL_TREE(file_tree), EWL_TREE_MODE_SINGLE); ewl_container_child_append(EWL_CONTAINER(vbox), file_tree); ewl_widget_show(file_tree); ewl_widget_show(vbox); ewl_widget_show(project_win); /* end ui phase */ /* project phase */ active_project = NEW(Ewler_Project); if( !active_project ) { ewler_error("projects_init: out of memory!"); return -1; } active_project->files = ecore_hash_new(ecore_str_hash, ecore_str_compare); ecore_hash_free_key_cb_set(active_project->files, free); ecore_hash_free_value_cb_set(active_project->files, free); if( !filename || project_open(filename) < 0 ) { project_new(); } /* end project phase */ return 0; }