Attempt to fix hover color to a more reasonable color for a dark theme

This commit is contained in:
zontreck 2025-02-05 02:54:59 -07:00
parent 9201d9f214
commit 4082e126b6
4 changed files with 16 additions and 6 deletions

View file

@ -1,6 +1,7 @@
import 'dart:math' show pi; import 'dart:math' show pi;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_treeview/flutter_treeview.dart';
import 'tree_view.dart'; import 'tree_view.dart';
import 'tree_view_theme.dart'; import 'tree_view_theme.dart';
@ -398,10 +399,12 @@ class _TreeNodeExpanderState extends State<_TreeNodeExpander>
Color? _onColor(Color? color) { Color? _onColor(Color? color) {
if (color != null) { if (color != null) {
if (color.computeLuminance() > 0.6) { if (color.computeLuminance() > 0.75) {
return Colors.black; return Utilities.BLACK;
} else if (color.computeLuminance() > 0.25) {
return Utilities.GREY;
} else { } else {
return Colors.white; return Utilities.WHITE;
} }
} }
return null; return null;

View file

@ -1,4 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_treeview/flutter_treeview.dart';
import 'tree_view_controller.dart'; import 'tree_view_controller.dart';
import 'tree_view_theme.dart'; import 'tree_view_theme.dart';
@ -132,7 +133,10 @@ class _TreeViewData<T> extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
ThemeData _parentTheme = Theme.of(context); ThemeData _parentTheme = Theme.of(context);
return Theme( return Theme(
data: _parentTheme.copyWith(hoverColor: Colors.grey.shade100), data: _parentTheme.copyWith(
hoverColor: _parentTheme == ThemeData.dark()
? Utilities.GREY
: Utilities.WHITE),
child: ListView( child: ListView(
shrinkWrap: shrinkWrap!, shrinkWrap: shrinkWrap!,
primary: primary, primary: primary,

View file

@ -7,14 +7,17 @@ import 'package:flutter/material.dart';
class Utilities { class Utilities {
static const Color BLACK = Color.fromARGB(255, 0, 0, 0); static const Color BLACK = Color.fromARGB(255, 0, 0, 0);
static const Color WHITE = Color.fromARGB(255, 255, 255, 255); static const Color WHITE = Color.fromARGB(255, 255, 255, 255);
static const Color GREY = Color.fromARGB(255, 80, 80, 80);
static String toRGBA(Color color) { static String toRGBA(Color color) {
return 'rgba(${color.r},${color.g},${color.b},${color.a / 255})'; return 'rgba(${color.r},${color.g},${color.b},${color.a / 255})';
} }
static Color textColor(Color color) { static Color textColor(Color color) {
if (color.computeLuminance() > 0.6) { if (color.computeLuminance() > 0.75) {
return BLACK; return BLACK;
} else if (color.computeLuminance() > 0.25) {
return GREY;
} else { } else {
return WHITE; return WHITE;
} }

View file

@ -1,6 +1,6 @@
name: flutter_treeview name: flutter_treeview
description: A tree widget for Flutter that can be used to display nested, hierarchical data. It includes a number of features like styling labels, icons, and import and export utilities. description: A tree widget for Flutter that can be used to display nested, hierarchical data. It includes a number of features like styling labels, icons, and import and export utilities.
version: 1.2.020425+1239 version: 1.2.020525+0254
repository: https://git.zontreck.com/AriasCreations/flutter_treeview repository: https://git.zontreck.com/AriasCreations/flutter_treeview
issue_tracker: https://git.zontreck.com/AriasCreations/flutter_treeview/issues issue_tracker: https://git.zontreck.com/AriasCreations/flutter_treeview/issues
#author: kevinandre.com <kevin@codeninelabs.com> #author: kevinandre.com <kevin@codeninelabs.com>