func (cb ComboBox) Create(builder *Builder) error { if _, ok := cb.Model.([]string); ok && (cb.BindingMember != "" || cb.DisplayMember != "") { return errors.New("ComboBox.Create: BindingMember and DisplayMember must be empty for []string models.") } var w *walk.ComboBox var err error if cb.Editable { w, err = walk.NewComboBox(builder.Parent()) } else { w, err = walk.NewDropDownBox(builder.Parent()) } if err != nil { return err } return builder.InitWidget(cb, w, func() error { w.SetFormat(cb.Format) w.SetPrecision(cb.Precision) w.SetMaxLength(cb.MaxLength) if err := w.SetBindingMember(cb.BindingMember); err != nil { return err } if err := w.SetDisplayMember(cb.DisplayMember); err != nil { return err } if err := w.SetModel(cb.Model); err != nil { return err } if cb.OnCurrentIndexChanged != nil { w.CurrentIndexChanged().Attach(cb.OnCurrentIndexChanged) } if cb.AssignTo != nil { *cb.AssignTo = w } return nil }) }
func (cb ComboBox) Create(parent walk.Container) error { w, err := walk.NewComboBox(parent) if err != nil { return err } return InitWidget(cb, w, func() error { if _, ok := cb.Model.(walk.BindingValueProvider); !ok && cb.BindTo != "" { return errors.New("declarative.ComboBox: Data binding is only supported using a model that implements BindingValueProvider.") } if err := w.SetBindingMember(cb.BindTo); err != nil { return err } w.SetFormat(cb.Format) w.SetPrecision(cb.Precision) if err := w.SetModel(cb.Model); err != nil { return err } if cb.OnCurrentIndexChanged != nil { w.CurrentIndexChanged().Attach(cb.OnCurrentIndexChanged) } if cb.AssignTo != nil { *cb.AssignTo = w } return nil }) }
func (cb ComboBox) Create(builder *Builder) error { w, err := walk.NewComboBox(builder.Parent()) if err != nil { return err } return builder.InitWidget(cb, w, func() error { w.SetFormat(cb.Format) w.SetPrecision(cb.Precision) w.SetBindingMember(cb.BindingMember) w.SetDisplayMember(cb.DisplayMember) if err := w.SetModel(cb.Model); err != nil { return err } if cb.OnCurrentIndexChanged != nil { w.CurrentIndexChanged().Attach(cb.OnCurrentIndexChanged) } if cb.AssignTo != nil { *cb.AssignTo = w } return nil }) }
func (cb ComboBox) Create(builder *Builder) error { w, err := walk.NewComboBox(builder.Parent()) if err != nil { return err } return builder.InitWidget(cb, w, func() error { _, valueIsBindData := cb.Value.(bindData) if _, ok := cb.Model.(walk.BindingValueProvider); !ok && valueIsBindData { return errors.New("declarative.ComboBox: Data binding is only supported using a model that implements walk.BindingValueProvider.") } w.SetFormat(cb.Format) w.SetPrecision(cb.Precision) if err := w.SetModel(cb.Model); err != nil { return err } if cb.OnCurrentIndexChanged != nil { w.CurrentIndexChanged().Attach(cb.OnCurrentIndexChanged) } if cb.AssignTo != nil { *cb.AssignTo = w } return nil }) }
func (cb ComboBox) Create(parent walk.Container) error { w, err := walk.NewComboBox(parent) if err != nil { return err } return InitWidget(cb, w, func() error { w.SetFormat(cb.Format) w.SetPrecision(cb.Precision) if err := w.SetModel(cb.Model); err != nil { return err } if cb.OnCurrentIndexChanged != nil { w.CurrentIndexChanged().Attach(cb.OnCurrentIndexChanged) } if cb.AssignTo != nil { *cb.AssignTo = w } return nil }) }