Merge pull request #5307 from MarianoGnu/master

TextureRegion improvements
This commit is contained in:
Rémi Verschelde 2016-06-26 09:43:45 +02:00 committed by GitHub
commit b02d67be30
13 changed files with 709 additions and 356 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

View file

@ -0,0 +1,104 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<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"
viewBox="0 0 16 16"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_zoom.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:docname="icon_zoom_more.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
inkscape:cx="3.7772222"
inkscape:cy="13.690414"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
units="px"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="false"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:window-width="1920"
inkscape:window-height="1018"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid3336" />
</sodipodi:namedview>
<metadata
id="metadata7">
<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>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
<g
id="layer1-6"
inkscape:label="Capa 1"
transform="translate(-201.5751,205.0256)">
<g
inkscape:label="Layer 1"
id="layer1-0-4"
transform="matrix(48.459085,0,0,53.967813,-126.63031,-55835.691)">
<g
transform="translate(0.51853114,-0.01988754)"
id="g4182-8">
<rect
style="fill:#e0e0e0;fill-opacity:0.99607843"
id="rect4167"
width="0.042994563"
height="0.26204652"
x="6.3978949"
y="1050.0524"
rx="0"
ry="0" />
<rect
ry="0"
rx="0"
y="1050.165"
x="6.2806396"
height="0.040943757"
width="0.28011176"
id="rect4169-6"
style="fill:#e0e0e0;fill-opacity:0.99607843" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3 KiB

File diff suppressed because it is too large Load diff

View file

@ -40,69 +40,73 @@
#include "scene/resources/style_box.h"
#include "scene/resources/texture.h"
class TextureRegionEditor : public HBoxContainer {
class TextureRegionEditor : public Control {
OBJ_TYPE(TextureRegionEditor, HBoxContainer );
enum RegionType {
REGION_TEXTURE_REGION,
REGION_PATCH_MARGIN
OBJ_TYPE(TextureRegionEditor, Control );
enum SnapMode {
SNAP_NONE,
SNAP_PIXEL,
SNAP_GRID,
SNAP_AUTOSLICE
};
friend class TextureRegionEditorPlugin;
ToolButton *region_button;
ToolButton *margin_button;
ToolButton *b_snap_enable;
ToolButton *b_snap_grid;
MenuButton *snap_mode_button;
TextureFrame *icon_zoom;
HSlider *zoom;
SpinBox *zoom_value;
ToolButton *zoom_in;
ToolButton *zoom_reset;
ToolButton *zoom_out;
HBoxContainer * hb_grid; //For showing/hiding the grid controls when changing the SnapMode
SpinBox *sb_step_y;
SpinBox *sb_step_x;
SpinBox *sb_off_y;
SpinBox *sb_off_x;
SpinBox *sb_sep_y;
SpinBox *sb_sep_x;
Control *edit_draw;
VScrollBar *vscroll;
HScrollBar *hscroll;
EditorNode *editor;
AcceptDialog *dlg_editor;
UndoRedo* undo_redo;
Vector2 draw_ofs;
float draw_zoom;
bool updating_scroll;
bool use_snap;
bool snap_show_grid;
int snap_mode;
Vector2 snap_offset;
Vector2 snap_step;
Vector2 snap_separation;
String node_type;
Patch9Frame *node_patch9;
Sprite *node_sprite;
StyleBoxTexture *obj_styleBox;
AtlasTexture *atlas_tex;
Ref<StyleBoxTexture> obj_styleBox;
Ref<AtlasTexture> atlas_tex;
int editing_region;
Rect2 rect;
Rect2 rect_prev;
Rect2 tex_region;
float prev_margin;
int edited_margin;
List<Rect2> autoslice_cache;
bool drag;
bool creating;
Vector2 drag_from;
int drag_index;
AcceptDialog *error;
void _set_use_snap(bool p_use);
void _set_show_grid(bool p_show);
void _set_snap_mode(int p_mode);
void _set_snap_off_x(float p_val);
void _set_snap_off_y(float p_val);
void _set_snap_step_x(float p_val);
void _set_snap_step_y(float p_val);
void _set_snap_sep_x(float p_val);
void _set_snap_sep_y(float p_val);
void _zoom_in();
void _zoom_reset();
void _zoom_out();
void apply_rect(const Rect2& rect);
protected:
@ -114,9 +118,7 @@ protected:
public:
void _edit_node(int tex_region);
void _edit_region();
void _edit_margin();
void _region_draw();
void _region_input(const InputEvent &p_input);
void _scroll_changed(float);
@ -130,11 +132,12 @@ class TextureRegionEditorPlugin : public EditorPlugin
{
OBJ_TYPE( TextureRegionEditorPlugin, EditorPlugin );
Button *region_button;
TextureRegionEditor *region_editor;
EditorNode *editor;
public:
virtual String get_name() const { return "SpriteRegion"; }
virtual String get_name() const { return "TextureRegion"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;