TODO
====

- #117: wx.ID_ANY ?
- ADD designer plugin with sun valley ttk theme!!!!!
- Issue: redraw previews on theme change.
- Treeview with scrollHelper. Srollbars are not shown depending on the
  treeview configuration or if columns are set stretch=true
  Investigate the behaviour.
- FIX: Create a frame frame1, create a frame2 inside, then add a button.
  Create another frame frame3 sibling of frame1, copy frame2 and paste in
  frame3, the content of frame 2 is duplicated in frame3.
- ttkstyles branch: add optiondb_initializer=None to builder and codebuilder.
  or name it on_first_widget_cb. Function that will execute only once after
  the first widget is created, generally the root widget.
- Add widgets from https://code.activestate.com/recipes/users/4189907/ ?
- Add a tk.Spinbox, set from_:8  to:5  This show error on build, but
  howto validate this combination of properties?
- Allow to define custom font.
  This font can be defined selecting an specific font or can be defined
  based on a default TK font. For example I want TkTextFont but with size 60.
- Add PDFviewer widget based on tkPDFView
- Add widget for CanvasPlus
- Add support to tkinterpp?
- Add support to ttkbootstrap:
  In config panel:
    Create combobox selector for default theme engine (in this case ttkbootstrap)
    If ttkbootstrap is active show the diferent styles provided by ttkbootstrap
    in the style property for each widget. (Eg: primary.TButton)
- Tcl 8.7 alpha adds new properties to widgets. Investigate that.
  For example, for tk.Toplevel: backgroundimage, tile
- ttk image property (label), allows to use more than one image? test in python first.
  Add proper editor for this.
- Do not rebuild entire preview for simple property changes
- On code generation, allow to select which tk_variables import in the class.
  See example in userinputapp.py. Add option to define this variables as None,
  so code editors can find them.
- Tk 8.5 added anchor to grid manager, investigate how it works.

Commands
========
twine upload -r test_pugubu dist/*
pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ pygubu[all]==0.23.1

twine upload -r test_pugubu_designer dist/*
pip install --no-cache-dir -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ pygubu-designer[all]


Theming notes:
=============

resources
  - image (name, filename, format, data)
  - named font
  - OptionDatabaseGroup
    OptionDatabase (pattern, value, priority, type?(string, image, color, dimension))
  Theme:
    properties: name, parent
    children: list of styles
  Styles:
    ElementImage:
      properties: name, border, height, padding, sticky, width
    ElementVsapi: not supported
    DotStyle: the '.'
        properties: dynamic properties?
    WidgetStyle:
        parent: one of TButton, TEntry?


Style Editor
  configure
  map

Element Editor:
  configure
  imagespect

LayoutElement Editor (layoutspect)
  properties: elementname, side, sticky


The standard Tk <<Cut>>, <<Copy>>, <<Paste>>, and <<Clear>>

Increase version to sync with pypi.

tk 8.7
======

WIDGET STANDARD OPTIONS  http://www.tcl.tk/man/tcl8.7/TkCmd/options.htm

    -activebackground, activeBackground, Foreground
    -activeborderwidth, activeBorderWidth, BorderWidth
    -activeforeground, activeForeground, Background
    -activerelief, activeRelief, Relief
    -anchor, anchor, Anchor
    -background or -bg, background, Background
    -bitmap, bitmap, Bitmap
    -borderwidth or -bd, borderWidth, BorderWidth
    -cursor, cursor, Cursor
    -compound, compound, Compound
    -disabledforeground, disabledForeground, DisabledForeground
    -exportselection, exportSelection, ExportSelection
    -font, font, Font
    -foreground or -fg, foreground, Foreground
    -highlightbackground, highlightBackground, HighlightBackground
    -highlightcolor, highlightColor, HighlightColor
    -highlightthickness, highlightThickness, HighlightThickness
    -image, image, Image
    -insertbackground, insertBackground, Foreground
    -insertborderwidth, insertBorderWidth, BorderWidth
    -insertofftime, insertOffTime, OffTime
    -insertontime, insertOnTime, OnTime
    -insertwidth, insertWidth, InsertWidth
    -jump, jump, Jump
    -justify, justify, Justify
    -orient, orient, Orient
    -padx, padX, Pad
    -pady, padY, Pad
    -placeholder, placeHolder, PlaceHolder
    -placeholderforeground, placeholderForeground, PlaceholderForeground
    -relief, relief, Relief
    -repeatdelay, repeatDelay, RepeatDelay
    -repeatinterval, repeatInterval, RepeatInterval
    -selectbackground, selectBackground, Foreground
    -selectborderwidth, selectBorderWidth, BorderWidth
    -selectforeground, selectForeground, Background
    -setgrid, setGrid, SetGrid
    -takefocus, takeFocus, TakeFocus
    -text, text, Text
    -textvariable, textVariable, Variable
    -troughcolor, troughColor, Background
    -underline, underline, Underline
    -wraplength, wrapLength, WrapLength
    -xscrollcommand, xScrollCommand, ScrollCommand
    -yscrollcommand, yScrollCommand, ScrollCommand
