diff --git a/src/file_manager/main.rs b/src/file_manager/main.rs index 2a9562a76e2893bf7401b25e9be37b927b0cfff9..21030cb65839b1c3e73d9f041c7bdb92c3241891 100644 --- a/src/file_manager/main.rs +++ b/src/file_manager/main.rs @@ -110,36 +110,48 @@ impl FileTypesInfo { pub fn new() -> FileTypesInfo { let mut file_types = BTreeMap::<&'static str, FileType>::new(); file_types.insert("/", FileType::new("Folder", "inode-directory")); + + // Archives + file_types.insert("tar", FileType::new("TAR Archive", "package-x-generic")); + + // Audio formats file_types.insert("wav", FileType::new("WAV audio", "audio-x-generic")); - file_types.insert("bin", - FileType::new("Executable", "application-x-executable")); + + // Font formats + file_types.insert("ttf", FileType::new("TTF Font", "application-x-font-ttf")); + + // Image formats file_types.insert("bmp", FileType::new("Bitmap Image", "image-x-generic")); file_types.insert("jpg", FileType::new("JPG Image", "image-x-generic")); file_types.insert("jpeg", FileType::new("JPG Image", "image-x-generic")); file_types.insert("png", FileType::new("PNG Image", "image-x-generic")); - file_types.insert("rs", FileType::new("Rust source code", "text-x-makefile")); - file_types.insert("crate", - FileType::new("Rust crate", "application-x-archive")); - file_types.insert("rlib", - FileType::new("Static Rust library", "application-x-object")); - file_types.insert("asm", FileType::new("Assembly source", "text-x-makefile")); - file_types.insert("list", - FileType::new("Disassembly source", "text-x-makefile")); - file_types.insert("c", FileType::new("C source code", "text-x-csrc")); - file_types.insert("cpp", FileType::new("C++ source code", "text-x-c++src")); - file_types.insert("h", FileType::new("C header", "text-x-chdr")); + + // Text formats + file_types.insert("txt", FileType::new("Text file", "text-plain")); + + // Markdown formats + file_types.insert("md", FileType::new("Markdown file", "text-plain")); + + // Configuration formats + file_types.insert("conf", FileType::new("Config file", "text-plain")); + file_types.insert("json", FileType::new("JSON file", "text-plain")); + file_types.insert("toml", FileType::new("TOML file", "text-plain")); + + // C programming language formats + file_types.insert("c", FileType::new("C source", "text-x-c")); + file_types.insert("cpp", FileType::new("C++ source", "text-x-c")); + file_types.insert("h", FileType::new("C header", "text-x-c")); + + // Programming language formats + file_types.insert("asm", FileType::new("Assembly source", "text-x-script")); file_types.insert("ion", FileType::new("Ion script", "text-x-script")); + file_types.insert("lua", FileType::new("Lua script", "text-x-script")); file_types.insert("rc", FileType::new("Init script", "text-x-script")); + file_types.insert("rs", FileType::new("Rust source", "text-x-script")); file_types.insert("sh", FileType::new("Shell script", "text-x-script")); - file_types.insert("lua", FileType::new("Lua script", "text-x-script")); - file_types.insert("conf", FileType::new("Config file", "text-x-generic")); - file_types.insert("txt", FileType::new("Plain text file", "text-x-generic")); - file_types.insert("md", FileType::new("Markdown file", "text-x-generic")); - file_types.insert("toml", FileType::new("TOML file", "text-x-generic")); - file_types.insert("json", FileType::new("JSON file", "text-x-generic")); - file_types.insert("ttf", FileType::new("TrueType font", "application-x-font-ttf")); - file_types.insert("REDOX", FileType::new("Redox package", "text-x-generic")); + file_types.insert("", FileType::new("Unknown file", "unknown")); + FileTypesInfo { file_types: file_types, images: BTreeMap::new() } } @@ -230,7 +242,7 @@ fn load_icon(path: &Path) -> Image { Ok(icon) => icon, Err(err) => { println!("Failed to load icon {}: {}", path.display(), err); - Image::from_color(32, 32, Color::rgba(0, 0, 0, 0)) + Image::from_color(48, 48, Color::rgba(0, 0, 0, 0)) } } } @@ -286,7 +298,7 @@ impl FileManager { let row = 0; for column in self.columns.iter() { - let text_y = 32 * row as i32 + 8; + let text_y = 48 * row as i32 + 8; self.font.render(column.name, 16.0).draw(&mut self.window, column.x, text_y, Color::rgb(0, 0, 0)); if column.sort_predicate == self.sort_predicate { @@ -302,11 +314,11 @@ impl FileManager { fn draw_file_list(&mut self) { for (i, file) in self.files.iter().enumerate() { - let y = 32 * (i + 1) as i32; // Plus 1 because the header row is 0 + let y = 48 * (i + 1) as i32; // Plus 1 because the header row is 0 let text_color = if i as isize == self.selected { let width = self.window.width(); - self.window.rect(0, y, width, 32, Color::rgb(0x52, 0x94, 0xE2)); + self.window.rect(0, y, width, 48, Color::rgb(0x52, 0x94, 0xE2)); Color::rgb(255, 255, 255) } else { Color::rgb(0, 0, 0) @@ -418,7 +430,7 @@ impl FileManager { self.sort_files(); - self.columns[0].x = 42; + self.columns[0].x = 56; self.columns[1].x = self.columns[0].x + self.columns[0].width; self.columns[2].x = self.columns[1].x + self.columns[1].width; @@ -428,7 +440,7 @@ impl FileManager { let x = self.window.x(); let y = self.window.y(); let w = (self.columns[2].x + self.columns[2].width) as u32; - let h = ((self.files.len() + 1) * 32) as u32; // +1 for the header row + let h = ((self.files.len() + 1) * 48) as u32; // +1 for the header row self.window = Window::new(x, y, w, h, &path).unwrap(); @@ -537,8 +549,8 @@ impl FileManager { redraw = false; for (row, _) in self.files.iter().enumerate() { - if mouse_event.y >= 32 * (row as i32 + 1) && // +1 for the header row - mouse_event.y < 32 * (row as i32 + 2) { + if mouse_event.y >= 48 * (row as i32 + 1) && // +1 for the header row + mouse_event.y < 48 * (row as i32 + 2) { if row as isize != self.selected { self.selected = row as isize; redraw = true; @@ -547,7 +559,7 @@ impl FileManager { } if ! mouse_event.left_button && self.last_mouse_event.left_button { - if mouse_event.y < 32 { // Header row clicked + if mouse_event.y < 48 { // Header row clicked if mouse_event.x < self.columns[1].x as i32 { if self.sort_predicate != SortPredicate::Name { self.sort_predicate = SortPredicate::Name; diff --git a/src/launcher/main.rs b/src/launcher/main.rs index 39f76cf19a676bc17a3f819fbd302232f240be87..8c4390d7272a6899460c4ceb7e4aa75a01211303 100644 --- a/src/launcher/main.rs +++ b/src/launcher/main.rs @@ -133,18 +133,18 @@ fn draw_chooser(window: &mut Window, font: &Font, packages: &Vec<Package>, selec let mut y = 0; for (i, package) in packages.iter().enumerate() { if i as i32 == selected { - window.rect(0, y, w, 32, BAR_HIGHLIGHT_COLOR); + window.rect(0, y, w, 48, BAR_HIGHLIGHT_COLOR); } package.icon.draw(window, 0, y); - let mut c_x = 40; + let mut c_x = 56; for c in package.name.chars() { font.render(&c.to_string(), 16.0).draw(window, c_x as i32, y + 8, if i as i32 == selected { TEXT_HIGHLIGHT_COLOR } else { TEXT_COLOR }); c_x += 8; } - y += 32; + y += 48; } window.sync(); @@ -155,12 +155,12 @@ fn bar_main() { let packages = get_packages(); - let start = Image::from_path(format!("{}/icons/start.png", UI_PATH)).unwrap_or(Image::default()); + let start = Image::from_path(format!("{}/icons/places/start-here.png", UI_PATH)).unwrap_or(Image::default()); let shutdown = Image::from_path(format!("{}/icons/actions/system-log-out.png", UI_PATH)).unwrap_or(Image::default()); let (width, height) = orbclient::get_display_size().expect("launcher: failed to get display size"); - let mut window = Window::new(0, height as i32 - 32, width, 32, "").expect("launcher: failed to open window"); + let mut window = Window::new(0, height as i32 - 48, width, 48, "").expect("launcher: failed to open window"); let mut selected = -1; let mut last_left_button = false; @@ -215,8 +215,8 @@ fn bar_main() { let mut i = 0; if i == selected { - let start_h = packages.len() as u32 * 32; - let mut start_window = Window::new(0, height as i32 - 32 - start_h as i32, 320, start_h, "").unwrap(); + let start_h = packages.len() as u32 * 48; + let mut start_window = Window::new(0, height as i32 - 48 - start_h as i32, 320, start_h, "").unwrap(); let font = Font::find(None, None, None).unwrap(); let mut selected = -1; @@ -231,10 +231,10 @@ fn bar_main() { let mut y = 0; for (i, _package) in packages.iter().enumerate() { - if mouse_event.y >= y && mouse_event.y < y + 32 { + if mouse_event.y >= y && mouse_event.y < y + 48 { now_selected = i as i32; } - y += 32; + y += 48; } if now_selected != selected { @@ -245,14 +245,14 @@ fn bar_main() { if ! mouse_event.left_button && last_left_button { let mut y = 0; for package in packages.iter() { - if mouse_event.y >= y && mouse_event.y < y + 32 { + if mouse_event.y >= y && mouse_event.y < y + 48 { match Command::new(&package.binary).spawn() { Ok(child) => children.push(child), Err(err) => println!("launcher: failed to launch {}: {}", package.binary, err) } break 'start_choosing; } - y += 32; + y += 48; } } @@ -336,7 +336,7 @@ fn chooser_main(paths: env::Args) { }); if packages.len() > 1 { - let mut window = Window::new(-1, -1, 320, packages.len() as u32 * 32, path).expect("launcher: failed to open window"); + let mut window = Window::new(-1, -1, 320, packages.len() as u32 * 48, path).expect("launcher: failed to open window"); let font = Font::find(None, None, None).expect("launcher: failed to open font"); let mut selected = -1; @@ -351,10 +351,10 @@ fn chooser_main(paths: env::Args) { let mut y = 0; for (i, _package) in packages.iter().enumerate() { - if mouse_event.y >= y && mouse_event.y < y + 32 { + if mouse_event.y >= y && mouse_event.y < y + 48 { now_selected = i as i32; } - y += 32; + y += 48; } if now_selected != selected { @@ -365,13 +365,13 @@ fn chooser_main(paths: env::Args) { if ! mouse_event.left_button && last_left_button { let mut y = 0; for package in packages.iter() { - if mouse_event.y >= y && mouse_event.y < y + 32 { + if mouse_event.y >= y && mouse_event.y < y + 48 { if let Err(err) = Command::new(&package.binary).arg(path).spawn() { println!("launcher: failed to launch {}: {}", package.binary, err); } break 'choosing; } - y += 32; + y += 48; } }