GtkWidget *
create_canvas_rich_text (void)
{
	GtkWidget *vbox;
	GtkWidget *alignment;
	GtkWidget *frame;
	GtkWidget *canvas;
	MateCanvasGroup *root;

	vbox = gtk_vbox_new (FALSE, 4);
	gtk_container_set_border_width (GTK_CONTAINER (vbox), 4);
	gtk_widget_show (vbox);

	alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
	gtk_box_pack_start (GTK_BOX (vbox), alignment, TRUE, TRUE, 0);
	gtk_widget_show (alignment);

	frame = gtk_frame_new (NULL);
	gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
	gtk_container_add (GTK_CONTAINER (alignment), frame);
	gtk_widget_show (frame);

	/* Create the canvas and board */

	canvas = mate_canvas_new ();
	gtk_widget_set_size_request (canvas, 600, 450);
	gtk_container_add (GTK_CONTAINER (frame), canvas);
	gtk_widget_show (canvas);

	root = mate_canvas_root (MATE_CANVAS (canvas));

	setup_text (root);

	return vbox;
}
Пример #2
0
int menu_page(MENU menu_element, char menu_items[][100], int num_items, CNTRLDISPLAY controls, uint8_t bg, unsigned int selected) {
	memset(&menu_element, 0, sizeof(MENU));
	menu_element.bg = bg;
	menu_element.vpad = menu_element.hpad = 10;
	
	int i;
	for (i=0; i<num_items; i++) {
		MENUITEM *item = &menu_element.items[i];
		item->size.height = 25;
		item->fg = 1;
		item->selectedfg = 2;
		item->active = 1;
		item->selected = (i==selected)?1:0;
		setup_text(&item->header_text, menu_items[i], (POSITION){0,0}, 1, 0);
	}

	uint16_t key;
	while (1) {
		draw_top_bar(0, controls);
		draw_menu(&menu_element);
		swap_buffers();
		
		key = get_key();
		switch (key&0xff) {
			case DOWN_PRESSED:
			case RIGHT_PRESSED:
				selected++; break;
			case UP_PRESSED:
			case LEFT_PRESSED:
				selected--; break;
			case ENTER_PRESSED:
				return selected;
			case ESC_PRESSED:
				if (controls.esc_back || controls.esc_menu)
					return -1;
				break;
			
			default:
				continue;
		}
		selected = (selected<0)?num_items-1:selected;
		selected %= num_items;
		for (i=0;i<num_items;i++)
			menu_element.items[i].selected = (i==selected);
	}
}
Пример #3
0
void
draw_card (void)
{
	double curx, cury;
	double dx, dy;
	double scale;

	set_gray (80);

	if (draw_outline) {
		cairo_rectangle (cr, 0, 0, CARD_WIDTH, CARD_HEIGHT);
		cairo_stroke (cr);
	}

	curx = 12;
	cury = 15;

	set_gray (0);
	setup_text (name_font, "Alex Willisson", &dx, &dy);

	if (0) {
		/* centered */
		draw_text ((CARD_WIDTH - dx) / 2, cury);
	} else {
		draw_text (curx, cury);
	}


	cury += 22;
	setup_text (mono_font, "*****@*****.**", &dx, &dy);
	draw_text (curx, cury);

	cury += 22;
	setup_text (mono_font, "774-277-9494", &dx, &dy);
	draw_text (curx, cury);

	set_gray (30);
	cury += 25;
	setup_text (main_font, "3 Ames Street, Wa203", &dx, &dy);
	draw_text (curx, cury);

	cury += 15;
	setup_text (main_font, "Cambridge, MA 02139", &dx, &dy);
	draw_text (curx, cury);

	set_gray (0);
	cury = CARD_HEIGHT - 25;
	setup_text (mono_font, "http://alex.willisson.org", &dx, &dy);
	draw_text (curx, cury);



	
	curx = 170;
	cury = 5;
	scale = .12;

	cairo_save (cr);

	cairo_translate (cr, curx, cury);

	cairo_scale (cr, scale, scale);
	cairo_rectangle (cr,
			 0, 0,
			 cairo_image_surface_get_width (code_surface),
			 cairo_image_surface_get_height (code_surface));
	cairo_set_source (cr, code_pattern);
	cairo_fill (cr);
	cairo_restore (cr);



}
win_object_prop::win_object_prop(QWidget *parent, Qt::WFlags tipo, myGraphicsItem *obj_input)
        : QDialog(parent, tipo)
{
	// Se questo QDialog viene creato con tipo == Qt::Dialog allora sono costretto ad avere il ? in alto a destra
	// Ciò forse è un bene perchè mi costringerà ad avere un minimo di help
	// Veder Qt::WindowContextHelpButtonHint per avere maggiori informazioni

	//setSizeGripEnabled(true);
	setModal(true);

	QGridLayout	*layout = new QGridLayout(this);
	
	obj = obj_input;
	
	switch (obj->tipo)
	{
	case O_CONNECTION:
                setWindowTitle(tr("Wire Properties"));
                layout->addWidget(setup_connection(), 0, 0);
		layout->addLayout(setup_buttons(), 1, 0, TRUE, FALSE);
		break;
	case O_POLYLINE:
		setWindowTitle(tr("Polyline Properties"));	
		layout->addWidget(setup_polyline(), 0, 0);
		layout->addLayout(setup_buttons(), 1, 0, TRUE, FALSE);
		break;
	case O_POLYGON:
		setWindowTitle(tr("Polygon Properties"));	
		layout->addWidget(setup_polygon(), 0, 0);
		layout->addLayout(setup_buttons(), 1, 0, TRUE, FALSE);
		break;
	case O_RECT:
		setWindowTitle(tr("Rectangle Properties"));	
		layout->addWidget(setup_polygon(), 0, 0);
		layout->addLayout(setup_buttons(), 1, 0, TRUE, FALSE);
		break;
	case O_ELLIPSE:
		setWindowTitle(tr("Ellipse Properties"));	
		layout->addWidget(setup_polygon(), 0, 0);
		layout->addLayout(setup_buttons(), 1, 0, TRUE, FALSE);
		break;
	case O_TEXT:	
		setWindowTitle(tr("Text Properties"));
		layout->addWidget(setup_font_properties(), 0, 0);
		layout->addWidget(setup_text(), 1, 0);
		TextText->setFocus();
		layout->addLayout(setup_buttons(), 2, 0, TRUE, FALSE);
		break;
	case O_PIN:	
		setWindowTitle(tr("Pin Properties"));	
		layout->addWidget(setup_pin_general(), 0, 0);
		layout->addWidget(setup_pin_orientation(), 2, 0);		
		layout->addLayout(setup_buttons(), 3, 0, TRUE, FALSE);
		break;
        case O_POWER:
                setWindowTitle(tr("Power Port Properties"));
                layout->addWidget(setup_power_general(), 0, 0);
                layout->addLayout(setup_buttons(), 3, 0, TRUE, FALSE);
		break;
        case O_PORT:
                setWindowTitle(tr("Module Port Properties"));
                layout->addWidget(setup_port_general(), 0, 0);
                layout->addWidget(setup_port_orientation(), 2, 0);
                layout->addLayout(setup_buttons(), 3, 0, TRUE, FALSE);
                break;
	case O_PAD:
		{
		int row = 0;
		setWindowTitle(tr("Pad Properties"));	
                layout->addLayout(setup_pad(), row++, 0);
                layout->addLayout(setup_buttons(), row++, 0, TRUE, FALSE);
		}
		break;
	case O_VIA:
		{
		int row = 0;
		setWindowTitle(tr("Via Properties"));			
                layout->addLayout(setup_via(), row++, 0);
                layout->addLayout(setup_buttons(), row++, 0, TRUE, FALSE);
		}
		break;
	}
	
	layout->setSpacing(6);
    layout->setMargin(8);
}