: orientation: 'horizontal' : id: clear_modal_view process_callback: title: 'Clear graph?' BoxLayout: orientation: 'vertical' Label: id: default_content text: 'Continuing will clear the graph and turn off logging to file.' BoxLayout: orientation: 'horizontal' Button: id: cancel_button text: 'Cancel' on_press: clear_modal_view.process(0) Button: id: confirm_button text: 'Delete data' on_press: clear_modal_view.process(1) : orientation: 'horizontal' pos_hint: { 'x' : 0.01 } Image: id: status_image size_hint_x: 0.05 source: './images/ok.png' Label: id: status_text size_hint_x: 0.1 Label: id: status_message size_hint_x: 0.80 : textinput: text_input BoxLayout: orientation: 'vertical' Label: text: "Select a folder & file name for the output. A csv & png file will be saved." size_hint_y: 0.1 FileChooserListView: id: filechooser on_selection: text_input.text = self.selection and self.selection[0] or '' BoxLayout: size_hint_y: 0.1 orientation: 'horizontal' Label: text: 'File name:' size_hint_x: 0.2 TextInput: id: text_input BoxLayout: size_hint_y: 0.1 orientation: 'horizontal' Button: text: 'Cancel' on_press: root.cancel() Button: text: 'Set Output File' on_press: root.set_output(filechooser.path, text_input.text) : label_wid: "Temperature Monitor" current_temperature: current_temperature serial_chooser_button: serial_chooser_button on_dataSources: serial_chooser_button.values = self.dataSources on_lastTemperature: current_temperature.on_temperature_change(self.lastTemperature) on_lastTemperature: mainplot.on_lastTemperature(self.lastTemperature) on_lastTime: mainplot.on_lastTime(self.lastTime) on_lastStatus: status_bar.update_status(self.lastStatus) raw_data_output_file: '' image_output_file: '' on_raw_data_output_file: mainplot.raw_data_output_file = self.raw_data_output_file on_image_output_file: mainplot.image_output_file = self.image_output_file BoxLayout: orientation: 'vertical' BoxLayout: size_hint_y: 0.1 id: 'top_menu' pos_hint: {'top':1} orientation: 'horizontal' MyLabel: id: current_temperature text: "Current Temperature: n/a" StatusWidget: id: startstop_widget state: 'running' on_state: setattr(startstop_button, 'text', self.change_state_labels[self.state]) on_state: root.set_state(self.state) Button: id: startstop_button text: 'Pause' on_press: startstop_widget.change_state() Button: id: clear_button text: 'Clear' on_press: root.initiate_clear_dialog() Button: id: output_button text: 'No File Chosen' on_press: root.choose_output_file() SerialPortButton: id: serial_chooser_button on_serial_port_changed: root.serial_port_changed(self.text) PlotWidget: id: mainplot on_image_output_file: self.update_image_output_file() on_raw_data_output_file: self.update_raw_data_output_file() size_hint_y: 0.8 StatusBar: size_hint_y: 0.1 id: status_bar MainWindow: