Пример #1
0
/* 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);
}
Пример #2
0
static void
new_project (void)
{
  check_dirty ();

  if (project)
    g_object_unref (project);

  project = project_new (scene_store, sequence_store, channel_store);
}
Пример #3
0
/* 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;
}
Пример #4
0
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;
}
Пример #5
0
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;
}
Пример #6
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);
    }
}
Пример #7
0
/**
 * 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;
}