aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/call_window/call_bottom_bar.vala
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/ui/call_window/call_bottom_bar.vala')
-rw-r--r--main/src/ui/call_window/call_bottom_bar.vala64
1 files changed, 26 insertions, 38 deletions
diff --git a/main/src/ui/call_window/call_bottom_bar.vala b/main/src/ui/call_window/call_bottom_bar.vala
index b3fa2093..ddc196f2 100644
--- a/main/src/ui/call_window/call_bottom_bar.vala
+++ b/main/src/ui/call_window/call_bottom_bar.vala
@@ -9,63 +9,58 @@ public class Dino.Ui.CallBottomBar : Gtk.Box {
public bool audio_enabled { get; set; }
public bool video_enabled { get; set; }
- public static IconSize ICON_SIZE_MEDIADEVICE_BUTTON = Gtk.icon_size_register("im.dino.Dino.CALL_MEDIADEVICE_BUTTON", 10, 10);
-
public string counterpart_display_name { get; set; }
private Button audio_button = new Button() { height_request=45, width_request=45, halign=Align.START, valign=Align.START, visible=true };
private Overlay audio_button_overlay = new Overlay() { visible=true };
- private Image audio_image = new Image() { visible=true };
- private MenuButton audio_settings_button = new MenuButton() { halign=Align.END, valign=Align.END };
+ private Image audio_image = new Image() { pixel_size=22 };
+ private MenuButton audio_settings_button = new MenuButton() { icon_name="go-up-symbolic", halign=Align.END, valign=Align.END };
public AudioSettingsPopover? audio_settings_popover;
private Button video_button = new Button() { height_request=45, width_request=45, halign=Align.START, valign=Align.START, visible=true };
private Overlay video_button_overlay = new Overlay() { visible=true };
- private Image video_image = new Image() { visible=true };
- private MenuButton video_settings_button = new MenuButton() { halign=Align.END, valign=Align.END };
+ private Image video_image = new Image() { pixel_size=22 };
+ private MenuButton video_settings_button = new MenuButton() { icon_name="go-up-symbolic", halign=Align.END, valign=Align.END };
public VideoSettingsPopover? video_settings_popover;
- private Label label = new Label("") { margin=20, halign=Align.CENTER, valign=Align.CENTER, wrap=true, wrap_mode=Pango.WrapMode.WORD_CHAR, hexpand=true, visible=true };
+ private Label label = new Label("") { halign=Align.CENTER, valign=Align.CENTER, wrap=true, wrap_mode=Pango.WrapMode.WORD_CHAR, hexpand=true, visible=true };
private Stack stack = new Stack() { visible=true };
public CallBottomBar() {
Object(orientation:Orientation.HORIZONTAL, spacing:0);
- Box main_buttons = new Box(Orientation.HORIZONTAL, 20) { margin_start=40, margin_end=40, margin=20, halign=Align.CENTER, hexpand=true, visible=true };
+ Box main_buttons = new Box(Orientation.HORIZONTAL, 20) { margin_start=40, margin_end=40, margin_bottom=20, margin_top=20, halign=Align.CENTER, hexpand=true, visible=true };
- audio_button.add(audio_image);
+ audio_button.set_child(audio_image);
audio_button.get_style_context().add_class("call-button");
audio_button.clicked.connect(() => { audio_enabled = !audio_enabled; });
audio_button.margin_end = audio_button.margin_bottom = 5; // space for the small settings button
- audio_button_overlay.add(audio_button);
+ audio_button_overlay.set_child(audio_button);
audio_button_overlay.add_overlay(audio_settings_button);
- audio_settings_button.set_image(new Image.from_icon_name("go-up-symbolic", ICON_SIZE_MEDIADEVICE_BUTTON) { visible=true });
audio_settings_button.get_style_context().add_class("call-mediadevice-settings-button");
- audio_settings_button.use_popover = true;
- main_buttons.add(audio_button_overlay);
+ main_buttons.append(audio_button_overlay);
- video_button.add(video_image);
+ video_button.set_child(video_image);
video_button.get_style_context().add_class("call-button");
video_button.clicked.connect(() => { video_enabled = !video_enabled; });
video_button.margin_end = video_button.margin_bottom = 5;
- video_button_overlay.add(video_button);
+ video_button_overlay.set_child(video_button);
video_button_overlay.add_overlay(video_settings_button);
- video_settings_button.set_image(new Image.from_icon_name("go-up-symbolic", ICON_SIZE_MEDIADEVICE_BUTTON) { visible=true });
video_settings_button.get_style_context().add_class("call-mediadevice-settings-button");
- video_settings_button.use_popover = true;
- main_buttons.add(video_button_overlay);
+ main_buttons.append(video_button_overlay);
- Button button_hang = new Button.from_icon_name("dino-phone-hangup-symbolic", IconSize.LARGE_TOOLBAR) { height_request=45, width_request=45, halign=Align.START, valign=Align.START, visible=true };
+ Button button_hang = new Button() { height_request=45, width_request=45, halign=Align.START, valign=Align.START, visible=true };
+ button_hang.set_child(new Image() { icon_name="dino-phone-hangup-symbolic", pixel_size=22 });
button_hang.get_style_context().add_class("call-button");
button_hang.get_style_context().add_class("destructive-action");
button_hang.clicked.connect(() => hang_up());
- main_buttons.add(button_hang);
+ main_buttons.append(button_hang);
label.get_style_context().add_class("text-no-controls");
stack.add_named(main_buttons, "control-buttons");
stack.add_named(label, "label");
- this.add(stack);
+ this.append(stack);
this.notify["audio-enabled"].connect(on_audio_enabled_changed);
this.notify["video-enabled"].connect(on_video_enabled_changed);
@@ -85,18 +80,15 @@ public class Dino.Ui.CallBottomBar : Gtk.Box {
if (!show) return null;
audio_settings_popover = new AudioSettingsPopover();
-
audio_settings_button.popover = audio_settings_popover;
-
- audio_settings_popover.set_relative_to(audio_settings_button);
- audio_settings_popover.microphone_selected.connect(() => { audio_settings_button.active = false; });
- audio_settings_popover.speaker_selected.connect(() => { audio_settings_button.active = false; });
+ audio_settings_popover.microphone_selected.connect(() => { audio_settings_button.popdown(); });
+ audio_settings_popover.speaker_selected.connect(() => { audio_settings_button.popdown(); });
return audio_settings_popover;
}
public void show_audio_device_error() {
- audio_settings_button.set_image(new Image.from_icon_name("dialog-warning-symbolic", IconSize.BUTTON) { visible=true });
+ audio_settings_button.set_icon_name("dialog-warning-symbolic");
Util.force_error_color(audio_settings_button);
}
@@ -106,28 +98,24 @@ public class Dino.Ui.CallBottomBar : Gtk.Box {
if (!show) return null;
video_settings_popover = new VideoSettingsPopover();
-
-
video_settings_button.popover = video_settings_popover;
-
- video_settings_popover.set_relative_to(video_settings_button);
- video_settings_popover.camera_selected.connect(() => { video_settings_button.active = false; });
+ video_settings_popover.camera_selected.connect(() => { video_settings_button.popdown(); });
return video_settings_popover;
}
public void show_video_device_error() {
- video_settings_button.set_image(new Image.from_icon_name("dialog-warning-symbolic", IconSize.BUTTON) { visible=true });
+ video_settings_button.set_icon_name("dialog-warning-symbolic");
Util.force_error_color(video_settings_button);
}
public void on_audio_enabled_changed() {
if (audio_enabled) {
- audio_image.set_from_icon_name("dino-microphone-symbolic", IconSize.LARGE_TOOLBAR);
+ audio_image.icon_name = "dino-microphone-symbolic";
audio_button.get_style_context().add_class("white-button");
audio_button.get_style_context().remove_class("transparent-white-button");
} else {
- audio_image.set_from_icon_name("dino-microphone-off-symbolic", IconSize.LARGE_TOOLBAR);
+ audio_image.icon_name = "dino-microphone-off-symbolic";
audio_button.get_style_context().remove_class("white-button");
audio_button.get_style_context().add_class("transparent-white-button");
}
@@ -135,12 +123,12 @@ public class Dino.Ui.CallBottomBar : Gtk.Box {
public void on_video_enabled_changed() {
if (video_enabled) {
- video_image.set_from_icon_name("dino-video-symbolic", IconSize.LARGE_TOOLBAR);
+ video_image.icon_name = "dino-video-symbolic";
video_button.get_style_context().add_class("white-button");
video_button.get_style_context().remove_class("transparent-white-button");
} else {
- video_image.set_from_icon_name("dino-video-off-symbolic", IconSize.LARGE_TOOLBAR);
+ video_image.icon_name = "dino-video-off-symbolic";
video_button.get_style_context().remove_class("white-button");
video_button.get_style_context().add_class("transparent-white-button");
}
@@ -152,6 +140,6 @@ public class Dino.Ui.CallBottomBar : Gtk.Box {
}
public bool is_menu_active() {
- return video_settings_button.active || audio_settings_button.active;
+ return video_settings_button.popover.visible || audio_settings_button.popover.visible; // TODO gtk4 does this work? check for null?
}
} \ No newline at end of file