# Path: ui/TooltipEntry.py
# class TooltipEntry(Entry):
#     def __init__(self, parent, *args, **kw):
#         Entry.__init__(self, parent, *args, **kw)
# 
#         self.tooltip = Tooltip2(self, waittime=0, text='', bg='white')  #, pad=(0, 0, 0, 0))
# 
#     def showTooltip(self, text=None, pos=None):
#         self.tooltip.show(text, pos)
# 
#     def hideTooltip(self):
#         self.tooltip.hide()
# 
#     def destroy(self):
#         self.tooltip.hide()
#         super().destroy()
# 
# TIP_BELOW = 'below'


from tkinter.ttk import Treeview, Entry, Combobox
from tkinter.constants import *
from ui.TooltipEntry import TooltipEntry, TIP_BELOW
    from tkinter import Tk
    from tkinter.constants import *
import re
        valid = widget.get() == '100 chaos' or widget.get() == ''
        if not valid:
            widget.showTooltip('Invalid price', TIP_BELOW)
            widget.focus()
        else:
            widget.hideTooltip()
        return valid

    cent_iprice = EditableTreeview.ColEntry(TooltipEntry(tree), func_validate=validate_price)
    cent_fprice = EditableTreeview.ColEntry(TooltipEntry(tree), func_validate=validate_price)
    cent_fstate = EditableTreeview.ColEntry(Combobox(tree, values=['', 'Enable', 'Disable'], state='readonly'),
                                            accept_events=('<<ComboboxSelected>>', '<Return>'))

    tree.register_column('Item Price', cent_iprice)
    tree.register_column('Filter Price', cent_fprice)
    tree.register_column('Filter Force State', cent_fstate)


    def init_column(id):
        tree.heading(id, text=id, anchor=W, command=lambda col=id: tree.sort_col(col))

    for col in tree['columns']:
        init_column(col)

    tree.heading('#0', text='ID')
    # tree.heading('Title', text='Title')
    # tree.heading('Item Price', text='Item Price')
    # tree.heading('Filter Price', text='Filter Price')
    # tree.heading('Filter Force State', text='Filter Force State')


# Path: ui/TooltipEntry.py
# class TooltipEntry(Entry):
#     def __init__(self, parent, *args, **kw):
#         Entry.__init__(self, parent, *args, **kw)
# 
#         self.tooltip = Tooltip2(self, waittime=0, text='', bg='white')  #, pad=(0, 0, 0, 0))
# 
#     def showTooltip(self, text=None, pos=None):
#         self.tooltip.show(text, pos)
# 
#     def hideTooltip(self):
#         self.tooltip.hide()
# 
#     def destroy(self):
#         self.tooltip.hide()
#         super().destroy()
# 
# TIP_BELOW = 'below'


# Path: ui/MyTreeview.py
from tkinter.ttk import Treeview, Entry, Combobox
from tkinter.constants import *
from ui.TooltipEntry import TooltipEntry, TIP_BELOW
    from tkinter import Tk
    from tkinter.constants import *
import re

        valid = widget.get() == '100 chaos' or widget.get() == ''
        if not valid:
            widget.showTooltip('Invalid price', TIP_BELOW)
            widget.focus()
        else:
            widget.hideTooltip()
        return valid

    cent_iprice = EditableTreeview.ColEntry(TooltipEntry(tree), func_validate=validate_price)
    cent_fprice = EditableTreeview.ColEntry(TooltipEntry(tree), func_validate=validate_price)
    cent_fstate = EditableTreeview.ColEntry(Combobox(tree, values=['', 'Enable', 'Disable'], state='readonly'),
                                            accept_events=('<<ComboboxSelected>>', '<Return>'))

    tree.register_column('Item Price', cent_iprice)
    tree.register_column('Filter Price', cent_fprice)
    tree.register_column('Filter Force State', cent_fstate)


    def init_column(id):
        tree.heading(id, text=id, anchor=W, command=lambda col=id: tree.sort_col(col))

    for col in tree['columns']:
        init_column(col)

    tree.heading('#0', text='ID')
    # tree.heading('Title', text='Title')
    # tree.heading('Item Price', text='Item Price')
    # tree.heading('Filter Price', text='Filter Price')
    # tree.heading('Filter Force State', text='Filter Force State')


    tree.insert('', END, values=('Atziri\'s Disfavour', '1 ex', '* 1', ''), text='_atziri\'s_disfavour')