1846{
1848
1849
1850
1851 HPEN hPen, hOldPen;
1852
1853 COLORREF penColor;
1856 hPen = CreatePen(PS_SOLID, 1, penColor);
1857
1858 hOldPen = (HPEN) SelectObject(hDC, hPen);
1859 SelectObject(hDC, GetStockObject(NULL_BRUSH));
1860
1862
1863 int x;
1865 {
1866
1867
1868
1870
1871 }
1872 else
1873 {
1874
1875
1876
1878
1879 }
1880
1882
1883 RECT bulletRect;
1884
1888 else SetRect(&bulletRect, x-2, y-2, x+3, y+3);
1889
1890
1891
1893 {
1895 {
1896
1897
1898
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932 }
1933 }
1935 {
1937 {
1939 {
1940 MoveToEx(hDC, x - 3, y, NULL);
1941 LineTo(hDC, x - 3, y + 1);
1942 MoveToEx(hDC, x - 2, y - 1, NULL);
1943 LineTo(hDC, x - 2, y + 2);
1944 MoveToEx(hDC, x - 1, y - 2, NULL);
1945 LineTo(hDC, x - 1, y + 3);
1946 MoveToEx(hDC, x, y - 3, NULL);
1947 LineTo(hDC, x, y + 4);
1948 MoveToEx(hDC, x + 1, y - 4, NULL);
1949 LineTo(hDC, x + 1, y + 5);
1950 }
1951 else
1952 {
1953 MoveToEx(hDC, x - 3, y, NULL);
1954 LineTo(hDC, x - 3, y + 1);
1955 MoveToEx(hDC, x - 2, y - 1, NULL);
1956 LineTo(hDC, x - 2, y + 2);
1957 MoveToEx(hDC, x - 1, y - 2, NULL);
1958 LineTo(hDC, x - 1, y + 3);
1959 MoveToEx(hDC, x, y - 3, NULL);
1960 LineTo(hDC, x, y + 4);
1961 }
1962 }
1963 else
1964 {
1966 {
1967 MoveToEx(hDC, x - 2, y - 4, NULL);
1968 LineTo(hDC, x - 2, y + 5);
1969 MoveToEx(hDC, x - 1, y - 3, NULL);
1970 LineTo(hDC, x - 1, y + 4);
1971 MoveToEx(hDC, x, y - 2, NULL);
1972 LineTo(hDC, x, y + 3);
1973 MoveToEx(hDC, x + 1, y - 1, NULL);
1974 LineTo(hDC, x + 1, y + 2);
1975 MoveToEx(hDC, x + 2, y, NULL);
1976 LineTo(hDC, x + 2, y + 1);
1977 }
1978 else
1979 {
1980 MoveToEx(hDC, x - 1, y - 3, NULL);
1981 LineTo(hDC, x - 1, y + 4);
1982 MoveToEx(hDC, x, y - 2, NULL);
1983 LineTo(hDC, x, y + 3);
1984 MoveToEx(hDC, x + 1, y - 1, NULL);
1985 LineTo(hDC, x + 1, y + 2);
1986 MoveToEx(hDC, x + 2, y, NULL);
1987 LineTo(hDC, x + 2, y + 1);
1988 }
1989 }
1990
1991 }
1992
1993
1994
1996 {
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2014 {
2015 Rectangle(hDC, bulletRect.left, bulletRect.top, bulletRect.right, bulletRect.bottom);
2016 InflateRect(&bulletRect, -1, -1);
2017 }
2018
2019
2020
2021 }
2022
2023
2024
2026 {
2028 {
2029 Ellipse(hDC, x - 5, y - 5, x + 5, y + 5);
2030
2032
2033
2034 SetPixel(hDC, x - 2, y - 5, blendColor);
2035 SetPixel(hDC, x + 1, y - 5, blendColor);
2036 SetPixel(hDC, x - 5, y - 2, blendColor);
2037 SetPixel(hDC, x - 5, y + 1, blendColor);
2038 SetPixel(hDC, x + 4, y - 2, blendColor);
2039 SetPixel(hDC, x + 4, y + 1, blendColor);
2040 SetPixel(hDC, x - 2, y + 4, blendColor);
2041 SetPixel(hDC, x + 1, y + 4, blendColor);
2042
2043
2044 SetPixel(hDC, x - 1, y - 4, blendColor);
2045 SetPixel(hDC, x, y - 4, blendColor);
2046 SetPixel(hDC, x - 3, y - 3, blendColor);
2047 SetPixel(hDC, x + 2, y - 3, blendColor);
2048 SetPixel(hDC, x - 4, y - 1, blendColor);
2049 SetPixel(hDC, x - 4, y, blendColor);
2050 SetPixel(hDC, x + 3, y - 1, blendColor);
2051 SetPixel(hDC, x + 3, y, blendColor);
2052 SetPixel(hDC, x - 3, y + 2, blendColor);
2053 SetPixel(hDC, x + 2, y + 2, blendColor);
2054 SetPixel(hDC, x - 1, y + 3, blendColor);
2055 SetPixel(hDC, x, y + 3, blendColor);
2056
2057
2058
2060 SetPixel(hDC, x - 4, y - 4, blendColor);
2062 SetPixel(hDC, x + 3, y - 4, blendColor);
2064 SetPixel(hDC, x - 4, y + 3, blendColor);
2066 SetPixel(hDC, x + 3, y + 3, blendColor);
2067 }
2068 else
2069 {
2070 Arc(hDC, x - 4, y - 3, x + 3, y + 4, x - 1, y - 3, x - 1, y - 3);
2071
2072 }
2073 }
2074
2075
2076
2078 {
2080 {
2081 MoveToEx(hDC, x - 4, y, NULL);
2082 LineTo(hDC, x - 4, y + 1);
2083 MoveToEx(hDC, x - 3, y - 1, NULL);
2084 LineTo(hDC, x - 3, y + 2);
2085 MoveToEx(hDC, x - 2, y - 2, NULL);
2086 LineTo(hDC, x - 2, y + 3);
2087 MoveToEx(hDC, x - 1, y - 3, NULL);
2088 LineTo(hDC, x - 1, y + 4);
2089 MoveToEx(hDC, x, y - 4, NULL);
2090 LineTo(hDC, x, y + 5);
2091 MoveToEx(hDC, x + 1, y - 3, NULL);
2092 LineTo(hDC, x + 1, y + 4);
2093 MoveToEx(hDC, x + 2, y - 2, NULL);
2094 LineTo(hDC, x + 2, y + 3);
2095 MoveToEx(hDC, x + 3, y - 1, NULL);
2096 LineTo(hDC, x + 3, y + 2);
2097 MoveToEx(hDC, x + 4, y, NULL);
2098 LineTo(hDC, x + 4, y + 1);
2099 }
2100 else
2101 {
2102
2103
2104 int r = 3;
2105
2106 int fromX, toX, lineY;
2107 for (fromX = x, toX = x + 1, lineY = y - r; lineY <= y + r; lineY++)
2108 {
2109 MoveToEx(hDC, fromX, lineY, NULL);
2110 LineTo(hDC, toX, lineY);
2111 if (lineY < y) fromX--, toX++;
2112 else fromX++, toX--;
2113 }
2114 }
2115 }
2116
2117
2118
2120 {
2122 {
2124 {
2125 MoveToEx(hDC, x + 4, y - 5, NULL);
2126 LineTo(hDC, x - 6, y - 5);
2127 MoveToEx(hDC, x + 4, y - 4, NULL);
2128 LineTo(hDC, x - 6, y - 4);
2129
2130 MoveToEx(hDC, x + 4, y - 1, NULL);
2131 LineTo(hDC, x - 6, y - 1);
2132 MoveToEx(hDC, x + 4, y, NULL);
2133 LineTo(hDC, x - 6, y);
2134
2135 MoveToEx(hDC, x + 4, y + 3, NULL);
2136 LineTo(hDC, x - 6, y + 3);
2137 MoveToEx(hDC, x + 4, y + 4, NULL);
2138 LineTo(hDC, x - 6, y + 4);
2139 }
2140 else
2141 {
2142 MoveToEx(hDC, x + 4, y + 4, NULL);
2143 LineTo(hDC, x + 4, y - 6);
2144 MoveToEx(hDC, x + 3, y + 4, NULL);
2145 LineTo(hDC, x + 3, y - 6);
2146
2147 MoveToEx(hDC, x, y + 4, NULL);
2148 LineTo(hDC, x, y - 6);
2149 MoveToEx(hDC, x - 1, y + 4, NULL);
2150 LineTo(hDC, x - 1, y - 6);
2151
2152 MoveToEx(hDC, x - 4, y + 4, NULL);
2153 LineTo(hDC, x - 4, y - 6);
2154 MoveToEx(hDC, x - 5, y + 4, NULL);
2155 LineTo(hDC, x - 5, y - 6);
2156 }
2157 }
2158 else
2159 {
2161 {
2162 MoveToEx(hDC, x + 2, y - 2, NULL);
2163 LineTo(hDC, x - 3, y - 2);
2164 MoveToEx(hDC, x + 2, y, NULL);
2165 LineTo(hDC, x - 3, y);
2166 MoveToEx(hDC, x + 2, y + 2, NULL);
2167 LineTo(hDC, x - 3, y + 2);
2168 }
2169 else
2170 {
2171 MoveToEx(hDC, x + 2, y + 2, NULL);
2172 LineTo(hDC, x + 2, y - 3);
2173 MoveToEx(hDC, x, y + 2, NULL);
2174 LineTo(hDC, x, y - 3);
2175 MoveToEx(hDC, x - 2, y + 2, NULL);
2176 LineTo(hDC, x - 2, y - 3);
2177 }
2178 }
2179 }
2180
2181
2182
2184 {
2186 {
2187 MoveToEx(hDC, x - 1, y - 5, NULL);
2188 LineTo(hDC, x - 6, y);
2189 MoveToEx(hDC, x, y - 5, NULL);
2190 LineTo(hDC, x - 6, y + 1);
2191 MoveToEx(hDC, x, y - 4, NULL);
2192 LineTo(hDC, x - 5, y + 1);
2193
2194 MoveToEx(hDC, x + 3, y - 1, NULL);
2195 LineTo(hDC, x - 2, y + 4);
2196 MoveToEx(hDC, x + 4, y - 1, NULL);
2197 LineTo(hDC, x - 2, y + 5);
2198 MoveToEx(hDC, x + 4, y, NULL);
2199 LineTo(hDC, x - 1, y + 5);
2200 }
2201 else
2202 {
2203 MoveToEx(hDC, x, y - 3, NULL);
2204 LineTo(hDC, x - 4, y + 1);
2205 MoveToEx(hDC, x + 2, y - 1, NULL);
2206 LineTo(hDC, x - 2, y + 3);
2207 }
2208 }
2209
2210
2211
2213 {
2215 {
2216
2217 MoveToEx(hDC, x + 4, y - 5, NULL);
2218 LineTo(hDC, x - 6, y - 5);
2219 MoveToEx(hDC, x + 4, y - 4, NULL);
2220 LineTo(hDC, x - 6, y - 4);
2221
2222 MoveToEx(hDC, x + 4, y - 1, NULL);
2223 LineTo(hDC, x - 6, y - 1);
2224 MoveToEx(hDC, x + 4, y, NULL);
2225 LineTo(hDC, x - 6, y);
2226
2227 MoveToEx(hDC, x + 4, y + 3, NULL);
2228 LineTo(hDC, x - 6, y + 3);
2229 MoveToEx(hDC, x + 4, y + 4, NULL);
2230 LineTo(hDC, x - 6, y + 4);
2231
2232
2233 MoveToEx(hDC, x + 4, y + 4, NULL);
2234 LineTo(hDC, x + 4, y - 6);
2235 MoveToEx(hDC, x + 3, y + 4, NULL);
2236 LineTo(hDC, x + 3, y - 6);
2237
2238 MoveToEx(hDC, x, y + 4, NULL);
2239 LineTo(hDC, x, y - 6);
2240 MoveToEx(hDC, x - 1, y + 4, NULL);
2241 LineTo(hDC, x - 1, y - 6);
2242
2243 MoveToEx(hDC, x - 4, y + 4, NULL);
2244 LineTo(hDC, x - 4, y - 6);
2245 MoveToEx(hDC, x - 5, y + 4, NULL);
2246 LineTo(hDC, x - 5, y - 6);
2247 }
2248 else
2249 {
2250
2251 MoveToEx(hDC, x + 1, y - 2, NULL);
2252 LineTo(hDC, x - 3, y - 2);
2253 MoveToEx(hDC, x + 1, y, NULL);
2254 LineTo(hDC, x - 3, y);
2255 MoveToEx(hDC, x + 1, y + 2, NULL);
2256 LineTo(hDC, x - 3, y + 2);
2257
2258
2259 MoveToEx(hDC, x + 2, y + 2, NULL);
2260 LineTo(hDC, x + 2, y - 3);
2261 MoveToEx(hDC, x, y + 2, NULL);
2262 LineTo(hDC, x, y - 3);
2263 MoveToEx(hDC, x - 2, y + 2, NULL);
2264 LineTo(hDC, x - 2, y - 3);
2265 }
2266 }
2267
2268
2269
2271 {
2273 {
2274 Rectangle(hDC, x - 5, y - 5, x - 1, y - 1);
2275 Rectangle(hDC, x + 1, y - 5, x + 5, y - 1);
2276 Rectangle(hDC, x - 5, y + 1, x - 1, y + 5);
2277 Rectangle(hDC, x + 1, y + 1, x + 5, y + 5);
2278 }
2279 else
2280 {
2281
2282 }
2283 }
2284
2285
2286
2287 SelectObject(hDC, hOldPen);
2288 DeleteObject(hPen);
2289 DeleteObject(hOldPen);
2290}
void DrawImageIntoRect(HDC hdc, RECT r, StyleItem *styleItem, bool useAlpha, bool drawBorder)
Definition BBApi.cpp:2333
#define MENU_BULLET_TRIPLE
Definition Settings.h:59
#define MENU_BULLET_COMMENT
Definition Settings.h:60
#define MENU_BULLET_SQUARE
Definition Settings.h:56
#define MENU_BULLET_QUAD
Definition Settings.h:62
#define MENU_BULLET_DIAMOND
Definition Settings.h:55
#define MENU_BULLET_CIRCLE
Definition Settings.h:58
#define MENU_BULLET_TRIANGLE
Definition Settings.h:57
#define MENU_BULLET_IMAGE
Definition Settings.h:63
#define MENU_BULLET_GRID
Definition Settings.h:61
bool doubleScaleHiDPI
Definition Settings.h:326
StyleItem * MenuFrameBullet
Definition Settings.h:437
StyleItem * MenuActiveBullet
Definition Settings.h:438
COLORREF MixColors(COLORREF colorA, COLORREF colorB)
Definition Settings.cpp:2231
StyleItemImage Image
Definition BBApi.h:441
HBITMAP bitmap
Definition BBApi.h:386