Merge branch 'targets' into 'master'
buttons: Buttons are next to each other, padding is visual only Closes #110 See merge request Librem5/squeekboard!209
This commit is contained in:
		@ -321,8 +321,7 @@ pub mod c {
 | 
			
		||||
                        .map(|button| button.bounds.clone())
 | 
			
		||||
                        .collect()
 | 
			
		||||
                }).collect();
 | 
			
		||||
                let spacing = view.spacing.clone();
 | 
			
		||||
                view.place_buttons_with_sizes(sizes, spacing);
 | 
			
		||||
                view.place_buttons_with_sizes(sizes);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -433,10 +432,6 @@ pub mod c {
 | 
			
		||||
                        x: 0f64, y: 0f64,
 | 
			
		||||
                        width: 0f64, height: 0f64
 | 
			
		||||
                    },
 | 
			
		||||
                    spacing: Spacing {
 | 
			
		||||
                        button: 0f64,
 | 
			
		||||
                        row: 0f64,
 | 
			
		||||
                    },
 | 
			
		||||
                    rows: vec!(row),
 | 
			
		||||
                };
 | 
			
		||||
 | 
			
		||||
@ -456,10 +451,6 @@ pub mod c {
 | 
			
		||||
                        x: 0f64, y: 0f64,
 | 
			
		||||
                        width: 0f64, height: 0f64
 | 
			
		||||
                    },
 | 
			
		||||
                    spacing: Spacing {
 | 
			
		||||
                        button: 0f64,
 | 
			
		||||
                        row: 0f64,
 | 
			
		||||
                    },
 | 
			
		||||
                    rows: Vec::new(),
 | 
			
		||||
                };
 | 
			
		||||
                assert_eq!(
 | 
			
		||||
@ -595,9 +586,7 @@ impl Row {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    fn calculate_button_positions(outlines: Vec<c::Bounds>, button_spacing: f64)
 | 
			
		||||
        -> Vec<c::Bounds>
 | 
			
		||||
    {
 | 
			
		||||
    fn calculate_button_positions(outlines: Vec<c::Bounds>) -> Vec<c::Bounds> {
 | 
			
		||||
        let mut x_offset = 0f64;
 | 
			
		||||
        outlines.iter().map(|outline| {
 | 
			
		||||
            x_offset += outline.x; // account for offset outlines
 | 
			
		||||
@ -605,7 +594,7 @@ impl Row {
 | 
			
		||||
                x: x_offset,
 | 
			
		||||
                ..outline.clone()
 | 
			
		||||
            };
 | 
			
		||||
            x_offset += outline.width + button_spacing;
 | 
			
		||||
            x_offset += outline.width;
 | 
			
		||||
            position
 | 
			
		||||
        }).collect()
 | 
			
		||||
    }
 | 
			
		||||
@ -653,7 +642,6 @@ pub struct Spacing {
 | 
			
		||||
pub struct View {
 | 
			
		||||
    /// Position relative to keyboard origin
 | 
			
		||||
    pub bounds: c::Bounds,
 | 
			
		||||
    pub spacing: Spacing,
 | 
			
		||||
    pub rows: Vec<Box<Row>>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -665,9 +653,7 @@ impl View {
 | 
			
		||||
    /// and derive a scaling factor that lets contents fit into view)
 | 
			
		||||
    /// (or TODO: blow up view bounds to match contents
 | 
			
		||||
    /// and then scale the entire thing)
 | 
			
		||||
    fn calculate_row_positions(&self, sizes: Vec<Size>, row_spacing: f64)
 | 
			
		||||
        -> Vec<c::Bounds>
 | 
			
		||||
    {
 | 
			
		||||
    fn calculate_row_positions(&self, sizes: Vec<Size>) -> Vec<c::Bounds> {
 | 
			
		||||
        let mut y_offset = self.bounds.y;
 | 
			
		||||
        sizes.into_iter().map(|size| {
 | 
			
		||||
            let position = c::Bounds {
 | 
			
		||||
@ -676,7 +662,7 @@ impl View {
 | 
			
		||||
                width: size.width,
 | 
			
		||||
                height: size.height,
 | 
			
		||||
            };
 | 
			
		||||
            y_offset += size.height + row_spacing;
 | 
			
		||||
            y_offset += size.height;
 | 
			
		||||
            position
 | 
			
		||||
        }).collect()
 | 
			
		||||
    }
 | 
			
		||||
@ -686,13 +672,12 @@ impl View {
 | 
			
		||||
    fn place_buttons_with_sizes(
 | 
			
		||||
        &mut self,
 | 
			
		||||
        button_outlines: Vec<Vec<c::Bounds>>,
 | 
			
		||||
        spacing: Spacing,
 | 
			
		||||
    ) {
 | 
			
		||||
        // Determine all positions
 | 
			
		||||
        let button_positions: Vec<_>
 | 
			
		||||
            = button_outlines.into_iter()
 | 
			
		||||
                .map(|outlines| {
 | 
			
		||||
                    Row::calculate_button_positions(outlines, spacing.button)
 | 
			
		||||
                    Row::calculate_button_positions(outlines)
 | 
			
		||||
                })
 | 
			
		||||
                .collect();
 | 
			
		||||
        
 | 
			
		||||
@ -701,7 +686,7 @@ impl View {
 | 
			
		||||
            .collect();
 | 
			
		||||
 | 
			
		||||
        let row_positions
 | 
			
		||||
            = self.calculate_row_positions(row_sizes, spacing.row);
 | 
			
		||||
            = self.calculate_row_positions(row_sizes);
 | 
			
		||||
 | 
			
		||||
        // Apply all positions
 | 
			
		||||
        for ((mut row, row_position), button_positions)
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user