Skip to content

Commit

Permalink
close #48 - added hoverTextStyle property
Browse files Browse the repository at this point in the history
  • Loading branch information
MaurizioSodano committed Jun 12, 2023
1 parent 2a4699e commit f6767f7
Show file tree
Hide file tree
Showing 4 changed files with 119 additions and 78 deletions.
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"git-blame.gitWebUrl": ""
}
97 changes: 62 additions & 35 deletions example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,42 +5,48 @@ packages:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted
version: "2.9.0"
version: "2.11.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
version: "1.3.0"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted
version: "1.1.1"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
url: "https://pub.dev"
source: hosted
version: "1.16.0"
version: "1.17.1"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
flutter:
Expand All @@ -52,56 +58,70 @@ packages:
dependency: "direct dev"
description:
name: flutter_lints
url: "https://pub.dartlang.org"
sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
url: "https://pub.dev"
source: hosted
version: "2.0.1"
flutter_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
js:
dependency: transitive
description:
name: js
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.6.7"
lints:
dependency: transitive
description:
name: lints
url: "https://pub.dartlang.org"
sha256: "5cfd6509652ff5e7fe149b6df4859e687fca9048437857cb2e65c8d780f396e3"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
url: "https://pub.dev"
source: hosted
version: "0.12.12"
version: "0.12.15"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted
version: "0.1.5"
version: "0.2.0"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
url: "https://pub.dev"
source: hosted
version: "1.8.0"
version: "1.9.1"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
url: "https://pub.dev"
source: hosted
version: "1.8.2"
version: "1.8.3"
sidebarx:
dependency: "direct main"
description:
path: ".."
relative: true
source: path
version: "0.14.0"
version: "0.15.0"
sky_engine:
dependency: transitive
description: flutter
Expand All @@ -111,51 +131,58 @@ packages:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted
version: "1.9.0"
version: "1.9.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted
version: "1.10.0"
version: "1.11.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
url: "https://pub.dev"
source: hosted
version: "0.4.12"
version: "0.5.1"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
version: "2.1.4"
sdks:
dart: ">=2.17.0-206.0.dev <3.0.0"
dart: ">=3.0.0-0 <4.0.0"
flutter: ">=1.17.0"
90 changes: 49 additions & 41 deletions lib/src/theme/sidebarx_theme.dart
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
import 'package:flutter/material.dart';

class SidebarXTheme {
const SidebarXTheme({
this.width = 70,
this.height = double.infinity,
this.padding = EdgeInsets.zero,
this.margin = EdgeInsets.zero,
this.decoration,
this.iconTheme,
this.selectedIconTheme,
this.textStyle,
this.selectedTextStyle,
this.itemDecoration,
this.selectedItemDecoration,
this.itemMargin,
this.selectedItemMargin,
this.itemPadding,
this.selectedItemPadding,
this.itemTextPadding,
this.selectedItemTextPadding,
this.hoverColor,
});
const SidebarXTheme(
{this.width = 70,
this.height = double.infinity,
this.padding = EdgeInsets.zero,
this.margin = EdgeInsets.zero,
this.decoration,
this.iconTheme,
this.selectedIconTheme,
this.textStyle,
this.selectedTextStyle,
this.itemDecoration,
this.selectedItemDecoration,
this.itemMargin,
this.selectedItemMargin,
this.itemPadding,
this.selectedItemPadding,
this.itemTextPadding,
this.selectedItemTextPadding,
this.hoverColor,
this.hoverTextStyle});

/// [SidebarX] width
final double width;
Expand Down Expand Up @@ -77,6 +77,10 @@ class SidebarXTheme {
/// cursor hover over an item
final Color? hoverColor;

/// [SidebarXItem] text style when the mouse
/// cursor hover over an item
final TextStyle? hoverTextStyle;

/// Method to get default flutter theme settings
SidebarXTheme mergeFlutterTheme(BuildContext context) {
final theme = Theme.of(context);
Expand All @@ -101,6 +105,8 @@ class SidebarXTheme {
itemTextPadding: itemTextPadding,
selectedItemTextPadding: selectedItemTextPadding,
hoverColor: hoverColor ?? theme.hoverColor,
hoverTextStyle: hoverTextStyle ??
theme.textTheme.bodyMedium?.copyWith(color: theme.primaryColor),
);
return mergedTheme;
}
Expand Down Expand Up @@ -130,6 +136,7 @@ class SidebarXTheme {
selectedItemDecoration:
selectedItemDecoration ?? theme.selectedItemDecoration,
hoverColor: hoverColor ?? theme.hoverColor,
hoverTextStyle: hoverTextStyle ?? theme.hoverTextStyle,
);
}

Expand All @@ -153,28 +160,29 @@ class SidebarXTheme {
EdgeInsets? itemTextPadding,
EdgeInsets? selectedItemTextPadding,
Color? hoverColor,
TextStyle? hoverTextStyle,
}) {
return SidebarXTheme(
width: width ?? this.width,
height: height ?? this.height,
padding: padding ?? this.padding,
margin: margin ?? this.margin,
decoration: decoration ?? this.decoration,
iconTheme: iconTheme ?? this.iconTheme,
selectedIconTheme: selectedIconTheme ?? this.selectedIconTheme,
textStyle: textStyle ?? this.textStyle,
selectedTextStyle: selectedTextStyle ?? this.selectedTextStyle,
itemDecoration: itemDecoration ?? this.itemDecoration,
selectedItemDecoration:
selectedItemDecoration ?? this.selectedItemDecoration,
itemMargin: itemMargin ?? this.itemMargin,
selectedItemMargin: selectedItemMargin ?? this.selectedItemMargin,
itemPadding: itemPadding ?? this.itemPadding,
selectedItemPadding: selectedItemPadding ?? this.selectedItemPadding,
itemTextPadding: itemTextPadding ?? this.itemTextPadding,
selectedItemTextPadding:
selectedItemTextPadding ?? this.selectedItemTextPadding,
hoverColor: hoverColor ?? this.hoverColor,
);
width: width ?? this.width,
height: height ?? this.height,
padding: padding ?? this.padding,
margin: margin ?? this.margin,
decoration: decoration ?? this.decoration,
iconTheme: iconTheme ?? this.iconTheme,
selectedIconTheme: selectedIconTheme ?? this.selectedIconTheme,
textStyle: textStyle ?? this.textStyle,
selectedTextStyle: selectedTextStyle ?? this.selectedTextStyle,
itemDecoration: itemDecoration ?? this.itemDecoration,
selectedItemDecoration:
selectedItemDecoration ?? this.selectedItemDecoration,
itemMargin: itemMargin ?? this.itemMargin,
selectedItemMargin: selectedItemMargin ?? this.selectedItemMargin,
itemPadding: itemPadding ?? this.itemPadding,
selectedItemPadding: selectedItemPadding ?? this.selectedItemPadding,
itemTextPadding: itemTextPadding ?? this.itemTextPadding,
selectedItemTextPadding:
selectedItemTextPadding ?? this.selectedItemTextPadding,
hoverColor: hoverColor ?? this.hoverColor,
hoverTextStyle: hoverTextStyle ?? this.hoverTextStyle);
}
}
7 changes: 5 additions & 2 deletions lib/src/widgets/sidebarx_cell.dart
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,11 @@ class _SidebarXCellState extends State<SidebarXCell> {
final theme = widget.theme;
final iconTheme =
widget.selected ? theme.selectedIconTheme : theme.iconTheme;
final textStyle =
widget.selected ? theme.selectedTextStyle : theme.textStyle;
final textStyle = widget.selected
? theme.selectedTextStyle
: (_hovered)
? theme.hoverTextStyle
: theme.textStyle;
final decoration =
(widget.selected ? theme.selectedItemDecoration : theme.itemDecoration);
final margin =
Expand Down

0 comments on commit f6767f7

Please sign in to comment.