mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-11 10:09:59 +00:00
Add availableMediaTypes bitmask to receiver selector open method
This commit is contained in:
@@ -66,14 +66,43 @@ class ViewController : NSViewController {
|
||||
|
||||
|
||||
self.mediaTypePopUpButton = NSPopUpButton()
|
||||
self.mediaTypePopUpButton.autoenablesItems = false
|
||||
self.mediaTypePopUpButton.addItems(withTitles: [
|
||||
initData.i18n_mediaTypeApp
|
||||
, initData.i18n_mediaTypeTab
|
||||
, initData.i18n_mediaTypeScreen
|
||||
])
|
||||
|
||||
let appItem = self.mediaTypePopUpButton
|
||||
.item(withTitle: initData.i18n_mediaTypeApp)!
|
||||
let tabItem = self.mediaTypePopUpButton
|
||||
.item(withTitle: initData.i18n_mediaTypeTab)!
|
||||
let screenItem = self.mediaTypePopUpButton
|
||||
.item(withTitle: initData.i18n_mediaTypeScreen)!
|
||||
|
||||
// Set tags to enum value
|
||||
appItem.tag = MediaType.app.rawValue
|
||||
tabItem.tag = MediaType.tab.rawValue
|
||||
screenItem.tag = MediaType.screen.rawValue
|
||||
|
||||
if (initData.availableMediaTypes & appItem.tag) == 0 {
|
||||
self.mediaTypePopUpButton
|
||||
.item(withTitle: initData.i18n_mediaTypeApp)?
|
||||
.isEnabled = false
|
||||
}
|
||||
if (initData.availableMediaTypes & tabItem.tag) == 0 {
|
||||
self.mediaTypePopUpButton
|
||||
.item(withTitle: initData.i18n_mediaTypeTab)?
|
||||
.isEnabled = false
|
||||
}
|
||||
if (initData.availableMediaTypes & screenItem.tag) == 0 {
|
||||
self.mediaTypePopUpButton
|
||||
.item(withTitle: initData.i18n_mediaTypeScreen)?
|
||||
.isEnabled = false
|
||||
}
|
||||
|
||||
self.mediaTypePopUpButton.selectItem(
|
||||
at: initData.defaultMediaType.rawValue)
|
||||
withTag: initData.defaultMediaType.rawValue)
|
||||
|
||||
|
||||
let mediaTypeStackView = NSStackView(views: [
|
||||
@@ -140,7 +169,7 @@ extension ViewController : ReceiverViewDelegate {
|
||||
|
||||
do {
|
||||
let mediaType = MediaType(
|
||||
rawValue: self.mediaTypePopUpButton.indexOfSelectedItem)!
|
||||
rawValue: self.mediaTypePopUpButton.selectedItem!.tag)!
|
||||
|
||||
let selection = ReceiverSelection(
|
||||
receiver: receiver
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
struct InitData : Codable {
|
||||
let receivers: [Receiver]
|
||||
let defaultMediaType: MediaType
|
||||
let availableMediaTypes: Int
|
||||
|
||||
let i18n_extensionName: String
|
||||
let i18n_castButtonTitle: String
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
enum MediaType : Int, Codable {
|
||||
case app, tab, screen
|
||||
import Foundation
|
||||
|
||||
|
||||
enum MediaType: Int, Codable {
|
||||
case app = 1
|
||||
case tab = 2
|
||||
case screen = 4
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user