39 if (!back_segment_color_.has_value() || back_segment_color_.value() !=
value) {
40 back_segment_color_ =
value;
55 if (back_segment_opacity_ !=
value) {
56 back_segment_opacity_ =
value;
69 if (show_back_segment_ !=
value) {
70 show_back_segment_ =
value;
83 if (segment_style_ !=
value) {
84 segment_style_ =
value;
92 virtual int32_t
thickness()
const {
return thickness_.value_or(size_.height() < 10 ? 1 : (size_.height() / 10 + ((size_.height() / 10) % 2 ? 0 : 1)));}
97 if (!thickness_.has_value() || thickness_.value() !=
value) {
111 if (value_ !=
value) {
182 if (client_size_.height() !=
height)
184 if (client_size_.width() !=
width)
210 for (int32_t offset = 0; offset <
thickness(); offset++)
211 graphics.draw_line(
drawing::pen(color), 2 + offset, 1 + offset, size_.width() - 3 - offset, 1 + offset);
213 for (int32_t offset = 0; offset <
thickness(); offset++)
214 graphics.draw_line(
drawing::pen(color), 2 + offset, 1 + offset, size_.width() - 3 - offset, 1 + offset);
216 for (int32_t offset = 0; offset <
thickness(); offset++)
217 graphics.draw_line(
drawing::pen(color), 2 + offset, 1 + offset, size_.width() - 3 - offset, 1 + offset);
219 for (int32_t offset = 0; offset <
thickness(); offset++)
222 for (int32_t offset = 0; offset <
thickness(); offset++)
233 graphics.draw_line(
drawing::pen(color), size_.width() - 2 -
thickness() / 2 - offset, 2 +
thickness() / 2 + abs(offset), size_.width() - 2 -
thickness() / 2 - offset, size_.height() / 2 - 1 - abs(offset));
235 for (int32_t offset = 0; offset <
thickness(); offset++)
236 graphics.draw_line(
drawing::pen(color), size_.width() - 2 - offset, 2 + offset, size_.width() - 2 - offset, size_.height() / 2 - 1 - offset / 2);
239 graphics.draw_line(
drawing::pen(color), size_.width() - 2 -
thickness() / 2 - offset, 2 + offset +
thickness() / 2, size_.width() - 2 -
thickness() / 2 - offset, size_.height() / 2 - 1 - abs(offset));
242 graphics.draw_line(
drawing::pen(color), size_.width() - 2 -
thickness() / 2 - offset, 2 + offset +
thickness() / 2, size_.width() - 2 -
thickness() / 2 - offset, size_.height() / 2 - 1 - (offset > 0 ? offset : 0));
245 graphics.draw_line(
drawing::pen(color), size_.width() - 2 -
thickness() / 2 - offset, 1, size_.width() - 2 -
thickness() / 2 - offset, size_.height() / 2 - 1 - (offset > 0 ? offset : 0));
248 graphics.draw_line(
drawing::pen(color), size_.width() - 2 -
thickness() / 2 - offset, 1, size_.width() - 2 -
thickness() / 2 - offset, size_.height() / 2 - 1);
260 for (int32_t offset = 0; offset <
thickness(); offset++)
261 graphics.draw_line(
drawing::pen(color), size_.width() - 2 - offset, size_.height() / 2 + 1 + offset / 2, size_.width() - 2 - offset, size_.height() - 3 - offset);
270 graphics.draw_line(
drawing::pen(color), size_.width() - 2 -
thickness() / 2 - offset, size_.height() / 2 + 1 -
thickness() / 2 +
thickness() / 2 + (offset > 0 ? offset : 0), size_.width() - 2 -
thickness() / 2 - offset, size_.height() - 2);
273 graphics.draw_line(
drawing::pen(color), size_.width() - 2 -
thickness() / 2 - offset, size_.height() / 2 + 1, size_.width() - 2 -
thickness() / 2 - offset, size_.height() - 2);
285 for (int32_t offset = 0; offset <
thickness(); offset++)
286 graphics.draw_line(
drawing::pen(color), 2 + offset, size_.height() - 2 - offset, size_.width() - 3 - offset, size_.height() - 2 - offset);
288 for (int32_t offset = 0; offset <
thickness(); offset++)
289 graphics.draw_line(
drawing::pen(color), 2 + offset, size_.height() - 2 - offset, size_.width() - 3 - offset, size_.height() - 2 - offset);
291 for (int32_t offset = 0; offset <
thickness(); offset++)
292 graphics.draw_line(
drawing::pen(color), 2 + offset, size_.height() - 2 - offset, size_.width() - 3 - offset, size_.height() - 2 - offset);
294 for (int32_t offset = 0; offset <
thickness(); offset++)
295 graphics.draw_line(
drawing::pen(color), 2 +
thickness(), size_.height() - 2 - offset, size_.width() - 3 -
thickness(), size_.height() - 2 - offset);
297 for (int32_t offset = 0; offset <
thickness(); offset++)
298 graphics.draw_line(
drawing::pen(color), 2 +
thickness(), size_.height() - 2 - offset, size_.width() - 3 -
thickness(), size_.height() - 2 - offset);
310 for (int32_t offset = 0; offset <
thickness(); offset++)
311 graphics.draw_line(
drawing::pen(color), 1 + offset, size_.height() / 2 + 1 + offset / 2, 1 + offset, size_.height() - 3 - offset);
335 for (int32_t offset = 0; offset <
thickness(); offset++)
336 graphics.draw_line(
drawing::pen(color), 1 + offset, 2 + offset, 1 + offset, size_.height() / 2 - 1 - offset / 2);
345 graphics.draw_line(
drawing::pen(color), 1 +
thickness() / 2 + offset, 1, 1 +
thickness() / 2 + offset, size_.height() / 2 - 1 - (offset > 0 ? offset : 0));
358 graphics.draw_line(
drawing::pen(color), 2 +
thickness() / 2 + abs(offset), size_.height() / 2 + offset, size_.width() - 3 -
thickness() / 2 - abs(offset), size_.height() / 2 + offset);
361 graphics.draw_line(
drawing::pen(color), 2 + abs(2 * offset), size_.height() / 2 + offset, size_.width() - 3 - abs(2 * offset), size_.height() / 2 + offset);
364 graphics.draw_line(
drawing::pen(color), 2 +
thickness() / 2 + abs(offset), size_.height() / 2 + offset, size_.width() - 3 -
thickness() / 2 - abs(offset), size_.height() / 2 + offset);
367 graphics.draw_line(
drawing::pen(color), 2 +
thickness() / 2 + abs(offset), size_.height() / 2 + offset, size_.width() - 3 -
thickness() / 2 - abs(offset), size_.height() / 2 + offset);
370 graphics.draw_line(
drawing::pen(color), 2 +
thickness() / 2 + abs(offset), size_.height() / 2 + offset, size_.width() - 3 -
thickness() / 2 - abs(offset), size_.height() / 2 + offset);
373 graphics.draw_line(
drawing::pen(color), 2 +
thickness(), size_.height() / 2 + offset, size_.width() - 3 -
thickness(), size_.height() / 2 + offset);
384 for (int32_t offset = 0; offset <
thickness(); offset++)
385 graphics.draw_line(
drawing::pen(color), size_.width() / 2 -
thickness() / 2, size_.height() - 2 - offset, size_.width() / 2 +
thickness() / 2, size_.height() - 2 - offset);
393 for (int32_t offset = 0; offset <
thickness(); offset++)
394 graphics.draw_line(
drawing::pen(color), size_.width() / 2 -
thickness() / 2, size_.height() - 2 - offset, size_.width() / 2 +
thickness() / 2, size_.height() - 2 - offset);
406 for (int32_t offset = 0; offset <
thickness(); offset++) {
420 for (int32_t offset = 0; offset <
thickness(); offset++) {
429 bool show_back_segment_ =
true;
430 std::optional<drawing::color> back_segment_color_;
431 double back_segment_opacity_ = 0.95;
433 std::optional<int32_t> thickness_;
Contains xtd::argument_out_of_range_exception exception.
The exception that is thrown when one of the arguments provided to a method is out of range.
Definition argument_out_of_range_exception.h:18
Represents an ARGB (alpha, red, green, blue) color.
Definition color.h:39
static color average(const color &color1, const color &color2, double weight, bool average_alpha)
Returns the weighted average color between the two given colors.
Definition color.h:592
Defines an object used to draw lines and curves. This class cannot be inherited.
Definition graphics.h:48
Defines an object used to draw lines and curves. This class cannot be inherited.
Definition pen.h:29
Stores an ordered pair of integers, which specify a height and width.
Definition size.h:25
Defines a xtd::drawing::brush of a single color. Brushes are used to fill graphics shapes,...
Definition solid_brush.h:22
static xtd::drawing::color gray_text()
Gets a system-defined color that has an ARGB value of 0xFFACA899. This field is constant.
Represents the base class for classes that contain event data, and provides a value to use for events...
Definition event_args.h:18
Contains xtd::forms::control control.
virtual void on_back_color_changed(const event_args &e)
Raises the control::back_color_changed event.
virtual void on_paint(paint_event_args &e)
Raises the control::paint event.
virtual void on_enabled_changed(const event_args &e)
Raises the control::enabled_changed event.
virtual void on_fore_color_changed(const event_args &e)
Raises the control::fore_color_changed event.
virtual void on_parent_enabled_changed(const event_args &e)
Raises the xtd::control::enabled_changed event when the xtd::control::enabled property value of the c...
#define current_stack_frame_
Provides information about the current stack frame.
Definition stack_frame.h:201
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition system_report.h:17
Contains xtd::forms::segment_style enum class.
Contains xtd::forms::segments enum class.
Contains xtd::drawing::system_colors factory.