Exemplo n.º 1
0
    def build(self):
##        SM = ScreenManager(transition=NoTransition())
##        SM.add_widget(ClusterDetailsScreen(name='cluster details'))
        global SM
        window=RelativeLayout()
        SM = ClusterDetailsScreen()
        window.add_widget(SM)
        picto = SM.ids['pictoPanel']
        bubble = SM.ids['bubblePanel']
        specs = SM.ids['specsPanel']

#'left_top', 'left_mid', 'left_bottom',
#'top_left', 'top_mid', 'top_right',
#'right_top', 'right_mid', 'right_bottom',
#'bottom_left', 'bottom_mid', 'bottom_right'
        
        c1=Comment("capabilities of\nthe cluster in\nlayman's terms", \
                   (10,100),(152,89),'top_mid')
        c2=Comment("adequate size +\nuniform strokes =\nreadable font", \
                   (20,390),(175,90),'bottom_left')
        c3=Comment("1 square falling into \nplace = 4 nodes\nchanging status", \
                   (150,230),(207,80),'right_bottom')
        c4=Comment("1 circle = 1 job with\ndiameter, position, color,\nand transparency\nreflecting job\ncharacteristics", \
                   (420,200),(245,120),'right_bottom')
        c5=Comment("The circles rise like\nbubbles as they\napproach completion,\nfinally floating away\nwhen they finish.", \
                   (690,360),(198,140),'bottom_left')
        c6=Comment("scrolling banner with\nhyperlinks that direct\nto the user's website", \
                   (100,10),(230,80),'right_bottom')
        c7=Comment("Bar graphs depict\ndifferences more\nclearly than pie\n charts[2].", \
                   (210,500),(170,110),'bottom_right')
        c8=Comment("Click on a circle\nto see job details.", \
                   (710,230),(180,60),'left_mid')
        c9=Comment("color-blind-\nfriendly palette", \
                   (420,450),(160,60),'right_bottom')

        comments=[c1,c2,c3,c4,c5,c6,c7,c8,c9]

        for x in comments:
            window.add_widget(x)
        
        specs.ids['details'].text = SM.importText('melete.rst')
        SM.ids['banner'].text = SM.importText('users.rst')

        Clock.schedule_once(self.scrollBanner)
        Clock.schedule_once(c1.appear,12)
        Clock.schedule_once(c2.appear,24)
        Clock.schedule_once(c3.appear,36)
        Clock.schedule_once(c4.appear,48)
        Clock.schedule_once(c5.appear,60)
        Clock.schedule_once(c6.appear,72)
        Clock.schedule_once(c7.appear,84)
        Clock.schedule_once(c8.appear,96)
        Clock.schedule_once(c9.appear,108)
        Clock.schedule_interval(self.scrollBanner, 60)
        Clock.schedule_interval(picto.addNodes, .1)
        Clock.schedule_interval(picto.moreNodes, 5)
        Clock.schedule_once(bubble.addJobs)
        Clock.schedule_interval(bubble.progress, 6.1)
        
        return window
Exemplo n.º 2
0
class FIT3140Ui(BoxLayout):
	def __init__(self, maze, robotController, **kwargs):
	
		super(self.__class__,self).__init__(**kwargs)
		self.app = kivy.app.App.get_running_app()
		
		self.maze = maze
		self.robotController = robotController
		self.robot = self.robotController.robot
		
		self.mazeViewFloat = RelativeLayout()
		self.mazeView = MazeView(self.maze, self.robot, self.mazeViewFloat)
		self.mazeViewFloat.add_widget(self.mazeView)
		
		self.workspaceLayout = BoxLayout(orientation="vertical", size_hint=(1, .9))#will contain a 'begin' button and label
		self.beginButton = Button(text="Begin", size_hint=(1, .1))#run the tree
		self.beginButton.bind(on_press=self.app.runProgram)
		self.workspace = FCodeWorkspace()
		self.workspaceLayout.add_widget(self.workspace)
		self.workspaceLayout.add_widget(self.beginButton)
		
		#add all the things to the main screen
		self.add_widget(Palette(workspace=self.workspace))#add the palette
		self.add_widget(self.workspaceLayout)#add the workspace	
		self.add_widget(self.mazeViewFloat)#add the maze
Exemplo n.º 3
0
 def add_widget(self, widget, index=0):
     slide = RelativeLayout(size=self.size, x=self.x - self.width, y=self.y)
     slide.add_widget(widget)
     super(Carousel, self).add_widget(slide, index)
     if index != 0:
         self.slides.insert(index - len(self.slides), widget)
     else:
         self.slides.append(widget)
    def __init__(self, **kwargs):
        super(ChessboardUI, self).__init__(**kwargs)
        game = kwargs.get('game', None)

        # left numbers
        left_box = BoxLayout(orientation='vertical', size_hint_x=None, width=dp(30))
        for n in range(8, -1, -1):
            if n == 0:
                left_box.add_widget(Label())
                break
            left_box.add_widget(Label(text=str(n), color=(0,0,0,1)))

        # right numbers
        right_box = BoxLayout(orientation='vertical', size_hint_x=None, width=dp(30))
        for n in range(8, -1, -1):
            if n == 0:
                right_box.add_widget(Label(size_hint_y=None, height=dp(30)))
                break
            right_box.add_widget(GridLabelOpponent(text=str(n), color=(0,0,0,1)))


        main_box = BoxLayout(orientation='vertical')

        merge_layers = RelativeLayout()
        background_grid = ChessboardGrid()
        self.actual_board = Chessboard(game=game)
        self.actual_board.bind(move_made=self.set_moves)
        merge_layers.add_widget(background_grid)
        merge_layers.add_widget(self.actual_board)


        bottom_box = BoxLayout(size_hint_y=None, height=dp(30))
        for c in ('a','b','c','d','e','f','g','h'):
            bottom_box.add_widget(Label(text=c, color=(0,0,0,1)))

        top_box = BoxLayout(size_hint_y=None, height=dp(30))
        for c in ('','a','b','c','d','e','f','g','h',''):
            if not c:
                top_box.add_widget(Label(size_hint_x=None, width=dp(30)))
                continue
            top_box.add_widget(GridLabelOpponent(text=c))

        main_box.add_widget(merge_layers)
        main_box.add_widget(bottom_box)

        except_top = BoxLayout()

        except_top.add_widget(left_box)
        except_top.add_widget(main_box)
        except_top.add_widget(right_box)

        self.orientation = 'vertical'
        self.add_widget(top_box)
        self.add_widget(except_top)

        self.labels = [bottom_box, top_box, left_box, right_box]
        self.bind(minimize=self.min, all_moves=self.change_board_moves)
Exemplo n.º 5
0
 def buildUI(self):
     bottomBox = RelativeLayout() # 1024,188
     self.screenManager = KYRScreenManager(size=(1024,512), size_hint=(None,None))
     self.info = TextInput(text=self.infoText, multiline=True, readonly=True, size=(1014,30), size_hint=(None,None), pos=(6,152))
     btnMenu = Button(text='menu', size=(200,140), size_hint=(None,None), pos=(6,6))
     
     bottomBox.add_widget(self.info)
     bottomBox.add_widget(btnMenu)
     
     self.add_widget(self.screenManager)
     self.add_widget(bottomBox)
Exemplo n.º 6
0
    def __init__(self):
        super(MainWidget, self).__init__()

        songpath1 = 'together-we-are.wav'
        songpath2 = 'lionhearted.wav'

        self.selection = Selection()

        song1 = Song(songpath1, song1_structure, self.selection)
        song2 = Song(songpath2, song2_structure, self.selection)

        self.beatgen = BeatwiseGenerator()
        self.beatgen.add_song(song1)
        self.beatgen.add_song(song2)

        audio = Audio()
        audio.add_generator(self.beatgen)

        self.selection.beatgen = self.beatgen

        self.clock = ClassClock()
        self.conductor = Conductor(self.clock)
        self.scheduler = Scheduler(self.conductor)

        self.conductor.set_bpm(128)

        #info = Label(text = "text", pos=(0, 500), text_size=(100,100), valign='top')
        #self.add_widget(info)

        # root = ScrollView(size_hint=(None, None), size=(800, 600),
        #                   pos_hint={'center_x': .5, 'center_y': .5})
        # self.add_widget(root)

        #self.rel = AnchorLayout(size_hint=(None, None), width=9000, pos_hint={'center_x': .5, 'center_y': .5},
        #                        anchor_x='left', anchor_y='top')
        self.rel = RelativeLayout(size_hint=(None, None), width=9000, pos_hint={'center_x': .5, 'center_y': .5})
        self.add_widget(self.rel)

        # anchor = AnchorLayout(anchor_x='left', anchor_y='top')
        # self.rel.add_widget(anchor)

        layout = GridLayout(cols=1, padding=50, spacing=50, size_hint=(None, None), width=9000, row_force_default=True,
                            row_default_height=100)
        self.rel.add_widget(layout)

        for song in self.beatgen.get_songs():
            container = RelativeLayout()
            layout.add_widget(container)
            container.add_widget(song)

        self.nowline = Nowline(self.scheduler)
        self.rel.add_widget(self.nowline)

        self.beatgen.nowline = self.nowline
Exemplo n.º 7
0
class ColorPickerBox(RelativeLayout):
    def __init__(self, popupwindow, **kwargs):
        super(ColorPickerBox, self).__init__(**kwargs)

        self.popupwindow = popupwindow

        self.generator = RelativeLayout(
                                    size_hint = (None, None),
                                    width = "400dp",
                                    height = "200dp",
                                    pos = ["50dp", "100dp"]   #"50dp"
                                       )

        self.acw = AutonomousColorWheel(self)
        self.generator.add_widget(self.acw)

        self.gpi = ColoredTextInput(pos = ["230dp", "80dp"])
        self.generator.add_widget(self.gpi)

        self.add_widget(self.generator)


        self.create_btn = Button(
                                    size_hint = [None, None],
                                    size = ["100dp","30dp"],
                                    pos = ["320dp","10dp"]
                                )
        self.create_btn.bind(on_release=self.create_group)


        self.cancel_btn = Button(
                                    size_hint = [None, None],
                                    size = ["100dp","30dp"],
                                    pos = ["200dp","10dp"]
                                )
        self.cancel_btn.bind(on_release=self.cancel_creation)



        self.add_widget(self.cancel_btn)
        self.add_widget(self.create_btn)

    def create_group(self, instance):
        print("creation")
        self.popupwindow.change_group()
        self.popupwindow.dismiss()

    def cancel_creation(self, instance):
        print("cancel creation")
        self.popupwindow.dismiss()

    def color_change(self, rgba):
        self.gpi.back_color = rgba
Exemplo n.º 8
0
 def add_widget(self, widget, index=0):
     #replacing index by z-index
     #a = RelativeLayout.add_widget(self, widget, getattr(widget,'z',0))
     #Duplicate pointer to template
     widget.template = self
     #Re order them according to z elt:
     cs = self.children[:]
     cs.append(widget)
     cs.sort(key= lambda x: getattr(x,'z',0))
     self.clear_widgets()
     for c in cs:
         RelativeLayout.add_widget(self,c)
     self.children = cs
Exemplo n.º 9
0
 def buildUI(self):
     bottomBox = RelativeLayout() # 1024,188
     self.screenManager = KYRScreenManager(size=(1068,450), size_hint=(None,None), pos=(25,224))
     self.info = Info(text=self.infoText, multiline=True,
                     readonly=True, size=(1064,30), size_hint=(None,None), pos=(25,167))
     btnMenu = Button(text='menu', size=(196,120), size_hint=(None,None), pos=(28,16), opacity = .5)
     self.inventory = GridLayout(orientation='vertical',cols=5,pos=(333,-562),spacing=15)
     
     bottomBox.add_widget(self.info)
     bottomBox.add_widget(btnMenu)
     self.add_widget(self.inventory)
     self.add_widget(self.screenManager)
     self.add_widget(bottomBox)
     self.buildInventory() 
Exemplo n.º 10
0
class GameOver(Popup):
  
  def __init__(self, root_widget, **kw):
    super(GameOver, self).__init__(**kw)
    self.root_widget = root_widget
    self.title = 'GAME OVER'
    self.layout = RelativeLayout()
    self.btn_new_game = Button(text='New Game', size_hint=(.5,.1), pos_hint={'center_x':.25, 'center_y': .05})
    self.btn_new_game.bind(on_press=self.new_game)
    self.btn_exit = Button(text='Exit', size_hint=(.5,.1), pos_hint={'center_x':.75, 'center_y': .05})
    self.btn_exit.bind(on_press=self.root_widget.close_app)
    self.lbl_score = Label(size_hint=(.5,.1), pos_hint={'center_x':.5, 'center_y': .4})
    self.lbl_high_score = Label(size_hint=(.5,.1), pos_hint={'center_x':.5, 'center_y': .7})
    self.layout.add_widget(self.lbl_score)
    self.layout.add_widget(self.lbl_high_score)
    self.layout.add_widget(self.btn_new_game)
    self.layout.add_widget(self.btn_exit)
    self.content = self.layout
    self.size_hint = (None, None)
    self.size = (400, 400)
        
  def set_score(self, score):
    high_score = load_data('data/score.txt')
    if score > high_score:
      high_score = score
      write_data('data/score.txt', score)
    self.lbl_score.text = 'Score: %s' % score
    self.lbl_high_score.text = 'High Score: %s' % high_score
  
  def new_game(self, *args):
    self.dismiss()
    self.root_widget.new_game()
	def _generateMap(self):
		
		layout = RelativeLayout()
		self.mapImg=Image(source='resources/images/map.png',allow_stretch = True, keep_ratio = False)	
		self.mapPin = MapPin( parent=self.mapImg,view = self,allow_stretch = False, source='resources/images/pin.png', size=(20,34))
		self.mapImg.add_widget(self.mapPin)

		layout.add_widget(self.mapImg)

		print "Scheduling."
		# Clock.schedule_interval(self._updateMapImg, 2)
		Clock.schedule_interval(self._timeseriesGenerated, 2)

		return layout
Exemplo n.º 12
0
class Region:

    def __init__(self, loader, region_config):

        self.loader = loader
        self.widget = RelativeLayout()
        self.objects = set()

        for tile in region_config.tiles:
            self.widget.add_widget(tile.image)

        for ID in region_config.object_IDs:
            self.load_object(ID)

        self._to_cleanup = []


    def update(self, dt):
        for obj in self.objects:
            obj.signals.update.send(dt)

        while self._to_cleanup:
            obj = self._to_cleanup.pop()

            self.objects.remove(obj)

            # TODO consider using weakref.finalize
            try:
                self.widget.remove_widget(obj.widget._kivy_widget)
            except AttributeError:
                pass

    def load_object(self, ID):
        obj = self.loader.load(ID)

        obj.signals.destroy.connect(self.cleanup)
        self.objects.add(obj)

        try:
            # TODO clean up this widget stuff
            self.widget.add_widget(obj.widget._kivy_widget)
        except AttributeError:
            pass

    def cleanup(self, obj):
        self._to_cleanup.append(obj)
Exemplo n.º 13
0
class BiscuitsApp(App):

    def __init__(self):
        super().__init__()
        self.widget = RelativeLayout()
        self._scene = None
        self.input = Input()
        self.game = BiscuitsGame(self)

    @property
    def scene(self):
        return self._scene

    @scene.setter
    def scene(self, scene):
        if self._scene:
            self._scene.unload()
            self.widget.remove_widget(self._scene.widget)

        self._scene = scene
        self.widget.add_widget(scene.widget)

    def load_scene(self, loadpoint_ID):
        loadpoint = loadpoints[loadpoint_ID]

        if loadpoint.type == 'dead':
            self.scene = DeadScene(self)

        elif loadpoint.type == 'start':
            self.scene = StartScene(self)

        elif loadpoint.type == 'comic':
            self.scene = ComicScene(self, loadpoint)
        else:
            self.scene = self.game.load(loadpoint)

    def update(self, dt):
        self.input.update(dt)
        self.scene.update(dt)

    def build(self):
        EventLoop.ensure_window()
        self.load_scene('Loadpoint 1a')
        Clock.schedule_interval(self.update, 1.0 / 60.0)

        return self.widget
Exemplo n.º 14
0
    def addButton(self,text='',btntxt = '',callback=None):
        entrysize = [0,0]
        horiz = RelativeLayout(size_hint= (1.0,None))#orientation = 'lr-tb',padding=(5,5,5,5))
        
        newtext = Label(text=text,markup=True, size_hint= (1.0,None) )
        newtext.texture_update()
        newtext.size = newtext.texture_size
        newtext.size_hint = (None,None)
        entrysize = [ entrysize[0] + newtext.width , max(entrysize[1],newtext.height) ]        
        
        #horiz.center = (Window.width/2,-entrysize[1]/2)
        #(Window.width/2-entrysize[0]/2-5, -entrysize[1]/2) #- newtext.width
        
        
        btn = Button(text=btntxt)
        if callback is not None: btn.bind(on_press=callback)
    
        btn.size_hint = (None,None)
        btn.texture_update()
        btn.size = btn.texture_size
        print newtext.size, btn.size
        btn.width += 10
        btn.height += 10
        entrysize = [ entrysize[0] + btn.width , max(entrysize[1], btn.height) ]

        horiz.size=(entrysize[0],entrysize[1]+7)
        btn.center = (Window.width/2 + btn.width/2+5, btn.height/2+5) #- newtext.width                
        newtext.center = (Window.width/2 - newtext.width/2-5,btn.height/2+5)#(Window.width/2-newtext.width/2-5,-entrysize[1]/2)
        #horiz.size = (entrysize[0], entrysize[1])


        print entrysize
        #horiz.center = (Window.width/2,-entrysize[1]/2)
        
        horiz.add_widget(newtext)
        horiz.add_widget(btn)       
                              
        self.verticality += entrysize[1]+7
        self.size = (Window.width,self.verticality)        
        self.add_widget(horiz)

        print self.verticality        
Exemplo n.º 15
0
class ButtonPad(Widget):

  def __init__(self, **kw):
    super(ButtonPad, self).__init__(**kw)
    self.listeners = []
    self.layout = RelativeLayout()
    self.add_widget(self.layout)
    btn_ids = ['A', 'B', 'X', 'Y']
    btn_pos = [(.8, .5), (.5, .2), (.5, .8), (.2, .5)]
    btn_colors = [[.7,0,0,1],[.9,.7,0,1],[0,.3,.7,1],[0,.7,0,1]]
    for i in range(4):
      btn = Button(id=btn_ids[i], size_hint=(.2, .2),
        background_color=btn_colors[i],
        background_normal='img/btn-normal.png',
        background_down='img/btn-down.png',
        pos_hint={'center_x': btn_pos[i][0], 'center_y': btn_pos[i][1]})
      btn.bind(on_press=self.btn_press)
      self.layout.add_widget(btn)
    with self.canvas.before:
      Color(1, 1, 1, 1)
      self.rect = Rectangle(pos=self.pos, size=self.size, source='img/bpad.png')
    self.bind(pos=self._update_rect)
    self.bind(size=self._update_rect)
    # self.polling = kw['polling'] if 'polling' in kw else .01
    # Clock.schedule_interval(self.send_input, self.polling)
    
  def _update_rect(self, *args):
    self.rect.pos = self.pos
    self.rect.size = self.size
    self.layout.pos = self.pos
    self.layout.size = self.size
    
  def btn_press(self, btn):
    self.notify('bpad_input', btn=btn.id)
      
  def notify(self, event_name, *args, **kw):
    for listener in self.listeners:
      if event_name in listener.handlers:
        getattr(listener, event_name)(*args, **kw)
        
  # def send_input(self, dt):
    # self.notify('bpad_input', input=self.input)
Exemplo n.º 16
0
    def request_address(self, currency):
        lay = RelativeLayout()
        lbl = Label(text="""
Note: A gateway will be opened and the appearing vaddres \n
can be used ONE TIME to send assets to, which will \n
then appear on the linked address outside the Versum Ecosystem""",\
                    size_hint=(0.75,0.1),pos_hint={"x":0.125,"y":0.8})
        lay.add_widget(lbl)
        btn = Button(text="Open Gateway",size_hint=(0.5,0.1),pos_hint={"x":0.25,"y":0.1},\
                     on_press=lambda x: self.get_address(currency))
        lay.add_widget(btn)
        self.raddress = TextInput(size_hint=(0.6,0.1),pos_hint={"x":0.2,"y":0.3},\
                                 hint_text="Recipient Address")
        lay.add_widget(self.raddress)
        self.vaddress = Label(size_hint=(0.5,0.1),pos_hint={"x":0.25,"y":0.5})
        lay.add_widget(self.vaddress)
        btn2 = Button(text="Copy",size_hint=(0.1,0.1),pos_hint={"x":0.85,"y":0.5},\
                     on_press=lambda x: self.copy_add(self.vaddress.text))
        lay.add_widget(btn2)
        self.sendbox = Popup(title="Withdraw",content=lay, size_hint=(0.5,0.5))
        self.sendbox.open()
Exemplo n.º 17
0
    def vsend(self):
        """
        Open the withdraw screen for actual currency
        """
        assets = {}
        if not self.veth_amount.text and not self.vbtc_amount.text and not self.vltc_amount.text:
            self.notification("Enter an amount to send.")
            return
        if self.vbtc_amount.text:
            assets["BTC"] = float(self.vbtc_amount.text)
            self.vbtc_amount.text = ""
        if self.vltc_amount.text:
            assets["LTC"] = float(self.vltc_amount.text)
            self.vltc_amount.text = ""
        if self.veth_amount.text:
            assets["ETH"] = float(self.veth_amount.text)
            self.veth_amount.text = ""
        lay = RelativeLayout()
        lbl = Label(text="""
Note: Only send assets to addresses inside the Versum Ecosystem,\n
if you need to send funds outside of Versum, open a Gateway at first.""",\
                    size_hint=(0.75,0.1),pos_hint={"x":0.125,"y":0.8})
        lay.add_widget(lbl)
        btn = Button(text="Send",size_hint=(0.5,0.1),pos_hint={"x":0.25,"y":0.1},\
                     on_press=lambda *args: self.make_payment(assets,*args))
        lay.add_widget(btn)
        self.to_addr = TextInput(size_hint=(0.6,0.1),pos_hint={"x":0.2,"y":0.3},\
                                 hint_text="Recipient Address")
        lay.add_widget(self.to_addr)

        self.sendbox = Popup(title="vSend", content=lay, size_hint=(0.5, 0.5))
        self.sendbox.open()
Exemplo n.º 18
0
    def create_histo_layout(self, qty, name, confirmations, time):
        Layout = RelativeLayout(bcolor=(1, 0.2, 1, 1))
        if qty > 0:
            text = "Incoming                                                                    " + str(
                qty) + " " + str(name) + "\n"
            Layout.add_widget(
                Image(source="gui/versumwallet/histo_green.png",
                      size_hint=(1, 0.9),
                      allow_stretch=True,
                      keep_ratio=False))

        elif qty < 0:
            text = "Outgoing                                                                    " + str(
                qty) + " " + str(name) + "\n"
            Layout.add_widget(
                Image(source="gui/versumwallet/histo_red.png",
                      size_hint=(1, 0.9),
                      allow_stretch=True,
                      keep_ratio=False))

        text += str(time) + "\n"
        text += "Confirmations: " + str(confirmations)

        title = Label(text=text, color=(0, 0, 0, 1), halign="left")
        Layout.add_widget(title)
        return Layout
Exemplo n.º 19
0
class HorseTrack(RelativeLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.horse_pos = 0, 0
        self.events = []

    def load(self):
        self.horse = Horse()
        self.move_layout = RelativeLayout()
        self.animation_layout = RelativeLayout()

        self.add_widget(self.move_layout)
        self.move_layout.add_widget(self.animation_layout)
        self.animation_layout.add_widget(self.horse)
        self.make_events()
        self.next_anim()

    def next_anim(self, *args):
        print(self.horse.pos)
        self.events.pop(0)()

    def make_events(self, amount=30, random=20):
        times = amount  #+randint(0,random)
        start = self.horse.pos[0]
        finish = self.horse.pos[0]
        diff = finish - start
        print(start, finish, "=", diff)
        base_time = 30 / times
        for i in range(times):
            base_x = i * 100
            x = base_x + randint(-60, 60)
            y = gauss(0, 10)
            t = gauss(base_time, 3)
            print(x, y)
            self.events.append(self.move_to(x, y, t))

    def move_to(self, x, y, t):
        anim = Animation(x=x, y=y, d=t, t="in_out_quint")
        anim.bind(on_complete=self.next_anim)
        return partial(anim.start, self.move_layout)
Exemplo n.º 20
0
    def addChampionsToScrollView(self, championList, scrollLayout):
        for champName in championList:

            iconLayout = RelativeLayout(size_hint_x=0.1)
            champIcon = Image(size_hint_y=0.8,
                              pos_hint={'center_y': 0.5},
                              allow_stretch=True,
                              source="images\\championImages\\" + champName +
                              "\\" + champName.lower().replace(" ", "_") +
                              "_icon.png")
            nameButton = Button(text=champName,
                                font_size='22sp',
                                height=50,
                                size_hint_x=0.9,
                                size_hint_y=None)
            # this method binds the button to the lambda method with early binding and then passes the button's text as the name
            nameButton.bind(
                on_press=lambda champName=champName: self.
                switchToChampionInformation(championName=champName.text))
            iconLayout.add_widget(champIcon)
            scrollLayout.add_widget(iconLayout)
            scrollLayout.add_widget(nameButton)
Exemplo n.º 21
0
    def show_priv_key(self):
        with open(rpc) as rpcfile:
            data = rpcfile.read().split("\n")
            rpcuser = data[0][8:]
            rpcpassword = data[1][12:]
            rpchost = 'localhost'
            rpcport = '6804'
            chainname = "testchain"
        api = Savoir(rpcuser, rpcpassword, rpchost, rpcport, chainname)
        privkey = api.dumpwallet("C:\\Users\\" + os.getenv('username') +
                                 "\\Desktop\\wallet.txt")
        lay = RelativeLayout()
        lbl = Label(text="""
Note: Your wallet file has been dumped!\n
You can view it in C:\\Users\\"""+os.getenv('username')+"""\\Desktop\\wallet.txt\n
Do not share any of your private keys with anyone!\n""",\
                    size_hint=(0.75,0.1),pos_hint={"x":0.125,"y":0.6})
        lay.add_widget(lbl)
        self.sendbox = Popup(title="New Paper Wallet",
                             content=lay,
                             size_hint=(0.5, 0.5))
        self.sendbox.open()
Exemplo n.º 22
0
class ColorApp(App):
    def build(self):
        self.layout = RelativeLayout()
        self.btn = Button(background_color=(1, 0, 0, 1))

        self.layout.add_widget(self.btn)
        self.btn2 = Button(text='Change color',
                           pos_hint={
                               'center_x': .5,
                               'center_y': .1
                           },
                           size_hint=(.4, .1))
        self.btn2.bind(on_press=self.change_color)
        self.layout.add_widget(self.btn2)
        Clock.schedule_interval(self.change_color, 1)
        return self.layout

    def change_color(self, event):
        color = (random.uniform(0, 1), random.uniform(0,
                                                      1), random.uniform(0,
                                                                         1), 1)
        self.btn.background_color = color
Exemplo n.º 23
0
    def make(self):
        self.orientation = "vertical"
        Window.size = (512, 600)

        layout_uno = RelativeLayout(size=(512, 512), size_hint=(None, None))
        img = Image(source='bg_image.png', pos=(0, 0))
        layout_uno.add_widget(img)

        self.hmap = Map()
        self.hmap.pos = (0, 0)
        self.hmap.size = (512, 512)
        self.hmap.make()
        layout_uno.add_widget(self.hmap)

        self.add_widget(layout_uno)

        layout_dos = BoxLayout(orientation="horizontal")
        gen_button = Button(text="Generate")
        gen_button.bind(on_release=self.generate)
        self.switch_button = Button(text="Change LOD")
        layout_dos.add_widget(gen_button)
        layout_dos.add_widget(self.switch_button)
        self.add_widget(layout_dos)
Exemplo n.º 24
0
    def build(self):

        map_widget = Map()
        map_widget.size = [3000, 3000]
        map_widget.redraw(index=self.quad_index)

        btn_prev = Button(text='PREV',
                          on_press=partial(self.setMapIndex, map_widget, -1))

        btn_next = Button(text='NEXT',
                          on_press=partial(self.setMapIndex, map_widget, 1))

        layout = BoxLayout(size_hint=(1, None), height=50)
        layout.add_widget(btn_prev)
        layout.add_widget(btn_next)

        root = BoxLayout(orientation='vertical')
        rl = RelativeLayout()
        rl.add_widget(map_widget)
        root.add_widget(rl)
        root.add_widget(layout)

        return root
Exemplo n.º 25
0
def build():
    layout = RelativeLayout()

    ed = TextInput(text="teste")
    ed =ed.global
    ed.size_hint = None, None
    ed.height = 300
    ed.width = 400
    ed.y = 250
    ed.x = 90


    btn = Button(text="Clique aqui")
    btn.size_hint = None, None
    btn.width = 200
    btn.height = 50
    btn.y = 150
    btn.x = 200
    btn.on_press= click()
    layout.add_widget(ed)
    layout.add_widget(btn)

    return layout
Exemplo n.º 26
0
    def build(self):
        layout = RelativeLayout(size=(2000, 2000))

        hex_grid = HexCanvas(self.width, self.height, self.rows, self.columns,
                             self.selection_color, self.grid_color,
                             self.grid_width)
        hex_grid.selection_mesh.vertices = hex_vertices(
            hex_grid.grid, self.selected_hex)
        self.selection_mesh = hex_grid.selection_mesh
        grid = hex_grid.grid
        self.grid = grid
        # label the hexes with square coordinates for developer reference
        for i in range(0, len(hex_grid.hexes)):
            h = hex_grid.hexes[i]
            label = Label(text=str(h[0]) + ',' + str(h[1]),
                          width=10,
                          height=10,
                          color=(0.3, 0.3, 0.3, 1),
                          x=grid.hex_center(h).x - 5,
                          y=grid.hex_center(h).y - 5)
            hex_grid.add_widget(label)
        layout.add_widget(hex_grid)
        return layout
Exemplo n.º 27
0
    def build(self):
        layout = RelativeLayout()
        layout.add_widget(Console())
        self.scroll_widget = Builder.load_string("""
ClickableScrollView:
    size_hint: 0.6, 0.45
    pos_hint: {'right': 1}
    do_scroll_x: False
    effect_cls: 'ScrollEffect'
    Label:
        id: label
        size_hint: None, None
        size: self.texture_size
        font_name: 'Fantasque'
        font_size: str(int(root.width / 0.6 * 15 / 1706)) + 'pt'
        line_height: 1.15
        markup: True
        color: 1, 1, 1, 1
""")
        self.scroll_widget.opacity = 0
        self.scroll_widget.ids.label.text = ''
        layout.add_widget(self.scroll_widget)
        return layout
Exemplo n.º 28
0
    def build(self):
        for i in range(49):
            button = Button(background_normal='')
            self.buttons.append(button)

            img_button = Button(background_normal='')
            self.img_buttons.append(img_button)

            float_button = RelativeLayout()
            float_button.add_widget(button)
            float_button.add_widget(img_button)
            self.float_buttons.append(float_button)

            self.grid_name.add_widget(float_button)

        for i in range(5):
            next_button = Button(background_normal='',
                                 size_hint=(None, None),
                                 size=(50, 50))
            self.next_buttons.append(next_button)
            self.box_name.add_widget(next_button)

        self.update()
Exemplo n.º 29
0
 def count_total(self):
     self.clear_widgets()
     unit = config.units[self.slider.current_unit]
     time_to = '21:50:58'  # TODO: Temporary var, change to real time
     if self.slider.value > 0:
         total_time = unit[1] * int(self.slider.value)
         self.slider.time_label.text = f'Обучение продлится: {total_time} сек до {time_to}'
         for i, res_cost in enumerate(unit[2]):
             total_res = res_cost * int(self.slider.value)
             if res_cost > 0:
                 res_box = BoxLayout(orientation='horizontal',
                                     size_hint_x=.5)
                 help_lay_res = RelativeLayout()
                 help_lay_res.add_widget(
                     Image(source=f'{config.resources[res_list[i]][2]}',
                           size=(30, 30),
                           pos_hint=({
                               'right': 1
                           }),
                           size_hint=(None, 1)))
                 add_lay = GridLayout(cols=2,
                                      size_hint=(1, 1),
                                      pos_hint=({
                                          'center_x': .5,
                                          'center_y': .5
                                      }))
                 add_lay.add_widget(help_lay_res)
                 add_lay.add_widget(BuildResLabel(text=f'{total_res}'))
                 res_box.add_widget(add_lay)
                 self.add_widget(res_box)
         anim_opacity_up.start(self)
         anim_opacity_up.start(self.slider.total_res_label)
         anim_opacity_up.start(self.slider.time_label)
     else:
         anim_opacity_down.start(self)
         anim_opacity_down.start(self.slider.total_res_label)
         anim_opacity_down.start(self.slider.time_label)
Exemplo n.º 30
0
class RpgGame(Widget):
    player_object = None
    game_objects = []
    toolbar = None
    label = None

    def __init__(self, **kwargs):
        super(RpgGame, self).__init__(**kwargs)
        self.toolbar = RelativeLayout(pos=(100, 50))
        label = Label(text='')
        self.label = label
        self.toolbar.add_widget(label)
        self.add_widget(self.toolbar)
        self._keyboard = Window.request_keyboard(self._keyboard_closed, self)
        self._keyboard.bind(on_key_down=self._on_keyboard_down)

    def _keyboard_closed(self):
        self._keyboard.unbind(on_key_down=self._on_keyboard_down)
        self._keyboard = None

    def _on_keyboard_down(self, keyboard, keycode, text, modifiers):
        self.player_object.entity.move(keycode[1])
        move_anim = Animation(pos=self.player_object.entity.draw_coord, duration=1)
        move_anim.bind(on_start=self.player_object.start_sprite_anim)
        move_anim.bind(on_complete=self.player_object.stop_sprite_anim)
        move_anim.start(self.player_object)
        return True

    def set_player(self, player):
        self.player_object = player

    def add_object(self, obj):
        self.add_widget(obj)
        self.game_objects.append(obj)

    def update(self, dt):
        self.label.text = str(self.player_object.entity)
Exemplo n.º 31
0
    def display_preset_info(self, preset):
        self.info_panel.clear_widgets()
        if preset == None:
            return
        manager.CURRENT_PRESET = preset.name

        self.show_presets()

        self.info_panel.add_widget(
            Label(text=(preset.name), color=(1, 1, 1, 1), font_size=25))
        for key in preset.attributes:
            attr_layout = RelativeLayout(size=(100, 30), size_hint=(1, None))
            attr_layout.add_widget(
                EditableLabel(text=('' + key[0] + ' ' + key[1] + ' ' +
                                    preset.attributes[key]),
                              size=(300, 30),
                              attr_category=key[2],
                              size_hint=(None, None),
                              pos_hint={
                                  "center_x": .5,
                                  "center_y": .5
                              },
                              color=(1, 1, 1, 1),
                              font_size=14))
            self.info_panel.add_widget(attr_layout)
        self.info_panel.button_layout = RelativeLayout(size=(100, 30),
                                                       size_hint=(1, None))
        self.info_panel.button_layout.add_widget(
            HoverButton(font_size=20,
                        text='New Attribute',
                        size=(500, 30),
                        size_hint=(None, None),
                        pos_hint={"center_x": .5},
                        button_up=DD_LCHRC[0],
                        button_down=DD_LCHRC[1],
                        on_press=self.add_new_label))
        self.info_panel.add_widget(self.info_panel.button_layout)
Exemplo n.º 32
0
    def display_user_info(self, user):
        self.clear()
        editable = manager.ADMIN
        manager.CURRENT_USER = user
        manager.menu.show_searched_users()

        self.layout.add_widget(
            Label(text=(user), color=(1, 1, 1, 1), font_size=25))
        for attr in database.get_user_attrs(user):
            if "password" in attr.name.lower():
                color = (1, 1, 1, 1)
                bold = manager.menu.get_search_mode(
                ) != 'name' and manager.menu.get_search_term() != ""
                if self.color_dark(attr.name, attr.value):
                    color = (1, 1, 1, .7)
                    bold = False

                attr_layout = RelativeLayout(size=(100, 30),
                                             size_hint=(1, None))
                label = Label(text=("" + attr.name + " " + attr.operator +
                                    " " + attr.value),
                              color=color,
                              size=(300, 30),
                              bold=bold,
                              size_hint=(None, None),
                              pos_hint={
                                  "center_x": .5,
                                  "center_y": .2
                              },
                              font_size=14)
                label.name = attr.name
                label.val = attr.value
                attr_layout.add_widget(label)
                self.attribute_labels.append(label)
                self.layout.add_widget(attr_layout)
            else:
                self.create_attr_label(attr, editable)
Exemplo n.º 33
0
class FileChooserWindow(ModalView):
    def __init__(self, load_callback, **kwargs):
        self.load_callback = load_callback
        super(FileChooserWindow, self).__init__(**kwargs)
        self.layout = RelativeLayout()

        fc = FileChooserListView(filters=["*.csv", "*.xlsx", "*.txt"],
                                 size_hint=(.8, 1))
        fc.bind(on_submit=self.file_chosen)
        self.layout.add_widget(fc)

        exit_btn = Button(text='Exit',
                          size_hint=(.1, .1),
                          pos_hint={
                              'center_x': .9,
                              'center_y': .9
                          })
        exit_btn.bind(on_press=self.dismiss)
        self.layout.add_widget(exit_btn)

        self.add_widget(self.layout)

    def file_chosen(self, event, filename, *args):
        self.load_callback(filename[0])
Exemplo n.º 34
0
def base_energy():
    scroll = ScrollView(do_scroll_x=False, scroll_x=.5, scroll_y=1)
    main_rel_layout = RelativeLayout(height=500, width=600, size_hint=(1, 1))
    generators_lay = GridLayout(rows=2, padding=20)
    generators_desc = BoxLayout(size_hint_y=1)

    generators_stack = GridLayout(rows=1, size_hint=(1, 0.5))

    # generators stack content
    dev_item1 = BoxLayout(padding=5)
    dev_item2 = BoxLayout(padding=5)
    dev_item3 = BoxLayout(padding=5)
    dev_item4 = BoxLayout(padding=5)

    dev_item1.add_widget(GenImage())
    dev_item2.add_widget(GenImage())
    dev_item3.add_widget(GenImage())
    dev_item4.add_widget(GenImage())

    generators_stack.add_widget(dev_item1)
    generators_stack.add_widget(dev_item2)
    generators_stack.add_widget(dev_item3)
    generators_stack.add_widget(dev_item4)
    # generators stack content

    # generators description content
    generators_desc.add_widget(Label(text='Описание генераторов'))
    # generators description content

    generators_lay.add_widget(generators_stack)
    generators_lay.add_widget(generators_desc)

    main_rel_layout.add_widget(generators_lay)

    scroll.add_widget(main_rel_layout)
    return scroll
Exemplo n.º 35
0
    def __init__(self, **kwargs):
        super(FileChooserPopup, self).__init__(**kwargs)

        self.title = 'Select features file'

        layout = RelativeLayout()

        file_chooser_list_view = FileChooserListView(filters=['*.txt', '*.data'], size_hint=(1, 0.8), pos_hint={'x': 0, 'y': 0.2})
        file_chooser_list_view.bind(selection=self.file_chooser_selection_do)
        self.text_input = TextInput(text='', readonly=True, size_hint=(1, 0.1), pos_hint={'x': 0, 'y': 0.1})

        layout.add_widget(file_chooser_list_view)
        layout.add_widget(self.text_input)
        layout.add_widget(Button(text='Select', italic=True, on_release=self.dismiss, size_hint=(0.25, 0.1), pos_hint={'x': 0.25, 'y': 0}))
        layout.add_widget(Button(text='Cancel', italic=True, on_release=self.cancel_btn_do, size_hint=(0.25, 0.1), pos_hint={'x': 0.5, 'y': 0}))

        self.content = layout
Exemplo n.º 36
0
class ScrollableLabel(ScrollView):
    def __init__(self, **kwargs):
        super(ScrollableLabel, self).__init__(**kwargs)
        ######################################
        self.ParentLayout = FloatLayout()
        self.ScrollWindow = RelativeLayout()
        self.ScrollLabel = Label()
        self.text = StringProperty('')
        ######################################
        self.ScrollWindow.size_hint = (None, None)
        ######################################

    def Set_ScrollWindow(self):
        self.ScrollWindow.clear_widgets()
        self.clear_widgets()
        self.width = self.ScrollWindow.width
        self.height = self.ScrollWindow.height
        self.x = 0
        self.y = 0
        self.do_scroll_x = False
        self.do_scroll_y = True
        self.ParentLayout.add_widget(self.ScrollWindow)
        self.ScrollWindow.add_widget(self)
        self.ScrollLabel.halign = 'left'
        self.ScrollLabel.valign = 'top'
        self.ScrollLabel.padding_x = 6
        self.ScrollLabel.padding_y = 4
        self.ScrollLabel.x = 0
        self.ScrollLabel.y = 0
        self.ScrollLabel.size_hint = (None, None)
        self.ScrollLabel.size = (self.width, 0)
        self.ScrollLabel.text_size = (self.width, None)
        self.ScrollLabel.color = (0, 0, 0, 1)
        self.ScrollLabel.texture_update()
        self.ScrollLabel.height = self.ScrollLabel.texture_size[1]
        self.add_widget(self.ScrollLabel)
Exemplo n.º 37
0
class KivyCardPile(CardPile):

    def __init__(self, name, player):
        super(KivyCardPile,self).__init__(name, player)
        self.displayed=False
        self.lock = threading.Lock()
        
    def initDisplay(self,xpos,ypos,scale,parentlayout,orientation):
        #ignores orientation
        self.displayed=True
        self.xpos=int(xpos)
        self.ypos=int(ypos)
        self.scale=scale
        self.layout= RelativeLayout()
        parentlayout.add_widget(self.layout)
        self.updateDisplay()

    def updateDisplay(self):
        self.layout.clear_widgets()
        card=self.peek()
        offset=0
        if card.state == eCardState.good:
            offset=10
            card2=self.peekpeek()
            card2.scatter.scale=self.scale
            card2.scatter.pos=(self.xpos,self.ypos)
            self.layout.add_widget(card2.scatter)
            
        card.scatter.scale=self.scale
        card.scatter.pos=(int(self.xpos+offset),int(self.ypos-offset))
        self.layout.add_widget(card.scatter)

    def dealCard(self,newCardList,newState):
        if self.displayed:
            #Display the card underneath (the next top one)
            self.layout.clear_widgets()
            card=self.peekpeek()
            card.scatter.scale=self.scale
            card.scatter.pos=(self.xpos,self.ypos)
            self.layout.add_widget(card.scatter)
        super(KivyCardPile,self).dealCard(newCardList,newState)

    def append(self,card):
        #self.lock.acquire()
        print card
        super(KivyCardPile,self).append(card)
        offset=0
        if card.state == eCardState.good:
            offset=10
        if self.displayed:
            card.setDest(self.xpos+offset,self.ypos-offset,self.scale,self,True)

    def bringToFront(self):
        parent = self.layout.parent
        parent.remove_widget(self.layout)
        parent.add_widget(self.layout)
Exemplo n.º 38
0
 def __init__(self, **kwargs):
     super(Alert_dept, self).__init__(**kwargs)
     layout = RelativeLayout()
     drop = DropDown()
     self.msg = TextInput(hint_text="Message to be received",
                          size_hint=(0.75, .3),
                          pos_hint={
                              'x': 0.07,
                              'y': 0.55
                          })
     self.hi = TextInput(hint_text="Enter message to send",
                         size_hint=(0.75, .3),
                         pos_hint={
                             'x': 0.07,
                             'y': 0.2
                         })
     sendbutton = Button(text='SEND',
                         size_hint=(.1, .1),
                         pos_hint={
                             'x': 0.37,
                             'y': 0.07
                         })
     sendbutton.bind(on_press=lambda x: self.sendmsg())
     #endbutton = Button(text='HANG UP', size_hint=(.2,.1),pos_hint={'x':0.1,'y':0.05})
     #endbutton.bind(on_press=lambda x:self.hangup())
     #testbtn = Button(text = 'Change', size_hint = (.2,.1),pos_hint={'x':0.1,'y':0.05})
     #testbtn.bind(on_press = lambda x:self.switch_next())
     self.spinner = Spinner(text='Mechanical',
                            values=('Electrical', 'Mechanical',
                                    'Maintenance'),
                            size_hint=(.15, .09),
                            pos_hint={
                                'x': 0.05,
                                'y': 0.9
                            })
     self.spinner.bind(on_text=self.show_selected_value)
     layout.add_widget(self.msg)
     layout.add_widget(self.hi)
     layout.add_widget(sendbutton)
     layout.add_widget(self.spinner)
     #layout.add_widget(endbutton)
     #layout.add_widget(testbtn)
     self.add_widget(layout)
    def drawOverallLayout(self):
        layout = RelativeLayout()
        title = Label(text="LoL Champion Visualizer", size_hint=(1, 0.2), font_size='40sp', pos_hint ={'middle':1, 'top':1})
        newDataButton = Button(text="Search For New Champions", size_hint=(0.5, 0.8), font_size='32sp', pos_hint ={'left':1, 'middle':1})
        existingDataButton = Button(text="Use Existing Data", size_hint=(0.5, 0.8), font_size='32sp', pos_hint ={'right':1, 'middle':1})
        #on_press=self.changeToSearchGui()
        newDataButton.bind(on_press=lambda a:self.screen_transition_newData())
        existingDataButton.bind(on_press=lambda a:self.screen_transition_existingData())

        layout.add_widget(title)
        layout.add_widget(newDataButton)
        layout.add_widget(existingDataButton)
        return layout
Exemplo n.º 40
0
 def build(self):
     layout = RelativeLayout(size=(500, 500))
     self.cam = Camera(play=True, resolution=(1500, 1500))
     self.button = Button(text='Detect a face!',
                          size_hint=(.5, .07),
                          pos=(450, 100))
     self.button.bind(on_press=self.on_press_button)
     self.button_sketch = Button(text='Create a sketch!',
                                 size_hint=(.5, .07),
                                 pos=(450, 10))
     self.button_paint = Button(text='Create a painting',
                                size_hint=(.5, 0.07),
                                pos=(450, 190))
     self.button_sketch.bind(on_press=self.on_press_sketch_button)
     self.button_paint.bind(on_press=self.on_press_paint_button)
     layout.add_widget(self.cam)
     layout.add_widget(self.button)
     layout.add_widget(self.button_sketch)
     layout.add_widget(self.button_paint)
     return layout
Exemplo n.º 41
0
 def build(self):
     widget = RelativeLayout()
     test_button = TestObject('1', size_hint=(0.25, 0.2), pos_hint={'x': 0, 'y': 0})
     test_button2 = TestObject('2', size_hint=(0.2, 0.1), pos_hint={'x': 0.4, 'y': 0})
     test_button3 = TestObject('3', size_hint=(0.5, 0.5), pos_hint={'x': 0.5, 'y': 0.5})
     test_button4 = TestObject('4', size_hint=(0.2, 0.2), pos_hint={'x': 0.6, 'y': 0.6}, layer=1, blocking=False)
     test_button5 = TestObject('5', size_hint=(0.2, 0.1), pos=(0.6 * 1706, 0.75 * 960))
     test_button6 = TestObject('6', size_hint=(0.2, 0.2), pos_hint={'x': 0.65, 'y': 0.7}, layer=2, blocking=False)
     widget.add_widget(test_button)
     widget.add_widget(test_button2)
     widget.add_widget(test_button3)
     test_button3.add_widget(test_button5)
     widget.add_widget(test_button4)
     widget.add_widget(test_button6)
     return widget
Exemplo n.º 42
0
class MainScreen(BasicScreen):
    def __init__(self, background_img, **kwargs):
        super(MainScreen, self).__init__(name='MainScreen', background_img=background_img, **kwargs)
        self.main_layout = RelativeLayout(id='MainLayout', orientation='vertical', size_hint=(1, 1))
        self.main_title = Label(id='MainTitle', text='BoardGameApp', font_size=30, pos_hint={'y': 0.8}, size_hint_y=0.2)
        self.maps_button = Button(id='MapsButton', text='Show map', size_hint=(0.5, 0.18),
                                  pos_hint={'x': 0.25, 'y': 0.38},
                                  on_press=lambda a: App.get_running_app().root.switch_screen('MapScreen'))
        self.games_button = Button(id='GamesButton', text='Show games', size_hint=(0.5, 0.18),
                                   pos_hint={'x': 0.25, 'y': 0.2},
                                   on_press=lambda a: App.get_running_app().root.switch_screen('ListGamesScreen'))

        self.main_layout.add_widget(self.main_title)
        self.main_layout.add_widget(self.maps_button)
        self.main_layout.add_widget(self.games_button)
        self.add_widget(self.main_layout)
Exemplo n.º 43
0
    def request_address(self, currency):
        url = gateways_ip + currency + "/get/raddress"
        data = json.dumps({
            "vaddress":
            json.load(open(path + "wallet.json", "r"))["address"]
        })
        resp = post(url, data).text
        if resp != "Error" and len(resp) < 50:  #server is up
            lay = RelativeLayout()
            lbl = Label(text="""
Note: Use the displayed address ONLY ONCE to depsit funds.\n
Do not deposit currencys other than """ + currency,\
            size_hint=(0.75,0.1),pos_hint={"x":0.125,"y":0.8})
            lay.add_widget(lbl)
            self.raddress = Label(text=resp,
                                  size_hint=(0.5, 0.1),
                                  pos_hint={
                                      "x": 0.25,
                                      "y": 0.5
                                  })
            lay.add_widget(self.raddress)
            btn = Button(text="Copy",size_hint=(0.1,0.1),pos_hint={"x":0.8,"y":0.5},\
                     on_press=lambda x: self.copy_add(self.raddress.text))
            lay.add_widget(btn)
            self.sendbox = Popup(title="Deposit",
                                 content=lay,
                                 size_hint=(0.5, 0.5))
            self.sendbox.open()
        else:  #server is down
            lay = RelativeLayout()
            lbl = Label(text="Seems like the Gateway is currently down. Sorry!",\
            size_hint=(0.75,0.1),pos_hint={"x":0.125,"y":0.8})
            lay.add_widget(lbl)
            self.sendbox = Popup(title="Deposit",
                                 content=lay,
                                 size_hint=(0.5, 0.5))
            self.sendbox.open()
Exemplo n.º 44
0
class ViewSuccess(Screen):

    def __init__(self, secretary, screen_manager, previous_screen, home, **kwargs):
        super().__init__(**kwargs)
        self.main_layout = RelativeLayout()
        self.label_screen = Label(text="Results", size_hint=(0.5, .15), pos_hint={'x':0.25, 'y': .85},
                                  font_size=UiConstants.UiConstants.labe_main_screen, color=[0, 0, 0, 1],
                                  font_name="fonts/RobotoMono-Bold.ttf",)
        self.text_input_show_results = TextInput(size_hint=(.7, .6), pos_hint={'x': 0.15, 'y': .24},
                                                 background_normal="backgrounds/input-background.jpg")
        self.button_start_new_sequence = Button(text="Run another sequence", size_hint=(.5, .1),
                                                pos_hint={'x': 0.25, 'y': .0},
                                                background_normal="backgrounds/next-button.jpg",
                                                background_down="backgrounds/next-button-pressed.jpg",
                                                font_name="fonts/RobotoMono-Bold.ttf",
                                                font_size=UiConstants.UiConstants.label_font_size,
                                                on_release=lambda btn: self.next_sequence(home))
        self.screen_manager = screen_manager
        self.secretary = secretary
        self.main_layout.add_widget(self.label_screen)
        self.main_layout.add_widget(self.text_input_show_results)
        self.main_layout.add_widget(self.button_start_new_sequence)
        Clock.schedule_once(self.custom_init, 1)

    def custom_init(self, *args):
        self.add_widget(self.main_layout)

    def on_pre_enter(self, *args):
        self.render_output_file(text_input=self.text_input_show_results, secretary=self.secretary)

    def load_file(self, secretary):
        print(secretary.output_file_path + secretary.output_file_name)
        result_file_path = os.path.join(secretary.output_file_path, secretary.output_file_name)
        file = open(result_file_path, "r")
        if file.mode == 'r':
            file_content = file.read()
            return file_content
        else:
            return

    def render_output_file(self, text_input, secretary):
        text_input.text = self.load_file(secretary=secretary)

    def next_sequence(self, home):
        self.screen_manager.current= "Sequence Type"
Exemplo n.º 45
0
    def showDeletePopup(self):
        # Creates the layout where everything will be positioned
        layout = RelativeLayout()

        # Button to delete a profile when clicked
        deleteBtn = Button(text='Delete',
                           size_hint=(None, None),
                           border=(20, 20, 20, 20),
                           size=(250, 60),
                           pos_hint={
                               'center_x': .5,
                               'center_y': .25
                           })

        # Label to clarify a profile is going to be deleted.
        deletePrompt = Label(
            text='Are you sure you want to delete the profile?',
            font_size=15,
            pos_hint={
                'center_x': .5,
                'center_y': .85
            })

        # The currently selected profile to be deleted
        deleteName = Label(text=cont.getProfileInfo(0),
                           font_size=18,
                           pos_hint={
                               'center_x': .5,
                               'center_y': .68
                           })

        # Binds the delete button to call a helper method to delete a profile
        deleteBtn.bind(on_release=self.deleteProfile)

        # Adds each of the widgets to the relative layout
        layout.add_widget(deleteBtn)
        layout.add_widget(deletePrompt)
        layout.add_widget(deleteName)

        # Creates a new popup, stores it inside of the screen, then opens the popup
        self.deletePop = Popup(title='Delete Profile',
                               content=layout,
                               size=(400, 200),
                               size_hint=(None, None))
        self.deletePop.open()
Exemplo n.º 46
0
    def create_widgets(self, title, image_source, price):
        item_card = MDCard(size=(300, 240),
                           border_radius=20,
                           radius=[
                               20,
                           ],
                           elevation=10)
        #item_card.md_bg_color = [1, 0.54, 0, .3]
        card_layout = RelativeLayout()
        image = AsyncImage(source=image_source,
                           size_hint=(.5, .5),
                           pos_hint={
                               "center_x": .3,
                               "center_y": .5
                           })
        item_title = MDLabel(text=title,
                             halign="center",
                             theme_text_color="ContrastParentBackground",
                             font_style="H5",
                             pos_hint={
                                 "center_x": .7,
                                 "center_y": .7
                             })

        item_price = MDLabel(text=price,
                             halign="center",
                             theme_text_color="Secondary",
                             pos_hint={
                                 "center_x": .7,
                                 "center_y": .6
                             })
        order = MDRaisedButton(text="Order",
                               size_hint=(.5, None),
                               pos_hint={
                                   "center_x": .68,
                                   "center_y": .15
                               })
        card_layout.add_widget(image)
        card_layout.add_widget(item_title)
        card_layout.add_widget(item_price)
        card_layout.add_widget(order)
        item_card.add_widget(card_layout)
        self.list_menu.add_widget(item_card)
class MapLayout(RelativeLayout):

    currentSize = 0
    sizeOption = (1, 2, 4)

    def __init__(self, **kwargs):
        super(MapLayout, self).__init__(**kwargs)

        self.mainContainer = RelativeLayout(size_hint=(None, None), size=mainWindowSize)
        self.mainContainer.currentSize = self.currentSize
        self.mainContainer.sizeOption = self.sizeOption

        self.filterContainer = RelativeLayout(size_hint=(None, None), size=mainWindowSize)

        self.mapBound = ScrollView(size_hint=(None, None), size=mainWindowSize)

        self.MapArray = []
        self.MapArray.append(Image(source="peta/content/Base Map 1.png", allow_stretch=True))
        self.MapArray.append(Image(source="peta/content/Base Map 2.png", allow_stretch=True))
        self.MapArray.append(Image(source="peta/content/Base Map 3.png", allow_stretch=True))

        self.FilterArray = []
        self.FilterArray.append(Image(source="peta/content/peta-batas-wilayah.png", allow_stretch=True, opacity=0.5))
        self.FilterArray.append(Image(source="peta/content/peta-jalan.png", allow_stretch=True, opacity=0.5))
        self.FilterArray.append(Image(source="peta/content/peta-air-bersih.png", allow_stretch=True, opacity=0.6))
        self.FilterArray.append(Image(source="peta/content/peta-gorong-gorong.png", allow_stretch=True, opacity=0.5))
        self.FilterArray.append(Image(source="peta/content/peta-sarana-publik.png", allow_stretch=True, opacity=0.9))

        self.filterContainer.add_widget(self.FilterArray[0])

        self.mainContainer.add_widget(self.MapArray[0])
        self.mainContainer.add_widget(self.filterContainer)

        self.mapBound.add_widget(self.mainContainer)

    def addJalan(self):
        # self.mainContainer.add_widget(self.FilterArray[1])
        self.filterContainer.add_widget(self.FilterArray[1])

    def removeJalan(self):
        # self.mainContainer.remove_widget(self.FilterArray[1])
        self.filterContainer.remove_widget(self.FilterArray[1])

    def addAir(self):
        # self.mainContainer.add_widget(self.FilterArray[2])
        self.filterContainer.add_widget(self.FilterArray[2])

    def removeAir(self):
        # self.mainContainer.remove_widget(self.FilterArray[2])
        self.filterContainer.remove_widget(self.FilterArray[2])

    def addGorong(self):
        # self.mainContainer.add_widget(self.FilterArray[3])
        self.filterContainer.add_widget(self.FilterArray[3])

    def removeGorong(self):
        # self.mainContainer.remove_widget(self.FilterArray[3])
        self.filterContainer.remove_widget(self.FilterArray[3])

    def addSarana(self):
        # self.mainContainer.add_widget(self.FilterArray[4])
        self.filterContainer.add_widget(self.FilterArray[4])

    def removeSarana(self):
        # self.mainContainer.remove_widget(self.FilterArray[4])
        self.filterContainer.remove_widget(self.FilterArray[4])

    def resetMap(self):
        self.filterContainer.clear_widgets()
        self.mainContainer.clear_widgets()
        self.filterContainer.add_widget(self.FilterArray[0])
        self.mainContainer.add_widget(self.MapArray[0])
        self.mainContainer.add_widget(self.filterContainer)
        self.mainContainer.currentSize = 0
        anim = Animation(width=mainWindowSize[0], height=mainWindowSize[1], duration=0.01, t="in_out_sine")
        anim.start(self.mainContainer)
        anim.start(self.filterContainer)

    def zoomingIn(self):
        if self.mainContainer.currentSize + 1 < len(self.mainContainer.sizeOption):
            self.mainContainer.currentSize += 1
            anim = Animation(
                width=mainWindowSize[0] * self.mainContainer.sizeOption[self.mainContainer.currentSize],
                height=mainWindowSize[1] * self.mainContainer.sizeOption[self.mainContainer.currentSize],
                duration=0.4,
                t="in_out_sine",
            )
            anim.start(self.mainContainer)
            anim.start(self.filterContainer)
            if self.mainContainer.currentSize == 1:
                self.mainContainer.clear_widgets()
                self.mainContainer.add_widget(self.MapArray[1])
                self.mainContainer.add_widget(self.filterContainer)
            elif self.mainContainer.currentSize == 2:
                self.mainContainer.clear_widgets()
                self.mainContainer.add_widget(self.MapArray[2])
                self.mainContainer.add_widget(self.filterContainer)

            # log
            gv.logger.log_button("zoom in to :" + str(self.mainContainer.currentSize))
        print self.mainContainer.currentSize

    def zoomingOut(self):
        if self.mainContainer.currentSize > 0:
            self.mainContainer.currentSize -= 1
            anim = Animation(
                width=mainWindowSize[0] * self.mainContainer.sizeOption[self.mainContainer.currentSize],
                height=mainWindowSize[1] * self.mainContainer.sizeOption[self.mainContainer.currentSize],
                duration=0.4,
                t="in_out_sine",
            )
            anim.start(self.mainContainer)
            anim.start(self.filterContainer)
            if self.mainContainer.currentSize == 1:
                self.mainContainer.clear_widgets()
                self.mainContainer.add_widget(self.MapArray[1])
                self.mainContainer.add_widget(self.filterContainer)
            elif self.mainContainer.currentSize == 2:
                self.mainContainer.clear_widgets()
                self.mainContainer.add_widget(self.MapArray[2])
                self.mainContainer.add_widget(self.filterContainer)

            # log
            gv.logger.log_button("zoom out to :" + str(self.mainContainer.currentSize))
        print self.mainContainer.currentSize
Exemplo n.º 48
0
class KYRScreen(Screen):
    
    spriteList = ListProperty()
    locationEvent = DictProperty() # all location-based events for the room, including room changes
    player = ObjectProperty()
    isCurrent = BooleanProperty(False)
    playerLocation = ListProperty((200,200))
    bg =  StringProperty()
    music = ObjectProperty()
    startLocations = DictProperty()
    direction = StringProperty('top')
    
    def __init__(self, **kwargs):
        super(KYRScreen, self).__init__(**kwargs)
        self.field = RelativeLayout()
        
        #sprites = self.loadSprites()
        #self.buildSprites(sprites)
    
    def on_isCurrent(self, instance, value):
        if value:
            self.turnOn()
        else:
            self.turnOff()

    def turnOn(self):
        print 'turning on {}'.format(self)
        self.getStartLocation()
        self.buildPlayer(self.playerLocation)
        self.loadBackground()
        self.loadWidgets()
        self.toggleMusic('on')
    
    def turnOff(self):
        print 'turning off {}'.format(self)
        self.parent.playerLocation = self.playerLocation
        self.unloadWidgets()
        self.toggleMusic('off')
    
    def getStartLocation(self):
        self.playerLocation = self.startLocations[self.direction]
          
    def loadBackground(self):
        print 'loading bg', self.bg
        tex = CImage.load(self.bg, keep_data=True).texture
        self.buildBackground(tex)
        
    def buildBackground(self, tex):
        with self.field.canvas.before:
            Rectangle(texture = tex, pos=(0,0), size=(1024,512))
    
    def loadWidgets(self):
        self.add_widget(self.field)
        
    def unloadWidgets(self):
        self.field.remove_widget(self.player)
        self.remove_widget(self.field)      
    
    def toggleMusic(self, value): 
        if value == 'on':
            if self.music:
                print("Sound found at %s" % self.music.source)
                print("Sound is %.3f seconds" % self.music.length)
                self.music.loop = True
                self.music.play()
        elif value == 'off':
            if self.music:
                self.music.stop()
                          
    def changePlayerImage(self, direction):
        if direction == 'up':
            self.player.source = 'assets/art/Clyde_up.zip'
        elif direction == 'down':
            self.player.source = 'assets/art/Clyde_down.zip'
        elif direction == 'left':
            self.player.source = 'assets/art/Clyde_left.zip'
        elif direction == 'right':
            self.player.source = 'assets/art/Clyde_right.zip'
             
    def on_transition_state(self, instance, value):   
        pass
        
    def buildPlayer(self, playerLocation):
        self.player = AGSprite(source = 'assets/art/brandon-right.zip', size=(96,192))
        #self.player.anim_delay = (-1)
        self.player.pos = playerLocation
        self.field.add_widget(self.player)   
    
    def loadSprites(self):
        # look in sprite list for sprite in specific room, return sprite list for room
        directory = {'room number': 'sprite list'}    
        sprites = directory['room number']
        return sprites
       
    def buildSprites(self, sprites):
        for sprite in sprites:
            self.field.add_widget(sprite)
            self.spriteList.append(sprite)
    
    def checkCollision(self):
        pass
        
    def didCollision(self):
        pass
Exemplo n.º 49
0
 def add_widget(self, widget, index=0):
     slide = RelativeLayout(size=self.size, x=self.x, y=self.y)
     slide.add_widget(widget)
     super(BrowsingCard, self).add_widget(slide, index)
     self.slide = widget
     self.slide.bind(height=self._update_height)
Exemplo n.º 50
0
class MainWidget(BaseWidget):
    def __init__(self):
        super(MainWidget, self).__init__()

        songpath1 = 'together-we-are.wav'
        songpath2 = 'lionhearted.wav'

        self.selection = Selection()

        song1 = Song(songpath1, song1_structure, self.selection)
        song2 = Song(songpath2, song2_structure, self.selection)

        self.beatgen = BeatwiseGenerator()
        self.beatgen.add_song(song1)
        self.beatgen.add_song(song2)

        audio = Audio()
        audio.add_generator(self.beatgen)

        self.selection.beatgen = self.beatgen

        self.clock = ClassClock()
        self.conductor = Conductor(self.clock)
        self.scheduler = Scheduler(self.conductor)

        self.conductor.set_bpm(128)

        #info = Label(text = "text", pos=(0, 500), text_size=(100,100), valign='top')
        #self.add_widget(info)

        # root = ScrollView(size_hint=(None, None), size=(800, 600),
        #                   pos_hint={'center_x': .5, 'center_y': .5})
        # self.add_widget(root)

        #self.rel = AnchorLayout(size_hint=(None, None), width=9000, pos_hint={'center_x': .5, 'center_y': .5},
        #                        anchor_x='left', anchor_y='top')
        self.rel = RelativeLayout(size_hint=(None, None), width=9000, pos_hint={'center_x': .5, 'center_y': .5})
        self.add_widget(self.rel)

        # anchor = AnchorLayout(anchor_x='left', anchor_y='top')
        # self.rel.add_widget(anchor)

        layout = GridLayout(cols=1, padding=50, spacing=50, size_hint=(None, None), width=9000, row_force_default=True,
                            row_default_height=100)
        self.rel.add_widget(layout)

        for song in self.beatgen.get_songs():
            container = RelativeLayout()
            layout.add_widget(container)
            container.add_widget(song)

        self.nowline = Nowline(self.scheduler)
        self.rel.add_widget(self.nowline)

        self.beatgen.nowline = self.nowline

    def on_update(self):
        self.scheduler.on_update()

    def on_touch_down(self, touch):
        return super(MainWidget, self).on_touch_down(touch)

    def on_key_down(self, keycode, modifiers):
        (idx, char) = keycode
        if char == 'backspace':
            self.selection.set_state('NORMAL')
        elif char == 'c':
            self.selection.set_state('CUT')
        elif char == 'l':
            self.selection.set_state('LINK')
        elif char == 'g':
            self.selection.set_state('GO')

        # elif char == 'q':
        #     pass

        elif char == 'w':
            self.beatgen.next_beat -= 32

        elif char == 'e':
            self.beatgen.next_beat += 32

        elif char == 'spacebar':
            #self.clock.toggle()
            # print self.scheduler.cond.get_tick()
            self.beatgen.toggle()

        elif char == 'right':
            self.rel.x -= 100

        elif char == 'left':
            self.rel.x += 100

        elif char == 'up':
            self.rel.y -= 100

        elif char == 'down':
            self.rel.y += 100
Exemplo n.º 51
0
class BiscuitsGame:

    def __init__(self, app):

        # TODO pretty sure this causes circular references that prevent
        #      garbage collection of the whole scene
        self.app = app
        self.world = World()
        self.widget = RelativeLayout()
        self.objects_layer = RelativeLayout()

        object_configs = dict(map.objects)
        object_configs['player'] = Config(type='Player',
                                          body=Config(x=0, y=0, w=1, h=1))

        scene = WorldScene(object_configs, self.world, app)
        self.scene = scene

        # TODO figure out a nice way to get rid of this
        self.tilewidth = map.tilewidth
        self.tileheight = map.tileheight

        self.region = None
        self.region_cache = {}

        player = scene.objects.load('player')

        self.player = player
        self.world.add(player)

        self.hud = HUDWidget(size_hint=(1, .05), pos_hint={'top': 1})
        # TODO move debug to app
        debug = DebugWidget(player, size_hint=(1, .05))

        self.widget.add_widget(self.objects_layer)
        self.widget.add_widget(player.widget._kivy_widget)
        self.widget.add_widget(self.hud)
        self.widget.add_widget(debug)

    def load(self, loadpoint):

        # Unload the current region
        # TODO would be stellar if weak references could account
        #      for all of this
        if self.region:
            self.objects_layer.remove_widget(self.region.widget)
            for obj in self.region.objects:
                # TODO use weakref
                self.world.remove(obj)

        region_config = loadpoint.region

        try:
            self.region = self.region_cache[region_config.ID]
        except KeyError:
            self.region = Region(self.scene.objects, region_config)
            self.region_cache[region_config.ID] = self.region

        # TODO can use weakref to pass reference to add_widget()?
        #      would be awesome for maintaining ownership!
        self.objects_layer.add_widget(self.region.widget)
        self.player.set_position(loadpoint.x, loadpoint.y, loadpoint.direction)

        for obj in self.region.objects:
            # TODO use weakref
            obj.signals.destroy.connect(self.world.remove)
            self.world.add(obj)

        return self


    def update(self, dt):
        if self.region:
            self.region.update(dt)

        self.player.signals.update.send(dt)
        self.hud.coins = self.player.coins.balance
        self.hud.keys = self.player.keys.balance
        self.hud.health = self.player.life.amount
        self.track_player()

    def unload(self):
        pass

    def track_player(self):
        x = math.floor((self.player.body.bb.x + 0.5) * self.tilewidth)
        y = math.floor((self.player.body.bb.y + 0.5) * self.tileheight)

        self.objects_layer.x = self.widget.center_x - x
        self.objects_layer.y = self.widget.center_y - y
Exemplo n.º 52
0
"""main.py: Main module."""

from kivy.base import runTouchApp
from kivy.uix.relativelayout import RelativeLayout

from dpad import Dpad
from buttonpad import ButtonPad
from gameobject import GameObject

__author__ = "Victor RENÉ"
__copyright__ = "Copyright 2014, Kivy widget library"
__license__ = "MIT"
__version__ = "1.0"
__maintainer__ = "Victor RENÉ"
__email__ = "*****@*****.**"
__status__ = "Production"


if __name__ == '__main__':
  layout = RelativeLayout()
  d = Dpad(size_hint=(.15, .2), pos_hint={'center_x': .1, 'center_y': .5})
  layout.add_widget(d)
  b = ButtonPad(size_hint=(.15, .2), pos_hint={'center_x': .9, 'center_y': .5})
  layout.add_widget(b)
  go = GameObject(size_hint=(.075, .1), pos_hint={'center_x': .5, 'center_y': .5})
  d.listeners.append(go)
  b.listeners.append(go)
  layout.add_widget(go)
  runTouchApp(layout)
Exemplo n.º 53
0
from kivy.animation import Animation
from kivy.base import runTouchApp
from kivy.uix.relativelayout import RelativeLayout

from adventuremap import AdventureMap
from room import Room


if __name__ == '__main__':
  layout = RelativeLayout()
  m = AdventureMap(size_hint=(1, 1), pos_hint={'center_x': .5, 'center_y': .5})
  m.rooms[(0, 0)] = Room()
  m.rooms[(1, 1)] = Room(state='explored', walls=[None, 'full', None, 'full'])
  m.rooms[(1, 0)] = Room()
  m.rooms[(0, 1)] = Room(state='revealed', walls=['full', 'full', None, 'full'])
  m.rooms[(0, 2)] = Room()
  m.rooms[(2, 0)] = Room()
  m.rooms[(2, 2)] = Room()
  m.rooms[(1, 2)] = Room()
  m.rooms[(2, 1)] = Room()
  layout.add_widget(m)
  m.draw_rooms()

  # anim = Animation(health=0, duration=2.) + Animation(health=12, duration=2.)
  # anim.repeat = True
  # anim.start(m)
  runTouchApp(layout)
Exemplo n.º 54
0
from kivy.animation import Animation
from kivy.base import runTouchApp
from kivy.uix.relativelayout import RelativeLayout

from resourcebar import ResourceBar


if __name__ == '__main__':
  layout = RelativeLayout()
  rb = ResourceBar(size_hint=(.6, .2),
    pos_hint={'center_x': .5, 'center_y': .5})
  layout.add_widget(rb)
  anim1 = Animation(fill_pct=1.) + Animation(fill_pct=0.)
  anim1.repeat = True
  anim1.start(rb)
  anim2 = Animation(slant_pct=-1.) + Animation(slant_pct=1.)
  anim2.repeat = True
  anim2.start(rb)
  runTouchApp(layout)
Exemplo n.º 55
0
    def mList(self, argv=None):

        if argv is None:
            argv = []
        genreList = ["Action", "Adult", "Adventure", "Comedy", "Doujinshi", "Drama", "Ecchi", "Fantasy",
                     "Gender Bender",
                     "Harem", "Historical", "Horror", "Josei", "Martial Arts", "Mature", "Mecha", "Mystery", "One Shot",
                     "Psychological", "Romance", "School Life", "Sci-fi", "Seinen", "Shoujo", "Shounen",
                     "Slice of Life",
                     "Smut", "Sports", "Supernatural", "Tragedy", "Webtoons", "Yaoi", "Yuri"]

        try:
            opts, args = getopt(argv[0:], "g:s:b:a:p:",
                                ["genre=", "status=", "before=", "after=", "popularity="])
        except:
            raise Exception('Invalid argument usage\n')

        genres = []
        genreFlag = 0
        statusFlag = 0
        beforeFlag = 0
        afterFlag = 0
        popFlag = 0
        popSetting = ''

        for opt, arg in opts:
            if opt in ("-g", "--genre"):
                if arg not in genreList:
                    raise Exception(
                        arg + " is not a valid genre. " + "Genres are: " + '["Action","Adult","Adventure","Comedy","Doujinshi","Drama","Ecchi","Fantasy","Gender Bender","Harem","Historical","Horror","Josei","Martial Arts","Mature","Mecha","Mystery","One Shot","Psychological","Romance","School Life","Sci-fi","Seinen","Shoujo","Shounen","Slice of Life","Smut","Sports","Supernatural","Tragedy","Webtoons","Yaoi","Yuri"]' + "\n")
                genres.append(unicode(arg))
                genreFlag = 1
            elif opt in ("-s", "--status"):
                statusFlag = 1
                status = int(arg)
                if status != 1 and status != 2:
                    raise Exception('invalid status: should be 1 for "ongoing" or 2 for "completed"\n')
            elif opt in ("-b", "--before"):
                beforeFlag = 1
                beforeDate = date.fromtimestamp(float(arg))
            elif opt in ("-a", "--after"):
                afterFlag = 1
                afterDate = date.fromtimestamp(float(arg))
            elif opt in ("-p", "--popularity"):
                popFlag = 1
                if arg not in ("Low", "Medium", "High"):
                    raise Exception("Must select 'low', 'medium', or 'high' for popularity option.\n")
                else:
                    popSetting = arg
            else:
                raise Exception("Misc arg error\n")

        if not self.manList:
            try:
                conn = HTTPSConnection("www.mangaeden.com")
                conn.request("GET", "/api/list/0/")
                r1 = conn.getresponse()
            except:
                exceptionPopup = Popup(title='Connectivity Error:', size_hint=[0.75, 0.75],
                                       content=Label(text='Cannot connect to the internet\nor MangaEden may be down.',
                                                     font_size=30))
                self.spinEnd()
                exceptionPopup.open()
                return

            self.manList = loads(r1.read())

        yList = []

        if popFlag == 1:
            popArray = []
            for m in self.manList['manga']:
                popArray.append(int(m['h']))
            if platform in ('win', 'linux', 'macosx'):
                firstThirdPercentile = scoreatpercentile(popArray, 33)
                secondThirdPercentile = scoreatpercentile(popArray, 67)
            elif platform == 'android':
                firstThirdPercentile = 4055.64
                secondThirdPercentile = 35938.48

        for entries in self.manList['manga']:
            addit = 1

            if genreFlag:
                for g in genres:
                    if g not in entries['c']:
                        addit = 0

            if statusFlag:
                if status != entries['s']:
                    addit = 0

            if beforeFlag:
                if not entries.has_key('ld'):
                    addit = 0
                else:
                    if date.fromtimestamp(entries['ld']) > beforeDate:
                        addit = 0

            if afterFlag:
                if not entries.has_key('ld'):
                    addit = 0
                else:
                    if date.fromtimestamp(entries['ld']) < afterDate:
                        addit = 0

            if popFlag:
                if popSetting == "Low":
                    if entries['h'] > firstThirdPercentile:
                        addit = 0
                elif popSetting == "Medium":
                    if entries['h'] <= firstThirdPercentile or entries['h'] >= secondThirdPercentile:
                        addit = 0
                elif popSetting == "High":
                    if entries['h'] < secondThirdPercentile:
                        addit = 0

            if addit == 1:
                yList.append([entries['a'], entries['t']])

        if yList:
            spinResult = choice(yList)
            self.targetURL = "http://www.mangaeden.com/en/en-manga/" + quote_plus(spinResult[0])
            self.spinEnd()
            resultLabel = Label(text=spinResult[1], pos_hint={'center_x': 0.5, 'center_y': 0.6}, size_hint=[1, 0.75],
                                font_size=30)
            goButton = Button(text='View on MangaEden', valign='middle', halign='center', font_size=20,
                              size_hint=[0.4, 0.125], pos_hint={'center_x': 0.25, 'center_y': 0.1})
            copyButton = Button(text='Copy to clipboard', valign='middle', halign='center', font_size=20,
                                size_hint=[0.4, 0.125], pos_hint={'center_x': 0.75, 'center_y': 0.1})

            def callBrowser(instance):
                self.openInBrowser()
                return instance

            def callCopy(instance):
                if platform in ('win', 'linux', 'macosx'):
                    copy(spinResult[1])
                elif platform == 'android':
                    Context = autoclass('android.content.Context')
                    Looper = autoclass('android.os.Looper')
                    PythonActivity = autoclass('org.renpy.android.PythonActivity')
                    activity = PythonActivity.mActivity
                    ClipData = autoclass('android.content.ClipData')
                    if not self.loopPrepared:
                        Looper.prepare()
                        self.loopPrepared = True
                    clipboard = activity.getSystemService(Context.CLIPBOARD_SERVICE)
                    clip = ClipData.newPlainText('myclip', spinResult[1])
                    clipboard.setPrimaryClip(clip)
                return instance

            goButton.bind(on_release=callBrowser)
            copyButton.bind(on_release=callCopy)
            popLayout = RelativeLayout()
            popLayout.add_widget(resultLabel)
            popLayout.add_widget(goButton)
            popLayout.add_widget(copyButton)
            ResultPopup = Popup(title='Result:', size_hint=[0.75, 0.75], content=popLayout)
            ResultPopup.open()
        else:
            self.spinEnd("No Results. Try again?")
Exemplo n.º 56
0
class VisualizationApp(App):
    def __init__(self):
        self.scale = 1
        super().__init__()
        self.visualization_widgets = {}
        self.edges = {}
        Clock.schedule_interval(self.update, 1/30)

    def set_repo(self):
        try:
            self.repo = pygit2.Repository('/tmp/testrepo')
        except KeyError:
            pass

    def build(self):
        self.layout = RelativeLayout()
        self.edge_widget = Widget()
        self.layout.add_widget(self.edge_widget)

        Clock.schedule_interval(lambda t: self.rescan(), 2)

        kbd = Window.request_keyboard(lambda: None, self.edge_widget, 'text')
        kbd.bind(on_key_down=self._on_keyboard_down)

        self.option_widgets = []
        # Finding objects to show
        self.add_option('a', 'all', 'All', (1, 1, 1))
        self.add_option('i', 'index', 'Idx', (1, 1/2, 1))
        self.add_option('f', 'list-refs', 'reF', (1/2, 1, 1))
        self.add_option('l', 'reflog', 'Log', (1, 1/2, 1/2), default=False)
        # Filer shown objects
        self.add_option('b', 'blobs', 'Blb', (1/2, 1/2, 1/2))
        self.add_option('t', 'trees', 'Tre', (1/2, 1, 1/2))
        self.add_option('c', 'commits', 'Com', (1/2, 1/2, 1))
        self.add_option('r', 'refs', 'Ref', (1/2, 1, 1), default=False)

        return self.layout

    def add_option(self, shortcut, ident, name, color, default=True):
        self.options[ident] = default
        widget = OptionWidget(
            self, shortcut, ident, name, color,
            pos=(0, 20 * len(self.option_widgets)),
        )
        self.option_widgets.append(widget)
        self.layout.add_widget(widget)

    def add_object_widget(self, blob):
        widget = ObjectWidget(
            blob,
            x=self.layout.width/2, y=self.layout.height/2,
        )
        widget.scale = self.scale
        self.layout.add_widget(widget, 0)
        self.visualization_widgets[blob.hex] = widget
        return widget

    def add_ref_widget(self, ref):
        widget = RefWidget(
            ref,
            x=self.layout.width/2, y=self.layout.height/2,
        )
        self.layout.add_widget(widget, 0)
        self.visualization_widgets[ref.name] = widget
        return widget

    def add_edge(self, cls, a, b):
        try:
            return self.edges[a, b]
        except KeyError:
            edge = cls(
                self.visualization_widgets[a], self.visualization_widgets[b],
                self.edge_widget.canvas,
            )
            self.edges[a, b] = edge
            return edge

    def update(self, t):
        for blob in self.visualization_widgets.values():
            for other in self.visualization_widgets.values():
                fx, fy = self.interaction(blob, other)

                # Attraction to center
                cx = ((self.layout.width/2 - blob.x) / self.layout.width * 10)
                cy = ((self.layout.height/2 - blob.y) / self.layout.height * 10)
                if blob.reachable:
                    fx += cx ** 3
                    fy += cy ** 3
                else:
                    fx -= cx * 30
                    fy -= cy * 30

                if not blob._touches:
                    blob.x += fx * t * self.scale ** 2
                    blob.y += fy * t * self.scale ** 2

                if blob.reachable:
                    threshold = blob.radius
                else:
                    threshold = -blob.radius - 5
                if blob.x < threshold:
                    blob.x = threshold
                if blob.y < threshold:
                    blob.y = threshold
                if blob.x > self.layout.width - threshold:
                    blob.x = self.layout.width - threshold
                if blob.y > self.layout.height - threshold:
                    blob.y = self.layout.height - threshold

    def interaction(self, obj, obj2):
        fx = fy = 0
        if obj is obj2:
            return 0, 0
        dx = (obj.x - obj2.x) / self.scale
        dy = (obj.y - obj2.y) / self.scale
        distance = math.sqrt(dx ** 2 + dy ** 2)
        if not distance:
            rx = random.random() - 0.5
            ry = random.random() - 0.5
            obj.x += rx * obj.radius * 5
            obj.y += ry * obj.radius * 5
            return 0, 0
        ndx = dx / distance
        ndy = dy / distance
        if distance < 20:
            fx += ndx * 1e3
            fy += ndy * 1e3
        else:
            # Repulsion
            repulsion = 1e7 / distance ** 3
            fx += ndx * repulsion
            fy += ndy * repulsion

        edge = self.edges.get((obj.name, obj2.name))
        if edge:
            dfx, dfy = edge.force(distance, ndx, ndy, dx, dy)
            fx += dfx
            fy += dfy
        edge = self.edges.get((obj2.name, obj.name))
        if edge:
            dfx, dfy = edge.force(distance, -ndx, -ndy, -dx, -dy)
            fx -= dfx
            fy -= dfy
            #if obj2.reachable:
            #    obj.reachable = max(obj.reachable, obj2.reachable) * 0.9

        return fx, fy

    def rescan(self):
        try:
            self.repo
        except AttributeError:
            self.set_repo()
            try:
                self.repo
            except AttributeError:
                print('no repo')
                return

        print('rescan')
        #self.edge_widget.canvas.before.clear()

        unvisited_widgets = set(self.visualization_widgets)
        unvisited_edges = set(self.edges)
        visited = set()
        to_position = set()

        def _reach(widget):
            if not widget.reachable:
                to_position.add(widget)
            return widget

        def _add_edge(cls, a, b):
            edge = self.add_edge(cls, a, b)
            unvisited_edges.discard((a, b))
            return edge

        def _scan(obj):
            if isinstance(obj, pygit2.Commit) and not self.options['commits']:
                return
            if isinstance(obj, pygit2.Tree) and not self.options['trees']:
                return
            if isinstance(obj, pygit2.Blob) and not self.options['blobs']:
                return

            if obj.hex in visited:
                return _reach(self.visualization_widgets[obj.hex])
            else:
                visited.add(obj.hex)

            if obj.hex in unvisited_widgets:
                unvisited_widgets.discard(obj.hex)
            else:
                self.add_object_widget(obj)

            if isinstance(obj, pygit2.Tree):
                for entry in obj:
                    child = self.repo[entry.hex]
                    if _scan(child):
                        _add_edge(TreeContentEdge, obj.hex, child.hex)
            elif isinstance(obj, pygit2.Commit):
                if _scan(obj.tree):
                    _add_edge(CommitTreeEdge, obj.hex, obj.tree.hex)
                for parent in obj.parents:
                    if _scan(parent):
                        _add_edge(CommitParentEdge, obj.hex, parent.hex)

            return _reach(self.visualization_widgets[obj.hex])

        def _scan_ref(ref_name):
            try:
                ref = self.repo.lookup_reference(ref_name)
            except (KeyError, ValueError):
                return

            if self.options['refs']:
                if ref.name in visited:
                    return _reach(self.visualization_widgets[ref.name])
                else:
                    visited.add(ref.name)

                if ref.name in unvisited_widgets:
                    unvisited_widgets.discard(ref.name)
                else:
                    self.add_ref_widget(ref)

            target = ref.target
            if isinstance(target, str):
                target_widget = _scan_ref(target)
            else:
                target_widget = _scan(self.repo[target])

            if self.options['refs']:
                if target_widget:
                    _add_edge(RefEdge, ref.name, target_widget.name)


                if self.options['reflog']:
                    for item in ref.log():
                        if item.oid_old != pygit2.Oid(hex='0'*40):
                            target_widget = _scan(self.repo[item.oid_old])
                            if target_widget:
                                _add_edge(RefLogEdge, ref.name, target_widget.name)

                return _reach(self.visualization_widgets[ref.name])

        _scan_ref('HEAD')

        if self.options['index']:
            for entry in self.repo.index:
                _scan(self.repo[entry.id])

        if self.options['all']:
            for oid in self.repo:
                _scan(self.repo[oid])

        if self.options['list-refs']:
            for ref in self.repo.listall_references():
                _scan_ref(ref)

        for old_id in unvisited_widgets:
             self.visualization_widgets[old_id].fade_out()
             del self.visualization_widgets[old_id]
             #self.visualization_widgets[old_id].reachable = False

        for old_name in unvisited_edges:
            self.edges[old_name].remove()
            self.edges.pop(old_name)

        for widget in to_position:
            widget.reachable = True
            positions = []
            for other in self.visualization_widgets:
                edge = self.edges.get((widget.name, other))
                if edge:
                    fx, fy = edge.force(0, 0, 0, 0, 0)
                    positions.append((edge.b.x + fx*5, edge.b.y + fy*5))
                edge = self.edges.get((other, widget.name))
                if edge:
                    fx, fy = edge.force(0, 0, 0, 0, 0)
                    positions.append((edge.a.x - fx*5, edge.a.y - fy*5))
            if not positions:
                widget.x = self.layout.width / 2
                widget.y = self.layout.height / 2
            else:
                widget.x = sum(p[0] for p in positions) / len(positions)
                widget.y = sum(p[1] for p in positions) / len(positions)

    def _on_keyboard_down(self, keyboard, keycode, text, modifiers):
        num, letter = keycode
        if letter in ('=', '+'):
            self.update_scale(1.1)
        if letter in ('-', '_'):
            self.update_scale(0.9)
        for option in self.option_widgets:
            if option.shortcut == letter:
                option.toggle()

    def update_scale(self, factor):
        self.scale *= factor
        for widget in self.visualization_widgets.values():
            widget.scale = self.scale
Exemplo n.º 57
0
from kivy.uix.relativelayout import RelativeLayout

from dotmatrix import DotMatrix

__author__ = "Victor RENÉ"
__copyright__ = "Copyright 2014, Kivy widget library"
__license__ = "MIT"
__version__ = "1.0"
__maintainer__ = "Victor RENÉ"
__email__ = "*****@*****.**"
__status__ = "Production"


def rotate_text(wgt, dt):
  wgt.text = wgt.text[1:] + wgt.text[:1]

if __name__ == '__main__':
  layout = RelativeLayout()
  dm_tiny = DotMatrix(size_hint=(.8, .2), pos_hint={'center_x': .5, 'center_y': .7},
    font='font_3x5', dot_style='square', dot_on=(.3,.7,.9,1), dot_off=(0,.1,.3,1))
  dm_tiny.text = ' ABCDEFGHIJ +-.  0123456789 =*/ '
  layout.add_widget(dm_tiny)
  
  dm_big = DotMatrix(size_hint=(.8, .2), pos_hint={'center_x': .5, 'center_y': .3},
    font='font_5x7')
  dm_big.text = ' ABCDEFGHIJ +-.  0123456789 =*/ '
  layout.add_widget(dm_big)

  Clock.schedule_interval(partial(rotate_text, dm_big), 1)
  runTouchApp(layout)
Exemplo n.º 58
0
class Main(App):

    height = 720
    width = (height/16) * 9
    Window.size = (width,height)
    
    def build(self):
        self.itu_lat = 55.6593807
        self.itu_lon = 12.5910774
        self.obs_dic = None        
        self.old_time = 0.0
        self.weatherbox = AnchorLayout(anchor_x = 'center', anchor_y = 'bottom')
        self.Layout = RelativeLayout()
        self.mapview = MapView(zoom=11, lat=self.itu_lat, lon=self.itu_lon)
        mapview = self.mapview
        self.Layout.add_widget(mapview)
        # add map layer
        self.jsonmap = GeoJsonMapLayer(source='5_mile_airport.json')
        self.mapview.add_layer(self.jsonmap)        



        
        self.overlay = AnchorLayout(anchor_x='right', anchor_y='top')
        lowerLeft = AnchorLayout(anchor_x='left', anchor_y='bottom')
        self.lowerLeftStack = StackLayout(orientation='lr-bt',size_hint=(0.15,0.15))
        lowerLeft.add_widget(self.lowerLeftStack)
        btnre = Button(background_normal='refocus_normal.png', background_down='refocus_down.png', size_hint = (2,1))
        btnre.bind(on_press=self.resetloc)        
        btnnf = ToggleButton(background_normal='nofly_normal.png', background_down='nofly_down.png',size_hint = (2,1))
        btnnf.bind(on_press=self.nofly)
        self.lowerLeftStack.add_widget(btnre)
        self.lowerLeftStack.add_widget(btnnf)
        
        
        btn = ToggleButton(background_normal='Settings B.png', background_down="Settings G.png")
        btn.bind(on_press= self.show_dropdown)
        self.settings = StackLayout(size_hint=(0.2,0.2))
        self.settings.add_widget(btn)
        self.overlay.add_widget(self.settings)
        self.Layout.add_widget(lowerLeft)
        self.Layout.add_widget(self.overlay)
        
        marker = MapMarker(anchor_x = 0.5, anchor_y = 0.5, lat=self.itu_lat, lon=self.itu_lon)
        self.mapview.add_marker(marker)        
         
        return self.Layout
        
        
    def resetloc(self,instance):
        self.mapview.center_on(self.itu_lat,self.itu_lon)
    
    def nofly(self,instance):
        if instance.state == 'down':
            self.mapview.remove_layer(self.jsonmap)
        else:
            self.mapview.add_layer(self.jsonmap)
        
    def show_dropdown(self,instance):
        if instance.state == 'down':
            size = (1,0.5)
            btn1 = ToggleButton(text='Weather', size_hint = size)
            btn2 = Button(text='Level',size_hint = size)
            btn3 = Button(text='Nearby\nusers', size_hint = size)

            btn1.bind(on_press = self.show_weather_data)             
            
            self.settings.add_widget(btn1)
            self.settings.add_widget(btn2)
            self.settings.add_widget(btn3)
        else:
            for child in self.settings.children[:]:
                if child.text != "":
                    self.settings.remove_widget(child)
    
    def show_weather_data(self,instance):  
        weatherbox = self.weatherbox
        if instance.state == 'down': 
            layout = BoxLayout(orientation='vertical', size_hint = (0.2,0.1) )
            clat = self.mapview.lat
            clon = self.mapview.lon        
            
            ctime = time.time()        
            
            if(self.obs_dic == None or ctime > (self.old_time + 0.5)):            
                self.old_time = ctime
                self.obs_dic = api.loc_weather(clat,clon)
                weList = self.obs_dic['weather']
                we = weList[0]
                wi = self.obs_dic['wind']            
                l1 = Label(text = 'Current weather: ' + we['main'], color = (0.,0.,0.,1))
                main = self.obs_dic['main']
                k = main['temp']
                #Conversion from imperial to metric
                temp = k-273.15
                l2 = Label(text = 'temp: ' + str(temp) + ' ' + u'\u00B0' + 'C', color = (0.,0.,0.,1))
                hu = main['humidity']
                l3 = Label(text = 'humidity: ' + str(hu) + '%', color = (0.,0.,0.,1))
                pre = main['pressure']
                l4 = Label(text = 'pressure' + str(pre) + ' hPa', color = (0.,0.,0.,1))
                wispeed = wi['speed']
                widir = wi['deg']
                l5 = Label(text = 'wind speed: ' + str(wispeed) + 'm/s', color = (0.,0.,0.,1))
                l6 = Label(text = 'wind direction '+ str(widir) + u'\u00B0', color = (0.,0.,0.,1))
                Tdp = temp - ((100-hu)/5)
                l7 = Label(text = 'dew point: ' + str(Tdp) + ' ' + u'\u00B0' + 'C', color = (0.,0.,0.,1))

                layout.add_widget(l1)
                layout.add_widget(l2)
                layout.add_widget(l3)
                layout.add_widget(l4)
                layout.add_widget(l5)
                layout.add_widget(l6)        
                layout.add_widget(l7)            
                
                weatherbox.add_widget(layout)
                
                weatherbox.add_widget
                self.Layout.add_widget(weatherbox)
        else:
            for c in self.weatherbox.children[:]:
                for child in c.children[:]:
                    c.remove_widget(child)
                self.weatherbox.remove_widget(c)
            self.overlay.remove_widget(weatherbox)
class Data(Screen):
    def __init__(self, **kwargs):
        super(Data, self).__init__(**kwargs)

        ## TOGGLE BUTTON FUNCTION ##
        self.mataPencarianButton = Button(
            background_normal="data/lib/data-mata-pencaharian.png",
            background_down="data/lib/data-mata-pencaharian-hit.png",
            state="normal",
            size_hint=(None, None),
            size=(159, 165),
        )
        self.pemelukAgamaButton = Button(
            background_normal="data/lib/data-pemeluk-agama.png",
            background_down="data/lib/data-pemeluk-agama-hit.png",
            state="normal",
            size_hint=(None, None),
            size=(159, 165),
        )
        self.dataPendidikanButton = Button(
            background_normal="data/lib/data-pendidikan.png",
            background_down="data/lib/data-pendidikan-hit.png",
            state="normal",
            size_hint=(None, None),
            size=(159, 165),
        )
        self.dataUmurButton = Button(
            background_normal="data/lib/data-struktur-umur.png",
            background_down="data/lib/data-struktur-umur-hit.png",
            state="normal",
            size_hint=(None, None),
            size=(159, 165),
        )

        self.infografik = []
        self.infografik.append(
            Image(
                source="data/content/data-mata-pencaharian-info.png",
                allow_stretch=True,
                size_hint=(0.9, 0.9),
                pos_hint={"x": 0, "y": 0},
            )
        )  # 0
        self.infografik.append(
            Image(
                source="data/content/data-pemeluk-agama-info.png",
                allow_stretch=True,
                size_hint=(0.9, 0.9),
                pos_hint={"x": 0, "y": 0},
            )
        )  # 1
        self.infografik.append(
            Image(
                source="data/content/data-tingkat-pendidikan-info.png",
                allow_stretch=True,
                size_hint=(0.9, 0.9),
                pos_hint={"x": 0, "y": 0},
            )
        )  # 2
        self.infografik.append(
            Image(
                source="data/content/data-struktur-umur-info.png",
                allow_stretch=True,
                size_hint=(0.9, 0.9),
                pos_hint={"x": 0, "y": 0},
            )
        )  # 3
        self.infografik.append(Image(source="data/content/BG01c.png", allow_stretch=True))  # 4

        self.mataPencarianButton.bind(on_release=self.mataPencarian)
        self.pemelukAgamaButton.bind(on_release=self.pemelukAgama)
        self.dataPendidikanButton.bind(on_release=self.dataPendidikan)
        self.dataUmurButton.bind(on_release=self.dataStrukturUmur)

        ## Button Container ##
        self.bLayout = BoxLayout(
            size_hint=(None, None),
            orientation="horizontal",
            width=720,
            height=650,
            # pos_hint= {'y':0.05, 'x': 0.5},
            pos=(610, 40),
        )
        self.bLayout.add_widget(self.mataPencarianButton)
        self.bLayout.add_widget(self.pemelukAgamaButton)
        self.bLayout.add_widget(self.dataPendidikanButton)
        self.bLayout.add_widget(self.dataUmurButton)

        self.dataLayout = RelativeLayout()
        self.dataLayout.add_widget(self.infografik[4])

        self.add_widget(self.dataLayout)
        self.add_widget(self.bLayout)
        self.zoomIdx = 0

    ## Filter Button function method ##
    def mataPencarian(self, button=None, **args):
        self.dataLayout.clear_widgets()
        self.dataLayout.add_widget(self.infografik[0])

        # log
        gv.logger.log_button("view :" + "Mata Pencaharian")

    def pemelukAgama(self, button=None, **args):
        self.dataLayout.clear_widgets()
        self.dataLayout.add_widget(self.infografik[1])

        # log
        gv.logger.log_button("view :" + "Pemeluk Agama")

    def dataPendidikan(self, button=None, **args):
        self.dataLayout.clear_widgets()
        self.dataLayout.add_widget(self.infografik[2])

        # log
        gv.logger.log_button("view :" + "Pendidikan")

    def dataStrukturUmur(self, button=None, **args):
        self.dataLayout.clear_widgets()
        self.dataLayout.add_widget(self.infografik[3])

        # log
        gv.logger.log_button("view :" + "Struktur Umur")

    def reset(self):
        self.dataLayout.clear_widgets()
        self.dataLayout.add_widget(self.infografik[4])
Exemplo n.º 60
0
 def add_widget(self, *args, **kwargs):
     slide = RelativeLayout(size=self.size, x=self.x - self.width, y=self.y)
     slide.add_widget(*args, **kwargs)
     super(Carousel, self).add_widget(slide)
     self.slides.append(slide)