886
// +--+--------+--+ 6
924
// On the right of the icon: On the top of the icon:
926
// +--+--------+--+ +--+-----------+--+
941
// | | 12 +--+--+ +--+--+ 6
944
// +--+--------+--+ 6 +
890
948
gfloat padding = pad;
891
949
int ZEROPOINT5 = 0.0f;
893
gfloat HeightToAnchor = ((gfloat) height - 2.0f * radius - anchor_height - 2 * padding) / 2.0f;
894
if (HeightToAnchor < 0.0f)
896
g_warning("Anchor-height and corner-radius a higher than whole texture!");
950
auto launcher_position = Settings::Instance().launcher_position();
900
952
//gint dynamic_size = height - 2*radius - 2*padding - anchor_height;
901
953
//gint upper_dynamic_size = upper_size;
902
954
//gint lower_dynamic_size = dynamic_size - upper_dynamic_size;
957
if (launcher_position == LauncherPosition::LEFT)
962
gfloat HeightToAnchor = ((gfloat) size - 2.0f * radius - anchor_height - 2 * padding) / 2.0f;
963
if (HeightToAnchor < 0.0f)
965
g_warning("Anchor-height and corner-radius a higher than whole texture!");
904
969
if (upper_size >= 0)
906
if (upper_size > height - 2.0f * radius - anchor_height - 2 * padding)
971
if (upper_size > size - 2.0f * radius - anchor_height - 2 * padding)
908
973
//g_warning ("[_compute_full_mask_path] incorrect upper_size value");
909
974
HeightToAnchor = 0;
913
HeightToAnchor = height - 2.0f * radius - anchor_height - 2 * padding - upper_size;
978
HeightToAnchor = size - 2.0f * radius - anchor_height - 2 * padding - upper_size;
918
HeightToAnchor = (height - 2.0f * radius - anchor_height - 2 * padding) / 2.0f;
983
if (launcher_position == LauncherPosition::LEFT)
984
HeightToAnchor = (size - 2.0f * radius - anchor_height - 2 * padding) / 2.0f;
986
HeightToAnchor = size - 2.0f * radius - anchor_height - 2 * padding;
921
989
cairo_translate(cr, -0.5f, -0.5f);
924
cairo_move_to(cr, padding + anchor_width + radius + ZEROPOINT5, padding + ZEROPOINT5); // Point 1
925
cairo_line_to(cr, width - padding - radius, padding + ZEROPOINT5); // Point 2
927
width - padding - radius + ZEROPOINT5,
928
padding + radius + ZEROPOINT5,
930
-90.0f * G_PI / 180.0f,
931
0.0f * G_PI / 180.0f); // Point 4
933
(gdouble) width - padding + ZEROPOINT5,
934
(gdouble) height - radius - padding + ZEROPOINT5); // Point 5
936
(gdouble) width - padding - radius + ZEROPOINT5,
937
(gdouble) height - padding - radius + ZEROPOINT5,
939
0.0f * G_PI / 180.0f,
940
90.0f * G_PI / 180.0f); // Point 7
942
anchor_width + padding + radius + ZEROPOINT5,
943
(gdouble) height - padding + ZEROPOINT5); // Point 8
946
anchor_width + padding + radius + ZEROPOINT5,
947
(gdouble) height - padding - radius,
949
90.0f * G_PI / 180.0f,
950
180.0f * G_PI / 180.0f); // Point 10
953
padding + anchor_width + ZEROPOINT5,
954
(gdouble) height - padding - radius - HeightToAnchor + ZEROPOINT5); // Point 11
956
padding + ZEROPOINT5,
957
(gdouble) height - padding - radius - HeightToAnchor - anchor_height / 2.0f + ZEROPOINT5); // Point 12
959
padding + anchor_width + ZEROPOINT5,
960
(gdouble) height - padding - radius - HeightToAnchor - anchor_height + ZEROPOINT5); // Point 13
962
cairo_line_to(cr, padding + anchor_width + ZEROPOINT5, padding + radius + ZEROPOINT5); // Point 14
964
padding + anchor_width + radius + ZEROPOINT5,
965
padding + radius + ZEROPOINT5,
967
180.0f * G_PI / 180.0f,
968
270.0f * G_PI / 180.0f);
992
if (launcher_position == LauncherPosition::LEFT)
994
cairo_move_to(cr, padding + anchor_width + radius + ZEROPOINT5, padding + ZEROPOINT5); // Point 1
995
cairo_line_to(cr, width - padding - radius, padding + ZEROPOINT5); // Point 2
997
width - padding - radius + ZEROPOINT5,
998
padding + radius + ZEROPOINT5,
1000
-90.0f * G_PI / 180.0f,
1001
0.0f * G_PI / 180.0f); // Point 4
1003
(gdouble) width - padding + ZEROPOINT5,
1004
(gdouble) height - radius - padding + ZEROPOINT5); // Point 5
1006
(gdouble) width - padding - radius + ZEROPOINT5,
1007
(gdouble) height - padding - radius + ZEROPOINT5,
1009
0.0f * G_PI / 180.0f,
1010
90.0f * G_PI / 180.0f); // Point 7
1012
anchor_width + padding + radius + ZEROPOINT5,
1013
(gdouble) height - padding + ZEROPOINT5); // Point 8
1015
anchor_width + padding + radius + ZEROPOINT5,
1016
(gdouble) height - padding - radius,
1018
90.0f * G_PI / 180.0f,
1019
180.0f * G_PI / 180.0f); // Point 10
1021
padding + anchor_width + ZEROPOINT5,
1022
(gdouble) height - padding - radius - HeightToAnchor + ZEROPOINT5); // Point 11
1024
padding + ZEROPOINT5,
1025
(gdouble) height - padding - radius - HeightToAnchor - anchor_height / 2.0f + ZEROPOINT5); // Point 12
1027
padding + anchor_width + ZEROPOINT5,
1028
(gdouble) height - padding - radius - HeightToAnchor - anchor_height + ZEROPOINT5); // Point 13
1029
cairo_line_to(cr, padding + anchor_width + ZEROPOINT5, padding + radius + ZEROPOINT5); // Point 14
1031
padding + anchor_width + radius + ZEROPOINT5,
1032
padding + radius + ZEROPOINT5,
1034
180.0f * G_PI / 180.0f,
1035
270.0f * G_PI / 180.0f);
1039
cairo_move_to(cr, padding + radius + ZEROPOINT5, padding + ZEROPOINT5); // Point 1
1040
cairo_line_to(cr, width - padding - radius, padding + ZEROPOINT5); // Point 2
1042
width - padding - radius + ZEROPOINT5,
1043
padding + radius + ZEROPOINT5,
1045
-90.0f * G_PI / 180.0f,
1046
0.0f * G_PI / 180.0f); // Point 4
1048
(gdouble) width - padding + ZEROPOINT5,
1049
(gdouble) height - radius - anchor_width - padding + ZEROPOINT5); // Point 5
1051
(gdouble) width - padding - radius + ZEROPOINT5,
1052
(gdouble) height - padding - anchor_width - radius + ZEROPOINT5,
1054
0.0f * G_PI / 180.0f,
1055
90.0f * G_PI / 180.0f); // Point 7
1057
(gdouble) width - padding - radius - HeightToAnchor + ZEROPOINT5,
1058
height - padding - anchor_width + ZEROPOINT5); // Point 8
1060
(gdouble) width - padding - radius - HeightToAnchor - anchor_height / 2.0f + ZEROPOINT5,
1061
height - padding + ZEROPOINT5); // Point 9
1063
(gdouble) width - padding - radius - HeightToAnchor - anchor_height + ZEROPOINT5,
1064
height - padding - anchor_width + ZEROPOINT5); // Point 10
1066
padding + radius + ZEROPOINT5,
1067
(gdouble) height - padding - anchor_width - radius,
1069
90.0f * G_PI / 180.0f,
1070
180.0f * G_PI / 180.0f); // Point 11
1072
padding + ZEROPOINT5,
1073
(gdouble) height - padding -anchor_width - radius + ZEROPOINT5); // Point 13
1074
cairo_line_to(cr, padding + ZEROPOINT5, padding + radius + ZEROPOINT5); // Point 14
1076
padding + radius + ZEROPOINT5,
1077
padding + radius + ZEROPOINT5,
1079
180.0f * G_PI / 180.0f,
1080
270.0f * G_PI / 180.0f);
970
1082
cairo_close_path(cr);