Merge pull request #10437 from groud/2d_editor_enhancements
Some 2d editor enhancements
This commit is contained in:
commit
2785444f89
10 changed files with 1203 additions and 540 deletions
|
@ -137,6 +137,9 @@ void editor_register_fonts(Ref<Theme> p_theme) {
|
|||
p_theme->set_font("doc", "EditorFonts", df_doc);
|
||||
p_theme->set_font("doc_title", "EditorFonts", df_title);
|
||||
|
||||
MAKE_DEFAULT_FONT(df_rulers, int(EDITOR_DEF("canvas_item_editor/rulers", 8)) * EDSCALE);
|
||||
p_theme->set_font("rulers", "EditorFonts", df_rulers);
|
||||
|
||||
Ref<DynamicFont> df_code;
|
||||
df_code.instance();
|
||||
df_code->set_size(int(EditorSettings::get_singleton()->get("interface/source_font_size")) * EDSCALE);
|
||||
|
|
|
@ -1,10 +1,93 @@
|
|||
<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="translate(0 -1036.4)">
|
||||
<path d="m3 1036.4v3h-3v2h3v4h-3v2h3v3h2v-3-2-4h4 2 3v-2h-3v-3h-2v3h-4v-3h-2z" fill="#f3f3f3"/>
|
||||
<path d="m11 1043.4a4 4 0 0 0 -4 4h2a2 2 0 0 1 2 -2 2 2 0 0 1 2 2h2a4 4 0 0 0 -4 -4z" fill="#ff8484"/>
|
||||
<rect x="7" y="1047.4" width="2" height="2" fill="#ff8484"/>
|
||||
<rect x="13" y="1047.4" width="2" height="2" fill="#ff8484"/>
|
||||
<rect x="7" y="1049.4" width="2" height="2" fill="#fff"/>
|
||||
<rect x="13" y="1049.4" width="2" height="2" fill="#fff"/>
|
||||
</g>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="16"
|
||||
height="16"
|
||||
version="1.1"
|
||||
viewBox="0 0 16 16"
|
||||
id="svg848"
|
||||
sodipodi:docname="icon_snap.svg"
|
||||
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
|
||||
<metadata
|
||||
id="metadata854">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs852" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2558"
|
||||
inkscape:window-height="1422"
|
||||
id="namedview850"
|
||||
showgrid="true"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="26.317631"
|
||||
inkscape:cx="-14.078109"
|
||||
inkscape:cy="-1.3201296"
|
||||
inkscape:window-x="1366"
|
||||
inkscape:window-y="16"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg848">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid862" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
style="fill:#ff8484;stroke-width:1.48039925"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path836"
|
||||
d="m 3.9501321,14.20668 a 5.9215969,5.9215969 0 0 0 8.0890509,-2.167455 l -2.5641252,-1.4804 A 2.9607985,2.9607985 0 0 1 5.4305313,11.642553 2.9607985,2.9607985 0 0 1 4.3468039,7.5980268 L 1.7826772,6.1176278 A 5.9215969,5.9215969 0 0 0 3.9501321,14.20668 Z" />
|
||||
<rect
|
||||
style="fill:#ff8484;stroke-width:1.48039925"
|
||||
id="rect838"
|
||||
height="2.9607985"
|
||||
width="2.9607985"
|
||||
y="-4.4066463"
|
||||
x="-16.44585"
|
||||
transform="rotate(-150)" />
|
||||
<rect
|
||||
style="fill:#ff8484;stroke-width:1.48039925"
|
||||
id="rect840"
|
||||
height="2.9607985"
|
||||
width="2.9607985"
|
||||
y="-4.4066463"
|
||||
x="-7.5634551"
|
||||
transform="rotate(-150)" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke-width:1.48039925"
|
||||
id="rect842"
|
||||
height="2.9607985"
|
||||
width="2.9607985"
|
||||
y="-1.4458472"
|
||||
x="-16.44585"
|
||||
transform="rotate(-150)" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke-width:1.48039925"
|
||||
id="rect844"
|
||||
height="2.9607985"
|
||||
width="2.9607985"
|
||||
y="-1.4458472"
|
||||
x="-7.5634551"
|
||||
transform="rotate(-150)" />
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 2.7 KiB |
92
editor/icons/icon_snap_grid.svg
Normal file
92
editor/icons/icon_snap_grid.svg
Normal file
|
@ -0,0 +1,92 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="16"
|
||||
height="16"
|
||||
version="1.1"
|
||||
viewBox="0 0 16 16"
|
||||
id="svg913"
|
||||
sodipodi:docname="icon_snap_grid.svg"
|
||||
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
|
||||
<metadata
|
||||
id="metadata919">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs917" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2558"
|
||||
inkscape:window-height="1422"
|
||||
id="namedview915"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="52.635261"
|
||||
inkscape:cx="6.4374987"
|
||||
inkscape:cy="5.7074131"
|
||||
inkscape:window-x="1366"
|
||||
inkscape:window-y="16"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg913" />
|
||||
<g
|
||||
transform="translate(0 -1036.4)"
|
||||
id="g911">
|
||||
<path
|
||||
d="m3 1036.4v3h-3v2h3v4h-3v2h3v3h2v-3-2-4h4 2 3v-2h-3v-3h-2v3h-4v-3h-2z"
|
||||
fill="#f3f3f3"
|
||||
id="path899" />
|
||||
<path
|
||||
d="m11 1043.4a4 4 0 0 0 -4 4h2a2 2 0 0 1 2 -2 2 2 0 0 1 2 2h2a4 4 0 0 0 -4 -4z"
|
||||
fill="#ff8484"
|
||||
id="path901" />
|
||||
<rect
|
||||
x="7"
|
||||
y="1047.4"
|
||||
width="2"
|
||||
height="2"
|
||||
fill="#ff8484"
|
||||
id="rect903" />
|
||||
<rect
|
||||
x="13"
|
||||
y="1047.4"
|
||||
width="2"
|
||||
height="2"
|
||||
fill="#ff8484"
|
||||
id="rect905" />
|
||||
<rect
|
||||
x="7"
|
||||
y="1049.4"
|
||||
width="2"
|
||||
height="2"
|
||||
fill="#fff"
|
||||
id="rect907" />
|
||||
<rect
|
||||
x="13"
|
||||
y="1049.4"
|
||||
width="2"
|
||||
height="2"
|
||||
fill="#fff"
|
||||
id="rect909" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
File diff suppressed because it is too large
Load diff
|
@ -70,7 +70,6 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
EditorNode *editor;
|
||||
|
||||
enum Tool {
|
||||
|
||||
TOOL_SELECT,
|
||||
TOOL_LIST_SELECT,
|
||||
TOOL_MOVE,
|
||||
|
@ -82,15 +81,18 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
|
||||
enum MenuOption {
|
||||
SNAP_USE,
|
||||
SNAP_SHOW_GRID,
|
||||
SNAP_USE_NODE_PARENT,
|
||||
SNAP_USE_NODE_ANCHORS,
|
||||
SNAP_USE_NODE_SIDES,
|
||||
SNAP_USE_OTHER_NODES,
|
||||
SNAP_USE_GRID,
|
||||
SNAP_USE_ROTATION,
|
||||
SNAP_RELATIVE,
|
||||
SNAP_CONFIGURE,
|
||||
SNAP_USE_PIXEL,
|
||||
ZOOM_IN,
|
||||
ZOOM_OUT,
|
||||
ZOOM_RESET,
|
||||
ZOOM_SET,
|
||||
SHOW_GRID,
|
||||
SHOW_HELPERS,
|
||||
SHOW_RULERS,
|
||||
LOCK_SELECTED,
|
||||
UNLOCK_SELECTED,
|
||||
GROUP_SELECTED,
|
||||
|
@ -163,6 +165,8 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
Tool tool;
|
||||
bool first_update;
|
||||
Control *viewport;
|
||||
Control *viewport_base;
|
||||
Control *viewport_scrollable;
|
||||
|
||||
bool can_move_pivot;
|
||||
|
||||
|
@ -170,14 +174,28 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
VScrollBar *v_scroll;
|
||||
HBoxContainer *hb;
|
||||
|
||||
ToolButton *zoom_minus;
|
||||
ToolButton *zoom_reset;
|
||||
ToolButton *zoom_plus;
|
||||
|
||||
Transform2D transform;
|
||||
bool show_grid;
|
||||
bool show_rulers;
|
||||
bool show_helpers;
|
||||
float zoom;
|
||||
Vector2 snap_offset;
|
||||
Vector2 snap_step;
|
||||
|
||||
Point2 grid_offset;
|
||||
Point2 grid_step;
|
||||
int grid_step_multiplier;
|
||||
|
||||
float snap_rotation_step;
|
||||
float snap_rotation_offset;
|
||||
bool snap_active;
|
||||
bool snap_node_parent;
|
||||
bool snap_node_anchors;
|
||||
bool snap_node_sides;
|
||||
bool snap_other_nodes;
|
||||
bool snap_grid;
|
||||
bool snap_show_grid;
|
||||
bool snap_rotation;
|
||||
bool snap_relative;
|
||||
bool snap_pixel;
|
||||
|
@ -204,18 +222,6 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
|
||||
Vector<_SelectResult> selection_results;
|
||||
|
||||
struct LockList {
|
||||
Point2 pos;
|
||||
bool lock;
|
||||
bool group;
|
||||
LockList() {
|
||||
lock = false;
|
||||
group = false;
|
||||
}
|
||||
};
|
||||
|
||||
List<LockList> lock_list;
|
||||
|
||||
struct BoneList {
|
||||
|
||||
Transform2D xform;
|
||||
|
@ -255,6 +261,10 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
ToolButton *move_button;
|
||||
ToolButton *rotate_button;
|
||||
|
||||
ToolButton *snap_button;
|
||||
MenuButton *snap_config_menu;
|
||||
PopupMenu *smartsnap_config_popup;
|
||||
|
||||
ToolButton *pivot_button;
|
||||
ToolButton *pan_button;
|
||||
|
||||
|
@ -264,8 +274,7 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
ToolButton *group_button;
|
||||
ToolButton *ungroup_button;
|
||||
|
||||
MenuButton *edit_menu;
|
||||
PopupMenu *skeleton_menu;
|
||||
MenuButton *skeleton_menu;
|
||||
MenuButton *view_menu;
|
||||
HBoxContainer *animation_hb;
|
||||
MenuButton *animation_menu;
|
||||
|
@ -278,6 +287,9 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
|
||||
PopupMenu *selection_menu;
|
||||
|
||||
Control *top_ruler;
|
||||
Control *left_ruler;
|
||||
|
||||
//PopupMenu *popup;
|
||||
DragType drag;
|
||||
Point2 drag_from;
|
||||
|
@ -290,6 +302,11 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
Ref<Texture> select_handle;
|
||||
Ref<Texture> anchor_handle;
|
||||
|
||||
Ref<ShortCut> drag_pivot_shortcut;
|
||||
Ref<ShortCut> set_pivot_shortcut;
|
||||
Ref<ShortCut> multiply_grid_step_shortcut;
|
||||
Ref<ShortCut> divide_grid_step_shortcut;
|
||||
|
||||
int handle_len;
|
||||
bool _is_part_of_subscene(CanvasItem *p_item);
|
||||
void _find_canvas_items_at_pos(const Point2 &p_pos, Node *p_node, const Transform2D &p_parent_xform, const Transform2D &p_canvas_xform, Vector<_SelectResult> &r_items, int limit = 0);
|
||||
|
@ -300,10 +317,6 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
|
||||
ConfirmationDialog *snap_dialog;
|
||||
|
||||
AcceptDialog *value_dialog;
|
||||
Label *dialog_label;
|
||||
SpinBox *dialog_val;
|
||||
|
||||
CanvasItem *ref_item;
|
||||
|
||||
void _edit_set_pivot(const Vector2 &mouse_pos);
|
||||
|
@ -317,9 +330,8 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
void _prepare_drag(const Point2 &p_click_pos);
|
||||
DragType _get_anchor_handle_drag_type(const Point2 &p_click, Vector2 &r_point);
|
||||
|
||||
float _anchor_snap(float p_anchor, bool *p_snapped = NULL, float p_opposite_anchor = -1);
|
||||
Vector2 _anchor_to_position(Control *p_control, Vector2 anchor);
|
||||
Vector2 _position_to_anchor(Control *p_control, Vector2 position);
|
||||
Vector2 _anchor_to_position(const Control *p_control, Vector2 anchor);
|
||||
Vector2 _position_to_anchor(const Control *p_control, Vector2 position);
|
||||
|
||||
void _popup_callback(int p_op);
|
||||
bool updating_scroll;
|
||||
|
@ -330,7 +342,6 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
void incend(float &beg, float &end, float inc, float minsize, bool p_symmetric);
|
||||
|
||||
void _append_canvas_item(CanvasItem *p_item);
|
||||
void _dialog_value_changed(double);
|
||||
void _snap_changed();
|
||||
void _selection_result_pressed(int);
|
||||
void _selection_menu_hide();
|
||||
|
@ -339,26 +350,49 @@ class CanvasItemEditor : public VBoxContainer {
|
|||
|
||||
Point2 _find_topleftmost_point();
|
||||
|
||||
void _find_canvas_items_span(Node *p_node, Rect2 &r_rect, const Transform2D &p_xform);
|
||||
void _build_bones_list(Node *p_node);
|
||||
|
||||
void _get_encompassing_rect(Node *p_node, Rect2 &r_rect, const Transform2D &p_xform);
|
||||
|
||||
Object *_get_editor_data(Object *p_what);
|
||||
|
||||
CanvasItem *get_single_item();
|
||||
CanvasItem *_get_single_item();
|
||||
int get_item_count();
|
||||
void _keying_changed();
|
||||
|
||||
void _unhandled_key_input(const Ref<InputEvent> &p_ev);
|
||||
|
||||
void _draw_text_at_position(Point2 p_position, String p_string, Margin p_side);
|
||||
void _draw_margin_at_position(int p_value, Point2 p_position, Margin p_side);
|
||||
void _draw_percentage_at_position(float p_value, Point2 p_position, Margin p_side);
|
||||
|
||||
void _viewport_gui_input(const Ref<InputEvent> &p_event);
|
||||
void _viewport_draw();
|
||||
void _draw_rulers();
|
||||
void _draw_focus();
|
||||
void _draw_grid();
|
||||
void _draw_selection();
|
||||
void _draw_axis();
|
||||
void _draw_bones();
|
||||
void _draw_locks_and_groups(Node *p_node, const Transform2D &p_xform);
|
||||
|
||||
void _draw_viewport();
|
||||
|
||||
void _viewport_base_gui_input(const Ref<InputEvent> &p_event);
|
||||
void _draw_viewport_base();
|
||||
|
||||
void _focus_selection(int p_op);
|
||||
|
||||
void _snap_if_closer(Point2 p_value, Point2 p_target_snap, Point2 &r_current_snap, bool (&r_snapped)[2], real_t rotation = 0.0, float p_radius = 10.0);
|
||||
void _snap_other_nodes(Point2 p_value, Point2 &r_current_snap, bool (&r_snapped)[2], const Node *p_current, const CanvasItem *p_to_snap);
|
||||
|
||||
void _set_anchors_preset(Control::LayoutPreset p_preset);
|
||||
void _set_full_rect();
|
||||
|
||||
void _zoom_minus();
|
||||
void _zoom_reset();
|
||||
void _zoom_plus();
|
||||
|
||||
void _toggle_snap(bool p_status);
|
||||
|
||||
HSplitContainer *palette_split;
|
||||
VSplitContainer *bottom_split;
|
||||
|
||||
|
@ -402,7 +436,18 @@ protected:
|
|||
static CanvasItemEditor *singleton;
|
||||
|
||||
public:
|
||||
Vector2 snap_point(Vector2 p_target, Vector2 p_start = Vector2(0, 0)) const;
|
||||
enum SnapMode {
|
||||
SNAP_GRID = 1 << 0,
|
||||
SNAP_PIXEL = 1 << 1,
|
||||
SNAP_NODE_PARENT = 1 << 2,
|
||||
SNAP_NODE_ANCHORS = 1 << 3,
|
||||
SNAP_NODE_SIDES = 1 << 4,
|
||||
SNAP_OTHER_NODES = 1 << 5,
|
||||
|
||||
SNAP_DEFAULT = 0x03,
|
||||
};
|
||||
|
||||
Point2 snap_point(Point2 p_target, unsigned int p_modes = SNAP_DEFAULT, const CanvasItem *p_canvas_item = NULL, unsigned int p_forced_modes = 0);
|
||||
float snap_angle(float p_target, float p_start = 0) const;
|
||||
|
||||
Transform2D get_canvas_transform() const { return transform; }
|
||||
|
|
|
@ -52,7 +52,7 @@ void Polygon2DEditor::_notification(int p_what) {
|
|||
uv_button[UV_MODE_SCALE]->set_icon(get_icon("ToolScale", "EditorIcons"));
|
||||
|
||||
b_snap_grid->set_icon(get_icon("Grid", "EditorIcons"));
|
||||
b_snap_enable->set_icon(get_icon("Snap", "EditorIcons"));
|
||||
b_snap_enable->set_icon(get_icon("SnapGrid", "EditorIcons"));
|
||||
uv_icon_zoom->set_texture(get_icon("Zoom", "EditorIcons"));
|
||||
|
||||
get_tree()->connect("node_removed", this, "_node_removed");
|
||||
|
|
|
@ -283,7 +283,7 @@ void GraphEdit::_notification(int p_what) {
|
|||
zoom_minus->set_icon(get_icon("minus"));
|
||||
zoom_reset->set_icon(get_icon("reset"));
|
||||
zoom_plus->set_icon(get_icon("more"));
|
||||
snap_button->set_icon(get_icon("snap"));
|
||||
snap_button->set_icon(get_icon("SnapGrid"));
|
||||
//zoom_icon->set_texture( get_icon("Zoom", "EditorIcons"));
|
||||
}
|
||||
if (p_what == NOTIFICATION_DRAW) {
|
||||
|
|
|
@ -879,7 +879,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
|
|||
theme->set_icon("minus", "GraphEdit", make_icon(icon_zoom_less_png));
|
||||
theme->set_icon("reset", "GraphEdit", make_icon(icon_zoom_reset_png));
|
||||
theme->set_icon("more", "GraphEdit", make_icon(icon_zoom_more_png));
|
||||
theme->set_icon("snap", "GraphEdit", make_icon(icon_snap_png));
|
||||
theme->set_icon("SnapGrid", "GraphEdit", make_icon(icon_snap_grid_png));
|
||||
theme->set_stylebox("bg", "GraphEdit", make_stylebox(tree_bg_png, 4, 4, 4, 5));
|
||||
theme->set_color("grid_minor", "GraphEdit", Color(1, 1, 1, 0.05));
|
||||
theme->set_color("grid_major", "GraphEdit", Color(1, 1, 1, 0.2));
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 269 B After Width: | Height: | Size: 325 B |
|
@ -182,8 +182,8 @@ static const unsigned char icon_reload_png[] = {
|
|||
0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x6, 0x0, 0x0, 0x0, 0x1f, 0xf3, 0xff, 0x61, 0x0, 0x0, 0x0, 0x6, 0x62, 0x4b, 0x47, 0x44, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x0, 0x0, 0x1, 0x59, 0x49, 0x44, 0x41, 0x54, 0x38, 0x8d, 0xcd, 0x92, 0x31, 0x4b, 0x3, 0x31, 0x18, 0x86, 0x9f, 0x5c, 0xe, 0xec, 0x20, 0x76, 0x70, 0x39, 0xd0, 0xe3, 0xba, 0x74, 0x51, 0x41, 0xdd, 0xfc, 0x7, 0xba, 0xb8, 0x8, 0x52, 0xec, 0x2e, 0x4e, 0x3a, 0x88, 0x3f, 0xa3, 0xa3, 0x53, 0x7, 0x47, 0x67, 0x41, 0x17, 0xdd, 0x9c, 0x5c, 0x3b, 0xd8, 0x82, 0x64, 0x68, 0xca, 0xd5, 0x55, 0x11, 0x3c, 0x1a, 0x87, 0x24, 0x2e, 0xd7, 0x72, 0x9e, 0x9e, 0xab, 0xbe, 0xd3, 0xc7, 0x1b, 0x9e, 0x37, 0xf9, 0xbe, 0x7c, 0xf0, 0xd7, 0x12, 0x3f, 0x99, 0x4a, 0xa9, 0xb9, 0x30, 0xc, 0x8f, 0x84, 0x10, 0x7, 0xc0, 0x5a, 0x6e, 0x3f, 0x3a, 0xe7, 0x2e, 0xad, 0xb5, 0xdd, 0x66, 0xb3, 0xf9, 0x51, 0x19, 0x90, 0xa6, 0xe9, 0x92, 0xb5, 0xf6, 0x6, 0x58, 0xaf, 0xb8, 0xb4, 0x27, 0xa5, 0xdc, 0x8d, 0xe3, 0xf8, 0x19, 0x20, 0x28, 0xdf, 0x5c, 0x80, 0x53, 0x60, 0xdf, 0x18, 0x53, 0x37, 0xc6, 0xd4, 0xbd, 0xf7, 0x7b, 0xc0, 0x13, 0xb0, 0x61, 0xad, 0xbd, 0x56, 0x4a, 0xcd, 0x1, 0x84, 0xc5, 0x80, 0x30, 0xc, 0x8f, 0xa6, 0xb0, 0x94, 0x72, 0x33, 0x8e, 0xe3, 0x97, 0xc2, 0xf1, 0xd5, 0x68, 0x34, 0xba, 0xf7, 0xde, 0xf7, 0x80, 0xd, 0x29, 0xe5, 0x21, 0x70, 0xfe, 0xe5, 0x5, 0x42, 0x88, 0x76, 0x5e, 0x9e, 0x96, 0x60, 0x0, 0x92, 0x24, 0x79, 0x75, 0xce, 0x9d, 0x1, 0x4, 0x41, 0xd0, 0xfe, 0xd6, 0x2, 0xb0, 0x2, 0x60, 0x8c, 0xb9, 0xab, 0xe8, 0x1f, 0x6b, 0xed, 0x6d, 0x5e, 0xae, 0xce, 0x2, 0xb4, 0xd6, 0x17, 0x5a, 0x6b, 0x7, 0xcc, 0x3, 0xd4, 0x6a, 0xb5, 0x37, 0xad, 0xf5, 0xc5, 0x4f, 0x1, 0x41, 0x10, 0x7c, 0x19, 0x7c, 0x90, 0x3, 0xc7, 0xc0, 0xa0, 0xe0, 0xf, 0x72, 0xef, 0x9b, 0x84, 0x10, 0xdb, 0x79, 0xd9, 0x9f, 0x5, 0x44, 0x51, 0x94, 0x9, 0x21, 0x5a, 0x40, 0x6, 0x64, 0x42, 0x88, 0x56, 0x14, 0x45, 0x59, 0x19, 0x1e, 0x8f, 0xc7, 0x8b, 0x52, 0xca, 0xe, 0x80, 0x73, 0xee, 0x12, 0xa, 0xbf, 0x90, 0x24, 0x49, 0x7f, 0x38, 0x1c, 0x1e, 0x3, 0x34, 0x1a, 0x8d, 0x7e, 0x11, 0x54, 0x4a, 0x2d, 0x48, 0x29, 0x77, 0xac, 0xb5, 0x1d, 0xef, 0xfd, 0x32, 0xd0, 0x9b, 0x4c, 0x26, 0x5d, 0xa8, 0xd8, 0xc4, 0xb2, 0xf2, 0xf9, 0x4c, 0x55, 0xbd, 0x48, 0xbf, 0xe8, 0x1d, 0x78, 0x70, 0xce, 0x9d, 0x64, 0x59, 0xb6, 0x35, 0x85, 0xff, 0x87, 0x3e, 0x1, 0x53, 0x7, 0x87, 0x11, 0xd3, 0x3a, 0x9b, 0x9e, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
|
||||
};
|
||||
|
||||
static const unsigned char icon_snap_png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x6, 0x0, 0x0, 0x0, 0x1f, 0xf3, 0xff, 0x61, 0x0, 0x0, 0x0, 0x6, 0x62, 0x4b, 0x47, 0x44, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x0, 0x0, 0x0, 0xc2, 0x49, 0x44, 0x41, 0x54, 0x38, 0x8d, 0xad, 0x90, 0xbd, 0xa, 0xc2, 0x30, 0x14, 0x85, 0xbf, 0x5b, 0x5c, 0x23, 0xe8, 0x6c, 0x9f, 0xc1, 0xb7, 0xd0, 0x47, 0xd1, 0x47, 0x70, 0x48, 0xa1, 0x43, 0x57, 0xe9, 0xd3, 0x88, 0x93, 0xef, 0xe0, 0xea, 0x5c, 0x9d, 0x1d, 0xb2, 0x96, 0xc6, 0xa1, 0x9, 0xd4, 0xd8, 0xd8, 0x4a, 0xfd, 0x20, 0x10, 0xee, 0xcf, 0xe1, 0xdc, 0x3, 0x1d, 0x8c, 0x31, 0xd6, 0x18, 0x63, 0x9, 0x88, 0xd5, 0x1, 0x92, 0xbe, 0xe2, 0x2f, 0x4c, 0x16, 0x90, 0x98, 0xb5, 0x21, 0x94, 0x52, 0xf2, 0x17, 0x7, 0x6f, 0x7c, 0xb, 0x2b, 0xc6, 0x64, 0x7, 0xb3, 0xa1, 0x1, 0x5b, 0x14, 0x29, 0x50, 0x2, 0x1b, 0x0, 0x44, 0x2e, 0x34, 0xcd, 0x41, 0xb2, 0xec, 0x6, 0x20, 0xdd, 0x61, 0x6f, 0xdf, 0x7, 0xe4, 0x96, 0xaf, 0xc0, 0x32, 0xd0, 0x7d, 0x2, 0x6b, 0xd1, 0xba, 0x4a, 0xfc, 0xdd, 0x91, 0xdb, 0x4b, 0xb7, 0x7c, 0x2, 0x56, 0xd4, 0x75, 0xa, 0x9c, 0x81, 0x5, 0x70, 0x84, 0xe1, 0xc, 0x5a, 0xdb, 0x75, 0xbd, 0x17, 0xad, 0x1f, 0x92, 0xe7, 0x77, 0x60, 0xe7, 0x7a, 0x5b, 0x80, 0x44, 0x29, 0x25, 0xfe, 0xf5, 0x8, 0x28, 0x0, 0xb7, 0xd8, 0x46, 0xa0, 0x75, 0xe5, 0xbe, 0xf3, 0x31, 0xe, 0x7e, 0x23, 0xcc, 0xc2, 0x3a, 0xc2, 0xb9, 0x58, 0xfd, 0x83, 0xc9, 0x2, 0x63, 0x78, 0x1, 0x4a, 0x50, 0x70, 0x86, 0xcc, 0x86, 0x2, 0x4, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
|
||||
static const unsigned char icon_snap_grid_png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x6, 0x0, 0x0, 0x0, 0x1f, 0xf3, 0xff, 0x61, 0x0, 0x0, 0x0, 0x4, 0x73, 0x42, 0x49, 0x54, 0x8, 0x8, 0x8, 0x8, 0x7c, 0x8, 0x64, 0x88, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xe, 0xc4, 0x0, 0x0, 0xe, 0xc4, 0x1, 0x95, 0x2b, 0xe, 0x1b, 0x0, 0x0, 0x0, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x0, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63, 0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x0, 0x0, 0x0, 0xc2, 0x49, 0x44, 0x41, 0x54, 0x38, 0x8d, 0xad, 0x90, 0xbd, 0xa, 0xc2, 0x30, 0x14, 0x85, 0xbf, 0x5b, 0x5c, 0x23, 0xe8, 0x6c, 0x9f, 0xc1, 0xb7, 0xd0, 0x47, 0xd1, 0x47, 0x70, 0x48, 0xa1, 0x43, 0x57, 0xe9, 0xd3, 0x88, 0x93, 0xef, 0xe0, 0xea, 0x5c, 0x9d, 0x1d, 0xb2, 0x96, 0xc6, 0xa1, 0x9, 0xd4, 0xd8, 0xd8, 0x4a, 0xfd, 0x20, 0x10, 0xee, 0xcf, 0xe1, 0xdc, 0x3, 0x1d, 0x8c, 0x31, 0xd6, 0x18, 0x63, 0x9, 0x88, 0xd5, 0x1, 0x92, 0xbe, 0xe2, 0x2f, 0x4c, 0x16, 0x90, 0x98, 0xb5, 0x21, 0x94, 0x52, 0xf2, 0x17, 0x7, 0x6f, 0x7c, 0xb, 0x2b, 0xc6, 0x64, 0x7, 0xb3, 0xa1, 0x1, 0x5b, 0x14, 0x29, 0x50, 0x2, 0x1b, 0x0, 0x44, 0x2e, 0x34, 0xcd, 0x41, 0xb2, 0xec, 0x6, 0x20, 0xdd, 0x61, 0x6f, 0xdf, 0x7, 0xe4, 0x96, 0xaf, 0xc0, 0x32, 0xd0, 0x7d, 0x2, 0x6b, 0xd1, 0xba, 0x4a, 0xfc, 0xdd, 0x91, 0xdb, 0x4b, 0xb7, 0x7c, 0x2, 0x56, 0xd4, 0x75, 0xa, 0x9c, 0x81, 0x5, 0x70, 0x84, 0xe1, 0xc, 0x5a, 0xdb, 0x75, 0xbd, 0x17, 0xad, 0x1f, 0x92, 0xe7, 0x77, 0x60, 0xe7, 0x7a, 0x5b, 0x80, 0x44, 0x29, 0x25, 0xfe, 0xf5, 0x8, 0x28, 0x0, 0xb7, 0xd8, 0x46, 0xa0, 0x75, 0xe5, 0xbe, 0xf3, 0x31, 0xe, 0x7e, 0x23, 0xcc, 0xc2, 0x3a, 0xc2, 0xb9, 0x58, 0xfd, 0x83, 0xc9, 0x2, 0x63, 0x78, 0x1, 0x4a, 0x50, 0x70, 0x86, 0xcc, 0x86, 0x2, 0x4, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
|
||||
};
|
||||
|
||||
static const unsigned char icon_stop_png[] = {
|
||||
|
|
Loading…
Reference in a new issue