/** * Adds menu items to the given ContextMenu that provide ways to do stream * related stuff. * * @param m The menu to add the items to * @param numStreams How many streams this is for (labels the menu items * accordingly) * @see addStreamsOptions(ContextMenu, int, boolean) */ protected static void addStreamsOptions(ContextMenu m, int numStreams) { addStreamsOptions(m, numStreams, true); }
/** * Parses the livestreamer qualities setting and adds the defined qualities * as menu items. * * @param m */ public static void addLivestreamerOptions(ContextMenu m) { if (enableLivestreamer) { String livestreamerMenu = "Livestreamer"; m.setSubMenuIcon(livestreamerMenu, ICON_COMMANDLINE); List<Quality> qualities = parseLivestreamerQualities(livestreamerQualities); for (Quality q : qualities) { if (q == null) { m.addSeparator(livestreamerMenu); } else { m.addItem("livestreamerQ"+q.qualities, q.displayName, livestreamerMenu); } } } }
ContextMenuHelper.addStreamsOptions(this, 1, false); addSeparator(); addItem("join", Language.getString("userCm.join", user.getName())); addItem("copyDisplayNick", Language.getString("userCm.copyDisplayName"), MISC_MENU); addSeparator(MISC_MENU); ContextMenuHelper.addIgnore(this, user.getName(), MISC_MENU, false); ContextMenuHelper.addIgnore(this, user.getName(), MISC_MENU, true); addSeparator(MISC_MENU); addItem("follow", Language.getString("userCm.follow"), MISC_MENU);
m.addItem("streamsSpeedruntv", "Speedrun.tv", streamSubmenu); m.addItem("streamsKadgar", "Kadgar.net", streamSubmenu); addLivestreamerOptions(m); if (join) { m.addSeparator();
@Test public void testParseLivestreamerQualities() { assertEquals(ContextMenuHelper.parseLivestreamerQualities(""), new ArrayList<>()); assertEquals(ContextMenuHelper.parseLivestreamerQualities(" "), new ArrayList<>()); assertEquals(ContextMenuHelper.parseLivestreamerQualities("Select"), new ArrayList<>(Arrays.asList(new Quality("Select", "Select")))); assertEquals(ContextMenuHelper.parseLivestreamerQualities("Select "), new ArrayList<>(Arrays.asList(new Quality("Select", "Select")))); assertEquals(ContextMenuHelper.parseLivestreamerQualities("{Select quality:select}"), new ArrayList<>(Arrays.asList(new Quality("Select quality", "select")))); assertEquals(ContextMenuHelper.parseLivestreamerQualities("Best, Worst Select |"), new ArrayList<>(Arrays.asList( new Quality("Best", "Best"), assertEquals(ContextMenuHelper.parseLivestreamerQualities("Best Worst | Select"), new ArrayList<>(Arrays.asList( new Quality("Best", "Best"), assertEquals(ContextMenuHelper.parseLivestreamerQualities("{Best:1080p60,1080p,720p60,720p}, Worst | Select"), new ArrayList<>(Arrays.asList( new Quality("Best", "1080p60,1080p,720p60,720p"), assertEquals(ContextMenuHelper.parseLivestreamerQualities("{360p} {Best:1080p60,1080p,720p60,720p}"),
public StreamsContextMenu(Collection<String> streams, ContextMenuListener listener) { this.listener = listener; this.streams = streams; ContextMenuHelper.addStreamsOptions(this, streams.size()); }
public RoomsContextMenu(Collection<Room> rooms, ContextMenuListener listener) { this.listener = listener; this.rooms = rooms; ContextMenuHelper.addStreamsOptions(this, rooms.size()); }
public RaceEntrantContextMenu(List<Entrant> entrants, ContextMenuListener listener) { this.listener = listener; streams = new ArrayList<>(); for (Entrant entrant : entrants) { if (!entrant.twitch.isEmpty()) { streams.add(entrant.twitch); } } if (streams.isEmpty()) { addItem("", "No stream set"); } else { ContextMenuHelper.addStreamsOptions(this, streams.size()); } }
public StreamInfosContextMenu(List<StreamInfo> selected, boolean liveStreams) { this.streamInfos = selected; List<String> streams = new ArrayList<>(); for (StreamInfo info : selected) { streams.add(info.getStream()); } if (!selected.isEmpty()) { addItem("openChannelInfo", "Info: "+selected.get(0).getStream()); addSeparator(); ContextMenuHelper.addStreamsOptions(this, streams.size()); if (liveStreams) { addSeparator(); } } if (liveStreams) { for (LiveStreamsDialog.Sorting s : LiveStreamsDialog.Sorting.values()) { addRadioItem("sort_"+s.key, s.getLabel(), SORT_GROUP, SORT_SUBMENU); getItem("sort_"+s.key).setToolTipText(s.getToolTipText()); } addItem("showRemovedList", Language.getString("streams.cm.removedStreams")); addSeparator(); addItem("manualRefreshStreams", Language.getString("streams.cm.refresh")); } }
public ChannelContextMenu(ContextMenuListener listener) { this.listener = listener; addItem("channelInfo", Language.getString("menubar.dialog.channelInfo")); addItem("channelAdmin", Language.getString("menubar.dialog.channelAdmin")); addSeparator(); ContextMenuHelper.addStreamsOptions(this, 1, false); addSeparator(); addItem("hostchannel", Language.getString("channelCm.hostChannel"), MISC_MENU); addSeparator(MISC_MENU); addItem("joinHostedChannel", Language.getString("channelCm.joinHosted"), MISC_MENU); addItem("copy", Language.getString("channelCm.copyStreamname"), MISC_MENU); addSeparator(MISC_MENU); addItem("chatRules", Language.getString("channelCm.dialog.chatRules"), MISC_MENU); addSeparator(MISC_MENU); addItem("follow", Language.getString("channelCm.follow"), MISC_MENU); addItem("unfollow", Language.getString("channelCm.unfollow"), MISC_MENU); addSeparator(MISC_MENU); addItem("srcOpen", Language.getString("channelCm.speedruncom"), MISC_MENU); addSeparator(); addItem("closeChannel", Language.getString("channelCm.closeChannel")); CommandMenuItems.addCommands(CommandMenuItems.MenuType.CHANNEL, this); }