changed inputs for second section and implemented Clone and Copy traits for Alignment data structure
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
use gtk4 as gtk;
|
||||
|
||||
use gtk::{Align};
|
||||
use gtk::builders::*;
|
||||
use gtk::Align;
|
||||
|
||||
/**
|
||||
* Types
|
||||
@@ -13,7 +13,7 @@ pub type Margin = (i32, i32, i32, i32);
|
||||
* Enums
|
||||
*/
|
||||
|
||||
pub enum MarginData{
|
||||
pub enum MarginData {
|
||||
EqualsMargin(i32),
|
||||
MultipleMargin(Margin),
|
||||
}
|
||||
@@ -26,40 +26,41 @@ pub enum MarginData{
|
||||
|
||||
pub struct Size {
|
||||
pub width: i32,
|
||||
pub height: i32
|
||||
pub height: i32,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone)]
|
||||
pub struct Alignment {
|
||||
pub horizontal: Align,
|
||||
pub vertical : Align
|
||||
pub vertical: Align,
|
||||
}
|
||||
|
||||
/**
|
||||
* Traits
|
||||
*/
|
||||
|
||||
pub trait Setters{
|
||||
pub trait Setters {
|
||||
fn set_margin(self, margin: MarginData) -> Self;
|
||||
fn set_align(self, align: Alignment) -> Self;
|
||||
}
|
||||
|
||||
pub trait TextViewSetters{
|
||||
pub trait TextViewSetters {
|
||||
fn set_text_view_margin(self, margin: MarginData) -> Self;
|
||||
}
|
||||
|
||||
impl TextViewSetters for TextViewBuilder{
|
||||
fn set_text_view_margin(self, margin: MarginData) -> Self{
|
||||
match margin{
|
||||
MarginData::EqualsMargin(margin) =>
|
||||
self.top_margin(margin)
|
||||
.left_margin(margin)
|
||||
.bottom_margin(margin)
|
||||
.right_margin(margin),
|
||||
MarginData::MultipleMargin(margins) =>
|
||||
self.top_margin(margins.0)
|
||||
.left_margin(margins.1)
|
||||
.bottom_margin(margins.2)
|
||||
.right_margin(margins.3),
|
||||
impl TextViewSetters for TextViewBuilder {
|
||||
fn set_text_view_margin(self, margin: MarginData) -> Self {
|
||||
match margin {
|
||||
MarginData::EqualsMargin(margin) => self
|
||||
.top_margin(margin)
|
||||
.left_margin(margin)
|
||||
.bottom_margin(margin)
|
||||
.right_margin(margin),
|
||||
MarginData::MultipleMargin(margins) => self
|
||||
.top_margin(margins.0)
|
||||
.left_margin(margins.1)
|
||||
.bottom_margin(margins.2)
|
||||
.right_margin(margins.3),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -95,24 +96,25 @@ macro_rules! impl_setters {
|
||||
}
|
||||
}
|
||||
|
||||
impl_setters!{ButtonBuilder, EntryBuilder, TextViewBuilder,
|
||||
impl_setters! {ButtonBuilder, EntryBuilder, TextViewBuilder,
|
||||
BoxBuilder, SwitchBuilder, FrameBuilder, LabelBuilder}
|
||||
|
||||
#[allow(dead_code)]
|
||||
impl Size{
|
||||
pub fn new(w: i32, h: i32) -> Size{
|
||||
Size{
|
||||
impl Size {
|
||||
pub fn new(w: i32, h: i32) -> Size {
|
||||
Size {
|
||||
width: w,
|
||||
height: h,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Alignment{
|
||||
pub fn new(horizontal: Align, vertical : Align) -> Alignment{
|
||||
Alignment{
|
||||
impl Alignment {
|
||||
pub fn new(horizontal: Align, vertical: Align) -> Alignment {
|
||||
Alignment {
|
||||
horizontal,
|
||||
vertical,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user