Skip to content

Commit

Permalink
Merge pull request #59 from aroxu/main
Browse files Browse the repository at this point in the history
Added longPress, Right Click on Desktop.
  • Loading branch information
Frezyx committed Nov 24, 2023
2 parents ca49f19 + 7c741b9 commit 1b4d3b2
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 15 deletions.
28 changes: 14 additions & 14 deletions example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ packages:
dependency: transitive
description:
name: collection
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
url: "https://pub.dev"
source: hosted
version: "1.17.2"
version: "1.18.0"
fake_async:
dependency: transitive
description:
Expand Down Expand Up @@ -95,10 +95,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
url: "https://pub.dev"
source: hosted
version: "1.9.1"
version: "1.10.0"
path:
dependency: transitive
description:
Expand All @@ -113,7 +113,7 @@ packages:
path: ".."
relative: true
source: path
version: "0.16.1"
version: "0.16.2"
sky_engine:
dependency: transitive
description: flutter
Expand All @@ -131,18 +131,18 @@ packages:
dependency: transitive
description:
name: stack_trace
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
url: "https://pub.dev"
source: hosted
version: "1.11.0"
version: "1.11.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
url: "https://pub.dev"
source: hosted
version: "2.1.1"
version: "2.1.2"
string_scanner:
dependency: transitive
description:
Expand All @@ -163,10 +163,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
url: "https://pub.dev"
source: hosted
version: "0.6.0"
version: "0.6.1"
vector_math:
dependency: transitive
description:
Expand All @@ -179,10 +179,10 @@ packages:
dependency: transitive
description:
name: web
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
url: "https://pub.dev"
source: hosted
version: "0.1.4-beta"
version: "0.3.0"
sdks:
dart: ">=3.1.0-185.0.dev <4.0.0"
dart: ">=3.2.0-194.0.dev <4.0.0"
flutter: ">=1.17.0"
4 changes: 4 additions & 0 deletions lib/src/models/sidebarx_item.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ class SidebarXItem {
this.icon,
this.iconWidget,
this.onTap,
this.onLongPress,
this.onSecondaryTap,
}) : assert(
(icon != null || iconWidget != null) &&
(icon == null || iconWidget == null),
Expand All @@ -16,4 +18,6 @@ class SidebarXItem {
final IconData? icon;
final Widget? iconWidget;
final Function()? onTap;
final Function()? onLongPress;
final Function()? onSecondaryTap;
}
23 changes: 23 additions & 0 deletions lib/src/sidebarx_base.dart
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,9 @@ class _SidebarXState extends State<SidebarX>
extended: widget.controller.extended,
selected: widget.controller.selectedIndex == index,
onTap: () => _onItemSelected(item, index),
onLongPress: () => _onItemLongPressSelected(item, index),
onSecondaryTap: () =>
_onItemSecondaryTapSelected(item, index),
);
},
),
Expand Down Expand Up @@ -163,6 +166,10 @@ class _SidebarXState extends State<SidebarX>
index -
1,
onTap: () => _onFooterItemSelected(item, index),
onLongPress: () =>
_onFooterItemLongPressSelected(item, index),
onSecondaryTap: () =>
_onFooterItemSecondaryTapSelected(item, index),
);
},
),
Expand All @@ -182,11 +189,27 @@ class _SidebarXState extends State<SidebarX>
widget.items.length + widget.footerItems.length - index - 1);
}

void _onFooterItemLongPressSelected(SidebarXItem item, int index) {
item.onLongPress?.call();
}

void _onFooterItemSecondaryTapSelected(SidebarXItem item, int index) {
item.onSecondaryTap?.call();
}

void _onItemSelected(SidebarXItem item, int index) {
item.onTap?.call();
widget.controller.selectIndex(index);
}

void _onItemLongPressSelected(SidebarXItem item, int index) {
item.onLongPress?.call();
}

void _onItemSecondaryTapSelected(SidebarXItem item, int index) {
item.onSecondaryTap?.call();
}

Widget _buildToggleButton(
SidebarXTheme sidebarXTheme,
IconData collapseIcon,
Expand Down
6 changes: 6 additions & 0 deletions lib/src/widgets/sidebarx_cell.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ class SidebarXCell extends StatefulWidget {
required this.selected,
required this.theme,
required this.onTap,
required this.onLongPress,
required this.onSecondaryTap,
required this.animationController,
}) : super(key: key);

Expand All @@ -17,6 +19,8 @@ class SidebarXCell extends StatefulWidget {
final SidebarXItem item;
final SidebarXTheme theme;
final VoidCallback onTap;
final VoidCallback onLongPress;
final VoidCallback onSecondaryTap;
final AnimationController animationController;

@override
Expand Down Expand Up @@ -61,6 +65,8 @@ class _SidebarXCellState extends State<SidebarXCell> {
cursor: SystemMouseCursors.click,
child: GestureDetector(
onTap: widget.onTap,
onLongPress: widget.onLongPress,
onSecondaryTap: widget.onSecondaryTap,
behavior: HitTestBehavior.opaque,
child: Container(
decoration: decoration?.copyWith(
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: sidebarx
description: flutter multiplatform navigation sidebar / side navigationbar / drawer widget
version: 0.16.2
version: 0.16.3
homepage: https://github.com/Frezyx/sidebarx
repository: https://github.com/Frezyx/sidebarx

Expand Down

0 comments on commit 1b4d3b2

Please sign in to comment.