Prettify code

Signed-off-by: Vasiliy Doylov <nekocwd@mainlining.org>
This commit is contained in:
Vasiliy Doylov 2025-07-10 23:52:27 +03:00
parent 562ec9e94d
commit c81720a377
4 changed files with 25 additions and 66 deletions

View file

@ -75,7 +75,7 @@ template $MediaPlayerPlayer: Box {
visible: true; visible: true;
focus-on-click: false; focus-on-click: false;
Image { Image pause_img {
valign: center; valign: center;
halign: center; halign: center;
visible: true; visible: true;

View file

@ -23,7 +23,8 @@ public class MediaPlayer.Player : Gtk.Box {
private unowned Gtk.Button back; private unowned Gtk.Button back;
[GtkChild] [GtkChild]
private unowned Gtk.Button next; private unowned Gtk.Button next;
[GtkChild]
private unowned Gtk.Image pause_img;
private string id = Uuid.string_random (); private string id = Uuid.string_random ();
private Gtk.CssProvider css_provider = new Gtk.CssProvider (); private Gtk.CssProvider css_provider = new Gtk.CssProvider ();
construct { construct {
@ -147,66 +148,25 @@ public class MediaPlayer.Player : Gtk.Box {
return pixbuff; return pixbuff;
} }
private void bind_to_info_btn (Gtk.Box box) {
foreach (var child in box.get_children ()) {
switch (child.get_name ()) {
case "img_art" :
child.notify["gicon"].connect (() => process_icon.begin (((Gtk.Image) child).gicon));
child.notify_property ("gicon");
break;
default :
foreach (var child2 in ((Gtk.Box) child).get_children ()) {
switch (child2.get_name ()) {
case "lbl_artist" :
child2.bind_property ("label", artist, "label", BindingFlags.SYNC_CREATE);
break;
case "lbl_title":
child2.bind_property ("label", title, "label", BindingFlags.SYNC_CREATE);
break;
default:
break;
}
}
break;
}
}
}
private void bind_to_control_box (Gtk.Box box) {
foreach (var child in box.get_children ()) {
switch (child.get_name ()) {
case "btn_play":
pause.clicked.connect (() => ((Gtk.Button) child).clicked ());
break;
case "btn_prev":
back.clicked.connect (() => ((Gtk.Button) child).clicked ());
break;
case "btn_next":
next.clicked.connect (() => ((Gtk.Button) child).clicked ());
break;
default:
break;
}
}
}
private void bind_to_duration_box (Gtk.Box box) {
}
public void bind_to_player (Gtk.Box player) { public void bind_to_player (Gtk.Box player) {
player.bind_property ("visible", this, "visible", BindingFlags.SYNC_CREATE); player.bind_property ("visible", this, "visible", BindingFlags.SYNC_CREATE);
foreach (var child in player.get_children ()) { // Buttons
switch (child.get_name ()) { var play_btn = (Gtk.Button) Utils.find_widget_by_css_name (player, "btn_play");
case "btn_details": pause.clicked.connect (() => play_btn.clicked ());
bind_to_info_btn (((Gtk.Button) child).get_child () as Gtk.Box); var play_img = (Gtk.Image) Utils.find_widget_by_css_name (player, "img_play");
break; play_img.bind_property ("icon-name", pause_img, "icon-name", BindingFlags.SYNC_CREATE);
case "box_pos_len": var prev_btn = (Gtk.Button) Utils.find_widget_by_css_name (player, "btn_prev");
bind_to_duration_box (child as Gtk.Box); back.clicked.connect (() => prev_btn.clicked ());
break; var next_btn = (Gtk.Button) Utils.find_widget_by_css_name (player, "btn_next");
default: next.clicked.connect (() => next_btn.clicked ());
bind_to_control_box (child as Gtk.Box); // Labels
break; var _title = (Gtk.Label) Utils.find_widget_by_css_name (player, "lbl_title");
} _title.bind_property ("label", title, "label", BindingFlags.SYNC_CREATE);
} var _artist = (Gtk.Label) Utils.find_widget_by_css_name (player, "lbl_artist");
_artist.bind_property ("label", artist, "label", BindingFlags.SYNC_CREATE);
// Image
var _image = (Gtk.Image) Utils.find_widget_by_css_name (player, "img_art");
_image.notify["gicon"].connect (() => process_icon.begin (_image.gicon));
_image.notify_property ("gicon");
} }
} }

View file

@ -21,8 +21,3 @@
.nekoplayer image { .nekoplayer image {
padding: 10px; padding: 10px;
} }
#top-bar-bin {
background-color: rgba(255, 0, 0, 0.5);
padding-top: 100px;
}

View file

@ -19,6 +19,10 @@ namespace Utils {
return find_widget (widget, (w) => w.name == name); return find_widget (widget, (w) => w.name == name);
} }
public Gtk.Widget ? find_widget_by_css_name (Gtk.Widget widget, string name) {
return find_widget (widget, (w) => w.get_name () == name);
}
public int get_box_position (Gtk.Box box, Gtk.Widget child) { public int get_box_position (Gtk.Box box, Gtk.Widget child) {
var i = 0; var i = 0;
foreach (var _child in box.get_children ()) { foreach (var _child in box.get_children ()) {