From 871188a1d86290e701bdf4b9940ae9aa6b2bd3c6 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 20 Aug 2018 10:44:27 +0200 Subject: [PATCH 1/5] Navigator should use a different icon while panning The Navigator uses the same hand icon regardless whether panning the red square or not, this branch tries to fix that, #4738 Includes a cleanup of icon names, i.e. the crosshair should not be called the hand. --- .../themed/png/dark/hand-open-hicontrast.png | Bin 0 -> 772 bytes .../themed/png/light/hand-open-hicontrast.png | Bin 0 -> 772 bytes .../themed/svg/hand-open-hicontrast.svg | 126 ++++++++++++++++++ rtgui/cropwindow.cc | 4 +- rtgui/cursormanager.cc | 24 ++-- rtgui/cursormanager.h | 36 ++++- rtgui/curveeditor.cc | 2 +- rtgui/edit.cc | 2 +- rtgui/edit.h | 2 +- rtgui/gradient.cc | 2 +- rtgui/previewwindow.cc | 7 +- 11 files changed, 179 insertions(+), 26 deletions(-) create mode 100644 rtdata/images/themed/png/dark/hand-open-hicontrast.png create mode 100644 rtdata/images/themed/png/light/hand-open-hicontrast.png create mode 100644 rtdata/images/themed/svg/hand-open-hicontrast.svg diff --git a/rtdata/images/themed/png/dark/hand-open-hicontrast.png b/rtdata/images/themed/png/dark/hand-open-hicontrast.png new file mode 100644 index 0000000000000000000000000000000000000000..2ee26e3751ae13e65e27a7050edf7a877a4b1c82 GIT binary patch literal 772 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaA1(mo)lsM-XR2F5XXOu8FJ1aPr zloVwqm6l}Y=jjG#Bo?JQ=4584DrA(D6jnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}t=G{7gs)xE$6$OHmzFaRBpFW*Fefsj{%YXm=y?OKIJ9q9}yLN5cwr#oL??5r4SrX(I%)rd~;)CAj zf1kfj{^l|N-xXoo=$y}`%Yu*m+bQ?s$LD+1o&SD(`2FwkwONn9+yJ_i#nZ(xMB{wy zq~}G=1_CXbPOVu{48iO<>h9&9_x@irlAGZ8#{R9j^4nK_lgyT0^tAG_e%;m96ZB2j zm*L~t6@O%y_O6g+ob$fwH@lOe}9&5C&f?}?FL|mSO+g}fj zKNAyGc7&IgzchWoQ1wabw8~c+=dri2cwQ^&G^l?r)l5w z#<|;ESEiiRZkWBbNuW8_?bQLt#B~mV(H;ed{&t?UnJ8JZ;pD$to1%^-Gf&UBZhg+a z?)W$7znBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}t=G{7gs)xE$6$OHmzFaRBpFW*Fefsj{%YXm=y?OKIJ9q9}yLN5cwr#oL??5r4SrX(I%)rd~;)CAj zf1kfj{^l|N-xXoo=$y}`%Yu*m+bQ?s$LD+1o&SD(`2FwkwONn9+yJ_i#nZ(xMB{wy zq~}G=1_CXbPOVu{48iO<>h9&9_x@irlAGZ8#{R9j^4nK_lgyT0^tAG_e%;m96ZB2j zm*L~t6@O%y_O6g+ob$fwH@lOe}9&5C&f?}?FL|mSO+g}fj zKNAyGc7&IgzchWoQ1wabw8~c+=dri2cwQ^&G^l?r)l5w z#<|;ESEiiRZkWBbNuW8_?bQLt#B~mV(H;ed{&t?UnJ8JZ;pD$to1%^-Gf&UBZhg+a z?)W$7z + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index 77118277c..2b3e7f342 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -1251,7 +1251,7 @@ void CropWindow::updateCursor (int x, int y) if (onArea (CropObserved, x, y)) { newType = CSMove; } else { - newType = CSOpenHand; + newType = CSHandOpen; } } else if (tm == TMSpotWB) { newType = CSSpotWB; @@ -1284,7 +1284,7 @@ void CropWindow::updateCursor (int x, int y) } else if (state == SCropMove || state == SCropWinMove || state == SObservedMove) { newType = CSMove; } else if (state == SHandMove || state == SCropImgMove) { - newType = CSClosedHand; + newType = CSHandClosed; } else if (state == SResizeW1 || state == SResizeW2) { newType = CSResizeWidth; } else if (state == SResizeH1 || state == SResizeH2) { diff --git a/rtgui/cursormanager.cc b/rtgui/cursormanager.cc index 6c280ee8c..57805939a 100644 --- a/rtgui/cursormanager.cc +++ b/rtgui/cursormanager.cc @@ -51,8 +51,9 @@ void CursorManager::init (Glib::RefPtr mainWindow) cAdd = Gdk::Cursor::create (display, Gdk::PLUS); cWait = Gdk::Cursor::create (display, Gdk::CLOCK); - Glib::RefPtr hand = RTImage::createFromFile ("crosshair-hicontrast.png"); - Glib::RefPtr close_hand = RTImage::createFromFile ("hand-closed-hicontrast.png"); + Glib::RefPtr crosshair = RTImage::createFromFile ("crosshair-hicontrast.png"); + Glib::RefPtr hand_open = RTImage::createFromFile ("hand-open-hicontrast.png"); + Glib::RefPtr hand_closed = RTImage::createFromFile ("hand-closed-hicontrast.png"); Glib::RefPtr wbpick = RTImage::createFromFile ("color-picker-hicontrast.png"); Glib::RefPtr cpick = RTImage::createFromFile ("color-picker-add-hicontrast.png"); Glib::RefPtr empty = RTImage::createFromFile ("empty.png"); @@ -61,8 +62,9 @@ void CursorManager::init (Glib::RefPtr mainWindow) Glib::RefPtr move1DV = RTImage::createFromFile ("node-move-y-hicontrast.png"); Glib::RefPtr moveRotate = RTImage::createFromFile ("rotate-aroundnode-hicontrast.png"); - cHand = hand ? Gdk::Cursor::create (cAdd->get_display(), hand, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cClosedHand = close_hand ? Gdk::Cursor::create (cAdd->get_display(), close_hand, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); + cCrosshair = crosshair ? Gdk::Cursor::create (cAdd->get_display(), crosshair, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); + cHandOpen = hand_open ? Gdk::Cursor::create (cAdd->get_display(), hand_open, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); + cHandClosed = hand_closed ? Gdk::Cursor::create (cAdd->get_display(), hand_closed, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); cWB = wbpick ? Gdk::Cursor::create (cAdd->get_display(), wbpick, 4, 21) : Gdk::Cursor::create (cAdd->get_display(), Gdk::ARROW); cAddPicker = cpick ? Gdk::Cursor::create (cAdd->get_display(), cpick, 4, 21) : Gdk::Cursor::create (cAdd->get_display(), Gdk::ARROW); cHidden = empty ? Gdk::Cursor::create (cAdd->get_display(), empty, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); @@ -82,10 +84,12 @@ void CursorManager::setCursor (Glib::RefPtr window, CursorShape sha // set_cursor without any arguments to select system default { window->set_cursor (); - } else if (shape == CSOpenHand) { - window->set_cursor (cHand); - } else if (shape == CSClosedHand) { - window->set_cursor (cClosedHand); + } else if (shape == CSCrosshair) { + window->set_cursor (cCrosshair); + } else if (shape == CSHandOpen) { + window->set_cursor (cHandOpen); + } else if (shape == CSHandClosed) { + window->set_cursor (cHandClosed); } else if (shape == CSMove) { window->set_cursor (cCropMove); } else if (shape == CSResizeWidth) { @@ -115,13 +119,13 @@ void CursorManager::setCursor (Glib::RefPtr window, CursorShape sha } else if (shape == CSAddColPicker) { window->set_cursor (cAddPicker); } else if (shape == CSCropSelect) { - window->set_cursor (cHand); + window->set_cursor (cCrosshair); } else if (shape == CSMoveLeft) { window->set_cursor (cLeftTanMove); } else if (shape == CSMoveRight) { window->set_cursor (cRightTanMove); } else if (shape == CSStraighten) { - window->set_cursor (cHand); + window->set_cursor (cCrosshair); } else if (shape == CSWait) { window->set_cursor (cWait); } else if (shape == CSPlus) { diff --git a/rtgui/cursormanager.h b/rtgui/cursormanager.h index fcd856509..c48648931 100644 --- a/rtgui/cursormanager.h +++ b/rtgui/cursormanager.h @@ -22,11 +22,32 @@ #include enum CursorShape { - CSUndefined, CSArrow, CSOpenHand, CSClosedHand, CSMove, CSMoveLeft, - CSMoveRight, CSResizeWidth, CSResizeHeight, CSResizeDiagonal, - CSResizeTopLeft, CSResizeTopRight, CSResizeBottomLeft, CSResizeBottomRight, - CSMove2D, CSMove1DH, CSMove1DV, CSMoveRotate, - CSSpotWB, CSAddColPicker, CSCropSelect, CSStraighten, CSPlus, CSWait, CSEmpty + CSUndefined, + CSArrow, + CSCrosshair, + CSHandOpen, + CSHandClosed, + CSMove, + CSMoveLeft, + CSMoveRight, + CSResizeWidth, + CSResizeHeight, + CSResizeDiagonal, + CSResizeTopLeft, + CSResizeTopRight, + CSResizeBottomLeft, + CSResizeBottomRight, + CSMove2D, + CSMove1DH, + CSMove1DV, + CSMoveRotate, + CSSpotWB, + CSAddColPicker, + CSCropSelect, + CSStraighten, + CSPlus, + CSWait, + CSEmpty }; class CursorManager @@ -48,8 +69,9 @@ private: Glib::RefPtr cCropSelection; Glib::RefPtr cAdd; Glib::RefPtr cWait; - Glib::RefPtr cHand; - Glib::RefPtr cClosedHand; + Glib::RefPtr cCrosshair; + Glib::RefPtr cHandOpen; + Glib::RefPtr cHandClosed; Glib::RefPtr cWB; Glib::RefPtr cAddPicker; Glib::RefPtr cHidden; diff --git a/rtgui/curveeditor.cc b/rtgui/curveeditor.cc index 8b319ecbe..a65f8b451 100644 --- a/rtgui/curveeditor.cc +++ b/rtgui/curveeditor.cc @@ -443,5 +443,5 @@ CursorShape CurveEditor::getCursor(const int objectID) return CSResizeHeight; } - return CSOpenHand; + return CSHandOpen; } diff --git a/rtgui/edit.cc b/rtgui/edit.cc index 9ee0d63ba..e68fec15c 100644 --- a/rtgui/edit.cc +++ b/rtgui/edit.cc @@ -1140,7 +1140,7 @@ CursorShape EditDataProvider::getCursor(int objectID) currSubscriber->getCursor(objectID); } - return CSOpenHand; + return CSHandOpen; } EditSubscriber* EditDataProvider::getCurrSubscriber() diff --git a/rtgui/edit.h b/rtgui/edit.h index c6878c54a..611d95e1c 100644 --- a/rtgui/edit.h +++ b/rtgui/edit.h @@ -717,7 +717,7 @@ inline EditDataProvider* EditSubscriber::getEditProvider () { } inline CursorShape EditSubscriber::getCursor (const int objectID) { - return CSOpenHand; + return CSHandOpen; } inline bool EditSubscriber::mouseOver (const int modifierKey) { diff --git a/rtgui/gradient.cc b/rtgui/gradient.cc index 88e67adb3..40c9f01ab 100644 --- a/rtgui/gradient.cc +++ b/rtgui/gradient.cc @@ -346,7 +346,7 @@ CursorShape Gradient::getCursor(const int objectID) return CSMove2D; default: - return CSOpenHand; + return CSHandOpen; } } diff --git a/rtgui/previewwindow.cc b/rtgui/previewwindow.cc index 06ce3ad18..5c7cce997 100644 --- a/rtgui/previewwindow.cc +++ b/rtgui/previewwindow.cc @@ -230,8 +230,9 @@ bool PreviewWindow::on_motion_notify_event (GdkEventMotion* event) mainCropWin->remoteMove ((event->x - press_x) / zoom, (event->y - press_y) / zoom); press_x = event->x; press_y = event->y; + newType = CSHandClosed; } else if (inside) { - newType = CSClosedHand; + newType = CSHandOpen; } else { newType = CSArrow; } @@ -262,8 +263,8 @@ bool PreviewWindow::on_button_press_event (GdkEventButton* event) press_x = event->x; press_y = event->y; - if (cursor_type != CSClosedHand) { - cursor_type = CSClosedHand; + if (cursor_type != CSHandClosed) { + cursor_type = CSHandClosed; CursorManager::setWidgetCursor(get_window(), cursor_type); } } From 2f7910e9810e0ef6cc4adf90a41464ee7f458106 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 28 Aug 2018 13:20:30 +0200 Subject: [PATCH 2/5] Various icon and cursor improvements #4738 - The mouse cursor now is an open hand when hovering over something which can be panned, e.g. the red square in the Navigator panel. It is a crosshair when hovering over the main preview. - When you pan the red square or the main preview, it's a closed hand. - Now the cursor changes to a crop icon when you're in crop mode. - The cursor changes as needed when you want to resize a crop edge or corner. - The cursor changes when you're in straighten mode. - The curve "add adjustment point" and "edit node in/out values" icons now contain a node in the icon and are more representative of what they do. - The small reset/undo icon is made a bit clearer. --- .../png/dark/color-picker-add-hicontrast.png | Bin 639 -> 631 bytes .../themed/png/dark/color-picker-add.png | Bin 525 -> 510 bytes ...-picker-show.png => color-picker-bars.png} | Bin 523 -> 509 bytes .../png/dark/color-picker-hicontrast.png | Bin 628 -> 596 bytes .../themed/png/dark/color-picker-hide.png | Bin 470 -> 463 bytes .../images/themed/png/dark/color-picker.png | Bin 501 -> 513 bytes .../crop-point-hicontrast.png} | Bin 417 -> 445 bytes .../themed/png/dark/crosshair-adjust.png | Bin 475 -> 483 bytes rtdata/images/themed/png/dark/edit-point.png | Bin 528 -> 490 bytes .../png/dark/node-move-nw-se-hicontrast.png | Bin 0 -> 527 bytes .../png/dark/node-move-sw-ne-hicontrast.png | Bin 0 -> 525 bytes .../png/dark/node-move-x-hicontrast.png | Bin 489 -> 495 bytes rtdata/images/themed/png/dark/node-move-x.png | Bin 407 -> 0 bytes .../png/dark/node-move-xy-hicontrast.png | Bin 524 -> 584 bytes .../images/themed/png/dark/node-move-xy.png | Bin 472 -> 0 bytes .../png/dark/node-move-y-hicontrast.png | Bin 469 -> 513 bytes rtdata/images/themed/png/dark/node-move-y.png | Bin 418 -> 0 bytes .../themed/png/dark/star-gold-hollow.png | Bin 564 -> 0 bytes rtdata/images/themed/png/dark/star-gold.png | Bin 569 -> 0 bytes rtdata/images/themed/png/dark/star-hollow.png | Bin 538 -> 0 bytes rtdata/images/themed/png/dark/star.png | Bin 540 -> 0 bytes .../themed/png/dark/template-narrow.png | Bin 0 -> 313 bytes rtdata/images/themed/png/dark/trash-show.png | Bin 700 -> 0 bytes rtdata/images/themed/png/dark/undo-small.png | Bin 436 -> 422 bytes .../png/light/color-picker-add-hicontrast.png | Bin 639 -> 631 bytes .../themed/png/light/color-picker-add.png | Bin 533 -> 513 bytes .../themed/png/light/color-picker-bars.png | Bin 0 -> 512 bytes .../png/light/color-picker-hicontrast.png | Bin 628 -> 596 bytes .../themed/png/light/color-picker-hide.png | Bin 485 -> 467 bytes .../themed/png/light/color-picker-show.png | Bin 531 -> 0 bytes .../images/themed/png/light/color-picker.png | Bin 514 -> 517 bytes .../png/light/crop-point-hicontrast.png | Bin 0 -> 445 bytes .../themed/png/light/crosshair-adjust.png | Bin 473 -> 482 bytes rtdata/images/themed/png/light/edit-point.png | Bin 493 -> 494 bytes .../png/light/node-move-nw-se-hicontrast.png | Bin 0 -> 527 bytes .../png/light/node-move-sw-ne-hicontrast.png | Bin 0 -> 525 bytes .../png/light/node-move-x-hicontrast.png | Bin 489 -> 495 bytes .../png/light/node-move-xy-hicontrast.png | Bin 524 -> 584 bytes .../images/themed/png/light/node-move-xy.png | Bin 469 -> 0 bytes .../png/light/node-move-y-hicontrast.png | Bin 469 -> 513 bytes .../images/themed/png/light/node-move-y.png | Bin 436 -> 0 bytes .../themed/png/light/star-gold-hollow.png | Bin 564 -> 0 bytes rtdata/images/themed/png/light/star-gold.png | Bin 569 -> 0 bytes .../images/themed/png/light/star-hollow.png | Bin 555 -> 0 bytes rtdata/images/themed/png/light/star.png | Bin 537 -> 0 bytes .../themed/png/light/template-narrow.png | Bin 0 -> 313 bytes rtdata/images/themed/png/light/trash-show.png | Bin 701 -> 0 bytes rtdata/images/themed/png/light/undo-small.png | Bin 476 -> 435 bytes .../svg/color-picker-add-hicontrast.svg | 64 +++---- rtdata/images/themed/svg/color-picker-add.svg | 55 +++--- ...-picker-show.svg => color-picker-bars.svg} | 57 +++--- .../themed/svg/color-picker-hicontrast.svg | 58 +++--- .../images/themed/svg/color-picker-hide.svg | 26 +-- rtdata/images/themed/svg/color-picker.svg | 59 +++--- .../themed/svg/crop-point-hicontrast.svg | 176 ++++++++++++++++++ rtdata/images/themed/svg/crosshair-adjust.svg | 38 +++- rtdata/images/themed/svg/edit-point.svg | 62 +++--- ...e-x.svg => node-move-nw-se-hicontrast.svg} | 59 +++--- ...-xy.svg => node-move-sw-ne-hicontrast.svg} | 71 +++---- .../themed/svg/node-move-x-hicontrast.svg | 35 ++-- .../themed/svg/node-move-xy-hicontrast.svg | 99 +++++++--- .../themed/svg/node-move-y-hicontrast.svg | 57 +++--- rtdata/images/themed/svg/node-move-y.svg | 120 ------------ rtdata/images/themed/svg/undo-small.svg | 5 +- rtgui/cropwindow.cc | 2 +- rtgui/cursormanager.cc | 62 +++--- rtgui/cursormanager.h | 10 +- rtgui/toolbar.cc | 2 +- 68 files changed, 651 insertions(+), 466 deletions(-) rename rtdata/images/themed/png/dark/{color-picker-show.png => color-picker-bars.png} (50%) rename rtdata/images/themed/png/{light/node-move-x.png => dark/crop-point-hicontrast.png} (59%) create mode 100644 rtdata/images/themed/png/dark/node-move-nw-se-hicontrast.png create mode 100644 rtdata/images/themed/png/dark/node-move-sw-ne-hicontrast.png delete mode 100644 rtdata/images/themed/png/dark/node-move-x.png delete mode 100644 rtdata/images/themed/png/dark/node-move-xy.png delete mode 100644 rtdata/images/themed/png/dark/node-move-y.png delete mode 100644 rtdata/images/themed/png/dark/star-gold-hollow.png delete mode 100644 rtdata/images/themed/png/dark/star-gold.png delete mode 100644 rtdata/images/themed/png/dark/star-hollow.png delete mode 100644 rtdata/images/themed/png/dark/star.png create mode 100644 rtdata/images/themed/png/dark/template-narrow.png delete mode 100644 rtdata/images/themed/png/dark/trash-show.png create mode 100644 rtdata/images/themed/png/light/color-picker-bars.png delete mode 100644 rtdata/images/themed/png/light/color-picker-show.png create mode 100644 rtdata/images/themed/png/light/crop-point-hicontrast.png create mode 100644 rtdata/images/themed/png/light/node-move-nw-se-hicontrast.png create mode 100644 rtdata/images/themed/png/light/node-move-sw-ne-hicontrast.png delete mode 100644 rtdata/images/themed/png/light/node-move-xy.png delete mode 100644 rtdata/images/themed/png/light/node-move-y.png delete mode 100644 rtdata/images/themed/png/light/star-gold-hollow.png delete mode 100644 rtdata/images/themed/png/light/star-gold.png delete mode 100644 rtdata/images/themed/png/light/star-hollow.png delete mode 100644 rtdata/images/themed/png/light/star.png create mode 100644 rtdata/images/themed/png/light/template-narrow.png delete mode 100644 rtdata/images/themed/png/light/trash-show.png rename rtdata/images/themed/svg/{color-picker-show.svg => color-picker-bars.svg} (50%) create mode 100644 rtdata/images/themed/svg/crop-point-hicontrast.svg rename rtdata/images/themed/svg/{node-move-x.svg => node-move-nw-se-hicontrast.svg} (64%) rename rtdata/images/themed/svg/{node-move-xy.svg => node-move-sw-ne-hicontrast.svg} (64%) delete mode 100644 rtdata/images/themed/svg/node-move-y.svg diff --git a/rtdata/images/themed/png/dark/color-picker-add-hicontrast.png b/rtdata/images/themed/png/dark/color-picker-add-hicontrast.png index 53eaabf6036423321b4c4e9d66920b9c5cf903f9..5dcdacf1fa9b745d4f1e739c00983c69dd7c2ba9 100644 GIT binary patch delta 380 zcmey*@||S^D`S08fKQ04dx1}Lb29@2!~g&Pf#mGjvwX8HjjU%9>{ z$S;^-x8m)~RKRkHpL*>g`XYVwp9q9Agr06sY>UT~4aUwXTFw&^xir)V6OtKIZZGbsjXuwD>(S~h x6PcgPzj&DCjIjj!yZjo{E31}g&an0S!d9szq+zRjLJ;V922WQ%mvv4FO#no9m!<#! delta 388 zcmey)@}Fe`D`S0QfKQ04dw~xF1H<<1+b>_f3}nCoBNza=oSd9Ma_`=~a4BTQq)C&` zojV5+VPazP@%3|bbV^N4{rdIm&6_tlI5>b(|NsBLb^Gr64V!>mM@L6FIl0Eh#)O3W z1fZgnloSE3{{cW%3MD~)!3>ob?#I~ZzkGUs!fA`k9~6Byrb~w$z3a%o{LB3VU+> zT#&es+FW)aK!$}d+~ z^W?uC3(}jit!_Wxs=L2?-P7}mpG77-H~7`<@#Wd-16g;DhAW=r?)e+87s&c%vu$_t niy3kC%U;;LocF`>t1bV0LzbUG-rkpij$-h1^>bP0l+XkKwrqaB delta 269 zcmeyz+{?0oi?RL;5;%MI?74I2fTVkY4^SA$0FtX$uLhDwj~)e*5WsmZ-<^ShL9isq zFZh|x@*rDPDTdAS_A#Y$U#{v}tNParC^_BJ#W6(VeCfsOOw9^BtQU0LBwqcm&vlGC zD)PC4pOgELcO&l~za!lB1tQU%tub4lZ;Y5Q@phjM=eBv-rm|cYTIbx9v33Z`@9WmO z!g$s;Aojy9RWtE7mCR*|=O^4fan$Z){J&O9_8p4a_g<$@NSjR(G{AYb*_(>>$e}7A9Ekl1ZU;he)ds~2RWbkzLV|7{Ql+XkK DRWXCt diff --git a/rtdata/images/themed/png/dark/color-picker-show.png b/rtdata/images/themed/png/dark/color-picker-bars.png similarity index 50% rename from rtdata/images/themed/png/dark/color-picker-show.png rename to rtdata/images/themed/png/dark/color-picker-bars.png index acd3699eb8acb7cc23873313193ef60bfaabe06c..66e74986496bd8fde2321070009d39bb43f0965e 100644 GIT binary patch delta 252 zcmeBX`OCb4i?QClz~>AYoIiga!Z>^OEQE3H+&N@6MDWz9Q;U92Gh<+25G)Du3ub87 z=Pym2|7zg(4Y&UPzqM+mr+CgL z+kRtq!-G4QpY&lWd3a#G2~*gCC!QwjR?iQ*7*iG9^wrw-n1#ixqw5uCJzS{ZyKw&$ zZocc%p?Bv?3tHUx_aNM?`u}4-HTKimwH0@6GQausDqB&M_0vO(J^sbBKe*JH=QZtF i{&?d4qnnr4J>k`T%9?I)KkpIHO$?r{elF{r5}E)%`+=hX delta 267 zcmey%+|9Cqi?RL;5;%MI?74I2fTVkY4^SA$0FtX$uLhDwj~)e*5WsmZ-<^ShL9isq zFZh|x@*rDPDTdAS_A#Y$U#{v}tNParC^^;B#W6(VeCfnUp(6?$tT$r{I(PohbboA- zD%gHLFHV!;p?@RmKEaRmjuu^ek95V9eu!8z;bg9ocT;x3TD64?hbI{KKNgs9W%m0; zT)d5Gd?Dg{;yTYZG?yRLdlH*szVpV^JwL+t{1l12_(}6goJ^SQBKB2h>a=IfvXzc^{ViyuQ8r)0_VVpT(5rg;#91?<%fk$n)Y8oRKIoALv2`Pgg&eb<9o)O#pJx Bg*^ZO diff --git a/rtdata/images/themed/png/dark/color-picker-hicontrast.png b/rtdata/images/themed/png/dark/color-picker-hicontrast.png index c2592a8b79451f3d9dfbce2f4e08ec7d54ab9df4..c7bfb850b7c7523994a19060a5a7f071788ec92d 100644 GIT binary patch delta 345 zcmeyua)o6BD`S0rfKQ04dw~xF5@2LxoH1htT;Tuz|Gd1sKoTwjWQdE4x3skU{rguz zK>^6k&(DX*_Vn~LHa7nJ`4h-pym)a+N{X|yGmsq@7iVH(0%QQq*?Hul3Xr8-669AO z%y4eLBInorJcrl*{`iS;pQzxAUC$nN?tfUhckivVy?f8TJ$BRPW#bK?`U##cjv*T7 z&z?UmbVz}R^#VhZ_d@=ttoW?ZPyg?0q^2K`oPO`=$+JF8ABz1RtAx(}c&vTJk?hhP z)33O`sXp%!YqO@WSv&GUoR-oP!TjzpAX5FIf20 zxN=>`z3HsAJN`WK{gCA=bLHXmE3Ioc@x5w$Hm`8P?M0Qx5~sx+kblZ6{gs=&OXl`v QpyL=kUHx3vIVCg!0P3`pdjJ3c delta 377 zcmcb@@`YssD`S02fKQ04dw~xF1H;v;SAir1Ff%hVf&q}befxGG>FVkVB=_#!3nYOu zKoS#t{rdIXxpNS4M@OgB)Knl_OiZk&r)S2D89?^`|NmF7S%3HLeGU$eq@<)P*XnP| z$;kmNXl!is?^pc`RH9T8gvUSV)ZcX8o2z8_i7#FbR$@y|7S=4)Y-@Yddf zrOv>5U&7;^Tk_bqev9FLuEZ-RR(;Fzt^4-+rUQ{Sm-6_3SwCFUs(r`gV&fVk&$4BD qx{+yS{;HN5^MalERNgCXvyER{$m7jxkfscDD1)b~pUXO@geCxc4~|^` diff --git a/rtdata/images/themed/png/dark/color-picker-hide.png b/rtdata/images/themed/png/dark/color-picker-hide.png index 992ee235458c68988f8034be9a34c92fbc13fb2a..0bd4fafba93b3218f720f816fdd2ae2d854d59a2 100644 GIT binary patch delta 211 zcmcb{e4cp&D`UNMfKQ04dx6hcFgODSCr_S)Fo2}5?B)^%1_sWOAirP+Z+jz6j(X7? z)8g&Zfr6EuE{-7*my;6?aLs99evqT)=*VnwJRl%|;TWHoh)77orbtyOR#xr>GS9Y| zI3~_mwP4#8H})A?q8qoQ?bylZD7&h_o0BbVGQ$p*X5l+dqHJQUJ6cZ&sqvgC;0$AB zQ{KU{nc1nS(U9e&x{k*irBapmtHd8ZTA<;~#Nc?6f7&kHOBp~{FnGH9xvXEak7aXC5R0Gp8$?}MCe4vvZz>aGC+OvlprL_|c|3U#zu zS(y`LzJGEGWYw6hxo3|NkJ`elh&Ybv97)|lb9kl)Bow=O7%VxoHaswayKVOoPR}M* z&!&S+o=u7!l8OffWEL`{8%HYK;91G%@h?}z=^2M|VaS~gYy!*-SEmZ@ki6#kALtMU MPgg&ebxsLQ0A(CgN&o-= diff --git a/rtdata/images/themed/png/dark/color-picker.png b/rtdata/images/themed/png/dark/color-picker.png index 1a39d857a55b13812d9c4e6188a727c7a8a0e02b..f0174fd44e604bf60773164956e9107b98f5d976 100644 GIT binary patch delta 273 zcmey$+{iLPf|G-pfq~)r%Cn~?Dn6;V4DbnYbuaKa0|RHzo`o^boI7_8!ajfgJcI!e z0jdFl)2C10y&2F9G)%Z8$S;`TO1A#|(r24FdXo58M@qK1Z`&64N+bv<-R$Y&7@~20 z>O^lo7DWzLN5?-4jf?*u?)xV6rgq8f*6vl)#W@-J)wN6W*zHnzs}Iih-d+(?IWeiy z{ZHP?0-;a`-3)AKu z4mt6rn&B6Rt&GKsk0ui}NWQNt$7Am_zb6NP-+7GC5v;1vC~ zXKn!}`?s1Id}5+)O3X7_W;5?Lx}&P;A(X?*!O5nr!pYWq8p!a~Ww)4}9LDUlNQ3d@ oe&N=M7Tl^6EplH*Fn2IAbh(ICeb=6Q7w8@aPgg&ebxsLQ06pYwV*mgE diff --git a/rtdata/images/themed/png/light/node-move-x.png b/rtdata/images/themed/png/dark/crop-point-hicontrast.png similarity index 59% rename from rtdata/images/themed/png/light/node-move-x.png rename to rtdata/images/themed/png/dark/crop-point-hicontrast.png index 7687ad6e955917528f3f15c7d3bec8a0ac27f266..65aa29856ddda1cd9410cd5fb299b6e1bbe86568 100644 GIT binary patch delta 185 zcmZ3;yq9?cFJrxcfB-8iD+2>VOG`^rQxlNU*473jf#CoD|DQj9w%Jj89mwG<3GxeO zIPp{d&mV=qa=%l5gaZZRJY5_^BrYc>II!h79pd0i-m2VmcuThMq@Hqxro%ca2MvnV zCMj+XOL|^#ZqC-CXFe-}&V_CcTNkx8OI3_7LNZ3)u*1=cJ>|d|P656PDGNSESSTDn iF!f=vCG#qFM+S!Na#o4UwAQ49T;u8L=d#Wzp$P!kUPZY8 delta 157 zcmdnXypVYVFJrwb45+E885zy{C&~h{WaOgay(G%>kSWO{GfAs~3APG$$}j*nD?FqpRo1M#mjp zjg5zIOlS=B^lWgvaf5Mc^CF(B3?hqPGK(@4>vBy$d*X&0&@2W|S3j3^P6De`qLbDFKh?ORC>BNhDcmaPEg>mSg(BJOzR_qXF=QDCUP41 zEm)8s9y4+A0tqMgMGH9QoPDaH!4?0!pks&2LCeOIJUm_ozghSdEZ9{gAIRh#XJBb( zej|{~k)CA6Jb98)^TbI^0ilmrSlXSN7#F@tFq_dNQDDf>8N837lbO}4f|-@!4U>@U UJ=c_%Kvyt$y85}Sb4q9e0P@>o9RL6T delta 223 zcmaFNe4BX#D`UNSfKQ0)sZ*!UoH^rO-~%Kf;QaaXXTjj~>C-?FAQQ;&Xg>6Zfq{Xy zB*-t=V>83kMFu=^s{;;Cn6b@asx(ld)YHW=MB;LCfD;psm)GPeQ=DQJ%9IwXs(u&J zP`_c};n^T~C@?x_56`)aW@g(Oiw~&eh4;BA3$^Pq9ttcK5fKRpN&=FcNdcM(2^qmb zrxFqp%AKA%O!Z~aZkCwPc{*c_9)r~tsomlMHp`dfbw0_R!r;inU>T{iP;+yw2+#!# Mp00i_>zopr0C$OASO5S3 diff --git a/rtdata/images/themed/png/dark/edit-point.png b/rtdata/images/themed/png/dark/edit-point.png index 1c3317f8604d1a57632cb74820cf813735a292d2..8ead1ea6609264b86887cfe22b1109c70288905f 100644 GIT binary patch delta 250 zcmbQh@``za1SbnK0|SFlq{8Wmicjj*1AIbU&zw2qUf=^HuV23oB!S@k`SYhvor18> zo;?d;NVFJ60k!g$1o;JTW_ZRjzdk{*!ahvB>5$R!T|kKzPZ!4!iOb0XE=)WTmeGC6 zg;Eh*4`ogZwKW^`6&xsHcb7OmrEztV@)Tv60|yKQ(;76>n3-2APGO$J(RP!0DnoIC zP(q(b2-BIFcMb^TJe$PxtfM$$gOr-VhDOUEp0nMovJw#oWQ5uL94*qDq8Bbu@QGAA pp)!NfV((fOmM$j+p}Ea03`av14ZVEx!+;KA@O1TaS?83{1OSomW90w< delta 289 zcmaFGJb`6`1SbbG0|UeLm1j>)RD4oz7T^=&dIk)hJb40PoI7{!?Af#K1wIfikPQSU zPo6w|`ZPoYLMmqpSprQGED7=p-W<#}`W5Ukc;# ztBM}EvLCm9StZnZM^!80ko!pnZx)`J3!bv5itl;a7VN>e{qUi?*Esc*+|<*Z>RW4> z?#=X!Th969Q1+fnsW-1G+AR20BT_Qy701(yMcqqtiY%Y?ybGLr``i7Zuk{g+xnq6! WG+n~)@MZ!X$>8bg=d#Wzp$Pyu?2S_Z diff --git a/rtdata/images/themed/png/dark/node-move-nw-se-hicontrast.png b/rtdata/images/themed/png/dark/node-move-nw-se-hicontrast.png new file mode 100644 index 0000000000000000000000000000000000000000..b802c5849ba6ee52b44dac499f95cff8cb5bc282 GIT binary patch literal 527 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaA1(mo)lsM-XR2F5XXOu8FJ1aPr zloVwqm6l}Y=jjG#Bo?JQ=4584DrA(D6jnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}ub8sHP+>R#Xz5)uOBv9Pdka&iJ0 zKp-I@!N$f0VFO8JWn~~YAt6CnSQw~=gM)*Qk1sel`2YX^PoF+rxpL)Rw>_Cabs{A} ze!&c1v+7>(r+q7C)v^5e{riEinmu0&)6W_KZ%5edjEGt^P_XkY)2zS-*}zZ4Zs9CFl0OoU?R|H}jfU3-wg? jl4(7Dd;L7}{(o1#BXfe)#K!QOCCGQ4u6{1-oD!M<6>qY9 literal 0 HcmV?d00001 diff --git a/rtdata/images/themed/png/dark/node-move-sw-ne-hicontrast.png b/rtdata/images/themed/png/dark/node-move-sw-ne-hicontrast.png new file mode 100644 index 0000000000000000000000000000000000000000..2e51e88a33c86edd6264f6d119918bd06953f03a GIT binary patch literal 525 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaA1(mo)lsM-XR2F5XXOu8FJ1aPr zloVwqm6l}Y=jjG#Bo?JQ=4584DrA(D6jnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}ub8sHP+>R#Xz5)#773UU)CCnt~u z0tpETHa0dOLs?llAt3?C78VwU%kuH@{r~^};lqcoU%y_lV#TUet7bTveg&!)Dhcun zX82lb`GP;~TQTd$Z{H7wY3uGTXOv9=%C>mAIEHAP-#XD#s8xZ-MN)}#vNOy3`jFJb zTD!z-{okoCyr%pLxHl_wm$aPsV8^!p-Oa$hgQLQvpH9a3@uX5>u?m6Aw2X;Re zn3^y-H(x$;YimyJIk_)Pzj|M7RlcV$JHLD4=^7JYD@<);T3K0RUfYwax$l literal 0 HcmV?d00001 diff --git a/rtdata/images/themed/png/dark/node-move-x-hicontrast.png b/rtdata/images/themed/png/dark/node-move-x-hicontrast.png index 92a1c49e2befb702f3c3555f7946b337c2d7b8bf..1cc871dbbb5bea54e877414f9b633b0dd0d2c5c8 100644 GIT binary patch delta 243 zcmaFK{GNFOD`UNDfKQ04dw~xF0|Or)9~T!_NJt1LCnq;IH&6ru7#SI-O`8T}^Yioj z`}+eKs;a6$#oF51a&mJ2|NlRD@Zg_6f8NVJ5CqDJlmz(&Go(##{rd3*Bk#Y^e|l%W zYJ5KY>C4|G>7_vV6i*k&5RLP9`(pVT6nL_me@YrS2$mN7Uu@N(a?FL_Vg9T-&uB$8 zp{&Pk%FGEUv2=cFO5ZK}}7k-{9ZIPiYM>T~5+ mFRuDkQPp?Y_Fr*1TkO&MEN>3(YMKqSkipZ{&t;ucLK6UOB|(0{43CpEzomU+ERK!`}5n0T@z;^_M8K-LVNdpDt0(?ST-3xrqz`*(Q=TDzLeHILW zVn90Rm8T3)C09w1UogYm%}?Sr4n#DoTt3zJ5h!Zw>Eak7aXC3*fpkJ^0As?YiH!#X zTN)h&j?7CtabVGsCkGVfoH}qIFXzO86-!hODCER6oN^3o%VJn{v4oMKM1|w??|Bln QK!X@OUHx3vIVCg!03^befdBvi diff --git a/rtdata/images/themed/png/dark/node-move-xy-hicontrast.png b/rtdata/images/themed/png/dark/node-move-xy-hicontrast.png index 3984385af62db139089bf71ffcdc7c0a7d2f9f74..8b843958d04f8b6fa8876bc891c9ddfd5fbdff35 100644 GIT binary patch delta 333 zcmeBSIl;1lm9ai5z$e7jy}(CRRdwprsSFGZjEs!Dyu3gL2L}fqA0H({ThG``j!*5lR>-kKK!RJ6p?#W6(VeD9=4zC#8)E}N~R z#RJ8bxBiY7p04CEmBq?_+9#!I6SL&_$kVG{ZF#p!fkQCseV1}k=)US1g7O8r4YMbR z#4;-EWqC7U&uP1+&+_&H!lKGc7fw>Uv1jhN8b>C!UyL0pb1HWP@Q~^MuP) zpmkfdfboWHv$lsh--)_gxnoaz|IZH`ujb#qpXK)Gk<_CXuQuvG=+|Gh_trPVH|L*o XhEL(D7FfhE9pqzAS3j3^P6-3x|H=9>srbQ#%wLOxF8!8J&Z=Fd7!u?# zd*<_H5w)ci7eQN8zeLfzg^txGDJDpm!4j%Bb^cYgZrwxM*G1k(xz5upusT6U>S zn;F>8JYX?sk3GlI72ERK!`}5n0T@z;^_M8K-LVNdpDd1AIbU&zw2qUf=^Hf#Cf4^FZ?K z*|R_fkOZ<%pFRy?tO$3%1JuG>666;=hhh6OcI7+q>J!3Zn+uNEi2)^wJY5_^BrYcl zxG?b~1Z61-sp~Kw6bv*gYAIIf?NvWy$;-nd!(pqjOwmF}AWXSKxyT`4NyFX136}*= za2g4Sga>Jfq+An7nc!t6AQBLiB$8rwyW^B#4wLq6j?L zm%m|Ozov)&V^~lQlrHgfaSYKozjl&0Uqh_|4{J9^F01R2^MCWTb{V!!$~dHRUxjy% z*n@)-0)es1T^1e>^#1vz|E_;(-{EPO%n}se%rQ#gzPR4pb_+wYi(z@=oRp*!{Yj1m zz6+EqMHGz9e!6ZI@(%CZ{5S6R))j~K>%*e$+rIytV|$P_u+MMSLZAZ}JYD@<);T3K F0RWcSWQhO( delta 217 zcmZoP3BqRjLU}R)uVq#(dgT;#%^TNRY|Nntv z-@bjTiN5^;$l@yr@(X78^7Y%-XWvrzwEwNRzu}1X?QWn5*v@|Xj^#+|wny4-ulKBw zs&kle^eT7YM;SHaN3zU)O%HcJ@CxWGf6Hz$Wxt-4Ze5$Yy7e>W852#G#eFVdQ I&MBb@0D}Nl2LJ#7 diff --git a/rtdata/images/themed/png/dark/node-move-y.png b/rtdata/images/themed/png/dark/node-move-y.png deleted file mode 100644 index 137c79039f7cb5c174757bbbea6231a6a3f78d3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 418 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1=Gpc2=J66gGa%A(Blj1mTCX9dTS zlA_F{(vr;lJl)`o#G+KkoXqT0g^ZGt0xNy}ERK!`}5n0T@z;^_M8K-LVNdpDt0(?ST-3xrqoH=v$>{%dr{`~n1 z7cQIz1E2_yp5|x+)WX13666=muyxLpc(w5Uex(^q1r9(_4^J1z5Q)pl2?rQ*I6dZ^ zT;?H@=*%+v@Qode=Qx9cf>ISkEmkVr&}nMoE8v^FU;$GZUzd>xa|eqCA8XY@hTYEt f_Vx-X1TZiN6mYozX!CXfn#thl>gTe~DWM4fbeWJn diff --git a/rtdata/images/themed/png/dark/star-gold-hollow.png b/rtdata/images/themed/png/dark/star-gold-hollow.png deleted file mode 100644 index 44bf29d1226749f782d91fc5e129e2e2472f1070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1=Gpc2=J66gGa%A(Blj1mTCX9dTS zlA_F{(vr;lJl)`o#G+KkoXqT0g^ZGt0xNy}ERK!`}5n0T@z;^_M8K-LVNdpB90(?ST|Ic7>FYx(4li`0g1Bjf3 zL{4Y;4@5x0*$hBs5GlqBZ{vY_1xkYaf;ThFVon$6a$ccm6wn}{8MQP!RTn6C$kW9! zMB;L?fD02(LeLF?PUX0cBZfh4k3=>oTO8u@X)EZnnCzrDC;3R+0-mQF_lp9|k|Mc7 zPAI%veBeNU#<>FrN|sD;+|=lJ{B}UaX+^faPM#*?8wb=R)k~PZp3qv-WRWH#?8p|A z#4REs;(LL0w%Y0k8X6jhN(7Vo54$-!W{Ry?%E|4@y!6I`Ic)*`(*pQ7+^0QeXLhb< zcIg*kK77)Whll&1OlF&n4P$pbtWu5FLO}FGjW5t`k_6%tPIO7wM!$prt|=P O!{F)a=d#Wzp$P!>y2b?n diff --git a/rtdata/images/themed/png/dark/star-gold.png b/rtdata/images/themed/png/dark/star-gold.png deleted file mode 100644 index 5e38050052c6eca005a09f2a42db0300cb6ddd64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaA1(mo)lsM-XR2F5XXOu8FJ1aPr zloVwqm6l}Y=jjG#Bo?JQ=4584DrA(D6jnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}s_7T^=&`u_~W|FdAUmf`foctlpn@Hv55qa8a~Ec9ZZH*bZDOI!FB$gZ#B+u3l3jVHnO zW>W#P=!{a1q_$TFS4q8Dc=Ec$ver4xPais%+%#)@#IN8b!7X=wUULlJnHO~~|9!ERK!`}5n0T@z;^_M8K-LVNdpBH1AIbUPoF;RUf^@)%$c)b0AW0O z^av;pVRJi4PXa3DE(!7rZeYkuF!tnO7AsfEoWHLQD7?qh#W6(UvhVqgd`$)-tQTf8 zIUk>NOK6!IpM{WcZ{nh6Yd3Lsu`-i72CJ7xk{)?Q{P9^Ba>?Ap()0e_%7k+V_G~IU zu(jEsaKdjsk(KEMi@x++I4{ioQ)`m<2U)u&dC>)y4rWq;-A`9e`)!)R{Oya+Bp>_3 zeoM9~uiGNY{4Va~43BU%-xbWs+(CY}M=zXUj-FMvsK>T@n^seopTHNMJ-0K}*~<7A v7(X~6@p>U|-pzyIiI$L>^6bTD|j`njxgN@xNAuKdha diff --git a/rtdata/images/themed/png/dark/star.png b/rtdata/images/themed/png/dark/star.png deleted file mode 100644 index 6dde0fbe34e0b57944dd30b34d5e0db5558f94a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1=Gpc2=J66gGa%A(Blj1mTCX9dTS zlA_F{(vr;lJl)`o#G+KkoXqT0g^ZGt0xNy}ERK!`}5n0T@z;^_M8K-LVNdpB{0(?ST&z(DW=FA!Q0v{lG76wk8 zIt66HMP8KaJOrxeDGBlmc5PtDFN;bRmS-}s`kIo+1Qg%p>Eak7aoP9$ZoVc15w-`- zUB>lMk}{q=BFoj(+Io*26g78`xv}zH%vd%+9u3v$GcN5zvh^{Z?qCbba=$XHx%ITzC4{xOB*TFns26;3wl1w&*F2 v7artp(ENJjY|fd?uW5^Zty`O1@snYXoc?y-t!nRqzF_cl^>bP0l+XkK5DU}4 diff --git a/rtdata/images/themed/png/dark/template-narrow.png b/rtdata/images/themed/png/dark/template-narrow.png new file mode 100644 index 0000000000000000000000000000000000000000..78c37450359f234006e18ffbb3752bad5c3c1586 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+CSc;uILpXq-h9ji|$mcBZh%9Dc z;5!1sj8nDwq=ABxC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NC6dzfD}2F zmSp4?G597XXQpN;xRmD?C1xAvFZKn>%Yx)xQj3#|G7CyF^Ya*j63as}Qj375q$*@4 z=jZ9&Sk*NLs4xhm&^f=LvM4h>qlCfPS;4WSq$o3~6r@WxI0NVg$DGXURE3O^k^(Dz z{p6z5#FEUi)a3l!-2A*^kdyRtGLuvDic^dAlPYzK6ZK8>4D=6&B(VZb=l67R4AGdF hoFKuvIN<{W1JeWsM#WuA_X4FDJYD@<);T3K0RWs4UKs!Y literal 0 HcmV?d00001 diff --git a/rtdata/images/themed/png/dark/trash-show.png b/rtdata/images/themed/png/dark/trash-show.png deleted file mode 100644 index 983979634a1345cf1e28983cc98df25e565a1620..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaA1(mo)lsM-XR2F5XXOu8FJ1aPr zloVwqm6l}Y=jjG#Bo?JQ=4584DrA(D6jnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}s#7vK}(>R#Y;=FFK>M~<97fBwv= zQ)hwb>{*})5S%`J8c3czdGa6=(*Z`tgA5E{;WG!-)F4s^IXMsV@a*K~hKQf&=r|D( zagc)ps2(T+)N+7<;Sek90Zz^X?Cd~ef!u?JhCmXCj_BwB$+R`cuP`t$XqE)|1v9XV z#!K<#Y%UL(YI5?{kJ@#XR?Ur5*wtKBP1e5hao?7wwqW5pztH7jW!wJE0&05f>Ealo zalZA^&7x)nk%q*cc2_Q!BdU2f-;~|^&$>EExa0E6`iC6%A8>e`*l&2Q^4z!2p1Y>G z6sw!5Pn#xfmN(1d-=xn0A7YPk`EFbN(R)S3%kR8=2c17Xb(%lnbfwKsrUfTcIMkIY z{qp}Nl-%6JaPP##{`tpN#4Ud3!E#6{w{ep8DyybN=3;3cS~l(s%}UxO5v>XbYAQ26 z%B{`V^6f+8Q?`=UjfY+{g)HoK*e135U4p38rqmBpD3|YVZ48J@0I|& yGNtXpb6m`p%zodc4mPoD;If#hNrTYd%x2Huh&zhH*V z?rVhE)p8T{XIQi{yxW)wlyLBLaSY+Oo}8e-#$sS$YS|#+<7c^EAhKjV$DTSt)<&RV44$rjF6*2U FngE|0KzjfH delta 170 zcmZ3+yoGs#Fk}6>bLY+=fwO1No(2O5>@9x7J? z8ygSbyphYy{F{kQEtOkygW5I`rKLxh1e&W|C){RYd&Iy{!_MPX8HjjU%9>{ z$S;^-x8m)~RKRkHpL*>g`XYVwp9q9Agr06sY>UT~4aUwXTFw&^xir)V6OtKIZZGbsjXuwD>(S~h x6PcgPzj&DCjIjj!yZjo{E31}g&an0S!d9szq+zRjLJ;V922WQ%mvv4FO#no9m!<#! delta 388 zcmey)@}Fe`D`S0QfKQ04dw~xF1H<<1+b>_f3}nCoBNza=oSd9Ma_`=~a4BTQq)C&` zojV5+VPazP@%3|bbV^N4{rdIm&6_tlI5>b(|NsBLb^Gr64V!>mM@L6FIl0Eh#)O3W z1fZgnloSE3{{cW%3MD~)!3>ob?#I~ZzkGUs!fA`k9~6Byrb~w$z3a%o{LB3VU+>UogY7&7AW~6MEb9v&2_lzZk$Ilwb>#>-ThV43W5;oN$0` zMsT0h0ZTD2FUA7D36m}{N>sN`niRx1lZc&2B$Q11=`Uj??ue%*;K;M}>9x1D{#4inF^)3NbL){g?N?xjoSe=r#sVS3j3^ HP6) znwpvdMIaz7=erirB%zWZzu;#w`oU`Uix@V~6I!{ihB@`}6vs_}Rsm&ad%8G=Xq+#d z7|qn8z~LI$cqIL8{pQ7%rfz)mpC1UV7ujadDm6pqrY?)y{Zso~CY-Ci+Qjz#i%6@` zo4MWr!b}%<7hBzt^L0pCye@lYl6ctL#Av4pww7BHp3fF+&nliWd2-z(ars3vI+=Z( z-mI?|n|QFYxw{G diff --git a/rtdata/images/themed/png/light/color-picker-bars.png b/rtdata/images/themed/png/light/color-picker-bars.png new file mode 100644 index 0000000000000000000000000000000000000000..a7a9b0f07a561c04c64886b709a6c129323dbf49 GIT binary patch literal 512 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaA1(mo)lsM-XR2F5XXOu8FJ1aPr zloVwqm6l}Y=jjG#Bo?JQ=4584DrA(D6jnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}s_7T^=&>R#ZZs;Vk4FApRY6ckjz z0LVrLYHDggVW5b*x;l^npBIEHAPpE@y;@2~<7E8}KKX3p>Xa~jODl7%%Z=NreRM6O)EQI7LW)AAe4K?fd8 zv^clf&h4z_RU_BrLstcyp7#|_Zqv9}yv~-7aguiP)`V$$@*C5p#Y7i=uwIw&Nu}bL zK7V>0Z`rwrO`DX{#m{Fxu?vs2GCT5i%?^$`^6k&(DX*_Vn~LHa7nJ`4h-pym)a+N{X|yGmsq@7iVH(0%QQq*?Hul3Xr8-669AO z%y4eLBInorJcrl*{`iS;pQzxAUC$nN?tfUhckivVy?f8TJ$BRPW#bK?`U##cjv*T7 z&z?UmbVz}R^#VhZ_d@=ttoW?ZPyg?0q^2K`oPO`=$+JF8ABz1RtAx(}c&vTJk?hhP z)33O`sXp%!YqO@WSv&GUoR-oP!TjzpAX5FIf20 zxN=>`z3HsAJN`WK{gCA=bLHXmE3Ioc@x5w$Hm`8P?M0Qx5~sx+kblZ6{gs=&OXl`v QpyL=kUHx3vIVCg!0P3`pdjJ3c delta 377 zcmcb@@`YssD`S02fKQ04dw~xF1H;v;SAir1Ff%hVf&q}befxGG>FVkVB=_#!3nYOu zKoS#t{rdIXxpNS4M@OgB)Knl_OiZk&r)S2D89?^`|NmF7S%3HLeGU$eq@<)P*XnP| z$;kmNXl!is?^pc`RH9T8gvUSV)ZcX8o2z8_i7#FbR$@y|7S=4)Y-@Yddf zrOv>5U&7;^Tk_bqev9FLuEZ-RR(;Fzt^4-+rUQ{Sm-6_3SwCFUs(r`gV&fVk&$4BD qx{+yS{;HN5^MalERNgCXvyER{$m7jxkfscDD1)b~pUXO@geCxc4~|^` diff --git a/rtdata/images/themed/png/light/color-picker-hide.png b/rtdata/images/themed/png/light/color-picker-hide.png index 2a0ae672a687fa7548d1036dee59ac3861a616d1..418b5b929fab4d9f5ce57a0f85e78fdc400305b6 100644 GIT binary patch delta 215 zcmaFLe3^LzD`UN4fKQ04dx4Lts;Y*Dh6)$}*=lNP5E3W=WK8V1-O9kgz+DpL7tG+z zYG9@AELfkJ|NgX)B2c*0)5S4F;&O7r0j@(Wq7QOJ9UYl1jt2w;FnBr{FrG@AK1)MG zg5jyb`WFHsZL6a$8Vaf%d@}2zp`@Om|AK8soO%ZjyjjICJ%J<8VN!w9iv)wl-KRx7 zn`{|9n=Bn9fwB=gJs(81C#^qqY2u#Qac$kri+DI07~FRVyW~7Rd>7~f22WQ%mvv4F FO#n{rNQ3|Y delta 233 zcmcc2{FHeED`UNSfKQ04dx4Lts;Y{L3WQWsQv)*K03xoetX%s2tS|!u18+%?UoeA@ zpsSPMa1D@d<2QaP+D(G(#d#3MG1i(`I?(hVLnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}s_7T^=&stN`wDk?x)O-&8La4+xy za)E512t)ypG&MB^iajt}=goFl enW+8kE7LS~K2y{16Kz08GI+ZBxvX0f~{}= zeUEw@@Zxmxg9nu{Nl7d}s=d?`^DE94N3h4uOMU+B-E*08@gv!-8(G^mmqy-swr^d7 zEaloaenGWZ$1`94we8B5tr!S#s7ErEh|5< zX!*3V^-ha48`g6!=d!BPIDh5rVx8xSd-t6?S&?;pZ_FaiB~ywFUnkD_rQwR_?te0CWt4r>mdKI;Vst0J+>?YybcN diff --git a/rtdata/images/themed/png/light/crop-point-hicontrast.png b/rtdata/images/themed/png/light/crop-point-hicontrast.png new file mode 100644 index 0000000000000000000000000000000000000000..65aa29856ddda1cd9410cd5fb299b6e1bbe86568 GIT binary patch literal 445 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1=Gpc2=J66gGa%A(Blj1mTCX9dTS zlA_F{(vr;lJl)`o#G+KkoXqT0g^ZGt0xNy}ERK!`}5n0T@z;^_M8K-LVNdpB{0(?ST-3xpK1O!-FL2hbkX=!R| z0y5g#+JGbw{Qv*|^XJbtJ8G{3Ih-Xye!&bUe#-y(qwrVmcj}LDpkSP*i(`ny<>Ukh zwj8HJ9DK=Jm75N4$rhf}Q?Af-SV!fcL9yB-#m!+!&kN4Y*;@3>XGPGt(9L1%qPAwK zit$BA#>jU#TCt}bIKwHxcOhlL#|R6B;|HcbEVg7`#qP+!uwBk7ahcYdbdX~_UHx3v IIVCg!0Gvsce*gdg literal 0 HcmV?d00001 diff --git a/rtdata/images/themed/png/light/crosshair-adjust.png b/rtdata/images/themed/png/light/crosshair-adjust.png index d0a11b7533409a2035e2be85bb3b2ee7922eb83d..0af7379c24aefb2914034148d0ccebc9187e0af5 100644 GIT binary patch delta 225 zcmcb~{D^r27h}D9fsZN}XlQ7tsHi~LYHDgghPJjgkW^P!hlt1gWO&5Dz`$1$U*X1?ULk{LA=_J(SPlFZEJ#p^ znYeg?gp>QC1srqEzSPj*dS1}ELm_eti<+^4#=$qjHVqGCMA93IcgQje$mnfw?opg` zD2Gi=HI+?Sm36_YBTOvq-d&6f-z1pLXp$({$k2J&kg=1Q)vJP;m0`_e!3%%u-Nb>8 OVDNPHb6Mw<&;$TsZ%Kjx delta 216 zcmaFFe3N+t7h}Dus;YZ|kFv5dkfElg1|&5!G~jF{B_$vm0``mQU1MNi;42C83*OA& z@pMrfkFUvU&BGIBEHb@o1eD45ba4!kxSTBD!o<_m)Y{afD;LnWV&#Gb*&I_g->6uq zFqx@EdE3nj={d^DIXT?V8$9pG1f1jan6s&b!~IZWV`FT{GA*7ijv*44lLcIu zcp@yr?@qK3j^KVM)1AfUF5!M7@n@TZ#POEK)t?lmD8D&y;6fIM@qw1c#-jqK7(Fcx zziISpur%N_aOcuud}d;8U@^N@t=aO?oM}33oIE)ReIkdS9BpFcS(DJG$=t3m=dwVU vh6YFQG)5!NGzPzXZN|n$0v#^T6&M*rL=-C4Zggu0I*7s3)z4*}Q$iB}B8pLG delta 253 zcmaFI{FZrw1SbbG0|UeLm1j>)RD4oz9N-h;>R#ZZqN1XzstP34)YO0s2!IFz*+2#a zK-fU?>xJ|8fW`=v1o;IsEIObUe`EUQh`Zv>8{c#lrG~g&0m@Z)x;TbtoIg9!o9}=E z2dk*)LI1aZ{i97xHgdjPw0c*uTcF&z%)M(GB6Q-S&$XAvRj4^Xc;qroATLJi_@gvS zFB@NzBR|WNw<){r;x+HM=Wd$0%wU_yR-?5gv;5i}Tkc=J_}wyBNum4#?>Cm)>fS6X ivSxg=eDlz54L8?JR+~vT{j`9NVDNPHb6Mw<&;$Ue%3Q?& diff --git a/rtdata/images/themed/png/light/node-move-nw-se-hicontrast.png b/rtdata/images/themed/png/light/node-move-nw-se-hicontrast.png new file mode 100644 index 0000000000000000000000000000000000000000..b802c5849ba6ee52b44dac499f95cff8cb5bc282 GIT binary patch literal 527 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaA1(mo)lsM-XR2F5XXOu8FJ1aPr zloVwqm6l}Y=jjG#Bo?JQ=4584DrA(D6jnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}ub8sHP+>R#Xz5)uOBv9Pdka&iJ0 zKp-I@!N$f0VFO8JWn~~YAt6CnSQw~=gM)*Qk1sel`2YX^PoF+rxpL)Rw>_Cabs{A} ze!&c1v+7>(r+q7C)v^5e{riEinmu0&)6W_KZ%5edjEGt^P_XkY)2zS-*}zZ4Zs9CFl0OoU?R|H}jfU3-wg? jl4(7Dd;L7}{(o1#BXfe)#K!QOCCGQ4u6{1-oD!M<6>qY9 literal 0 HcmV?d00001 diff --git a/rtdata/images/themed/png/light/node-move-sw-ne-hicontrast.png b/rtdata/images/themed/png/light/node-move-sw-ne-hicontrast.png new file mode 100644 index 0000000000000000000000000000000000000000..2e51e88a33c86edd6264f6d119918bd06953f03a GIT binary patch literal 525 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaA1(mo)lsM-XR2F5XXOu8FJ1aPr zloVwqm6l}Y=jjG#Bo?JQ=4584DrA(D6jnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}ub8sHP+>R#Xz5)#773UU)CCnt~u z0tpETHa0dOLs?llAt3?C78VwU%kuH@{r~^};lqcoU%y_lV#TUet7bTveg&!)Dhcun zX82lb`GP;~TQTd$Z{H7wY3uGTXOv9=%C>mAIEHAP-#XD#s8xZ-MN)}#vNOy3`jFJb zTD!z-{okoCyr%pLxHl_wm$aPsV8^!p-Oa$hgQLQvpH9a3@uX5>u?m6Aw2X;Re zn3^y-H(x$;YimyJIk_)Pzj|M7RlcV$JHLD4=^7JYD@<);T3K0RUfYwax$l literal 0 HcmV?d00001 diff --git a/rtdata/images/themed/png/light/node-move-x-hicontrast.png b/rtdata/images/themed/png/light/node-move-x-hicontrast.png index 92a1c49e2befb702f3c3555f7946b337c2d7b8bf..1cc871dbbb5bea54e877414f9b633b0dd0d2c5c8 100644 GIT binary patch delta 243 zcmaFK{GNFOD`UNDfKQ04dw~xF0|Or)9~T!_NJt1LCnq;IH&6ru7#SI-O`8T}^Yioj z`}+eKs;a6$#oF51a&mJ2|NlRD@Zg_6f8NVJ5CqDJlmz(&Go(##{rd3*Bk#Y^e|l%W zYJ5KY>C4|G>7_vV6i*k&5RLP9`(pVT6nL_me@YrS2$mN7Uu@N(a?FL_Vg9T-&uB$8 zp{&Pk%FGEUv2=cFO5ZK}}7k-{9ZIPiYM>T~5+ mFRuDkQPp?Y_Fr*1TkO&MEN>3(YMKqSkipZ{&t;ucLK6UOB|(0{43CpEzomU+({ThG``j!*5lR>-kKK!RJ6p?#W6(VeD9=4zC#8)E}N~R z#RJ8bxBiY7p04CEmBq?_+9#!I6SL&_$kVG{ZF#p!fkQCseV1}k=)US1g7O8r4YMbR z#4;-EWqC7U&uP1+&+_&H!lKGc7fw>Uv1jhN8b>C!UyL0pb1HWP@Q~^MuP) zpmkfdfboWHv$lsh--)_gxnoaz|IZH`ujb#qpXK)Gk<_CXuQuvG=+|Gh_trPVH|L*o XhEL(D7FfhE9pqzAS3j3^P6-3x|H=9>srbQ#%wLOxF8!8J&Z=Fd7!u?# zd*<_H5w)ci7eQN8zeLfzg^txGDJDpm!4j%Bb^cYgZrwxM*G1k(xz5upusT6U>S zn;F>8JYX?sk3GlI72ERK!`}5n0T@z;^_M8K-LVNdpCS1AIbU-3xqFVL(YqNli@+!c$RE z0kVO>*w|QIT^%AgWm3^ppho_ZAirRSInOq$#ow8*FOrir^icB*(F4?L zm%m|Ozov)&V^~lQlrHgfaSYKozjl&0Uqh_|4{J9^F01R2^MCWTb{V!!$~dHRUxjy% z*n@)-0)es1T^1e>^#1vz|E_;(-{EPO%n}se%rQ#gzPR4pb_+wYi(z@=oRp*!{Yj1m zz6+EqMHGz9e!6ZI@(%CZ{5S6R))j~K>%*e$+rIytV|$P_u+MMSLZAZ}JYD@<);T3K F0RWcSWQhO( delta 217 zcmZoP3BqRjLU}R)uVq#(dgT;#%^TNRY|Nntv z-@bjTiN5^;$l@yr@(X78^7Y%-XWvrzwEwNRzu}1X?QWn5*v@|Xj^#+|wny4-ulKBw zs&kle^eT7YM;SHaN3zU)O%HcJ@CxWGf6Hz$Wxt-4Ze5$Yy7e>W852#G#eFVdQ I&MBb@0D}Nl2LJ#7 diff --git a/rtdata/images/themed/png/light/node-move-y.png b/rtdata/images/themed/png/light/node-move-y.png deleted file mode 100644 index 2fbf0b7a332bfaaba4bd2f981d9ce7e680cb6373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1=Gpc2=J66gGa%A(Blj1mTCX9dTS zlA_F{(vr;lJl)`o#G+KkoXqT0g^ZGt0xNy}ERK!`}5n0T@z;^_M8K-LVNdpDd1AIbU-3xqFVL($;Q(0MAO-&6Z zpbBBDtE+pTx_u6)g|{TgFPLG@=4WiG@%{U5hbM#uL|-=nO89xYIEF}EPEI($5W_yf zVq&mh&a^acc8m7AH+C?b;}j7QNmUTskR#$ee!zJTcq`yi5$iv$^leD$P>`n#|zo>gTe~DWM4fOBsb- diff --git a/rtdata/images/themed/png/light/star-gold-hollow.png b/rtdata/images/themed/png/light/star-gold-hollow.png deleted file mode 100644 index 44bf29d1226749f782d91fc5e129e2e2472f1070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1=Gpc2=J66gGa%A(Blj1mTCX9dTS zlA_F{(vr;lJl)`o#G+KkoXqT0g^ZGt0xNy}ERK!`}5n0T@z;^_M8K-LVNdpB90(?ST|Ic7>FYx(4li`0g1Bjf3 zL{4Y;4@5x0*$hBs5GlqBZ{vY_1xkYaf;ThFVon$6a$ccm6wn}{8MQP!RTn6C$kW9! zMB;L?fD02(LeLF?PUX0cBZfh4k3=>oTO8u@X)EZnnCzrDC;3R+0-mQF_lp9|k|Mc7 zPAI%veBeNU#<>FrN|sD;+|=lJ{B}UaX+^faPM#*?8wb=R)k~PZp3qv-WRWH#?8p|A z#4REs;(LL0w%Y0k8X6jhN(7Vo54$-!W{Ry?%E|4@y!6I`Ic)*`(*pQ7+^0QeXLhb< zcIg*kK77)Whll&1OlF&n4P$pbtWu5FLO}FGjW5t`k_6%tPIO7wM!$prt|=P O!{F)a=d#Wzp$P!>y2b?n diff --git a/rtdata/images/themed/png/light/star-gold.png b/rtdata/images/themed/png/light/star-gold.png deleted file mode 100644 index 5e38050052c6eca005a09f2a42db0300cb6ddd64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaA1(mo)lsM-XR2F5XXOu8FJ1aPr zloVwqm6l}Y=jjG#Bo?JQ=4584DrA(D6jnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}s_7T^=&`u_~W|FdAUmf`foctlpn@Hv55qa8a~Ec9ZZH*bZDOI!FB$gZ#B+u3l3jVHnO zW>W#P=!{a1q_$TFS4q8Dc=Ec$ver4xPais%+%#)@#IN8b!7X=wUULlJnHO~~|9!ERK!`}5n0T@z;^_M8K-LVNdpD70(?ST)zsA73w%_;KvPrG+uIvR zLbyN@D668P0%5GrbeIX$#a9yK7u>**8_&xm>1j}Dtx_B?>w$1GQ0Abgi(`nyK6M;_UiycQegIph(6ew6M;__)M=wq4eq&!FX$i)R*Pdlo_SFml&XVglWpb?gk zkTE48A;Bm=MPT-U1u>!;yY6%}8c%dIXqU{HwBn%Q0=bRMY6^Y^{z@kp)YaS_9R-_} z6E3@maIvx;byQNQ<`U!L^4jREYkEWDk;Yk`r#=NM=e#?_`LLs4T}r|XQ^rN^vlGm diff --git a/rtdata/images/themed/png/light/star.png b/rtdata/images/themed/png/light/star.png deleted file mode 100644 index f29ccfdcdcce445aebcf033cf59f6e3f4609d65a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1=Gpc2=J66gGa%A(Blj1mTCX9dTS zlA_F{(vr;lJl)`o#G+KkoXqT0g^ZGt0xNy}ERK!`}5n0T@z;^_M8K-LVNdpB{0(?ST)zsA73w(g2s;a7nh6a#? z02LJ#h@iTTk^HjcXe9%yL-7R$K=JLKE{-7*my-otn0RK$ ztZem=x#*yBj!93&k3qXh`RKF_0_OyuW^l9=+VD=gGGlpzMUWUH509@D56_yj+>$Or z5<%KirrbI#aYIIuFL=lndR>|dDBET>nW2HVh-e;VSCtNAYx#!!Pw!8hmpaS3IhWlmf|InTCA+g tjdNIvTeKbZ=H+o*Wai{`-*SPG!QqhV-;Ap{hCnYcc)I$ztaD0e0svhfr;h*t diff --git a/rtdata/images/themed/png/light/template-narrow.png b/rtdata/images/themed/png/light/template-narrow.png new file mode 100644 index 0000000000000000000000000000000000000000..78c37450359f234006e18ffbb3752bad5c3c1586 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+CSc;uILpXq-h9ji|$mcBZh%9Dc z;5!1sj8nDwq=ABxC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NC6dzfD}2F zmSp4?G597XXQpN;xRmD?C1xAvFZKn>%Yx)xQj3#|G7CyF^Ya*j63as}Qj375q$*@4 z=jZ9&Sk*NLs4xhm&^f=LvM4h>qlCfPS;4WSq$o3~6r@WxI0NVg$DGXURE3O^k^(Dz z{p6z5#FEUi)a3l!-2A*^kdyRtGLuvDic^dAlPYzK6ZK8>4D=6&B(VZb=l67R4AGdF hoFKuvIN<{W1JeWsM#WuA_X4FDJYD@<);T3K0RWs4UKs!Y literal 0 HcmV?d00001 diff --git a/rtdata/images/themed/png/light/trash-show.png b/rtdata/images/themed/png/light/trash-show.png deleted file mode 100644 index 9e4ade318d5979eb831973a7c32dcd1818b12079..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaA1(mo)lsM-XR2F5XXOu8FJ1aPr zloVwqm6l}Y=jjG#Bo?JQ=4584DrA(D6jnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}s#9pDq|=E{-7@ z=Swej_BAVrI0SOJF6`*w-Vwcf-~a!Iy0*x!ndzORpx(&h^3i_bdmSf^)QfT-GI`q@ zPG@xPyrZ&dW&0L4`>QFfLT|0sEa=-k#lCsd{13kiqMF3y?6EfTGveY4mvImaP?fi(9fC+=swR~R2} z`c%+b&Cw|(#V`CsdIOstUk2k}wic-aTVli&JUL8f%{MRTov=J!;B%4Zn%QS;^DFtx z-^>rI$(tbic4b}6`GRj3IzLQh@zs|7qw1IuYX0~nzg~f`Ejg5&`6ABv|6+Ht~^(Q!9XgJ8VCSp#bqTm^US!WKgnySZi dFAxo2V92@5x5n#D+BTqx44$rjF6*2UngE(4I%)s_ delta 236 zcmdnYe20001SbbG0|SGGE`RVu#V7S<0X`wF?gc(7V4w;H5Vo?iGBQ_2Mh3`LQ&R)V z0!ejsb=N)rl7S`(l?3?(GxR7mFP}0iVRLELdLF0XXfw9|L9S1MvPqsUjv*44*Y+Od zJ8Zz=%*>cGX<6p~|LN27g38ywYK~y#=UHlVZQ1SE=NeinuRp#%f6wv!v~xE43wXj7 zgqr`FD&5Ai#QoVUoeNA2x4$>MJMD7K?)!h|%>{;+rF(9!a+&|sww9r=g{gkS#&k`f Obqt=aelF{r5}E)}Bvae~ diff --git a/rtdata/images/themed/svg/color-picker-add-hicontrast.svg b/rtdata/images/themed/svg/color-picker-add-hicontrast.svg index 3d51dd31f..09870ff48 100644 --- a/rtdata/images/themed/svg/color-picker-add-hicontrast.svg +++ b/rtdata/images/themed/svg/color-picker-add-hicontrast.svg @@ -26,7 +26,7 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="34.25" + inkscape:zoom="33.75" inkscape:cx="12" inkscape:cy="12" inkscape:document-units="px" @@ -65,7 +65,7 @@ image/svg+xml - + Maciej Dworak @@ -101,42 +101,36 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1"> - - - - - - + sodipodi:nodetypes="ccccccccccccc" /> + + + + + diff --git a/rtdata/images/themed/svg/color-picker-add.svg b/rtdata/images/themed/svg/color-picker-add.svg index 1535ca260..b42b8371d 100644 --- a/rtdata/images/themed/svg/color-picker-add.svg +++ b/rtdata/images/themed/svg/color-picker-add.svg @@ -26,9 +26,9 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="8" - inkscape:cx="-35.100971" - inkscape:cy="6.1695344" + inkscape:zoom="33.75" + inkscape:cx="12" + inkscape:cy="12" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -101,31 +101,36 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1"> - - - - + + + + + + diff --git a/rtdata/images/themed/svg/color-picker-show.svg b/rtdata/images/themed/svg/color-picker-bars.svg similarity index 50% rename from rtdata/images/themed/svg/color-picker-show.svg rename to rtdata/images/themed/svg/color-picker-bars.svg index 351c51011..f6c57ea40 100644 --- a/rtdata/images/themed/svg/color-picker-show.svg +++ b/rtdata/images/themed/svg/color-picker-bars.svg @@ -18,7 +18,7 @@ inkscape:export-xdpi="96" inkscape:export-ydpi="96" inkscape:version="0.92.2 2405546, 2018-03-11" - sodipodi:docname="color-picker-show.svg"> + sodipodi:docname="color-picker-bars.svg"> - - - - + + + + + + diff --git a/rtdata/images/themed/svg/color-picker-hicontrast.svg b/rtdata/images/themed/svg/color-picker-hicontrast.svg index 867f9730b..20ece03b7 100644 --- a/rtdata/images/themed/svg/color-picker-hicontrast.svg +++ b/rtdata/images/themed/svg/color-picker-hicontrast.svg @@ -26,8 +26,8 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="34.25" - inkscape:cx="12" + inkscape:zoom="33.75" + inkscape:cx="7.6740741" inkscape:cy="12" inkscape:document-units="px" inkscape:current-layer="layer1" @@ -42,9 +42,9 @@ inkscape:snap-bbox="true" inkscape:bbox-nodes="true" inkscape:snap-others="false" - inkscape:object-nodes="false" + inkscape:object-nodes="true" inkscape:snap-grids="true" - inkscape:snap-bbox-midpoints="false" + inkscape:snap-bbox-midpoints="true" showguides="true" inkscape:snap-global="true"> image/svg+xml - + Maciej Dworak @@ -101,37 +101,25 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1"> - - - - - + style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3266921" + d="m 19.925781,1.0039062 c -1.58641,0.1326355 -2.759269,1.3658728 -3.638672,2.5839844 -0.30321,0.4144601 -0.688746,0.7937159 -1.207031,0.8945313 -0.630431,0.360278 -1.152864,0.9161911 -1.572266,1.5019531 -0.547003,0.8984348 0.0482,1.9358775 0.640626,2.640625 0.817234,0.9044466 1.820357,1.880312 3.107421,1.943359 0.889563,-0.02811 1.502887,-0.8099611 2.082032,-1.396484 C 19.575097,8.6352599 19.779974,8.0379511 20.316406,7.7265625 21.40338,6.7821111 22.639686,5.7804332 22.919922,4.2832031 23.243079,3.0583515 22.571361,1.6511303 21.359375,1.21875 20.905795,1.0309215 20.412996,0.98294526 19.925781,1.0039062 Z m -4.11914,4.7363282 c 0.723717,-0.019419 2.332675,1.2432107 2.392578,2.4648437 -0.03984,0.2570324 -0.552186,0.6690001 -0.884766,0.9023438 C 17.04034,9.327167 16.877887,9.2353204 16.628906,9.1621094 15.922112,8.8485353 15.342642,8.3120018 14.8125,7.4042969 14.667763,7.0628521 14.490162,6.9461703 14.888672,6.484375 c 0.656089,-0.6665108 -0.25284,0.2482286 0.667969,-0.6542969 0.06015,-0.05896 0.146611,-0.08707 0.25,-0.089844 z" + id="path9921-9-3-9-8-3" /> + + + diff --git a/rtdata/images/themed/svg/color-picker-hide.svg b/rtdata/images/themed/svg/color-picker-hide.svg index 9fa9203cf..be180885e 100644 --- a/rtdata/images/themed/svg/color-picker-hide.svg +++ b/rtdata/images/themed/svg/color-picker-hide.svg @@ -18,7 +18,7 @@ inkscape:export-xdpi="96" inkscape:export-ydpi="96" inkscape:version="0.92.2 2405546, 2018-03-11" - sodipodi:docname="colorPickers-hide.svg"> + sodipodi:docname="color-picker-hide.svg"> image/svg+xml - + Maciej Dworak @@ -102,26 +102,26 @@ inkscape:groupmode="layer" inkscape:label="Layer 1"> + style="opacity:0.3;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#2a7fff;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" + d="m 5.5,21 c 0,0.828427 -0.6715729,1.5 -1.5,1.5 -0.8284271,0 -1.5,-0.671573 -1.5,-1.5 0,-0.828427 0.6715729,-1.5 1.5,-1.5 0.8284271,0 1.5,0.671573 1.5,1.5 z" + id="path822" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ssscs" /> diff --git a/rtdata/images/themed/svg/color-picker.svg b/rtdata/images/themed/svg/color-picker.svg index bff4a0edc..d52d96633 100644 --- a/rtdata/images/themed/svg/color-picker.svg +++ b/rtdata/images/themed/svg/color-picker.svg @@ -26,9 +26,9 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="8" - inkscape:cx="-16.850971" - inkscape:cy="6.1695344" + inkscape:zoom="33.833333" + inkscape:cx="12" + inkscape:cy="12" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -42,9 +42,9 @@ inkscape:snap-bbox="true" inkscape:bbox-nodes="true" inkscape:snap-others="false" - inkscape:object-nodes="false" + inkscape:object-nodes="true" inkscape:snap-grids="true" - inkscape:snap-bbox-midpoints="false" + inkscape:snap-bbox-midpoints="true" showguides="true" inkscape:snap-global="true"> image/svg+xml - + Maciej Dworak @@ -101,27 +101,32 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1"> + + + + + - - - + style="opacity:0.7;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#2a7fff;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" + d="m 5.5,21 c 0,0.828427 -0.6715729,1.5 -1.5,1.5 -0.8284271,0 -1.5,-0.671573 -1.5,-1.5 0,-0.828427 0.6715729,-1.5 1.5,-1.5 0.8284271,0 1.5,0.671573 1.5,1.5 z" + id="path822" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ssscs" /> diff --git a/rtdata/images/themed/svg/crop-point-hicontrast.svg b/rtdata/images/themed/svg/crop-point-hicontrast.svg new file mode 100644 index 000000000..4a06bfcba --- /dev/null +++ b/rtdata/images/themed/svg/crop-point-hicontrast.svg @@ -0,0 +1,176 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/crosshair-adjust.svg b/rtdata/images/themed/svg/crosshair-adjust.svg index 16ff954ac..21862c970 100644 --- a/rtdata/images/themed/svg/crosshair-adjust.svg +++ b/rtdata/images/themed/svg/crosshair-adjust.svg @@ -101,18 +101,48 @@ inkscape:label="Layer 1"> + + + + + + + diff --git a/rtdata/images/themed/svg/edit-point.svg b/rtdata/images/themed/svg/edit-point.svg index b3e16abdf..9f686d6e9 100644 --- a/rtdata/images/themed/svg/edit-point.svg +++ b/rtdata/images/themed/svg/edit-point.svg @@ -26,12 +26,12 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="33.833333" + inkscape:zoom="34.25" inkscape:cx="12" inkscape:cy="12" inkscape:document-units="px" inkscape:current-layer="layer1" - showgrid="false" + showgrid="true" inkscape:window-width="1920" inkscape:window-height="1019" inkscape:window-x="0" @@ -44,8 +44,7 @@ inkscape:snap-others="false" inkscape:object-nodes="false" inkscape:snap-grids="true" - inkscape:snap-bbox-midpoints="false" - showborder="false"> + inkscape:snap-bbox-midpoints="false"> - - - - - + id="defs815" /> @@ -112,31 +99,58 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1"> + + + + diff --git a/rtdata/images/themed/svg/node-move-x.svg b/rtdata/images/themed/svg/node-move-nw-se-hicontrast.svg similarity index 64% rename from rtdata/images/themed/svg/node-move-x.svg rename to rtdata/images/themed/svg/node-move-nw-se-hicontrast.svg index 3215ce9f4..375c8ea27 100644 --- a/rtdata/images/themed/svg/node-move-x.svg +++ b/rtdata/images/themed/svg/node-move-nw-se-hicontrast.svg @@ -18,7 +18,7 @@ inkscape:export-xdpi="96" inkscape:export-ydpi="96" inkscape:version="0.92.2 2405546, 2018-03-11" - sodipodi:docname="node-move-x.svg"> + sodipodi:docname="node-move-nw-se-hicontrast.svg"> + inkscape:snap-bbox-midpoints="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-center="true"> + empspacing="2" + dotted="false" + spacingx="0.5" + spacingy="0.5" /> @@ -64,7 +67,7 @@ image/svg+xml - + Maciej Dworak @@ -100,21 +103,29 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1"> - - - + + + + + diff --git a/rtdata/images/themed/svg/node-move-xy.svg b/rtdata/images/themed/svg/node-move-sw-ne-hicontrast.svg similarity index 64% rename from rtdata/images/themed/svg/node-move-xy.svg rename to rtdata/images/themed/svg/node-move-sw-ne-hicontrast.svg index 47c25e81f..fdda47505 100644 --- a/rtdata/images/themed/svg/node-move-xy.svg +++ b/rtdata/images/themed/svg/node-move-sw-ne-hicontrast.svg @@ -18,7 +18,7 @@ inkscape:export-xdpi="96" inkscape:export-ydpi="96" inkscape:version="0.92.2 2405546, 2018-03-11" - sodipodi:docname="node-move-xy.svg"> + sodipodi:docname="node-move-sw-ne-hicontrast.svg"> + inkscape:snap-bbox-midpoints="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-center="true"> + empspacing="2" + dotted="false" + spacingx="0.5" + spacingy="0.5" /> @@ -64,7 +67,7 @@ image/svg+xml - + Maciej Dworak @@ -100,31 +103,29 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1"> - - - - - + + + + + diff --git a/rtdata/images/themed/svg/node-move-x-hicontrast.svg b/rtdata/images/themed/svg/node-move-x-hicontrast.svg index 6e6079901..a24af10ef 100644 --- a/rtdata/images/themed/svg/node-move-x-hicontrast.svg +++ b/rtdata/images/themed/svg/node-move-x-hicontrast.svg @@ -41,18 +41,21 @@ inkscape:pagecheckerboard="false" inkscape:snap-bbox="true" inkscape:bbox-nodes="true" - inkscape:snap-others="false" - inkscape:object-nodes="false" + inkscape:snap-others="true" + inkscape:object-nodes="true" inkscape:snap-grids="true" - inkscape:snap-bbox-midpoints="false" - inkscape:snap-bbox-edge-midpoints="true"> + inkscape:snap-bbox-midpoints="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-center="true"> + empspacing="2" + dotted="false" + spacingx="0.5" + spacingy="0.5" /> @@ -64,7 +67,7 @@ image/svg+xml - + Maciej Dworak @@ -101,20 +104,24 @@ inkscape:groupmode="layer" inkscape:label="Layer 1"> - + sodipodi:nodetypes="cccc" /> + diff --git a/rtdata/images/themed/svg/node-move-xy-hicontrast.svg b/rtdata/images/themed/svg/node-move-xy-hicontrast.svg index 9c3915804..05d291870 100644 --- a/rtdata/images/themed/svg/node-move-xy-hicontrast.svg +++ b/rtdata/images/themed/svg/node-move-xy-hicontrast.svg @@ -26,9 +26,9 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="34.25" - inkscape:cx="12" - inkscape:cy="12" + inkscape:zoom="24.218407" + inkscape:cx="6.3691263" + inkscape:cy="12.072563" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -41,18 +41,21 @@ inkscape:pagecheckerboard="false" inkscape:snap-bbox="true" inkscape:bbox-nodes="true" - inkscape:snap-others="false" - inkscape:object-nodes="false" + inkscape:snap-others="true" + inkscape:object-nodes="true" inkscape:snap-grids="true" - inkscape:snap-bbox-midpoints="false" - inkscape:snap-bbox-edge-midpoints="true"> + inkscape:snap-bbox-midpoints="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-center="true"> + empspacing="2" + dotted="false" + spacingx="0.5" + spacingy="0.5" /> @@ -100,31 +103,69 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1"> + + + + + + + - - + id="path5657" + d="M -31.508539,18.321948 -28.000003,23 l 3.508542,-4.678052 z" + style="display:inline;opacity:0.9;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:0.0348262" /> + r="3" /> + + diff --git a/rtdata/images/themed/svg/node-move-y-hicontrast.svg b/rtdata/images/themed/svg/node-move-y-hicontrast.svg index fe7b285e7..615f3f94a 100644 --- a/rtdata/images/themed/svg/node-move-y-hicontrast.svg +++ b/rtdata/images/themed/svg/node-move-y-hicontrast.svg @@ -41,18 +41,21 @@ inkscape:pagecheckerboard="false" inkscape:snap-bbox="true" inkscape:bbox-nodes="true" - inkscape:snap-others="false" - inkscape:object-nodes="false" + inkscape:snap-others="true" + inkscape:object-nodes="true" inkscape:snap-grids="true" - inkscape:snap-bbox-midpoints="false" - inkscape:snap-bbox-edge-midpoints="true"> + inkscape:snap-bbox-midpoints="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-center="true"> + empspacing="2" + dotted="false" + spacingx="0.5" + spacingy="0.5" /> @@ -64,7 +67,7 @@ image/svg+xml - + Maciej Dworak @@ -100,21 +103,29 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1"> - - - + + + + + diff --git a/rtdata/images/themed/svg/node-move-y.svg b/rtdata/images/themed/svg/node-move-y.svg deleted file mode 100644 index 3c6e5cfd7..000000000 --- a/rtdata/images/themed/svg/node-move-y.svg +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - Maciej Dworak - - - - - - - - RawTherapee icon. - - - - - - - - - - - - - - - - - - diff --git a/rtdata/images/themed/svg/undo-small.svg b/rtdata/images/themed/svg/undo-small.svg index 137c343e6..83b4663a0 100644 --- a/rtdata/images/themed/svg/undo-small.svg +++ b/rtdata/images/themed/svg/undo-small.svg @@ -44,7 +44,8 @@ inkscape:snap-others="false" inkscape:object-nodes="false" inkscape:snap-grids="true" - inkscape:snap-bbox-midpoints="false"> + inkscape:snap-bbox-midpoints="false" + inkscape:snap-global="false"> mainWindow) cResizeWidth = Gdk::Cursor::create (display, Gdk::SB_H_DOUBLE_ARROW); cResizeHeight = Gdk::Cursor::create (display, Gdk::SB_V_DOUBLE_ARROW); - cResizeDiag = Gdk::Cursor::create (display, Gdk::BOTTOM_RIGHT_CORNER); + //cResizeDiag = Gdk::Cursor::create (display, Gdk::BOTTOM_RIGHT_CORNER); cResizeTopLeft = Gdk::Cursor::create (display, Gdk::TOP_LEFT_CORNER); cResizeTopRight = Gdk::Cursor::create (display, Gdk::TOP_RIGHT_CORNER); cResizeBottomLeft = Gdk::Cursor::create (display, Gdk::BOTTOM_LEFT_CORNER); cResizeBottomRight = Gdk::Cursor::create (display, Gdk::BOTTOM_RIGHT_CORNER); - cCropMove = Gdk::Cursor::create (display, Gdk::FLEUR); - cCropMoving = Gdk::Cursor::create (display, Gdk::HAND2); + cCropDraw = Gdk::Cursor::create (display, Gdk::CROSSHAIR); + cCropMove = Gdk::Cursor::create (display, Gdk::CROSSHAIR); cCropSelection = Gdk::Cursor::create (display, Gdk::CROSSHAIR); cLeftTanMove = Gdk::Cursor::create (display, Gdk::SB_LEFT_ARROW); cRightTanMove = Gdk::Cursor::create (display, Gdk::SB_RIGHT_ARROW); @@ -52,26 +52,41 @@ void CursorManager::init (Glib::RefPtr mainWindow) cWait = Gdk::Cursor::create (display, Gdk::CLOCK); Glib::RefPtr crosshair = RTImage::createFromFile ("crosshair-hicontrast.png"); - Glib::RefPtr hand_open = RTImage::createFromFile ("hand-open-hicontrast.png"); - Glib::RefPtr hand_closed = RTImage::createFromFile ("hand-closed-hicontrast.png"); - Glib::RefPtr wbpick = RTImage::createFromFile ("color-picker-hicontrast.png"); - Glib::RefPtr cpick = RTImage::createFromFile ("color-picker-add-hicontrast.png"); + Glib::RefPtr handOpen = RTImage::createFromFile ("hand-open-hicontrast.png"); + Glib::RefPtr handClosed = RTImage::createFromFile ("hand-closed-hicontrast.png"); + Glib::RefPtr cropDraw = RTImage::createFromFile ("crop-point-hicontrast.png"); + Glib::RefPtr resizeWidth = RTImage::createFromFile ("node-move-x-hicontrast.png"); + Glib::RefPtr resizeHeight = RTImage::createFromFile ("node-move-y-hicontrast.png"); + //Glib::RefPtr resizeDiag = RTImage::createFromFile ("node-move-diag-hicontrast.png"); + Glib::RefPtr resizeTopLeft = RTImage::createFromFile ("node-move-nw-se-hicontrast.png"); + Glib::RefPtr resizeTopRight = RTImage::createFromFile ("node-move-sw-ne-hicontrast.png"); + Glib::RefPtr resizeBottomLeft = RTImage::createFromFile ("node-move-sw-ne-hicontrast.png"); + Glib::RefPtr resizeBottomRight = RTImage::createFromFile ("node-move-nw-se-hicontrast.png"); + Glib::RefPtr colPick = RTImage::createFromFile ("color-picker-hicontrast.png"); + Glib::RefPtr colPickAdd = RTImage::createFromFile ("color-picker-add-hicontrast.png"); Glib::RefPtr empty = RTImage::createFromFile ("empty.png"); Glib::RefPtr move2D = RTImage::createFromFile ("node-move-xy-hicontrast.png"); - Glib::RefPtr move1DH = RTImage::createFromFile ("node-move-x-hicontrast.png"); - Glib::RefPtr move1DV = RTImage::createFromFile ("node-move-y-hicontrast.png"); - Glib::RefPtr moveRotate = RTImage::createFromFile ("rotate-aroundnode-hicontrast.png"); + //Glib::RefPtr move1DH = RTImage::createFromFile ("node-move-x-hicontrast.png"); + //Glib::RefPtr move1DV = RTImage::createFromFile ("node-move-y-hicontrast.png"); + Glib::RefPtr rotate = RTImage::createFromFile ("rotate-aroundnode-hicontrast.png"); cCrosshair = crosshair ? Gdk::Cursor::create (cAdd->get_display(), crosshair, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cHandOpen = hand_open ? Gdk::Cursor::create (cAdd->get_display(), hand_open, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cHandClosed = hand_closed ? Gdk::Cursor::create (cAdd->get_display(), hand_closed, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cWB = wbpick ? Gdk::Cursor::create (cAdd->get_display(), wbpick, 4, 21) : Gdk::Cursor::create (cAdd->get_display(), Gdk::ARROW); - cAddPicker = cpick ? Gdk::Cursor::create (cAdd->get_display(), cpick, 4, 21) : Gdk::Cursor::create (cAdd->get_display(), Gdk::ARROW); + cHandOpen = handOpen ? Gdk::Cursor::create (cAdd->get_display(), handOpen, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); + cHandClosed = handClosed ? Gdk::Cursor::create (cAdd->get_display(), handClosed, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); + cCropDraw = cropDraw ? Gdk::Cursor::create (cAdd->get_display(), cropDraw, 3, 3) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); + cResizeWidth = resizeWidth ? Gdk::Cursor::create (cAdd->get_display(), resizeWidth, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); + cResizeHeight = resizeHeight ? Gdk::Cursor::create (cAdd->get_display(), resizeHeight, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); + cResizeTopLeft = resizeTopLeft ? Gdk::Cursor::create (cAdd->get_display(), resizeTopLeft, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); + cResizeTopRight = resizeTopRight ? Gdk::Cursor::create (cAdd->get_display(), resizeTopRight, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); + cResizeBottomLeft = resizeBottomLeft ? Gdk::Cursor::create (cAdd->get_display(), resizeBottomLeft, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); + cResizeBottomRight = resizeBottomRight ? Gdk::Cursor::create (cAdd->get_display(), resizeBottomRight, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); + cWB = colPick ? Gdk::Cursor::create (cAdd->get_display(), colPick, 4, 21) : Gdk::Cursor::create (cAdd->get_display(), Gdk::ARROW); + cAddPicker = colPickAdd ? Gdk::Cursor::create (cAdd->get_display(), colPickAdd, 4, 21) : Gdk::Cursor::create (cAdd->get_display(), Gdk::ARROW); cHidden = empty ? Gdk::Cursor::create (cAdd->get_display(), empty, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); cMove2D = move2D ? Gdk::Cursor::create (cAdd->get_display(), move2D, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); - cMove1DH = move1DH ? Gdk::Cursor::create (cAdd->get_display(), move1DH, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); - cMove1DV = move1DV ? Gdk::Cursor::create (cAdd->get_display(), move1DV, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); - cMoveRotate = moveRotate ? Gdk::Cursor::create (cAdd->get_display(), moveRotate, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::CIRCLE); + //cMove1DH = move1DH ? Gdk::Cursor::create (cAdd->get_display(), move1DH, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); + //cMove1DV = move1DV ? Gdk::Cursor::create (cAdd->get_display(), move1DV, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); + cRotate = rotate ? Gdk::Cursor::create (cAdd->get_display(), rotate, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::CIRCLE); window = mainWindow; } @@ -97,7 +112,8 @@ void CursorManager::setCursor (Glib::RefPtr window, CursorShape sha } else if (shape == CSResizeHeight) { window->set_cursor (cResizeHeight); } else if (shape == CSResizeDiagonal) { - window->set_cursor (cResizeDiag); + //window->set_cursor (cResizeDiag); + window->set_cursor (cMove2D); } else if (shape == CSResizeTopLeft) { window->set_cursor (cResizeTopLeft); } else if (shape == CSResizeTopRight) { @@ -109,23 +125,23 @@ void CursorManager::setCursor (Glib::RefPtr window, CursorShape sha } else if (shape == CSMove2D) { window->set_cursor (cMove2D); } else if (shape == CSMove1DH) { - window->set_cursor (cMove1DH); + window->set_cursor (cResizeWidth); } else if (shape == CSMove1DV) { - window->set_cursor (cMove1DV); + window->set_cursor (cResizeHeight); } else if (shape == CSMoveRotate) { - window->set_cursor (cMoveRotate); + window->set_cursor (cRotate); } else if (shape == CSSpotWB) { window->set_cursor (cWB); } else if (shape == CSAddColPicker) { window->set_cursor (cAddPicker); } else if (shape == CSCropSelect) { - window->set_cursor (cCrosshair); + window->set_cursor (cCropDraw); } else if (shape == CSMoveLeft) { window->set_cursor (cLeftTanMove); } else if (shape == CSMoveRight) { window->set_cursor (cRightTanMove); } else if (shape == CSStraighten) { - window->set_cursor (cCrosshair); + window->set_cursor (cRotate); } else if (shape == CSWait) { window->set_cursor (cWait); } else if (shape == CSPlus) { diff --git a/rtgui/cursormanager.h b/rtgui/cursormanager.h index c48648931..2622aead2 100644 --- a/rtgui/cursormanager.h +++ b/rtgui/cursormanager.h @@ -56,13 +56,13 @@ class CursorManager private: Glib::RefPtr cResizeWidth; Glib::RefPtr cResizeHeight; - Glib::RefPtr cResizeDiag; + //Glib::RefPtr cResizeDiag; Glib::RefPtr cResizeTopLeft; Glib::RefPtr cResizeTopRight; Glib::RefPtr cResizeBottomLeft; Glib::RefPtr cResizeBottomRight; + Glib::RefPtr cCropDraw; Glib::RefPtr cCropMove; - Glib::RefPtr cCropMoving; Glib::RefPtr cLeftTanMove; Glib::RefPtr cRightTanMove; Glib::RefPtr cNormal; @@ -76,9 +76,9 @@ private: Glib::RefPtr cAddPicker; Glib::RefPtr cHidden; Glib::RefPtr cMove2D; - Glib::RefPtr cMove1DH; - Glib::RefPtr cMove1DV; - Glib::RefPtr cMoveRotate; + //Glib::RefPtr cMove1DH; + //Glib::RefPtr cMove1DV; + Glib::RefPtr cRotate; Glib::RefPtr display; Glib::RefPtr window; diff --git a/rtgui/toolbar.cc b/rtgui/toolbar.cc index f82911e80..9bed78768 100644 --- a/rtgui/toolbar.cc +++ b/rtgui/toolbar.cc @@ -46,7 +46,7 @@ ToolBar::ToolBar () : showColPickers(true), listener (nullptr), pickerListener(n pack_start (*wbTool); - showcolpickersimg.reset(new RTImage("color-picker-show.png")); + showcolpickersimg.reset(new RTImage("color-picker-bars.png")); hidecolpickersimg.reset(new RTImage("color-picker-hide.png")); colPickerTool = Gtk::manage (new Gtk::ToggleButton ()); From 68378c202880fc6715236d49329f63687677ef0d Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 28 Aug 2018 13:50:16 +0200 Subject: [PATCH 3/5] Cleanup of unused cursor code --- rtgui/cursormanager.cc | 7 ------- rtgui/cursormanager.h | 3 --- 2 files changed, 10 deletions(-) diff --git a/rtgui/cursormanager.cc b/rtgui/cursormanager.cc index 7db77a2d1..d0e57ba61 100644 --- a/rtgui/cursormanager.cc +++ b/rtgui/cursormanager.cc @@ -38,7 +38,6 @@ void CursorManager::init (Glib::RefPtr mainWindow) cResizeWidth = Gdk::Cursor::create (display, Gdk::SB_H_DOUBLE_ARROW); cResizeHeight = Gdk::Cursor::create (display, Gdk::SB_V_DOUBLE_ARROW); - //cResizeDiag = Gdk::Cursor::create (display, Gdk::BOTTOM_RIGHT_CORNER); cResizeTopLeft = Gdk::Cursor::create (display, Gdk::TOP_LEFT_CORNER); cResizeTopRight = Gdk::Cursor::create (display, Gdk::TOP_RIGHT_CORNER); cResizeBottomLeft = Gdk::Cursor::create (display, Gdk::BOTTOM_LEFT_CORNER); @@ -57,7 +56,6 @@ void CursorManager::init (Glib::RefPtr mainWindow) Glib::RefPtr cropDraw = RTImage::createFromFile ("crop-point-hicontrast.png"); Glib::RefPtr resizeWidth = RTImage::createFromFile ("node-move-x-hicontrast.png"); Glib::RefPtr resizeHeight = RTImage::createFromFile ("node-move-y-hicontrast.png"); - //Glib::RefPtr resizeDiag = RTImage::createFromFile ("node-move-diag-hicontrast.png"); Glib::RefPtr resizeTopLeft = RTImage::createFromFile ("node-move-nw-se-hicontrast.png"); Glib::RefPtr resizeTopRight = RTImage::createFromFile ("node-move-sw-ne-hicontrast.png"); Glib::RefPtr resizeBottomLeft = RTImage::createFromFile ("node-move-sw-ne-hicontrast.png"); @@ -66,8 +64,6 @@ void CursorManager::init (Glib::RefPtr mainWindow) Glib::RefPtr colPickAdd = RTImage::createFromFile ("color-picker-add-hicontrast.png"); Glib::RefPtr empty = RTImage::createFromFile ("empty.png"); Glib::RefPtr move2D = RTImage::createFromFile ("node-move-xy-hicontrast.png"); - //Glib::RefPtr move1DH = RTImage::createFromFile ("node-move-x-hicontrast.png"); - //Glib::RefPtr move1DV = RTImage::createFromFile ("node-move-y-hicontrast.png"); Glib::RefPtr rotate = RTImage::createFromFile ("rotate-aroundnode-hicontrast.png"); cCrosshair = crosshair ? Gdk::Cursor::create (cAdd->get_display(), crosshair, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); @@ -84,8 +80,6 @@ void CursorManager::init (Glib::RefPtr mainWindow) cAddPicker = colPickAdd ? Gdk::Cursor::create (cAdd->get_display(), colPickAdd, 4, 21) : Gdk::Cursor::create (cAdd->get_display(), Gdk::ARROW); cHidden = empty ? Gdk::Cursor::create (cAdd->get_display(), empty, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); cMove2D = move2D ? Gdk::Cursor::create (cAdd->get_display(), move2D, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); - //cMove1DH = move1DH ? Gdk::Cursor::create (cAdd->get_display(), move1DH, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); - //cMove1DV = move1DV ? Gdk::Cursor::create (cAdd->get_display(), move1DV, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); cRotate = rotate ? Gdk::Cursor::create (cAdd->get_display(), rotate, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::CIRCLE); window = mainWindow; @@ -112,7 +106,6 @@ void CursorManager::setCursor (Glib::RefPtr window, CursorShape sha } else if (shape == CSResizeHeight) { window->set_cursor (cResizeHeight); } else if (shape == CSResizeDiagonal) { - //window->set_cursor (cResizeDiag); window->set_cursor (cMove2D); } else if (shape == CSResizeTopLeft) { window->set_cursor (cResizeTopLeft); diff --git a/rtgui/cursormanager.h b/rtgui/cursormanager.h index 2622aead2..e98202ae7 100644 --- a/rtgui/cursormanager.h +++ b/rtgui/cursormanager.h @@ -56,7 +56,6 @@ class CursorManager private: Glib::RefPtr cResizeWidth; Glib::RefPtr cResizeHeight; - //Glib::RefPtr cResizeDiag; Glib::RefPtr cResizeTopLeft; Glib::RefPtr cResizeTopRight; Glib::RefPtr cResizeBottomLeft; @@ -76,8 +75,6 @@ private: Glib::RefPtr cAddPicker; Glib::RefPtr cHidden; Glib::RefPtr cMove2D; - //Glib::RefPtr cMove1DH; - //Glib::RefPtr cMove1DV; Glib::RefPtr cRotate; Glib::RefPtr display; From 54ff8788e69aaa770dc17dea899adf258161cdb0 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 28 Aug 2018 18:01:25 +0200 Subject: [PATCH 4/5] More icon and cursor fixes - The Graduated Filter on-canvas widget button now has its own icon, does not use the curve's "add adjustment point" icon anymore. - When dragging a crop, a closed hand cursor is shown. - The hand icon had the outline removed to improve separation between the fingers. --- .../themed/png/dark/crosshair-adjust.png | Bin 483 -> 478 bytes .../themed/png/dark/crosshair-node-curve.png | Bin 0 -> 483 bytes rtdata/images/themed/png/dark/hand-open.png | Bin 564 -> 533 bytes .../themed/png/light/crosshair-adjust.png | Bin 482 -> 468 bytes .../themed/png/light/crosshair-node-curve.png | Bin 0 -> 482 bytes rtdata/images/themed/png/light/hand-open.png | Bin 574 -> 549 bytes rtdata/images/themed/svg/crosshair-adjust.svg | 40 +----- .../themed/svg/crosshair-node-curve.svg | 134 ++++++++++++++++++ rtdata/images/themed/svg/hand-open.svg | 9 +- rtgui/cursormanager.cc | 5 +- rtgui/diagonalcurveeditorsubgroup.cc | 6 +- rtgui/flatcurveeditorsubgroup.cc | 2 +- 12 files changed, 150 insertions(+), 46 deletions(-) create mode 100644 rtdata/images/themed/png/dark/crosshair-node-curve.png create mode 100644 rtdata/images/themed/png/light/crosshair-node-curve.png create mode 100644 rtdata/images/themed/svg/crosshair-node-curve.svg diff --git a/rtdata/images/themed/png/dark/crosshair-adjust.png b/rtdata/images/themed/png/dark/crosshair-adjust.png index 08d6e00ff5c6dfa9b098e8f80d49d448b400ffb1..8536e8f0921f759767191dbf7bbea1e91acd41b6 100644 GIT binary patch delta 226 zcmaFNe2;kpD`UM%fKQ04dx6gxFgSbmERa5T?%e6qr~m)|4-o{C$B!TP*qLa{z`(#$ z666=mu=%NDR8lbG;Ypg@>{Ft%f#NluE{-7*my;75SUGukjy?-8>*iu^UT837vqvUl z^J0#cvv-$V;eB49rI~ri(&0egnM8-DGuV`)3c0uzNS(QKiAO?W#^pgQu&X%Q~loCIE#hUL^nk delta 231 zcmcb|{Fr$ID`UM@fKQ04dx6gxFgSkvIFLSj_AG=8VLyBJ3@8Ewr%#_&e`r|Dz`(#) z666=mu=$zXg4pGql}>De`qLbDFKh?ORC>BNhDcmaPEg>mSg(BJOzR_qXF=QDCUP41 zEm)8s9y4+A0tqMgMGH9QoPDaH!4?0!pks&2LCeOIJUm_ozghSdEZ9{gAIRh#XJBb( zej|{~k)CA6Jb98)^TbI^0ilmrSlXSN7#F@tFq_dNQDDf>8N837lbO}4f|-@!4U>@U UJ=c_%Kvyt$y85}Sb4q9e0QHb#AOHXW diff --git a/rtdata/images/themed/png/dark/crosshair-node-curve.png b/rtdata/images/themed/png/dark/crosshair-node-curve.png new file mode 100644 index 0000000000000000000000000000000000000000..08d6e00ff5c6dfa9b098e8f80d49d448b400ffb1 GIT binary patch literal 483 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1=Gpc2=J66gGa%A(Blj1mTCX9dTS zlA_F{(vr;lJl)`o#G+KkoXqT0g^ZGt0xNy}ERK!`}5n0T@z;^_M8K-LVNdpD70(?ST-3xrqfWh(O$AR?Ovu7b( z2>aQyXFw4kIDPuG`a?sY5e$4KL4Lsuo1e)oh+W=U>BJ_eKh1IX!giocrKgKyh{WaO z1O*O@^~yKSv_3L;7PQ@MBBz1hf&~fUF%uUrkZ^Kew18vI*{2#BT+a(ScDNk0Y&^-s z<7M!hgb51SbnK0|SFlq{8Wmicjj*1AIbU&zw2qUf=^HFI>0)Bu}3{efI2GAOnq^ zwvwF_sFk-Q$S-&^!z{iPetP!x@-dxd^J0SBffDOIT^vIsF8f~C$k${b!1loYYM0}* z)e1u5v2$b^uCjLOCp=<4@T?>Mz@xr=h1sj~HOjZtAM>7dXZn`w`&s{rwoOgBIM1j% zPn<37*#pU`S=|MB7cAElx-4G5RpFSl{@%UZ(<~Nz{U{Q!I$*`iiZ&@8QG-wOtlEyR zFj?Bed3eFJTzNO1qqcfR3#Q7=RG408c+8WlEq`+;&-a$zxjG#Z>fKZKrum!|uHxP` h_jLR3x$(7(@4AGfpMTF{b_P10!PC{xWt~$(697)RD4oz9N-h;dIkp0pFe;4^y#x_&jJP93w$8LTeofn zid?>Y87>9n?%gwa9?%%Uk|4j}%{8l)4(t#ZyGWGFEx=*v&j9+OtYP zM`JhZB&I_b(oSUa^Yb=b zb_>^;@K0Oc$o}E#BkqYS&dZfBY~k@>>kfL!W>fv;VekBwjlYi0``Fed&gI+iQ{~{j z_s3Z@kE$OxytbM9THKcY(Po9+fDc5X(eqr!* L^>bP0l+XkKjI5uC diff --git a/rtdata/images/themed/png/light/crosshair-adjust.png b/rtdata/images/themed/png/light/crosshair-adjust.png index 0af7379c24aefb2914034148d0ccebc9187e0af5..b8b17dfa1a76be046ffc2ad3f056f92f845c5598 100644 GIT binary patch delta 216 zcmaFFe1&-fD`UNSfKQ04dx4KC45)yCnwlC!Kv!26$W~BL01E$mY5ReJfq}Oq$S;^7 zdh=6MKADC707~R}x;TbNTux4KVC9yOh>%&36XwjurY@?HzWE~~o1!bn z?9DfJ2%URqV79HH_yB|XaoyGcM(zS$Ue>6SLQ+ypDpRLS5t5L&(J+NstNmbLfWQkY zJx52uoVEoLy;oT^_*_3Sbv>7m@SV7)S4hEwfkAnf@a)aLD-Qy#X7F_Nb6Mw<&;$TX CoI-2> delta 230 zcmcb@{D^r2D`UM@fKQ04dx4KC7-(o{sHmtw*lKEOK!&!qHjq?TSBHql{A75)phGj$rU~^>bP0l+XkKmC;Jv diff --git a/rtdata/images/themed/png/light/crosshair-node-curve.png b/rtdata/images/themed/png/light/crosshair-node-curve.png new file mode 100644 index 0000000000000000000000000000000000000000..0af7379c24aefb2914034148d0ccebc9187e0af5 GIT binary patch literal 482 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1=Gpc2=J66gGa%A(Blj1mTCX9dTS zlA_F{(vr;lJl)`o#G+KkoXqT0g^ZGt0xNy}ERK!`}5n0T@z;^_M8K-LVNdpD70(?ST-3xqF!9YVpLq$ae!d6pL z12VL=wSlC%x;jKW<|o4=pf0|WAirRS&Clc(BrbR9WUCg`pT>IN^KGC^g{O;Sh{WaO z1O<*8`3g7A^a>d~3)$YP#A@KTU_pXP%*4eDB%ItAE#R1Q_N9gf*YkqT9SU1m)Qk-@ z4!#k#X?P$blHO3fLzY=UMsI_2kK&v|Ic#dGscg!stP55hVPa|b?qXc{Cc$h*lSIKr lhR(}|jGfG^UKPx&3~L?>Uie$@CJuB1gQu&X%Q~loCIEdCm&pJC literal 0 HcmV?d00001 diff --git a/rtdata/images/themed/png/light/hand-open.png b/rtdata/images/themed/png/light/hand-open.png index 8a180934f24afda377a0f3efcfb4426801ee9542..bb01eac88a0e150354fb20761b03cc5e22c13229 100644 GIT binary patch delta 310 zcmdnTvXo_l1SbnK0|SFlq{8Wmicjhd0(?STRaI5p3w)H6lz_M5pwwyMW zYi*qgeFDz%huO{8I(iF6g(5izWJu&xrv4hg$a4guiGmf#j=d9EObcVc-rBx swsD74ijtGk6y+EBIr~Z#dzhISq=e*8?&hEW59k2~Pgg&ebxsLQ05Qp5xc~qF delta 335 zcmZ3=vX5ng1SbbG0|UeLm1j>)RD4oz8Q>G*stN{bYHAP$gmf?PfiQG+byZYUfU+_& zGC&b^b#-NBWr&ol?a7ru!-PwM{DL=!DKzffzlPz+Db^Af@m}Ms8P}Gto1hJpKH%x% z7@~2$^kO4lvjPvx1?H$7O0VwxuYYsnNPX|DHHH&^2vx1ssONfo_gc`TwxGrBX<^(G zwbxqSSlPcQ!Nikqm7;i~Y0_s~BORt~B_3jG5iZ+!^K(fMNgu diff --git a/rtdata/images/themed/svg/crosshair-adjust.svg b/rtdata/images/themed/svg/crosshair-adjust.svg index 21862c970..4cde3415a 100644 --- a/rtdata/images/themed/svg/crosshair-adjust.svg +++ b/rtdata/images/themed/svg/crosshair-adjust.svg @@ -26,7 +26,7 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="34.25" + inkscape:zoom="33.833333" inkscape:cx="12" inkscape:cy="12" inkscape:document-units="px" @@ -63,7 +63,7 @@ image/svg+xml - + Maciej Dworak @@ -101,48 +101,18 @@ inkscape:label="Layer 1"> - - - - - - - diff --git a/rtdata/images/themed/svg/crosshair-node-curve.svg b/rtdata/images/themed/svg/crosshair-node-curve.svg new file mode 100644 index 000000000..d72c2a929 --- /dev/null +++ b/rtdata/images/themed/svg/crosshair-node-curve.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/hand-open.svg b/rtdata/images/themed/svg/hand-open.svg index d49d10d5f..a7597b482 100644 --- a/rtdata/images/themed/svg/hand-open.svg +++ b/rtdata/images/themed/svg/hand-open.svg @@ -26,12 +26,12 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="34.25" + inkscape:zoom="33.833333" inkscape:cx="12" inkscape:cy="12" inkscape:document-units="px" inkscape:current-layer="layer1" - showgrid="true" + showgrid="false" inkscape:window-width="1920" inkscape:window-height="1019" inkscape:window-x="0" @@ -119,7 +119,8 @@ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + d="m 36.455078,1.1015625 c -0.657515,-0.025842 -1.353006,0.4514359 -1.388672,1.2167969 0.02103,2.1794281 0.362572,4.3446075 0.34375,6.5253906 C 34.704462,6.7462413 33.696458,4.7625164 33.007812,2.6601562 32.699764,1.4053767 30.686393,1.3462201 30.712891,2.7910156 c 0.148468,1.5137205 0.593614,2.9947661 1.144531,4.4121094 0.579646,1.5250885 1.19498,3.114871 1.074219,4.777344 -0.211465,1.328048 -1.80517,1.750258 -2.697266,0.580078 -0.416475,-0.393564 -0.544424,-0.651727 -0.960938,-1.238281 -0.416513,-0.586553 -1.122246,-1.5013905 -1.86914,-1.220704 -1.49767,0.876327 -0.29335,2.450372 0.320312,3.476563 0.529141,1.049899 1.266424,1.94363 2.097657,2.765625 1.139405,1.210646 2.00714,2.79189 1.927734,4.496094 0.04404,1.388514 1.55807,2.053559 2.763672,2.126953 1.546216,0.08721 3.126794,0.01908 4.630859,-0.367188 0.822251,-0.241424 1.611734,-0.89878 1.595703,-1.824218 C 40.98435,16.701293 42.787358,12.966248 43.802734,9.0625 44.093836,8.0059864 44.448353,6.9326448 44.445312,5.828125 44.177193,4.6456298 42.537354,4.6959782 42.236328,6.0273438 41.967568,6.973985 41.870664,7.9687737 41.496094,8.8847656 41.242569,6.9262668 41.683518,4.9338681 41.367188,2.9785156 41.412433,1.450498 39.214266,1.5287748 38.957031,2.8378906 38.705507,4.763864 38.797888,6.7201513 38.556641,8.6484375 37.992758,6.3776292 38.26795,3.9551294 37.447266,1.7402344 37.23158,1.3141238 36.849587,1.1170679 36.455078,1.1015625 Z m -0.03125,0.4941406 c 0.22785,2.006e-4 0.425241,0.1051019 0.5625,0.3632813 0.747739,2.0597572 0.494913,4.4363486 1.083984,6.8085937 l 0.982422,-0.056641 C 39.29984,6.7358274 39.21188,4.7904773 39.451172,2.9316406 39.530361,2.5430223 39.900196,2.3387264 40.269531,2.34375 c 0.185458,0.00252 0.342359,0.063217 0.439453,0.1523438 0.09709,0.089127 0.167925,0.206397 0.160157,0.46875 l -0.002,0.046875 0.0078,0.046875 C 41.171104,4.8885486 40.731427,6.8744709 41,8.9492188 l 0.242188,1.8750002 0.716796,-1.7500002 c 0.411093,-1.0053067 0.505532,-2.0215571 0.757813,-2.9101563 l 0.0039,-0.013672 0.0039,-0.013672 c 0.107736,-0.4764885 0.395184,-0.6352244 0.660157,-0.6523438 0.251375,-0.016241 0.449106,0.1022573 0.542968,0.4316406 -0.01505,0.9710696 -0.318057,1.9705536 -0.605468,3.0136719 l -0.002,0.00391 v 0.00195 C 42.321624,12.774915 40.493948,16.543442 40.24213,20.746094 l -0.002,0.01953 v 0.01953 c 0.0055,0.318516 -0.117945,0.577694 -0.34375,0.8125 -0.223319,0.232223 -0.551559,0.418326 -0.882812,0.517578 -1.43352,0.367311 -2.960591,0.436603 -4.470703,0.351563 C 34.01895,22.434887 33.408681,22.263531 32.96875,21.976562 32.528819,21.689595 32.264389,21.339493 32.248047,20.824219 32.321056,18.952282 31.378689,17.267743 30.185547,16 l -0.0059,-0.0059 -0.0059,-0.0059 C 29.366435,15.189941 28.66843,14.338759 28.171875,13.353516 l -0.0078,-0.01758 -0.0098,-0.01563 c -0.322956,-0.540054 -0.748063,-1.170179 -0.902342,-1.681634 -0.07714,-0.255727 -0.08634,-0.461023 -0.03711,-0.621094 0.04425,-0.143897 0.168741,-0.284663 0.398437,-0.435547 0.148566,-0.04428 0.2911,-0.0095 0.53125,0.189453 0.254362,0.210719 0.520624,0.555332 0.722657,0.839844 0.388512,0.547122 0.564085,0.853027 0.984375,1.261719 0.550791,0.711482 1.379594,0.989291 2.101562,0.820312 0.726883,-0.170128 1.337556,-0.786297 1.472656,-1.634765 l 0.002,-0.02149 0.0019,-0.02148 C 33.56099,10.207825 32.903082,8.5484755 32.324198,7.0253906 v -0.00195 -0.00195 c -0.537613,-1.3831218 -0.962413,-2.8116317 -1.107422,-4.25 -7.18e-4,-0.2313914 0.05782,-0.3441971 0.140625,-0.421875 0.0851,-0.079836 0.22003,-0.1338908 0.384765,-0.1367188 0.329471,-0.00566 0.684997,0.1822887 0.779297,0.5664063 l 0.0059,0.017578 0.0059,0.017578 c 0.704593,2.151049 1.712136,4.1379729 2.402344,6.1894531 l 0.974609,-0.15625 C 35.929397,6.6206215 35.591319,4.4623326 35.56836,2.33985 c 0.01905,-0.3764264 0.286845,-0.6247291 0.619141,-0.7109376 0.08191,-0.021249 0.160378,-0.03327 0.236328,-0.033203 z" + id="path825" + inkscape:connector-curvature="0" /> diff --git a/rtgui/cursormanager.cc b/rtgui/cursormanager.cc index d0e57ba61..9864a5da2 100644 --- a/rtgui/cursormanager.cc +++ b/rtgui/cursormanager.cc @@ -43,8 +43,7 @@ void CursorManager::init (Glib::RefPtr mainWindow) cResizeBottomLeft = Gdk::Cursor::create (display, Gdk::BOTTOM_LEFT_CORNER); cResizeBottomRight = Gdk::Cursor::create (display, Gdk::BOTTOM_RIGHT_CORNER); cCropDraw = Gdk::Cursor::create (display, Gdk::CROSSHAIR); - cCropMove = Gdk::Cursor::create (display, Gdk::CROSSHAIR); - cCropSelection = Gdk::Cursor::create (display, Gdk::CROSSHAIR); + cCropSelection = Gdk::Cursor::create (display, Gdk::STAR); // ? cLeftTanMove = Gdk::Cursor::create (display, Gdk::SB_LEFT_ARROW); cRightTanMove = Gdk::Cursor::create (display, Gdk::SB_RIGHT_ARROW); cAdd = Gdk::Cursor::create (display, Gdk::PLUS); @@ -100,7 +99,7 @@ void CursorManager::setCursor (Glib::RefPtr window, CursorShape sha } else if (shape == CSHandClosed) { window->set_cursor (cHandClosed); } else if (shape == CSMove) { - window->set_cursor (cCropMove); + window->set_cursor (cHandClosed); } else if (shape == CSResizeWidth) { window->set_cursor (cResizeWidth); } else if (shape == CSResizeHeight) { diff --git a/rtgui/diagonalcurveeditorsubgroup.cc b/rtgui/diagonalcurveeditorsubgroup.cc index e7599b502..6455f6cb9 100644 --- a/rtgui/diagonalcurveeditorsubgroup.cc +++ b/rtgui/diagonalcurveeditorsubgroup.cc @@ -69,7 +69,7 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, editPointCustom = Gtk::manage (new Gtk::ToggleButton ()); initButton(*editPointCustom, Glib::ustring("edit-point.png"), Gtk::ALIGN_START, false, "CURVEEDITOR_EDITPOINT_HINT"); editCustom = Gtk::manage (new Gtk::ToggleButton()); - initButton(*editCustom, Glib::ustring("crosshair-adjust.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); + initButton(*editCustom, Glib::ustring("crosshair-node-curve.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); editCustom->hide(); copyCustom = Gtk::manage (new Gtk::Button ()); initButton(*copyCustom, Glib::ustring("copy.png"), Gtk::ALIGN_END, true); @@ -146,7 +146,7 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, editPointNURBS = Gtk::manage (new Gtk::ToggleButton ()); initButton(*editPointNURBS, Glib::ustring("edit-point.png"), Gtk::ALIGN_START, false, "CURVEEDITOR_EDITPOINT_HINT"); editNURBS = Gtk::manage (new Gtk::ToggleButton()); - initButton(*editNURBS, Glib::ustring("crosshair-adjust.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); + initButton(*editNURBS, Glib::ustring("crosshair-node-curve.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); editNURBS->hide(); copyNURBS = Gtk::manage (new Gtk::Button ()); initButton(*copyNURBS, Glib::ustring("copy.png"), Gtk::ALIGN_END, true); @@ -224,7 +224,7 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, shcSelector->set_name("CurveSHCSelector"); // To handle the 4px gap between the SHCSelector and the curve through CSS editParam = Gtk::manage (new Gtk::ToggleButton()); - initButton(*editParam, Glib::ustring("crosshair-adjust.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); + initButton(*editParam, Glib::ustring("crosshair-node-curve.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); editParam->hide(); copyParam = Gtk::manage (new Gtk::Button ()); initButton(*copyParam, Glib::ustring("copy.png"), Gtk::ALIGN_END, true); diff --git a/rtgui/flatcurveeditorsubgroup.cc b/rtgui/flatcurveeditorsubgroup.cc index 055a8a92f..2cc96a184 100644 --- a/rtgui/flatcurveeditorsubgroup.cc +++ b/rtgui/flatcurveeditorsubgroup.cc @@ -63,7 +63,7 @@ FlatCurveEditorSubGroup::FlatCurveEditorSubGroup (CurveEditorGroup* prt, Glib::u } editCPoints = Gtk::manage (new Gtk::ToggleButton()); - initButton(*editCPoints, Glib::ustring("crosshair-adjust.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); + initButton(*editCPoints, Glib::ustring("crosshair-node-curve.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); editPointCPoints = Gtk::manage (new Gtk::ToggleButton ()); initButton(*editPointCPoints, Glib::ustring("edit-point.png"), Gtk::ALIGN_START, false, "CURVEEDITOR_EDITPOINT_HINT"); copyCPoints = Gtk::manage (new Gtk::Button ()); From 8bc0df571eb5182c6e30a012a00fd305f368c41b Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 28 Aug 2018 23:45:48 +0200 Subject: [PATCH 5/5] Cursor tweaks and code cleanup - CursorManager code cleanup. - Diagonal and flat curve cursors now use our bundled cursor icons. Icons are now less intrusive, allowing you to see what's going on under them as you manipulate the nodes. - New small crosshair icon for curves. --- .../themed/png/dark/crosshair-small.png | Bin 0 -> 382 bytes .../themed/png/light/crosshair-small.png | Bin 0 -> 387 bytes rtdata/images/themed/svg/crosshair-small.svg | 172 ++++++++++++++ rtgui/cursormanager.cc | 213 ++++++++++-------- rtgui/cursormanager.h | 71 +++--- rtgui/mydiagonalcurve.cc | 6 +- rtgui/myflatcurve.cc | 12 +- 7 files changed, 333 insertions(+), 141 deletions(-) create mode 100644 rtdata/images/themed/png/dark/crosshair-small.png create mode 100644 rtdata/images/themed/png/light/crosshair-small.png create mode 100644 rtdata/images/themed/svg/crosshair-small.svg diff --git a/rtdata/images/themed/png/dark/crosshair-small.png b/rtdata/images/themed/png/dark/crosshair-small.png new file mode 100644 index 0000000000000000000000000000000000000000..66db0bd42d97a0ac086e4b1e1940c0210addfaff GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1STsl~}fnFS@8`FRXMiRB>~sYO6jQWY|j z^Yip>tm>KrR2T$O=$v0rS(KTcQNrNttl(HuQk0og3eu$;oB?!$V@_svszOFdNr9EV zesWQ2Vo7FMYI1&VZhl@d$VvJ+naQbn#i_;mNtL?AiTWmb2Kt9Xl30PJhj_X;hFJ6_ zCoE94D1PSieWr2xu8%7d6%*Rn6uoD76bY@=`|4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1STsl~}fnFS@8`FRXMiRB>~sYO6jQWY|j z^Yip>tm>KrR2T$O=$v0rS(KTcQNrNttl(HuQk0og3eu$;oB?!$V@_svszOFdNr9EV zesWQ2Vo7FMYI1&VZhl@d$VvJ+naQbn#i_;mNtL?AiTWmb2Kt9Xl30PJM|!$AhFJ6_ zCoE762n~H32E@mfx3xA%O10=DDxLI9+3`SWsn`WM10w?igB2@RZvFfJfBf`DAecDu z + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtgui/cursormanager.cc b/rtgui/cursormanager.cc index 9864a5da2..34efbcac8 100644 --- a/rtgui/cursormanager.cc +++ b/rtgui/cursormanager.cc @@ -36,50 +36,45 @@ void CursorManager::init (Glib::RefPtr mainWindow) #endif - cResizeWidth = Gdk::Cursor::create (display, Gdk::SB_H_DOUBLE_ARROW); - cResizeHeight = Gdk::Cursor::create (display, Gdk::SB_V_DOUBLE_ARROW); - cResizeTopLeft = Gdk::Cursor::create (display, Gdk::TOP_LEFT_CORNER); - cResizeTopRight = Gdk::Cursor::create (display, Gdk::TOP_RIGHT_CORNER); - cResizeBottomLeft = Gdk::Cursor::create (display, Gdk::BOTTOM_LEFT_CORNER); - cResizeBottomRight = Gdk::Cursor::create (display, Gdk::BOTTOM_RIGHT_CORNER); - cCropDraw = Gdk::Cursor::create (display, Gdk::CROSSHAIR); - cCropSelection = Gdk::Cursor::create (display, Gdk::STAR); // ? - cLeftTanMove = Gdk::Cursor::create (display, Gdk::SB_LEFT_ARROW); - cRightTanMove = Gdk::Cursor::create (display, Gdk::SB_RIGHT_ARROW); - cAdd = Gdk::Cursor::create (display, Gdk::PLUS); - cWait = Gdk::Cursor::create (display, Gdk::CLOCK); + Glib::RefPtr add = RTImage::createFromFile("crosshair-small.png"); + Glib::RefPtr colPick = RTImage::createFromFile("color-picker-hicontrast.png"); + Glib::RefPtr colPickAdd = RTImage::createFromFile("color-picker-add-hicontrast.png"); + Glib::RefPtr cropDraw = RTImage::createFromFile("crop-point-hicontrast.png"); + Glib::RefPtr crosshair = RTImage::createFromFile("crosshair-hicontrast.png"); + Glib::RefPtr empty = RTImage::createFromFile("empty.png"); + Glib::RefPtr handClosed = RTImage::createFromFile("hand-closed-hicontrast.png"); + Glib::RefPtr handOpen = RTImage::createFromFile("hand-open-hicontrast.png"); + Glib::RefPtr moveBL = RTImage::createFromFile("node-move-sw-ne-hicontrast.png"); + Glib::RefPtr moveBR = RTImage::createFromFile("node-move-nw-se-hicontrast.png"); + Glib::RefPtr moveL = RTImage::createFromFile("node-move-x-hicontrast.png"); + Glib::RefPtr moveR = RTImage::createFromFile("node-move-x-hicontrast.png"); + Glib::RefPtr moveTL = RTImage::createFromFile("node-move-nw-se-hicontrast.png"); + Glib::RefPtr moveTR = RTImage::createFromFile("node-move-sw-ne-hicontrast.png"); + Glib::RefPtr moveX = RTImage::createFromFile("node-move-x-hicontrast.png"); + Glib::RefPtr moveXY = RTImage::createFromFile("node-move-xy-hicontrast.png"); + Glib::RefPtr moveY = RTImage::createFromFile("node-move-y-hicontrast.png"); + Glib::RefPtr rotate = RTImage::createFromFile("rotate-aroundnode-hicontrast.png"); + Glib::RefPtr wait = RTImage::createFromFile("gears.png"); // Currently unused, create *-hicontrast once used. - Glib::RefPtr crosshair = RTImage::createFromFile ("crosshair-hicontrast.png"); - Glib::RefPtr handOpen = RTImage::createFromFile ("hand-open-hicontrast.png"); - Glib::RefPtr handClosed = RTImage::createFromFile ("hand-closed-hicontrast.png"); - Glib::RefPtr cropDraw = RTImage::createFromFile ("crop-point-hicontrast.png"); - Glib::RefPtr resizeWidth = RTImage::createFromFile ("node-move-x-hicontrast.png"); - Glib::RefPtr resizeHeight = RTImage::createFromFile ("node-move-y-hicontrast.png"); - Glib::RefPtr resizeTopLeft = RTImage::createFromFile ("node-move-nw-se-hicontrast.png"); - Glib::RefPtr resizeTopRight = RTImage::createFromFile ("node-move-sw-ne-hicontrast.png"); - Glib::RefPtr resizeBottomLeft = RTImage::createFromFile ("node-move-sw-ne-hicontrast.png"); - Glib::RefPtr resizeBottomRight = RTImage::createFromFile ("node-move-nw-se-hicontrast.png"); - Glib::RefPtr colPick = RTImage::createFromFile ("color-picker-hicontrast.png"); - Glib::RefPtr colPickAdd = RTImage::createFromFile ("color-picker-add-hicontrast.png"); - Glib::RefPtr empty = RTImage::createFromFile ("empty.png"); - Glib::RefPtr move2D = RTImage::createFromFile ("node-move-xy-hicontrast.png"); - Glib::RefPtr rotate = RTImage::createFromFile ("rotate-aroundnode-hicontrast.png"); - - cCrosshair = crosshair ? Gdk::Cursor::create (cAdd->get_display(), crosshair, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cHandOpen = handOpen ? Gdk::Cursor::create (cAdd->get_display(), handOpen, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cHandClosed = handClosed ? Gdk::Cursor::create (cAdd->get_display(), handClosed, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cCropDraw = cropDraw ? Gdk::Cursor::create (cAdd->get_display(), cropDraw, 3, 3) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cResizeWidth = resizeWidth ? Gdk::Cursor::create (cAdd->get_display(), resizeWidth, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cResizeHeight = resizeHeight ? Gdk::Cursor::create (cAdd->get_display(), resizeHeight, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cResizeTopLeft = resizeTopLeft ? Gdk::Cursor::create (cAdd->get_display(), resizeTopLeft, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cResizeTopRight = resizeTopRight ? Gdk::Cursor::create (cAdd->get_display(), resizeTopRight, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cResizeBottomLeft = resizeBottomLeft ? Gdk::Cursor::create (cAdd->get_display(), resizeBottomLeft, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cResizeBottomRight = resizeBottomRight ? Gdk::Cursor::create (cAdd->get_display(), resizeBottomRight, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cWB = colPick ? Gdk::Cursor::create (cAdd->get_display(), colPick, 4, 21) : Gdk::Cursor::create (cAdd->get_display(), Gdk::ARROW); - cAddPicker = colPickAdd ? Gdk::Cursor::create (cAdd->get_display(), colPickAdd, 4, 21) : Gdk::Cursor::create (cAdd->get_display(), Gdk::ARROW); - cHidden = empty ? Gdk::Cursor::create (cAdd->get_display(), empty, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); - cMove2D = move2D ? Gdk::Cursor::create (cAdd->get_display(), move2D, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); - cRotate = rotate ? Gdk::Cursor::create (cAdd->get_display(), rotate, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::CIRCLE); + cAdd = add ? Gdk::Cursor::create(display, add, 8, 8) : Gdk::Cursor::create(display, Gdk::PLUS); + cAddPicker = colPickAdd ? Gdk::Cursor::create(display, colPickAdd, 4, 21) : Gdk::Cursor::create(display, Gdk::PLUS); + cCropDraw = cropDraw ? Gdk::Cursor::create(display, cropDraw, 3, 3) : Gdk::Cursor::create(display, Gdk::DIAMOND_CROSS); + cCrosshair = crosshair ? Gdk::Cursor::create(display, crosshair, 12, 12) : Gdk::Cursor::create(display, Gdk::CROSSHAIR); + cEmpty = empty ? Gdk::Cursor::create(display, empty, 12, 12) : Gdk::Cursor::create(display, Gdk::BLANK_CURSOR); + cHandClosed = handClosed ? Gdk::Cursor::create(display, handClosed, 12, 12) : Gdk::Cursor::create(display, Gdk::HAND1); + cHandOpen = handOpen ? Gdk::Cursor::create(display, handOpen, 12, 12) : Gdk::Cursor::create(display, Gdk::HAND2); + cMoveBL = moveBL ? Gdk::Cursor::create(display, moveBL, 12, 12) : Gdk::Cursor::create(display, Gdk::BOTTOM_LEFT_CORNER); + cMoveBR = moveBR ? Gdk::Cursor::create(display, moveBR, 12, 12) : Gdk::Cursor::create(display, Gdk::BOTTOM_RIGHT_CORNER); + cMoveL = moveL ? Gdk::Cursor::create(display, moveL, 12, 12) : Gdk::Cursor::create(display, Gdk::SB_LEFT_ARROW); + cMoveR = moveR ? Gdk::Cursor::create(display, moveR, 12, 12) : Gdk::Cursor::create(display, Gdk::SB_RIGHT_ARROW); + cMoveTL = moveTL ? Gdk::Cursor::create(display, moveTL, 12, 12) : Gdk::Cursor::create(display, Gdk::TOP_LEFT_CORNER); + cMoveTR = moveTR ? Gdk::Cursor::create(display, moveTR, 12, 12) : Gdk::Cursor::create(display, Gdk::TOP_RIGHT_CORNER); + cMoveX = moveX ? Gdk::Cursor::create(display, moveX, 12, 12) : Gdk::Cursor::create(display, Gdk::SB_H_DOUBLE_ARROW); + cMoveXY = moveXY ? Gdk::Cursor::create(display, moveXY, 12, 12) : Gdk::Cursor::create(display, Gdk::FLEUR); + cMoveY = moveY ? Gdk::Cursor::create(display, moveY, 12, 12) : Gdk::Cursor::create(display, Gdk::SB_V_DOUBLE_ARROW); + cRotate = rotate ? Gdk::Cursor::create(display, rotate, 12, 12) : Gdk::Cursor::create(display, Gdk::EXCHANGE); + cWB = colPick ? Gdk::Cursor::create(display, colPick, 4, 21) : Gdk::Cursor::create(display, Gdk::TARGET); + cWait = wait ? Gdk::Cursor::create(display, wait, 12, 12) : Gdk::Cursor::create(display, Gdk::CLOCK); window = mainWindow; } @@ -87,59 +82,87 @@ void CursorManager::init (Glib::RefPtr mainWindow) /* Set the cursor of the given window */ void CursorManager::setCursor (Glib::RefPtr window, CursorShape shape) { - - if (shape == CSArrow) - // set_cursor without any arguments to select system default + switch (shape) { - window->set_cursor (); - } else if (shape == CSCrosshair) { - window->set_cursor (cCrosshair); - } else if (shape == CSHandOpen) { - window->set_cursor (cHandOpen); - } else if (shape == CSHandClosed) { - window->set_cursor (cHandClosed); - } else if (shape == CSMove) { - window->set_cursor (cHandClosed); - } else if (shape == CSResizeWidth) { - window->set_cursor (cResizeWidth); - } else if (shape == CSResizeHeight) { - window->set_cursor (cResizeHeight); - } else if (shape == CSResizeDiagonal) { - window->set_cursor (cMove2D); - } else if (shape == CSResizeTopLeft) { - window->set_cursor (cResizeTopLeft); - } else if (shape == CSResizeTopRight) { - window->set_cursor (cResizeTopRight); - } else if (shape == CSResizeBottomLeft) { - window->set_cursor (cResizeBottomLeft); - } else if (shape == CSResizeBottomRight) { - window->set_cursor (cResizeBottomRight); - } else if (shape == CSMove2D) { - window->set_cursor (cMove2D); - } else if (shape == CSMove1DH) { - window->set_cursor (cResizeWidth); - } else if (shape == CSMove1DV) { - window->set_cursor (cResizeHeight); - } else if (shape == CSMoveRotate) { - window->set_cursor (cRotate); - } else if (shape == CSSpotWB) { - window->set_cursor (cWB); - } else if (shape == CSAddColPicker) { - window->set_cursor (cAddPicker); - } else if (shape == CSCropSelect) { - window->set_cursor (cCropDraw); - } else if (shape == CSMoveLeft) { - window->set_cursor (cLeftTanMove); - } else if (shape == CSMoveRight) { - window->set_cursor (cRightTanMove); - } else if (shape == CSStraighten) { - window->set_cursor (cRotate); - } else if (shape == CSWait) { - window->set_cursor (cWait); - } else if (shape == CSPlus) { - window->set_cursor (cAdd); - } else if (shape == CSEmpty) { - window->set_cursor (cHidden); + case CursorShape::CSAddColPicker: + window->set_cursor(cAddPicker); + break; + case CursorShape::CSArrow: + window->set_cursor(); // set_cursor without any arguments to select system default + break; + case CursorShape::CSCropSelect: + window->set_cursor(cCropDraw); + break; + case CursorShape::CSCrosshair: + window->set_cursor(cCrosshair); + break; + case CursorShape::CSEmpty: + window->set_cursor(cEmpty); + break; + case CursorShape::CSHandClosed: + window->set_cursor(cHandClosed); + break; + case CursorShape::CSHandOpen: + window->set_cursor(cHandOpen); + break; + case CursorShape::CSMove: + window->set_cursor(cHandClosed); + break; + case CursorShape::CSMove1DH: + window->set_cursor(cMoveX); + break; + case CursorShape::CSMove1DV: + window->set_cursor(cMoveY); + break; + case CursorShape::CSMove2D: + window->set_cursor(cMoveXY); + break; + case CursorShape::CSMoveLeft: + window->set_cursor(cMoveL); + break; + case CursorShape::CSMoveRight: + window->set_cursor(cMoveR); + break; + case CursorShape::CSMoveRotate: + window->set_cursor(cRotate); + break; + case CursorShape::CSPlus: + window->set_cursor(cAdd); + break; + case CursorShape::CSResizeBottomLeft: + window->set_cursor(cMoveBL); + break; + case CursorShape::CSResizeBottomRight: + window->set_cursor(cMoveBR); + break; + case CursorShape::CSResizeDiagonal: + window->set_cursor(cMoveXY); + break; + case CursorShape::CSResizeHeight: + window->set_cursor(cMoveY); + break; + case CursorShape::CSResizeTopLeft: + window->set_cursor(cMoveTL); + break; + case CursorShape::CSResizeTopRight: + window->set_cursor(cMoveTR); + break; + case CursorShape::CSResizeWidth: + window->set_cursor(cMoveX); + break; + case CursorShape::CSSpotWB: + window->set_cursor(cWB); + break; + case CursorShape::CSStraighten: + window->set_cursor(cRotate); + break; + case CursorShape::CSUndefined: + break; + case CursorShape::CSWait: + window->set_cursor(cWait); + break; + default: + window->set_cursor(cCrosshair); } } diff --git a/rtgui/cursormanager.h b/rtgui/cursormanager.h index e98202ae7..7d3f068b2 100644 --- a/rtgui/cursormanager.h +++ b/rtgui/cursormanager.h @@ -22,60 +22,57 @@ #include enum CursorShape { - CSUndefined, + CSAddColPicker, CSArrow, + CSCropSelect, CSCrosshair, - CSHandOpen, + CSEmpty, CSHandClosed, + CSHandOpen, CSMove, - CSMoveLeft, - CSMoveRight, - CSResizeWidth, - CSResizeHeight, - CSResizeDiagonal, - CSResizeTopLeft, - CSResizeTopRight, - CSResizeBottomLeft, - CSResizeBottomRight, - CSMove2D, CSMove1DH, CSMove1DV, + CSMove2D, + CSMoveLeft, + CSMoveRight, CSMoveRotate, - CSSpotWB, - CSAddColPicker, - CSCropSelect, - CSStraighten, CSPlus, - CSWait, - CSEmpty + CSResizeBottomLeft, + CSResizeBottomRight, + CSResizeDiagonal, + CSResizeHeight, + CSResizeTopLeft, + CSResizeTopRight, + CSResizeWidth, + CSSpotWB, + CSStraighten, + CSUndefined, + CSWait }; class CursorManager { private: - Glib::RefPtr cResizeWidth; - Glib::RefPtr cResizeHeight; - Glib::RefPtr cResizeTopLeft; - Glib::RefPtr cResizeTopRight; - Glib::RefPtr cResizeBottomLeft; - Glib::RefPtr cResizeBottomRight; - Glib::RefPtr cCropDraw; - Glib::RefPtr cCropMove; - Glib::RefPtr cLeftTanMove; - Glib::RefPtr cRightTanMove; - Glib::RefPtr cNormal; - Glib::RefPtr cCropSelection; Glib::RefPtr cAdd; - Glib::RefPtr cWait; - Glib::RefPtr cCrosshair; - Glib::RefPtr cHandOpen; - Glib::RefPtr cHandClosed; - Glib::RefPtr cWB; Glib::RefPtr cAddPicker; - Glib::RefPtr cHidden; - Glib::RefPtr cMove2D; + Glib::RefPtr cCropDraw; + Glib::RefPtr cCrosshair; + Glib::RefPtr cHandClosed; + Glib::RefPtr cHandOpen; + Glib::RefPtr cEmpty; + Glib::RefPtr cMoveBL; + Glib::RefPtr cMoveBR; + Glib::RefPtr cMoveL; + Glib::RefPtr cMoveR; + Glib::RefPtr cMoveTL; + Glib::RefPtr cMoveTR; + Glib::RefPtr cMoveX; + Glib::RefPtr cMoveY; + Glib::RefPtr cMoveXY; Glib::RefPtr cRotate; + Glib::RefPtr cWB; + Glib::RefPtr cWait; Glib::RefPtr display; Glib::RefPtr window; diff --git a/rtgui/mydiagonalcurve.cc b/rtgui/mydiagonalcurve.cc index e7874dad2..0bc58f28e 100644 --- a/rtgui/mydiagonalcurve.cc +++ b/rtgui/mydiagonalcurve.cc @@ -559,7 +559,7 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event) getCursorPosition(Gdk::EventType(event->type), event->motion.is_hint != 0, int(event->button.x), int(event->button.y), Gdk::ModifierType(event->button.state)); findClosestPoint(); - new_type = CSMove; + new_type = CSMove2D; // Shown when dragging a node. if (distanceX > minDistanceX) { if (mod_type & GDK_CONTROL_MASK) { @@ -735,7 +735,7 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event) } if (distanceX <= minDistanceX) { - new_type = CSMove; + new_type = CSMove2D; // Shown on node release. lit_point = closest_point; } else { new_type = CSPlus; @@ -799,7 +799,7 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event) lit_point = -1; } else if (distanceX <= minDistanceX) { // the cursor is close to an existing point - new_type = CSMove; + new_type = CSPlus; // Shown when hovering over node snapping distance (not necessarily over node). lit_point = closest_point; } else { // the cursor is inside the graph but away from existing points diff --git a/rtgui/myflatcurve.cc b/rtgui/myflatcurve.cc index 4da683b0c..70fc0c7d7 100644 --- a/rtgui/myflatcurve.cc +++ b/rtgui/myflatcurve.cc @@ -630,7 +630,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) switch (area) { case (FCT_Area_Insertion): - new_type = CSMove; + new_type = CSMove2D; // Shown when adding a new node in a blank area, both click and drag. /* insert a new control point */ if (num > 0) { @@ -681,7 +681,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) break; case (FCT_Area_Point): - new_type = CSMove; + new_type = CSMove2D; // Shown when node clicked and dragged. editedHandle = FCT_EditedHandle_CPoint; ugpX = curve.x.at(lit_point); ugpY = curve.y.at(lit_point); @@ -689,7 +689,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) case (FCT_Area_H): case (FCT_Area_V): - new_type = CSMove; + new_type = CSMove2D; // Shown when vertical line clicked, not dragged. editedHandle = FCT_EditedHandle_CPointUD; ugpX = curve.x.at(lit_point); ugpY = curve.y.at(lit_point); @@ -876,7 +876,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) break; case (FCT_Area_Point): - new_type = CSMove; + new_type = CSMove2D; // Shown when node released. break; case (FCT_Area_H): @@ -884,7 +884,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) break; case (FCT_Area_V): - new_type = CSMove; + new_type = CSMove2D; // Shown when line released. break; case (FCT_Area_LeftTan): @@ -1008,7 +1008,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) //new_type = CSMove; //break; case (FCT_Area_V): - new_type = CSMove; + new_type = CSPlus; // Shown when hovering over vertical line. break; case (FCT_Area_H):