From a11ca66819da969ba7f1b8d42b269c1cb40312c4 Mon Sep 17 00:00:00 2001 From: Sijmen Schoon Date: Wed, 28 Nov 2018 02:13:56 +0100 Subject: [PATCH] Add some commentoriorio --- src/palette_editor.rs | 11 ++++++++++- src/sprite_editor.rs | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/palette_editor.rs b/src/palette_editor.rs index 56069da..09059fd 100644 --- a/src/palette_editor.rs +++ b/src/palette_editor.rs @@ -35,6 +35,8 @@ impl Widget for PaletteEditorWidget { fn init_view(&mut self) { self.model.draw_handler.init(&self.drawing_area); + + // Tell the DrawingArea that we're interested in ButtonPress events. self.drawing_area .add_events(gdk::EventMask::BUTTON_PRESS_MASK.bits() as i32); } @@ -69,6 +71,7 @@ impl Widget for PaletteEditorWidget { } PaletteEditorMsg::ButtonPress(event) => { + // Calculate the palette index from the mouse coordinates. let scale = self.get_scale(); let (x, y) = event.get_coords().unwrap(); @@ -77,6 +80,7 @@ impl Widget for PaletteEditorWidget { return; } + // Open the ColorChooserDialog. if let Some(window) = &self.model.window { let dialog = gtk::ColorChooserDialog::new(Some("Select a color"), Some(window)); dialog.set_rgba(&util::palette_to_gdk_rgba(&self.model.palette, i)); @@ -84,6 +88,9 @@ impl Widget for PaletteEditorWidget { let result = dialog.run(); if result == gtk_sys::GTK_RESPONSE_OK { let new_color = util::gdk_rgba_to_r5g5b5(&dialog.get_rgba()); + + // Emit a PaletteUpdate message with the new color so + // all relevant widgets can update their palettes. self.model .relm .stream() @@ -113,7 +120,9 @@ impl Widget for PaletteEditorWidget { #[name="drawing_area"] gtk::DrawingArea { draw(_, _) => (PaletteEditorMsg::Draw, Inhibit(false)), - button_press_event(_, event) => (PaletteEditorMsg::ButtonPress(event.clone()), Inhibit(false)), + + button_press_event(_, event) => + (PaletteEditorMsg::ButtonPress(event.clone()), Inhibit(false)), } } } diff --git a/src/sprite_editor.rs b/src/sprite_editor.rs index ca0fde5..852bbf9 100644 --- a/src/sprite_editor.rs +++ b/src/sprite_editor.rs @@ -25,6 +25,8 @@ impl Widget for SpriteEditorWidget { fn model() -> SpriteEditorModel { SpriteEditorModel { draw_handler: DrawHandler::new().unwrap(), + + // TODO Replace with real sprite data. sprite_data: vec![ vec![0, 2, 2, 2, 2, 2, 2, 2], vec![0, 0, 0, 0, 14, 2, 14, 2], @@ -35,6 +37,7 @@ impl Widget for SpriteEditorWidget { vec![0, 0, 0, 2, 2, 2, 2, 14], vec![0, 0, 0, 0, 0, 10, 3, 3], ], + sprite_size: 8, palette: vec![0; 16], }