Commit graph

44 commits

Author SHA1 Message Date
Alex Janka f756a14e8a update dependencies 2024-08-19 15:30:30 +10:00
Alex Janka 366c5e7138 bump objc beta 2024-08-19 15:29:11 +10:00
Mads Marquart 094ed59a04
Initial conversion to objc2 (#30)
* Use objc2

* Replace `objc_id`

* Remove sel_impl import

* Fix `add_method` calls

* Fix accessing raw FFI functions

* Fix Encode impl

* Fix message sends arguments that do not implement `Encode`

* Use immutable reference in a few places where now necessary

See https://github.com/madsmtm/objc2/pull/150 for a bit of background

* Add a few Send + Sync bounds where examples require it

This is something we'll need to look into properly

* Use `&'static Class` instead of `*const Class`

Safer and more ergonomic. Also required for `msg_send_id!` macro

* Use msg_send_id! and rc::Id

* Update objc2 to v0.3.0-beta.2

* Replace `BOOL` with `Bool` when declaring delegates

This makes cacao compile on Aarch64 again

* Remove a few impossible to use correctly `into_inner` functions

These consumed `self`, and hence also dropped `Id` variable that was responsible for keeping the returned pointer alive

* Remove a few impossible to use correctly `From` implementations

* Quickly fix UB with using BACKGROUND_COLOR ivar

* Fix double-freeing of windows

* Fix double freeing of strings

* Fix a few remaining double-frees
2023-09-11 09:59:21 -07:00
Ryan McGrath 4f40d62623
Publish 0.4.0-beta2 2023-08-01 00:28:14 -07:00
Adam Gastineau 01507f7642
Global NSEvent listener and some mouse methods (#94)
* Support for all NSEvent types and configurable event monitoring

* Useful mouse event methods

* rustfmt nightly fixes

* Use standard kind naming convention
2023-07-13 17:22:54 -07:00
simlay e4785bb50f
iOS support for label, text input, font, more tests (#55)
* Added a bunch of unit tests and added text input to uikit feature

* cargo fmt

* I dunno what this is but it wasnt checked in

* Fix uikit unit tests

* maybe fix cargo fmt

* Fix iOS run

* fix cargo fmt

* Maybe fix cargo fmt

* maybe fix cargo fmt

* cargo fmt

* Try to fix cargo fmt one more time

* cargo fmt
2023-07-10 00:42:46 -07:00
Ryan McGrath c148bbe6a3
Merge pull request #87 from ryanmcgrath/dependabot/cargo/core-graphics-0.23
Update core-graphics requirement from 0.22 to 0.23
2023-07-10 00:42:09 -07:00
dependabot[bot] 81adefc1b5
Update infer requirement from 0.13 to 0.15
Updates the requirements on [infer](https://github.com/bojand/infer) to permit the latest version.
- [Release notes](https://github.com/bojand/infer/releases)
- [Commits](https://github.com/bojand/infer/compare/v0.13.0...v0.15.0)

---
updated-dependencies:
- dependency-name: infer
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 08:22:10 +00:00
dependabot[bot] 5865bc6d1d
Update core-graphics requirement from 0.22 to 0.23
Updates the requirements on [core-graphics](https://github.com/servo/core-foundation-rs) to permit the latest version.
- [Commits](https://github.com/servo/core-foundation-rs/compare/core-graphics-v0.22.0...cocoa-v0.23.0)

---
updated-dependencies:
- dependency-name: core-graphics
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-20 09:01:32 +00:00
Ryan McGrath d417289f92
[release] 0.4.0-beta1 2023-06-08 16:09:42 -07:00
Michal Hornický f2f6a1bcfa fix: Add missing button apis 2023-05-07 15:22:34 +02:00
Ryan McGrath 1d7289966b
Merge pull request #73 from ryanmcgrath/dependabot/cargo/infer-0.13
Update infer requirement from 0.9 to 0.13
2023-04-25 16:54:04 -07:00
Joshua Brest 8056329f65
My commit for the repo built in rust called Cacao 2023-04-24 03:31:58 +08:00
dependabot[bot] f05bcdb296
Update infer requirement from 0.9 to 0.13
Updates the requirements on [infer](https://github.com/bojand/infer) to permit the latest version.
- [Release notes](https://github.com/bojand/infer/releases)
- [Commits](https://github.com/bojand/infer/compare/v0.9.0...v0.13.0)

---
updated-dependencies:
- dependency-name: infer
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-02 09:07:17 +00:00
Ryan McGrath 6b69c1db94
Merge pull request #48 from simlay/simlay/add-image-support-and-simple-unit-test
Add image support for uikit feature backends
2022-08-22 16:25:06 -07:00
Ryan McGrath ca676b4ca6
Merge pull request #53 from ryanmcgrath/dependabot/cargo/infer-0.9
Update infer requirement from 0.4 to 0.9
2022-08-21 18:48:29 -07:00
dependabot[bot] d0dcfab639
Update infer requirement from 0.4 to 0.9
Updates the requirements on [infer](https://github.com/bojand/infer) to permit the latest version.
- [Release notes](https://github.com/bojand/infer/releases)
- [Commits](https://github.com/bojand/infer/compare/v0.4.0...v0.9.0)

---
updated-dependencies:
- dependency-name: infer
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-22 01:07:29 +00:00
dependabot[bot] 6eb9425279
Update uuid requirement from 0.8 to 1.1
Updates the requirements on [uuid](https://github.com/uuid-rs/uuid) to permit the latest version.
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/0.8.0...1.1.2)

---
updated-dependencies:
- dependency-name: uuid
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-22 01:07:19 +00:00
Sebastian Imlay bab9e7d847 Added image to uikit support and integration test 2022-08-21 19:22:27 -04:00
Ryan McGrath 120cd86445
Bump version to publish docs changes, touch up README formatting 2022-08-16 16:40:19 -07:00
Ryan McGrath ce0a8e5a48
Merge pull request #45 from simlay/fix-cargo-test
Simplify CI, fix cargo test, and fix docstrings
2022-08-16 13:58:39 -07:00
Sebastian Imlay a8e96836a2 Add extra line in cargo 2022-08-14 16:50:40 -04:00
Sebastian Imlay d0d99df147 Updates from comments 2022-08-14 16:40:38 -04:00
Ryan McGrath b20eff1a2e
Bump to 0.3.1 2022-08-12 20:58:58 -07:00
Mads Marquart 0cf19cae35 Fix core-foundation dependency cycle 2022-08-11 15:34:54 +02:00
Ryan McGrath 4ecfbd0928
A large smattering of updates.
- Added basic animation support, via NSAnimationContext proxy objects.
  These can be used to animate layout constraints and alpha values,
  currently.

- Fixed a bug in ListView where the underlying NSTableView would not
  redraw the full correct virtual height in some conditions.

- Added safe layout guide support to some views.

- Added a new trait to buffer ObjC object access for view and control
  types. This is the supertrait of the Layout and Control traits.

- Added a Control trait, which implements various NSControl pieces.

- Added a Select control, which is a Select-ish HTML dropdown lookalike.

- Added NSURL support, which is one of the few types to expose here.

- Filesystem and pasteboard types now work with NSURLs. Users who need
  pathbufs can use the provided conversion method on NSURL.

- Fixed a bug where some Window and ViewController types could wind up
  in a double-init scenario.
2022-01-02 02:35:12 -08:00
Ryan McGrath 93424f74c0
Throw autolayout behind a feature flag.
- AutoLayout is now behind a feature flag (that is defaulted) to enable
  building and running on platforms that do _not_ support AutoLayout.

- Added a frame-based Layout example for platforms that don't have
  AutoLayout support.

- Fixed a bug in geometry.rs where x/y coordinates would get swapped on
  conversion to `CGRect`.

- Added a README to the examples directory to aid in first time users
  running examples.
2021-08-08 18:42:07 -07:00
Ryan McGrath c713194262
v0.3.
- Changes internal target_os flags to be feature flags; macOS is now
  appkit, and iOS/tvOS are now uikit. This enables platforms that are
  not Apple-specific platforms that use frameworks to be compiled for.

- Updates the examples to handle closing/quitting better.
2021-08-07 22:31:48 -07:00
Ryan McGrath 2a9a8f8635
Push 0.2.1 2021-07-08 15:26:57 -07:00
Ryan McGrath 9b3f85294f
0.2.0 2021-06-09 16:48:45 -07:00
Ryan McGrath 87354a7161
0.2.0 2021-06-09 16:46:28 -07:00
Ryan McGrath 644b1228ee
Bump for 0.2.0 release 2021-06-09 16:37:51 -07:00
David Lemarier 7827dd6490
Make infer optional 2021-04-25 19:39:27 -04:00
David Lemarier c9d665963a
feat(webview): Add custom protocol (scheme) support
This is a basic implementation of the custom protocol, with built-in mimetype extraction from the content, backed by URI detection.

To make it clear, I added an example and can be run with:

```
cargo run --example webview_custom_protocol --features webview
```
2021-04-25 12:07:45 -04:00
Ryan McGrath f558f8e24d
iOS works again, lol.
- Corrects `feature` -> `target_os` checks.
- Updates the old iOS scene delegate pieces to use the new class
  structure.
- Bundles in an iOS demo app.
- Blocks off most things that should not even attempt to compile for
  iOS.
2021-04-15 17:13:59 -07:00
Ryan McGrath 10c513edad
A rather large and not very clean update.
- Adds support for NSSplitViewController.
- Reworks NSMenu support to be cleaner with enum variants.
- Reworks the Foundation underpinnings to be a bit safer and more clear
  in how they're used and passed around.
- Changes to docs structure for push towards v0.1.
- Examples updated to account for changes.
2021-03-04 17:24:39 -08:00
Ryan McGrath 5cd59b5636
Begin reworking many internals to push for v0.1.
- Beginning to transition View types to use Rc/RefCell internally,
  which should provide better guarantees about ownership on the Rust side.
  This is also important for certain Objective-C side scenarios where we
  may need to set an ivar after creation, which requires some level of
  mutability. This may also possibly help bring down the unsafe usage,
  which would be cool.

- Rewrote the Color module; this now handles system colors better, and
  provides support for dynamic color creation. Supporting combinations
  of dark/light/contrast is now possible with handler passed in via
  `Color::dynamic`. This still has work to do in terms of some accessor
  methods and such, but it works well for now. The `to_platform...`
  method should be removed before v0.1.

- Added a new feature for enabling fallback color usage on older macOS
  versions that don't support system colors. This may honestly never be
  used, but it cost nothing to implement.

- Fixed a bug in the Autolayout wrapper where dereferencing could cause
  constraints to crash at runtime.

- Support setting text color on labels.

- Support setting text color on buttons, albeit very hacky right now.
  This needs to be extracted and/or cleaned up, but getting it sketched
  out was important for this commit.

- Support setting a key equivalent on buttons.

- Creating a local event monitor is now possible.

- Examples updated; Calculator clone example added.

The only API breaking change in this commit from earlier commits should
be `color::rgb` needing to be `color::Color` followed by a
`Color::rgb(...)` call.
2021-02-12 17:57:06 -08:00
Ryan McGrath a167be8383
More features and cleanup.
- Reconfigured subclass creation, as there was a
  subtle-but-big-when-it-hit bug in the prior method where bridge
  callbacks would lose context of the appropriate delegate when calling
  the trait method. The new approach found in `src/foundation/class.rs`
  maps and caches subclass creation, and subclasses are now more
  apparent when debugging from the Objective-C side as we can carry
  their intended name/usage through. Not applied to all yet, but
  eventually.

- Cleaned up a number of linter warnings that had grown over time.

- Delegate traits now require an associated const `NAME`, which is used
  for subclass creation.

- (macOS) Toolbars now supported setting selected items, which is
  typically used in preferences screens.

- (macOS) Windows now support setting the toolbar display style. On Big
  Sur, this works as intended - it's a noop on older OS's that don't
  support it.

- Support for system icons for macOS preferences windows.

Still a bit to go to flesh this all out, but it's getting there - at
which point then iOS supoort can be folded in easier.
2021-02-07 20:25:56 -08:00
Ryan McGrath 22f96bb238
More general updates.
- Filesystem Save/Open panels can return PathBuf's instead of Url's,
  which feels more native to Rust.
- Support for drawing into an Image context with Core Graphics.
- ListView swipe-to-reveal action support.
- Experimental ListView cell reuse support.
- Updates to QuickLook to also support PathBuf's.
2021-02-04 13:34:12 -08:00
Ryan McGrath 4ff69c008a
Very rough experimental support for iOS13+ Scenes. Not ready for use or comment yet. 2020-04-04 19:50:58 -07:00
Ryan McGrath 47ddf7f5a3
Experimental iOS support - delegate pattern working in simulator, need to figure out scenes next. 2020-04-01 01:04:34 -07:00
Ryan McGrath d69f59d284
Further work on splitting for macOS/iOS support 2020-03-29 22:33:51 -07:00
Ryan McGrath 0b362a59d1
appkit -> cacao, updated README 2020-03-28 18:45:24 -07:00
Ryan McGrath 6b8aad4a94
Fix up the repo so examples work as they should 2020-03-26 18:06:11 -07:00
Renamed from appkit/Cargo.toml (Browse further)