Esempio n. 1
0
EXPORT gboolean create_new_gauge(GtkWidget * widget, gpointer data)
{
	GtkWidget *tmp = NULL;
	GladeXML *xml = glade_get_widget_tree(widget);
	GtkWidget *parent = glade_xml_get_widget(xml,"gauge_frame");
	gauge = mtx_gauge_face_new();
	gtk_widget_set_events(gauge,GDK_POINTER_MOTION_HINT_MASK
			| GDK_POINTER_MOTION_MASK
			| GDK_BUTTON_PRESS_MASK
			| GDK_BUTTON_RELEASE_MASK);
	g_signal_connect(GTK_WIDGET(gauge),"motion_notify_event",G_CALLBACK(gauge_motion),NULL);
	g_signal_connect(GTK_WIDGET(gauge),"button_press_event",G_CALLBACK(gauge_button),NULL);
	gtk_container_add(GTK_CONTAINER(parent),gauge);
	gtk_widget_show_all(parent);
	mtx_gauge_face_redraw_canvas(MTX_GAUGE_FACE(gauge));
	gauge_loaded = TRUE;

	gtk_widget_set_sensitive(glade_xml_get_widget(xml,"tab_notebook"),TRUE);
	gtk_widget_set_sensitive(glade_xml_get_widget(xml,"animate_frame"),TRUE);

	gtk_widget_set_sensitive(glade_xml_get_widget(xml,"new_gauge_menuitem"),FALSE);

	gtk_widget_set_sensitive(glade_xml_get_widget(xml,"close_gauge_menuitem"),TRUE);

	gtk_widget_set_sensitive(glade_xml_get_widget(xml,"load_gauge_menuitem"),FALSE);

	gtk_widget_set_sensitive(glade_xml_get_widget(xml,"save_gauge_menuitem"),TRUE);

	gtk_widget_set_sensitive(glade_xml_get_widget(xml,"save_as_menuitem"),TRUE);

	update_attributes();
	return (TRUE);
}
Esempio n. 2
0
void mtx_gauge_face_import_xml(MtxGaugeFace *gauge, const gchar * filename)
{
	xmlDoc *doc = NULL;
	xmlNode *root_element = NULL;
	gchar *tmpbuf = NULL;
	MtxGaugeFacePrivate *priv = NULL;

	g_return_if_fail(gauge);
	g_return_if_fail(filename);
	priv = MTX_GAUGE_FACE_GET_PRIVATE(gauge);
	g_return_if_fail(priv);

	/*
	 * this initialize the library and check potential ABI mismatches
	 * between the version it was compiled for and the actual shared
	 * library used.
	 */

	LIBXML_TEST_VERSION

	/*parse the file and get the DOM */

	doc = xmlReadFile(filename, NULL, 0);

	if (doc == NULL) {
		printf("error: could not parse file %s\n",filename);
	}
	else
	{

		/*Get the root element node */

		root_element = xmlDocGetRootElement(doc);

		g_object_freeze_notify(G_OBJECT(gauge));
		mtx_gauge_face_remove_all_text_blocks(gauge);
		mtx_gauge_face_remove_all_alert_ranges(gauge);
		mtx_gauge_face_remove_all_warning_ranges(gauge);
		mtx_gauge_face_remove_all_tick_groups(gauge);
		mtx_gauge_face_remove_all_polygons(gauge);
		load_elements(gauge, root_element);
		/* Fix for api break, default to CW gauges */

		if (priv->rotation == 187) 
			priv->rotation = MTX_ROT_CCW;
		if (priv->rotation == 188) 
			priv->rotation = MTX_ROT_CW;
		priv->xc = priv->w / 2;
		priv->yc = priv->h / 2;
		priv->radius = MIN (priv->w/2, priv->h/2) - 5;
		g_object_thaw_notify(G_OBJECT(gauge));
		if ((GTK_IS_WINDOW(gtk_widget_get_parent(GTK_WIDGET(gauge)))) && (priv->w > 0) && (priv->h > 0))
			gtk_window_resize(GTK_WINDOW(gtk_widget_get_parent(GTK_WIDGET(gauge))),priv->w,priv->h);
		generate_gauge_background(gauge);
		mtx_gauge_face_set_value(MTX_GAUGE_FACE(gauge),priv->lbound);
		mtx_gauge_face_redraw_canvas (gauge);

		priv->xml_filename = g_strdup(filename);
	}
	g_free(tmpbuf);

	/*free the document */

	xmlFreeDoc(doc);
	/*
	 *Free the global variables that may
	 *have been allocated by the parser.
	 */

	xmlCleanupParser();
}