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); }
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)); }
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']'); } }
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)); }
DollarSprite::DollarSprite() : GameSprite("res/sprites/little_coin.png", make_size(22, 21)) { m_heading_to_move = Random::rand_float(0.0f, 359.0f); }
Size get_screen_size () { return make_size (COLS, LINES); }
void DropList::redraw () { choose_palette (is_focus () ? PALETTE_ID_DROPLIST_FOCUS : PALETTE_ID_DROPLIST); clear (); put (make_size (), items[select]); }
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; }