import (
"fmt"
"os"
+ "strconv"
"github.com/gotk3/gotk3/gtk"
)
type Sex int
+var ui *gtk.Builder
+var selectedsex Sex
+
const (
Male Sex = 1
Female = 2
}
} */
-func getWindow(ui gtk.Builder) (*gtk.Window, error) {
+func getBasicDetails() (*Applicant, error) {
+ // Retrieve all the fields.
+ obj, err := ui.GetObject("FirstName")
+ if err != nil {
+ return nil, err
+ }
+ fsname, ok := obj.(*gtk.Entry)
+ if !ok {
+ return nil, err
+ }
+ firstname, err := fsname.GetText()
+ if err != nil {
+ return nil, err
+ }
+ obj, err = ui.GetObject("LastName")
+ if err != nil {
+ return nil, err
+ }
+ lsname, ok := obj.(*gtk.Entry)
+ if !ok {
+ return nil, err
+ }
+ lastname, err := lsname.GetText()
+ if err != nil {
+ 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
+}
+
+func getWindow() (*gtk.Window, error) {
obj, err := ui.GetObject("MainWindow")
if err != nil {
fmt.Println(err.Error())
return wnd, nil
}
-func LoadMain() {
- gtk.Init(nil)
- ui, err := gtk.BuilderNewFromFile("resumebuilder.glade")
+func getSaveButton() (*gtk.Button, error) {
+ btnobj, err := ui.GetObject("SaveButton")
if err != nil {
fmt.Println(err.Error())
- os.Exit(1)
+ return nil, err
}
+ btn, ok := btnobj.(*gtk.Button)
+ if !ok {
+ return nil, err
+ }
+ return btn, nil
+}
- wnd, err := getWindow(*ui)
+func LoadMain() {
+ gtk.Init(nil)
+ var err error
+ ui, err = gtk.BuilderNew()
if err != nil {
+ fmt.Println(err.Error())
os.Exit(1)
}
-
- btnobj, err := ui.GetObject("SaveButton")
+ asset, err := Asset("resources/resumebuilder.glade")
if err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
- btn, ok := btnobj.(*gtk.Button)
- if !ok {
+ 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.Connect("clicked", SaveButtonClicked)
+
wnd.SetTitle("Resume Builder")
wnd.ShowAll()
+ selectedsex = Male
wnd.Connect("destroy", func() {
gtk.MainQuit()
gtk.Main()
}
-func SaveButtonClicked() {
+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 {
+ fmt.Println(err.Error())
+ os.Exit(1)
+ }
+ fmt.Println(*a)
}
func main() {