10#ifndef __GUI_WIDGETS_CUSTOM_BUTTON_H__
11#define __GUI_WIDGETS_CUSTOM_BUTTON_H__
15#include "common/utils/color.h"
16#include "gui/backend/gtk_widgets/gtk_wrapper.h"
24constexpr int CUSTOM_BUTTON_WIDGET_MAX_TRANSITION_FRAMES = 9;
29class CustomButtonWidget
51 CustomButtonWidget ();
52 CustomButtonWidget (
const std::string &iicon_name,
int isize);
53 CustomButtonWidget (
const CustomButtonWidget &) =
delete;
54 CustomButtonWidget &operator= (
const CustomButtonWidget &) =
delete;
55 CustomButtonWidget (CustomButtonWidget &&) =
default;
56 CustomButtonWidget &operator= (CustomButtonWidget &&) =
default;
57 ~CustomButtonWidget ();
59 void draw (GtkSnapshot * snapshot,
double ix,
double iy,
State state);
65 GtkSnapshot * snapshot,
78 PangoLayout * ilayout,
79 const std::string &itext,
80 const std::string &font_descr);
85 GdkRGBA get_color_for_state (
State state)
const;
88 GtkSnapshot * snapshot,
95 void draw_icon_with_shadow (
96 GtkSnapshot * snapshot,