From 85b1f160040c085645a33273fc30d1ce01a56f0a Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Sun, 26 Aug 2012 23:59:05 +0200 Subject: [PATCH] =?UTF-8?q?app,cursors:=20add=20side=20and=20corner=20curs?= =?UTF-8?q?ors=20in=2045=C2=B0=20steps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit So sides also for corners and corners also for sides, just to confuse the reader. --- app/widgets/gimpcursor.c | 72 +++++++++++++++++++++++++++ app/widgets/widgets-enums.h | 8 +++ cursors/Makefile.am | 10 +++- cursors/cursor-corner-bottom.png | Bin 0 -> 190 bytes cursors/cursor-corner-left.png | Bin 0 -> 187 bytes cursors/cursor-corner-right.png | Bin 0 -> 182 bytes cursors/cursor-corner-top.png | Bin 0 -> 193 bytes cursors/cursor-side-bottom-left.png | Bin 0 -> 264 bytes cursors/cursor-side-bottom-right.png | Bin 0 -> 264 bytes cursors/cursor-side-top-left.png | Bin 0 -> 245 bytes cursors/cursor-side-top-right.png | Bin 0 -> 250 bytes cursors/gimp-tool-cursors.xcf | Bin 64376 -> 73399 bytes 12 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 cursors/cursor-corner-bottom.png create mode 100644 cursors/cursor-corner-left.png create mode 100644 cursors/cursor-corner-right.png create mode 100644 cursors/cursor-corner-top.png create mode 100644 cursors/cursor-side-bottom-left.png create mode 100644 cursors/cursor-side-bottom-right.png create mode 100644 cursors/cursor-side-top-left.png create mode 100644 cursors/cursor-side-top-right.png diff --git a/app/widgets/gimpcursor.c b/app/widgets/gimpcursor.c index f09dcd3163..eb7b4eaee6 100644 --- a/app/widgets/gimpcursor.c +++ b/app/widgets/gimpcursor.c @@ -44,20 +44,36 @@ #define cursor_color_picker_y_hot 30 #define cursor_corner_top_left_x_hot 10 #define cursor_corner_top_left_y_hot 10 +#define cursor_corner_top_x_hot 10 +#define cursor_corner_top_y_hot 10 #define cursor_corner_top_right_x_hot 10 #define cursor_corner_top_right_y_hot 10 +#define cursor_corner_left_x_hot 10 +#define cursor_corner_left_y_hot 10 +#define cursor_corner_right_x_hot 10 +#define cursor_corner_right_y_hot 10 #define cursor_corner_bottom_left_x_hot 10 #define cursor_corner_bottom_left_y_hot 10 +#define cursor_corner_bottom_x_hot 10 +#define cursor_corner_bottom_y_hot 10 #define cursor_corner_bottom_right_x_hot 10 #define cursor_corner_bottom_right_y_hot 10 +#define cursor_side_top_left_x_hot 10 +#define cursor_side_top_left_y_hot 10 #define cursor_side_top_x_hot 10 #define cursor_side_top_y_hot 10 +#define cursor_side_top_right_x_hot 10 +#define cursor_side_top_right_y_hot 10 #define cursor_side_left_x_hot 10 #define cursor_side_left_y_hot 10 #define cursor_side_right_x_hot 10 #define cursor_side_right_y_hot 10 +#define cursor_side_bottom_left_x_hot 10 +#define cursor_side_bottom_left_y_hot 10 #define cursor_side_bottom_x_hot 10 #define cursor_side_bottom_y_hot 10 +#define cursor_side_bottom_right_x_hot 10 +#define cursor_side_bottom_right_y_hot 10 typedef struct _GimpCursor GimpCursor; @@ -111,22 +127,46 @@ static GimpCursor gimp_cursors[] = cursor_corner_top_left, cursor_corner_top_left_x_hot, cursor_corner_top_left_y_hot }, + { + cursor_corner_top, + cursor_corner_top_x_hot, cursor_corner_top_y_hot + }, { cursor_corner_top_right, cursor_corner_top_right_x_hot, cursor_corner_top_right_y_hot }, + { + cursor_corner_left, + cursor_corner_left_x_hot, cursor_corner_left_y_hot + }, + { + cursor_corner_right, + cursor_corner_right_x_hot, cursor_corner_right_y_hot + }, { cursor_corner_bottom_left, cursor_corner_bottom_left_x_hot, cursor_corner_bottom_left_y_hot }, + { + cursor_corner_bottom, + cursor_corner_bottom_x_hot, cursor_corner_bottom_y_hot + }, { cursor_corner_bottom_right, cursor_corner_bottom_right_x_hot, cursor_corner_bottom_right_y_hot }, + { + cursor_side_top_left, + cursor_side_top_left_x_hot, cursor_side_top_left_y_hot + }, { cursor_side_top, cursor_side_top_x_hot, cursor_side_top_y_hot }, + { + cursor_side_top_right, + cursor_side_top_right_x_hot, cursor_side_top_right_y_hot + }, { cursor_side_left, cursor_side_left_x_hot, cursor_side_left_y_hot @@ -135,9 +175,17 @@ static GimpCursor gimp_cursors[] = cursor_side_right, cursor_side_right_x_hot, cursor_side_right_y_hot }, + { + cursor_side_bottom_left, + cursor_side_bottom_left_x_hot, cursor_side_bottom_left_y_hot + }, { cursor_side_bottom, cursor_side_bottom_x_hot, cursor_side_bottom_y_hot + }, + { + cursor_side_bottom_right, + cursor_side_bottom_right_x_hot, cursor_side_bottom_right_y_hot } }; @@ -278,6 +326,14 @@ gimp_cursor_new (GdkDisplay *display, { cursor_type = GIMP_CURSOR_CORNER_TOP_LEFT; } + else if (cursor_type == GIMP_CURSOR_CORNER_LEFT) + { + cursor_type = GIMP_CURSOR_CORNER_RIGHT; + } + else if (cursor_type == GIMP_CURSOR_CORNER_RIGHT) + { + cursor_type = GIMP_CURSOR_CORNER_LEFT; + } else if (cursor_type == GIMP_CURSOR_CORNER_BOTTOM_LEFT) { cursor_type = GIMP_CURSOR_CORNER_BOTTOM_RIGHT; @@ -286,6 +342,14 @@ gimp_cursor_new (GdkDisplay *display, { cursor_type = GIMP_CURSOR_CORNER_BOTTOM_LEFT; } + else if (cursor_type == GIMP_CURSOR_SIDE_TOP_LEFT) + { + cursor_type = GIMP_CURSOR_SIDE_TOP_RIGHT; + } + else if (cursor_type == GIMP_CURSOR_SIDE_TOP_RIGHT) + { + cursor_type = GIMP_CURSOR_SIDE_TOP_LEFT; + } else if (cursor_type == GIMP_CURSOR_SIDE_LEFT) { cursor_type = GIMP_CURSOR_SIDE_RIGHT; @@ -294,6 +358,14 @@ gimp_cursor_new (GdkDisplay *display, { cursor_type = GIMP_CURSOR_SIDE_LEFT; } + else if (cursor_type == GIMP_CURSOR_SIDE_BOTTOM_LEFT) + { + cursor_type = GIMP_CURSOR_SIDE_BOTTOM_RIGHT; + } + else if (cursor_type == GIMP_CURSOR_SIDE_BOTTOM_RIGHT) + { + cursor_type = GIMP_CURSOR_SIDE_BOTTOM_LEFT; + } } /* prepare the main cursor */ diff --git a/app/widgets/widgets-enums.h b/app/widgets/widgets-enums.h index ae8f5ae1ed..48e1cae2c0 100644 --- a/app/widgets/widgets-enums.h +++ b/app/widgets/widgets-enums.h @@ -191,13 +191,21 @@ typedef enum /*< skip >*/ GIMP_CURSOR_ZOOM, GIMP_CURSOR_COLOR_PICKER, GIMP_CURSOR_CORNER_TOP_LEFT, + GIMP_CURSOR_CORNER_TOP, GIMP_CURSOR_CORNER_TOP_RIGHT, + GIMP_CURSOR_CORNER_LEFT, + GIMP_CURSOR_CORNER_RIGHT, GIMP_CURSOR_CORNER_BOTTOM_LEFT, + GIMP_CURSOR_CORNER_BOTTOM, GIMP_CURSOR_CORNER_BOTTOM_RIGHT, + GIMP_CURSOR_SIDE_TOP_LEFT, GIMP_CURSOR_SIDE_TOP, + GIMP_CURSOR_SIDE_TOP_RIGHT, GIMP_CURSOR_SIDE_LEFT, GIMP_CURSOR_SIDE_RIGHT, + GIMP_CURSOR_SIDE_BOTTOM_LEFT, GIMP_CURSOR_SIDE_BOTTOM, + GIMP_CURSOR_SIDE_BOTTOM_RIGHT, GIMP_CURSOR_LAST } GimpCursorType; diff --git a/cursors/Makefile.am b/cursors/Makefile.am index 262a216eeb..577b77edf2 100644 --- a/cursors/Makefile.am +++ b/cursors/Makefile.am @@ -5,16 +5,24 @@ CURSOR_IMAGES = \ cursor-color-picker.png \ cursor-corner-bottom-left.png \ cursor-corner-bottom-right.png \ + cursor-corner-bottom.png \ + cursor-corner-left.png \ + cursor-corner-right.png \ cursor-corner-top-left.png \ cursor-corner-top-right.png \ - cursor-crosshair.png \ + cursor-corner-top.png \ cursor-crosshair-small.png \ + cursor-crosshair.png \ cursor-mouse.png \ cursor-move.png \ cursor-none.png \ + cursor-side-bottom-left.png \ + cursor-side-bottom-right.png \ cursor-side-bottom.png \ cursor-side-left.png \ cursor-side-right.png \ + cursor-side-top-left.png \ + cursor-side-top-right.png \ cursor-side-top.png \ cursor-zoom.png \ \ diff --git a/cursors/cursor-corner-bottom.png b/cursors/cursor-corner-bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..60faf18e6beb967926d54d06e60a5e086d0e7896 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJR!V5ca*X`6M4AI`nk`f-5*Z=iXg$$4>?|#ouDtvs~}&`JOHKzb(Gigwy`_ n literal 0 HcmV?d00001 diff --git a/cursors/cursor-corner-left.png b/cursors/cursor-corner-left.png new file mode 100644 index 0000000000000000000000000000000000000000..443fa519eec529e1aa88f5e622bc3ee74ddfa59c GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJCQlc~kch)?r#f;SP!M3g`|m%q z-SPe(Ec!cV%jF#G*1h!V)+Xkr<-QzwCFgz^sn~MI`Rn8%#h{p9wWrfX99 g(p-uy0{fq^Jaqc literal 0 HcmV?d00001 diff --git a/cursors/cursor-corner-top.png b/cursors/cursor-corner-top.png new file mode 100644 index 0000000000000000000000000000000000000000..e38e6c87e93826cc87f65612f591d1ea57a2e95c GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ4o?@ykch)?C)x5fDDbqdHf9!o z@IY?4_(OpWpJhbY{!46eoBZ8(i)Us0tS$j3j-N&hYC1mdU$q~e7LKT1Yc};pTfTXM z)wAx}#&xi*B#4hM z0~6j%M=uc(ODW+BV0#=%004*x$tCs#P9*ldY7%g%ApxHv63*7c=>&fT7yKoOv#tn4 z)}9|SI+n;pP-;$OoWWsp!l$b(A*&`Kgy2Pf$G0=XFmy#~;#UG%Yt9;XC%Q%EdG6MA z?X9)XlcV|S!59-#?IN4NvMeFDOPYXGO385?i?^Bhm*VD|Y#T(4`||>>>lj-)IcSvt O00001}Ndn#;?zPVIT(%`4011 zFV5a6A~}}AbB;g7O)=-m@XQ3{neepoQOr32@Du|@;aY21bIw1cl;W)E>dM~F<2cF? z!p%AN*m+9VhraKRv>nI{SZj~`u4n?H>pEeKsXk`#FXiU5*|vz9uCFK3DHvOjG7cO7 O0000?Ti=SY?FXZh^g8RB;QR7&Yr0g^guE$}w;Rpz_} z4xDpFo%3qAF-G>tc@-Q0Kx@sqEJRYr-(H9Jv-e)+oF6g9*Po}XTNl>a8n^Rq1%wc4 vx+9%{P)Z5s92@N!eid`GQY>3JUpl?sPJ$X&f!47=00000NkvXXu0mjf9Q9{O literal 0 HcmV?d00001 diff --git a/cursors/cursor-side-top-right.png b/cursors/cursor-side-top-right.png new file mode 100644 index 0000000000000000000000000000000000000000..4991ca7a1f83da570cc70de98ad254b1671921e5 GIT binary patch literal 250 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 Qx2DQsuAffB#n!w316%Y{8~^|S