Merge pull request #3207 from NicKoehler/modern-menubar
Modernized menu bar
2
flutter/assets/actions.svg
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="496.063 521.772 32 32" width="32pt" height="32pt"><g><path d=" M 496.063 521.772 L 528.063 521.772 L 528.063 553.772 L 496.063 553.772 L 496.063 521.772 Z " fill="none"/><path d=" M 513.817 535.858 L 514.687 527.806 C 514.823 526.546 514.408 526.407 513.76 527.496 L 506.904 539.028 C 506.688 539.391 506.855 539.686 507.278 539.686 L 510.309 539.686 L 509.439 547.738 C 509.303 548.998 509.718 549.137 510.366 548.047 L 517.222 536.516 C 517.438 536.153 517.27 535.858 516.848 535.858 L 513.817 535.858 Z " fill="rgb(0,0,0)"/></g></svg>
|
After Width: | Height: | Size: 710 B |
2
flutter/assets/call_end.svg
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="587.811 560.459 32 32" width="32pt" height="32pt"><g><path d=" M 587.811 560.459 L 619.811 560.459 L 619.811 592.459 L 587.811 592.459 L 587.811 560.459 Z " fill="none"/><path d=" M 601.469 580.246 L 597.61 584.104 C 597.212 584.503 596.564 584.503 596.166 584.104 L 596.166 584.104 C 595.767 583.706 595.767 583.058 596.166 582.66 L 600.024 578.801 L 600.024 578.801 L 602.578 576.248 L 602.578 576.248 L 602.578 576.248 L 606.428 572.397 C 606.827 571.998 607.474 571.998 607.873 572.397 L 607.873 572.397 C 608.272 572.796 608.272 573.443 607.873 573.842 L 604.022 577.692 L 606.321 579.991 C 606.791 580.461 607.56 580.467 608.038 580.005 Q 611.127 577.017 614.256 579.888 Q 614.286 579.914 614.345 579.971 C 614.685 580.311 614.872 580.771 614.872 581.247 C 614.876 581.728 614.685 582.183 614.344 582.524 L 612.978 583.89 C 611.935 584.933 610.522 585.52 609.05 585.52 C 607.577 585.52 606.156 584.933 605.117 583.894 C 605.117 583.894 605.117 583.894 605.117 583.894 L 601.469 580.246 Z M 600.546 574.215 L 600.279 573.949 C 599.809 573.479 599.803 572.71 600.265 572.232 Q 603.253 569.142 600.382 566.014 Q 600.356 565.983 600.299 565.925 C 599.958 565.585 599.499 565.398 599.023 565.398 C 598.542 565.394 598.087 565.585 597.746 565.926 L 596.38 567.292 C 595.337 568.335 594.75 569.747 594.75 571.22 C 594.75 572.693 595.337 574.114 596.376 575.153 C 596.376 575.153 596.376 575.153 596.376 575.153 L 597.992 576.769 C 598.316 577.093 598.843 577.093 599.167 576.769 L 600.546 575.391 C 600.87 575.066 600.87 574.54 600.546 574.215 L 600.546 574.215 Z " fill-rule="evenodd" fill="rgb(0,0,0)"/></g></svg>
|
After Width: | Height: | Size: 1.7 KiB |
2
flutter/assets/call_wait.svg
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="587.811 592.459 32 32" width="32pt" height="32pt"><g><path d=" M 587.811 592.459 L 619.811 592.459 L 619.811 624.459 L 587.811 624.459 L 587.811 592.459 Z " fill="none"/><path d=" M 595.385 608.153 C 595.385 608.153 595.385 608.153 595.385 608.153 C 594.348 607.116 593.761 605.696 593.761 604.225 C 593.761 602.754 594.348 601.342 595.389 600.301 L 596.754 598.936 C 597.094 598.596 597.549 598.405 598.029 598.409 C 598.505 598.409 598.964 598.596 599.304 598.935 Q 599.36 598.994 599.387 599.024 Q 602.255 602.149 599.27 605.236 C 598.808 605.713 598.815 606.481 599.284 606.95 L 605.32 612.986 C 605.789 613.455 606.557 613.462 607.034 613 Q 610.12 610.015 613.246 612.883 Q 613.276 612.91 613.335 612.966 C 613.674 613.306 613.861 613.765 613.861 614.241 C 613.865 614.721 613.674 615.176 613.334 615.516 L 611.969 616.881 C 610.928 617.922 609.516 618.509 608.045 618.509 C 606.574 618.509 605.154 617.922 604.117 616.885 C 604.117 616.885 604.117 616.885 604.117 616.885 L 595.385 608.153 Z M 602.811 606.329 C 602.811 605.658 603.355 605.114 604.025 605.114 C 604.695 605.114 605.239 605.658 605.239 606.329 C 605.239 606.999 604.695 607.543 604.025 607.543 C 603.355 607.543 602.811 606.999 602.811 606.329 Z M 606.622 606.329 C 606.622 605.658 607.166 605.114 607.836 605.114 C 608.506 605.114 609.05 605.658 609.05 606.329 C 609.05 606.999 608.506 607.543 607.836 607.543 C 607.166 607.543 606.622 606.999 606.622 606.329 Z M 610.433 606.329 C 610.433 605.658 610.977 605.114 611.647 605.114 C 612.317 605.114 612.861 605.658 612.861 606.329 C 612.861 606.999 612.317 607.543 611.647 607.543 C 610.977 607.543 610.433 606.999 610.433 606.329 Z " fill-rule="evenodd" fill="rgb(0,0,0)"/></g></svg>
|
After Width: | Height: | Size: 1.8 KiB |
@ -1 +1,2 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1675159173189" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1697" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M512.7 797H292.9c-24 0-47.3 4.7-70 12.5-57.3 19.5-108 50.7-155.5 87.4-13 10-28.3 10.9-40.2 1.7-8.2-6.3-12.6-14.7-12.6-25.1 0-133.2-0.2-266.5 0.1-399.7 0.1-36.9 6.7-73.1 17.3-108.6 10.8-36.1 26.1-70.1 47.4-101.2 32.7-47.8 76.2-81.7 131.7-99.5 18-5.8 36.6-9 55.4-10.5 12.2-1 24.4-1.1 36.6-1.1 26.5 0 52.9-0.3 79.4 0.1 72.8 0.9 145.6 0.6 218.5 0.3 41.6-0.2 83.2-0.3 124.9-0.3 28.3 0 56.1 3.9 83 13.1 34.5 11.7 65.3 29.6 92.2 54.3 16 14.8 30.2 31.1 42.6 49 32.4 46.9 52 98.7 61.1 154.8 3.2 19.8 5.1 39.7 4.7 59.8-0.9 50.3-11.7 98.3-33 144-13 27.9-29.5 53.5-49.7 76.6-30.5 34.8-67.3 60.7-110.9 76.7-23.6 8.7-48 13.6-73 15.2-6.2 0.4-12.4 0.5-18.6 0.5H512.7z m-4.6-580.6c0-0.1 0-0.1 0 0-70.5-0.1-141-0.1-211.5-0.1-10.2 0-20.4 0.2-30.6 1.3-26.9 2.8-52.1 10.8-75.3 24.9-26.8 16.2-47.3 38.8-64.1 64.9-15 23.2-25.7 48.3-33.7 74.7-9.3 30.9-15.1 62.6-15.2 94.8-0.3 110.5-0.1 220.9-0.1 331.4 0 1-0.5 2.4 0.5 3 1 0.6 1.9-0.6 2.7-1.1 28.5-18.3 58.1-34.6 89.3-47.9 41.6-17.8 84.6-28.4 130.3-28.3 136.6 0.4 273.2 0.1 409.8 0.2 13.8 0 27.6-0.1 41.3-1.8 20.1-2.5 39.5-7.6 57.9-16.3 36.9-17.4 66.3-43.5 88.8-77.3 40-60.4 55.1-126.7 45.3-198.5-5.3-38.9-17.3-75.7-36.2-110.2-14.1-25.7-31.8-48.7-54.2-67.8-34.8-29.9-75.5-45.2-121.1-45.6-74.6-0.8-149.3-0.3-223.9-0.3z" p-id="1698"></path><path d="M548.2 673.6c-17.5 0.4-34.7-2.3-51.7-6.4-6.4-1.5-11.5-5-16.1-9.6-24.6-24.3-48.9-48.8-72.3-74.3-21.6-23.5-42.6-47.5-61.8-73.1-13.4-17.9-26.4-36.1-35.1-56.9-8.1-19.4-10.5-39.5-7.4-60.4 4.1-27.4 16.7-50.8 33.5-72.3 6.3-8 13.2-15.3 20.8-22 9.3-8.2 20.2-10.3 31.9-5.9 11.8 4.5 18.7 13.4 20.2 26.1 1.2 10.3-2.1 19.1-9.7 26.2-11.8 11.2-21.8 23.7-28.6 38.6-6.7 14.7-8.8 29.7-2.7 45.1 4 10.2 10.3 19.3 16.5 28.4 17.1 24.9 36.8 47.7 56.8 70.2 22.1 24.9 45.6 48.5 68.9 72.3 2.4 2.5 5.1 4.8 7.5 7.3 2.2 2.2 5.1 1.8 7.7 2.1 16.1 2.2 32.1 2.8 48-1.3 13.2-3.4 23.6-10.4 30.9-22.3 12-19.3 38-20.4 51.9-2.7 7.7 9.9 8.5 24.1 1.8 35.4-16 27.1-40.1 43.2-70.2 50.9-4.2 1.1-8.4 1.9-12.7 2.6-9.2 1.5-18.5 2.4-28.1 2zM532.5 315.7c0.1-10.5 10.4-18.2 20.3-15.1 22.8 7.2 43.9 17.5 63.6 31 21.2 14.6 38.1 33.1 51.9 54.6 16.2 25.1 27.7 52.3 34.8 81.2 1 4 1.8 8 2.5 12.1 1.5 8.1-3.6 16.1-11.5 18.2-7.8 2.1-16.1-2-19-9.7-0.8-2.2-1.2-4.7-1.8-7-8-35.7-22.7-68.2-46-96.7-14.3-17.4-32.4-30-52.2-40.2-10.1-5.2-20.6-9.5-31.5-13-7.1-2.2-11.1-8-11.1-15.4zM615.6 513.1c-8.1-0.1-14.1-5.1-15.8-13.6-3.2-15.8-9.1-30.5-17.6-44.1-14.4-23.1-34.1-39.9-59.3-50.2-1.5-0.6-3-0.9-4.5-1.4-8.7-2.9-13.3-11.7-10.6-20.1 2.9-8.8 11.6-13.1 20.5-10.1 38.1 12.8 65.8 38 85.4 72.5 8.5 15 14.3 31.1 17.5 48.2 1.9 9.8-5.5 18.8-15.6 18.8z" p-id="1699"></path></svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="587.811 521.772 32 32" width="32pt" height="32pt"><g><path d=" M 587.811 521.772 L 619.811 521.772 L 619.811 553.772 L 587.811 553.772 L 587.811 521.772 Z " fill="none"/><path d=" M 601.822 543.465 L 609.446 543.465 C 610.491 543.465 611.494 543.051 612.232 542.313 C 612.97 541.575 613.388 540.572 613.388 539.527 L 613.388 532.314 C 613.388 531.269 612.97 530.266 612.232 529.528 C 611.494 528.786 610.491 528.372 609.446 528.372 L 598.176 528.372 C 597.131 528.372 596.128 528.786 595.39 529.528 C 594.652 530.266 594.234 531.269 594.234 532.314 L 594.234 539.527 C 594.234 540.572 594.652 541.575 595.39 542.313 C 595.878 542.8 596.48 543.146 597.135 543.325 L 597.135 545.868 C 597.135 547.281 597.922 547.594 598.892 546.567 L 601.822 543.465 Z M 600.229 535.797 C 600.229 535.797 600.229 535.797 600.229 535.797 C 599.818 535.386 599.585 534.823 599.585 534.24 C 599.585 533.657 599.818 533.098 600.23 532.685 L 600.771 532.144 C 600.906 532.009 601.086 531.934 601.277 531.935 C 601.465 531.935 601.647 532.009 601.782 532.144 Q 601.804 532.167 601.815 532.179 Q 602.951 533.418 601.768 534.641 C 601.585 534.83 601.588 535.134 601.774 535.32 L 604.166 537.712 C 604.352 537.898 604.656 537.901 604.845 537.718 Q 606.069 536.535 607.307 537.672 Q 607.319 537.682 607.342 537.705 C 607.477 537.839 607.551 538.021 607.551 538.21 C 607.553 538.4 607.477 538.58 607.342 538.715 L 606.801 539.256 C 606.388 539.669 605.829 539.901 605.246 539.901 C 604.663 539.901 604.1 539.669 603.689 539.258 C 603.689 539.258 603.689 539.258 603.689 539.258 L 600.229 535.797 Z " fill-rule="evenodd" fill="rgb(0,0,0)"/></g></svg>
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.8 KiB |
2
flutter/assets/close.svg
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="679.559 521.772 32 32" width="32pt" height="32pt"><g><path d=" M 679.559 521.772 L 711.559 521.772 L 711.559 553.772 L 679.559 553.772 L 679.559 521.772 Z " fill="none"/><path d=" M 695.559 536.034 L 690.254 530.729 C 689.774 530.249 688.996 530.249 688.516 530.729 L 688.516 530.729 C 688.036 531.208 688.036 531.987 688.516 532.467 L 693.821 537.772 L 688.516 543.077 C 688.036 543.556 688.036 544.335 688.516 544.815 L 688.516 544.815 C 688.996 545.294 689.774 545.294 690.254 544.815 L 695.559 539.51 L 700.864 544.815 C 701.344 545.294 702.123 545.294 702.602 544.815 L 702.602 544.815 C 703.082 544.335 703.082 543.556 702.602 543.077 L 697.297 537.772 L 702.602 532.467 C 703.082 531.987 703.082 531.208 702.602 530.729 L 702.602 530.729 C 702.123 530.249 701.344 530.249 700.864 530.729 L 695.559 536.034 Z " fill="rgb(0,0,0)"/></g></svg>
|
After Width: | Height: | Size: 1019 B |
2
flutter/assets/display.svg
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="450.189 521.772 32 32" width="32pt" height="32pt"><g><path d=" M 450.189 521.772 L 482.189 521.772 L 482.189 553.772 L 450.189 553.772 L 450.189 521.772 Z " fill="none"/><path d=" M 470.477 545.236 L 473.272 545.236 C 474.635 545.236 475.947 544.692 476.911 543.721 C 477.883 542.757 478.426 541.445 478.426 540.082 L 478.426 531.012 C 478.426 529.649 477.883 528.337 476.911 527.373 C 475.947 526.402 474.635 525.858 473.272 525.858 L 459.106 525.858 L 459.106 525.858 C 457.743 525.858 456.431 526.402 455.467 527.373 C 454.495 528.337 453.951 529.649 453.951 531.012 L 453.951 540.082 C 453.951 541.445 454.495 542.757 455.467 543.721 C 456.431 544.692 457.743 545.236 459.106 545.236 L 461.901 545.236 L 461.901 546.47 C 461.901 548.245 463.342 549.686 465.117 549.686 L 467.261 549.686 C 469.036 549.686 470.477 548.245 470.477 546.47 L 470.477 545.236 L 470.477 545.236 Z M 459.106 529.483 L 473.272 529.483 C 473.678 529.483 474.062 529.649 474.352 529.932 C 474.635 530.222 474.801 530.606 474.801 531.012 L 474.801 540.082 C 474.801 540.488 474.635 540.872 474.352 541.162 C 474.062 541.445 473.678 541.611 473.272 541.611 L 459.106 541.611 C 458.7 541.611 458.316 541.445 458.026 541.162 C 457.743 540.872 457.576 540.488 457.576 540.082 L 457.576 531.012 C 457.576 530.606 457.743 530.222 458.026 529.932 C 458.316 529.649 458.7 529.483 459.106 529.483 L 459.106 529.483 L 459.106 529.483 Z " fill-rule="evenodd" fill="rgb(0,0,0)"/></g></svg>
|
After Width: | Height: | Size: 1.6 KiB |
2
flutter/assets/fullscreen.svg
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="404.315 521.772 32 32" width="32pt" height="32pt"><g><path d=" M 411.985 533.763 C 411.985 534.241 411.797 534.698 411.456 535.039 C 411.115 535.379 410.658 535.575 410.173 535.575 C 409.694 535.575 409.23 535.379 408.889 535.039 C 408.556 534.698 408.36 534.241 408.36 533.763 L 408.36 530.957 C 408.36 529.645 408.882 528.391 409.81 527.463 C 410.738 526.535 411.992 526.013 413.304 526.013 L 416.103 526.013 C 416.589 526.013 417.045 526.209 417.386 526.549 C 417.727 526.883 417.915 527.347 417.915 527.825 C 417.915 528.311 417.727 528.768 417.386 529.108 C 417.045 529.449 416.589 529.638 416.103 529.638 L 413.304 529.638 C 412.956 529.638 412.616 529.775 412.369 530.029 C 412.123 530.276 411.985 530.609 411.985 530.957 L 411.985 533.763 L 411.985 533.763 L 411.985 533.763 L 411.985 533.763 Z M 416.103 545.906 C 416.589 545.906 417.045 546.094 417.386 546.435 C 417.727 546.776 417.915 547.233 417.915 547.718 C 417.915 548.197 417.727 548.661 417.386 548.994 C 417.045 549.335 416.589 549.531 416.103 549.531 L 413.304 549.531 C 411.992 549.531 410.738 549.009 409.81 548.081 C 408.882 547.153 408.36 545.899 408.36 544.586 L 408.36 541.781 C 408.36 541.302 408.556 540.846 408.889 540.505 C 409.23 540.164 409.694 539.968 410.173 539.968 C 410.658 539.968 411.115 540.164 411.456 540.505 C 411.797 540.846 411.985 541.302 411.985 541.781 L 411.985 544.586 C 411.985 544.934 412.123 545.268 412.369 545.514 C 412.616 545.768 412.956 545.906 413.304 545.906 L 416.103 545.906 L 416.103 545.906 L 416.103 545.906 Z M 424.527 529.638 C 424.041 529.638 423.584 529.449 423.244 529.108 C 422.903 528.768 422.715 528.311 422.715 527.825 C 422.715 527.347 422.903 526.883 423.244 526.549 C 423.584 526.209 424.041 526.013 424.527 526.013 L 427.325 526.013 C 428.637 526.013 429.892 526.535 430.82 527.463 C 431.748 528.391 432.27 529.645 432.27 530.957 L 432.27 533.763 C 432.27 534.241 432.074 534.698 431.74 535.039 C 431.4 535.379 430.936 535.575 430.457 535.575 C 429.971 535.575 429.515 535.379 429.174 535.039 C 428.833 534.698 428.645 534.241 428.645 533.763 L 428.645 530.957 C 428.645 530.609 428.507 530.276 428.26 530.029 C 428.014 529.775 427.673 529.638 427.325 529.638 L 424.527 529.638 L 424.527 529.638 Z M 428.645 541.781 C 428.645 541.302 428.833 540.846 429.174 540.505 C 429.515 540.164 429.971 539.968 430.457 539.968 C 430.936 539.968 431.4 540.164 431.74 540.505 C 432.074 540.846 432.27 541.302 432.27 541.781 L 432.27 544.586 C 432.27 545.899 431.748 547.153 430.82 548.081 C 429.892 549.009 428.637 549.531 427.325 549.531 L 424.527 549.531 C 424.041 549.531 423.584 549.335 423.244 548.994 C 422.903 548.661 422.715 548.197 422.715 547.718 C 422.715 547.233 422.903 546.776 423.244 546.435 C 423.584 546.094 424.041 545.906 424.527 545.906 L 427.325 545.906 C 427.673 545.906 428.014 545.768 428.26 545.514 C 428.507 545.268 428.645 544.934 428.645 544.586 L 428.645 541.781 Z " fill-rule="evenodd" fill="rgb(0,0,0)"/><path d=" M 404.315 521.772 L 436.315 521.772 L 436.315 553.772 L 404.315 553.772 L 404.315 521.772 Z " fill="none"/></g></svg>
|
After Width: | Height: | Size: 3.2 KiB |
2
flutter/assets/fullscreen_exit.svg
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="404.315 560.459 32 32" width="32pt" height="32pt"><g><path d=" M 404.315 560.459 L 436.315 560.459 L 436.315 592.459 L 404.315 592.459 L 404.315 560.459 Z " fill="none"/><path d=" M 414.29 566.512 C 414.29 566.034 414.479 565.577 414.82 565.237 C 415.16 564.896 415.617 564.7 416.103 564.7 C 416.581 564.7 417.045 564.896 417.386 565.237 C 417.719 565.577 417.915 566.034 417.915 566.512 L 417.915 569.318 C 417.915 570.63 417.393 571.884 416.465 572.812 C 415.537 573.74 414.283 574.262 412.971 574.262 L 410.173 574.262 C 409.687 574.262 409.23 574.067 408.889 573.726 C 408.549 573.392 408.36 572.928 408.36 572.45 C 408.36 571.964 408.549 571.507 408.889 571.167 C 409.23 570.826 409.687 570.637 410.173 570.637 L 412.971 570.637 C 413.319 570.637 413.66 570.5 413.906 570.246 C 414.153 570 414.29 569.666 414.29 569.318 L 414.29 566.512 L 414.29 566.512 L 414.29 566.512 L 414.29 566.512 L 414.29 566.512 L 414.29 566.512 L 414.29 566.512 Z M 410.173 582.28 C 409.687 582.28 409.23 582.092 408.889 581.751 C 408.549 581.41 408.36 580.954 408.36 580.468 C 408.36 579.99 408.549 579.526 408.889 579.192 C 409.23 578.851 409.687 578.656 410.173 578.656 L 412.971 578.656 C 414.283 578.656 415.537 579.178 416.465 580.105 C 417.393 581.033 417.915 582.288 417.915 583.6 L 417.915 586.405 C 417.915 586.884 417.719 587.341 417.386 587.681 C 417.045 588.022 416.581 588.218 416.103 588.218 C 415.617 588.218 415.16 588.022 414.82 587.681 C 414.479 587.341 414.29 586.884 414.29 586.405 L 414.29 583.6 C 414.29 583.252 414.153 582.918 413.906 582.672 C 413.66 582.418 413.319 582.28 412.971 582.28 L 410.173 582.28 L 410.173 582.28 L 410.173 582.28 L 410.173 582.28 L 410.173 582.28 Z M 430.457 570.637 C 430.943 570.637 431.4 570.826 431.74 571.167 C 432.081 571.507 432.27 571.964 432.27 572.45 C 432.27 572.928 432.081 573.392 431.74 573.726 C 431.4 574.067 430.943 574.262 430.457 574.262 L 427.659 574.262 C 426.347 574.262 425.092 573.74 424.164 572.812 C 423.236 571.884 422.715 570.63 422.715 569.318 L 422.715 566.512 C 422.715 566.034 422.91 565.577 423.244 565.237 C 423.584 564.896 424.048 564.7 424.527 564.7 C 425.013 564.7 425.469 564.896 425.81 565.237 C 426.151 565.577 426.339 566.034 426.339 566.512 L 426.339 569.318 C 426.339 569.666 426.477 570 426.724 570.246 C 426.97 570.5 427.311 570.637 427.659 570.637 L 430.457 570.637 L 430.457 570.637 L 430.457 570.637 Z M 426.339 586.405 C 426.339 586.884 426.151 587.341 425.81 587.681 C 425.469 588.022 425.013 588.218 424.527 588.218 C 424.048 588.218 423.584 588.022 423.244 587.681 C 422.91 587.341 422.715 586.884 422.715 586.405 L 422.715 583.6 C 422.715 582.288 423.236 581.033 424.164 580.105 C 425.092 579.178 426.347 578.656 427.659 578.656 L 430.457 578.656 C 430.943 578.656 431.4 578.851 431.74 579.192 C 432.081 579.526 432.27 579.99 432.27 580.468 C 432.27 580.954 432.081 581.41 431.74 581.751 C 431.4 582.092 430.943 582.28 430.457 582.28 L 427.659 582.28 C 427.311 582.28 426.97 582.418 426.724 582.672 C 426.477 582.918 426.339 583.252 426.339 583.6 L 426.339 586.405 Z " fill-rule="evenodd" fill="rgb(0,0,0)"/></g></svg>
|
After Width: | Height: | Size: 3.2 KiB |
2
flutter/assets/keyboard.svg
Normal file
After Width: | Height: | Size: 5.0 KiB |
2
flutter/assets/pinned.svg
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="358.441 560.459 32 32" width="32pt" height="32pt"><g><path d=" M 358.441 560.459 L 390.441 560.459 L 390.441 592.459 L 358.441 592.459 L 358.441 560.459 Z " fill="none"/><path d=" M 371.985 579.94 L 366.794 585.131 C 366.512 585.413 366.052 585.413 365.769 585.131 L 365.769 585.131 C 365.486 584.848 365.486 584.388 365.769 584.105 L 370.96 578.915 L 368.627 576.582 C 367.495 575.451 367.872 574.43 369.468 574.305 L 370.917 574.191 C 371.316 574.159 371.869 573.904 372.152 573.621 L 375.061 570.713 C 375.344 570.43 375.343 569.971 375.061 569.688 L 374.804 569.431 C 374.38 569.007 374.38 568.318 374.804 567.893 L 374.804 567.893 C 375.229 567.469 375.918 567.469 376.342 567.893 L 383.006 574.558 C 383.431 574.982 383.431 575.671 383.006 576.095 L 383.006 576.095 C 382.582 576.52 381.893 576.52 381.468 576.095 L 381.212 575.839 C 380.929 575.556 380.47 575.556 380.187 575.839 L 377.279 578.747 C 376.996 579.03 376.741 579.584 376.709 579.983 L 376.595 581.432 C 376.47 583.028 375.449 583.404 374.317 582.273 L 371.985 579.94 Z " fill="rgb(0,0,0)"/></g></svg>
|
After Width: | Height: | Size: 1.2 KiB |
2
flutter/assets/rec.svg
Normal file
After Width: | Height: | Size: 8.0 KiB |
2
flutter/assets/unpinned.svg
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="358.441 521.772 32 32" width="32pt" height="32pt"><g><path d=" M 358.441 521.772 L 390.441 521.772 L 390.441 553.772 L 358.441 553.772 L 358.441 521.772 Z " fill="none"/><path d=" M 375.166 539.539 L 375.166 546.879 C 375.166 547.279 374.841 547.604 374.441 547.604 L 374.441 547.604 C 374.041 547.604 373.716 547.279 373.716 546.879 L 373.716 539.539 L 370.417 539.539 C 368.817 539.539 368.361 538.551 369.401 537.334 L 370.345 536.228 C 370.605 535.924 370.816 535.352 370.816 534.952 L 370.816 530.839 C 370.816 530.439 370.491 530.114 370.091 530.114 L 369.729 530.114 C 369.128 530.114 368.641 529.627 368.641 529.027 L 368.641 529.027 C 368.641 528.427 369.128 527.939 369.729 527.939 L 379.153 527.939 C 379.753 527.939 380.241 528.427 380.241 529.027 L 380.241 529.027 C 380.241 529.627 379.753 530.114 379.153 530.114 L 378.791 530.114 C 378.39 530.114 378.066 530.439 378.066 530.839 L 378.066 534.952 C 378.066 535.352 378.277 535.924 378.536 536.228 L 379.481 537.334 C 380.52 538.551 380.065 539.539 378.464 539.539 L 375.166 539.539 Z " fill="rgb(0,0,0)"/></g></svg>
|
After Width: | Height: | Size: 1.2 KiB |
@ -22,7 +22,10 @@ import 'package:bot_toast/bot_toast.dart';
|
||||
import '../../models/platform_model.dart';
|
||||
|
||||
class _MenuTheme {
|
||||
static const Color commonColor = MyTheme.accent;
|
||||
static const Color blueColor = MyTheme.button;
|
||||
static const Color hoverBlueColor = MyTheme.accent;
|
||||
static const Color redColor = Colors.redAccent;
|
||||
static const Color hoverRedColor = Colors.red;
|
||||
// kMinInteractiveDimension
|
||||
static const double height = 20.0;
|
||||
static const double dividerHeight = 12.0;
|
||||
@ -280,7 +283,7 @@ class _ConnectionTabPageState extends State<ConnectionTabPage> {
|
||||
.map((entry) => entry.build(
|
||||
context,
|
||||
const MenuConfig(
|
||||
commonColor: _MenuTheme.commonColor,
|
||||
commonColor: _MenuTheme.blueColor,
|
||||
height: _MenuTheme.height,
|
||||
dividerHeight: _MenuTheme.dividerHeight,
|
||||
)))
|
||||
|
@ -5,6 +5,8 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hbb/common.dart';
|
||||
import 'package:flutter_hbb/desktop/widgets/menu_button.dart';
|
||||
|
||||
// Examples can assume:
|
||||
// enum Commands { heroAndScholar, hurricaneCame }
|
||||
@ -1391,22 +1393,20 @@ class PopupMenuButtonState<T> extends State<PopupMenuButton<T>> {
|
||||
onTap: widget.enabled ? showButtonMenu : null,
|
||||
onHover: widget.onHover,
|
||||
canRequestFocus: _canRequestFocus,
|
||||
radius: widget.splashRadius,
|
||||
enableFeedback: enableFeedback,
|
||||
child: widget.child,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return IconButton(
|
||||
return MenuButton(
|
||||
icon: widget.icon ?? Icon(Icons.adaptive.more),
|
||||
padding: widget.padding,
|
||||
splashRadius: widget.splashRadius,
|
||||
iconSize: widget.iconSize ?? iconTheme.size ?? _kDefaultIconSize,
|
||||
tooltip:
|
||||
widget.tooltip ?? MaterialLocalizations.of(context).showMenuTooltip,
|
||||
onPressed: widget.enabled ? showButtonMenu : null,
|
||||
enableFeedback: enableFeedback,
|
||||
color: MyTheme.button,
|
||||
hoverColor: MyTheme.accent,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
61
flutter/lib/desktop/widgets/menu_button.dart
Normal file
@ -0,0 +1,61 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class MenuButton extends StatefulWidget {
|
||||
final GestureTapCallback? onPressed;
|
||||
final Color color;
|
||||
final Color hoverColor;
|
||||
final Color? splashColor;
|
||||
final Widget icon;
|
||||
final String? tooltip;
|
||||
final EdgeInsetsGeometry padding;
|
||||
final bool enableFeedback;
|
||||
const MenuButton({
|
||||
super.key,
|
||||
required this.onPressed,
|
||||
required this.color,
|
||||
required this.hoverColor,
|
||||
required this.icon,
|
||||
this.splashColor,
|
||||
this.tooltip = "",
|
||||
this.padding = const EdgeInsets.symmetric(horizontal: 3, vertical: 6),
|
||||
this.enableFeedback = true,
|
||||
});
|
||||
|
||||
@override
|
||||
State<MenuButton> createState() => _MenuButtonState();
|
||||
}
|
||||
|
||||
class _MenuButtonState extends State<MenuButton> {
|
||||
bool _isHover = false;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: widget.padding,
|
||||
child: Tooltip(
|
||||
message: widget.tooltip,
|
||||
child: Material(
|
||||
type: MaterialType.transparency,
|
||||
child: Ink(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(5),
|
||||
color: _isHover ? widget.hoverColor : widget.color,
|
||||
),
|
||||
child: InkWell(
|
||||
onHover: (val) {
|
||||
setState(() {
|
||||
_isHover = val;
|
||||
});
|
||||
},
|
||||
borderRadius: BorderRadius.circular(5),
|
||||
splashColor: widget.splashColor,
|
||||
enableFeedback: widget.enableFeedback,
|
||||
onTap: widget.onPressed,
|
||||
child: widget.icon,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
@ -5,6 +5,7 @@ import 'dart:ui' as ui;
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_hbb/desktop/widgets/menu_button.dart';
|
||||
import 'package:flutter_hbb/models/chat_model.dart';
|
||||
import 'package:flutter_hbb/models/state_model.dart';
|
||||
import 'package:flutter_hbb/consts.dart';
|
||||
@ -94,7 +95,10 @@ class MenubarState {
|
||||
}
|
||||
|
||||
class _MenubarTheme {
|
||||
static const Color commonColor = MyTheme.accent;
|
||||
static const Color blueColor = MyTheme.button;
|
||||
static const Color hoverBlueColor = MyTheme.accent;
|
||||
static const Color redColor = Colors.redAccent;
|
||||
static const Color hoverRedColor = Colors.red;
|
||||
// kMinInteractiveDimension
|
||||
static const double height = 20.0;
|
||||
static const double dividerHeight = 12.0;
|
||||
@ -411,7 +415,7 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
if (widget.ffi.ffiModel.isPeerAndroid) {
|
||||
menubarItems.add(IconButton(
|
||||
tooltip: translate('Mobile Actions'),
|
||||
color: _MenubarTheme.commonColor,
|
||||
color: _MenubarTheme.blueColor,
|
||||
icon: const Icon(Icons.build),
|
||||
onPressed: () {
|
||||
widget.ffi.dialogManager
|
||||
@ -431,55 +435,65 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
menubarItems.add(_buildRecording(context));
|
||||
menubarItems.add(_buildClose(context));
|
||||
return PopupMenuTheme(
|
||||
data: const PopupMenuThemeData(
|
||||
textStyle: TextStyle(color: _MenubarTheme.commonColor)),
|
||||
child: Column(mainAxisSize: MainAxisSize.min, children: [
|
||||
data: const PopupMenuThemeData(
|
||||
textStyle: TextStyle(color: _MenubarTheme.blueColor)),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
border: Border.all(color: MyTheme.border),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.vertical(
|
||||
bottom: Radius.circular(10),
|
||||
),
|
||||
child: SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: menubarItems,
|
||||
),
|
||||
)),
|
||||
),
|
||||
child: SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
SizedBox(width: 3),
|
||||
...menubarItems,
|
||||
SizedBox(width: 3)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
_buildDraggableShowHide(context),
|
||||
]));
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildPinMenubar(BuildContext context) {
|
||||
return Obx(() => IconButton(
|
||||
tooltip: translate(pin ? 'Unpin menubar' : 'Pin menubar'),
|
||||
onPressed: () {
|
||||
widget.state.switchPin();
|
||||
},
|
||||
icon: Obx(() => Transform.rotate(
|
||||
angle: pin ? math.pi / 4 : 0,
|
||||
child: Icon(
|
||||
Icons.push_pin,
|
||||
color: pin ? _MenubarTheme.commonColor : Colors.grey,
|
||||
))),
|
||||
));
|
||||
return Obx(
|
||||
() => MenuButton(
|
||||
tooltip: translate(pin ? 'Unpin menubar' : 'Pin menubar'),
|
||||
onPressed: () {
|
||||
widget.state.switchPin();
|
||||
},
|
||||
icon: SvgPicture.asset(
|
||||
pin ? "assets/pinned.svg" : "assets/unpinned.svg",
|
||||
color: Colors.white,
|
||||
),
|
||||
color: pin ? _MenubarTheme.blueColor : Colors.grey[800]!,
|
||||
hoverColor: pin ? _MenubarTheme.hoverBlueColor : Colors.grey[850]!,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildFullscreen(BuildContext context) {
|
||||
return IconButton(
|
||||
return MenuButton(
|
||||
tooltip: translate(isFullscreen ? 'Exit Fullscreen' : 'Fullscreen'),
|
||||
onPressed: () {
|
||||
_setFullscreen(!isFullscreen);
|
||||
},
|
||||
icon: isFullscreen
|
||||
? const Icon(
|
||||
Icons.fullscreen_exit,
|
||||
color: _MenubarTheme.commonColor,
|
||||
)
|
||||
: const Icon(
|
||||
Icons.fullscreen,
|
||||
color: _MenubarTheme.commonColor,
|
||||
),
|
||||
icon: SvgPicture.asset(
|
||||
isFullscreen ? "assets/fullscreen_exit.svg" : "assets/fullscreen.svg",
|
||||
color: Colors.white,
|
||||
),
|
||||
color: _MenubarTheme.blueColor,
|
||||
hoverColor: _MenubarTheme.hoverBlueColor,
|
||||
);
|
||||
}
|
||||
|
||||
@ -487,14 +501,13 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
final pi = widget.ffi.ffiModel.pi;
|
||||
return mod_menu.PopupMenuButton(
|
||||
tooltip: translate('Select Monitor'),
|
||||
padding: EdgeInsets.zero,
|
||||
position: mod_menu.PopupMenuPosition.under,
|
||||
icon: Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
const Icon(
|
||||
Icons.personal_video,
|
||||
color: _MenubarTheme.commonColor,
|
||||
SvgPicture.asset(
|
||||
"assets/display.svg",
|
||||
color: Colors.white,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(bottom: 3.9),
|
||||
@ -502,8 +515,7 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
RxInt display = CurrentDisplayState.find(widget.id);
|
||||
return Text(
|
||||
'${display.value + 1}/${pi.displays.length}',
|
||||
style: const TextStyle(
|
||||
color: _MenubarTheme.commonColor, fontSize: 8),
|
||||
style: const TextStyle(color: Colors.white, fontSize: 8),
|
||||
);
|
||||
}),
|
||||
)
|
||||
@ -516,23 +528,25 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
const Icon(
|
||||
Icons.personal_video,
|
||||
color: _MenubarTheme.commonColor,
|
||||
SvgPicture.asset(
|
||||
"assets/display.svg",
|
||||
color: Colors.white,
|
||||
),
|
||||
TextButton(
|
||||
child: Container(
|
||||
alignment: AlignmentDirectional.center,
|
||||
constraints:
|
||||
const BoxConstraints(minHeight: _MenubarTheme.height),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 2.5),
|
||||
child: Text(
|
||||
(i + 1).toString(),
|
||||
style:
|
||||
const TextStyle(color: _MenubarTheme.commonColor),
|
||||
alignment: AlignmentDirectional.center,
|
||||
constraints:
|
||||
const BoxConstraints(minHeight: _MenubarTheme.height),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 2.5),
|
||||
child: Text(
|
||||
(i + 1).toString(),
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
),
|
||||
)),
|
||||
),
|
||||
),
|
||||
),
|
||||
onPressed: () {
|
||||
if (Navigator.canPop(context)) {
|
||||
Navigator.pop(context);
|
||||
@ -567,9 +581,9 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
Widget _buildControl(BuildContext context) {
|
||||
return mod_menu.PopupMenuButton(
|
||||
padding: EdgeInsets.zero,
|
||||
icon: const Icon(
|
||||
Icons.bolt,
|
||||
color: _MenubarTheme.commonColor,
|
||||
icon: SvgPicture.asset(
|
||||
"assets/actions.svg",
|
||||
color: Colors.white,
|
||||
),
|
||||
tooltip: translate('Control Actions'),
|
||||
position: mod_menu.PopupMenuPosition.under,
|
||||
@ -577,7 +591,7 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
.map((entry) => entry.build(
|
||||
context,
|
||||
const MenuConfig(
|
||||
commonColor: _MenubarTheme.commonColor,
|
||||
commonColor: _MenubarTheme.blueColor,
|
||||
height: _MenubarTheme.height,
|
||||
dividerHeight: _MenubarTheme.dividerHeight,
|
||||
)))
|
||||
@ -599,9 +613,9 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
final remoteCount = RemoteCountState.find().value;
|
||||
return mod_menu.PopupMenuButton(
|
||||
padding: EdgeInsets.zero,
|
||||
icon: const Icon(
|
||||
Icons.tv,
|
||||
color: _MenubarTheme.commonColor,
|
||||
icon: SvgPicture.asset(
|
||||
"assets/display.svg",
|
||||
color: Colors.white,
|
||||
),
|
||||
tooltip: translate('Display Settings'),
|
||||
position: mod_menu.PopupMenuPosition.under,
|
||||
@ -611,7 +625,7 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
.map((entry) => entry.build(
|
||||
context,
|
||||
const MenuConfig(
|
||||
commonColor: _MenubarTheme.commonColor,
|
||||
commonColor: _MenubarTheme.blueColor,
|
||||
height: _MenubarTheme.height,
|
||||
dividerHeight: _MenubarTheme.dividerHeight,
|
||||
)))
|
||||
@ -632,9 +646,9 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
}
|
||||
return mod_menu.PopupMenuButton(
|
||||
padding: EdgeInsets.zero,
|
||||
icon: const Icon(
|
||||
Icons.keyboard,
|
||||
color: _MenubarTheme.commonColor,
|
||||
icon: SvgPicture.asset(
|
||||
"assets/keyboard.svg",
|
||||
color: Colors.white,
|
||||
),
|
||||
tooltip: translate('Keyboard Settings'),
|
||||
position: mod_menu.PopupMenuPosition.under,
|
||||
@ -642,7 +656,7 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
.map((entry) => entry.build(
|
||||
context,
|
||||
const MenuConfig(
|
||||
commonColor: _MenubarTheme.commonColor,
|
||||
commonColor: _MenubarTheme.blueColor,
|
||||
height: _MenubarTheme.height,
|
||||
dividerHeight: _MenubarTheme.dividerHeight,
|
||||
)))
|
||||
@ -655,23 +669,22 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
return Consumer<FfiModel>(builder: ((context, value, child) {
|
||||
if (value.permissions['recording'] != false) {
|
||||
return Consumer<RecordingModel>(
|
||||
builder: (context, value, child) => IconButton(
|
||||
tooltip: value.start
|
||||
? translate('Stop session recording')
|
||||
: translate('Start session recording'),
|
||||
onPressed: () => value.toggle(),
|
||||
icon: value.start
|
||||
? Icon(
|
||||
Icons.pause_circle_filled,
|
||||
color: _MenubarTheme.commonColor,
|
||||
)
|
||||
: SvgPicture.asset(
|
||||
"assets/record_screen.svg",
|
||||
color: _MenubarTheme.commonColor,
|
||||
width: Theme.of(context).iconTheme.size ?? 22.0,
|
||||
height: Theme.of(context).iconTheme.size ?? 22.0,
|
||||
),
|
||||
));
|
||||
builder: (context, value, child) => MenuButton(
|
||||
tooltip: value.start
|
||||
? translate('Stop session recording')
|
||||
: translate('Start session recording'),
|
||||
onPressed: () => value.toggle(),
|
||||
icon: SvgPicture.asset(
|
||||
"assets/rec.svg",
|
||||
color: Colors.white,
|
||||
),
|
||||
color:
|
||||
value.start ? _MenubarTheme.redColor : _MenubarTheme.blueColor,
|
||||
hoverColor: value.start
|
||||
? _MenubarTheme.hoverRedColor
|
||||
: _MenubarTheme.hoverBlueColor,
|
||||
),
|
||||
);
|
||||
} else {
|
||||
return Offstage();
|
||||
}
|
||||
@ -679,15 +692,17 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
}
|
||||
|
||||
Widget _buildClose(BuildContext context) {
|
||||
return IconButton(
|
||||
return MenuButton(
|
||||
tooltip: translate('Close'),
|
||||
onPressed: () {
|
||||
clientClose(widget.id, widget.ffi.dialogManager);
|
||||
},
|
||||
icon: const Icon(
|
||||
Icons.close,
|
||||
color: _MenubarTheme.commonColor,
|
||||
icon: SvgPicture.asset(
|
||||
"assets/close.svg",
|
||||
color: Colors.white,
|
||||
),
|
||||
color: _MenubarTheme.redColor,
|
||||
hoverColor: _MenubarTheme.hoverRedColor,
|
||||
);
|
||||
}
|
||||
|
||||
@ -699,9 +714,7 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
padding: EdgeInsets.zero,
|
||||
icon: SvgPicture.asset(
|
||||
"assets/chat.svg",
|
||||
color: _MenubarTheme.commonColor,
|
||||
width: Theme.of(context).iconTheme.size ?? 24.0,
|
||||
height: Theme.of(context).iconTheme.size ?? 24.0,
|
||||
color: Colors.white,
|
||||
),
|
||||
tooltip: translate('Chat'),
|
||||
position: mod_menu.PopupMenuPosition.under,
|
||||
@ -709,7 +722,7 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
.map((entry) => entry.build(
|
||||
context,
|
||||
const MenuConfig(
|
||||
commonColor: _MenubarTheme.commonColor,
|
||||
commonColor: _MenubarTheme.blueColor,
|
||||
height: _MenubarTheme.height,
|
||||
dividerHeight: _MenubarTheme.dividerHeight,
|
||||
)))
|
||||
@ -721,26 +734,15 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
Widget _getVoiceCallIcon() {
|
||||
switch (widget.ffi.chatModel.voiceCallStatus.value) {
|
||||
case VoiceCallStatus.waitingForResponse:
|
||||
return IconButton(
|
||||
onPressed: () {
|
||||
widget.ffi.chatModel.closeVoiceCall(widget.id);
|
||||
},
|
||||
icon: SvgPicture.asset(
|
||||
"assets/voice_call_waiting.svg",
|
||||
color: Colors.red,
|
||||
width: Theme.of(context).iconTheme.size ?? 20.0,
|
||||
height: Theme.of(context).iconTheme.size ?? 20.0,
|
||||
));
|
||||
return SvgPicture.asset(
|
||||
"assets/call_wait.svg",
|
||||
color: Colors.white,
|
||||
);
|
||||
|
||||
case VoiceCallStatus.connected:
|
||||
return IconButton(
|
||||
onPressed: () {
|
||||
widget.ffi.chatModel.closeVoiceCall(widget.id);
|
||||
},
|
||||
icon: Icon(
|
||||
Icons.phone_disabled_rounded,
|
||||
color: Colors.red,
|
||||
size: Theme.of(context).iconTheme.size ?? 22.0,
|
||||
),
|
||||
return SvgPicture.asset(
|
||||
"assets/call_end.svg",
|
||||
color: Colors.white,
|
||||
);
|
||||
default:
|
||||
return const Offstage();
|
||||
@ -764,11 +766,12 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
||||
final tooltipText = _getVoiceCallTooltip();
|
||||
return tooltipText == null
|
||||
? const Offstage()
|
||||
: IconButton(
|
||||
padding: EdgeInsets.zero,
|
||||
: MenuButton(
|
||||
icon: _getVoiceCallIcon(),
|
||||
tooltip: translate(tooltipText),
|
||||
onPressed: () => bind.sessionRequestVoiceCall(id: widget.id),
|
||||
color: _MenubarTheme.redColor,
|
||||
hoverColor: _MenubarTheme.hoverRedColor,
|
||||
);
|
||||
},
|
||||
);
|
||||
@ -1754,7 +1757,7 @@ class _DraggableShowHideState extends State<_DraggableShowHide> {
|
||||
child: Icon(
|
||||
Icons.drag_indicator,
|
||||
size: 20,
|
||||
color: Colors.grey,
|
||||
color: Colors.grey[800],
|
||||
),
|
||||
feedback: widget,
|
||||
onDragStarted: (() {
|
||||
@ -1807,7 +1810,9 @@ class _DraggableShowHideState extends State<_DraggableShowHide> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
border: Border.all(color: MyTheme.border),
|
||||
borderRadius: BorderRadius.vertical(
|
||||
bottom: Radius.circular(5),
|
||||
),
|
||||
),
|
||||
child: SizedBox(
|
||||
height: 20,
|
||||
|