Commit graph

81 commits

Author SHA1 Message Date
Sebastian Imlay d80b38cea4 Move networking line back under listview import 2022-08-21 19:22:29 -04:00
Sebastian Imlay 78be15b50b Added comment for why image::from_path isnt tested 2022-08-21 19:22:29 -04:00
Sebastian Imlay 46b313b585 Make networking module be unfeature flagged, added more tests 2022-08-21 19:22:29 -04:00
Sebastian Imlay 4483b815f6 fix ci 2022-08-21 19:22:29 -04:00
Sebastian Imlay bab9e7d847 Added image to uikit support and integration test 2022-08-21 19:22:27 -04:00
Ryan McGrath c58de62f1d Nightly fmt pass 2022-08-21 19:21:26 -04:00
Ryan McGrath cf11a935de Formatting hell 2022-08-21 19:21:26 -04:00
Ryan McGrath 8b43d43caf Block off AppKit animator proxy to fix iOS compiling 2022-08-21 19:21:26 -04:00
Ryan McGrath 71c107e070
Formatting fix 2022-08-21 16:04:20 -07:00
Ryan McGrath a94e9e6dd2 Potential fix for Issue #36 - SFSymbols doesn't need to be blocked off (panic) in iOS 2022-08-21 15:56:04 -07:00
Sebastian Imlay e38d56ee42 fix fmt 2022-08-16 09:34:48 -04:00
Sebastian Imlay d0d99df147 Updates from comments 2022-08-14 16:40:38 -04:00
Sebastian Imlay 7c917ee0ea Removed some compile_fail parts 2022-08-14 15:59:05 -04:00
Sebastian Imlay 8bffc30ac1 fix cargo test 2022-08-14 15:44:53 -04:00
Raphael bfb2792d3c feat: add current cursor and currentsystem cursor 2022-07-28 17:14:50 +08:00
Mads Marquart 56f748910e Always specify function ABI 2022-07-15 16:14:03 +02:00
Mads Marquart db4f2c0720 Run cargo fmt 2022-07-15 16:14:02 +02:00
Mads Marquart 02f5d6aa87 Remove trailing whitespace 2022-07-15 16:13:27 +02:00
Ryan McGrath f925205876
Provide a standard NSMenu generator, fix a bug in NSEvent key character releasing, and add an animation example. 2022-01-07 01:13:24 -08:00
Ryan McGrath b9bf30e6f1
Fix examples, fix webview to work with new ObjcAccess trait, rename Image icon method for toolbars 2022-01-06 23:25:36 -08: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 87533d576f
Fix errors when compiling docs.
Feature flags that clash are no fun. This reworks a few things so that
docs can properly build with all feature flags at once and note their
support.

Also adds a supported table to the README for ease of discovery.
2021-08-09 02:09:08 -07: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
Rui A. Rebelo f98ac60239 Resolves #14. Unlike all controls, WebView has 'fn did_load(&self,...)' with self as non-mutable 2021-07-05 15:32:50 -06:00
Rui A. Rebelo 2f7ebbf2ad Resolves #12. To avoid a Segmentation Fault retains the body of a message from a webpate to a webview 2021-07-03 21:51:02 -06:00
Ryan McGrath aba18412cd
Resolves #11. Pass the actual value, which should compile on macOS 10.15.7 and lower. 2021-06-28 13:11:41 -07:00
Ryan McGrath 7acc060601
Quiet this for 0.2.0 2021-06-09 16:38:52 -07:00
Ryan McGrath eb35b647f7
Update mod.rs
Slight edit for docstring + dereferencing the `NSString`s.
2021-04-26 14:22:07 -07:00
David Lemarier 5ec3b172e8
feat(webview): Allow loading of HTML string instead of URL. 2021-04-26 08:09:13 -04:00
Ryan McGrath be6ff21d11
Merge pull request #9 from lemarier/feat/webview-handlers
feat(webview): Add custom protocol (scheme) support
2021-04-25 17:21:25 -07: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
David Lemarier 1531043943
fix(webview): setWantsLayer is not available on iOS 2021-04-25 08:19: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 5f2f1f21b0
Fix NSTextField string dealloc bug 2021-04-14 22:47:13 -07:00
Ryan McGrath 8a9c45af61
Building out browser example.
- Includes test case to reproduce textfield dealloc bug.
2021-04-14 19:00:34 -07:00
Ryan McGrath 80ec654d8d
Adds a text_input example to act as a test.
- TextFieldDelegate methods needed to retain the string, otherwise it
  could crash under fast usage.
- Work on improving the browser example; WIP.
2021-04-12 18:17:36 -07:00
Ryan McGrath 420422187a
Fixes #6 and updates WebView to new layout system.
- Includes a (basic) `browser` example to make testing the feature
  easier.
2021-04-08 17:54:32 -07:00
Ryan McGrath 1b0be74fc8
Begin moving certain core methods to Layout.
- Drag and drop, hidden, and so on now live on on the `Layout` trait,
  which helps make the logic less of a hassle to support (these methods
  are almost always guaranteed to exist on any view type, and it's
  easier to just noop them on a specific view if need be).

- Begin reworking auto-drop-remove-from-superview logic by including an
  `is_handle` flag on `View`; will need to extend this work to others.
2021-03-26 17:51:37 -07:00
Ryan McGrath 46ee9e2ea8
Add in .layer support for Views.
- Cleans up `View` implementation so there's less boilerplate all
  around.

- Adds in a `Layer` wrapper for `CALayer`s on widgets.
2021-03-26 16:25:57 -07:00
Ryan McGrath 2894699ace
Fix button callbacks and avoid double-locks in listview. 2021-03-26 14:26:17 -07:00
Ryan McGrath 2f9a5b5e67
Rework the Layout trait implementation.
- Adds a new `ObjcProperty` type, which wraps our Objective-C objects in
  a Rust-backed Rc/Refcell combo. This in general makes understanding
  reference counting/storage more digestable when reading through the
  codebase and leans more on Rust to do its thing than the Objective-C
  runtime.

- Most widgets that need to implement `Layout` now only need to provide
  a slot for running a handler with the underlying node.

- Further documentation work ongoing.
2021-03-26 13:29:39 -07:00
Ryan McGrath 5748e76a97
Pasteboard documentation 2021-03-24 18:58:50 -07:00
Ryan McGrath d8d73e45ad
bool -> BOOL, per note in Pull Request #4. 2021-03-18 11:33:43 -07:00
Ryan McGrath 42e4a0d798
Cleans up a few pieces of #5.
- Changes trait callbacks to receive a `&str` rather than `String`.

- Fixes a bug where multiple text field types with different delegates
  would not receive the right delegate type when coming from the
  Objective-C side.

- Minor cleanup.
2021-03-17 21:57:52 -07:00
Ryan McGrath c3922633b9
Merge branch 'trunk' of github.com:ryanmcgrath/cacao into trunk
* 'trunk' of github.com:ryanmcgrath/cacao:
  Standard macOS event handlers for TextField
2021-03-17 21:45:21 -07:00
Ryan McGrath 85eaedca2a Merge branch 'trunk' of github.com:ryanmcgrath/cacao into trunk
* 'trunk' of github.com:ryanmcgrath/cacao:
  implemented applicationShouldTerminateAfterLastWindowClosed
2021-03-17 21:42:18 -07:00
Ryan McGrath 9446092169
Clean up AutoLayout wrapper.
- Anchors are now enums, which help in debugging constraint issues.

- Enum types that are acceptable for constraint generation are now
  matched at runtime, and provide better error messages if a constraint
  can't be satisfied and crashes the app.

- `left` and `right` anchors are now supported on all widgets, fixing an
  oversight from early iterations of the framework.

- Reduces `unsafe` usage by a decent amount when setting constraint
  pointers for widget types.
2021-03-16 18:21:31 -07:00
Ryan McGrath 696907aa73
Ongoing documentation and cleanup work. 2021-03-15 17:09:50 -07:00
Alexander Czernay a85f41be79 Standard macOS event handlers for TextField
added text_should_begin_editing(), text_did_begin_editing(), text_did_change(), text_should_end_editing() and text_did_end_editing() event handlers

for now these only take the value from the TextField and hand it over as a String
2021-03-14 17:41:36 +01:00