コード例 #1
0
    def render_weather(self, screen):
        weather = self.model.get_weather()
        if weather is not None:
            weather_text = weather.get_detailed_status()
            text = ui.render_text(weather_text.capitalize(),
                                  size=minimirror.WEATHER_FONT,
                                  fg=minimirror.BUTTON_BG,
                                  bg=minimirror.MAIN_BG)
            text = pygame.transform.rotate(text, 270)
            screen.blit(text, [
                self.model.width - minimirror.TIME_FONT -
                minimirror.WEATHER_FONT * 2, 20
            ])

            fahrenheit = self.model.convertKelvin(
                weather.get_temperature()['temp'])
            tempurate = ui.render_text(fahrenheit,
                                       size=minimirror.NUM_FONT,
                                       fg=minimirror.BUTTON_BG,
                                       bg=minimirror.MAIN_BG)
            tempurate = pygame.transform.rotate(tempurate, 270)
            screen.blit(tempurate, [
                self.model.width - minimirror.TIME_FONT -
                minimirror.WEATHER_FONT * 3 + 20, 20
            ])
コード例 #2
0
    def render_time(self, screen):
        #Time
        time = self.model.get_time_string_and_update()
        time_text = ui.render_text(time[0],
                                   size=minimirror.TIME_FONT,
                                   fg=minimirror.BUTTON_BG,
                                   bg=minimirror.MAIN_BG)
        time_text = pygame.transform.rotate(time_text, 270)
        screen.blit(time_text, [self.model.width - minimirror.TIME_FONT, 20])

        #AMPM
        am_pm_text = ui.render_text(time[2],
                                    size=minimirror.SMALL_FONT,
                                    fg=minimirror.BUTTON_BG,
                                    bg=minimirror.MAIN_BG)
        am_pm_text = pygame.transform.rotate(am_pm_text, 270)
        screen.blit(am_pm_text, [
            self.model.width - minimirror.TIME_FONT + 10,
            time_text.get_rect().height + 20
        ])

        #Date
        date_text = ui.render_text(time[1],
                                   size=minimirror.SMALL_FONT,
                                   fg=minimirror.BUTTON_BG,
                                   bg=minimirror.MAIN_BG)
        date_text = pygame.transform.rotate(date_text, 270)
        screen.blit(date_text, [
            self.model.width - minimirror.TIME_FONT - minimirror.SMALL_FONT, 20
        ])
コード例 #3
0
        def __init__(self, model, label_text, unit_text, initial='0', accept=None, cancel=None):
                """Create boolean dialog for provided model and with given label and unit
                text.  Can provide an optional initial value (default to True), an accept
                callback function which is called when the user accepts the dialog (and
                the chosen value will be sent as a single parameter), a cancel callback
                which is called when the user cancels.
                """
                self.value = str(initial)
		self.unit_text = unit_text
                self.model = model
                self.accept = accept
                self.cancel = cancel
                # Initialize button grid.
                self.buttons = ui.ButtonGrid(model.width, model.height, 4, 5)
                self.buttons.add(0, 1, 'False', font_size=freqshow.NUM_FONT, click=self.false_click)
                self.buttons.add(1, 1, 'True', font_size=freqshow.NUM_FONT, click=self.true_click)
                self.buttons.add(3, 3, 'CANCEL', click=self.cancel_click,
                        bg_color=freqshow.CANCEL_BG)
                self.buttons.add(3, 4, 'ACCEPT', click=self.accept_click,
                        bg_color=freqshow.ACCEPT_BG)
                # Build label text for faster rendering.
                self.input_rect = (0, 0, self.model.width, self.buttons.row_size)
                self.label = ui.render_text(label_text, size=freqshow.MAIN_FONT,
                        fg=freqshow.INPUT_FG, bg=freqshow.INPUT_BG)
                self.label_pos = ui.align(self.label.get_rect(), self.input_rect,
                        horizontal=ui.ALIGN_LEFT, hpad=2)
コード例 #4
0
ファイル: views.py プロジェクト: kieransimkin/FreqShow
	def render(self, screen):
		# Clear screen.
		screen.fill(freqshow.MAIN_BG)
		if self.overlay_enabled:
			# Draw shrunken spectrogram with overlaid buttons and axes values.
			spect_rect = (0, self.buttons.row_size, self.model.width,
				self.model.height-2*self.buttons.row_size)
			self.render_spectrogram(screen.subsurface(spect_rect))
			# Draw hash marks.
			self.render_hash(screen, 0)
			self.render_hash(screen, self.model.width/2)
			self.render_hash(screen, self.model.width-1)
			# Draw frequencies in bottom row.
			bottom_row  = (0, self.model.height-self.buttons.row_size,
				self.model.width, self.buttons.row_size)
			freq        = self.model.get_center_freq()
			bandwidth   = self.model.get_sample_rate()
			# Render minimum frequency on left.
			label = ui.render_text('{0:0.2f} Mhz'.format(freq-bandwidth/2.0),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_LEFT))
			# Render center frequency in center.
			label = ui.render_text('{0:0.2f} Mhz'.format(freq),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_CENTER))
			# Render maximum frequency on right.
			label = ui.render_text('{0:0.2f} Mhz'.format(freq+bandwidth/2.0),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_RIGHT))
			# Render min intensity in bottom left.
			label = ui.render_text('{0:0.0f} dB'.format(self.model.min_intensity),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), spect_rect,
				horizontal=ui.ALIGN_LEFT, vertical=ui.ALIGN_BOTTOM))
			# Render max intensity in top left.
			label = ui.render_text('{0:0.0f} dB'.format(self.model.max_intensity),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), spect_rect,
				horizontal=ui.ALIGN_LEFT, vertical=ui.ALIGN_TOP))
			# Draw the buttons.
			self.buttons.render(screen)
		else:
			# Draw fullscreen spectrogram.
			self.render_spectrogram(screen)
コード例 #5
0
ファイル: views.py プロジェクト: RUSH-AI-Dev/sdr_mongodb
	def render(self, screen):
		# Clear screen.
		screen.fill(freqshow.MAIN_BG)
		if self.overlay_enabled:
			# Draw shrunken spectrogram with overlaid buttons and axes values.
			spect_rect = (0, self.buttons.row_size, self.model.width,
				self.model.height-2*self.buttons.row_size)
			self.render_spectrogram(screen.subsurface(spect_rect))
			# Draw hash marks.
			self.render_hash(screen, 0)
			self.render_hash(screen, self.model.width/2)
			self.render_hash(screen, self.model.width-1)
			# Draw frequencies in bottom row.
			bottom_row  = (0, self.model.height-self.buttons.row_size,
				self.model.width, self.buttons.row_size)
			freq        = self.model.get_center_freq()
			bandwidth   = self.model.get_sample_rate()
			# Render minimum frequency on left.
			label = ui.render_text('{0:0.2f} Mhz'.format(freq-bandwidth/2.0),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_LEFT))
			# Render center frequency in center.
			label = ui.render_text('{0:0.2f} Mhz'.format(freq),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_CENTER))
			# Render maximum frequency on right.
			label = ui.render_text('{0:0.2f} Mhz'.format(freq+bandwidth/2.0),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_RIGHT))
			# Render min intensity in bottom left.
			label = ui.render_text('{0:0.0f} dB'.format(self.model.min_intensity),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), spect_rect,
				horizontal=ui.ALIGN_LEFT, vertical=ui.ALIGN_BOTTOM))
			# Render max intensity in top left.
			label = ui.render_text('{0:0.0f} dB'.format(self.model.max_intensity),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), spect_rect,
				horizontal=ui.ALIGN_LEFT, vertical=ui.ALIGN_TOP))
			# Draw the buttons.
			self.buttons.render(screen)
		else:
			# Draw fullscreen spectrogram.
			self.render_spectrogram(screen)
コード例 #6
0
 def redraw(self):
     self.label_image = ui.render_text(self.font, self.label, self.color)
     size = self.label_image.get_size()
     if self.force_width > size[0]:
         size = self.force_width, size[1]
     self.size = size[0] + self.padding * 2, size[1] + self.padding * 2
     self.padding_left = (self.size[0] - self.label_image.get_size()[0]) / 2
     self.padding_top = (self.size[1] - self.label_image.get_size()[1]) / 2
コード例 #7
0
ファイル: widgets.py プロジェクト: 4nakin/freeciv-android
 def redraw(self):
     self.label_image = ui.render_text(self.font, self.label, self.color)
     size = self.label_image.get_size()
     if self.force_width:
         size = self.force_width, size[1]
     self.size = size[0] + self.padding*2, size[1] + self.padding*2
     self.padding_left = (self.size[0] - self.label_image.get_size()[0])/2
     self.padding_top = (self.size[1] - self.label_image.get_size()[1])/2
コード例 #8
0
ファイル: views.py プロジェクト: aliveable/RTLSDR-NBTC
    def __init__(self,
                 model,
                 label_text,
                 unit_text,
                 initial='0',
                 accept=None,
                 cancel=None,
                 has_auto=False,
                 allow_negative=False):
        """Create number dialog for provided model and with given label and unit
        text.  Can provide an optional initial value (default to 0), an accept
        callback function which is called when the user accepts the dialog (and
        the chosen value will be sent as a single parameter), a cancel callback
        which is called when the user cancels, and a has_auto boolean if an
        'AUTO' option should be given in addition to numbers.
        """
        self.value = str(initial)
        self.unit_text = unit_text
        self.model = model
        self.accept = accept
        self.cancel = cancel
        # Initialize button grid.
        self.buttons = ui.ButtonGrid(model.width, model.height, 4, 5)
        self.buttons.add(0,
                         1,
                         'ENABLE',
                         font_size=freqshow.NUM_FONT,
                         click=self.enable_click,
                         colspan=2)
        self.buttons.add(2,
                         1,
                         'DISABLE',
                         font_size=freqshow.NUM_FONT,
                         click=self.disable_click,
                         colspan=2)

        self.buttons.add(0,
                         4,
                         'CANCEL',
                         click=self.cancel_click,
                         bg_color=freqshow.CANCEL_BG)
        self.buttons.add(3,
                         4,
                         'ACCEPT',
                         click=self.accept_click,
                         bg_color=freqshow.ACCEPT_BG)

        # Build label text for faster rendering.
        self.input_rect = (0, 0, self.model.width, self.buttons.row_size)
        self.label = ui.render_text(label_text,
                                    size=freqshow.MAIN_FONT,
                                    fg=freqshow.INPUT_FG,
                                    bg=freqshow.INPUT_BG)
        self.label_pos = ui.align(self.label.get_rect(),
                                  self.input_rect,
                                  horizontal=ui.ALIGN_LEFT,
                                  hpad=10)
コード例 #9
0
ファイル: views.py プロジェクト: kslymn/rtlsdr4
	def render(self, screen):
		
		screen.fill(freqshow.MAIN_BG)
		if self.overlay_enabled:
			
			spect_rect = (0, self.buttons.row_size, self.model.width,
				self.model.height-2*self.buttons.row_size)
			self.render_spectrogram(screen.subsurface(spect_rect))
			self.render_hash(screen, 0)
			self.render_hash(screen, self.model.width/2)
			self.render_hash(screen, self.model.width-1)
			bottom_row  = (0, self.model.height-self.buttons.row_size,
				self.model.width, self.buttons.row_size)
			freq        = self.model.get_center_freq()
			bandwidth   = self.model.get_sample_rate()
			label = ui.render_text('{0:0.2f} Mhz'.format(freq-bandwidth/2.0),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_LEFT))
			label = ui.render_text('{0:0.2f} Mhz'.format(freq),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_CENTER))
			
			label = ui.render_text('{0:0.2f} Mhz'.format(freq+bandwidth/2.0),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_RIGHT))
			
			label = ui.render_text('{0:0.0f} dB'.format(self.model.min_intensity),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), spect_rect,
				horizontal=ui.ALIGN_LEFT, vertical=ui.ALIGN_BOTTOM))
			
			label = ui.render_text('{0:0.0f} dB'.format(self.model.max_intensity),
				size=freqshow.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), spect_rect,
				horizontal=ui.ALIGN_LEFT, vertical=ui.ALIGN_TOP))
			
			self.buttons.render(screen)
		else:
			
			self.render_spectrogram(screen)
コード例 #10
0
ファイル: views.py プロジェクト: kslymn/rtlsdr4
	def render(self, screen):
		
		screen.fill(freqshow.MAIN_BG)
		screen.fill(freqshow.INPUT_BG, self.input_rect)
		screen.blit(self.label, self.label_pos)
		value_label = ui.render_text('{0} {1}'.format(self.value, self.unit_text),
			size=freqshow.NUM_FONT, fg=freqshow.INPUT_FG, bg=freqshow.INPUT_BG)
		screen.blit(value_label, ui.align(value_label.get_rect(), self.input_rect,
			horizontal=ui.ALIGN_RIGHT, hpad=-10))
		
		self.buttons.render(screen)
コード例 #11
0
	def __init__(self, model, text, accept, cancel=None):
		self.accept = accept
		self.cancel = cancel
		self.buttons = ui.ButtonGrid(model.width, model.height, 4, 5)
		self.buttons.add(0, 4, 'YA', click=self.accept_click, 
			bg_color=spektrum.ACCEPT_BG)
		if cancel is not None:
			self.buttons.add(3, 4, 'BATAL', click=self.cancel_click, 
				bg_color=spektrum.CANCEL_BG)
		self.label = ui.render_text(text, size=spektrum.NUM_FONT,
			fg=spektrum.TULISAN, bg=spektrum.MAIN_BG)
		self.label_rect = ui.align(self.label.get_rect(),
			(0, 0, model.width, model.height))
コード例 #12
0
ファイル: views.py プロジェクト: kieransimkin/FreqShow
	def render(self, screen):
		# Clear view and draw background.
		screen.fill(freqshow.MAIN_BG)
		# Draw input background at top of screen.
		screen.fill(freqshow.INPUT_BG, self.input_rect)
		# Render label and value text.
		screen.blit(self.label, self.label_pos)
		value_label = ui.render_text('{0} {1}'.format(self.value, self.unit_text),
			size=freqshow.NUM_FONT, fg=freqshow.INPUT_FG, bg=freqshow.INPUT_BG)
		screen.blit(value_label, ui.align(value_label.get_rect(), self.input_rect,
			horizontal=ui.ALIGN_RIGHT, hpad=-10))
		# Render buttons.
		self.buttons.render(screen)
コード例 #13
0
ファイル: views.py プロジェクト: RUSH-AI-Dev/sdr_mongodb
	def render(self, screen):
		# Clear view and draw background.
		screen.fill(freqshow.MAIN_BG)
		# Draw input background at top of screen.
		screen.fill(freqshow.INPUT_BG, self.input_rect)
		# Render label and value text.
		screen.blit(self.label, self.label_pos)
		value_label = ui.render_text('{0} {1}'.format(self.value, self.unit_text),
			size=freqshow.NUM_FONT, fg=freqshow.INPUT_FG, bg=freqshow.INPUT_BG)
		screen.blit(value_label, ui.align(value_label.get_rect(), self.input_rect,
			horizontal=ui.ALIGN_RIGHT, hpad=-10))
		# Render buttons.
		self.buttons.render(screen)
コード例 #14
0
ファイル: views.py プロジェクト: kieransimkin/FreqShow
	def __init__(self, model, text, accept, cancel=None):
		self.accept = accept
		self.cancel = cancel
		self.buttons = ui.ButtonGrid(model.width, model.height, 4, 5)
		self.buttons.add(3, 4, 'OK', click=self.accept_click, 
			bg_color=freqshow.ACCEPT_BG)
		if cancel is not None:
			self.buttons.add(0, 4, 'CANCEL', click=self.cancel_click, 
				bg_color=freqshow.CANCEL_BG)
		self.label = ui.render_text(text, size=freqshow.NUM_FONT,
			fg=freqshow.BUTTON_FG, bg=freqshow.MAIN_BG)
		self.label_rect = ui.align(self.label.get_rect(),
			(0, 0, model.width, model.height))
コード例 #15
0
ファイル: views.py プロジェクト: RUSH-AI-Dev/sdr_mongodb
	def __init__(self, model, text, accept, cancel=None):
		self.accept = accept
		self.cancel = cancel
		self.buttons = ui.ButtonGrid(model.width, model.height, 4, 5)
		self.buttons.add(3, 4, 'OK', click=self.accept_click, 
			bg_color=freqshow.ACCEPT_BG)
		if cancel is not None:
			self.buttons.add(0, 4, 'CANCEL', click=self.cancel_click, 
				bg_color=freqshow.CANCEL_BG)
		self.label = ui.render_text(text, size=freqshow.NUM_FONT,
			fg=freqshow.BUTTON_FG, bg=freqshow.MAIN_BG)
		self.label_rect = ui.align(self.label.get_rect(),
			(0, 0, model.width, model.height))
コード例 #16
0
ファイル: views.py プロジェクト: RUSH-AI-Dev/sdr_mongodb
	def __init__(self, model, label_text, unit_text, initial='0', accept=None,
		cancel=None, has_auto=False, allow_negative=False):
		"""Create number dialog for provided model and with given label and unit
		text.  Can provide an optional initial value (default to 0), an accept
		callback function which is called when the user accepts the dialog (and
		the chosen value will be sent as a single parameter), a cancel callback
		which is called when the user cancels, and a has_auto boolean if an
		'AUTO' option should be given in addition to numbers.
		"""
		self.value = str(initial)
		self.unit_text = unit_text
		self.model = model
		self.accept = accept
		self.cancel = cancel
		# Initialize button grid.
		self.buttons = ui.ButtonGrid(model.width, model.height, 4, 5)
		self.buttons.add(0, 1, '1', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(1, 1, '2', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(2, 1, '3', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(0, 2, '4', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(1, 2, '5', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(2, 2, '6', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(0, 3, '7', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(1, 3, '8', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(2, 3, '9', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(1, 4, '0', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(2, 4, '.', font_size=freqshow.NUM_FONT, click=self.decimal_click)
		self.buttons.add(0, 4, 'DELETE', click=self.delete_click)
		if not allow_negative:
			# Render a clear button if only positive values are allowed.
			self.buttons.add(3, 1, 'CLEAR', click=self.clear_click)
		else:
			# Render a +/- toggle if negative values are allowed.
			self.buttons.add(3, 1, '+/-', click=self.posneg_click)
		self.buttons.add(3, 3, 'CANCEL', click=self.cancel_click,
			bg_color=freqshow.CANCEL_BG)
		self.buttons.add(3, 4, 'ACCEPT', click=self.accept_click,
			bg_color=freqshow.ACCEPT_BG) 
		if has_auto:
			self.buttons.add(3, 2, 'AUTO', click=self.auto_click)
		# Build label text for faster rendering.
		self.input_rect = (0, 0, self.model.width, self.buttons.row_size)
		self.label = ui.render_text(label_text, size=freqshow.MAIN_FONT, 
			fg=freqshow.INPUT_FG, bg=freqshow.INPUT_BG)
		self.label_pos = ui.align(self.label.get_rect(), self.input_rect,
			horizontal=ui.ALIGN_LEFT, hpad=10)
コード例 #17
0
ファイル: views.py プロジェクト: kieransimkin/FreqShow
	def __init__(self, model, label_text, unit_text, initial='0', accept=None,
		cancel=None, has_auto=False, allow_negative=False):
		"""Create number dialog for provided model and with given label and unit
		text.  Can provide an optional initial value (default to 0), an accept
		callback function which is called when the user accepts the dialog (and
		the chosen value will be sent as a single parameter), a cancel callback
		which is called when the user cancels, and a has_auto boolean if an
		'AUTO' option should be given in addition to numbers.
		"""
		self.value = str(initial)
		self.unit_text = unit_text
		self.model = model
		self.accept = accept
		self.cancel = cancel
		# Initialize button grid.
		self.buttons = ui.ButtonGrid(model.width, model.height, 4, 5)
		self.buttons.add(0, 1, '1', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(1, 1, '2', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(2, 1, '3', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(0, 2, '4', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(1, 2, '5', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(2, 2, '6', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(0, 3, '7', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(1, 3, '8', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(2, 3, '9', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(1, 4, '0', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(2, 4, '.', font_size=freqshow.NUM_FONT, click=self.decimal_click)
		self.buttons.add(0, 4, 'DELETE', click=self.delete_click)
		if not allow_negative:
			# Render a clear button if only positive values are allowed.
			self.buttons.add(3, 1, 'CLEAR', click=self.clear_click)
		else:
			# Render a +/- toggle if negative values are allowed.
			self.buttons.add(3, 1, '+/-', click=self.posneg_click)
		self.buttons.add(3, 3, 'CANCEL', click=self.cancel_click,
			bg_color=freqshow.CANCEL_BG)
		self.buttons.add(3, 4, 'ACCEPT', click=self.accept_click,
			bg_color=freqshow.ACCEPT_BG) 
		if has_auto:
			self.buttons.add(3, 2, 'AUTO', click=self.auto_click)
		# Build label text for faster rendering.
		self.input_rect = (0, 0, self.model.width, self.buttons.row_size)
		self.label = ui.render_text(label_text, size=freqshow.MAIN_FONT, 
			fg=freqshow.INPUT_FG, bg=freqshow.INPUT_BG)
		self.label_pos = ui.align(self.label.get_rect(), self.input_rect,
			horizontal=ui.ALIGN_LEFT, hpad=10)
コード例 #18
0
ファイル: views.py プロジェクト: kslymn/rtlsdr4
	def __init__(self, model, label_text, unit_text, initial='0', accept=None,
		cancel=None, has_auto=False, allow_negative=False):
		
		
		self.value = str(initial)
		self.unit_text = unit_text
		self.model = model
		self.accept = accept
		self.cancel = cancel
		self.buttons = ui.ButtonGrid(model.width, model.height, 4, 5)
		self.buttons.add(0, 1, '1', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(1, 1, '2', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(2, 1, '3', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(0, 2, '4', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(1, 2, '5', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(2, 2, '6', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(0, 3, '7', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(1, 3, '8', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(2, 3, '9', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(1, 4, '0', font_size=freqshow.NUM_FONT, click=self.number_click)
		self.buttons.add(2, 4, '.', font_size=freqshow.NUM_FONT, click=self.decimal_click)
		self.buttons.add(0, 4, 'Sil', click=self.delete_click)
		if not allow_negative:
			
			self.buttons.add(3, 1, 'Temizle', click=self.clear_click)
		else:
			
			self.buttons.add(3, 1, '+/-', click=self.posneg_click)
		self.buttons.add(3, 3, 'İptal', click=self.cancel_click,
			bg_color=freqshow.CANCEL_BG)
		self.buttons.add(3, 4, 'Kabul', click=self.accept_click,
			bg_color=freqshow.ACCEPT_BG) 
		if has_auto:
			self.buttons.add(3, 2, 'Auto', click=self.auto_click)
		
		self.input_rect = (0, 0, self.model.width, self.buttons.row_size)
		self.label = ui.render_text(label_text, size=freqshow.MAIN_FONT, 
			fg=freqshow.INPUT_FG, bg=freqshow.INPUT_BG)
		self.label_pos = ui.align(self.label.get_rect(), self.input_rect,
			horizontal=ui.ALIGN_LEFT, hpad=10)
コード例 #19
0
    def render_weather(self, screen):
        weather = self.model.get_weather()

        #print weather
        # print "status: " + str(weather.get_status())
        # print "detailed status: " + str(weather.get_detailed_status())
        # print "temp: " + str(weather.get_temperature())
        # print "current temp: " + str(self.model.convertKelvin(weather.get_temperature()['temp']))
        # print "humidity: " + str(weather.get_humidity())
        # print "wind: " + str(weather.get_wind())
        # print "rain: " + str(weather.get_rain())
        # print "clouds: " + str(weather.get_clouds())

        weather_header = ui.render_text(self.model.location_name.split(',')[0],
                                        size=minimirror.TIME_FONT,
                                        fg=minimirror.BUTTON_BG,
                                        bg=minimirror.MAIN_BG)
        weather_header = pygame.transform.rotate(weather_header, 270)
        screen.blit(weather_header,
                    [self.model.width - minimirror.TIME_FONT, 20])

        # where_weather = ui.render_text(self.model.location_name, size=minimirror.MAIN_FONT,
        # 	 fg=minimirror.BUTTON_BG, bg=minimirror.MAIN_BG)
        # where_weather = pygame.transform.rotate(where_weather, 270)
        # screen.blit(where_weather, [self.model.width - 80, 20])

        if weather is not None:
            weather_text = weather.get_detailed_status()
            text = ui.render_text(weather_text.capitalize(),
                                  size=minimirror.MAIN_FONT,
                                  fg=minimirror.BUTTON_BG,
                                  bg=minimirror.MAIN_BG)
            text = pygame.transform.rotate(text, 270)
            screen.blit(text, [self.model.width - 130, 30])

            fahrenheit = "currently {}f".format(
                weather.get_temperature('fahrenheit')['temp'])
            max_temp = weather.get_temperature('fahrenheit')['temp_max']
            min_temp = weather.get_temperature('fahrenheit')['temp_min']
            min_max_temp_string = "min {}f, max {}f".format(min_temp, max_temp)

            tempurate = ui.render_text(fahrenheit,
                                       size=minimirror.MAIN_FONT,
                                       fg=minimirror.BUTTON_BG,
                                       bg=minimirror.MAIN_BG)
            tempurate = pygame.transform.rotate(tempurate, 270)
            screen.blit(tempurate, [self.model.width - 160, 30])

            min_max_tempurate = ui.render_text(min_max_temp_string,
                                               size=minimirror.MAIN_FONT,
                                               fg=minimirror.BUTTON_BG,
                                               bg=minimirror.MAIN_BG)
            min_max_tempurate = pygame.transform.rotate(min_max_tempurate, 270)
            screen.blit(min_max_tempurate, [self.model.width - 190, 30])

            humidity = ui.render_text('Humidity ' +
                                      str(weather.get_humidity()) + '%',
                                      size=minimirror.MAIN_FONT,
                                      fg=minimirror.BUTTON_BG,
                                      bg=minimirror.MAIN_BG)
            humidity = pygame.transform.rotate(humidity, 270)
            screen.blit(humidity, [self.model.width - 220, 30])

            windSpeed = ui.render_text(
                'Windspeed ' + str(weather.get_wind().get('speed')) + ' knots',
                size=minimirror.MAIN_FONT,
                fg=minimirror.BUTTON_BG,
                bg=minimirror.MAIN_BG)
            windSpeed = pygame.transform.rotate(windSpeed, 270)
            screen.blit(windSpeed, [self.model.width - 250, 30])

            windDirection = ui.render_text(
                'Direction ' + str(weather.get_wind().get('deg')) + ' degrees',
                size=minimirror.MAIN_FONT,
                fg=minimirror.BUTTON_BG,
                bg=minimirror.MAIN_BG)
            windDirection = pygame.transform.rotate(windDirection, 270)
            screen.blit(windDirection, [self.model.width - 280, 30])

            if str(weather.get_rain()) is not {}:
                rain = ui.render_text('Rain ' + str(weather.get_rain()),
                                      size=minimirror.MAIN_FONT,
                                      fg=minimirror.BUTTON_BG,
                                      bg=minimirror.MAIN_BG)
                rain = pygame.transform.rotate(rain, 270)
                screen.blit(rain, [self.model.width - 310, 30])

            clouds = ui.render_text('Cloud cover ' +
                                    str(weather.get_clouds()) + '%',
                                    size=minimirror.MAIN_FONT,
                                    fg=minimirror.BUTTON_BG,
                                    bg=minimirror.MAIN_BG)
            clouds = pygame.transform.rotate(clouds, 270)
            screen.blit(clouds, [self.model.width - 340, 30])
コード例 #20
0
    def render(self, screen):
        # Clear screen.
        screen.fill(freqshow.MAIN_BG)
        if self.overlay_enabled:
            # Draw shrunken spectrogram with overlaid buttons and axes values.
            spect_rect = (0, self.buttons.row_size, self.model.width,
                          self.model.height - 2 * self.buttons.row_size)
            self.render_spectrogram(screen.subsurface(spect_rect))

            # Draw hash marks.
            self.render_hash(screen, 0)
            self.render_hash(screen, self.model.width / 2)
            self.render_hash(screen, self.model.width - 1)

            # Draw frequencies in bottom row.
            bottom_row = (0, self.model.height - self.buttons.row_size,
                          self.model.width, self.buttons.row_size)

            #			freq        = float(self.model.get_lo_freq()) - float(self.model.get_lo_offset())
            freq = self.model.get_center_freq()
            bandwidth = self.model.get_zoom_fac()
            sig = (self.model.get_sig_strength() / 6)
            offset = self.model.get_lo_offset()
            beta = self.model.get_kaiser_beta()

            # Render minimum frequency on left.
            label = ui.render_text('- {0:0.4f} Mhz'.format(bandwidth / 2.0),
                                   size=freqshow.MAIN_FONT,
                                   bg=freqshow.MAIN_BG)
            screen.blit(
                label,
                ui.align(label.get_rect(),
                         bottom_row,
                         horizontal=ui.ALIGN_LEFT))

            # Render center frequency in center.
            label = ui.render_text('{0:0.6f}'.format(freq),
                                   size=freqshow.MAIN_FONT,
                                   bg=freqshow.MAIN_BG)
            screen.blit(
                label,
                ui.align(label.get_rect(),
                         bottom_row,
                         horizontal=ui.ALIGN_CENTER))

            # Render maximum frequency on right.
            label = ui.render_text('+ {0:0.4f} Mhz'.format(bandwidth / 2.0),
                                   size=freqshow.MAIN_FONT,
                                   bg=freqshow.MAIN_BG)
            screen.blit(
                label,
                ui.align(label.get_rect(),
                         bottom_row,
                         horizontal=ui.ALIGN_RIGHT))

            # Render min intensity in bottom left.
            label = ui.render_text('{0:0.0f} dB'.format(
                self.model.min_intensity),
                                   size=freqshow.MAIN_FONT,
                                   bg=freqshow.GRID_BG)
            screen.blit(
                label,
                ui.align(label.get_rect(),
                         spect_rect,
                         horizontal=ui.ALIGN_LEFT,
                         vertical=ui.ALIGN_BOTTOM))

            # Render max intensity in top left.
            label = ui.render_text('{0:0.0f} dB'.format(
                self.model.max_intensity),
                                   size=freqshow.MAIN_FONT,
                                   bg=freqshow.GRID_BG)
            screen.blit(
                label,
                ui.align(label.get_rect(),
                         spect_rect,
                         horizontal=ui.ALIGN_LEFT,
                         vertical=ui.ALIGN_TOP))

            # Render FFT average in bottom right.
            if self.model.get_peak() == True:
                label = ui.render_text('fft pks = {0}'.format(
                    self.model.fft_ave),
                                       size=freqshow.MAIN_FONT,
                                       bg=freqshow.GRID_BG)
                screen.blit(
                    label,
                    ui.align(label.get_rect(),
                             spect_rect,
                             horizontal=ui.ALIGN_RIGHT,
                             vertical=ui.ALIGN_BOTTOM))
            elif self.model.get_peak() == False:
                label = ui.render_text('fft ave = {0}'.format(
                    self.model.fft_ave),
                                       size=freqshow.MAIN_FONT,
                                       bg=freqshow.GRID_BG)
                screen.blit(
                    label,
                    ui.align(label.get_rect(),
                             spect_rect,
                             horizontal=ui.ALIGN_RIGHT,
                             vertical=ui.ALIGN_BOTTOM))

            # Render Grid scale factor in upper right.
            label = ui.render_text('scale = {0:0.1f} dB'.format(
                (self.model.max_intensity - self.model.min_intensity) / 10),
                                   size=freqshow.MAIN_FONT,
                                   bg=freqshow.GRID_BG)
            screen.blit(
                label,
                ui.align(label.get_rect(),
                         spect_rect,
                         horizontal=ui.ALIGN_RIGHT,
                         vertical=ui.ALIGN_TOP))

            # Render Signal plus to Noise of Ceneter Frequency in center top.
            #			label = ui.render_text('S units = {0:0.1f}' .format(sig),
            #				size=freqshow.MAIN_FONT, bg=freqshow.GRID_BG)
            #			screen.blit(label, ui.align(label.get_rect(), spect_rect,
            #				horizontal=ui.ALIGN_CENTER, vertical=ui.ALIGN_TOP))

            # Render windowing filter setting in center top.
            if self.model.filter == 'kaiser':
                label = ui.render_text('Kaiser beta = {0:0.1f}'.format(beta),
                                       size=freqshow.MAIN_FONT,
                                       bg=freqshow.GRID_BG)
                screen.blit(
                    label,
                    ui.align(label.get_rect(),
                             spect_rect,
                             horizontal=ui.ALIGN_CENTER,
                             vertical=ui.ALIGN_TOP))
            else:
                label = ui.render_text('{0}'.format(self.model.filter),
                                       size=freqshow.MAIN_FONT,
                                       bg=freqshow.GRID_BG)
                screen.blit(
                    label,
                    ui.align(label.get_rect(),
                             spect_rect,
                             horizontal=ui.ALIGN_CENTER,
                             vertical=ui.ALIGN_TOP))

            # Draw the buttons.
            self.buttons.render(screen)
        else:
            # Draw fullscreen spectrogram.
            self.render_spectrogram(screen)
コード例 #21
0
	def render(self, screen):
		# Clear screen.
		screen.fill(spektrum.MAIN_BG)
		if self.overlay_enabled:
			# Draw shrunken spectrogram with overlaid buttons and axes values.
			spect_rect = (0, self.buttons.row_size, self.model.width,
				self.model.height-2*self.buttons.row_size)
			self.render_spectrogram(screen.subsurface(spect_rect))
			# Draw hash marks.
			self.render_hash(screen, 0)
			self.render_hash(screen, self.model.width/4)
			self.render_hash(screen, self.model.width/2)
			self.render_hash(screen, self.model.width*3/4)
			self.render_hash(screen, self.model.width-1)
			# Draw frequencies in bottom row.
			bottom_row  = (0, (self.model.height-7)-self.buttons.row_size,
				self.model.width, self.buttons.row_size)
			bottom_mhz  = (0, (self.model.height + 15)-self.buttons.row_size,
				self.model.width, self.buttons.row_size)
			freq        = self.model.get_center_freq()
			bandwidth   = self.model.get_sample_rate()
			# Render minimum frequency on left.
			label = ui.render_text('{0:0.2f}'.format(freq-bandwidth/2.0),
				size=spektrum.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_LEFT))
			pygame.draw.line(screen, spektrum.PEMBATAS, [0, 256], [478, 256])
			# Tengah2 top-center
			label = ui.render_text('{0:0.2f}'.format(freq-bandwidth/4.0),
				size=spektrum.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_LC))
			pygame.draw.line(screen, spektrum.BATAS, [120, 256], [120, 64])
			# Render center frequency in center.
			label = ui.render_text('{0:0.2f}'.format(freq),
				size=spektrum.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_CENTER))
			pygame.draw.line(screen, spektrum.BATAS, [240, 256], [240, 64])
			# Tulisan MHz
			label = ui.render_text('Frequency (Mhz)', size=spektrum.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_mhz, horizontal=ui.ALIGN_CENTER))
			# Tengah2 Bot-center
			label = ui.render_text('{0:0.2f}'.format(freq+bandwidth/4.0),
				size=spektrum.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_RC))
			pygame.draw.line(screen, spektrum.BATAS, [360, 256], [360, 64])
			# Render maximum frequency on right.
			label = ui.render_text('{0:0.2f}'.format(freq+bandwidth/2.0),
				size=spektrum.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), bottom_row,
				horizontal=ui.ALIGN_RIGHT))
			# Render min intensity in bottom left.
			label = ui.render_text('{0:0.1f} dBm'.format(self.model.min_intensity),
				size=spektrum.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), spect_rect,
				horizontal=ui.ALIGN_LEFT, vertical=ui.ALIGN_BOTTOM))
			#Coba2 saja
			"""label = ui.render_text('{0:0.0f} dBm'.format(self.model.max_intensity+self.model.min_intensity/2.0),
				size=spektrum.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), spect_rect,
				horizontal=ui.ALIGN_LEFT, vertical=ui.ALIGN_CENTER))
			"""
			# Render max intensity in top left.
			label = ui.render_text('{0:0.2f} dBm'.format(self.model.max_intensity),
				size=spektrum.MAIN_FONT)
			screen.blit(label, ui.align(label.get_rect(), spect_rect,
				horizontal=ui.ALIGN_LEFT, vertical=ui.ALIGN_TOP))
			pygame.draw.line(screen, spektrum.PEMBATAS, [0, 0], [0, 256])
			# Draw the buttons.
			self.buttons.render(screen)
		else:
			# Draw fullscreen spectrogram.
			self.render_spectrogram(screen)