2757{
2758 wxSize size = GetSize();
2759 dc.SetPen(wxPen(*wxTRANSPARENT_PEN));
2760
2761
2762 if (wxGetApp().dark_mode())
2763 {
2765 }
2766 else
2767 {
2769 }
2770 dc.DrawRoundedRectangle(0, 0, size.x, size.y, 0);
2771
2772
2773 auto color = *wxWHITE;
2775 dc.DrawRoundedRectangle(0, 0, size.x, size.y, FromDIP(3));
2776
2778
2781 for (std::vector<Caninfo>::iterator iter =
m_amsinfo.cans.begin(); iter !=
m_amsinfo.cans.end(); iter++) {
2782
2783 dc.SetPen(wxPen(*wxTRANSPARENT_PEN));
2784
2785 if (wxWindow::IsThisEnabled()) {
2786 wxColour color = iter->material_colour;
2788 dc.SetBrush(wxBrush(color));
2789 }
2790 else {
2792 }
2793 if (iter->material_cols.size() > 1) {
2795
2797 if (iter->ctype == 0) {
2798 for (int i = 0; i < iter->material_cols.size() - 1; i++) {
2801 }
2802
2805 fleft += gwidth;
2806 }
2807 }
2808 else {
2809 int cols_size = iter->material_cols.size();
2810 for (int i = 0; i < cols_size; i++) {
2811 dc.SetBrush(wxBrush(iter->material_cols[i]));
2814 }
2815 }
2816 }
2817 else {
2818 if (iter->material_colour.Alpha() == 0) {
2819 if (wxGetApp().dark_mode())
2820 {
2822 }
2823 else
2824 {
2826 }
2827 }
2828 else {
2831 dc.SetPen(wxPen(wxColor(0, 0, 0)));
2832 dc.DrawLine(rect.GetRight() - FromDIP(1), rect.GetTop() + FromDIP(1), rect.GetLeft() + FromDIP(1), rect.GetBottom() - FromDIP(1));
2833 }
2834 else {
2835 dc.DrawRoundedRectangle(rect, 2);
2836 }
2837 }
2838 }
2840 }
2841
2842
2843 if (wxGetApp().dark_mode())
2844 {
2846 }
2847 else
2848 {
2850 }
2851
2852 }
2853
2854
2857
2858
2859
2860
2861
2862 if (iter.material_cols.size() > 1)
2863 {
2865 const wxRect rect((size.x - swatch_size.x) / 2, (size.y - swatch_size.y) / 2, swatch_size.x, swatch_size.y);
2867 std::unique_ptr<wxGraphicsContext> owned_gc;
2868 wxGraphicsContext* gc = dc.GetGraphicsContext();
2869 if (!gc) {
2870 owned_gc.reset(wxGraphicsContext::CreateFromUnknownDC(dc));
2871 gc = owned_gc.get();
2872 }
2873 if (gc) {
2874 wxGraphicsGradientStops stops(iter.material_cols.front(), iter.material_cols.back());
2875 const size_t count = iter.material_cols.size();
2876 if (iter.ctype == 0) {
2877 for (
size_t i = 1; i + 1 <
count; ++i)
2878 stops.Add(iter.material_cols[i],
static_cast<float>(i) / (
count - 1));
2879 } else {
2880
2881 for (
size_t i = 1; i <
count; ++i) {
2882 const float position =
static_cast<float>(i) /
count;
2883 stops.Add(iter.material_cols[i - 1], position);
2884 stops.Add(iter.material_cols[i], position);
2885 }
2886 }
2887 gc->PushState();
2888 gc->SetPen(*wxTRANSPARENT_PEN);
2889 gc->SetBrush(gc->CreateLinearGradientBrush(rect.x, rect.y, rect.x + rect.width, rect.y, stops));
2890 gc->DrawRoundedRectangle(rect.x, rect.y, rect.width, rect.height, radius);
2891 gc->PopState();
2892 } else {
2893 dc.SetPen(*wxTRANSPARENT_PEN);
2894 dc.SetBrush(iter.material_colour);
2895 dc.DrawRoundedRectangle(rect, radius);
2896 }
2897 }
2898 else {
2899 dc.SetPen(wxPen(*wxTRANSPARENT_PEN));
2900 dc.SetBrush(iter.material_colour);
2901
2904 dc.DrawRoundedRectangle(rect, 0);
2905 } else {
2907 dc.DrawRoundedRectangle(rect, FromDIP(3));
2908 }
2909 }
2910
2912
2913 if (wxGetApp().dark_mode())
2914 {
2916 }
2917 else
2918 {
2920 }
2921
2922 }
2923 if (((iter.material_colour.Red() >= 238 && iter.material_colour.Green() >= 238 && iter.material_colour.Blue() >= 238)
2926 dc.SetBrush(wxBrush(*wxTRANSPARENT_BRUSH));
2928 dc.DrawRoundedRectangle(rect, FromDIP(3));
2929 }
2930 }
2933
2935 dc.SetPen(wxPen(border_colour, 1));
2936 dc.SetBrush(wxBrush(*wxTRANSPARENT_BRUSH));
2937 dc.DrawRoundedRectangle(0, 0, size.x, size.y, 3);
2938
2939 }
2940
2942 dc.SetPen(wxPen(border_colour, 1));
2943 dc.SetBrush(wxBrush(*wxTRANSPARENT_BRUSH));
2944 dc.DrawRoundedRectangle(0, 0, size.x, size.y, 3);
2945 }
2946}
#define AMS_ITEM_CUBE_SIZE
Definition AMSItem.hpp:166
#define AMS_ITEM_CUBE_SIZE2
Definition AMSItem.hpp:167
#define AMS_CONTROL_DEF_BLOCK_BK_COLOUR
Definition AMSItem.hpp:44
#define AMS_CONTROL_BRAND_COLOUR
Definition AMSItem.hpp:36
#define AMS_CONTROL_GRAY500
Definition AMSItem.hpp:39
#define AMS_CONTROL_DISABLE_COLOUR
Definition AMSItem.hpp:40
static unsigned int count
Definition AuxiliaryDataViewModel.cpp:246
bool m_hover
Definition AMSItem.hpp:744
bool m_selected
Definition AMSItem.hpp:745
static wxColour darkModeColorFor(wxColour const &color)
Definition StateColor.cpp:219
@ EXT_AMS
Definition AMSItem.hpp:58
@ N3S_AMS
Definition AMSItem.hpp:62
@ AMS_CAN_TYPE_EMPTY
Definition AMSItem.hpp:142
void fill_gradient_rect_east(wxDC &dc, const wxRect &rect, const wxColour &from, const wxColour &to)
Definition FilamentBitmapUtils.cpp:76
void change_the_opacity(wxColour &colour)
Definition DeviceManager.cpp:6154
@ left
Definition MarchingSquares.hpp:188