Georges Basile Stavracas Neto
8f04f40272
views/month: Factor out row offsetting in a function
...
And use it in the pixel-based variant.
2023-08-13 18:37:12 -03:00
Georges Basile Stavracas Neto
12a9e8193f
views/month: Rename a function
...
We'll introduce a variant of this function that operates directly
on row offsets, instead of pixel values.
2023-08-13 18:37:12 -03:00
Georges Basile Stavracas Neto
da2b7328e0
views/month: Implement event updates
...
Just do a stupid remove + add, which is far from ideal but will
be enough for the time being.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
77f355ed53
month-cell: Small style improvements
...
As suggested by Allan.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
176f8f28a8
views/month: Show overflow popover when requested
...
Basically, all that we used to do, but written in a different
way for the new month view.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
15032b6d05
month-view-row: Add 'show-overflow' signal
...
It just proxies the day cell's signal.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
d5a36d4ad2
view: Operate on ranges
...
This is the data struct we should be using everywhere now.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
9b343db339
views/month: Improve date calculation for cell style
...
Use the center the view as the date with which the day cells
are styled. This should be enough to highlight the month with
most days visible onscreen.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
e7846a6b9c
views/month-view: Change visuals of out-of-month day cells
...
This still looks like garbage becase of the rudimentary way we
compute the current date, but it's a start.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
7e26bd5649
views/dazzling: Make it *the* month view
...
And move the old one to the attic. I'll keep the files around for
a while.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
7f7f55826c
month-view-row: Implement RTL support
...
This was remarkably easy.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
5bc8fffc71
views/dazzling: Add cached events to shuffled row
...
Cached events won't be readded by the backend, because they're
alread present in the view, so we have to manually add them to
the rows.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
ac3998f07d
month-cell: Add padding beneath day number
...
We need to breathe!
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
ddfd3ae498
month-view-row: Slant edges of multiday events
...
When the start or end of the event block doesn't match the event's
range, add slanted edges.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
56d9040030
month-cell: Set sensitivitiness of the button
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
b9d4405e69
views/week-header: Check for NULL child
...
I'm not sure if this is actually correct, but I'm too tired to
think the week header through, so let's just be slightly more
protective for now.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
a743f6884e
month-cell: Start insensitive
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
030f370015
month-cell: Don't change inscription visibility
...
Let's just change the text and preserve the visibility of the
inscription.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
c2b07a5e0a
views/dazzling: Detect week changes, not months
...
The new month view operates on weeks
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
d2c606a221
views/dazzling: Actually use start date
...
Oopsie
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
83acb98f9e
views/dazzling: Make debug prints more useful
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
66cb36e855
views/dazzling-month-view: Implement differential date change
...
Should make the Today button work properly now.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
1c307de688
views/dazzling: Remove unused field
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
f9f9ccbb8c
month-view-row: Rewrite layout algorithm
...
Calculate event blocks upfront, in a way that is agnostic to
pixel sizes, and keep them alive as long the event is around.
Calculate which event blocks are visible at layout time, and
only set the child visibility of the event widgets, instead
of truly showing or hiding them. This makes size_allocate not
queue relayouts.
There are many opportunities for optimizations that we can
eventually land, but this seems to work decently so far.
RTL support is still missing.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
b775256ef8
views/month-cell: Use GtkInscription
...
It allows us to change text without causing a relayout.
This will be important later.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
a04b5da975
month-view-row: Remove unnecessary field
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
6382b1f383
month-view-row: Remove redundant check
...
All events of a row are, technically, in the same row!
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
cc51e88ed2
month-view-row: React to event visibility
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
3506100f5b
views/dazzling-month-view: Show event popovers
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
3a36f75877
views/dazzling-month-view: Tentatively support wheel scroll
...
Add a dedicated discrete scroll event controller, and ensure
each event controller handles the right types of events.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
3f0b1e57de
views/dazzling-month-view: Handle events
...
Most of the code is copied from GcalMonthView, so it sucks
slightly. But it seems to work reasonably well so far.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
f8f2c10a8e
views/dazzling-month-view: Propagate context to rows
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
adaf735ada
views/month-view-row: Remove unused variables
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
d62bd1ae77
views/dazzling-month-view: Sketch timeline subscription
...
Right now it does nothing beyond reporting a range, but eventually
we'll populate this code.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
f36fcbbbbd
views/dazzling-month-view: Notify active-date changes
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
72d4f45cd1
views/dazzling-month-view: Initialize on current date
...
Calling gcal_view_set_date() ensures that all week rows have
their ranges setup. This will be useful later.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
a527bbe5dc
views: Sketch out new month view
...
Nothing really works here, this is very WIP. It doesn't even show
events. Let's build from here.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
e47ee2dc17
views/week: Simplify variable with g_autoptr
2023-08-02 11:04:25 -03:00
Georges Basile Stavracas Neto
07dd7780ad
view: Cosmetics
2023-08-02 11:04:12 -03:00
Christopher Davis
3ee8a3ae82
week-header: Ellipsize month
2023-06-17 20:18:07 +00:00
Christopher Davis
3f366ad19c
week-header: Ellipsize "Other %d events" label
...
This label can be too wide for our view.
2023-06-17 20:18:07 +00:00
Felipe Kinoshita
72eb199f84
general: Stop using get_allocated_width/height
...
gtk_widget_get_allocated_width and gtk_widget_get_allocated_height are
deprecated, let's use the recommended functions.
2023-05-30 05:13:34 -03:00
Georges Basile Stavracas Neto
b5c9d5b73f
window: Use AdwToolbarView to look prettier
...
We're fashion now.
2023-05-23 17:01:54 -03:00
Georges Basile Stavracas Neto
501347f797
views/month: Cleanup math
...
The Month view is a complicated beast when it comes to allocating
events, but it's unnecessarily complicated since it tries to take
margins of events into accounts. With GTK4, that's not necessary
anymore, as GTK4 will independently and correctly apply margins
in widgets by itself, we don't have to do manually anymore.
Clean that up.
2023-03-16 12:30:15 +00:00
Georges Basile Stavracas Neto
f751803e07
views/week-header: Use minute granurality
...
We end up losing minutes information when running through this code
path. Technically it's fine, because we copy the minutes from the
event, but it's better nonetheless to operate on the level of
granularity that Calendar supports.
2023-03-16 12:27:09 +00:00
Georges Basile Stavracas Neto
8b9af9241e
views/week-header: Don't change all day state
...
I don't know what I had in mind when I wrote this, since 2017 self
did not bother adding a proper commit message, but 2023 me is pretty
convinced we never want to change the event length when dragging it
around.
Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/896
2023-03-16 12:27:09 +00:00
Georges Basile Stavracas Neto
0650c89ee2
views/week: Cleanup unused struct field
...
We don't use 'scroll_scale' anymore
2023-03-16 12:26:28 +00:00
Georges Basile Stavracas Neto
e1616039d6
views/week: Special case discrete events
...
They behave slightly differently from smooth scroll events, and
they don't emit 'scroll-begin' nor 'scroll-end', so we have to
execute that the callbacks of these signals do inside the scroll
callback itself.
2023-03-16 12:26:28 +00:00
Georges Basile Stavracas Neto
a55bf69dfb
views/week: Don't swap callback arguments
...
No function changes
2023-03-16 12:26:28 +00:00
Georges Basile Stavracas Neto
189c809271
views/week: Store and restore zoom level
...
Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/916
2023-03-16 12:26:28 +00:00