X-Git-Url: https://harishankar.org/repos/?p=resumebuilder.git;a=blobdiff_plain;f=resumebuilder.go;h=5e86a783ac78dff76a947a493bd5023bbae0376f;hp=82186cc1acd7c4f18c48d1ae05c50a9407903750;hb=cce2be1a25bd89da0526695336bd6e6597318d8d;hpb=fe908b8a22c42cde9132182fd8448040e002d828 diff --git a/resumebuilder.go b/resumebuilder.go index 82186cc..5e86a78 100644 --- a/resumebuilder.go +++ b/resumebuilder.go @@ -8,11 +8,17 @@ import ( ) type Applicant struct { - FirstName string - LastName string - Age int - Sex Sex - Education []Education + FirstName string + LastName string + DateOfBirth Date + Sex Sex + Education []Education +} + +type Date struct { + Year uint + Month uint + Day uint } type Education struct { @@ -24,6 +30,8 @@ type Education struct { type Sex int var ui *gtk.Builder +var selectedsex Sex +var selecteddate Date const ( Male Sex = 1 @@ -46,6 +54,7 @@ const ( } */ func getBasicDetails() (*Applicant, error) { + // Retrieve all the fields. obj, err := ui.GetObject("FirstName") if err != nil { return nil, err @@ -71,10 +80,18 @@ func getBasicDetails() (*Applicant, error) { 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.DateOfBirth = selecteddate + applicant.Sex = selectedsex return applicant, nil } @@ -108,24 +125,29 @@ func getSaveButton() (*gtk.Button, error) { func LoadMain() { gtk.Init(nil) var err error - ui, err = gtk.BuilderNewFromFile("resumebuilder.glade") + ui, err = gtk.BuilderNew() if err != nil { fmt.Println(err.Error()) os.Exit(1) } - - wnd, err := getWindow() + asset, err := Asset("resources/resumebuilder.glade") if err != nil { + fmt.Println(err.Error()) os.Exit(1) } + ui.AddFromString(string(asset)) + ui.ConnectSignals(map[string]interface{}{"SexMaleSelected": sexMaleSelected, + "SexFemaleSelected": sexFemaleSelected, "SexOtherSelected": sexOtherSelected, + "SaveButtonClicked": SaveButtonClicked, "DoBSelected": doBSelected}) - btn, err := getSaveButton() + wnd, err := getWindow() if err != nil { os.Exit(1) } - btn.Connect("clicked", SaveButtonClicked) + wnd.SetTitle("Resume Builder") wnd.ShowAll() + selectedsex = Male wnd.Connect("destroy", func() { gtk.MainQuit() @@ -133,6 +155,28 @@ 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 doBSelected(dob *gtk.Calendar) { + selecteddate.Year, selecteddate.Month, selecteddate.Day = dob.GetDate() +} + func SaveButtonClicked() { a, err := getBasicDetails() if err != nil {