├── xml ├── doc │ ├── tkinter-menu-child-strict-attributes.txt │ ├── tkinter-menu-strict-attributes.txt │ ├── tkinter-common-menu-child-attributes.txt │ ├── tkinter-menu-specific-attributes.txt │ ├── tkinter-menu-child-specific-attributes.txt │ ├── tkinter-menu-attributes.txt │ ├── tkinter-menu-child-attributes.txt │ ├── tkinter-common-menu-attributes.txt │ ├── generate-widget-defs.sh │ ├── parse-attr-template.py │ ├── tkinter-common-attributes.txt │ ├── tkinter-widget-specific-attributes.txt │ ├── tkinter-all-attributes.txt │ └── widget_template.xml ├── __init__.py ├── rad_xml_attributes_dict.py ├── rad_xml_mainwindow.py ├── rad_xml_frame.py ├── rad_xml_attribute.py └── rad_xml_menu.py ├── .gitignore ├── easy ├── builder-zipper.sh ├── __init__.py ├── builder-example.xml ├── builder2.py └── builder.py ├── widgets ├── __init__.py ├── rad_frame.py ├── rad_canvas.py ├── rad_widget_base.py ├── rad_statusbar.py └── rad_application.py ├── core ├── __init__.py ├── uri.py ├── path.py ├── checkups.py ├── i18n.py ├── defer.py ├── services.py ├── options.py ├── struct_dict.py ├── tools.py └── events.py ├── __init__.py ├── README.md └── LICENSE.lesser /xml/doc/tkinter-menu-child-strict-attributes.txt: -------------------------------------------------------------------------------- 1 | accelerator 2 | columnbreak 3 | hidemargin 4 | -------------------------------------------------------------------------------- /xml/doc/tkinter-menu-strict-attributes.txt: -------------------------------------------------------------------------------- 1 | activeborderwidth 2 | postcommand 3 | tearoff 4 | tearoffcommand 5 | title 6 | -------------------------------------------------------------------------------- /xml/doc/tkinter-common-menu-child-attributes.txt: -------------------------------------------------------------------------------- 1 | activebackground 2 | activeforeground 3 | background 4 | font 5 | foreground 6 | selectcolor 7 | -------------------------------------------------------------------------------- /xml/doc/tkinter-menu-specific-attributes.txt: -------------------------------------------------------------------------------- 1 | activeborderwidth 2 | bd 3 | bg 4 | borderwidth 5 | cursor 6 | disabledforeground 7 | fg 8 | postcommand 9 | relief 10 | tearoff 11 | tearoffcommand 12 | title 13 | -------------------------------------------------------------------------------- /xml/doc/tkinter-menu-child-specific-attributes.txt: -------------------------------------------------------------------------------- 1 | accelerator 2 | bitmap 3 | columnbreak 4 | command 5 | compound 6 | hidemargin 7 | image 8 | label 9 | menu 10 | offvalue 11 | onvalue 12 | selectimage 13 | state 14 | underline 15 | value 16 | variable 17 | -------------------------------------------------------------------------------- /xml/doc/tkinter-menu-attributes.txt: -------------------------------------------------------------------------------- 1 | activebackground 2 | activeborderwidth 3 | activeforeground 4 | background 5 | bd 6 | bg 7 | borderwidth 8 | cursor 9 | disabledforeground 10 | fg 11 | font 12 | foreground 13 | postcommand 14 | relief 15 | selectcolor 16 | tearoff 17 | tearoffcommand 18 | title 19 | -------------------------------------------------------------------------------- /xml/doc/tkinter-menu-child-attributes.txt: -------------------------------------------------------------------------------- 1 | accelerator 2 | activebackground 3 | activeforeground 4 | background 5 | bitmap 6 | columnbreak 7 | command 8 | compound 9 | font 10 | foreground 11 | hidemargin 12 | image 13 | label 14 | menu 15 | offvalue 16 | onvalue 17 | selectcolor 18 | selectimage 19 | state 20 | underline 21 | value 22 | variable 23 | -------------------------------------------------------------------------------- /xml/doc/tkinter-common-menu-attributes.txt: -------------------------------------------------------------------------------- 1 | activebackground 2 | activeforeground 3 | background 4 | bd 5 | bg 6 | bitmap 7 | borderwidth 8 | command 9 | compound 10 | cursor 11 | disabledforeground 12 | fg 13 | font 14 | foreground 15 | image 16 | label 17 | menu 18 | offvalue 19 | onvalue 20 | relief 21 | selectcolor 22 | selectimage 23 | state 24 | underline 25 | value 26 | variable 27 | -------------------------------------------------------------------------------- /xml/doc/generate-widget-defs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd $(dirname "$0") 4 | 5 | pwd 6 | 7 | ATTRLIST="tkinter-widget-specific-attributes.txt" 8 | 9 | TEMPLATE="parse-attr-template.py" 10 | 11 | OUTFILE="rad_xml_widget-parse_attr-defs.py" 12 | 13 | echo > "$OUTFILE" 14 | 15 | for ATTR in $(cat "$ATTRLIST") 16 | 17 | do 18 | cat "$TEMPLATE" | sed -e "s/{attr_name}/$ATTR/" >> $OUTFILE 19 | 20 | done 21 | 22 | cat $OUTFILE 23 | 24 | exit 0 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.py[cod] 2 | 3 | # C extensions 4 | *.so 5 | 6 | # Packages 7 | *.egg 8 | *.egg-info 9 | dist 10 | build 11 | eggs 12 | parts 13 | bin 14 | var 15 | sdist 16 | develop-eggs 17 | .installed.cfg 18 | lib 19 | lib64 20 | __pycache__ 21 | 22 | # Installer logs 23 | pip-log.txt 24 | 25 | # Unit test / coverage reports 26 | .coverage 27 | .tox 28 | nosetests.xml 29 | 30 | # Translations 31 | *.mo 32 | 33 | # Mr Developer 34 | .mr.developer.cfg 35 | .project 36 | .pydevproject 37 | -------------------------------------------------------------------------------- /xml/doc/parse-attr-template.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | def parse_attr_{attr_name} (self, attribute, attrs, **kw): 5 | r""" 6 | << NOT IMPLEMENTED YET >> 7 | 8 | no return value (void); 9 | """ 10 | 11 | # ---------------------------------------------------------------FIXME 12 | print("[WARNING] parse_attr_{attr_name}(): NOT IMPLEMENTED YET") 13 | 14 | # parsed attribute inits 15 | 16 | self._tk_config(attribute) 17 | 18 | # end def 19 | -------------------------------------------------------------------------------- /easy/builder-zipper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd $(dirname "$0") 4 | 5 | XML="builder-example.xml" 6 | 7 | B1="builder" 8 | P1="pydoc3" 9 | F1="$P1-$B1.html" 10 | D1="builder-python3" 11 | 12 | B2="builder2" 13 | P2="pydoc" 14 | F2="$P2-$B2.html" 15 | D2="builder-python2" 16 | 17 | #--- 18 | 19 | $P1 -w "$B1" 20 | $P2 -w "$B2" 21 | 22 | mv -fv "$B1.html" "$F1" 23 | mv -fv "$B2.html" "$F2" 24 | 25 | rm -v *.pyc 26 | 27 | mkdir -pv "$D1" "$D2" 28 | 29 | cp -v "$B1.py" "$D1/" 30 | cp -v "$XML" "$D1/" 31 | cp -v "$F1" "$D1/" 32 | mv -fv "$F1" doc/ 33 | zip -r "$D1" "$D1" 34 | rm -rfv "$D1" 35 | 36 | cp -v "$B2.py" "$D2/" 37 | cp -v "$XML" "$D2/" 38 | cp -v "$F2" "$D2/" 39 | mv -fv "$F2" doc/ 40 | zip -r "$D2" "$D2" 41 | rm -rfv "$D2" 42 | 43 | sleep 1 44 | 45 | mv -fv *.zip ../ 46 | 47 | exit 0 48 | -------------------------------------------------------------------------------- /xml/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """ 5 | tkRAD - tkinter Rapid Application Development library 6 | 7 | (c) 2013+ Raphaël SEBAN 8 | 9 | This program is free software: you can redistribute it and/or 10 | modify it under the terms of the GNU General Public License as 11 | published by the Free Software Foundation, either version 3 of 12 | the License, or (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public 20 | License along with this program. 21 | 22 | If not, see: http://www.gnu.org/licenses/ 23 | """ 24 | -------------------------------------------------------------------------------- /widgets/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """ 5 | tkRAD - tkinter Rapid Application Development library 6 | 7 | (c) 2013+ Raphaël SEBAN 8 | 9 | This program is free software: you can redistribute it and/or 10 | modify it under the terms of the GNU General Public License as 11 | published by the Free Software Foundation, either version 3 of 12 | the License, or (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public 20 | License along with this program. 21 | 22 | If not, see: http://www.gnu.org/licenses/ 23 | """ 24 | -------------------------------------------------------------------------------- /core/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """ 5 | tkRAD - tkinter Rapid Application Development library 6 | 7 | (c) 2013+ Raphaël SEBAN 8 | 9 | This program is free software: you can redistribute it and/or 10 | modify it under the terms of the GNU General Public License as 11 | published by the Free Software Foundation, either version 3 of 12 | the License, or (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public 20 | License along with this program. 21 | 22 | If not, see: http://www.gnu.org/licenses/ 23 | """ 24 | 25 | -------------------------------------------------------------------------------- /easy/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """ 5 | tkRAD - tkinter Rapid Application Development library 6 | 7 | (c) 2013+ Raphaël SEBAN 8 | 9 | This program is free software: you can redistribute it and/or 10 | modify it under the terms of the GNU General Public License as 11 | published by the Free Software Foundation, either version 3 of 12 | the License, or (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public 20 | License along with this program. 21 | 22 | If not, see: http://www.gnu.org/licenses/ 23 | """ 24 | 25 | -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """ 5 | tkRAD - tkinter Rapid Application Development library 6 | 7 | (c) 2013+ Raphaël SEBAN 8 | 9 | This program is free software: you can redistribute it and/or 10 | modify it under the terms of the GNU General Public License as 11 | published by the Free Software Foundation, either version 3 of 12 | the License, or (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public 20 | License along with this program. 21 | 22 | If not, see: http://www.gnu.org/licenses/ 23 | """ 24 | 25 | # set i18n support by default 26 | 27 | from .core import i18n 28 | 29 | i18n.install() 30 | 31 | # restrict to daily use classes 32 | 33 | from .widgets.rad_application import RADApplication 34 | 35 | from .widgets.rad_mainwindow import RADMainWindow 36 | 37 | from .xml.rad_xml_mainwindow import RADXMLMainWindow 38 | 39 | from .xml.rad_xml_frame import RADXMLFrame 40 | -------------------------------------------------------------------------------- /easy/builder-example.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 |