Basic details page connected signals
[resumebuilder.git] / resumebuilder.go
index 88fe6a6..09057c6 100644 (file)
@@ -3,6 +3,7 @@ package main
 import (
        "fmt"
        "os"
+       "strconv"
 
        "github.com/gotk3/gotk3/gtk"
 )
@@ -24,6 +25,7 @@ type Education struct {
 type Sex int
 
 var ui *gtk.Builder
+var selectedsex Sex
 
 const (
        Male   Sex = 1
@@ -46,6 +48,7 @@ const (
 } */
 
 func getBasicDetails() (*Applicant, error) {
+       // Retrieve all the fields.
        obj, err := ui.GetObject("FirstName")
        if err != nil {
                return nil, err
@@ -71,10 +74,34 @@ func getBasicDetails() (*Applicant, error) {
                return nil, err
        }
 
+       obj, err = ui.GetObject("Age")
+       if err != nil {
+               return nil, err
+       }
+       agectl, ok := obj.(*gtk.Entry)
+       if !ok {
+               return nil, err
+       }
+       agetxt, err := agectl.GetText()
+       if err != nil {
+               return nil, err
+       }
+       age, err := strconv.Atoi(agetxt)
+       if err != nil {
+               return nil, err
+       }
+       obj, err = ui.GetObject("Male")
+       if err != nil {
+               return nil, err
+       }
+
+       // Store the contents in Applicant object
        var applicant = new(Applicant)
 
        applicant.FirstName = firstname
        applicant.LastName = lastname
+       applicant.Age = age
+       applicant.Sex = selectedsex
 
        return applicant, nil
 }
@@ -119,19 +146,18 @@ func LoadMain() {
                os.Exit(1)
        }
        ui.AddFromString(string(asset))
+       ui.ConnectSignals(map[string]interface{}{"SexMaleSelected": sexMaleSelected,
+               "SexFemaleSelected": sexFemaleSelected, "SexOtherSelected": sexOtherSelected,
+               "SaveButtonClicked": SaveButtonClicked})
 
        wnd, err := getWindow()
        if err != nil {
                os.Exit(1)
        }
 
-       btn, err := getSaveButton()
-       if err != nil {
-               os.Exit(1)
-       }
-       btn.Connect("clicked", SaveButtonClicked)
        wnd.SetTitle("Resume Builder")
        wnd.ShowAll()
+       selectedsex = Male
 
        wnd.Connect("destroy", func() {
                gtk.MainQuit()
@@ -139,6 +165,24 @@ func LoadMain() {
        gtk.Main()
 }
 
+func sexMaleSelected(male *gtk.RadioButton) {
+       if male.GetActive() {
+               selectedsex = Male
+       }
+}
+
+func sexFemaleSelected(female *gtk.RadioButton) {
+       if female.GetActive() {
+               selectedsex = Female
+       }
+}
+
+func sexOtherSelected(other *gtk.RadioButton) {
+       if other.GetActive() {
+               selectedsex = Other
+       }
+}
+
 func SaveButtonClicked() {
        a, err := getBasicDetails()
        if err != nil {