diff --git a/BeadImager.exe~ b/BeadImager.exe~ deleted file mode 100644 index 353aa5e..0000000 Binary files a/BeadImager.exe~ and /dev/null differ diff --git a/canvas.go b/canvas.go index eefe338..e45ba27 100644 --- a/canvas.go +++ b/canvas.go @@ -13,18 +13,33 @@ type ( ) func CreateCanvasGroup(mw *MyMainWindow) { - log.Println("Creating canvas group...") - cg, _ := walk.NewGroupBox(mw.content) - cg.SetTitle("Canvas") - cg.SetAlignment(walk.AlignHNearVNear) - cg.SetLayout(walk.NewVBoxLayout()) - log.Println("Creating canvas...") - mw.canvasScroll, _ = walk.NewScrollView(cg) + cg, err := walk.NewGroupBox(mw.content) + if err != nil { + log.Println("Error creating canvas group: ", err) + } + err = cg.SetTitle("Canvas") + if err != nil { + log.Println("Error setting canvas group title: ", err) + } + err = cg.SetAlignment(walk.AlignHNearVNear) + if err != nil { + log.Println("Error setting canvas group alignment: ", err) + } + err = cg.SetLayout(walk.NewVBoxLayout()) + if err != nil { + log.Println("Error setting canvas group layout: ", err) + } + mw.canvasScroll, err = walk.NewScrollView(cg) + if err != nil { + log.Println("Error creating canvas scroll: ", err) + } vb := walk.NewVBoxLayout() - mw.canvasScroll.SetLayout(vb) - mw.canvasScroll.SetAlignment(walk.AlignHNearVNear) - //vb.SetMargins(walk.Margins{0, 0, 0, 0}) - //dw, _ := walk.NewCustomWidgetPixels(mw.canvasScroll, 0, mw.drawStuff) - //dw.SetClearsBackground(true) - //dw.SetInvalidatesOnResize(true) + err = mw.canvasScroll.SetLayout(vb) + if err != nil { + log.Println("Error setting canvas scroll layout: ", err) + } + err = mw.canvasScroll.SetAlignment(walk.AlignHNearVNear) + if err != nil { + log.Println("Error setting canvas scroll alignment: ", err) + } } diff --git a/color.go b/color.go index 516790d..d72d017 100644 --- a/color.go +++ b/color.go @@ -40,7 +40,6 @@ type ( ) func ShowBeads(mw *MyMainWindow, serie string) { - log.Println("Showing beads...") for _, bead := range mw.beads { bead.Color.SetVisible(false) for _, s := range bead.Series { @@ -80,10 +79,7 @@ func CreateBeadsGroup(mw *MyMainWindow) { func LoadBeads(mw *MyMainWindow) { for _, brand := range mw.pallette.Brand { if brand.BrandName == mw.brand_combo.Text() { - log.Println("Loading beads for brand: " + brand.BrandName + " ...") - log.Println("Loading beads for serie: " + mw.serie_combo.Text() + " ...") for _, bead := range brand.Colors { - log.Println("Loading bead: " + bead.ColorName + " ...") if !bead.Disabled { bc := NewBeadColor(mw, bead.ColorName, bead.ColorIndex, bead.Red, bead.Green, bead.Blue) for _, s := range bead.Series.Serie { @@ -108,7 +104,6 @@ func LoadBeads(mw *MyMainWindow) { func NewBeadColor(mw *MyMainWindow, name string, id int, red byte, green byte, blue byte) *BeadColor { var err error - log.Println("Creating bead color: " + name + " ...") cm, _ := walk.NewComposite(mw.colors) cm.SetAlignment(walk.AlignHNearVCenter) hb := walk.NewHBoxLayout() @@ -116,17 +111,15 @@ func NewBeadColor(mw *MyMainWindow, name string, id int, red byte, green byte, b cm.SetLayout(hb) color := new(BeadColor) color.Color = cm - log.Println("Bead color struct: ", color) color.SetBackgroundColor(walk.RGB(red, green, blue)) - log.Println("Creating checkbox") color.Checkbox, err = walk.NewCheckBox(cm) if err != nil { log.Panic(err) } - log.Println("Checkbox created") - log.Println("Setting checkbox name") - color.Checkbox.SetText(name) - log.Println("Checkbox name set") + err = color.Checkbox.SetText(name) + if err != nil { + log.Panic(err) + } walk.NewHSpacer(cm) color.add, err = walk.NewImageView(cm) if err != nil { @@ -146,7 +139,13 @@ func NewBeadColor(mw *MyMainWindow, name string, id int, red byte, green byte, b } } val := mw.addBeads(name, data, color.ColorID, color.backgroundColor, ret) - log.Println("Returned value: ", val) + if val == 1 { + log.Println("Accepted") + } else if val == 2 { + log.Println("Canceled") + } else { + log.Println("Returned value: ", val) + } } }) color.info, err = walk.NewImageView(cm) diff --git a/main.go b/main.go index df4d010..a07e320 100644 --- a/main.go +++ b/main.go @@ -30,7 +30,7 @@ type MyMainWindow struct { const ( AppName string = "BeadImager" - Version string = "0.3.7" + Version string = "0.3.8" CopyRight string = "©2022 Jan Lerking" STD_MESS string = "Ready" LogFile string = "BeadImager.log" @@ -92,167 +92,12 @@ func main() { SetupMainWindow(mw) log.Println("MainWindow created") CreatePallette(mw) - log.Println("Pallette created: ", mw.pallette) mw.brand_model = CreateBrandsList(mw) CreatePalletteGroup(mw) CreateBeadsGroup(mw) CreateCanvasGroup(mw) CreateProperties(mw) - /* - DD_Pallette := GroupBox{ - Title: "Pallette", - Layout: VBox{}, - Children: []Widget{ - Composite{ - Layout: HBox{MarginsZero: true}, - Children: []Widget{ - Label{ - Text: "Brand:", - }, - ComboBox{ - Alignment: AlignHFarVCenter, - AssignTo: &mw.brand_combo, - Model: mw.brand_model, - Value: ConfigBrand, - OnCurrentIndexChanged: func() { - if !brand_trigged { - log.Println("Brand changed to: ", mw.brand_combo.Text()) - mw.serie_model = CreateSeriesList(mw) - mw.serie_combo.SetModel(mw.serie_model) - mw.serie_combo.SetEnabled(true) - mw.serie_combo.SetText(ConfigSerie) - } - brand_trigged = true - }, - }, - }, - }, - Composite{ - Layout: HBox{MarginsZero: true}, - Children: []Widget{ - Label{ - Text: "Serie:", - }, - ComboBox{ - Alignment: AlignHFarVCenter, - AssignTo: &mw.serie_combo, - Enabled: false, - OnCurrentIndexChanged: func() { - if !serie_trigged { - log.Println("Serie changed to: ", mw.serie_combo.Text()) - LoadBeads(mw) - log.Println("Beads loaded: ", mw.beads) - mw.pegboard_model = CreatePegboardsList(mw) - mw.pegboard_combo.SetModel(mw.pegboard_model) - mw.pegboard_combo.SetEnabled(true) - } - serie_trigged = true - }, - }, - }, - }, - Composite{ - Layout: HBox{MarginsZero: true}, - Children: []Widget{ - Label{ - Text: "Pegboard:", - }, - ComboBox{ - Alignment: AlignHFarVCenter, - AssignTo: &mw.pegboard_combo, - Enabled: false, - OnCurrentIndexChanged: func() { - if !pegboard_trigged { - log.Println("Pegboard changed to: ", mw.pegboard_combo.Text()) - } - pegboard_trigged = true - }, - }, - }, - }, - }, - } - - DD_Beads := GroupBox{ - Title: "Beads", - Layout: VBox{}, - Children: []Widget{ - PushButton{ - Text: "Select all colors", - OnClicked: func() { - for _, c := range mw.beads { - c.Checkbox.SetChecked(true) - } - }, - }, - ScrollView{ - AssignTo: &mw.colors, - Layout: VBox{MarginsZero: true}, - }, - }, - } - - if _, err := (MainWindow{ - AssignTo: &mw.MainWindow, - Title: AppName + " " + Version, - MinSize: Size{800, 600}, - OnSizeChanged: func() { - if !settings_trigged { - ShowProperties(mw) - settings_trigged = true - } - }, - Layout: VBox{MarginsZero: true}, - Children: []Widget{ - Composite{ - AssignTo: &mw.leftPanel, - Layout: HBox{}, - Children: []Widget{ - Composite{ - Layout: VBox{MarginsZero: true}, - MaxSize: Size{280, 0}, - Children: []Widget{ - DD_Pallette, - DD_Beads, - }, - }, - GroupBox{ - Title: "Canvas", - Layout: VBox{}, - Children: []Widget{ - ScrollView{ - AssignTo: &mw.canvasScroll, - Layout: VBox{MarginsZero: true}, - Children: []Widget{ - CustomWidget{ - AssignTo: &mw.drawWidget, - ClearsBackground: true, - InvalidatesOnResize: true, - Paint: mw.drawStuff, - }, - }, - }, - }, - }, - GroupBox{ - Title: "Settings", - Layout: VBox{}, - MaxSize: Size{220, 0}, - Children: []Widget{ - ScrollView{ - AssignTo: &mw.propScroll, - Layout: VBox{MarginsZero: true}, - }, - }, - }, - }, - }, - }, - }.Run()); err != nil { - log.Fatal(err) - } - */ mw.MainWindow.Show() mw.MainWindow.Run() } diff --git a/pallette.go b/pallette.go index 4cba6a1..6d49675 100644 --- a/pallette.go +++ b/pallette.go @@ -174,7 +174,7 @@ func CreatePegboardsList(mw *MyMainWindow) { mw.Pegboards.Boards = append(mw.Pegboards.Boards, *pb) } } - log.Println("Pegboard: ", mw.Pegboards) + //log.Println("Pegboard: ", mw.Pegboards) } func CreateSeriesList(mw *MyMainWindow) []string { diff --git a/properties.go b/properties.go index dc34d61..5092179 100644 --- a/properties.go +++ b/properties.go @@ -39,110 +39,230 @@ func CreateProperties(mw *MyMainWindow) { } func CreateSettingsGroup(mw *MyMainWindow) { - log.Println("Setting up settings...") - mw.rightPanel, _ = walk.NewComposite(mw.content) + var err error + //log.Println("Setting up settings...") + mw.rightPanel, err = walk.NewComposite(mw.content) + if err != nil { + log.Println("Error creating right panel: ", err) + } vb := walk.NewVBoxLayout() - mw.rightPanel.SetLayout(vb) - vb.SetMargins(walk.Margins{0, 0, 0, 0}) + err = mw.rightPanel.SetLayout(vb) + if err != nil { + log.Println("Error setting right panel layout: ", err) + } + err = vb.SetMargins(walk.Margins{0, 0, 0, 0}) + if err != nil { + log.Println("Error setting right panel margins: ", err) + } mw.rightPanel.SetMinMaxSize(walk.Size{Width: 220, Height: 0}, walk.Size{Width: 220, Height: 0}) - sg, _ := walk.NewGroupBox(mw.rightPanel) - sg.SetTitle("Settings") - sg.SetAlignment(walk.AlignHNearVNear) + sg, err := walk.NewGroupBox(mw.rightPanel) + if err != nil { + log.Println("Error creating settings group: ", err) + } + err = sg.SetTitle("Settings") + if err != nil { + log.Println("Error setting settings group title: ", err) + } + err = sg.SetAlignment(walk.AlignHNearVNear) + if err != nil { + log.Println("Error setting settings group alignment: ", err) + } vb = walk.NewVBoxLayout() - sg.SetLayout(vb) - mw.propScroll, _ = walk.NewScrollView(sg) + err = sg.SetLayout(vb) + if err != nil { + log.Println("Error setting settings group layout: ", err) + } + mw.propScroll, err = walk.NewScrollView(sg) + if err != nil { + log.Println("Error creating property scroll: ", err) + } vb = walk.NewVBoxLayout() - mw.propScroll.SetLayout(vb) - vb.SetMargins(walk.Margins{0, 0, 0, 0}) + err = mw.propScroll.SetLayout(vb) + if err != nil { + log.Println("Error setting property scroll layout: ", err) + } + err = vb.SetMargins(walk.Margins{0, 0, 0, 0}) + if err != nil { + log.Println("Error setting property scroll margins: ", err) + } CreateColorProperties(mw) CreateScaleProperties(mw) CreateCanvasProperties(mw) } func CreateColorProperties(mw *MyMainWindow) { - log.Println("Creating color properties...") - mw.properties.propColor.property, _ = walk.NewComposite(mw.propScroll) - mw.properties.propColor.property.SetAlignment(walk.AlignHNearVNear) + var err error + //log.Println("Creating color properties...") + mw.properties.propColor.property, err = walk.NewComposite(mw.propScroll) + if err != nil { + log.Println("Error creating color property: ", err) + } + err = mw.properties.propColor.property.SetAlignment(walk.AlignHNearVNear) + if err != nil { + log.Println("Error setting color property alignment: ", err) + } vb := walk.NewVBoxLayout() - //vb.SetMargins(walk.Margins{5, 0, 5, 0}) - mw.properties.propColor.property.SetLayout(vb) - log.Println("Creating color label...") - lbl, _ := walk.NewTextLabel(mw.properties.propColor.property) - log.Println("Setting color label text...") - lbl.SetText("Color: ") - log.Println("Creating color background brush...") - bg, _ := walk.NewSolidColorBrush(walk.RGB(167, 45, 234)) - log.Println("Setting color background...") + err = mw.properties.propColor.property.SetLayout(vb) + if err != nil { + log.Println("Error setting color property layout: ", err) + } + lbl, err := walk.NewTextLabel(mw.properties.propColor.property) + if err != nil { + log.Println("Error creating color label: ", err) + } + err = lbl.SetText("Color: ") + if err != nil { + log.Println("Error setting color label text: ", err) + } + bg, err := walk.NewSolidColorBrush(walk.RGB(167, 45, 234)) + if err != nil { + log.Println("Error creating color brush: ", err) + } mw.properties.propColor.property.SetBackground(bg) } func CreateScaleProperties(mw *MyMainWindow) { - log.Println("Creating scale properties...") - mw.properties.propScale.property, _ = walk.NewComposite(mw.propScroll) - mw.properties.propScale.property.SetAlignment(walk.AlignHNearVNear) + var err error + mw.properties.propScale.property, err = walk.NewComposite(mw.propScroll) + if err != nil { + log.Println("Error creating scale property: ", err) + } + err = mw.properties.propScale.property.SetAlignment(walk.AlignHNearVNear) + if err != nil { + log.Println("Error setting scale property alignment: ", err) + } vb := walk.NewVBoxLayout() - //vb.SetMargins(walk.Margins{5, 0, 5, 0}) - mw.properties.propScale.property.SetLayout(vb) - grcom, _ := walk.NewComposite(mw.properties.propScale.property) - grcom.SetAlignment(walk.AlignHNearVNear) + err = mw.properties.propScale.property.SetLayout(vb) + if err != nil { + log.Println("Error setting scale property layout: ", err) + } + grcom, err := walk.NewComposite(mw.properties.propScale.property) + if err != nil { + log.Println("Error creating scale group: ", err) + } + err = grcom.SetAlignment(walk.AlignHNearVNear) + if err != nil { + log.Println("Error setting scale group alignment: ", err) + } hb := walk.NewVBoxLayout() - hb.SetMargins(walk.Margins{0, 0, 0, 0}) - grcom.SetLayout(hb) - log.Println("Creating scale label...") - lbl, _ := walk.NewTextLabel(grcom) - log.Println("Setting scale label text...") - lbl.SetText("Scale:") - log.Println("Creating scale slider...") - slider, _ := walk.NewSlider(grcom) - log.Println("Setting scale slider properties...") + err = hb.SetMargins(walk.Margins{0, 0, 0, 0}) + if err != nil { + log.Println("Error setting scale group margins: ", err) + } + err = grcom.SetLayout(hb) + if err != nil { + log.Println("Error setting scale group layout: ", err) + } + lbl, err := walk.NewTextLabel(grcom) + if err != nil { + log.Println("Error creating scale label: ", err) + } + err = lbl.SetText("Scale:") + if err != nil { + log.Println("Error setting scale label text: ", err) + } + slider, err := walk.NewSlider(grcom) + if err != nil { + log.Println("Error creating scale slider: ", err) + } slider.SetTracking(true) slider.SetRange(10, 200) - val, _ := strconv.Atoi(ConfigScale) + val, err := strconv.Atoi(ConfigScale) + if err != nil { + log.Println("Error converting scale config value to int: ", err) + } slider.SetValue(val) - sc, _ := walk.NewNumberEdit(grcom) + sc, err := walk.NewNumberEdit(grcom) + if err != nil { + log.Println("Error creating scale number edit: ", err) + } slider.ValueChanged().Attach(func() { log.Println("Scale slider value changed") nn := float64(slider.Value()) - log.Println("Setting scale number edit value to: ", nn) - sc.SetValue(nn) + err = sc.SetValue(nn) + if err != nil { + log.Println("Error setting scale number edit value: ", err) + } SetConfigScale(fmt.Sprintf("%0.0f", nn)) }) - sc.SetDecimals(0) - sc.SetRange(10, 200) + err = sc.SetDecimals(0) + if err != nil { + log.Println("Error setting scale number edit decimals: ", err) + } + err = sc.SetRange(10, 200) + if err != nil { + log.Println("Error setting scale number edit range: ", err) + } nn := float64(slider.Value()) - sc.SetValue(nn) + err = sc.SetValue(nn) + if err != nil { + log.Println("Error setting scale number edit value: ", err) + } sc.ValueChanged().Attach(func() { log.Println("Scale number edit value changed") nn := float64(sc.Value()) - log.Println("Setting scale slider value to: ", nn) slider.SetValue(int(nn)) SetConfigScale(fmt.Sprintf("%0.0f", nn)) }) - log.Println("Setting background color...") - bg, _ := walk.NewSolidColorBrush(walk.RGB(255, 255, 255)) + bg, err := walk.NewSolidColorBrush(walk.RGB(255, 255, 255)) + if err != nil { + log.Println("Error creating scale brush: ", err) + } mw.properties.propScale.property.SetBackground(bg) } func CreateCanvasProperties(mw *MyMainWindow) { - log.Println("Creating canvas properties...") - mw.properties.propCanvas.property, _ = walk.NewComposite(mw.propScroll) - mw.properties.propCanvas.property.SetAlignment(walk.AlignHNearVNear) + var err error + mw.properties.propCanvas.property, err = walk.NewComposite(mw.propScroll) + if err != nil { + log.Println("Error creating canvas property: ", err) + } + err = mw.properties.propCanvas.property.SetAlignment(walk.AlignHNearVNear) + if err != nil { + log.Println("Error setting canvas property alignment: ", err) + } vb := walk.NewVBoxLayout() - //vb.SetMargins(walk.Margins{5, 0, 5, 0}) - mw.properties.propCanvas.property.SetLayout(vb) - log.Println("Creating canvas label...") - lbl, _ := walk.NewTextLabel(mw.properties.propCanvas.property) - log.Println("Setting canvas label text...") - lbl.SetText("Canvas:") - grcom, _ := walk.NewComposite(mw.properties.propCanvas.property) - grcom.SetAlignment(walk.AlignHNearVNear) + err = mw.properties.propCanvas.property.SetLayout(vb) + if err != nil { + log.Println("Error setting canvas property layout: ", err) + } + lbl, err := walk.NewTextLabel(mw.properties.propCanvas.property) + if err != nil { + log.Println("Error creating canvas label: ", err) + } + err = lbl.SetText("Canvas:") + if err != nil { + log.Println("Error setting canvas label text: ", err) + } + grcom, err := walk.NewComposite(mw.properties.propCanvas.property) + if err != nil { + log.Println("Error creating canvas group: ", err) + } + err = grcom.SetAlignment(walk.AlignHNearVNear) + if err != nil { + log.Println("Error setting canvas group alignment: ", err) + } hb := walk.NewHBoxLayout() - hb.SetMargins(walk.Margins{0, 0, 0, 0}) - grcom.SetLayout(hb) - log.Println("Creating grid checkbox") - cb, _ := walk.NewCheckBox(grcom) - cb.SetAlignment(walk.AlignHNearVNear) - cb.SetText("Show grid") + err = hb.SetMargins(walk.Margins{0, 0, 0, 0}) + if err != nil { + log.Println("Error setting canvas group margins: ", err) + } + err = grcom.SetLayout(hb) + if err != nil { + log.Println("Error setting canvas group layout: ", err) + } + cb, err := walk.NewCheckBox(grcom) + if err != nil { + log.Println("Error creating canvas checkbox: ", err) + } + err = cb.SetAlignment(walk.AlignHNearVNear) + if err != nil { + log.Println("Error setting canvas checkbox alignment: ", err) + } + err = cb.SetText("Show grid") + if err != nil { + log.Println("Error setting canvas checkbox text: ", err) + } switch ConfigShowGrid { case "true": cb.SetChecked(true) @@ -157,21 +277,35 @@ func CreateCanvasProperties(mw *MyMainWindow) { SetConfigShowGrid("true") } }) - log.Println("Grid checkbox created") walk.NewHSpacer(grcom) - log.Println("Creating grid color button") - grcolb, _ := walk.NewPushButton(grcom) - cb.SetAlignment(walk.AlignHFarVNear) - grcolb.SetText("Grid color") + grcolb, err := walk.NewPushButton(grcom) + if err != nil { + log.Println("Error creating grid color button: ", err) + } + err = cb.SetAlignment(walk.AlignHFarVNear) + if err != nil { + log.Println("Error setting grid color button alignment: ", err) + } + err = grcolb.SetText("Grid color") + if err != nil { + log.Println("Error setting grid color button text: ", err) + } grcolb.Clicked().Attach(func() { log.Println("Grid color button clicked") mw.openImage() }) - log.Println("Grid color button created") - log.Println("Creating pixels checkbox") - cb, _ = walk.NewCheckBox(mw.properties.propCanvas.property) - cb.SetAlignment(walk.AlignHNearVNear) - cb.SetText("Show pixels as beads") + cb, err = walk.NewCheckBox(mw.properties.propCanvas.property) + if err != nil { + log.Println("Error creating pixels checkbox: ", err) + } + err = cb.SetAlignment(walk.AlignHNearVNear) + if err != nil { + log.Println("Error setting pixels checkbox alignment: ", err) + } + err = cb.SetText("Show pixels as beads") + if err != nil { + log.Println("Error setting pixels checkbox text: ", err) + } switch ConfigShowBeads { case "true": cb.SetChecked(true) @@ -186,16 +320,25 @@ func CreateCanvasProperties(mw *MyMainWindow) { SetConfigShowBeads("true") } }) - log.Println("Pixels checkbox created") - log.Println("Creating canvas background color button") - grcolb, _ = walk.NewPushButton(mw.properties.propCanvas.property) - grcolb.SetAlignment(walk.AlignHFarVNear) - grcolb.SetText("Background color") + grcolb, err = walk.NewPushButton(mw.properties.propCanvas.property) + if err != nil { + log.Println("Error creating background color button: ", err) + } + err = grcolb.SetAlignment(walk.AlignHFarVNear) + if err != nil { + log.Println("Error setting background color button alignment: ", err) + } + err = grcolb.SetText("Background color") + if err != nil { + log.Println("Error setting background color button text: ", err) + } grcolb.Clicked().Attach(func() { log.Println("Background color button clicked") mw.openImage() }) - log.Println("Background color button created") - bg, _ := walk.NewSolidColorBrush(walk.RGB(255, 255, 255)) + bg, err := walk.NewSolidColorBrush(walk.RGB(255, 255, 255)) + if err != nil { + log.Println("Error creating canvas brush: ", err) + } mw.properties.propCanvas.property.SetBackground(bg) }