mirror of
https://github.com/joel16/VitaShell.git
synced 2025-03-03 17:47:11 +00:00
Finished 'More' item. Added FILE_COLOR.
This commit is contained in:
parent
54d0b657db
commit
0771d498b2
@ -79,7 +79,6 @@ void loadLanguage(int id) {
|
||||
LANGUAGE_ENTRY(RENAME),
|
||||
LANGUAGE_ENTRY(NEW_FOLDER),
|
||||
LANGUAGE_ENTRY(MORE),
|
||||
LANGUAGE_ENTRY(BACK),
|
||||
LANGUAGE_ENTRY(INSTALL_ALL),
|
||||
LANGUAGE_ENTRY(CALCULATE_SHA1),
|
||||
LANGUAGE_ENTRY(COPIED_FILE),
|
||||
|
@ -37,7 +37,6 @@ enum LanguageContainer {
|
||||
RENAME,
|
||||
NEW_FOLDER,
|
||||
MORE,
|
||||
BACK,
|
||||
INSTALL_ALL,
|
||||
CALCULATE_SHA1,
|
||||
COPIED_FILE,
|
||||
|
106
main.c
106
main.c
@ -48,8 +48,6 @@
|
||||
|
||||
int _newlib_heap_size_user = 64 * 1024 * 1024;
|
||||
|
||||
#define CONTEXT_MENU_MORE_WIDTH 180.0f
|
||||
|
||||
#define MAX_DIR_LEVELS 1024
|
||||
|
||||
// File lists
|
||||
@ -77,6 +75,7 @@ static int ctx_menu_pos = -1;
|
||||
static int ctx_menu_more_pos = -1;
|
||||
static float ctx_menu_width = 0;
|
||||
static float ctx_menu_max_width = 0;
|
||||
static float ctx_menu_more_max_width = 0;
|
||||
|
||||
// Net info
|
||||
static SceNetEtherAddr mac;
|
||||
@ -469,42 +468,17 @@ MenuEntry menu_entries[] = {
|
||||
#define N_MENU_ENTRIES (sizeof(menu_entries) / sizeof(MenuEntry))
|
||||
|
||||
enum MenuMoreEntrys {
|
||||
MENU_MORE_ENTRY_BACK,
|
||||
MENU_MORE_ENTRY_EMPTY_1,
|
||||
MENU_MORE_ENTRY_INSTALL_ALL,
|
||||
MENU_MORE_ENTRY_CALCULATE_SHA1,
|
||||
};
|
||||
|
||||
MenuEntry menu_more_entries[] = {
|
||||
{ BACK, VISIBILITY_INVISIBLE },
|
||||
{ -1, VISIBILITY_UNUSED },
|
||||
{ INSTALL_ALL, VISIBILITY_INVISIBLE },
|
||||
{ CALCULATE_SHA1, VISIBILITY_INVISIBLE },
|
||||
};
|
||||
|
||||
#define N_MENU_MORE_ENTRIES (sizeof(menu_more_entries) / sizeof(MenuEntry))
|
||||
|
||||
void initContextMenuMore() {
|
||||
int i;
|
||||
|
||||
// All visible
|
||||
for (i = 0; i < N_MENU_MORE_ENTRIES; i++) {
|
||||
if (menu_more_entries[i].visibility == VISIBILITY_INVISIBLE)
|
||||
menu_more_entries[i].visibility = VISIBILITY_VISIBLE;
|
||||
}
|
||||
|
||||
// Go to first entry
|
||||
for (i = 0; i < N_MENU_MORE_ENTRIES; i++) {
|
||||
if (menu_more_entries[i].visibility == VISIBILITY_VISIBLE) {
|
||||
ctx_menu_more_pos = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i == N_MENU_MORE_ENTRIES)
|
||||
ctx_menu_more_pos = -1;
|
||||
}
|
||||
|
||||
void initContextMenu() {
|
||||
int i;
|
||||
|
||||
@ -554,15 +528,6 @@ void initContextMenu() {
|
||||
menu_entries[MENU_ENTRY_DELETE].visibility = VISIBILITY_INVISIBLE;
|
||||
menu_entries[MENU_ENTRY_RENAME].visibility = VISIBILITY_INVISIBLE;
|
||||
menu_entries[MENU_ENTRY_NEW_FOLDER].visibility = VISIBILITY_INVISIBLE;
|
||||
//menu_entries[MENU_ENTRY_CALCULATE_SHA1].visibility = VISIBILITY_INVISIBLE;
|
||||
}
|
||||
|
||||
if(file_entry->is_folder) {
|
||||
//menu_entries[MENU_ENTRY_CALCULATE_SHA1].visibility = VISIBILITY_INVISIBLE;
|
||||
}
|
||||
|
||||
if(file_entry->type != FILE_TYPE_VPK) {
|
||||
//menu_entries[MENU_ENTRY_INSTALL_ALL].visibility = VISIBILITY_INVISIBLE;
|
||||
}
|
||||
|
||||
// Mark/Unmark all text
|
||||
@ -589,6 +554,42 @@ void initContextMenu() {
|
||||
ctx_menu_pos = -1;
|
||||
}
|
||||
|
||||
void initContextMenuMore() {
|
||||
int i;
|
||||
|
||||
// All visible
|
||||
for (i = 0; i < N_MENU_MORE_ENTRIES; i++) {
|
||||
if (menu_more_entries[i].visibility == VISIBILITY_INVISIBLE)
|
||||
menu_more_entries[i].visibility = VISIBILITY_VISIBLE;
|
||||
}
|
||||
|
||||
FileListEntry *file_entry = fileListGetNthEntry(&file_list, base_pos + rel_pos);
|
||||
|
||||
// Invisble write operations in archives
|
||||
if (isInArchive()) {
|
||||
menu_more_entries[MENU_MORE_ENTRY_CALCULATE_SHA1].visibility = VISIBILITY_INVISIBLE;
|
||||
}
|
||||
|
||||
if(file_entry->is_folder) {
|
||||
menu_more_entries[MENU_MORE_ENTRY_CALCULATE_SHA1].visibility = VISIBILITY_INVISIBLE;
|
||||
}
|
||||
|
||||
if(file_entry->type != FILE_TYPE_VPK) {
|
||||
menu_more_entries[MENU_MORE_ENTRY_INSTALL_ALL].visibility = VISIBILITY_INVISIBLE;
|
||||
}
|
||||
|
||||
// Go to first entry
|
||||
for (i = 0; i < N_MENU_MORE_ENTRIES; i++) {
|
||||
if (menu_more_entries[i].visibility == VISIBILITY_VISIBLE) {
|
||||
ctx_menu_more_pos = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i == N_MENU_MORE_ENTRIES)
|
||||
ctx_menu_more_pos = -1;
|
||||
}
|
||||
|
||||
float easeOut(float x0, float x1, float a) {
|
||||
float dx = (x1 - x0);
|
||||
return ((dx * a) > 0.5f) ? (dx * a) : dx;
|
||||
@ -624,8 +625,8 @@ void drawContextMenu() {
|
||||
|
||||
// Opening context menu 'More'
|
||||
if (ctx_menu_mode == CONTEXT_MENU_MORE_OPENING) {
|
||||
if (ctx_menu_width < ctx_menu_max_width + CONTEXT_MENU_MORE_WIDTH) {
|
||||
ctx_menu_width += easeOut(ctx_menu_width, ctx_menu_max_width + CONTEXT_MENU_MORE_WIDTH, 0.375f);
|
||||
if (ctx_menu_width < ctx_menu_max_width + ctx_menu_more_max_width) {
|
||||
ctx_menu_width += easeOut(ctx_menu_width, ctx_menu_max_width + ctx_menu_more_max_width, 0.375f);
|
||||
} else {
|
||||
ctx_menu_mode = CONTEXT_MENU_MORE_OPENED;
|
||||
}
|
||||
@ -637,7 +638,7 @@ void drawContextMenu() {
|
||||
vita2d_draw_texture_part(context_image, SCREEN_WIDTH - ctx_menu_width, 0.0f, 0.0f, 0.0f, ctx_menu_width, SCREEN_HEIGHT);
|
||||
} else {
|
||||
vita2d_draw_texture_part(context_image, SCREEN_WIDTH - ctx_menu_width, 0.0f, 0.0f, 0.0f, ctx_menu_max_width, SCREEN_HEIGHT);
|
||||
vita2d_draw_texture_part(context_image, SCREEN_WIDTH - ctx_menu_width + ctx_menu_max_width, 0.0f, 0.0f, 0.0f, CONTEXT_MENU_MORE_WIDTH, SCREEN_HEIGHT); // TODO: another image
|
||||
vita2d_draw_texture_part(context_more_image, SCREEN_WIDTH - ctx_menu_width + ctx_menu_max_width, 0.0f, 0.0f, 0.0f, ctx_menu_more_max_width, SCREEN_HEIGHT);
|
||||
}
|
||||
|
||||
int i;
|
||||
@ -649,8 +650,11 @@ void drawContextMenu() {
|
||||
|
||||
uint32_t color = GENERAL_COLOR;
|
||||
|
||||
if (i == ctx_menu_pos)
|
||||
color = FOCUS_COLOR;
|
||||
if (i == ctx_menu_pos) {
|
||||
if (ctx_menu_mode != CONTEXT_MENU_MORE_OPENED && ctx_menu_mode != CONTEXT_MENU_MORE_OPENING) {
|
||||
color = FOCUS_COLOR;
|
||||
}
|
||||
}
|
||||
|
||||
if (menu_entries[i].visibility == VISIBILITY_INVISIBLE)
|
||||
color = INVISIBLE_COLOR;
|
||||
@ -667,13 +671,16 @@ void drawContextMenu() {
|
||||
|
||||
uint32_t color = GENERAL_COLOR;
|
||||
|
||||
if (i == ctx_menu_more_pos)
|
||||
color = FOCUS_COLOR;
|
||||
if (i == ctx_menu_more_pos) {
|
||||
if (ctx_menu_mode != CONTEXT_MENU_MORE_CLOSING) {
|
||||
color = FOCUS_COLOR;
|
||||
}
|
||||
}
|
||||
|
||||
if (menu_more_entries[i].visibility == VISIBILITY_INVISIBLE)
|
||||
color = INVISIBLE_COLOR;
|
||||
|
||||
pgf_draw_text(SCREEN_WIDTH - ctx_menu_width + CONTEXT_MENU_MARGIN + CONTEXT_MENU_MORE_WIDTH, y, color, FONT_SIZE, language_container[menu_more_entries[i].name]);
|
||||
pgf_draw_text(SCREEN_WIDTH - ctx_menu_width + ctx_menu_max_width + CONTEXT_MENU_MARGIN, y, color, FONT_SIZE, language_container[menu_more_entries[i].name]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1463,7 +1470,7 @@ int shellMain() {
|
||||
|
||||
int i;
|
||||
for (i = 0; i < MAX_ENTRIES && (base_pos + i) < file_list.length; i++) {
|
||||
uint32_t color = GENERAL_COLOR;
|
||||
uint32_t color = FILE_COLOR;
|
||||
float y = START_Y + (i * FONT_Y_SPACE);
|
||||
|
||||
vita2d_texture *icon = NULL;
|
||||
@ -1505,6 +1512,7 @@ int shellMain() {
|
||||
break;
|
||||
|
||||
default:
|
||||
color = FILE_COLOR;
|
||||
icon = file_icon;
|
||||
break;
|
||||
}
|
||||
@ -1607,6 +1615,14 @@ void initShell() {
|
||||
|
||||
ctx_menu_max_width += 2.0f * CONTEXT_MENU_MARGIN;
|
||||
ctx_menu_max_width = MAX(ctx_menu_max_width, CONTEXT_MENU_MIN_WIDTH);
|
||||
|
||||
for (i = 0; i < N_MENU_MORE_ENTRIES; i++) {
|
||||
if (menu_more_entries[i].visibility != VISIBILITY_UNUSED)
|
||||
ctx_menu_more_max_width = MAX(ctx_menu_more_max_width, vita2d_pgf_text_width(font, FONT_SIZE, language_container[menu_more_entries[i].name]));
|
||||
}
|
||||
|
||||
ctx_menu_more_max_width += 2.0f * CONTEXT_MENU_MARGIN;
|
||||
ctx_menu_more_max_width = MAX(ctx_menu_more_max_width, CONTEXT_MENU_MORE_MIN_WIDTH);
|
||||
}
|
||||
|
||||
void getNetInfo() {
|
||||
|
1
main.h
1
main.h
@ -116,6 +116,7 @@
|
||||
#define SCROLL_BAR_MIN_HEIGHT 4.0f
|
||||
|
||||
// Context menu
|
||||
#define CONTEXT_MENU_MORE_MIN_WIDTH 210.0f
|
||||
#define CONTEXT_MENU_MIN_WIDTH 180.0f
|
||||
#define CONTEXT_MENU_MARGIN 20.0f
|
||||
#define CONTEXT_MENU_VELOCITY 10.0f
|
||||
|
@ -7,15 +7,17 @@ TITLE_COLOR = 0xFFFF007F # Violet
|
||||
PATH_COLOR = 0xFFBFBFBF # Litegray
|
||||
DATE_TIME_COLOR = 0xFFFFFFFF # White
|
||||
FOCUS_COLOR = 0xFF00FF00 # Green
|
||||
FILE_COLOR = 0xFFFFFFFF # White
|
||||
FOLDER_COLOR = 0xFFFFFF00 # Cyan
|
||||
IMAGE_COLOR = 0xFF7F00FF # Rose
|
||||
ARCHIVE_COLOR = 0xFF007FFF # Orange
|
||||
SCROLL_BAR_COLOR = 0xFFFF7F00 # Azure
|
||||
SCROLL_BAR_BG_COLOR = 0xFF7F7F7F # Gray
|
||||
MARKED_COLOR = 0x4FFF7F00 # Azure
|
||||
MARKED_COLOR = 0x4FFF7F00 # Azure with alpha
|
||||
INVISIBLE_COLOR = 0xFF3F3F3F # Darkgray #1
|
||||
DIALOG_BG_COLOR = 0xFF2F2F2F # Darkgray #2
|
||||
CONTEXT_MENU_COLOR = 0xFA2F2F2F # Darkgray #2 with alpha
|
||||
CONTEXT_MENU_MORE_COLOR = 0xFA282828 # Darkgray #3 with alpha
|
||||
PROGRESS_BAR_COLOR = 0xFF00FF7F # Chartreuse
|
||||
PROGRESS_BAR_BG_COLOR = 0xFF7F7F7F # Gray
|
||||
HEX_OFFSET_COLOR = 0xFFFFFF00 # Cyan
|
||||
|
@ -17,7 +17,6 @@ DELETE = "Delete"
|
||||
RENAME = "Rename"
|
||||
NEW_FOLDER = "New folder"
|
||||
MORE = "More ▶"
|
||||
BACK = "◀ Back"
|
||||
INSTALL_ALL = "Install all"
|
||||
CALCULATE_SHA1 = "Calculate SHA1"
|
||||
COPIED_FILE = "Copied %d file."
|
||||
|
22
theme.c
22
theme.c
@ -44,6 +44,7 @@ int TITLE_COLOR;
|
||||
int PATH_COLOR;
|
||||
int DATE_TIME_COLOR;
|
||||
int FOCUS_COLOR;
|
||||
int FILE_COLOR;
|
||||
int FOLDER_COLOR;
|
||||
int IMAGE_COLOR;
|
||||
int ARCHIVE_COLOR;
|
||||
@ -53,13 +54,14 @@ int MARKED_COLOR;
|
||||
int INVISIBLE_COLOR;
|
||||
int DIALOG_BG_COLOR;
|
||||
int CONTEXT_MENU_COLOR;
|
||||
int CONTEXT_MENU_MORE_COLOR;
|
||||
int PROGRESS_BAR_COLOR;
|
||||
int PROGRESS_BAR_BG_COLOR;
|
||||
int HEX_OFFSET_COLOR;
|
||||
int HEX_NIBBLE_COLOR;
|
||||
|
||||
vita2d_texture *folder_icon = NULL, *file_icon = NULL, *archive_icon = NULL, *image_icon = NULL, *audio_icon = NULL, *sfo_icon = NULL, *text_icon = NULL,
|
||||
*ftp_image = NULL, *dialog_image = NULL, *context_image = NULL, *battery_image = NULL, *battery_bar_red_image = NULL,
|
||||
*ftp_image = NULL, *dialog_image = NULL, *context_image = NULL, *context_more_image = NULL, *battery_image = NULL, *battery_bar_red_image = NULL,
|
||||
*battery_bar_green_image = NULL, *battery_bar_charge_image = NULL, *bg_browser_image = NULL, *bg_hex_image = NULL,
|
||||
*bg_text_image = NULL, *bg_photo_image = NULL;
|
||||
|
||||
@ -78,6 +80,7 @@ void loadTheme() {
|
||||
COLOR_ENTRY(PATH_COLOR),
|
||||
COLOR_ENTRY(DATE_TIME_COLOR),
|
||||
COLOR_ENTRY(FOCUS_COLOR),
|
||||
COLOR_ENTRY(FILE_COLOR),
|
||||
COLOR_ENTRY(FOLDER_COLOR),
|
||||
COLOR_ENTRY(IMAGE_COLOR),
|
||||
COLOR_ENTRY(ARCHIVE_COLOR),
|
||||
@ -87,6 +90,7 @@ void loadTheme() {
|
||||
COLOR_ENTRY(INVISIBLE_COLOR),
|
||||
COLOR_ENTRY(DIALOG_BG_COLOR),
|
||||
COLOR_ENTRY(CONTEXT_MENU_COLOR),
|
||||
COLOR_ENTRY(CONTEXT_MENU_MORE_COLOR),
|
||||
COLOR_ENTRY(PROGRESS_BAR_COLOR),
|
||||
COLOR_ENTRY(PROGRESS_BAR_BG_COLOR),
|
||||
COLOR_ENTRY(HEX_OFFSET_COLOR),
|
||||
@ -144,6 +148,9 @@ void loadTheme() {
|
||||
snprintf(path, MAX_PATH_LENGTH, "ux0:VitaShell/theme/%s/context.png", theme_name);
|
||||
context_image = vita2d_load_PNG_file(path);
|
||||
|
||||
snprintf(path, MAX_PATH_LENGTH, "ux0:VitaShell/theme/%s/context_more.png", theme_name);
|
||||
context_more_image = vita2d_load_PNG_file(path);
|
||||
|
||||
snprintf(path, MAX_PATH_LENGTH, "ux0:VitaShell/theme/%s/battery.png", theme_name);
|
||||
battery_image = vita2d_load_PNG_file(path);
|
||||
|
||||
@ -241,6 +248,19 @@ void loadTheme() {
|
||||
}
|
||||
}
|
||||
|
||||
if (!context_more_image) {
|
||||
context_more_image = vita2d_create_empty_texture(SCREEN_WIDTH, SCREEN_HEIGHT);
|
||||
void *data = vita2d_texture_get_datap(context_more_image);
|
||||
|
||||
int y;
|
||||
for (y = 0; y < SCREEN_HEIGHT; y++) {
|
||||
int x;
|
||||
for (x = 0; x < SCREEN_WIDTH; x++) {
|
||||
((uint32_t *)data)[x + SCREEN_WIDTH * y] = CONTEXT_MENU_MORE_COLOR;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!battery_image)
|
||||
battery_image = vita2d_load_PNG_buffer(&_binary_resources_battery_png_start);
|
||||
|
||||
|
4
theme.h
4
theme.h
@ -27,6 +27,7 @@ extern int TITLE_COLOR;
|
||||
extern int PATH_COLOR;
|
||||
extern int DATE_TIME_COLOR;
|
||||
extern int FOCUS_COLOR;
|
||||
extern int FILE_COLOR;
|
||||
extern int FOLDER_COLOR;
|
||||
extern int IMAGE_COLOR;
|
||||
extern int ARCHIVE_COLOR;
|
||||
@ -36,13 +37,14 @@ extern int MARKED_COLOR;
|
||||
extern int INVISIBLE_COLOR;
|
||||
extern int DIALOG_BG_COLOR;
|
||||
extern int CONTEXT_MENU_COLOR;
|
||||
extern int CONTEXT_MENU_MORE_COLOR;
|
||||
extern int PROGRESS_BAR_COLOR;
|
||||
extern int PROGRESS_BAR_BG_COLOR;
|
||||
extern int HEX_OFFSET_COLOR;
|
||||
extern int HEX_NIBBLE_COLOR;
|
||||
|
||||
extern vita2d_texture *folder_icon, *file_icon, *archive_icon, *image_icon, *audio_icon, *sfo_icon, *text_icon,
|
||||
*ftp_image, *dialog_image, *context_image, *battery_image, *battery_bar_red_image, *battery_bar_green_image,
|
||||
*ftp_image, *dialog_image, *context_image, *context_more_image, *battery_image, *battery_bar_red_image, *battery_bar_green_image,
|
||||
*battery_bar_charge_image, *bg_browser_image, *bg_hex_image, *bg_text_image, *bg_photo_image;
|
||||
|
||||
extern vita2d_texture *wallpaper_image[MAX_WALLPAPERS];
|
||||
|
Loading…
x
Reference in New Issue
Block a user