Commit graph

135 commits

Author SHA1 Message Date
Michael Aaron Murphy
a1b3d6ec38 feat(widget): add COSMIC search widget 2023-01-30 21:57:24 +01:00
Michael Aaron Murphy
ace16b3bc0 fix(headerbar): handle empty title string 2023-01-30 21:57:24 +01:00
Michael Aaron Murphy
332f10add7 improv(headerbar): pack with 8 spacing 2023-01-30 21:57:24 +01:00
Michael Aaron Murphy
8fc3d4f0c1 improv(icon): default to ContentFit::ScaleDown 2023-01-30 21:57:24 +01:00
Michael Aaron Murphy
18a21937b4 feat(settings): settings item builder API 2023-01-30 21:57:24 +01:00
Michael Aaron Murphy
4b7509e1c3 feat(theme): TextInput::Search style 2023-01-30 21:57:24 +01:00
Michael Aaron Murphy
9a095e4d94 feat(divider): add functions for divider style variants of a Rule 2023-01-30 21:57:24 +01:00
Michael Aaron Murphy
b3a3c9c29a feat(widget): add text function with Cow<str> input 2023-01-30 21:57:24 +01:00
Michael Aaron Murphy
f81a06bc4a feat(keyboard-nav): add Escape and Search messages 2023-01-30 21:57:24 +01:00
Michael Aaron Murphy
ff1de78aa8 fix(keyboard-nav): text input focus lost on click 2023-01-30 21:57:24 +01:00
Michael Aaron Murphy
e9766389c4
fix(segmented-button): hover style not being applied 2023-01-19 22:32:58 +01:00
Michael Aaron Murphy
046dd49438 feat(spin-button): support fraction::Decimal as model input 2023-01-19 19:58:31 +01:00
Michael Aaron Murphy
ccc9b60955 feat!(spin-button): pass label rather than model to widget 2023-01-19 19:58:31 +01:00
Michael Aaron Murphy
2b0227d34f feat(iconsource): additional helper methods for creating handles 2023-01-19 19:58:31 +01:00
Michael Aaron Murphy
b3d550cc5e feat!(segmented-button): improved interfaces and documentation
BREAKING CHANGE: Various type and function names have changed to reflect
themselves better in documentation. Code has been reorganized into
separate modules with a better placement in libcosmic. Most of the
functions, types, and modules now have documentation and examples.

These changes no longer require the `Model` type to define the
data/component type that it stores. The component functionality is now
optional, and it's also possible to associate many components to an item
with one component per type. This has had a side effect of simplifying a
lot of the type signatures in the implementation.

Before, to insert an item into the model, you had to define a
`SegmentedItem` and a `Component` on insert, and get back an ID for that
item. Which makes it difficult to define an item that contains only an
icon or has no components. And requires an extra insert function to
activate the item on insert.

Now, there is a flexible builder-style API for configuring
newly-inserted items in the model. So the complexity for inserting and
retrieving values from the model has decreased significantly
2023-01-19 19:58:31 +01:00
Ian Douglas Scott
cd19bbf37a Re-export iced_sctk when build with wayland feature 2023-01-18 16:59:10 -07:00
Ian Douglas Scott
db2e6c236d When built with tokio, provide a SingleThreadExecutor
An application can (optionally) use this to spawn a single tokio thread
instead of one per processor thread.
2023-01-18 16:59:10 -07:00
Eduardo Flores
abf8fc96c2 feat(widget): add warning widget 2023-01-17 16:49:52 +01:00
Victoria Brekenfeld
b6c09aaa85
improv(widget/headerbar): Allow owned string (#73) 2023-01-17 13:47:44 +01:00
Michael Aaron Murphy
f441a364a6 feat: add keyboard_nav module with unfocus support 2023-01-10 20:49:49 +01:00
Michael Aaron Murphy
352bf8e401 improv: use current design for nav bar toggle button 2023-01-10 20:49:49 +01:00
Michael Aaron Murphy
c4bd0fa3d8 feat: Re-orderable positioning of items in segmented button
Calling `model.swap_position(key1, key2)` will swap the positions of
these two items in the model.
2023-01-10 20:49:49 +01:00
Michael Aaron Murphy
e598d2bea3 fix: Prevent focus of disabled items in segmented button 2023-01-10 20:49:49 +01:00
Michael Aaron Murphy
29c7444a30 feat: focusable segmented items in segmented button 2023-01-10 20:49:49 +01:00
Michael Aaron Murphy
8988b25b6a feat: MultiSelect support for segmented buttons 2023-01-10 20:49:49 +01:00
Michael Aaron Murphy
b1cbcfaf5b refactor: Replace nav bar macros with nav bar widget 2023-01-10 20:49:49 +01:00
Michael Aaron Murphy
dd29f958af feat: add nav_bar widget based on vertical view switcher 2023-01-10 20:49:49 +01:00
Michael Aaron Murphy
dd3ff2e622 feat(segmented-button): icon support with state ergonomics 2023-01-10 20:49:49 +01:00
Michael Aaron Murphy
197d5a1c14 feat: Add IconSource::load method to get icon handles 2023-01-10 20:49:49 +01:00
13r0ck
59edb3bbf1 Cosmic example: Add Tab navagation 2023-01-06 10:58:42 -07:00
Michael Aaron Murphy
7d018a2139 feat(settings): global setting for icon theme 2023-01-05 16:57:02 +01:00
Michael Aaron Murphy
043485c68d improv(icon): icon theme set to None by default 2023-01-05 16:57:02 +01:00
Michael Aaron Murphy
38f9de4405 improv(icon): IconSource paths now stored as Cow<Path> 2023-01-05 16:57:02 +01:00
Ashley Wulber
dc4edb2a4d feat: applet button theme helper 2023-01-05 16:20:33 +01:00
Michael Aaron Murphy
357de5e9be
improv(segmented-button): Express vertical/horizontal variants as a state machine
It's difficult to make iterative developments when there's two
nearly-identical types that need to be kept synchronized to any change.
Rust gives us traits so we should use them instead of duplicating code.

This made it easier to make styling and layout improvements to both
instances of the segmented button.
2023-01-04 05:55:27 +01:00
Michael Aaron Murphy
176c30901a chore: ignore doc tests for segmented button examples 2023-01-04 05:46:24 +01:00
Victoria Brekenfeld
75687acf2f chore: apply cargo fmt 2023-01-04 05:46:24 +01:00
Michael Aaron Murphy
444e389496 refactor!: separate horizontal and vertical segmented button widgets
- Removes the orientation enum in favor of two separate widgets
- Implements the spacing attribute for both widgets
- Demo is updated to display spaced variants of the widgets
2023-01-03 20:29:50 +01:00
Michael Aaron Murphy
ad0443af3f feat(segmented-button): Vertical orientation functionality 2023-01-03 00:12:28 -05:00
Michael Aaron Murphy
de580ffefc feat(widget): add an Orientation::{Horizontal,Vertical} enum 2023-01-03 00:12:28 -05:00
Michael Aaron Murphy
052d9f655b feat(segmented-button): Configurable fonts 2022-12-28 18:34:45 -05:00
Michael Aaron Murphy
5f9ff54352 improv(segmented-button): Documentation improvements with cosmic widget configurations 2022-12-28 18:34:45 -05:00
Michael Aaron Murphy
b13ad0b453 improv(segmented-button): Add more From implementations for ButtonContent 2022-12-28 18:34:45 -05:00
Michael Aaron Murphy
bbac6b9bbf feat(segmented-button): Selection style and implementation 2022-12-28 18:34:45 -05:00
Michael Aaron Murphy
3454483345 feat(segmented-button): Configurable background and hover styling 2022-12-28 18:34:45 -05:00
Michael Aaron Murphy
e97c258422 feat: implement SegmentedButton widget 2022-12-28 10:19:03 -05:00
Ashley Wulber
01701759c9 fix: make sure that lazy widgets have calculated their element before calling layout 2022-12-27 22:38:49 +01:00
Ashley Wulber
d31c686e9a fix: limits on popup size and shrink popup container 2022-12-27 21:20:06 +01:00
Ashley Wulber
5d271ae21b fix: applet feature 2022-12-27 18:11:38 +01:00
Michael Aaron Murphy
d732f64fb8
feat: Border radius support for buttons 2022-12-23 16:09:17 +01:00