diff libervia/desktop_kivy/plugins/plugin_wid_calls.kv @ 510:97ab236e8f20

plugin calls: implement desktop sharing: rel 433
author Goffi <goffi@goffi.org>
date Tue, 16 Jan 2024 10:41:38 +0100
parents 0480f883f0a6
children d78728d7fd6a
line wrap: on
line diff
--- a/libervia/desktop_kivy/plugins/plugin_wid_calls.kv	Wed Nov 01 13:41:07 2023 +0100
+++ b/libervia/desktop_kivy/plugins/plugin_wid_calls.kv	Tue Jan 16 10:41:38 2024 +0100
@@ -14,6 +14,36 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+
+<WindowSelectButton>:
+    size_hint_y: None
+    height: '44dp'
+    color: 0.8, 0.8, 0.8, 1
+
+
+<DesktopScreenDialog>:
+    title: "Select a Screen or Window"
+    size_hint: 0.8, 0.8
+    windows_buttons: windows_buttons
+    BoxLayout:
+        orientation: "vertical"
+        ScrollView:
+            BoxLayout:
+                id: windows_buttons
+                orientation: "vertical"
+                size_hint_y: None
+                height: self.minimum_height
+                WindowSelectButton:
+                    text: "Full Screen"
+                    on_press: root.on_window_selected(None, None)
+
+        Button:
+            size_hint_y: None
+            height: '44dp'
+            text: 'Close'
+            on_release: root.dismiss()
+
+
 <CallControlButton>:
     size_hint: None, None
     size: "50dp", "50dp"
@@ -98,9 +128,9 @@
                 BoxLayout:
                     id: call_controls
                     orientation: "horizontal"
-                    size_hint: 0.5, None  # Adjusted to 50% of the width
+                    size_hint: 0.5, None
                     height: "50dp"
-                    pos_hint: {"x": 0.25, "y": 0.05}  # Adjusted starting position
+                    pos_hint: {"x": 0.25, "y": 0.05}
                     spacing: "30dp"
                     Widget:
 
@@ -114,6 +144,18 @@
                         active: not root.audio_muted
                         on_press: root.audio_muted = not root.audio_muted
 
+                    CallControlButton:
+                        symbol: "desktop"
+                        active: root.desktop_sharing
+                        background_color: (0.28, 0.78, 0.56, 1) if not self.active else (0.95, 0.27, 0.41, 1)
+                        on_press: root.on_desktop_btn_press()
+                        canvas.after:
+                            Color:
+                                rgba: (0, 0, 0, 0) if self.active else (0.4, 0.4, 0.4, 1)
+                            Line:
+                                points: [self.x + dp(10), self.y + dp(10), self.right - dp(10), self.top - dp(10)]
+                                width: 2
+                                cap: "round"
 
                     CallControlButton:
                         symbol: "phone"