nativeapi 0.2.7
nativeapi: ^0.2.7 copied to clipboard
Flutter bindings for nativeapi - providing seamless, unified access to native system APIs.
0.2.7 #
- Add
WindowCreatedEventandWindowClosedEvent.WindowManager.addListenernow reports a window the first time it is shown and when it is closed for good, whoever created or closed it — including windows made with Flutter's multi-window API. A window that is never shown emits neither; hiding is not closing. - Add
Window.setParentWindow/Window.parentWindowfor child windows — floating toolbars, palettes, inspectors. A child stays above its parent and hides when the parent is minimized. On macOS it also moves with its parent; on Windows and Linux follow the parent'sWindowMovedEventfor that. On Windows a child is destroyed with its parent. WindowEventand the other event base classes now expose what every variant carries (event.windowId, …), so reading it no longer needs a match on the concrete type.- macOS: a
Window.backgroundColorwith alpha now really makes the window see-through — the window is marked non-opaque, and a Flutter view in it drops its black backing. - Add
floating_toolbar_example: a transparent, frameless Flutter window attached to the main window, from Dart alone. - Add
TrayIcon.isIconTemplate,iconSizeandiconPosition(withTrayIconPosition). Behaviour change on macOS: an icon is no longer forced to be a template image, so coloured icons keep their colours — setisIconTemplate = truefor a monochrome glyph that should follow the menu bar. The default size is still 18 x 18 points; a zero size draws the image at its own size. TheImagegiven toiconis no longer modified. Windows and Linux record the three values without using them. - Windows: tray icons come back after Explorer restarts instead of disappearing for good.
- Linux: every tray icon gets its own D-Bus connection, so a second icon in the same process appears instead of failing to register, and a disposed icon leaves the panel at once.
- Linux: window size and position are measured by the frame and the content instead of
the
GdkWindow. - Windows: a menu item's click event is emitted before
Menu.openreturns, andopenreports failure from whether the menu was actually shown. - Fix a crash when a window message arrived for a menu that had already been destroyed.
0.2.5 #
- Add drag and drop:
DropTarget/DragSourcebindings, and theDropRegionandDragOutAreawidgets for dropping files and text onto a window and dragging them out of it. - Add
DragToMoveAreaandDragToResizeAreawidgets for custom window chrome, with optional target windows and configurable resize handles. - Add
WindowDragSessionandWindowManager.getWindowAtPointfor tear-off windows that follow the cursor and can dock back into another window. - Add
Window.isVisibleInTaskbarfor keeping a window out of the taskbar — theskipTaskbarcounterpart, inverted so it reads like the other flags. Windows adds and removes the taskbar button (and keeps it away across hide/show), Linux sets the window manager's skip-taskbar hint, macOS drops the window from the app's Window menu. - Window events now actually fire.
WindowResizedEvent,WindowMovedEvent,WindowMinimizedEvent,WindowMaximizedEventandWindowRestoredEventexisted all the way through the bindings but were never emitted — only focused and blurred worked. Wayland cannot report moves or minimization to a client, so those stay silent there. - Fix
Window.hasShadowdoing nothing on Windows: turning it off now removes the window's drop shadow, which is what a frameless window usually wants. - Fix
Window.titleBarStyleon Windows: hiding the title bar now takes effect straight away instead of only after a fullscreen round trip, the content fills the space the title bar left, and the top edge stays resizable. - Fix
Window.isFullScreenon Windows being answered from the window's rectangle, so moving or centering a full screen window left it stuck in full screen for good. Also fixWindow.isMinimizedalways being false there, which maderestore()a no-op. - Fix
Window.startDraggingnot moving the window on Windows, and on macOS the gesture after astartDragging/startResizingbeing ignored; implement it on Linux. - Linux fixes:
WindowManager.getCurrent()andWindow.isFocusednow find the focused window, an app no longer exits immediately instead of running, opening a context menu relative to a window no longer crashes, and the display getters survive monitors being replaced or the screen blanking. - Windows fixes: window hit testing and late drag starts, submenu detach/reattach, and Top End menu placement.
- Add
window_drag_areas_example,drag_drop_example,detachable_window_exampleandbrowser_tabs_example.
0.2.4 #
- Update to
cnativeapi0.2.4 with Windows DLL export and Apple build fixes. - Fix storage example initialization and collection access by using the
allgetter. - Sync generated Dart bindings with the updated core.
0.2.3 #
- Add
Window.isNonActivating. A non-activating window can be shown on top and take keyboard input without activating the app, so the previously active app keeps its activation and the app's other windows stay put when it is hidden. Only macOS has observable behavior (the window becomes a non-activatingNSPanelin place); Windows and Linux record the flag - macOS:
Window.isFocusable = falsenow actually prevents the window from becoming key
0.2.2 #
- Fix macOS build failure in 0.2.1 coming from
cnativeapi— see its changelog
0.2.1 #
- Add
AppInfoAPI for the running app's name, identifier, version and build number - Add
DeviceInfoAPI for the machine's name, model, manufacturer, OS, kernel and architecture - Fix
WindowFocusedEventandWindowBlurredEventnever firing — the native layer dispatched no window events at all, soWindowManager.addListenerwas silent
0.2.0 #
- Breaking: regenerate the Dart API from the new code generator; the object identity/lifecycle model is unified and many signatures changed
- Breaking: rework the event system —
EventEmitterand the separateWindowEvent/MenuEvent/TrayIconEventclasses are replaced by typed event listeners on each object - Add
ApplicationAPI - Add
KeyboardMonitorAPI - Add
ShortcutandShortcutManagerAPIs for global shortcuts - Add
ImageAssetwidget helper - Fix tray icon bounds on multi-display setups (macOS)
- Fix macOS global shortcuts never firing
0.1.4 #
- Fix macOS menu item disabled state not being respected
- Fix Windows window
SetMinimumSize/SetMaximumSizenot working - Add per-monitor DPI scaling for Windows display and window geometry
- Track menu item enabled state and update flags on Windows
- Adjust Linux tray icon menu trigger handling
- Enhance window example UI with event logging and three-tab interface
- Add menu example enhancements (disabled menu items, bug repro)
- Remove CocoaPods artifacts from macOS Xcode project
0.1.3 #
- Remove CocoaPods integration from the storage example
- Update Darwin example integration to use Swift Package Manager
0.1.2 #
- Add
LaunchAtLoginAPI for managing app startup at user login - Fix bindgen Dart template generation for
LaunchAtLoginstring-array arguments - Fix bindgen Dart template generation for static native API calls
0.1.1 #
- Add
WindowManagerAPI with full lifecycle support (show, hide, center, pre-show/pre-hide hooks, visual effects, title bar style, control buttons) - Add
TrayManager/TrayIconAPI with context menu trigger support - Add
DisplayManager/Displaymulti-screen management API - Add
Menu/MenuEventmenu system - Add
MessageDialog/DialogAPIs - Add
AccessibilityManagerAPI - Add
Preferencesstorage - Add
SecureStoragesecure storage - Add
UrlOpenerAPI - Add
PositioningStrategy/Placementwindow positioning support - Add
ContextMenuRegionwidget
0.1.0 #
- Initial release