예제 #1
0
static void
task_view_activate (PlannerView *view)
{
    PlannerTaskViewPriv *priv;
    gboolean             show_critical;
    gboolean             show_nostd_days;
    gchar               *filename;

    priv = PLANNER_TASK_VIEW (view)->priv;

    priv->actions = gtk_action_group_new ("TaskView");
    gtk_action_group_set_translation_domain (priv->actions, GETTEXT_PACKAGE);

    gtk_action_group_add_actions (priv->actions, entries,
                                  G_N_ELEMENTS (entries),
                                  view);
    gtk_action_group_add_toggle_actions (priv->actions, toggle_entries,
                                         G_N_ELEMENTS (toggle_entries),
                                         view);

    gtk_ui_manager_insert_action_group (priv->ui_manager, priv->actions, 0);
    filename = mrp_paths_get_ui_dir ("task-view.ui");
    priv->merged_id = gtk_ui_manager_add_ui_from_file (priv->ui_manager,
                      filename,
                      NULL);
    g_free (filename);
    gtk_ui_manager_ensure_update (priv->ui_manager);

    /* Set the initial UI state. */
    show_critical =   planner_conf_get_bool (CRITICAL_PATH_KEY, NULL);
    show_nostd_days = planner_conf_get_bool (NOSTDDAYS_PATH_KEY, NULL);
    planner_task_tree_set_highlight_critical (PLANNER_TASK_TREE (priv->tree),
            show_critical);
    planner_task_tree_set_nonstandard_days (PLANNER_TASK_TREE (priv->tree),
                                            show_nostd_days);

    gtk_toggle_action_set_active (
        GTK_TOGGLE_ACTION (gtk_action_group_get_action (priv->actions, "HighlightCriticalTasks")),
        show_critical);

    gtk_toggle_action_set_active (
        GTK_TOGGLE_ACTION (gtk_action_group_get_action (priv->actions, "NonstandardDays")),
        show_nostd_days);

    task_view_selection_changed_cb (PLANNER_TASK_TREE (priv->tree), view);

    gtk_widget_grab_focus (priv->tree);
}
예제 #2
0
static void
show_view_project_loaded_cb (MrpProject  *project,
			      PlannerShowView *view)
{
	GtkTreeModel *model;
	GList *task_list;
	MrpTaskManager *task_manager;

	//g_free(pertnodes);//pretend more load action that this list add unexcepted tasks
	//g_free(firsttasklist);//the same as above

	firsttasklist = NULL;
	project = planner_window_get_project(PLANNER_VIEW (view) ->main_window);
	task_manager = imrp_project_get_task_manager(project);
	task_list = mrp_task_manager_get_all_tasks(task_manager);
	firsttasklist = sortTasklistsByFinishTime(task_list);
	tasklistlength = g_list_length(task_list);
	prosses = tasklistlength;
	model = GTK_TREE_MODEL (planner_gantt_model_new (project));

	planner_task_tree_set_model(PLANNER_TASK_TREE (view->priv->tree),
			PLANNER_GANTT_MODEL (model) );

	planner_gantt_chart_set_model(PLANNER_GANTT_CHART (view->priv->gantt),
			model);

	view->priv->expose_id = g_signal_connect_after (view->priv->gantt,
			"expose_event",
			G_CALLBACK (show_view_expose_cb),
			view);

	//task_view_pert_chart_on_load(view);

	g_object_unref(model);
}
예제 #3
0
static void
show_view_update_ui (PlannerShowView *view)
{
	PlannerShowViewPriv *priv;
	GList                *list, *l;
	gboolean              value;
	gboolean              rel_value = FALSE;
	gboolean              link_value = FALSE;
	gint                  count_value = 0;

	if (!PLANNER_VIEW (view)->activated) {
		return;
	}

	priv = view->priv;

	list = planner_task_tree_get_selected_tasks(
			PLANNER_TASK_TREE (priv->tree) );

	for (l = list; l; l = l->next) {
		if (mrp_task_has_relation(MRP_TASK (l->data) )) {
			rel_value = TRUE;
			break;
		}
	}

	for (l = list; l; l = l->next) {
		count_value++;
	}

	value = (list != NULL );
	link_value = (count_value >= 2);

	g_list_free(list);
}
예제 #4
0
static void show_view_edit_task_cb(GtkAction *action, gpointer data) {
	PlannerShowView *view;

	view = PLANNER_SHOW_VIEW (data);

	planner_task_tree_edit_task(PLANNER_TASK_TREE (view->priv->tree),
			PLANNER_TASK_DIALOG_PAGE_GENERAL);
}
예제 #5
0
static void
task_view_reset_constraint_cb (GtkAction *action,
                               gpointer   data)
{
    PlannerTaskView *view;

    view = PLANNER_TASK_VIEW (data);

    planner_task_tree_reset_constraint (PLANNER_TASK_TREE (view->priv->tree));
}
예제 #6
0
static void
task_view_unindent_task_cb (GtkAction *action,
                            gpointer   data)
{
    PlannerTaskView *view;

    view = PLANNER_TASK_VIEW (data);

    planner_task_tree_unindent_task (PLANNER_TASK_TREE (view->priv->tree));
}
예제 #7
0
static void
task_view_link_tasks_cb (GtkAction *action,
                         gpointer   data)
{
    PlannerTaskView *view;

    view = PLANNER_TASK_VIEW (data);

    planner_task_tree_link_tasks (PLANNER_TASK_TREE (view->priv->tree),
                                  MRP_RELATION_FS);
}
예제 #8
0
static void
task_view_project_loaded_cb (MrpProject  *project,
                             PlannerView *view)
{
    PlannerTaskViewPriv *priv;
    GtkTreeModel        *model;

    priv = PLANNER_TASK_VIEW (view)->priv;

    model = GTK_TREE_MODEL (planner_gantt_model_new (project));

    planner_task_tree_set_model (PLANNER_TASK_TREE (priv->tree),
                                 PLANNER_GANTT_MODEL (model));

    g_object_unref (model);
}
예제 #9
0
static void
task_view_highlight_critical_cb (GtkAction *action,
                                 gpointer   data)
{
    PlannerTaskViewPriv *priv;
    gboolean             state;

    priv = PLANNER_TASK_VIEW (data)->priv;

    state = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));

    planner_task_tree_set_highlight_critical (
        PLANNER_TASK_TREE (priv->tree),
        state);

    planner_conf_set_bool (CRITICAL_PATH_KEY, state, NULL);
}
예제 #10
0
static void
task_view_nonstandard_days_cb (GtkAction *action,
                               gpointer   data)
{
    PlannerTaskViewPriv *priv;
    gboolean             state;

    priv = PLANNER_TASK_VIEW (data)->priv;

    state = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));

    planner_task_tree_set_nonstandard_days (
        PLANNER_TASK_TREE (priv->tree),
        state);


    planner_conf_set_bool (NOSTDDAYS_PATH_KEY, state, NULL);
}
예제 #11
0
static void
show_view_nonstandard_days_cb (GtkAction *action,
				  gpointer   data)
{
	PlannerShowView     *view;
	PlannerShowViewPriv *priv;
	gboolean         state;

	view = PLANNER_SHOW_VIEW (data);
	priv = view->priv;

	state = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));

	planner_gantt_chart_set_nonstandard_days (
		PLANNER_GANTT_CHART (priv->gantt),
		state);
	planner_task_tree_set_nonstandard_days (
		PLANNER_TASK_TREE (priv->tree), state);
	//show_view_update_row_height (view);

}
예제 #12
0
static void
task_view_update_ui (PlannerView *view)
{
    PlannerTaskViewPriv *priv;
    GList           *list, *l;
    gboolean         value;
    gboolean         rel_value  = FALSE;
    gboolean         link_value = FALSE;
    gint	         count = 0;

    if (!view->activated) {
        return;
    }

    priv = PLANNER_TASK_VIEW (view)->priv;

    list = planner_task_tree_get_selected_tasks (PLANNER_TASK_TREE (priv->tree));

    for (l = list; l; l = l->next) {
        if (mrp_task_has_relation (MRP_TASK (l->data))) {
            rel_value = TRUE;
            break;
        }
    }

    for (l = list; l; l = l->next) {
        count++;
    }

    value = (list != NULL);
    link_value = (count >= 2);

    g_object_set (gtk_action_group_get_action (priv->actions, "EditTask"),
                  "sensitive", value,
                  NULL);
    g_object_set (gtk_action_group_get_action (priv->actions, "RemoveTask"),
                  "sensitive", value,
                  NULL);
    g_object_set (gtk_action_group_get_action (priv->actions, "UnlinkTask"),
                  "sensitive", rel_value,
                  NULL);
    g_object_set (gtk_action_group_get_action (priv->actions, "LinkTasks"),
                  "sensitive", link_value,
                  NULL);
    g_object_set (gtk_action_group_get_action (priv->actions, "IndentTask"),
                  "sensitive", value,
                  NULL);
    g_object_set (gtk_action_group_get_action (priv->actions, "UnindentTask"),
                  "sensitive", value,
                  NULL);
    g_object_set (gtk_action_group_get_action (priv->actions, "MoveTaskUp"),
                  "sensitive", value,
                  NULL);
    g_object_set (gtk_action_group_get_action (priv->actions, "MoveTaskDown"),
                  "sensitive", value,
                  NULL);
    g_object_set (gtk_action_group_get_action (priv->actions, "ResetConstraint"),
                  "sensitive", value,
                  NULL);

    g_list_free (list);
}
예제 #13
0
static GtkWidget *
show_view_create_widget (PlannerShowView *view)
{
	PlannerShowViewPriv  *priv;
	GtkWidget        *pertlayout;
	GtkWidget        *tree;
	GtkWidget        *sw;
	GtkWidget        *frame;
	GtkWidget        *layout;
	GtkWidget        *vpaned;
	GtkAdjustment    *hadj, *vadj;
	GtkTreeModel     *model;
	MrpTaskManager   *task_manager;
	GtkLabel         *label;
	GtkEntry         *entry;
	GtkButton        *button;
	GtkWidget        *hbox,*vbox,*vbox2;
	GtkWidget		   *progressbar;

	GtkWidget *randomtogglebutton;
	GtkWidget *deleteresourcetogglebutton;
	GtkWidget *ganttcharttogglebutton;
	GtkWidget *manulsettogglebutton;
	GtkWidget *table;

	MrpProject *project;
	GtkTreeSelection *selection;
	GList *task_list;

	project = planner_window_get_project (PLANNER_VIEW (view)->main_window);

	task_manager = imrp_project_get_task_manager(project);
	priv = view->priv;

	g_signal_connect (project,
			  "loaded",
			  G_CALLBACK (show_view_project_loaded_cb),
			  view);

	model = GTK_TREE_MODEL (planner_gantt_model_new (project));

	tree = planner_task_tree_new (PLANNER_VIEW (view)->main_window,
				      PLANNER_GANTT_MODEL (model),
				      FALSE,
				      TRUE,

				      COL_WBS, _("WBS"),
				      COL_NAME, _("Name"),
				      COL_START, _("Start"),
				      COL_FINISH, _("Finish"),
				      COL_WORK, _("Work"),
				      COL_DURATION, _("Duration"),
				      COL_SLACK, _("Slack"),
				      COL_COST, _("Cost"),
				      COL_ASSIGNED_TO, _("Assigned to"),

				      COL_COMPLETE, _("% Complete"),
				      -1);
	priv->tree = tree;


	priv->gantt = planner_gantt_chart_new_with_model (model);
	g_object_set (priv->gantt,
				  "header_height", 50,
			      NULL);
	planner_gantt_chart_set_view (PLANNER_GANTT_CHART (priv->gantt),
				      PLANNER_TASK_TREE (tree));

	//*********************
	//events sensitive on gantt widget
	gtk_widget_set_events (GTK_WIDGET (priv->gantt), GDK_SCROLL_MASK);

	g_signal_connect (priv->gantt, "scroll-event",
                    G_CALLBACK (show_view_chart_scroll_event), view);

	g_object_unref (model);

	g_signal_connect (priv->gantt,
			  "status_updated",
			  G_CALLBACK (show_view_gantt_status_updated_cb),
			  view);

	g_signal_connect (priv->gantt,
			  "resource_clicked",
			  G_CALLBACK (show_view_gantt_resource_clicked_cb),
			  view);

	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree));
	gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);

	//g_signal_connect (tree,
			  //"style_set",
			  //G_CALLBACK (show_view_tree_style_set_cb),
			  //view);

	//*********************
	//interface design
	//GtkVPaned
	//  GtkFrame -> GtkScrollWindow ->GtkLayout (pert view showed here)A
	//  GtkHBox
	//    GtkVBox -> GtkHBox (show run-in-time data showed here)B
	//                 GtkLabel
	//                 GtkEntry
	//    GtkScrollWindow  (gantt view showed here)C

	//interface design in A
	//GtkScrollWindow, let its scrollbar displayed if needed, put the pert view inside
	layout = gtk_layout_new(NULL,NULL);
	priv->pertlayout = layout;

	sw = gtk_scrolled_window_new (NULL, NULL);
	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
					GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
	gtk_container_add (GTK_CONTAINER (sw),
			        priv->pertlayout);

	//GtkFrame, put the GtkScrollWindow in the GtkFrame
	frame = gtk_frame_new (NULL);
	gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
	gtk_container_add (GTK_CONTAINER (frame), sw);

	//GtkVPaned, add the GtkFrame in the GtkVPaned
	vpaned = gtk_vpaned_new ();
	gtk_paned_add1 (GTK_PANED (vpaned), frame);

	//interface design in B
    //GtkVBox, holds labels and entry and buttons
    vbox = gtk_vbox_new(FALSE, 0);
    vbox2 = gtk_vbox_new(FALSE,0);
    progressbar = gtk_progress_bar_new();
	//GtkLabel, "The Current Task Is: "
    label = gtk_label_new("当前执行审计任务: ");
    gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (label), FALSE, FALSE, 0);

    //GtkEntry, holds task name
    entry = gtk_entry_new();
    gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (entry), FALSE, FALSE, 0);
    priv->currenttaskentry = entry;

    //GtkLabel, "The Current Delay Is:: "
    label = gtk_label_new("当前审计延迟时间: ");
    gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (label), FALSE, FALSE, 0);

    //GtkEntry, holds task delay
    entry = gtk_entry_new();
    gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (entry), FALSE, FALSE, 0);
    priv->currentdelayentry = entry;

    //GtkLabel, "The Current duration is "
    label = gtk_label_new("当前审计总时间: ");
    gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (label), FALSE, FALSE, 0);

    //GtkEntry, holds total duration
    entry = gtk_entry_new();
    gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (entry), FALSE, FALSE, 0);
    priv->currentdurationentry = entry;

    //GtkLabel, "The Duration has changed :: "
    label = gtk_label_new("延迟后审计总时间: ");
    gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (label), FALSE, FALSE, 0);

    //GtkEntry, The Duration has changed to
    entry = gtk_entry_new();
    gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (entry), FALSE, FALSE, 0);
    priv->lastdurationentry = entry;

    lastdurationentry = entry;

	//GtkLabel, "delete resource"
	label = gtk_label_new("调整的审计人员: ");
	gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (label), FALSE, FALSE, 0);

	//GtkEntry, delete resource
	entry = gtk_entry_new();
	gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (entry), FALSE, FALSE, 0);
	priv->deleteresourceentry = entry;



	GtkWidget *labelChild;
	PangoFontDescription *font1;
	short fontSize = 8;


    //GtkButton, delete resource
    button = gtk_button_new_with_label("重大事项显示");
    GdkColor color;
       color.red = 50000;
       color.green = 20000;
       color.blue = 15000;
       gtk_widget_modify_bg(button, GTK_STATE_INSENSITIVE, &color);

      // font1 = pango_font_description_from_string("Sans");//"Sans"字体名
       //pango_font_description_set_size(font1, fontSize * PANGO_SCALE);//设置字体大小
      // labelChild = gtk_bin_get_child(GTK_BIN(button));//取出GtkButton里的label
       gtk_widget_modify_font(GTK_WIDGET(labelChild), font1);//设置label的字体, 这样这个GtkButton上面显示的字体就变了

    gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (button),	FALSE,FALSE, 0);
    g_signal_connect (button,
       			  "clicked",
       			  G_CALLBACK (show_view_delete_resource_cb),
       			 view);
    priv->deleteresourcebutton = button;

    //total duration display
	button = gtk_button_new_with_label("审计总时间无延迟");
	GdkColor color1;
	color1.red = 50000;
	color1.green = 20000;
	color1.blue = 15000;
	gtk_widget_modify_bg(button, GTK_STATE_INSENSITIVE, &color1);

	 // font1 = pango_font_description_from_string("Sans");//"Sans"字体名
	     //  pango_font_description_set_size(font1, fontSize * PANGO_SCALE);//设置字体大小
	     //  labelChild = gtk_bin_get_child(GTK_BIN(button));//取出GtkButton里的label
	       gtk_widget_modify_font(GTK_WIDGET(labelChild), font1);//设置label的字体, 这样这个GtkButton上面显示的字体就变了
	gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (button), FALSE,FALSE, 0);
	g_signal_connect(button, "clicked",
			G_CALLBACK (show_view_delete_resource_cb), view);
	priv->displaytotaldurationbutton = button;

    //GtkButton, go to next task
    button = gtk_button_new_with_label("执行下一审计任务");
    GdkColor color2;
    color2.red = 50000;
    color2.green = 10000;
    color2.blue = 10000;
    gtk_widget_modify_bg(button, GTK_STATE_INSENSITIVE, &color2);

   // font1 = pango_font_description_from_string("Sans");//"Sans"字体名
        // pango_font_description_set_size(font1, fontSize * PANGO_SCALE);//设置字体大小
        // labelChild = gtk_bin_get_child(GTK_BIN(button));//取出GtkButton里的label
         gtk_widget_modify_font(GTK_WIDGET(labelChild), font1);//设置label的字体, 这样这个GtkButton上面显示的字体就变了
    gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (button), FALSE,FALSE, 0);
    g_signal_connect (button,
    			  "clicked",
    			  G_CALLBACK (show_view_next_task_cb),
    			 view);
    priv->nextstepbutton = button;


    table = gtk_table_new(2, 2, FALSE);
    manulsettogglebutton = gtk_toggle_button_new_with_label("手动设置审计任务延迟");
    gtk_widget_set_size_request(manulsettogglebutton,5,7);



    font1 = pango_font_description_from_string("Sans");//"Sans"字体名
    pango_font_description_set_size(font1, fontSize * PANGO_SCALE);//设置字体大小
    labelChild = gtk_bin_get_child(GTK_BIN( manulsettogglebutton));//取出GtkButton里的label
    gtk_widget_modify_font(GTK_WIDGET(labelChild), font1);//设置label的字体, 这样这个GtkButton上面显示的字体就变了






    randomtogglebutton = gtk_toggle_button_new_with_label("随机设置审计任务延迟");

    font1 = pango_font_description_from_string("Sans");//"Sans"字体名
       pango_font_description_set_size(font1, fontSize * PANGO_SCALE);//设置字体大小
       labelChild = gtk_bin_get_child(GTK_BIN( randomtogglebutton));//取出GtkButton里的label
       gtk_widget_modify_font(GTK_WIDGET(labelChild), font1);//设置label的字体, 这样这个GtkButton上面显示的字体就变了

    deleteresourcetogglebutton = gtk_toggle_button_new_with_label("参审人员随机调整");
    font1 = pango_font_description_from_string("Sans");//"Sans"字体名
       pango_font_description_set_size(font1, fontSize * PANGO_SCALE);//设置字体大小
       labelChild = gtk_bin_get_child(GTK_BIN(  deleteresourcetogglebutton));//取出GtkButton里的label
       gtk_widget_modify_font(GTK_WIDGET(labelChild), font1);//设置label的字体, 这样这个GtkButton上面显示的字体就变了

    ganttcharttogglebutton = gtk_toggle_button_new_with_label("干特图路径选择");
    font1 = pango_font_description_from_string("Sans");//"Sans"字体名
       pango_font_description_set_size(font1, fontSize * PANGO_SCALE);//设置字体大小
       labelChild = gtk_bin_get_child(GTK_BIN( ganttcharttogglebutton));//取出GtkButton里的label
       gtk_widget_modify_font(GTK_WIDGET(labelChild), font1);//设置label的字体, 这样这个GtkButton上面显示的字体就变了


	gtk_table_set_row_spacings(GTK_TABLE(table), 2);
	gtk_table_set_col_spacings(GTK_TABLE(table), 2);
	gtk_table_attach_defaults(GTK_TABLE(table), manulsettogglebutton, 0, 1, 0,1);
	gtk_table_attach_defaults(GTK_TABLE(table), randomtogglebutton, 0, 1, 1, 2);
	gtk_table_attach_defaults(GTK_TABLE(table), deleteresourcetogglebutton, 1,
			2, 0, 1);
	gtk_table_attach_defaults(GTK_TABLE(table), ganttcharttogglebutton, 1, 2, 1,
			2);
	gtk_signal_connect(GTK_OBJECT(randomtogglebutton), "toggle",
				GTK_SIGNAL_FUNC(select_random_task), view);
	gtk_signal_connect(GTK_OBJECT(deleteresourcetogglebutton), "toggle",
			GTK_SIGNAL_FUNC(select_deleteresource), view);
	priv->manulsettogglebutton = manulsettogglebutton;
	priv->randomtogglebutton = randomtogglebutton;
	priv->deleteresourcetogglebutton = deleteresourcetogglebutton;
	priv->ganttcharttogglebutton = ganttcharttogglebutton;
	//gtk_table_attach_defaults(GTK_TABLE(table), labelprobability,1,2,2,3);
//   		   gtk_table_attach_defaults(GTK_TABLE(table), togglebutton,0,2,3,4);
	gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (table), FALSE, FALSE, 0);
	//GtkButton, auto optimization
	button = gtk_button_new_with_label("Auto Optimization");



    sw = gtk_scrolled_window_new (NULL, NULL);
	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
					GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
	gtk_container_add (GTK_CONTAINER (sw),
				    priv->gantt);
	gtk_box_pack_start(GTK_BOX (vbox2), GTK_WIDGET (sw), TRUE, TRUE,0);
	gtk_widget_set_size_request(progressbar,150,36);
	gtk_box_pack_start(GTK_BOX (vbox2), GTK_WIDGET (progressbar), FALSE, FALSE, 0);
	priv->progressbar = progressbar;
	//put the GtkHBox in the GtkFrame, put the GtkVBox and GtkScrollWindow in the GtkHBox
	hbox = gtk_hbox_new(FALSE, 0);
   gtk_box_pack_start(GTK_BOX (hbox), GTK_WIDGET (vbox), FALSE,TRUE, 0);
	gtk_box_pack_end(GTK_BOX (hbox), GTK_WIDGET (vbox2), TRUE, TRUE, 10);

	frame = gtk_frame_new (NULL);
	gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
	gtk_container_add (GTK_CONTAINER (frame), GTK_WIDGET (hbox));

	//add the GtkFrame in the GtkVPaned
	gtk_paned_add2 (GTK_PANED (vpaned), frame);

	gtk_paned_set_position (GTK_PANED (vpaned), 250);

	g_signal_connect (tree,
			  "row_expanded",
			  G_CALLBACK (show_view_row_expanded),
			  priv->gantt);

	g_signal_connect (tree,
			  "row_collapsed",
			  G_CALLBACK (show_view_row_collapsed),
			  priv->gantt);

	gtk_tree_view_expand_all (GTK_TREE_VIEW (tree));





	return vpaned;

}
예제 #14
0
static void
show_view_activate (PlannerView *view)
{
	PlannerShowViewPriv *priv;
	gboolean              show_critical, show_nostd_days, show_guidelines;
	gchar                *filename;

	priv = PLANNER_SHOW_VIEW (view)->priv;

	priv->actions = gtk_action_group_new ("ShowView");
	gtk_action_group_set_translation_domain (priv->actions, GETTEXT_PACKAGE);

	gtk_action_group_add_actions (priv->actions,
				      entries,
				      G_N_ELEMENTS (entries),
				      view);
	gtk_action_group_add_toggle_actions (priv->actions,
					     toggle_entries,
					     G_N_ELEMENTS (toggle_entries),
					     view);

	gtk_ui_manager_insert_action_group (priv->ui_manager, priv->actions, 0);
	filename = mrp_paths_get_ui_dir ("show-view.ui");
	priv->merged_id = gtk_ui_manager_add_ui_from_file (priv->ui_manager,
							   filename,
							   NULL);
	g_free (filename);
	gtk_ui_manager_ensure_update (priv->ui_manager);

	/* Set the initial UI state. */
	show_critical = planner_gantt_chart_get_highlight_critical_tasks (
		PLANNER_GANTT_CHART (priv->gantt));

	show_nostd_days = planner_gantt_chart_get_nonstandard_days (
		PLANNER_GANTT_CHART (priv->gantt));

	show_guidelines = planner_gantt_chart_get_show_guidelines (
			PLANNER_GANTT_CHART (priv->gantt));

	planner_task_tree_set_highlight_critical (PLANNER_TASK_TREE (priv->tree),
						  show_critical);

	planner_task_tree_set_nonstandard_days (PLANNER_TASK_TREE (priv->tree),
						  show_nostd_days);

	gtk_toggle_action_set_active (
		GTK_TOGGLE_ACTION (gtk_action_group_get_action (priv->actions, "HighlightCriticalTasks")),
		show_critical);

	gtk_toggle_action_set_active (
		GTK_TOGGLE_ACTION (gtk_action_group_get_action (priv->actions, "NonstandardDays")),
		show_nostd_days);

	gtk_toggle_action_set_active (
		GTK_TOGGLE_ACTION (gtk_action_group_get_action (priv->actions, "ShowGuideLines")),
		show_guidelines);

	show_view_selection_changed_cb (PLANNER_TASK_TREE (priv->tree),
					 PLANNER_SHOW_VIEW (view));
	show_view_update_zoom_sensitivity (PLANNER_SHOW_VIEW (view));

	gtk_widget_grab_focus (priv->gantt);
}