9 static void RrButtonFreeReal(RrButton
* b
);
11 RrButton
*RrButtonNew (const RrInstance
*inst
)
15 out
= g_new(RrButton
, 1);
19 /* no need to alloc colors, set them null (for freeing later) */
20 out
->focused_unpressed_color
= NULL
;
21 out
->unfocused_unpressed_color
= NULL
;
22 out
->focused_pressed_color
= NULL
;
23 out
->unfocused_pressed_color
= NULL
;
24 out
->disabled_focused_color
= NULL
;
25 out
->disabled_unfocused_color
= NULL
;
26 out
->hover_focused_color
= NULL
;
27 out
->hover_unfocused_color
= NULL
;
28 out
->toggled_hover_focused_color
= NULL
;
29 out
->toggled_hover_unfocused_color
= NULL
;
30 out
->toggled_focused_pressed_color
= NULL
;
31 out
->toggled_unfocused_pressed_color
= NULL
;
32 out
->toggled_focused_unpressed_color
= NULL
;
33 out
->toggled_unfocused_unpressed_color
= NULL
;
37 out
->pressed_mask
= NULL
;
38 out
->disabled_mask
= NULL
;
39 out
->hover_mask
= NULL
;
40 out
->toggled_mask
= NULL
;
41 out
->toggled_hover_mask
= NULL
;
42 out
->toggled_pressed_mask
= NULL
;
44 /* allocate appearances */
45 out
->a_focused_unpressed
= RrAppearanceNew(inst
, 1);
46 out
->a_unfocused_unpressed
= RrAppearanceNew(inst
, 1);
47 out
->a_focused_pressed
= RrAppearanceNew(inst
, 1);
48 out
->a_unfocused_pressed
= RrAppearanceNew(inst
, 1);
49 out
->a_disabled_focused
= RrAppearanceNew(inst
, 1);
50 out
->a_disabled_unfocused
= RrAppearanceNew(inst
, 1);
51 out
->a_hover_focused
= RrAppearanceNew(inst
, 1);
52 out
->a_hover_unfocused
= RrAppearanceNew(inst
, 1);
53 out
->a_toggled_focused_unpressed
= RrAppearanceNew(inst
, 1);
54 out
->a_toggled_unfocused_unpressed
= RrAppearanceNew(inst
, 1);
55 out
->a_toggled_focused_pressed
= RrAppearanceNew(inst
, 1);
56 out
->a_toggled_unfocused_pressed
= RrAppearanceNew(inst
, 1);
57 out
->a_toggled_hover_focused
= RrAppearanceNew(inst
, 1);
58 out
->a_toggled_hover_unfocused
= RrAppearanceNew(inst
, 1);
63 void RrButtonFree(RrButton
*b
)
70 void RrButtonFreeReal(RrButton
* b
)
73 if (b
->focused_unpressed_color
)
74 RrColorFree(b
->focused_unpressed_color
);
75 if (b
->unfocused_unpressed_color
)
76 RrColorFree(b
->unfocused_unpressed_color
);
77 if (b
->focused_pressed_color
)
78 RrColorFree(b
->focused_pressed_color
);
79 if (b
->unfocused_pressed_color
)
80 RrColorFree(b
->unfocused_pressed_color
);
81 if (b
->disabled_focused_color
)
82 RrColorFree(b
->disabled_focused_color
);
83 if (b
->disabled_unfocused_color
)
84 RrColorFree(b
->disabled_unfocused_color
);
85 if (b
->hover_focused_color
)
86 RrColorFree(b
->hover_focused_color
);
87 if (b
->hover_unfocused_color
)
88 RrColorFree(b
->hover_unfocused_color
);
89 if (b
->toggled_hover_focused_color
)
90 RrColorFree(b
->toggled_hover_focused_color
);
91 if (b
->toggled_hover_unfocused_color
)
92 RrColorFree(b
->toggled_hover_unfocused_color
);
93 if (b
->toggled_focused_pressed_color
)
94 RrColorFree(b
->toggled_focused_pressed_color
);
95 if (b
->toggled_unfocused_pressed_color
)
96 RrColorFree(b
->toggled_unfocused_pressed_color
);
97 if (b
->toggled_focused_unpressed_color
)
98 RrColorFree(b
->toggled_focused_unpressed_color
);
99 if (b
->toggled_unfocused_unpressed_color
)
100 RrColorFree(b
->toggled_unfocused_unpressed_color
);