Example #1
0
SpikeSprite::SpikeSprite()
	: GameSprite("res/sprites/spike.png", make_size(65, 112))
{
	type(SPRITE_TYPE_PREDATOR);
	m_speed = Random::rand_float(.5f, 3.0f);
	collision_dim(10, 15, 35, 85);
}
Example #2
0
void view_entry (DiaryEntry &ent, const std::wstring &longtime_format)
{
	std::wstring text;
	text.reserve (ent.text.length () + 512);
	RichTextLineList text_list;
	text_list.reserve (ent.text.length () / 32);
	write_for_view (text, text_list, ent, longtime_format);
	ui::dialog_richtext (
			ent.title,
			text,
			text_list,
			make_size (view_line_width + 3, 0));
}
Example #3
0
void CheckBox::redraw ()
{
	choose_palette (is_focus () ? PALETTE_ID_CHECKBOX_FOCUS : PALETTE_ID_CHECKBOX);
	clear ();
	unsigned wid = get_size().x;
	Size pos = make_size ();
	if (wid >= 3) {
		pos = put (pos, L'[');
	}
	move_cursor (pos);
	// U+00D7 is Multipilcation sign
	pos = put (pos, status ? (
				terminal_emulator_correct_wcwidth () ? L'\u00d7' : L'x'
				) : L' ');
	if (wid >= 3) {
		put (pos, L']');
	}
}
Example #4
0
void view_all_entries (const DiaryEntryList &entries, const std::wstring &longtime_format)
{
	if (entries.empty ()) {
		return;
	}
	std::wstring text;
	text.reserve (512 * entries.size ()); // This is arbitrary. Actual size is difficult to guess.
	ui::RichTextLineList text_list;
	text_list.reserve (32 * entries.size ()); // This is arbitrary. Actual size is difficult to guess.
	DiaryEntryList::const_iterator it = entries.begin ();
	for (;;) {
		write_for_view (text, text_list, **it, longtime_format);
		if (++it == entries.end ()) {
			break;
		}
		ui::RichTextLine tmp_line = { text.length (), 0, ui::PALETTE_ID_SHOW_NORMAL, 0 };
		text_list.insert (text_list.end (), 4, tmp_line);
	}
	ui::dialog_richtext (
			L"View all entries",
			text,
			text_list,
			make_size (view_line_width + 3, 0));
}
Example #5
0
DollarSprite::DollarSprite()
	: GameSprite("res/sprites/little_coin.png", make_size(22, 21)) {

	m_heading_to_move = Random::rand_float(0.0f, 359.0f);
}
Example #6
0
Size get_screen_size ()
{
	return make_size (COLS, LINES);
}
Example #7
0
void DropList::redraw ()
{
	choose_palette (is_focus () ? PALETTE_ID_DROPLIST_FOCUS : PALETTE_ID_DROPLIST);
	clear ();
	put (make_size (), items[select]);
}
Example #8
0
ExplosionSprite::ExplosionSprite()
	: Sprite("res/images/explosion_1.png", make_size(32,32))
{	
	m_is_dead = false;
	animator(new ForwardOnceAnimator(7, 50, false));
}
int main(int argc, char *argv[]) {
	GtkWidget *main_window, *scroll;
	GtkWidget *treeview;
	GtkTreeViewColumn *column;
	GtkCellRenderer *name_renderer, *size_renderer;
	GtkTreeStore *store;
	GtkTreeIter categories[14];
	GValue value = { 0, };
	gint offset;
	uint32 res_counts[14];
	uint32 res_sizes[14];
	int i;

	Common::File in;
	uint32 index_pos;
	uint32 pos, len;

	gtk_init(&argc, &argv);

	if (argc != 2) {
		printf("Usage: %s filename\n", argv[0]);
		return EXIT_FAILURE;
	}

	in.open(argv[1], "rb");
	if (!in.isOpen()) {
		printf("Couldn't open %s for reading\n", argv[1]);
		return EXIT_FAILURE;
	}

	/* Create the main window, scrollable in both directions */

	main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(main_window), "CLUster Explorer");
	gtk_window_set_default_size(GTK_WINDOW(main_window), 400, 400);

	g_signal_connect(G_OBJECT(main_window), "destroy", G_CALLBACK(main_window_destroy_cb), NULL);

	scroll = gtk_scrolled_window_new(NULL, NULL);
	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll), GTK_SHADOW_ETCHED_IN);
	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);

	/* Create the tree view */

	for (i = 0; i < ARRAYSIZE(res_counts); i++) {
		res_counts[i] = 0;
		res_sizes[i] = 0;
	}

	store = gtk_tree_store_new(N_COLUMNS,
		G_TYPE_STRING,
		G_TYPE_STRING,
		G_TYPE_INT,
		G_TYPE_INT,
		G_TYPE_INT);

	gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), compare_items, NULL, NULL);
	gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING);

	index_pos = in.readUint32LE();
	in.seek(index_pos, SEEK_SET);

	for (;;) {
		GtkTreeIter iter;
		byte type;
		gchar *utf8_name;
		gchar name[34];
		gchar *size;

		try {
			pos = in.readUint32LE();
			len = in.readUint32LE();
		} catch (...) {
			break;
		}

		size = make_size(len);

		index_pos = in.pos();

		in.seek(pos, SEEK_SET);

		type = in.readByte();
		in.readByte();				/* compType	*/
		in.readUint32LE();			/* compSize	*/
		in.readUint32LE();			/* decompSize	*/
		in.read_noThrow(name, sizeof(name));

		/*
		 * We need to convert from Latin-1 to UTF-8. Otherwise the text
		 * "CAFÉ" won't be displayed properly.
		 */

		utf8_name = g_convert(name, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL);

		if (!res_counts[type]) {
			gtk_tree_store_append(store, &categories[type], NULL);
			gtk_tree_store_set(store, &categories[type],
				NAME_COLUMN, getType(type),
				SIZE_COLUMN, "",
				TYPE_COLUMN, -1,
				POSITION_COLUMN, -1,
				LENGTH_COLUMN, -1,
				-1);
		}

		res_counts[type]++;
		res_sizes[type] += len;
		gtk_tree_store_append(store, &iter, &categories[type]);
		gtk_tree_store_set(store, &iter,
			NAME_COLUMN, utf8_name,
			SIZE_COLUMN, size,
			TYPE_COLUMN, type,
			POSITION_COLUMN, pos,
			LENGTH_COLUMN, len);

		in.seek(index_pos, SEEK_SET);
	}

	in.close();

	for (i = 0; i < ARRAYSIZE(res_counts); i++) {
		if (res_counts[i]) {
			gchar size[80];

			sprintf(size, "%s [%d]", make_size(res_sizes[i]), res_counts[i]);
			gtk_tree_store_set(store, &categories[i],
				SIZE_COLUMN, size,
				-1);
		}
	}

	treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), TRUE);

	g_signal_connect(G_OBJECT(treeview), "button-press-event", G_CALLBACK(tree_view_button_cb), argv[1]);

	/* The view now holds a reference. We can get rid of our own. */
	g_object_unref(G_OBJECT(store));

	name_renderer = gtk_cell_renderer_text_new();
	size_renderer = gtk_cell_renderer_text_new();

	g_value_init(&value, G_TYPE_FLOAT);
	g_value_set_float(&value, 1.0);
	g_object_set_property(G_OBJECT(size_renderer), "xalign", &value);

	gtk_tree_view_insert_column_with_attributes(
		GTK_TREE_VIEW(treeview), -1, "Name", name_renderer,
		"text", NAME_COLUMN,
		NULL);

	offset = gtk_tree_view_insert_column_with_attributes(
		GTK_TREE_VIEW(treeview), -1, "Size", size_renderer,
		"text", SIZE_COLUMN,
		NULL);
	column = gtk_tree_view_get_column(GTK_TREE_VIEW(treeview), offset - 1);
	gtk_tree_view_column_set_alignment(column, 1.0);

	gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(treeview));
	gtk_container_add(GTK_CONTAINER(main_window), scroll);
	gtk_widget_show_all(GTK_WIDGET(main_window));
	gtk_main();

	return EXIT_SUCCESS;
}