def __init__(self, parent): fsui.Panel.__init__(self, parent) self.layout = fsui.VerticalLayout() label = fsui.MultiLineLabel( self, gettext( "You can write key = value pairs here to set FS-UAE options " "not currently supported by the user interface. This is only a " "temporary feature until the GUI supports all options " "directly."), 760) self.layout.add(label, fill=True, margin_bottom=10) label = fsui.MultiLineLabel( self, gettext( "The options specified here will apply to this configuration " "only."), 760) self.layout.add(label, fill=True, margin_bottom=10) hor_layout = fsui.HorizontalLayout() self.layout.add(hor_layout, fill=True, expand=True) # hor_layout.add_spacer(20) self.text_area = fsui.TextArea(self, font_family="monospace") self.text_area.set_min_width(760) self.text_area.set_min_height(400) self.text_area.set_text(initial_text()) hor_layout.add(self.text_area, fill=True, expand=True) # hor_layout.add_spacer(20) # self.layout.add_spacer(20) self.get_window().add_close_listener(self.on_close_window)
def __init__(self, parent): title = gettext("About {name}").format(name="FS-UAE Launcher") title = "{} - FS-UAE Launcher".format(gettext("About")) super().__init__(parent, title, minimizable=False, maximizable=False) # buttons, layout = fsui.DialogButtons.create_with_layout(self) # buttons.create_close_button() self.layout = fsui.VerticalLayout() self.layout.set_padding(20) layout = self.layout self.icon_header = IconHeader( self, fsui.Icon("fs-uae-launcher", "pkg:launcher"), "{name} {version}".format(name="FS-UAE Launcher", version=app.version), "Copyright © 2012-2015 Frode Solheim") layout.add(self.icon_header, fill=True, margin_bottom=20) self.text_area = fsui.TextArea(self, about_message, read_only=True, font_family="monospace") self.text_area.scroll_to_start() self.text_area.set_min_width(760) self.text_area.set_min_height(340) layout.add(self.text_area, fill=True, expand=True)
def __init__(self, parent, path, import_type): if import_type == self.AMIGA_FOREVER: title = gettext("Import From Amiga Forever CD/DVD") else: title = gettext("Import Kickstarts and ROMs") super().__init__(parent, title, maximizable=False) self.layout = fsui.VerticalLayout() self.layout.padding_left = 20 self.layout.padding_top = 20 self.layout.padding_right = 20 self.layout.padding_bottom = 20 self.text_area = fsui.TextArea(self, read_only=True) self.text_area.set_min_width(600) self.text_area.set_min_height(300) self.layout.add(self.text_area) hori_layout = fsui.HorizontalLayout() self.layout.add(hori_layout, fill=True, margin_top=20) hori_layout.add_spacer(0, expand=True) self.close_button = fsui.Button(self, gettext("Close")) self.close_button.activated.connect(self.on_close_button) self.close_button.disable() hori_layout.add(self.close_button) self.line_count = 0 self.task = ImportTask(path, import_type) self.task.start() self.set_size(self.layout.get_min_size()) self.center_on_parent() fsui.call_later(TIMER_INTERVAL, self.on_timer)
def __init__(self, parent, path, import_type): if import_type == self.AMIGA_FOREVER: title = gettext("Import From Amiga Forever CD/DVD") else: title = gettext("Import Kickstarts and ROMs") super().__init__(parent, title, maximizable=False) self.theme = LauncherTheme.get() self.layout = fsui.VerticalLayout() self.layout.padding_left = 20 self.layout.padding_top = 20 self.layout.padding_right = 20 self.layout.padding_bottom = 20 self.text_area = fsui.TextArea(self, read_only=True) self.text_area.set_min_width(600) self.text_area.set_min_height(300) self.layout.add(self.text_area) self.close_button = CloseButton.add_to_layout(self, self.layout, margin_top=20) if self.close_button: self.close_button.set_enabled(False) self.line_count = 0 self.task = ImportTask(path, import_type) self.task.start() self.set_size(self.layout.get_min_size()) self.center_on_parent() fsui.call_later(TIMER_INTERVAL, self.on_timer)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("settings", "pkg:workspace") gettext("Advanced") title = gettext("Advanced Settings") subtitle = gettext("Specify global options and settings which does " "not have UI controls") self.add_header(icon, title, subtitle) label = fsui.MultiLineLabel( self, gettext( "You can write key = value pairs here to set FS-UAE options " "not currently supported by the user interface. This is only a " "temporary feature until the GUI supports all options " "directly."), 640) self.layout.add(label, fill=True, margin_bottom=10) label = fsui.MultiLineLabel( self, gettext( "The options specified here are global and will apply to all " "configurations. Config options such as hardware and memory " "options will be ignored. Options suitable here are options " "like theme options."), 640) self.layout.add(label, fill=True, margin_bottom=10) self.text_area = fsui.TextArea(self, font_family="monospace") self.text_area.set_text(self.get_initial_text()) self.layout.add(self.text_area, fill=True, expand=True) self.text_area.changed.connect(self.update_settings)
def __init__(self, parent): if fsgs.product == "OpenRetro": app_name = "OpenRetro Launcher" else: app_name = "FS-UAE Launcher" title = "{} - {}".format(gettext("About"), app_name) super().__init__(parent, title, minimizable=False, maximizable=False) self.theme = LauncherTheme.get() self.layout = fsui.VerticalLayout() self.layout.set_padding(20) self.icon_header = IconHeader( self, fsui.Icon("fs-uae-launcher", "pkg:launcher"), "{name} {version}".format(name=app_name, version=app.version), "Copyright © 2012-2017 Frode Solheim", ) self.layout.add(self.icon_header, fill=True, margin_bottom=20) self.text_area = fsui.TextArea(self, about_message, read_only=True, font_family="monospace") self.text_area.scroll_to_start() self.text_area.set_min_width(760) self.text_area.set_min_height(340) self.layout.add(self.text_area, fill=True, expand=True) CloseButton.add_to_layout(self, self.layout, margin_top=20)
def __init__(self, parent): fsui.Panel.__init__(self, parent) self.layout = fsui.VerticalLayout() # self.layout.add_spacer(20) hor_layout = fsui.HorizontalLayout() self.layout.add(hor_layout, fill=True, expand=True) # hor_layout.add_spacer(20) self.text_area = fsui.TextArea(self, font_family="monospace") self.text_area.set_min_width(760) self.text_area.set_min_height(460) self.text_area.set_text(self.get_initial_text()) hor_layout.add(self.text_area, fill=True, expand=True) # hor_layout.add_spacer(20) # self.layout.add_spacer(20) self.get_window().add_close_listener(self.on_close_window)
def __init__(self, parent, header=True): fsui.Panel.__init__(self, parent) Skin.set_background_color(self) self.layout = fsui.VerticalLayout() if header: hori_layout = fsui.HorizontalLayout() self.layout.add(hori_layout, fill=True) self.layout.add_spacer(0) label = fsui.HeadingLabel(self, gettext("Net Play")) hori_layout.add(label, margin=10) hori_layout.add_spacer(0, expand=True) # label = fsui.Label(self, "Netplay is currently disabled in the " # "development versions.") # self.layout.add(label, margin=10) # label = fsui.Label(self, "Please use the stable FS-UAE series for " # "netplay in the meantime.") # self.layout.add(label, margin=10) # return # TODO gettext("Nick:") gettext("Connect") gettext("Disconnect") # self.nick_label = fsui.Label(self, _("Nick:")) # hori_layout.add(self.nick_label, # margin=10, margin_top=0, margin_bottom=0) # # self.nick_field = fsui.TextField(self, Settings.get("irc_nick")) # self.nick_field.set_min_width(130) # hori_layout.add(self.nick_field, margin_right=10) # #self.nick_field.on_changed = self.on_nick_change # # self.connect_button = fsui.Button(self, _("Connect")) # hori_layout.add(self.connect_button, margin_right=10) # #self.connect_button.activated.connect(self.on_connect_button) # # self.disconnect_button = fsui.Button(self, _("Disconnect")) # hori_layout.add(self.disconnect_button, margin_right=10) # #self.disconnect_button.activated.connect(self.on_disconnect_button) hori_layout = fsui.HorizontalLayout() self.layout.add(hori_layout, fill=True, expand=True) ver_layout = fsui.VerticalLayout() hori_layout.add(ver_layout, fill=True) self.channel_list = fsui.ListView(self) self.channel_list.set_min_width(212) self.channel_list.on_select_item = self.on_select_channel ver_layout.add(self.channel_list, fill=True, expand=True, margin=10) self.nick_list = fsui.ListView(self) ver_layout.add(self.nick_list, fill=True, expand=True, margin=10) self.text_area = fsui.TextArea(self, font_family="monospace") hori_layout.add(self.text_area, fill=True, expand=True, margin=10, margin_left=0) self.input_field = fsui.TextField(self) self.input_field.activated.connect(self.on_input) self.layout.add(self.input_field, fill=True, margin=10, margin_top=0) self.active_channel = LOBBY_CHANNEL self.input_field.focus() self.netplay = Netplay() IRCBroadcaster.add_listener(self)
def __init__(self, parent, device_name): title = gettext("Configure {device_name}").format( device_name=device_name ) super().__init__( parent, title=title, minimizable=False, maximizable=False, separator=False, ) self.theme = WorkspaceTheme.instance() self.layout = fsui.VerticalLayout() self.image = fsui.Image("workspace:res/gamepad-config.png") self.joystick_panel = fsui.ImageView(self, self.image) self.layout.add(self.joystick_panel) if Skin.fws(): from workspace.ui import TitleSeparator separator = TitleSeparator(self) self.layout.add(separator, fill=True) self.mapping_field = fsui.TextArea( self, read_only=True, line_wrap=False ) self.layout.add( self.mapping_field, fill=True, margin_left=20, margin_top=20, margin_right=20, ) panel = fsui.Panel(self) self.layout.add(panel, fill=True) panel.layout = fsui.HorizontalLayout() panel.layout.padding = 20 self.device_type_ids = [ "", "gamepad", "joystick", # "flightstick", "other", ] self.device_type_labels = [ gettext("Choose Type"), gettext("Gamepad"), gettext("Digital Joystick"), # gettext("Flight Stick"), gettext("Other Device"), ] self.reset_button = fsui.Button(panel, gettext("Reset")) self.reset_button.activated.connect(self.on_reset_button) panel.layout.add(self.reset_button) self.priority_type_ids = [ "axis,hat,button", "hat,button,axis", ] self.priority_type_labels = [ gettext("Axes, hats, buttons"), gettext("Hats, buttons, axes"), ] self.priority_choice = fsui.Choice(panel, self.priority_type_labels) panel.layout.add(self.priority_choice, margin_left=20) self.type_field = fsui.Choice(panel, self.device_type_labels) panel.layout.add(self.type_field, margin_left=20) # panel.layout.add( # fsui.PlainLabel(panel, gettext("Make:")), margin_left=20 # ) # self.make_field = fsui.TextField(panel) # self.make_field.set_min_width(140) # panel.layout.add(self.make_field, margin_left=10) panel.layout.add( fsui.PlainLabel(panel, gettext("Model:")), margin_left=20 ) self.model_field = fsui.TextField(panel) panel.layout.add(self.model_field, expand=True, margin_left=10) self.save_button = fsui.Button(panel, gettext("Save")) self.save_button.activated.connect(self.on_save_button) panel.layout.add(self.save_button, margin_left=20) if self.window.theme.has_close_buttons: self.close_button = CloseButton(panel) panel.layout.add(self.close_button, margin_left=10) self.device_name = device_name existing_config = self.read_existing_config() self.button_panels = [] for x, y, direction, name in BUTTONS: b = MappingButton(self.joystick_panel, (x, y + 4), direction, name) self.button_panels.append(b) if name in existing_config: b.event_name = existing_config[name] self.type_field.changed.connect(self.on_change) # self.make_field.changed.connect(self.on_change) self.model_field.changed.connect(self.on_change) self.save_button.disable() self.set_size(self.layout.get_min_size()) self.center_on_parent() self.stopped = False self.previous_timer_state = {} self.current_state = {} self.initial_state = {} self.map_key_name = None fsui.call_later(100, self.on_timer_callback) thread = threading.Thread( target=event_thread, name="JoystickConfigEventThread", args=(self.device_name, weakref.ref(self)), ) thread.start()