Lots of style improvements
This commit is contained in:
@@ -3,7 +3,7 @@ using Adw 1;
|
||||
|
||||
Adw.ApplicationWindow mainWindow {
|
||||
title: "Wince";
|
||||
default-width: 400;
|
||||
default-width: 600;
|
||||
default-height: 500;
|
||||
|
||||
Gtk.Box {
|
||||
@@ -15,7 +15,9 @@ Adw.ApplicationWindow mainWindow {
|
||||
orientation: horizontal;
|
||||
margin-top: 10;
|
||||
margin-start: 14;
|
||||
margin-bottom: 14;
|
||||
margin-end: 14;
|
||||
halign: center;
|
||||
|
||||
styles ["linked"]
|
||||
|
||||
@@ -30,14 +32,19 @@ Adw.ApplicationWindow mainWindow {
|
||||
}
|
||||
}
|
||||
|
||||
Gtk.ScrolledWindow {
|
||||
Gtk.ScrolledWindow scrollWindow {
|
||||
vexpand: true;
|
||||
visible: false;
|
||||
|
||||
Gtk.ListBox searchResults {
|
||||
margin-top: 14;
|
||||
margin-start: 14;
|
||||
margin-end: 14;
|
||||
Gtk.ListBox searchResults {}
|
||||
}
|
||||
|
||||
Gtk.Label poweredByText {
|
||||
halign: center;
|
||||
valign: center;
|
||||
vexpand: true;
|
||||
use-markup: true;
|
||||
label: "<span foreground=\"gray\" style=\"italic\">Wince is powered by Yelp</span>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,26 +2,28 @@ using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template Wince-BusinessRow : Gtk.ListBoxRow {
|
||||
styles ["card"]
|
||||
margin-bottom: 14;
|
||||
Gtk.Box {
|
||||
orientation: vertical;
|
||||
margin-start: 8;
|
||||
margin-top: 8;
|
||||
margin-start: 24;
|
||||
margin-top: 12;
|
||||
margin-bottom: 12;
|
||||
|
||||
Gtk.Label businessName {
|
||||
styles ["heading"]
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
Gtk.Label businessRating {
|
||||
xalign: 0;
|
||||
}
|
||||
Gtk.Label businessHours {
|
||||
xalign: 0;
|
||||
}
|
||||
Gtk.LinkButton businessWebsite {
|
||||
Gtk.Box {
|
||||
orientation: horizontal;
|
||||
halign: start;
|
||||
spacing: 12;
|
||||
|
||||
Gtk.Label businessOpen {
|
||||
}
|
||||
Gtk.Label businessRating {
|
||||
}
|
||||
Gtk.Label businessDistance {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,26 +1,30 @@
|
||||
module Wince
|
||||
@[Gtk::UiTemplate(resource: "/wince/ui/compiled/templates.ui", children: %w(businessName businessRating businessHours businessWebsite))]
|
||||
@[Gtk::UiTemplate(resource: "/wince/ui/compiled/templates.ui", children: %w(businessName businessRating businessOpen businessDistance))]
|
||||
class BusinessRow < Gtk::ListBoxRow
|
||||
include Gtk::WidgetTemplate
|
||||
|
||||
@name : Gtk::Label
|
||||
@rating : Gtk::Label
|
||||
@hours : Gtk::Label
|
||||
@website : Gtk::LinkButton
|
||||
@open : Gtk::Label
|
||||
@distance : Gtk::Label
|
||||
|
||||
def initialize(name : String, rating : String, hours : String, website : String)
|
||||
def initialize(name : String, rating : Float32, open : Bool, distance : Float32)
|
||||
super()
|
||||
|
||||
@name = Gtk::Label.cast(template_child("businessName"))
|
||||
@rating = Gtk::Label.cast(template_child("businessRating"))
|
||||
@hours = Gtk::Label.cast(template_child("businessHours"))
|
||||
@website = Gtk::LinkButton.cast(template_child("businessWebsite"))
|
||||
@open = Gtk::Label.cast(template_child("businessOpen"))
|
||||
@distance = Gtk::Label.cast(template_child("businessDistance"))
|
||||
|
||||
@name.text = name
|
||||
@rating.text = rating
|
||||
@hours.text = hours
|
||||
@website.uri = website
|
||||
@website.label = "view on yelp"
|
||||
@rating.text = rating.round(2).to_s
|
||||
if open
|
||||
@open.markup = "<span foreground=\"green\">open</span>"
|
||||
else
|
||||
@open.markup = "<span foreground=\"red\">closed</span>"
|
||||
end
|
||||
distance_miles = distance / 1609.344
|
||||
@distance.text = distance_miles.round(2).to_s + "mi"
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -28,11 +28,11 @@ module Wince
|
||||
|
||||
businesses.map do |business|
|
||||
name = business["name"].as_s? || ""
|
||||
rating = business["rating"].as_f.to_s
|
||||
hours = business["is_closed"].as_bool.to_s
|
||||
website = business["url"].as_s? || ""
|
||||
rating = business["rating"].as_f32
|
||||
open = business["is_closed"].as_bool
|
||||
distance = business["distance"].as_f32
|
||||
|
||||
BusinessRow.new(name, rating, hours, website)
|
||||
BusinessRow.new(name, rating, open, distance)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -44,10 +44,15 @@ module Wince
|
||||
search = SEARCH_ENTRY.buffer.text
|
||||
location = LOCATION_ENTRY.buffer.text
|
||||
|
||||
if !search || !location
|
||||
if search.blank? || location.blank?
|
||||
SCROLL_VIEW.visible = false
|
||||
POWERD_BY_TEXT.visible = true
|
||||
return
|
||||
end
|
||||
|
||||
SCROLL_VIEW.visible = true
|
||||
POWERD_BY_TEXT.visible = false
|
||||
|
||||
response = Yelp.search_businesses(search, location)
|
||||
|
||||
if response.status_code != 200
|
||||
|
||||
@@ -10,6 +10,8 @@ module Wince
|
||||
LOCATION_ENTRY = Gtk::Entry.cast(B_UI["locationEntry"])
|
||||
SEARCH_BUTTON = Gtk::Button.cast(B_UI["searchButton"])
|
||||
BUSINESS_LIST = Gtk::ListBox.cast(B_UI["searchResults"])
|
||||
POWERD_BY_TEXT = Gtk::Label.cast(B_UI["poweredByText"])
|
||||
SCROLL_VIEW = Gtk::ScrolledWindow.cast(B_UI["scrollWindow"])
|
||||
|
||||
APP = Adw::Application.new("dev.wince", Gio::ApplicationFlags::None)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user