diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-02-28 08:11:13 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-08 10:52:27 +0200 |
commit | 0be6669944ff8e28fc352bd4714661917abca0b3 (patch) | |
tree | 55b6f75acc5cc805f7d106818ccc04517bb7b63b | |
parent | Merge pull request #510 from zx2c4-forks/jd/forgottableviewcolumn (diff) | |
download | wireguard-windows-0be6669944ff8e28fc352bd4714661917abca0b3.tar.xz wireguard-windows-0be6669944ff8e28fc352bd4714661917abca0b3.zip |
declarative: remove
49 files changed, 0 insertions, 5503 deletions
diff --git a/declarative/action.go b/declarative/action.go deleted file mode 100644 index ca8e2465..00000000 --- a/declarative/action.go +++ /dev/null @@ -1,223 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "fmt" -) - -import ( - "strconv" - - "github.com/lxn/walk" -) - -type Shortcut struct { - Modifiers walk.Modifiers - Key walk.Key -} - -type Action struct { - AssignTo **walk.Action - Text string - Image interface{} - Checked Property - Enabled Property - Visible Property - Shortcut Shortcut - OnTriggered walk.EventHandler - Checkable bool -} - -func (a Action) createAction(builder *Builder, menu *walk.Menu) (*walk.Action, error) { - action := walk.NewAction() - - if a.AssignTo != nil { - *a.AssignTo = action - } - - if err := action.SetText(a.Text); err != nil { - return nil, err - } - if err := setActionImage(action, a.Image); err != nil { - return nil, err - } - - if err := setActionBoolOrCondition(action.SetChecked, action.SetCheckedCondition, a.Checked, "Action.Checked", builder); err != nil { - return nil, err - } - if err := setActionBoolOrCondition(action.SetEnabled, action.SetEnabledCondition, a.Enabled, "Action.Enabled", builder); err != nil { - return nil, err - } - if err := setActionBoolOrCondition(action.SetVisible, action.SetVisibleCondition, a.Visible, "Action.Visible", builder); err != nil { - return nil, err - } - - if err := action.SetCheckable(a.Checkable || action.CheckedCondition() != nil); err != nil { - return nil, err - } - - s := a.Shortcut - if err := action.SetShortcut(walk.Shortcut{s.Modifiers, s.Key}); err != nil { - return nil, err - } - - if a.OnTriggered != nil { - action.Triggered().Attach(a.OnTriggered) - } - - if menu != nil { - if err := menu.Actions().Add(action); err != nil { - return nil, err - } - } - - return action, nil -} - -type ActionRef struct { - Action **walk.Action -} - -func (ar ActionRef) createAction(builder *Builder, menu *walk.Menu) (*walk.Action, error) { - if menu != nil { - if err := menu.Actions().Add(*ar.Action); err != nil { - return nil, err - } - } - - return *ar.Action, nil -} - -type Menu struct { - AssignTo **walk.Menu - AssignActionTo **walk.Action - Text string - Image interface{} - Enabled Property - Visible Property - Items []MenuItem - OnTriggered walk.EventHandler -} - -func (m Menu) createAction(builder *Builder, menu *walk.Menu) (*walk.Action, error) { - subMenu, err := walk.NewMenu() - if err != nil { - return nil, err - } - - var action *walk.Action - if menu == nil { - action = walk.NewMenuAction(subMenu) - } else if action, err = menu.Actions().AddMenu(subMenu); err != nil { - return nil, err - } - - if err := action.SetText(m.Text); err != nil { - return nil, err - } - if err := setActionImage(action, m.Image); err != nil { - return nil, err - } - - if err := setActionBoolOrCondition(action.SetEnabled, action.SetEnabledCondition, m.Enabled, "Menu.Enabled", builder); err != nil { - return nil, err - } - if err := setActionBoolOrCondition(action.SetVisible, action.SetVisibleCondition, m.Visible, "Menu.Visible", builder); err != nil { - return nil, err - } - - for _, item := range m.Items { - if _, err := item.createAction(builder, subMenu); err != nil { - return nil, err - } - } - - if m.OnTriggered != nil { - action.Triggered().Attach(m.OnTriggered) - } - - if m.AssignActionTo != nil { - *m.AssignActionTo = action - } - if m.AssignTo != nil { - *m.AssignTo = subMenu - } - - return action, nil -} - -type Separator struct { -} - -func (s Separator) createAction(builder *Builder, menu *walk.Menu) (*walk.Action, error) { - action := walk.NewSeparatorAction() - - if menu != nil { - if err := menu.Actions().Add(action); err != nil { - return nil, err - } - } - - return action, nil -} - -func addToActionList(list *walk.ActionList, actions []*walk.Action) error { - for _, a := range actions { - if err := list.Add(a); err != nil { - return err - } - } - - return nil -} - -func setActionImage(action *walk.Action, image interface{}) (err error) { - var bm *walk.Bitmap - - switch image := image.(type) { - case nil: - return nil - - case *walk.Bitmap: - bm = image - - case int: - var err error - if bm, err = walk.Resources.Bitmap(strconv.Itoa(image)); err != nil { - return err - } - - case string: - if bm, err = walk.Resources.Bitmap(image); err != nil { - return - } - - default: - return walk.ErrInvalidType - } - - return action.SetImage(bm) -} - -func setActionBoolOrCondition(setBool func(bool) error, setCond func(walk.Condition), value Property, path string, builder *Builder) error { - if value != nil { - if b, ok := value.(bool); ok { - if err := setBool(b); err != nil { - return err - } - } else if s := builder.conditionOrProperty(value); s != nil { - if c, ok := s.(walk.Condition); ok { - setCond(c) - } else { - return fmt.Errorf("value of invalid type bound to %s: %T", path, s) - } - } - } - - return nil -} diff --git a/declarative/brush.go b/declarative/brush.go deleted file mode 100644 index 46152802..00000000 --- a/declarative/brush.go +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2017 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" - "strconv" -) - -type TransparentBrush struct { -} - -func (TransparentBrush) Create() (walk.Brush, error) { - return walk.NullBrush(), nil -} - -type SolidColorBrush struct { - Color walk.Color -} - -func (scb SolidColorBrush) Create() (walk.Brush, error) { - return walk.NewSolidColorBrush(scb.Color) -} - -type SystemColorBrush struct { - Color walk.SystemColor -} - -func (scb SystemColorBrush) Create() (walk.Brush, error) { - return walk.NewSystemColorBrush(scb.Color) -} - -type BitmapBrush struct { - Image interface{} -} - -func (bb BitmapBrush) Create() (walk.Brush, error) { - var bmp *walk.Bitmap - var err error - - switch img := bb.Image.(type) { - case *walk.Bitmap: - bmp = img - - case string: - if bmp, err = walk.Resources.Bitmap(img); err != nil { - return nil, err - } - - case int: - if bmp, err = walk.Resources.Bitmap(strconv.Itoa(img)); err != nil { - return nil, err - } - - default: - return nil, walk.ErrInvalidType - } - - return walk.NewBitmapBrush(bmp) -} - -type GradientBrush struct { - Vertexes []walk.GradientVertex - Triangles []walk.GradientTriangle -} - -func (gb GradientBrush) Create() (walk.Brush, error) { - return walk.NewGradientBrush(gb.Vertexes, gb.Triangles) -} diff --git a/declarative/builder.go b/declarative/builder.go deleted file mode 100644 index da0a7788..00000000 --- a/declarative/builder.go +++ /dev/null @@ -1,750 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "fmt" - "reflect" - "regexp" -) - -import ( - "log" - "strings" - - "github.com/lxn/walk" - "gopkg.in/Knetic/govaluate.v3" -) - -var ( - conditionsByName = make(map[string]walk.Condition) - propertyRE = regexp.MustCompile("[A-Za-z]+[0-9A-Za-z]*(\\.[A-Za-z]+[0-9A-Za-z]*)+") -) - -func MustRegisterCondition(name string, condition walk.Condition) { - if name == "" { - panic(`name == ""`) - } - if condition == nil { - panic("condition == nil") - } - if _, ok := conditionsByName[name]; ok { - panic("name already registered") - } - - conditionsByName[name] = condition -} - -type declWidget struct { - d Widget - w walk.Window -} - -type Builder struct { - level int - rows int - columns int - row int - col int - widgetValue reflect.Value - parent walk.Container - declWidgets []declWidget - name2Window map[string]walk.Window - name2DataBinder map[string]*walk.DataBinder - deferredFuncs []func() error - knownCompositeConditions map[string]walk.Condition - expressions map[string]walk.Expression - functions map[string]govaluate.ExpressionFunction -} - -func NewBuilder(parent walk.Container) *Builder { - return &Builder{ - parent: parent, - name2Window: make(map[string]walk.Window), - name2DataBinder: make(map[string]*walk.DataBinder), - knownCompositeConditions: make(map[string]walk.Condition), - expressions: make(map[string]walk.Expression), - functions: make(map[string]govaluate.ExpressionFunction), - } -} - -func (b *Builder) Parent() walk.Container { - return b.parent -} - -func (b *Builder) Defer(f func() error) { - b.deferredFuncs = append(b.deferredFuncs, f) -} - -func (b *Builder) deferBuildMenuActions(menu *walk.Menu, items []MenuItem) { - if len(items) > 0 { - b.Defer(func() error { - for _, item := range items { - if _, err := item.createAction(b, menu); err != nil { - return err - } - } - - return nil - }) - } -} - -func (b *Builder) deferBuildActions(actionList *walk.ActionList, items []MenuItem) { - if len(items) > 0 { - b.Defer(func() error { - for _, item := range items { - action, err := item.createAction(b, nil) - if err != nil { - return err - } - if err := actionList.Add(action); err != nil { - return err - } - } - - return nil - }) - } -} - -func (b *Builder) InitWidget(d Widget, w walk.Window, customInit func() error) error { - oldWidgetValue := b.widgetValue - b.widgetValue = reflect.ValueOf(d) - b.level++ - defer func() { - b.widgetValue = oldWidgetValue - b.level-- - }() - - var succeeded bool - defer func() { - if !succeeded { - w.Dispose() - } - }() - - b.declWidgets = append(b.declWidgets, declWidget{d, w}) - - // Widget - if name := b.string("Name"); name != "" { - w.SetName(name) - b.name2Window[name] = w - } - - if val := b.widgetValue.FieldByName("Background"); val.IsValid() { - if brush := val.Interface(); brush != nil { - bg, err := brush.(Brush).Create() - if err != nil { - return err - } - - w.SetBackground(bg) - } - } - - if val := b.widgetValue.FieldByName("Font"); val.IsValid() { - if f, err := val.Interface().(Font).Create(); err != nil { - return err - } else if f != nil { - w.SetFont(f) - } - } - - if err := w.SetMinMaxSize(b.size("MinSize").toW(), b.size("MaxSize").toW()); err != nil { - return err - } - - if contextMenuItems := b.menuItems("ContextMenuItems"); len(contextMenuItems) > 0 { - cm, err := walk.NewMenu() - if err != nil { - return err - } - - b.deferBuildMenuActions(cm, contextMenuItems) - - w.SetContextMenu(cm) - } - - if handler := b.eventHandler("OnBoundsChanged"); handler != nil { - w.BoundsChanged().Attach(handler) - } - - if handler := b.keyEventHandler("OnKeyDown"); handler != nil { - w.KeyDown().Attach(handler) - } - - if handler := b.keyEventHandler("OnKeyPress"); handler != nil { - w.KeyPress().Attach(handler) - } - - if handler := b.keyEventHandler("OnKeyUp"); handler != nil { - w.KeyUp().Attach(handler) - } - - if handler := b.mouseEventHandler("OnMouseDown"); handler != nil { - w.MouseDown().Attach(handler) - } - - if handler := b.mouseEventHandler("OnMouseMove"); handler != nil { - w.MouseMove().Attach(handler) - } - - if handler := b.mouseEventHandler("OnMouseUp"); handler != nil { - w.MouseUp().Attach(handler) - } - - if handler := b.eventHandler("OnSizeChanged"); handler != nil { - w.SizeChanged().Attach(handler) - } - - if db := b.bool("DoubleBuffering"); db { - w.SetDoubleBuffering(true) - } - - if rtl := b.bool("RightToLeftReading"); rtl { - w.SetRightToLeftReading(true) - } - - row := b.int("Row") - rowSpan := b.int("RowSpan") - column := b.int("Column") - columnSpan := b.int("ColumnSpan") - - rowBackup := row - columnBackup := column - - if widget, ok := w.(walk.Widget); ok { - if alignment := b.alignment(); alignment != AlignHVDefault { - if err := widget.SetAlignment(walk.Alignment2D(alignment)); err != nil { - return err - } - } - - if err := widget.SetAlwaysConsumeSpace(b.bool("AlwaysConsumeSpace")); err != nil { - return err - } - - if field := b.widgetValue.FieldByName("GraphicsEffects"); field.IsValid() { - for _, effect := range field.Interface().([]walk.WidgetGraphicsEffect) { - widget.GraphicsEffects().Add(effect) - } - } - - if p := widget.Parent(); p != nil { - type SetStretchFactorer interface { - SetStretchFactor(widget walk.Widget, factor int) error - } - - stretchFactor := b.int("StretchFactor") - - if stretchFactor < 1 { - stretchFactor = 1 - } - - switch l := p.Layout().(type) { - case SetStretchFactorer: - if err := l.SetStretchFactor(widget, stretchFactor); err != nil { - return err - } - - case *walk.GridLayout: - csf := l.ColumnStretchFactor(column) - if csf < stretchFactor { - csf = stretchFactor - } - l.SetColumnStretchFactor(column, csf) - - rsf := l.RowStretchFactor(row) - if rsf < stretchFactor { - rsf = stretchFactor - } - l.SetRowStretchFactor(row, rsf) - - if rowSpan < 1 { - rowSpan = 1 - } - if columnSpan < 1 { - columnSpan = 1 - } - - if b.rows > 0 && column == 0 && row == 0 { - if b.row+rowSpan > b.rows { - b.col++ - b.row = 0 - } - - column = b.col - row = b.row - - b.row += rowSpan - } - - if b.columns > 0 && row == 0 && column == 0 { - if b.col+columnSpan > b.columns { - b.row++ - b.col = 0 - } - - row = b.row - column = b.col - - b.col += columnSpan - } - - r := walk.Rectangle{column, row, columnSpan, rowSpan} - - if err := l.SetRange(widget, r); err != nil { - return err - } - } - } - } - - oldParent := b.parent - - // Container - var db *walk.DataBinder - if wc, ok := w.(walk.Container); ok { - var layout Layout - if val := b.widgetValue.FieldByName("Layout"); val.IsValid() { - layout, _ = val.Interface().(Layout) - } - - if layout != nil { - l, err := layout.Create() - if err != nil { - return err - } - - if err := wc.SetLayout(l); err != nil { - return err - } - } - - type DelegateContainerer interface { - DelegateContainer() walk.Container - } - - if dc, ok := wc.(DelegateContainerer); ok { - if parent := dc.DelegateContainer(); parent != nil { - b.parent = parent - } else { - b.parent = wc - } - } else { - b.parent = wc - } - defer func() { - b.parent = oldParent - }() - - if layout != nil { - if g, ok := layout.(Grid); ok { - rowBackup = b.row - columnBackup = b.col - - rows := b.rows - columns := b.columns - defer func() { - b.rows, b.columns, b.row, b.col = rows, columns, rowBackup+rowSpan, columnBackup+columnSpan - }() - - b.rows = g.Rows - b.columns = g.Columns - b.row = 0 - b.col = 0 - } - } - - if val := b.widgetValue.FieldByName("Children"); val.IsValid() { - for _, child := range val.Interface().([]Widget) { - if err := child.Create(b); err != nil { - return err - } - } - } - - dataBinder := b.widgetValue.FieldByName("DataBinder").Interface().(DataBinder) - - if dataBinder.AssignTo != nil || dataBinder.DataSource != nil { - if dataB, err := dataBinder.create(); err != nil { - return err - } else { - db = dataB - - b.name2DataBinder[dataBinder.Name] = db - - if ep := db.ErrorPresenter(); ep != nil { - if dep, ok := ep.(walk.Disposable); ok { - wc.AddDisposable(dep) - } - } - } - } - } - - // Custom - if customInit != nil { - if err := customInit(); err != nil { - return err - } - } - - b.parent = oldParent - - if b.level == 1 { - if err := b.initProperties(); err != nil { - return err - } - } - - // Call Reset on DataBinder after customInit, so a Dialog gets a chance to first - // wire up its DefaultButton to the CanSubmitChanged event of a DataBinder. - if db != nil { - if wc, ok := w.(walk.Container); ok { - b.Defer(func() error { - // FIXME: Currently SetDataBinder must be called after initProperties. - wc.SetDataBinder(db) - - if db.DataSource() == nil { - return nil - } - - return db.Reset() - }) - } - } - - if b.level == 1 { - for _, f := range b.deferredFuncs { - if err := f(); err != nil { - return err - } - } - } - - succeeded = true - - return nil -} - -func (b *Builder) alignment() Alignment2D { - fieldValue := b.widgetValue.FieldByName("Alignment") - - if fieldValue.IsValid() { - return fieldValue.Interface().(Alignment2D) - } - - return AlignHVDefault -} - -func (b *Builder) bool(fieldName string) bool { - fieldValue := b.widgetValue.FieldByName(fieldName) - - if fieldValue.IsValid() { - return fieldValue.Interface().(bool) - } - - return false -} - -func (b *Builder) eventHandler(fieldName string) walk.EventHandler { - fieldValue := b.widgetValue.FieldByName(fieldName) - - if fieldValue.IsValid() { - return fieldValue.Interface().(walk.EventHandler) - } - - return nil -} - -func (b *Builder) float64(fieldName string) float64 { - fieldValue := b.widgetValue.FieldByName(fieldName) - - if fieldValue.IsValid() { - return fieldValue.Interface().(float64) - } - - return 0 -} - -func (b *Builder) int(fieldName string) int { - fieldValue := b.widgetValue.FieldByName(fieldName) - - if fieldValue.IsValid() { - return fieldValue.Interface().(int) - } - - return 0 -} - -func (b *Builder) keyEventHandler(fieldName string) walk.KeyEventHandler { - fieldValue := b.widgetValue.FieldByName(fieldName) - - if fieldValue.IsValid() { - return fieldValue.Interface().(walk.KeyEventHandler) - } - - return nil -} - -func (b *Builder) menuItems(fieldName string) []MenuItem { - fieldValue := b.widgetValue.FieldByName(fieldName) - - if fieldValue.IsValid() { - return fieldValue.Interface().([]MenuItem) - } - - return nil -} - -func (b *Builder) mouseEventHandler(fieldName string) walk.MouseEventHandler { - fieldValue := b.widgetValue.FieldByName(fieldName) - - if fieldValue.IsValid() { - return fieldValue.Interface().(walk.MouseEventHandler) - } - - return nil -} - -func (b *Builder) size(fieldName string) Size { - fieldValue := b.widgetValue.FieldByName(fieldName) - - if fieldValue.IsValid() { - return fieldValue.Interface().(Size) - } - - return Size{} -} - -func (b *Builder) string(fieldName string) string { - fieldValue := b.widgetValue.FieldByName(fieldName) - - if fieldValue.IsValid() { - return fieldValue.Interface().(string) - } - - return "" -} - -func (b *Builder) initProperties() error { - for _, dw := range b.declWidgets { - d, w := dw.d, dw.w - - sv := reflect.ValueOf(d) - st := sv.Type() - if st.Kind() != reflect.Struct { - panic("d must be a struct value") - } - - wb := w.AsWindowBase() - - fieldCount := st.NumField() - for i := 0; i < fieldCount; i++ { - sf := st.Field(i) - - prop := wb.Property(sf.Name) - - switch val := sv.Field(i).Interface().(type) { - case nil: - // nop - - case bindData: - if prop == nil { - panic(sf.Name + " is not a property") - } - - src := b.conditionOrProperty(val) - - if src == nil { - // No luck so far, so we assume the expression refers to - // something in the data source. - src = val.expression - - if val.validator != nil { - validator, err := val.validator.Create() - if err != nil { - return err - } - if err := prop.SetValidator(validator); err != nil { - return err - } - } - } - - if err := prop.SetSource(src); err != nil { - return err - } - - case walk.Condition: - if prop == nil { - panic(sf.Name + " is not a property") - } - - if err := prop.SetSource(val); err != nil { - return err - } - - default: - if prop == nil { - continue - } - - if err := prop.Set(val); err != nil { - return err - } - } - } - } - - return nil -} - -func (b *Builder) conditionOrProperty(data Property) interface{} { - switch val := data.(type) { - case bindData: - if val.expression == "" { - return nil - } - - e := &expression{ - text: val.expression, - subExprsByPath: subExpressions(make(map[string]walk.Expression)), - } - - var singleExpr walk.Expression - - text := propertyRE.ReplaceAllStringFunc(val.expression, func(s string) string { - if _, ok := e.subExprsByPath[s]; !ok { - parts := strings.Split(s, ".") - - if w, ok := b.name2Window[parts[0]]; ok { - if prop := w.AsWindowBase().Property(parts[1]); prop != nil { - if len(s) == len(val.expression) { - singleExpr = prop - return "" - } - - if len(parts) == 2 { - e.addSubExpression(s, prop) - } else { - e.addSubExpression(s, walk.NewReflectExpression(prop, s[len(parts[0])+len(parts[1])+2:])) - } - } else { - panic(fmt.Errorf(`invalid sub expression: "%s"`, s)) - } - } else if db, ok := b.name2DataBinder[parts[0]]; ok { - e.addSubExpression(s, db.Expression(s[len(parts[0])+1:])) - } else if expr, ok := b.expressions[parts[0]]; ok { - e.addSubExpression(s, walk.NewReflectExpression(expr, s[len(parts[0])+1:])) - } - } - - return strings.Replace(s, ".", "\\.", -1) - }) - - if singleExpr != nil { - return singleExpr - } - - expr, err := govaluate.NewEvaluableExpressionWithFunctions(text, b.functions) - if err != nil { - panic(fmt.Errorf(`invalid expression "%s": %s`, e.text, err.Error())) - } - - for _, token := range expr.Tokens() { - if token.Kind == govaluate.VARIABLE { - name := token.Value.(string) - if c, ok := conditionsByName[name]; ok { - e.addSubExpression(name, c) - } - if x, ok := b.expressions[name]; ok { - e.addSubExpression(name, x) - } - } - } - - e.expr = expr - - if _, err := e.expr.Eval(e.subExprsByPath); err != nil { - // We hope for the best and leave it to a DataBinder... - return nil - } - - if _, ok := e.Value().(bool); ok { - return &boolExpression{expression: e} - } - - return e - - case walk.Expression: - return val - } - - return nil -} - -type expression struct { - expr *govaluate.EvaluableExpression - text string - subExprsByPath subExpressions - subExprsChangedHandles []int - changedPublisher walk.EventPublisher - lastReportedValue interface{} -} - -type subExpressions map[string]walk.Expression - -func (se subExpressions) Get(name string) (interface{}, error) { - if sub, ok := se[name]; ok { - return sub.Value(), nil - } - - return nil, fmt.Errorf(`invalid sub expression: "%s"`, name) -} - -func (e *expression) String() string { - return e.text -} - -func (e *expression) Value() interface{} { - val, err := e.expr.Eval(e.subExprsByPath) - if err != nil { - log.Printf(`walk - failed to evaluate expression "%s": %s`, e.text, err.Error()) - } - - e.lastReportedValue = val - - return val -} - -func (e *expression) Changed() *walk.Event { - return e.changedPublisher.Event() -} - -func (e *expression) addSubExpression(path string, subExpr walk.Expression) { - e.subExprsByPath[path] = subExpr - - handle := subExpr.Changed().Attach(func() { - last := e.lastReportedValue - if v := e.Value(); v != last { - e.changedPublisher.Publish() - } - }) - e.subExprsChangedHandles = append(e.subExprsChangedHandles, handle) -} - -type boolExpression struct { - *expression -} - -func (be *boolExpression) Satisfied() bool { - satisfied, ok := be.Value().(bool) - return ok && satisfied -} diff --git a/declarative/checkbox.go b/declarative/checkbox.go deleted file mode 100644 index 5c551c38..00000000 --- a/declarative/checkbox.go +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type CheckBox struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Button - - Checked Property - OnCheckedChanged walk.EventHandler - OnClicked walk.EventHandler - Text Property - - // CheckBox - - AssignTo **walk.CheckBox - CheckState Property - OnCheckStateChanged walk.EventHandler - TextOnLeftSide bool - Tristate bool -} - -func (cb CheckBox) Create(builder *Builder) error { - w, err := walk.NewCheckBox(builder.Parent()) - if err != nil { - return err - } - - if cb.AssignTo != nil { - *cb.AssignTo = w - } - - return builder.InitWidget(cb, w, func() error { - w.SetPersistent(cb.Persistent) - - if err := w.SetTextOnLeftSide(cb.TextOnLeftSide); err != nil { - return err - } - - if err := w.SetTristate(cb.Tristate); err != nil { - return err - } - - if cb.Tristate && cb.CheckState == nil { - w.SetCheckState(walk.CheckIndeterminate) - } - - if cb.OnClicked != nil { - w.Clicked().Attach(cb.OnClicked) - } - - if cb.OnCheckedChanged != nil { - w.CheckedChanged().Attach(cb.OnCheckedChanged) - } - - if cb.OnCheckStateChanged != nil { - w.CheckStateChanged().Attach(cb.OnCheckStateChanged) - } - - return nil - }) -} diff --git a/declarative/combobox.go b/declarative/combobox.go deleted file mode 100644 index 28694645..00000000 --- a/declarative/combobox.go +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "errors" -) - -import ( - "github.com/lxn/walk" -) - -type ComboBox struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // ComboBox - - AssignTo **walk.ComboBox - BindingMember string - CurrentIndex Property - DisplayMember string - Editable bool - Format string - MaxLength int - Model interface{} - OnCurrentIndexChanged walk.EventHandler - OnEditingFinished walk.EventHandler - OnTextChanged walk.EventHandler - Precision int - Value Property -} - -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 - } - - if cb.AssignTo != nil { - *cb.AssignTo = w - } - - return builder.InitWidget(cb, w, func() error { - w.SetPersistent(cb.Persistent) - 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.OnEditingFinished != nil { - w.EditingFinished().Attach(cb.OnEditingFinished) - } - if cb.OnTextChanged != nil { - w.TextChanged().Attach(cb.OnTextChanged) - } - - return nil - }) -} diff --git a/declarative/composite.go b/declarative/composite.go deleted file mode 100644 index d466b26b..00000000 --- a/declarative/composite.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" - "github.com/lxn/win" -) - -type Composite struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Container - - Children []Widget - DataBinder DataBinder - Layout Layout - - // Composite - - AssignTo **walk.Composite - Border bool - Expressions func() map[string]walk.Expression - Functions map[string]func(args ...interface{}) (interface{}, error) -} - -func (c Composite) Create(builder *Builder) error { - var style uint32 - if c.Border { - style |= win.WS_BORDER - } - w, err := walk.NewCompositeWithStyle(builder.Parent(), style) - if err != nil { - return err - } - - if c.AssignTo != nil { - *c.AssignTo = w - } - - w.SetSuspended(true) - builder.Defer(func() error { - w.SetSuspended(false) - return nil - }) - - return builder.InitWidget(c, w, func() error { - if c.Expressions != nil { - for name, expr := range c.Expressions() { - builder.expressions[name] = expr - } - } - if c.Functions != nil { - for name, fn := range c.Functions { - builder.functions[name] = fn - } - } - - return nil - }) -} diff --git a/declarative/customwidget.go b/declarative/customwidget.go deleted file mode 100644 index 8dd3c5ce..00000000 --- a/declarative/customwidget.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type PaintMode int - -const ( - PaintNormal PaintMode = iota // erase background before PaintFunc - PaintNoErase // PaintFunc clears background, single buffered - PaintBuffered // PaintFunc clears background, double buffered -) - -type CustomWidget struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // CustomWidget - - AssignTo **walk.CustomWidget - ClearsBackground bool - InvalidatesOnResize bool - Paint walk.PaintFunc - PaintMode PaintMode - Style uint32 -} - -func (cw CustomWidget) Create(builder *Builder) error { - w, err := walk.NewCustomWidget(builder.Parent(), uint(cw.Style), cw.Paint) - if err != nil { - return err - } - - if cw.AssignTo != nil { - *cw.AssignTo = w - } - - return builder.InitWidget(cw, w, func() error { - if cw.PaintMode != PaintNormal && cw.ClearsBackground { - panic("PaintMode and ClearsBackground are incompatible") - } - w.SetClearsBackground(cw.ClearsBackground) - w.SetInvalidatesOnResize(cw.InvalidatesOnResize) - w.SetPaintMode(walk.PaintMode(cw.PaintMode)) - - return nil - }) -} diff --git a/declarative/databinder.go b/declarative/databinder.go deleted file mode 100644 index 665ae210..00000000 --- a/declarative/databinder.go +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "time" - - "github.com/lxn/walk" -) - -type DataBinder struct { - AssignTo **walk.DataBinder - AutoSubmit bool - AutoSubmitDelay time.Duration - DataSource interface{} - ErrorPresenter ErrorPresenter - Name string - OnCanSubmitChanged walk.EventHandler - OnDataSourceChanged walk.EventHandler - OnReset walk.EventHandler - OnSubmitted walk.EventHandler -} - -func (db DataBinder) create() (*walk.DataBinder, error) { - b := walk.NewDataBinder() - - if db.AssignTo != nil { - *db.AssignTo = b - } - - if db.ErrorPresenter != nil { - ep, err := db.ErrorPresenter.Create() - if err != nil { - return nil, err - } - b.SetErrorPresenter(ep) - } - - b.SetDataSource(db.DataSource) - - b.SetAutoSubmit(db.AutoSubmit) - b.SetAutoSubmitDelay(db.AutoSubmitDelay) - - if db.OnCanSubmitChanged != nil { - b.CanSubmitChanged().Attach(db.OnCanSubmitChanged) - } - if db.OnDataSourceChanged != nil { - b.DataSourceChanged().Attach(db.OnDataSourceChanged) - } - if db.OnReset != nil { - b.ResetFinished().Attach(db.OnReset) - } - if db.OnSubmitted != nil { - b.Submitted().Attach(db.OnSubmitted) - } - - return b, nil -} diff --git a/declarative/dateedit.go b/declarative/dateedit.go deleted file mode 100644 index 9a933c81..00000000 --- a/declarative/dateedit.go +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "time" -) - -import ( - "github.com/lxn/walk" -) - -type DateEdit struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // DateEdit - - AssignTo **walk.DateEdit - Date Property - Format string - MaxDate time.Time - MinDate time.Time - NoneOption bool // Deprecated: use Optional instead - OnDateChanged walk.EventHandler - Optional bool -} - -func (de DateEdit) Create(builder *Builder) error { - var w *walk.DateEdit - var err error - - if de.Optional || de.NoneOption { - w, err = walk.NewDateEditWithNoneOption(builder.Parent()) - } else { - w, err = walk.NewDateEdit(builder.Parent()) - } - if err != nil { - return err - } - - if de.AssignTo != nil { - *de.AssignTo = w - } - - return builder.InitWidget(de, w, func() error { - if err := w.SetFormat(de.Format); err != nil { - return err - } - - if err := w.SetRange(de.MinDate, de.MaxDate); err != nil { - return err - } - - if de.OnDateChanged != nil { - w.DateChanged().Attach(de.OnDateChanged) - } - - return nil - }) -} diff --git a/declarative/datelabel.go b/declarative/datelabel.go deleted file mode 100644 index 0591fec7..00000000 --- a/declarative/datelabel.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2018 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type DateLabel struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // static - - TextColor walk.Color - - // DateLabel - - AssignTo **walk.DateLabel - Date Property - Format Property - TextAlignment Alignment1D -} - -func (dl DateLabel) Create(builder *Builder) error { - w, err := walk.NewDateLabel(builder.Parent()) - if err != nil { - return err - } - - if dl.AssignTo != nil { - *dl.AssignTo = w - } - - return builder.InitWidget(dl, w, func() error { - if err := w.SetTextAlignment(walk.Alignment1D(dl.TextAlignment)); err != nil { - return err - } - - w.SetTextColor(dl.TextColor) - - return nil - }) -} diff --git a/declarative/dialog.go b/declarative/dialog.go deleted file mode 100644 index 87590f4f..00000000 --- a/declarative/dialog.go +++ /dev/null @@ -1,180 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type Dialog struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftLayout bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Container - - DataBinder DataBinder - Layout Layout - Children []Widget - - // Form - - Expressions func() map[string]walk.Expression - Functions map[string]func(args ...interface{}) (interface{}, error) - Icon Property - Title Property - Size Size - - // Dialog - - AssignTo **walk.Dialog - CancelButton **walk.PushButton - DefaultButton **walk.PushButton - FixedSize bool -} - -func (d Dialog) Create(owner walk.Form) error { - var w *walk.Dialog - var err error - - if d.FixedSize { - w, err = walk.NewDialogWithFixedSize(owner) - } else { - w, err = walk.NewDialog(owner) - } - if err != nil { - return err - } - - if d.AssignTo != nil { - *d.AssignTo = w - } - - fi := formInfo{ - // Window - Background: d.Background, - ContextMenuItems: d.ContextMenuItems, - DoubleBuffering: d.DoubleBuffering, - Enabled: d.Enabled, - Font: d.Font, - MaxSize: d.MaxSize, - MinSize: d.MinSize, - Name: d.Name, - OnBoundsChanged: d.OnBoundsChanged, - OnKeyDown: d.OnKeyDown, - OnKeyPress: d.OnKeyPress, - OnKeyUp: d.OnKeyUp, - OnMouseDown: d.OnMouseDown, - OnMouseMove: d.OnMouseMove, - OnMouseUp: d.OnMouseUp, - OnSizeChanged: d.OnSizeChanged, - RightToLeftReading: d.RightToLeftReading, - ToolTipText: "", - Visible: d.Visible, - - // Container - Children: d.Children, - DataBinder: d.DataBinder, - Layout: d.Layout, - - // Form - Icon: d.Icon, - Title: d.Title, - } - - var db *walk.DataBinder - if d.DataBinder.AssignTo == nil { - d.DataBinder.AssignTo = &db - } - - builder := NewBuilder(nil) - - w.SetSuspended(true) - builder.Defer(func() error { - w.SetSuspended(false) - w.SetBoundsPixels(w.BoundsPixels()) - return nil - }) - - if err := w.SetRightToLeftLayout(d.RightToLeftLayout); err != nil { - return err - } - - return builder.InitWidget(fi, w, func() error { - if err := w.SetSizePixels(d.Size.toW()); err != nil { - return err - } - - if d.DefaultButton != nil { - if err := w.SetDefaultButton(*d.DefaultButton); err != nil { - return err - } - - if db := *d.DataBinder.AssignTo; db != nil { - if db.DataSource() != nil { - (*d.DefaultButton).SetEnabled(db.CanSubmit()) - } - - db.CanSubmitChanged().Attach(func() { - (*d.DefaultButton).SetEnabled(db.CanSubmit()) - }) - } - } - if d.CancelButton != nil { - if err := w.SetCancelButton(*d.CancelButton); err != nil { - return err - } - } - - if d.Expressions != nil { - for name, expr := range d.Expressions() { - builder.expressions[name] = expr - } - } - if d.Functions != nil { - for name, fn := range d.Functions { - builder.functions[name] = fn - } - } - - return nil - }) -} - -func (d Dialog) Run(owner walk.Form) (int, error) { - var w *walk.Dialog - - if d.AssignTo == nil { - d.AssignTo = &w - } - - if err := d.Create(owner); err != nil { - return 0, err - } - - return (*d.AssignTo).Run(), nil -} diff --git a/declarative/font.go b/declarative/font.go deleted file mode 100644 index ecd81363..00000000 --- a/declarative/font.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type Font struct { - Family string - PointSize int - Bold bool - Italic bool - Underline bool - StrikeOut bool -} - -func (f Font) Create() (*walk.Font, error) { - if f.Family == "" && f.PointSize == 0 { - return nil, nil - } - - var fs walk.FontStyle - - if f.Bold { - fs |= walk.FontBold - } - if f.Italic { - fs |= walk.FontItalic - } - if f.Underline { - fs |= walk.FontUnderline - } - if f.StrikeOut { - fs |= walk.FontStrikeOut - } - - return walk.NewFont(f.Family, f.PointSize, fs) -} diff --git a/declarative/gradientcomposite.go b/declarative/gradientcomposite.go deleted file mode 100644 index 7527b20a..00000000 --- a/declarative/gradientcomposite.go +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2017 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" - "github.com/lxn/win" -) - -type GradientComposite struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Container - - Children []Widget - Layout Layout - DataBinder DataBinder - - // GradientComposite - - AssignTo **walk.GradientComposite - Border bool - Color1 Property - Color2 Property - Expressions func() map[string]walk.Expression - Functions map[string]func(args ...interface{}) (interface{}, error) - Vertical Property -} - -func (gc GradientComposite) Create(builder *Builder) error { - var style uint32 - if gc.Border { - style |= win.WS_BORDER - } - w, err := walk.NewGradientCompositeWithStyle(builder.Parent(), style) - if err != nil { - return err - } - - if gc.AssignTo != nil { - *gc.AssignTo = w - } - - w.SetSuspended(true) - builder.Defer(func() error { - w.SetSuspended(false) - return nil - }) - - return builder.InitWidget(gc, w, func() error { - if gc.Expressions != nil { - for name, expr := range gc.Expressions() { - builder.expressions[name] = expr - } - } - if gc.Functions != nil { - for name, fn := range gc.Functions { - builder.functions[name] = fn - } - } - - return nil - }) -} diff --git a/declarative/groupbox.go b/declarative/groupbox.go deleted file mode 100644 index 0d60b998..00000000 --- a/declarative/groupbox.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type GroupBox struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Container - - Children []Widget - DataBinder DataBinder - Layout Layout - - // GroupBox - - AssignTo **walk.GroupBox - Checkable bool - Checked Property - Title string -} - -func (gb GroupBox) Create(builder *Builder) error { - w, err := walk.NewGroupBox(builder.Parent()) - if err != nil { - return err - } - - if gb.AssignTo != nil { - *gb.AssignTo = w - } - - w.SetSuspended(true) - builder.Defer(func() error { - w.SetSuspended(false) - return nil - }) - - return builder.InitWidget(gb, w, func() error { - if err := w.SetTitle(gb.Title); err != nil { - return err - } - - w.SetCheckable(gb.Checkable) - - return nil - }) -} diff --git a/declarative/imageview.go b/declarative/imageview.go deleted file mode 100644 index 8e208824..00000000 --- a/declarative/imageview.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type ImageViewMode int - -const ( - ImageViewModeIdeal = ImageViewMode(walk.ImageViewModeIdeal) - ImageViewModeCorner = ImageViewMode(walk.ImageViewModeCorner) - ImageViewModeCenter = ImageViewMode(walk.ImageViewModeCenter) - ImageViewModeShrink = ImageViewMode(walk.ImageViewModeShrink) - ImageViewModeZoom = ImageViewMode(walk.ImageViewModeZoom) - ImageViewModeStretch = ImageViewMode(walk.ImageViewModeStretch) -) - -type ImageView struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // ImageView - - AssignTo **walk.ImageView - Image Property - Margin Property - Mode ImageViewMode -} - -func (iv ImageView) Create(builder *Builder) error { - w, err := walk.NewImageView(builder.Parent()) - if err != nil { - return err - } - - if iv.AssignTo != nil { - *iv.AssignTo = w - } - - return builder.InitWidget(iv, w, func() error { - w.SetMode(walk.ImageViewMode(iv.Mode)) - - return nil - }) -} diff --git a/declarative/interfaces.go b/declarative/interfaces.go deleted file mode 100644 index 8f300ac7..00000000 --- a/declarative/interfaces.go +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -func tr(source string, context ...string) string { - if translation := walk.TranslationFunc(); translation != nil { - return translation(source, context...) - } - - return source -} - -type Property interface{} - -type bindData struct { - expression string - validator Validator -} - -func Bind(expression string, validators ...Validator) Property { - bd := bindData{expression: expression} - switch len(validators) { - case 0: - // nop - - case 1: - bd.validator = validators[0] - - default: - bd.validator = dMultiValidator{validators} - } - - return bd -} - -type Brush interface { - Create() (walk.Brush, error) -} - -type Layout interface { - Create() (walk.Layout, error) -} - -type Widget interface { - Create(builder *Builder) error -} - -type MenuItem interface { - createAction(builder *Builder, menu *walk.Menu) (*walk.Action, error) -} - -type Validator interface { - Create() (walk.Validator, error) -} - -type ErrorPresenter interface { - Create() (walk.ErrorPresenter, error) -} - -type ErrorPresenterRef struct { - ErrorPresenter *walk.ErrorPresenter -} - -func (epr ErrorPresenterRef) Create() (walk.ErrorPresenter, error) { - if epr.ErrorPresenter != nil { - return *epr.ErrorPresenter, nil - } - - return nil, nil -} - -type ToolTipErrorPresenter struct { -} - -func (ToolTipErrorPresenter) Create() (walk.ErrorPresenter, error) { - return walk.NewToolTipErrorPresenter() -} - -type formInfo struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - RightToLeftReading bool - ToolTipText string - Visible Property - - // Container - - Children []Widget - DataBinder DataBinder - Layout Layout - - // Form - - Icon Property - Title Property -} - -func (formInfo) Create(builder *Builder) error { - return nil -} diff --git a/declarative/label.go b/declarative/label.go deleted file mode 100644 index 68d31a24..00000000 --- a/declarative/label.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type Label struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Label - - AssignTo **walk.Label - Text Property - TextAlignment Alignment1D - TextColor walk.Color -} - -func (l Label) Create(builder *Builder) error { - w, err := walk.NewLabel(builder.Parent()) - if err != nil { - return err - } - - if l.AssignTo != nil { - *l.AssignTo = w - } - - return builder.InitWidget(l, w, func() error { - if err := w.SetTextAlignment(walk.Alignment1D(l.TextAlignment)); err != nil { - return err - } - - w.SetTextColor(l.TextColor) - - return nil - }) -} diff --git a/declarative/layouts.go b/declarative/layouts.go deleted file mode 100644 index 158a0cbb..00000000 --- a/declarative/layouts.go +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "errors" - - "github.com/lxn/walk" -) - -type Orientation byte - -const ( - Horizontal Orientation = Orientation(walk.Horizontal) - Vertical Orientation = Orientation(walk.Vertical) -) - -type Margins struct { - Left int - Top int - Right int - Bottom int -} - -func (m Margins) isZero() bool { - return m.Left == 0 && m.Top == 0 && m.Right == 0 && m.Bottom == 0 -} - -func (m Margins) toW() walk.Margins { - return walk.Margins{m.Left, m.Top, m.Right, m.Bottom} -} - -type Size struct { - Width int - Height int -} - -func (s Size) toW() walk.Size { - return walk.Size{s.Width, s.Height} -} - -func setLayoutMargins(layout walk.Layout, margins Margins, marginsZero bool) error { - if !marginsZero && margins.isZero() { - margins = Margins{9, 9, 9, 9} - } - - return layout.SetMargins(margins.toW()) -} - -func setLayoutSpacing(layout walk.Layout, spacing int, spacingZero bool) error { - if !spacingZero && spacing == 0 { - spacing = 6 - } - - return layout.SetSpacing(spacing) -} - -type HBox struct { - Margins Margins - Alignment Alignment2D - Spacing int - MarginsZero bool - SpacingZero bool -} - -func (hb HBox) Create() (walk.Layout, error) { - l := walk.NewHBoxLayout() - - if err := setLayoutMargins(l, hb.Margins, hb.MarginsZero); err != nil { - return nil, err - } - - if err := setLayoutSpacing(l, hb.Spacing, hb.SpacingZero); err != nil { - return nil, err - } - - if err := l.SetAlignment(walk.Alignment2D(hb.Alignment)); err != nil { - return nil, err - } - - return l, nil -} - -type VBox struct { - Margins Margins - Alignment Alignment2D - Spacing int - MarginsZero bool - SpacingZero bool -} - -func (vb VBox) Create() (walk.Layout, error) { - l := walk.NewVBoxLayout() - - if err := setLayoutMargins(l, vb.Margins, vb.MarginsZero); err != nil { - return nil, err - } - - if err := setLayoutSpacing(l, vb.Spacing, vb.SpacingZero); err != nil { - return nil, err - } - - if err := l.SetAlignment(walk.Alignment2D(vb.Alignment)); err != nil { - return nil, err - } - - return l, nil -} - -type Grid struct { - Rows int - Columns int - Margins Margins - Alignment Alignment2D - Spacing int - MarginsZero bool - SpacingZero bool -} - -func (g Grid) Create() (walk.Layout, error) { - if g.Rows > 0 && g.Columns > 0 { - return nil, errors.New("only one of Rows and Columns may be > 0") - } - - l := walk.NewGridLayout() - - if err := setLayoutMargins(l, g.Margins, g.MarginsZero); err != nil { - return nil, err - } - - if err := setLayoutSpacing(l, g.Spacing, g.SpacingZero); err != nil { - return nil, err - } - - if err := l.SetAlignment(walk.Alignment2D(g.Alignment)); err != nil { - return nil, err - } - - return l, nil -} - -type Flow struct { - Margins Margins - Alignment Alignment2D - Spacing int - MarginsZero bool - SpacingZero bool -} - -func (f Flow) Create() (walk.Layout, error) { - l := walk.NewFlowLayout() - - if err := setLayoutMargins(l, f.Margins, f.MarginsZero); err != nil { - return nil, err - } - - if err := setLayoutSpacing(l, f.Spacing, f.SpacingZero); err != nil { - return nil, err - } - - if err := l.SetAlignment(walk.Alignment2D(f.Alignment)); err != nil { - return nil, err - } - - return l, nil -} diff --git a/declarative/lineedit.go b/declarative/lineedit.go deleted file mode 100644 index d4f52e7f..00000000 --- a/declarative/lineedit.go +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type CaseMode uint32 - -const ( - CaseModeMixed CaseMode = CaseMode(walk.CaseModeMixed) - CaseModeUpper CaseMode = CaseMode(walk.CaseModeUpper) - CaseModeLower CaseMode = CaseMode(walk.CaseModeLower) -) - -type LineEdit struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // LineEdit - - AssignTo **walk.LineEdit - CaseMode CaseMode - CueBanner string - MaxLength int - OnEditingFinished walk.EventHandler - OnTextChanged walk.EventHandler - PasswordMode bool - ReadOnly Property - Text Property - TextAlignment Alignment1D - TextColor walk.Color -} - -func (le LineEdit) Create(builder *Builder) error { - w, err := walk.NewLineEdit(builder.Parent()) - if err != nil { - return err - } - - if le.AssignTo != nil { - *le.AssignTo = w - } - - return builder.InitWidget(le, w, func() error { - w.SetTextColor(le.TextColor) - - if err := w.SetTextAlignment(walk.Alignment1D(le.TextAlignment)); err != nil { - return err - } - - if le.CueBanner != "" { - if err := w.SetCueBanner(le.CueBanner); err != nil { - return err - } - } - w.SetMaxLength(le.MaxLength) - w.SetPasswordMode(le.PasswordMode) - - if err := w.SetCaseMode(walk.CaseMode(le.CaseMode)); err != nil { - return err - } - - if le.OnEditingFinished != nil { - w.EditingFinished().Attach(le.OnEditingFinished) - } - if le.OnTextChanged != nil { - w.TextChanged().Attach(le.OnTextChanged) - } - - return nil - }) -} diff --git a/declarative/lineerrorpresenter.go b/declarative/lineerrorpresenter.go deleted file mode 100644 index 49a5d4f4..00000000 --- a/declarative/lineerrorpresenter.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type LineErrorPresenter struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // LineErrorPresenter - - AssignTo *walk.ErrorPresenter -} - -func (lep LineErrorPresenter) Create(builder *Builder) error { - w, err := walk.NewLineErrorPresenter(builder.Parent()) - if err != nil { - return err - } - - if lep.AssignTo != nil { - *lep.AssignTo = w - } - - return builder.InitWidget(lep, w, func() error { - return nil - }) -} diff --git a/declarative/linklabel.go b/declarative/linklabel.go deleted file mode 100644 index 16ad4505..00000000 --- a/declarative/linklabel.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2017 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type LinkLabel struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // LinkLabel - - AssignTo **walk.LinkLabel - OnLinkActivated walk.LinkLabelLinkEventHandler - Text Property -} - -func (ll LinkLabel) Create(builder *Builder) error { - w, err := walk.NewLinkLabel(builder.Parent()) - if err != nil { - return err - } - - if ll.AssignTo != nil { - *ll.AssignTo = w - } - - return builder.InitWidget(ll, w, func() error { - if ll.OnLinkActivated != nil { - w.LinkActivated().Attach(ll.OnLinkActivated) - } - - return nil - }) -} diff --git a/declarative/listbox.go b/declarative/listbox.go deleted file mode 100644 index 41e9208d..00000000 --- a/declarative/listbox.go +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "errors" -) - -import ( - "github.com/lxn/walk" - "github.com/lxn/win" -) - -type ListBox struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // ListBox - - AssignTo **walk.ListBox - DataMember string - Format string - Model interface{} - MultiSelection bool - OnCurrentIndexChanged walk.EventHandler - OnItemActivated walk.EventHandler - OnSelectedIndexesChanged walk.EventHandler - Precision int -} - -func (lb ListBox) Create(builder *Builder) error { - var w *walk.ListBox - var err error - if _, ok := lb.Model.([]string); ok && lb.DataMember != "" { - return errors.New("ListBox.Create: DataMember must be empty for []string models.") - } - - if lb.MultiSelection { - w, err = walk.NewListBoxWithStyle(builder.Parent(), win.LBS_EXTENDEDSEL) - } else { - w, err = walk.NewListBox(builder.Parent()) - } - if err != nil { - return err - } - - if lb.AssignTo != nil { - *lb.AssignTo = w - } - - return builder.InitWidget(lb, w, func() error { - w.SetFormat(lb.Format) - w.SetPrecision(lb.Precision) - - if err := w.SetDataMember(lb.DataMember); err != nil { - return err - } - - if err := w.SetModel(lb.Model); err != nil { - return err - } - - if lb.OnCurrentIndexChanged != nil { - w.CurrentIndexChanged().Attach(lb.OnCurrentIndexChanged) - } - if lb.OnSelectedIndexesChanged != nil { - w.SelectedIndexesChanged().Attach(lb.OnSelectedIndexesChanged) - } - if lb.OnItemActivated != nil { - w.ItemActivated().Attach(lb.OnItemActivated) - } - - return nil - }) -} diff --git a/declarative/mainwindow.go b/declarative/mainwindow.go deleted file mode 100644 index f483564b..00000000 --- a/declarative/mainwindow.go +++ /dev/null @@ -1,214 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import "github.com/lxn/walk" - -type MainWindow struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftLayout bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Container - - Children []Widget - DataBinder DataBinder - Layout Layout - - // Form - - Icon Property - Size Size - Title Property - - // MainWindow - - AssignTo **walk.MainWindow - Expressions func() map[string]walk.Expression - Functions map[string]func(args ...interface{}) (interface{}, error) - MenuItems []MenuItem - OnDropFiles walk.DropFilesEventHandler - StatusBarItems []StatusBarItem - ToolBar ToolBar - ToolBarItems []MenuItem // Deprecated: use ToolBar instead -} - -func (mw MainWindow) Create() error { - w, err := walk.NewMainWindow() - if err != nil { - return err - } - - if mw.AssignTo != nil { - *mw.AssignTo = w - } - - fi := formInfo{ - // Window - Background: mw.Background, - ContextMenuItems: mw.ContextMenuItems, - DoubleBuffering: mw.DoubleBuffering, - Enabled: mw.Enabled, - Font: mw.Font, - MaxSize: mw.MaxSize, - MinSize: mw.MinSize, - Name: mw.Name, - OnBoundsChanged: mw.OnBoundsChanged, - OnKeyDown: mw.OnKeyDown, - OnKeyPress: mw.OnKeyPress, - OnKeyUp: mw.OnKeyUp, - OnMouseDown: mw.OnMouseDown, - OnMouseMove: mw.OnMouseMove, - OnMouseUp: mw.OnMouseUp, - OnSizeChanged: mw.OnSizeChanged, - RightToLeftReading: mw.RightToLeftReading, - Visible: mw.Visible, - - // Container - Children: mw.Children, - DataBinder: mw.DataBinder, - Layout: mw.Layout, - - // Form - Icon: mw.Icon, - Title: mw.Title, - } - - builder := NewBuilder(nil) - - w.SetSuspended(true) - builder.Defer(func() error { - w.SetSuspended(false) - w.SetBoundsPixels(w.BoundsPixels()) - return nil - }) - - builder.deferBuildMenuActions(w.Menu(), mw.MenuItems) - - if err := w.SetRightToLeftLayout(mw.RightToLeftLayout); err != nil { - return err - } - - return builder.InitWidget(fi, w, func() error { - if len(mw.ToolBar.Items) > 0 { - var tb *walk.ToolBar - if mw.ToolBar.AssignTo == nil { - mw.ToolBar.AssignTo = &tb - } - - if err := mw.ToolBar.Create(builder); err != nil { - return err - } - - old := w.ToolBar() - w.SetToolBar(*mw.ToolBar.AssignTo) - old.Dispose() - } else { - builder.deferBuildActions(w.ToolBar().Actions(), mw.ToolBarItems) - } - - for _, sbi := range mw.StatusBarItems { - s := walk.NewStatusBarItem() - if sbi.AssignTo != nil { - *sbi.AssignTo = s - } - s.SetIcon(sbi.Icon) - s.SetText(sbi.Text) - s.SetToolTipText(sbi.ToolTipText) - if sbi.Width > 0 { - s.SetWidth(sbi.Width) - } - if sbi.OnClicked != nil { - s.Clicked().Attach(sbi.OnClicked) - } - w.StatusBar().Items().Add(s) - w.StatusBar().SetVisible(true) - } - - if err := w.SetSizePixels(mw.Size.toW()); err != nil { - return err - } - - imageList, err := walk.NewImageList(walk.Size{16, 16}, 0) - if err != nil { - return err - } - w.ToolBar().SetImageList(imageList) - - if mw.OnDropFiles != nil { - w.DropFiles().Attach(mw.OnDropFiles) - } - - // if mw.AssignTo != nil { - // *mw.AssignTo = w - // } - - if mw.Expressions != nil { - for name, expr := range mw.Expressions() { - builder.expressions[name] = expr - } - } - if mw.Functions != nil { - for name, fn := range mw.Functions { - builder.functions[name] = fn - } - } - - builder.Defer(func() error { - if mw.Visible != false { - w.Show() - } - - return nil - }) - - return nil - }) -} - -func (mw MainWindow) Run() (int, error) { - var w *walk.MainWindow - - if mw.AssignTo == nil { - mw.AssignTo = &w - } - - if err := mw.Create(); err != nil { - return 0, err - } - - return (*mw.AssignTo).Run(), nil -} - -type StatusBarItem struct { - AssignTo **walk.StatusBarItem - Icon *walk.Icon - Text string - ToolTipText string - Width int - OnClicked walk.EventHandler -} diff --git a/declarative/nonwin.go b/declarative/nonwin.go deleted file mode 100644 index c182e5ef..00000000 --- a/declarative/nonwin.go +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2010 The win Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !windows - -package declarative diff --git a/declarative/numberedit.go b/declarative/numberedit.go deleted file mode 100644 index c0d8e637..00000000 --- a/declarative/numberedit.go +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type NumberEdit struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // NumberEdit - - AssignTo **walk.NumberEdit - Decimals int - Increment float64 - MaxValue float64 - MinValue float64 - Prefix Property - OnValueChanged walk.EventHandler - ReadOnly Property - Suffix Property - TextColor walk.Color - Value Property -} - -func (ne NumberEdit) Create(builder *Builder) error { - w, err := walk.NewNumberEdit(builder.Parent()) - if err != nil { - return err - } - - if ne.AssignTo != nil { - *ne.AssignTo = w - } - - return builder.InitWidget(ne, w, func() error { - w.SetTextColor(ne.TextColor) - - if err := w.SetDecimals(ne.Decimals); err != nil { - return err - } - - inc := ne.Increment - if inc == 0 { - inc = 1 - } - - if err := w.SetIncrement(inc); err != nil { - return err - } - - if ne.MinValue != 0 || ne.MaxValue != 0 { - if err := w.SetRange(ne.MinValue, ne.MaxValue); err != nil { - return err - } - } - - if ne.OnValueChanged != nil { - w.ValueChanged().Attach(ne.OnValueChanged) - } - - return nil - }) -} diff --git a/declarative/numberlabel.go b/declarative/numberlabel.go deleted file mode 100644 index d3bf2141..00000000 --- a/declarative/numberlabel.go +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2018 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type NumberLabel struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // static - - TextColor walk.Color - - // NumberLabel - - AssignTo **walk.NumberLabel - Decimals Property - Suffix Property - TextAlignment Alignment1D - Value Property -} - -func (nl NumberLabel) Create(builder *Builder) error { - w, err := walk.NewNumberLabel(builder.Parent()) - if err != nil { - return err - } - - if nl.AssignTo != nil { - *nl.AssignTo = w - } - - return builder.InitWidget(nl, w, func() error { - if err := w.SetTextAlignment(walk.Alignment1D(nl.TextAlignment)); err != nil { - return err - } - - w.SetTextColor(nl.TextColor) - - return nil - }) -} diff --git a/declarative/progressbar.go b/declarative/progressbar.go deleted file mode 100644 index c621ae20..00000000 --- a/declarative/progressbar.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type ProgressBar struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // ProgressBar - - AssignTo **walk.ProgressBar - MarqueeMode bool - MaxValue int - MinValue int - Value int -} - -func (pb ProgressBar) Create(builder *Builder) error { - w, err := walk.NewProgressBar(builder.Parent()) - if err != nil { - return err - } - - if pb.AssignTo != nil { - *pb.AssignTo = w - } - - return builder.InitWidget(pb, w, func() error { - if pb.MaxValue > pb.MinValue { - w.SetRange(pb.MinValue, pb.MaxValue) - } - w.SetValue(pb.Value) - - if err := w.SetMarqueeMode(pb.MarqueeMode); err != nil { - return err - } - - return nil - }) -} diff --git a/declarative/pushbutton.go b/declarative/pushbutton.go deleted file mode 100644 index 1e9e037d..00000000 --- a/declarative/pushbutton.go +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type PushButton struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Button - - Image Property - OnClicked walk.EventHandler - Text Property - - // PushButton - - AssignTo **walk.PushButton - ImageAboveText bool -} - -func (pb PushButton) Create(builder *Builder) error { - w, err := walk.NewPushButton(builder.Parent()) - if err != nil { - return err - } - - if pb.AssignTo != nil { - *pb.AssignTo = w - } - - return builder.InitWidget(pb, w, func() error { - if err := w.SetImageAboveText(pb.ImageAboveText); err != nil { - return err - } - - if pb.OnClicked != nil { - w.Clicked().Attach(pb.OnClicked) - } - - return nil - }) -} diff --git a/declarative/radiobutton.go b/declarative/radiobutton.go deleted file mode 100644 index d617fa76..00000000 --- a/declarative/radiobutton.go +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type RadioButton struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Button - - OnClicked walk.EventHandler - Text Property - - // RadioButton - - AssignTo **walk.RadioButton - TextOnLeftSide bool - Value interface{} -} - -func (rb RadioButton) Create(builder *Builder) error { - w, err := walk.NewRadioButton(builder.Parent()) - if err != nil { - return err - } - - if rb.AssignTo != nil { - *rb.AssignTo = w - } - - return builder.InitWidget(rb, w, func() error { - w.SetValue(rb.Value) - - if err := w.SetTextOnLeftSide(rb.TextOnLeftSide); err != nil { - return err - } - - if rb.OnClicked != nil { - w.Clicked().Attach(rb.OnClicked) - } - - return nil - }) -} diff --git a/declarative/radiobuttongroup.go b/declarative/radiobuttongroup.go deleted file mode 100644 index ff0a2cdd..00000000 --- a/declarative/radiobuttongroup.go +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright 2013 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "bytes" - "errors" -) - -import ( - "github.com/lxn/walk" -) - -type RadioButtonGroup struct { - Buttons []RadioButton - DataMember string - Optional bool -} - -func (rbg RadioButtonGroup) Create(builder *Builder) error { - if len(rbg.Buttons) == 0 { - return nil - } - - var first *walk.RadioButton - - for _, rb := range rbg.Buttons { - if first == nil { - if rb.AssignTo == nil { - rb.AssignTo = &first - } - } - - if err := rb.Create(builder); err != nil { - return err - } - - if first == nil { - first = *rb.AssignTo - } - } - - parent := builder.Parent() - - builder.Defer(func() error { - group := first.Group() - - validator := newRadioButtonGroupValidator(group, parent) - - for _, rb := range group.Buttons() { - prop := rb.AsWindowBase().Property("CheckedValue") - - if err := prop.SetSource(rbg.DataMember); err != nil { - return err - } - if err := prop.SetValidator(validator); err != nil { - return err - } - } - - return nil - }) - - return nil -} - -type radioButtonGroupValidator struct { - group *walk.RadioButtonGroup - err error -} - -func newRadioButtonGroupValidator(group *walk.RadioButtonGroup, parent walk.Container) *radioButtonGroupValidator { - b := new(bytes.Buffer) - - if gb, ok := parent.(*walk.GroupBox); ok { - b.WriteString(gb.Title()) - } else { - for i, rb := range group.Buttons() { - if i > 0 { - b.WriteString(", ") - } - - b.WriteString(rb.Text()) - } - } - - b.WriteString(": ") - - b.WriteString(tr("A selection is required.", "walk")) - - return &radioButtonGroupValidator{group: group, err: errors.New(b.String())} -} - -func (rbgv *radioButtonGroupValidator) Validate(v interface{}) error { - if rbgv.group.CheckedButton() == nil { - return rbgv.err - } - - return nil -} diff --git a/declarative/radiobuttongroupbox.go b/declarative/radiobuttongroupbox.go deleted file mode 100644 index 9bdfa238..00000000 --- a/declarative/radiobuttongroupbox.go +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2013 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type RadioButtonGroupBox struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Container - - Children []Widget - DataBinder DataBinder - Layout Layout - - // GroupBox - - AssignTo **walk.GroupBox - Checkable bool - Checked Property - Title string - - // RadioButtonGroupBox - - Buttons []RadioButton - DataMember string - Optional bool -} - -func (rbgb RadioButtonGroupBox) Create(builder *Builder) error { - w, err := walk.NewGroupBox(builder.Parent()) - if err != nil { - return err - } - - if rbgb.AssignTo != nil { - *rbgb.AssignTo = w - } - - w.SetSuspended(true) - builder.Defer(func() error { - w.SetSuspended(false) - return nil - }) - - return builder.InitWidget(rbgb, w, func() error { - if err := w.SetTitle(rbgb.Title); err != nil { - return err - } - - w.SetCheckable(rbgb.Checkable) - - if err := (RadioButtonGroup{ - DataMember: rbgb.DataMember, - Optional: rbgb.Optional, - Buttons: rbgb.Buttons, - }).Create(builder); err != nil { - return err - } - - return nil - }) -} diff --git a/declarative/scrollview.go b/declarative/scrollview.go deleted file mode 100644 index 4334ce3c..00000000 --- a/declarative/scrollview.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2014 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type ScrollView struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Container - - Children []Widget - DataBinder DataBinder - Layout Layout - - // ScrollView - - AssignTo **walk.ScrollView - HorizontalFixed bool - VerticalFixed bool -} - -func (sv ScrollView) Create(builder *Builder) error { - w, err := walk.NewScrollView(builder.Parent()) - if err != nil { - return err - } - - if sv.AssignTo != nil { - *sv.AssignTo = w - } - - w.SetSuspended(true) - builder.Defer(func() error { - w.SetSuspended(false) - return nil - }) - - w.SetScrollbars(!sv.HorizontalFixed, !sv.VerticalFixed) - - return builder.InitWidget(sv, w, func() error { - return nil - }) -} diff --git a/declarative/separator.go b/declarative/separator.go deleted file mode 100644 index 3079aa94..00000000 --- a/declarative/separator.go +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2017 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type HSeparator struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Separator - - AssignTo **walk.Separator -} - -func (s HSeparator) Create(builder *Builder) error { - w, err := walk.NewHSeparator(builder.Parent()) - if err != nil { - return err - } - - if s.AssignTo != nil { - *s.AssignTo = w - } - - return builder.InitWidget(s, w, func() error { - return nil - }) -} - -type VSeparator struct { - // Window - - ContextMenuItems []MenuItem - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - ToolTipText Property - Visible Property - - // Widget - - AlwaysConsumeSpace bool - Column int - ColumnSpan int - Row int - RowSpan int - StretchFactor int - - // Separator - - AssignTo **walk.Separator -} - -func (s VSeparator) Create(builder *Builder) error { - w, err := walk.NewVSeparator(builder.Parent()) - if err != nil { - return err - } - - if s.AssignTo != nil { - *s.AssignTo = w - } - - return builder.InitWidget(s, w, func() error { - return nil - }) -} diff --git a/declarative/slider.go b/declarative/slider.go deleted file mode 100644 index 4bb9fecc..00000000 --- a/declarative/slider.go +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright 2016 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type Slider struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Slider - - AssignTo **walk.Slider - LineSize int - MaxValue int - MinValue int - Orientation Orientation - OnValueChanged walk.EventHandler - PageSize int - ToolTipsHidden bool - Tracking bool - Value Property -} - -func (sl Slider) Create(builder *Builder) error { - w, err := walk.NewSliderWithCfg(builder.Parent(), &walk.SliderCfg{ - Orientation: walk.Orientation(sl.Orientation), - ToolTipsHidden: sl.ToolTipsHidden, - }) - if err != nil { - return err - } - - if sl.AssignTo != nil { - *sl.AssignTo = w - } - - return builder.InitWidget(sl, w, func() error { - w.SetPersistent(sl.Persistent) - if sl.LineSize > 0 { - w.SetLineSize(sl.LineSize) - } - if sl.PageSize > 0 { - w.SetPageSize(sl.PageSize) - } - w.SetTracking(sl.Tracking) - - if sl.MaxValue > sl.MinValue { - w.SetRange(sl.MinValue, sl.MaxValue) - } - - if sl.OnValueChanged != nil { - w.ValueChanged().Attach(sl.OnValueChanged) - } - - return nil - }) -} diff --git a/declarative/spacer.go b/declarative/spacer.go deleted file mode 100644 index 549dd627..00000000 --- a/declarative/spacer.go +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type HSpacer struct { - // Window - - MaxSize Size - MinSize Size - Name string - - // Widget - - Column int - ColumnSpan int - Row int - RowSpan int - StretchFactor int - - // Spacer - - GreedyLocallyOnly bool - Size int -} - -func (hs HSpacer) Create(builder *Builder) (err error) { - var flags walk.LayoutFlags - if hs.Size == 0 { - flags = walk.ShrinkableHorz | walk.GrowableHorz | walk.GreedyHorz - } - - var w *walk.Spacer - if w, err = walk.NewSpacerWithCfg(builder.Parent(), &walk.SpacerCfg{ - LayoutFlags: flags, - SizeHint: walk.Size{Width: hs.Size}, - GreedyLocallyOnly: hs.GreedyLocallyOnly, - }); err != nil { - return - } - - return builder.InitWidget(hs, w, nil) -} - -type VSpacer struct { - // Window - - MaxSize Size - MinSize Size - Name string - - // Widget - - Column int - ColumnSpan int - Row int - RowSpan int - StretchFactor int - - // Spacer - - GreedyLocallyOnly bool - Size int -} - -func (vs VSpacer) Create(builder *Builder) (err error) { - var flags walk.LayoutFlags - if vs.Size == 0 { - flags = walk.ShrinkableVert | walk.GrowableVert | walk.GreedyVert - } - - var w *walk.Spacer - if w, err = walk.NewSpacerWithCfg(builder.Parent(), &walk.SpacerCfg{ - LayoutFlags: flags, - SizeHint: walk.Size{Height: vs.Size}, - GreedyLocallyOnly: vs.GreedyLocallyOnly, - }); err != nil { - return - } - - return builder.InitWidget(vs, w, nil) -} diff --git a/declarative/splitbutton.go b/declarative/splitbutton.go deleted file mode 100644 index 71ae6b4a..00000000 --- a/declarative/splitbutton.go +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2016 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type SplitButton struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Button - - Image Property - Text Property - OnClicked walk.EventHandler - - // SplitButton - - AssignTo **walk.SplitButton - ImageAboveText bool - MenuItems []MenuItem -} - -func (sb SplitButton) Create(builder *Builder) error { - w, err := walk.NewSplitButton(builder.Parent()) - if err != nil { - return err - } - - if sb.AssignTo != nil { - *sb.AssignTo = w - } - - builder.deferBuildMenuActions(w.Menu(), sb.MenuItems) - - return builder.InitWidget(sb, w, func() error { - if err := w.SetImageAboveText(sb.ImageAboveText); err != nil { - return err - } - - if sb.OnClicked != nil { - w.Clicked().Attach(sb.OnClicked) - } - - return nil - }) -} diff --git a/declarative/splitter.go b/declarative/splitter.go deleted file mode 100644 index a893f228..00000000 --- a/declarative/splitter.go +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type HSplitter struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Container - - Children []Widget - DataBinder DataBinder - - // Splitter - - AssignTo **walk.Splitter - HandleWidth int -} - -func (s HSplitter) Create(builder *Builder) error { - w, err := walk.NewHSplitter(builder.Parent()) - if err != nil { - return err - } - - if s.AssignTo != nil { - *s.AssignTo = w - } - - w.SetSuspended(true) - builder.Defer(func() error { - w.SetSuspended(false) - return nil - }) - - return builder.InitWidget(s, w, func() error { - if s.HandleWidth > 0 { - if err := w.SetHandleWidth(s.HandleWidth); err != nil { - return err - } - } - - return nil - }) -} - -type VSplitter struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - AlwaysConsumeSpace bool - Column int - ColumnSpan int - Row int - RowSpan int - StretchFactor int - - // Container - - Children []Widget - DataBinder DataBinder - - // Splitter - - AssignTo **walk.Splitter - HandleWidth int -} - -func (s VSplitter) Create(builder *Builder) error { - w, err := walk.NewVSplitter(builder.Parent()) - if err != nil { - return err - } - - if s.AssignTo != nil { - *s.AssignTo = w - } - - w.SetSuspended(true) - builder.Defer(func() error { - w.SetSuspended(false) - return nil - }) - - return builder.InitWidget(s, w, func() error { - if s.HandleWidth > 0 { - if err := w.SetHandleWidth(s.HandleWidth); err != nil { - return err - } - } - - return nil - }) -} diff --git a/declarative/tableview.go b/declarative/tableview.go deleted file mode 100644 index 27b3ebf1..00000000 --- a/declarative/tableview.go +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" - "github.com/lxn/win" -) - -type TableView struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // TableView - - AlternatingRowBGColor walk.Color - AssignTo **walk.TableView - CellStyler walk.CellStyler - CheckBoxes bool - Columns []TableViewColumn - ColumnsOrderable Property - ColumnsSizable Property - CustomHeaderHeight int - CustomRowHeight int - ItemStateChangedEventDelay int - HeaderHidden bool - LastColumnStretched bool - Model interface{} - MultiSelection bool - NotSortableByHeaderClick bool - OnCurrentIndexChanged walk.EventHandler - OnItemActivated walk.EventHandler - OnSelectedIndexesChanged walk.EventHandler - SelectionHiddenWithoutFocus bool - StyleCell func(style *walk.CellStyle) -} - -type tvStyler struct { - dflt walk.CellStyler - colStyleCellFuncs []func(style *walk.CellStyle) -} - -func (tvs *tvStyler) StyleCell(style *walk.CellStyle) { - if tvs.dflt != nil { - tvs.dflt.StyleCell(style) - } - - if styleCell := tvs.colStyleCellFuncs[style.Col()]; styleCell != nil { - styleCell(style) - } -} - -type styleCellFunc func(style *walk.CellStyle) - -func (scf styleCellFunc) StyleCell(style *walk.CellStyle) { - scf(style) -} - -func (tv TableView) Create(builder *Builder) error { - var w *walk.TableView - var err error - if tv.NotSortableByHeaderClick { - w, err = walk.NewTableViewWithStyle(builder.Parent(), win.LVS_NOSORTHEADER) - } else { - w, err = walk.NewTableViewWithCfg(builder.Parent(), &walk.TableViewCfg{CustomHeaderHeight: tv.CustomHeaderHeight, CustomRowHeight: tv.CustomRowHeight}) - } - if err != nil { - return err - } - - if tv.AssignTo != nil { - *tv.AssignTo = w - } - - return builder.InitWidget(tv, w, func() error { - for i := range tv.Columns { - if err := tv.Columns[i].Create(w); err != nil { - return err - } - } - - if err := w.SetModel(tv.Model); err != nil { - return err - } - - defaultStyler, _ := tv.Model.(walk.CellStyler) - - if tv.CellStyler != nil { - defaultStyler = tv.CellStyler - } - - if tv.StyleCell != nil { - defaultStyler = styleCellFunc(tv.StyleCell) - } - - var hasColStyleFunc bool - for _, c := range tv.Columns { - if c.StyleCell != nil { - hasColStyleFunc = true - break - } - } - - if defaultStyler != nil || hasColStyleFunc { - var styler walk.CellStyler - - if hasColStyleFunc { - tvs := &tvStyler{ - dflt: defaultStyler, - colStyleCellFuncs: make([]func(style *walk.CellStyle), len(tv.Columns)), - } - - styler = tvs - - for i, c := range tv.Columns { - tvs.colStyleCellFuncs[i] = c.StyleCell - } - } else { - styler = defaultStyler - } - - w.SetCellStyler(styler) - } - - if tv.AlternatingRowBGColor != 0 { - w.SetAlternatingRowBGColor(tv.AlternatingRowBGColor) - } - w.SetCheckBoxes(tv.CheckBoxes) - w.SetItemStateChangedEventDelay(tv.ItemStateChangedEventDelay) - if err := w.SetLastColumnStretched(tv.LastColumnStretched); err != nil { - return err - } - if err := w.SetMultiSelection(tv.MultiSelection); err != nil { - return err - } - if err := w.SetSelectionHiddenWithoutFocus(tv.SelectionHiddenWithoutFocus); err != nil { - return err - } - if err := w.SetHeaderHidden(tv.HeaderHidden); err != nil { - return err - } - - if tv.OnCurrentIndexChanged != nil { - w.CurrentIndexChanged().Attach(tv.OnCurrentIndexChanged) - } - if tv.OnSelectedIndexesChanged != nil { - w.SelectedIndexesChanged().Attach(tv.OnSelectedIndexesChanged) - } - if tv.OnItemActivated != nil { - w.ItemActivated().Attach(tv.OnItemActivated) - } - - return nil - }) -} diff --git a/declarative/tableviewcolumn.go b/declarative/tableviewcolumn.go deleted file mode 100644 index 27212b5b..00000000 --- a/declarative/tableviewcolumn.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2013 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type Alignment1D uint - -const ( - AlignDefault = Alignment1D(walk.AlignDefault) - AlignNear = Alignment1D(walk.AlignNear) - AlignCenter = Alignment1D(walk.AlignCenter) - AlignFar = Alignment1D(walk.AlignFar) -) - -type TableViewColumn struct { - Name string - DataMember string - Format string - Title string - Alignment Alignment1D - Precision int - Width int - Hidden bool - Frozen bool - StyleCell func(style *walk.CellStyle) - LessFunc func(i, j int) bool - FormatFunc func(value interface{}) string -} - -func (tvc TableViewColumn) Create(tv *walk.TableView) error { - w := walk.NewTableViewColumn() - - if err := w.SetAlignment(walk.Alignment1D(tvc.Alignment)); err != nil { - return err - } - w.SetDataMember(tvc.DataMember) - if tvc.Format != "" { - if err := w.SetFormat(tvc.Format); err != nil { - return err - } - } - if err := w.SetPrecision(tvc.Precision); err != nil { - return err - } - w.SetName(tvc.Name) - if err := w.SetTitle(tvc.Title); err != nil { - return err - } - if err := w.SetVisible(!tvc.Hidden); err != nil { - return err - } - if err := w.SetFrozen(tvc.Frozen); err != nil { - return err - } - if err := w.SetWidth(tvc.Width); err != nil { - return err - } - w.SetLessFunc(tvc.LessFunc) - w.SetFormatFunc(tvc.FormatFunc) - - return tv.Columns().Add(w) -} diff --git a/declarative/tabpage.go b/declarative/tabpage.go deleted file mode 100644 index 2d1757bf..00000000 --- a/declarative/tabpage.go +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type TabPage struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Container - - Children []Widget - DataBinder DataBinder - Layout Layout - - // TabPage - - AssignTo **walk.TabPage - Content Widget - Image Property - Title Property -} - -func (tp TabPage) Create(builder *Builder) error { - w, err := walk.NewTabPage() - if err != nil { - return err - } - - if tp.AssignTo != nil { - *tp.AssignTo = w - } - - return builder.InitWidget(tp, w, func() error { - if tp.Content != nil && len(tp.Children) == 0 { - if err := tp.Content.Create(builder); err != nil { - return err - } - } - - return nil - }) -} diff --git a/declarative/tabwidget.go b/declarative/tabwidget.go deleted file mode 100644 index d4d5213f..00000000 --- a/declarative/tabwidget.go +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type TabWidget struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // TabWidget - - AssignTo **walk.TabWidget - ContentMargins Margins - ContentMarginsZero bool - OnCurrentIndexChanged walk.EventHandler - Pages []TabPage -} - -func (tw TabWidget) Create(builder *Builder) error { - w, err := walk.NewTabWidget(builder.Parent()) - if err != nil { - return err - } - - if tw.AssignTo != nil { - *tw.AssignTo = w - } - - return builder.InitWidget(tw, w, func() error { - for _, tp := range tw.Pages { - var wp *walk.TabPage - if tp.AssignTo == nil { - tp.AssignTo = &wp - } - - if tp.Content != nil && len(tp.Children) == 0 { - tp.Layout = HBox{Margins: tw.ContentMargins, MarginsZero: tw.ContentMarginsZero} - } - - if err := tp.Create(builder); err != nil { - return err - } - - if err := w.Pages().Add(*tp.AssignTo); err != nil { - return err - } - } - - if tw.OnCurrentIndexChanged != nil { - w.CurrentIndexChanged().Attach(tw.OnCurrentIndexChanged) - } - - return nil - }) -} diff --git a/declarative/textedit.go b/declarative/textedit.go deleted file mode 100644 index 923a209e..00000000 --- a/declarative/textedit.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" - "github.com/lxn/win" -) - -type TextEdit struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // TextEdit - - AssignTo **walk.TextEdit - HScroll bool - MaxLength int - OnTextChanged walk.EventHandler - ReadOnly Property - Text Property - TextAlignment Alignment1D - TextColor walk.Color - VScroll bool -} - -func (te TextEdit) Create(builder *Builder) error { - var style uint32 - if te.HScroll { - style |= win.WS_HSCROLL - } - if te.VScroll { - style |= win.WS_VSCROLL - } - - w, err := walk.NewTextEditWithStyle(builder.Parent(), style) - if err != nil { - return err - } - - if te.AssignTo != nil { - *te.AssignTo = w - } - - return builder.InitWidget(te, w, func() error { - w.SetTextColor(te.TextColor) - - if err := w.SetTextAlignment(walk.Alignment1D(te.TextAlignment)); err != nil { - return err - } - - if te.MaxLength > 0 { - w.SetMaxLength(te.MaxLength) - } - - if te.OnTextChanged != nil { - w.TextChanged().Attach(te.OnTextChanged) - } - - return nil - }) -} diff --git a/declarative/textlabel.go b/declarative/textlabel.go deleted file mode 100644 index 8108ebf6..00000000 --- a/declarative/textlabel.go +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2018 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type Alignment2D uint - -const ( - AlignHVDefault = Alignment2D(walk.AlignHVDefault) - AlignHNearVNear = Alignment2D(walk.AlignHNearVNear) - AlignHCenterVNear = Alignment2D(walk.AlignHCenterVNear) - AlignHFarVNear = Alignment2D(walk.AlignHFarVNear) - AlignHNearVCenter = Alignment2D(walk.AlignHNearVCenter) - AlignHCenterVCenter = Alignment2D(walk.AlignHCenterVCenter) - AlignHFarVCenter = Alignment2D(walk.AlignHFarVCenter) - AlignHNearVFar = Alignment2D(walk.AlignHNearVFar) - AlignHCenterVFar = Alignment2D(walk.AlignHCenterVFar) - AlignHFarVFar = Alignment2D(walk.AlignHFarVFar) -) - -type TextLabel struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size // Set MinSize.Width to a value > 0 to enable dynamic line wrapping. - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // static - - TextColor walk.Color - - // Text - - AssignTo **walk.TextLabel - TextAlignment Alignment2D - Text Property -} - -func (tl TextLabel) Create(builder *Builder) error { - w, err := walk.NewTextLabel(builder.Parent()) - if err != nil { - return err - } - - if tl.AssignTo != nil { - *tl.AssignTo = w - } - - return builder.InitWidget(tl, w, func() error { - w.SetTextColor(tl.TextColor) - - if err := w.SetTextAlignment(walk.Alignment2D(tl.TextAlignment)); err != nil { - return err - } - - return nil - }) -} diff --git a/declarative/toolbar.go b/declarative/toolbar.go deleted file mode 100644 index d996bf35..00000000 --- a/declarative/toolbar.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type ToolBarButtonStyle int - -const ( - ToolBarButtonImageOnly ToolBarButtonStyle = iota - ToolBarButtonTextOnly - ToolBarButtonImageBeforeText - ToolBarButtonImageAboveText -) - -type ToolBar struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // ToolBar - - Actions []*walk.Action // Deprecated, use Items instead - AssignTo **walk.ToolBar - ButtonStyle ToolBarButtonStyle - Items []MenuItem - MaxTextRows int - Orientation Orientation -} - -func (tb ToolBar) Create(builder *Builder) error { - w, err := walk.NewToolBarWithOrientationAndButtonStyle(builder.Parent(), walk.Orientation(tb.Orientation), walk.ToolBarButtonStyle(tb.ButtonStyle)) - if err != nil { - return err - } - - if tb.AssignTo != nil { - *tb.AssignTo = w - } - - return builder.InitWidget(tb, w, func() error { - imageList, err := walk.NewImageList(walk.Size{16, 16}, 0) - if err != nil { - return err - } - w.SetImageList(imageList) - - mtr := tb.MaxTextRows - if mtr < 1 { - mtr = 1 - } - if err := w.SetMaxTextRows(mtr); err != nil { - return err - } - - if len(tb.Items) > 0 { - builder.deferBuildActions(w.Actions(), tb.Items) - } else { - if err := addToActionList(w.Actions(), tb.Actions); err != nil { - return err - } - } - - return nil - }) -} diff --git a/declarative/toolbutton.go b/declarative/toolbutton.go deleted file mode 100644 index aa6556ba..00000000 --- a/declarative/toolbutton.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type ToolButton struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // Button - - Image Property - OnClicked walk.EventHandler - Text Property - - // ToolButton - - AssignTo **walk.ToolButton -} - -func (tb ToolButton) Create(builder *Builder) error { - w, err := walk.NewToolButton(builder.Parent()) - if err != nil { - return err - } - - if tb.AssignTo != nil { - *tb.AssignTo = w - } - - return builder.InitWidget(tb, w, func() error { - if tb.OnClicked != nil { - w.Clicked().Attach(tb.OnClicked) - } - - return nil - }) -} diff --git a/declarative/treeview.go b/declarative/treeview.go deleted file mode 100644 index 1a6ac949..00000000 --- a/declarative/treeview.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type TreeView struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // TreeView - - AssignTo **walk.TreeView - ItemHeight int - Model walk.TreeModel - OnCurrentItemChanged walk.EventHandler - OnExpandedChanged walk.TreeItemEventHandler - OnItemActivated walk.EventHandler -} - -func (tv TreeView) Create(builder *Builder) error { - w, err := walk.NewTreeView(builder.Parent()) - if err != nil { - return err - } - - if tv.AssignTo != nil { - *tv.AssignTo = w - } - - return builder.InitWidget(tv, w, func() error { - if tv.ItemHeight > 0 { - w.SetItemHeight(tv.ItemHeight) - } - - if err := w.SetModel(tv.Model); err != nil { - return err - } - - if tv.OnCurrentItemChanged != nil { - w.CurrentItemChanged().Attach(tv.OnCurrentItemChanged) - } - - if tv.OnExpandedChanged != nil { - w.ExpandedChanged().Attach(tv.OnExpandedChanged) - } - - if tv.OnItemActivated != nil { - w.ItemActivated().Attach(tv.OnItemActivated) - } - - return nil - }) -} diff --git a/declarative/validators.go b/declarative/validators.go deleted file mode 100644 index 7f6e8e66..00000000 --- a/declarative/validators.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type ValidatorRef struct { - Validator walk.Validator -} - -func (vr ValidatorRef) Create() (walk.Validator, error) { - return vr.Validator, nil -} - -type Range struct { - Min float64 - Max float64 -} - -func (r Range) Create() (walk.Validator, error) { - return walk.NewRangeValidator(r.Min, r.Max) -} - -type Regexp struct { - Pattern string -} - -func (re Regexp) Create() (walk.Validator, error) { - return walk.NewRegexpValidator(re.Pattern) -} - -type SelRequired struct { -} - -func (SelRequired) Create() (walk.Validator, error) { - return walk.SelectionRequiredValidator(), nil -} - -type dMultiValidator struct { - validators []Validator -} - -func (av dMultiValidator) Create() (walk.Validator, error) { - var validators []walk.Validator - - for _, dv := range av.validators { - if wv, err := dv.Create(); err != nil { - return nil, err - } else { - validators = append(validators, wv) - } - } - - return &wMultiValidator{validators}, nil -} - -type wMultiValidator struct { - validators []walk.Validator -} - -func (av *wMultiValidator) Validate(v interface{}) error { - for _, validator := range av.validators { - if err := validator.Validate(v); err != nil { - return err - } - } - - return nil -} diff --git a/declarative/webview.go b/declarative/webview.go deleted file mode 100644 index 651fa4a5..00000000 --- a/declarative/webview.go +++ /dev/null @@ -1,158 +0,0 @@ -// Copyright 2012 The Walk Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package declarative - -import ( - "github.com/lxn/walk" -) - -type WebView struct { - // Window - - Background Brush - ContextMenuItems []MenuItem - DoubleBuffering bool - Enabled Property - Font Font - MaxSize Size - MinSize Size - Name string - OnBoundsChanged walk.EventHandler - OnKeyDown walk.KeyEventHandler - OnKeyPress walk.KeyEventHandler - OnKeyUp walk.KeyEventHandler - OnMouseDown walk.MouseEventHandler - OnMouseMove walk.MouseEventHandler - OnMouseUp walk.MouseEventHandler - OnSizeChanged walk.EventHandler - Persistent bool - RightToLeftReading bool - ToolTipText Property - Visible Property - - // Widget - - Alignment Alignment2D - AlwaysConsumeSpace bool - Column int - ColumnSpan int - GraphicsEffects []walk.WidgetGraphicsEffect - Row int - RowSpan int - StretchFactor int - - // WebView - - AssignTo **walk.WebView - NativeContextMenuEnabled Property - OnBrowserVisibleChanged walk.EventHandler - OnCanGoBackChanged walk.EventHandler - OnCanGoForwardChanged walk.EventHandler - OnDocumentCompleted walk.StringEventHandler - OnDocumentTitleChanged walk.EventHandler - OnDownloaded walk.EventHandler - OnDownloading walk.EventHandler - OnNativeContextMenuEnabledChanged walk.EventHandler - OnNavigated walk.StringEventHandler - OnNavigatedError walk.WebViewNavigatedErrorEventHandler - OnNavigating walk.WebViewNavigatingEventHandler - OnNewWindow walk.WebViewNewWindowEventHandler - OnProgressChanged walk.EventHandler - OnQuitting walk.EventHandler - OnShortcutsEnabledChanged walk.EventHandler - OnStatusBarVisibleChanged walk.EventHandler - OnStatusTextChanged walk.EventHandler - OnTheaterModeChanged walk.EventHandler - OnToolBarEnabledChanged walk.EventHandler - OnToolBarVisibleChanged walk.EventHandler - OnURLChanged walk.EventHandler - OnWindowClosing walk.WebViewWindowClosingEventHandler - ShortcutsEnabled Property - URL Property -} - -func (wv WebView) Create(builder *Builder) error { - w, err := walk.NewWebView(builder.Parent()) - if err != nil { - return err - } - - if wv.AssignTo != nil { - *wv.AssignTo = w - } - - return builder.InitWidget(wv, w, func() error { - if wv.OnBrowserVisibleChanged != nil { - w.BrowserVisibleChanged().Attach(wv.OnBrowserVisibleChanged) - } - if wv.OnCanGoBackChanged != nil { - w.CanGoBackChanged().Attach(wv.OnCanGoBackChanged) - } - if wv.OnCanGoForwardChanged != nil { - w.CanGoForwardChanged().Attach(wv.OnCanGoForwardChanged) - } - if wv.OnDocumentCompleted != nil { - w.DocumentCompleted().Attach(wv.OnDocumentCompleted) - } - if wv.OnDocumentTitleChanged != nil { - w.DocumentTitleChanged().Attach(wv.OnDocumentTitleChanged) - } - if wv.OnDownloaded != nil { - w.Downloaded().Attach(wv.OnDownloaded) - } - if wv.OnDownloading != nil { - w.Downloading().Attach(wv.OnDownloading) - } - if wv.OnNativeContextMenuEnabledChanged != nil { - w.NativeContextMenuEnabledChanged().Attach(wv.OnNativeContextMenuEnabledChanged) - } - if wv.OnNavigated != nil { - w.Navigated().Attach(wv.OnNavigated) - } - if wv.OnNavigatedError != nil { - w.NavigatedError().Attach(wv.OnNavigatedError) - } - if wv.OnNavigating != nil { - w.Navigating().Attach(wv.OnNavigating) - } - if wv.OnNewWindow != nil { - w.NewWindow().Attach(wv.OnNewWindow) - } - if wv.OnProgressChanged != nil { - w.ProgressChanged().Attach(wv.OnProgressChanged) - } - if wv.OnURLChanged != nil { - w.URLChanged().Attach(wv.OnURLChanged) - } - if wv.OnShortcutsEnabledChanged != nil { - w.ShortcutsEnabledChanged().Attach(wv.OnShortcutsEnabledChanged) - } - if wv.OnStatusBarVisibleChanged != nil { - w.StatusBarVisibleChanged().Attach(wv.OnStatusBarVisibleChanged) - } - if wv.OnStatusTextChanged != nil { - w.StatusTextChanged().Attach(wv.OnStatusTextChanged) - } - if wv.OnTheaterModeChanged != nil { - w.TheaterModeChanged().Attach(wv.OnTheaterModeChanged) - } - if wv.OnToolBarEnabledChanged != nil { - w.ToolBarEnabledChanged().Attach(wv.OnToolBarEnabledChanged) - } - if wv.OnToolBarVisibleChanged != nil { - w.ToolBarVisibleChanged().Attach(wv.OnToolBarVisibleChanged) - } - if wv.OnQuitting != nil { - w.Quitting().Attach(wv.OnQuitting) - } - if wv.OnWindowClosing != nil { - w.WindowClosing().Attach(wv.OnWindowClosing) - } - - return nil - }) -} diff --git a/expression.go b/expression.go index 2391f4d2..9f24e0f7 100644 --- a/expression.go +++ b/expression.go @@ -11,8 +11,6 @@ import ( "reflect" ) -import _ "gopkg.in/Knetic/govaluate.v3" - type Expression interface { Value() interface{} Changed() *Event |