globalforest/main.py

100 lines
2.4 KiB
Python

__author__ = "afx"
__version__ = "0.2"
# Import system modules
from multiprocessing import Process, Queue
import random
import sqlite3
# Import Kivy modules
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.core.window import Window
from kivy.graphics import Rectangle
# Import local modules
from forestmapview import ForestMapView
#from searchpopupmenu import SearchPopupMenu
from gpshelper import GpsHelper
from settings import SampleBoxLayout
from game import GameWidget
from cncbot import CnCApp
# Welcome message
MOTD = """]
] GlobalForest {} by afx""".format(__version__)
Builder.load_string("""
<ScreenOne>:
BoxLayout:
Button:
text: "Go to Screen 2"
on_press:
root.manager.transition.direction = "left"
root.manager.transition.duration = 1
root.manager.current = "screen_two"
<ScreenTwo>:
BoxLayout:
Button:
text: "Go to Screen 1"
on_press:
root.manager.transition.direction = "right"
root.manager.transition.duration = 1
root.manager.current = "screen_one"
""")
class ScreenOne(Screen):
pass
class ScreenTwo(Screen):
pass
class MainApp(MDApp):
connection = None
cursor = None
search_menu = None
def build(self):
pass
#Window.clearcolor = (0, 0, 0, 0)
#return SampleBoxLayout()
def on_start(self):
# Welcome
print(MOTD)
self.logqueue.put('] Framework started.')
self.theme_cls.primary_palette = 'BlueGray'
# Initialize GPS
GpsHelper().run()
# Connect to database
self.connection = sqlite3.connect("databases/fountains.db")
self.cursor = self.connection.cursor()
# Instantiate SearchPopupMenu
#self.search_menu = SearchPopupMenu()
if __name__ == '__main__':
# Start the Command and Control bot. Mainly for reporting.
logqueue = Queue()
cnc = Process(target=CnCApp, args=((logqueue),))
cnc.start()
# Start the Kivy Framework main loop
kivyapp = MainApp()
kivyapp.logqueue = logqueue
kivyapp.run()
# Cleanup subprocesses
print('] Framework terminated.')
cnc.kill()