From b437907b7a197d14ac7acd7f7ab31759141efc60 Mon Sep 17 00:00:00 2001 From: Julian Sparber <julian@sparber.net> Date: Mon, 14 Dec 2020 18:34:46 +0100 Subject: [PATCH 3/5] timer: Allow much smaller heights useing a ScrolledWindow --- data/ui/timer-face.ui | 81 +++++++++++++++++++++---------------- data/ui/timer-setup.ui | 1 - src/timer-setup-dialog.vala | 13 +++++- 3 files changed, 57 insertions(+), 38 deletions(-) diff --git a/data/ui/timer-face.ui b/data/ui/timer-face.ui index 123a8c5..87331ec 100644 --- a/data/ui/timer-face.ui +++ b/data/ui/timer-face.ui @@ -7,55 +7,66 @@ <property name="visible">True</property> <property name="can_focus">False</property> <child> - <object class="GtkBox" id="no_timer_container"> + <object class="GtkScrolledWindow"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">center</property> - <property name="valign">center</property> - <property name="orientation">vertical</property> - <property name="spacing">18</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="hscrollbar-policy">never</property> + <property name="propagate-natural-height">True</property> + <property name="propagate-natural-width">True</property> <child> - <object class="GtkLabel"> + <object class="GtkBox" id="no_timer_container"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes">Select Duration</property> - <style> - <class name="timer-header"/> - </style> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkButton" id="start_button"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> <property name="halign">center</property> <property name="valign">center</property> + <property name="orientation">vertical</property> + <property name="spacing">18</property> + <property name="margin">12</property> <child> - <object class="GtkImage"> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="label" translatable="yes">Select Duration</property> + <style> + <class name="timer-header"/> + </style> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="start_button"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> <property name="halign">center</property> <property name="valign">center</property> - <property name="icon_name">media-playback-start-symbolic</property> + <child> + <object class="GtkImage"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">center</property> + <property name="valign">center</property> + <property name="icon_name">media-playback-start-symbolic</property> + </object> + </child> + <style> + <class name="pill-button"/> + <class name="large-button"/> + <class name="suggested-action"/> + </style> </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> </child> - <style> - <class name="pill-button"/> - <class name="large-button"/> - <class name="suggested-action"/> - </style> </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> </child> </object> <packing> diff --git a/data/ui/timer-setup.ui b/data/ui/timer-setup.ui index d12056f..e3bcda8 100644 --- a/data/ui/timer-setup.ui +++ b/data/ui/timer-setup.ui @@ -198,7 +198,6 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="margin_top">12</property> - <property name="margin_bottom">12</property> <child> <object class="GtkGrid"> <property name="visible">True</property> diff --git a/src/timer-setup-dialog.vala b/src/timer-setup-dialog.vala index e360ad8..6e94b90 100644 --- a/src/timer-setup-dialog.vala +++ b/src/timer-setup-dialog.vala @@ -25,14 +25,23 @@ public class SetupDialog: Gtk.Dialog { public SetupDialog (Gtk.Window parent) { Object (modal: true, transient_for: parent, title: _("New Timer"), use_header_bar: 1); - this.set_default_size (640, 360); add_button (_("Cancel"), Gtk.ResponseType.CANCEL); var create_button = add_button (_("Add"), Gtk.ResponseType.ACCEPT); create_button.get_style_context ().add_class ("suggested-action"); timer_setup = new Setup (); - this.get_content_area ().add (timer_setup); + timer_setup.margin = 12; + var container = new Gtk.ScrolledWindow (null, null); + container.hexpand = true; + container.vexpand = true; + container.propagate_natural_height = true; + container.propagate_natural_width = true; + container.hscrollbar_policy = Gtk.PolicyType.NEVER; + container.border_width = 0; + container.visible = true; + container.add (timer_setup); + this.get_content_area ().add (container); timer_setup.duration_changed.connect ((duration) => { this.set_response_sensitive (Gtk.ResponseType.ACCEPT, duration != 0); }); -- 2.29.2