Exemple #1
0
static void watchfile_menu_init(void)
{
  static _Bool ready = 0;
  if (!ready) {
    ready = 1;
    struct menu *menu = &watchfile_menu;
    menu_init(menu, MENU_NOVALUE, MENU_NOVALUE, MENU_NOVALUE);
    watchfile_return = menu_add_submenu(menu, 0, 0, NULL, "return");
    watchfile_return->leave_proc = watchfile_leave_proc;
    struct gfx_texture *t_arrow = resource_get(RES_ICON_ARROW);
    menu_add_button_icon(menu, 0, 1,
                         t_arrow, 0, 0xFFFFFF,
                         scroll_up_proc, NULL);
    menu_add_button_icon(menu, 0, 1 + WATCHFILE_VIEW_ROWS - 1,
                         t_arrow, 1, 0xFFFFFF,
                         scroll_down_proc, NULL);
    for (int i = 0; i < WATCHFILE_VIEW_ROWS; ++i) {
      struct menu_item *item = menu_item_add(menu, 2, 1 + i, NULL, 0xFFFFFF);
      item->data = (void*)i;
      item->enter_proc = entry_enter_proc;
      item->draw_proc = entry_draw_proc;
      item->activate_proc = entry_activate_proc;
      watchfile_items[i] = item;
    }
  }
}
Exemple #2
0
struct menu_item *watchlist_create(struct menu *menu,
                                   struct menu *menu_release,
                                   int x, int y)
{
  struct menu *imenu;
  struct menu_item *item = menu_add_imenu(menu, x, y, &imenu);
  struct item_data *data = malloc(sizeof(*data));
  data->menu_release = menu_release;
  data->imenu = imenu;
  vector_init(&data->members, sizeof(struct member_data*));
  if (!list_icons)
    list_icons = resource_load_grc_texture("list_icons");
  data->add_button = menu_add_button_icon(imenu, 0, 0,
                                          list_icons, 0, 0x00FF00,
                                          add_button_proc, data);
#ifndef WIIVC
  struct gfx_texture *file_icons = resource_get(RES_ICON_FILE);
  data->import_button = menu_add_button_icon(imenu, 2, 0,
                                             file_icons, 1, 0xFFFFFF,
                                             import_button_proc, data);
#endif
  item->data = data;
  item->destroy_proc = destroy_proc;
  return item;
}
Exemple #3
0
void mem_menu_create(struct menu *menu)
{
  /* initialize data */
  vector_init(&domains, sizeof(struct mem_domain));
  add_domain(0x80000000, 0x00C00000, "k0 rdram");
  add_domain(0xA0000000, 0x00C00000, "k1 rdram");
  add_domain(0xA3F00000, 0x00100000, "rdram regs");
  add_domain(0xA4000000, 0x00100000, "sp regs");
  add_domain(0xA4100000, 0x00100000, "dp com");
  add_domain(0xA4200000, 0x00100000, "dp span");
  add_domain(0xA4300000, 0x00100000, "mi regs");
  add_domain(0xA4400000, 0x00100000, "vi regs");
  add_domain(0xA4500000, 0x00100000, "ai regs");
  add_domain(0xA4600000, 0x00100000, "pi regs");
  add_domain(0xA4800000, 0x00100000, "si regs");
  add_domain(0xA8000000, 0x08000000, "cart dom2");
  add_domain(0xB0000000, 0x0FC00000, "cart dom1");
  add_domain(0xBFC00000, 0x000007C0, "pif rom");
  add_domain(0xBFC007C0, 0x00000040, "pif ram");
  /* initialize menus */
  menu_init(menu, MENU_NOVALUE, MENU_NOVALUE, MENU_NOVALUE);
  menu->selector = menu_add_submenu(menu, 0, 0, NULL, "return");
  {
    view_address = menu_add_intinput(menu, 0, 1, 16, 8, address_proc, NULL);
    struct menu_item *data_size = menu_add_option(menu, 9, 1,
                                                  "byte\0""halfword\0""word\0",
                                                  data_size_proc, NULL);
    menu_option_set(data_size, 2);
    view_data_size = 4;
    menu_add_button(menu, 18, 1, "<", prev_domain_proc, NULL);
    menu_add_button(menu, 20, 1, ">", next_domain_proc, NULL);
    view_domain_name = menu_add_static(menu, 22, 1, NULL, 0xC0C0C0);
    view_domain_name->text = malloc(32);
    struct gfx_texture *t_arrow = resource_get(RES_ICON_ARROW);
    view_pageup = menu_add_button_icon(menu, 0, 2, t_arrow, 0, 0xFFFFFF,
                                       page_up_proc, NULL);
    view_pagedown = menu_add_button_icon(menu, 2, 2, t_arrow, 1, 0xFFFFFF,
                                         page_down_proc, NULL);
    menu_add_static(menu, 9, 2, "0 1 2 3 4 5 6 7", 0xC0C0C0);
    for (int y = 0; y < MEM_VIEW_ROWS; ++y) {
      view_rows[y] = menu_add_static(menu, 0, 3 + y, NULL, 0xC0C0C0);
      view_rows[y]->text = malloc(9);
    }
    make_cells(menu);
    goto_domain(0);
  }
}
Exemple #4
0
static int add_member(struct item_data *data,
                      uint32_t address, enum watch_type type, int position,
                      _Bool anchored, int x, int y, _Bool position_set)
{
  if (data->members.size >= SETTINGS_WATCHES_MAX ||
      position < 0 || position > data->members.size)
    return 0;
  ++data->add_button->y;
#ifndef WIIVC
  ++data->import_button->y;
#endif
  for (int i = position; i < data->members.size; ++i) {
    struct member_data *member_data = get_member(data, i);
    ++member_data->index;
    ++member_data->member->y;
  }
  struct menu *imenu;
  struct member_data *member_data = malloc(sizeof(*member_data));
  member_data->data = data;
  member_data->index = position;
  member_data->member = menu_add_imenu(data->imenu, 0, position, &imenu);
  member_data->anchor_button = menu_item_add(imenu, 2, 0, NULL, 0xFFFFFF);
  member_data->anchor_button->enter_proc = anchor_button_enter_proc;
  member_data->anchor_button->draw_proc = anchor_button_draw_proc;
  member_data->anchor_button->activate_proc = anchor_button_activate_proc;
  member_data->anchor_button->data = member_data;
  member_data->positioning = menu_add_positioning(imenu, 4, 0,
                                                  position_proc, member_data);
  member_data->userwatch = menu_add_userwatch(imenu, 6, 0, address, type);
  member_data->anchored = 1;
  member_data->anchor_anim_state = 0;
  member_data->x = x;
  member_data->y = y;
  member_data->position_set = 1;
  menu_add_button_icon(imenu, 0, 0, list_icons, 1, 0xFF0000,
                       remove_button_proc, member_data);
  if (anchored)
    menu_item_disable(member_data->positioning);
  else
    release_member(member_data);
  member_data->position_set = position_set;
  vector_insert(&data->members, position, 1, &member_data);
  return 1;
}