Color gestures
A new method for quick and precise adjustment of colors is added in this version: color gestures. It works on the selected objects by grabbing the fill or stroke color swatch in the selected style indicator (on the left of the statusbar) and dragging it in various directions as described below. Note that this only works when the swatch displays a flat color; it does not work for a swatch showing "None", "N/A", or displaying a gradient (although you can select one or more gradient stops in Gradient tool and color-adjust them by color gestures just as you would do for objects). Color gestures can work on fill or stroke, depending on which swatch in the selected color indicator you drag.
Color gestures work in HSL color space. Dragging without any keyboard modifiers adjusts the hue channel, dragging with Shift adjusts saturation, and dragging with Ctrl adjusts lightness.
The adjustment is done by rotating the color swatch away from the original direction which is assumed to be NE at 45 degrees (i.e. from the swatch into the document window). That is, once you click and drag the color swatch, imagine a line going from the point where you clicked in the NE direction, across the entire Inkscape window. By dragging below or to the right of that line, you decrease the corresponding color channel, to the minimum at the lower edge of the window; by dragging it above or to the left, you increase it, to the maximum at the left edge of the window. If you hover your mouse exactly over the 45 degrees line, the change will be zero.
Note that you can easily vary the precision of your adjustment. If you drag close enough to the swatch, each small movement results in a big change of the color. If you need a finer adjustment, just drag farther away from the swatch, towards the center of the Inkscape window or even to its upper right corner, where minute movements will produce very small changes in the color. In fact, this method gives you more color precision than even the color wheel in the Fill and Stroke dialog, unless you expand that dialog to fill the entire screen which is rarely practical.
Watch the statusbar which will indicate, as you drag, the channel you are adjusting, the original value of that channel, and the new value.
You can switch channels while you drag. That is, you don't need to restart dragging from the swatch if you want to adjust all three channels - you can do it in one drag, pressing and releasing Ctrl and Shift as necessary. Note that when you change the keyboard modifiers during drag, the position of the zero-change line is temporarily set to the current position of the mouse; this is done so that there are no sudden changes in color if you are switching modifiers away from the original 45-degree line.
For example, you can select a green rectangle and first turn it into greenish-blue by dragging away from the Fill swatch and slightly above the 45 degrees line; then, without releasing the mouse, press Ctrl and drag a bit to the right to darken the color; then press Shift, release Ctrl, and adjust saturation. You can press or release Ctrl and Shift as many times as necessary during a single drag; when you are finally satisfied with your color, release the mouse to commit the change.
Apart from precise adjustments, you can use color gestures to quickly perform common color transformations:
* Ctrl+drag the swatch to the right and down to color all selected objects black.
* Ctrl+drag the swatch upwards and to the left to color all selected objects white.
* Shift+drag the swatch to the right and down to desaturate the color of selected objects.
* Shift+drag the swatch upwards and to the left to maximize saturation of the color of selected objects.
Note that when several objects or gradient stops with different colors are selected, the selected style indicator shows their averaged color. If you adjust that color by gesturing, the changed color will be assigned back to all selected objects/stops, in effect eliminating any difference between them. If you want to adjust many different-colored objects preserving their relative differences, use the color modes of the Tweak tool or color adjustment extension effects.
This new technique requires some getting used to, but once you get the idea it is quite convenient, fast, and precise.
This sounds like fun. I look forward to using it in my next work.
bulia byak wrote:
Color gestures work in HSL color space. Dragging without any keyboard modifiers adjusts the hue channel, dragging with Shift adjusts saturation, and dragging with Ctrl adjusts lightness.
Did you consider a modifier key for opacity?
On 10/23/07, microUgly <drworm@...2123...> wrote:
Did you consider a modifier key for opacity?
I don't want fill/stroke opacity to be too easily adjustable, for reasons we already discussed :) But for master opacity, I plan to try making the O: spinbutton similarly gestureable, though I'm not sure it will be possible as it's an editable field.
bulia byak wrote:
On 10/23/07, microUgly <drworm@...2123...> wrote:
Did you consider a modifier key for opacity?
I don't want fill/stroke opacity to be too easily adjustable, for reasons we already discussed :) But for master opacity, I plan to try making the O: spinbutton similarly gestureable, though I'm not sure it will be possible as it's an editable field.
I have to go with microUgly here, a modifier for opacity would be really helpful to quickly adjust colors & gradient stops. I know that your opinion tends to be that color alpha/opacity and master opacity are redundant, but, to me it's one of the things I really like about SVG. It's especially useful in the context of having semi-transparent stops in a gradient and then being able to adjust the object level opacity on top of that. Just my 0.02...
-Josh
On 10/24/07, Joshua A. Andler <joshua@...233...> wrote:
I have to go with microUgly here, a modifier for opacity would be really helpful to quickly adjust colors & gradient stops. I know that your opinion tends to be that color alpha/opacity and master opacity are redundant, but, to me it's one of the things I really like about SVG.
Oh my. I wonder why I'm so misunderstood. Let me repeat.
I'm not against opacity in any shape or form. I'm especially not against master opacity, and never was. Master opacity is fine with me. I promote it everywhere. In fact, I made in available in the first place. In Sofipodi, it was not available in the UI at all. I added it to the fill&stroke and the statusbar. And I made it applicable to gradient stops as well as objects.
The only thing I want to downplay in the UI is the fill-opacity and stroke-opacity, which you call "alpha". NOT master opacity. I do it for the following reasons:
- it is redundant, because cases where you want a fill to be transparent but stroke to be opaque or vice versa are quite rare, and in all other cases you can use master opacity;
- stroke opacity works a bit counterintuitively - it makes fill show through the stroke, and fill only fills up to the centerline, which makes a confusing and rarely useful sight. Master opacity applies equally to all, preserving the way the object looks and just fading it out in its entirety.
- master opacity equally well applies to groups, again preserving the group appearance. Fill/stroke opacity is unavailable for groups.
It's especially useful in the context of having semi-transparent stops
in a gradient and then being able to adjust the object level opacity on top of that.
YOU CAN. Just select one stop and adjust it opacity, then deselect any stops and adjust the opacity of the entire object. What can be simpler? No need to remember different "kinds" of opacities, just a single opacity control that works on everything.
bulia byak wrote:
On 10/24/07, Joshua A. Andler <joshua@...233...> wrote:
I have to go with microUgly here, a modifier for opacity would be really helpful to quickly adjust colors & gradient stops. I know that your opinion tends to be that color alpha/opacity and master opacity are redundant, but, to me it's one of the things I really like about SVG.
Oh my. I wonder why I'm so misunderstood. Let me repeat.
I think we're all misunderstood. ;)
YOU CAN. Just select one stop and adjust it opacity, then deselect any stops and adjust the opacity of the entire object. What can be simpler? No need to remember different "kinds" of opacities, just a single opacity control that works on everything.
Yeah, I understand that I can, but that wasn't what I was saying. For me I was just requesting the ability to adjust a stops alpha with a modifier via the color gesturing. That way I can quickly adjust all aspects of the stop via one widget & hitting a modifier when necessary for it's alpha. In the end it seems like it would be a faster and more seamless way to work with it (to me at least).
Please know that I'm totally fine with the way that it is... just stating a desire for something that seems like it would speed things up a little for me (and I think I was just reiterating microUgly's desire too, unless I misunderstood him).
-Josh
On 10/24/07, Joshua A. Andler <joshua@...233...> wrote:
Yeah, I understand that I can, but that wasn't what I was saying. For me I was just requesting the ability to adjust a stops alpha with a modifier via the color gesturing.
That is a good idea in itself, but we just don't have any more modifiers left (I plan to use Alt for "no change" drag). And in any case it would be more logical to adjust opacity by dragging the opacity control, not color swatch. Though, unfortunately, it looks like this trick won't work with a spinbutton anyway.
On 2007-October-24 , at 19:54 , bulia byak wrote:
On 10/24/07, Joshua A. Andler <joshua@...233...> wrote:
Yeah, I understand that I can, but that wasn't what I was saying. For me I was just requesting the ability to adjust a stops alpha with a modifier via the color gesturing.
That is a good idea in itself, but we just don't have any more modifiers left (I plan to use Alt for "no change" drag). And in any case it would be more logical to adjust opacity by dragging the opacity control, not color swatch. Though, unfortunately, it looks like this trick won't work with a spinbutton anyway.
Does GTK have a widget such as those commonly used for volume control: a button that one can click and a slider appears that one can slide up or down to adjust the volume. The same concept with a text field beside it (i.e. replace the arrows of the spin button by the slider) would probably be just right for the opacity control... and probably for many more in the toolbars by the way.
JiHO --- http://jo.irisson.free.fr/
On 10/24/07, jiho <jo.irisson@...155...> wrote:
Does GTK have a widget such as those commonly used for volume control: a button that one can click and a slider appears that one can slide up or down to adjust the volume.
This was discussed just recently: no it does not. As soon as it has such widget, we'll use it.
On 10/24/07, bulia byak <buliabyak@...155...> wrote:
On 10/24/07, jiho <jo.irisson@...155...> wrote:
Does GTK have a widget such as those commonly used for volume control: a button that one can click and a slider appears that one can slide up or down to adjust the volume.
This was discussed just recently: no it does not. As soon as it has such widget, we'll use it.
Volume control in Totem & the Gnome volume-manager taskbar thing is a widget like this - click the speaker button, get a vertical slider.
Evidently it's never been broken out of those specific apps into a generic Gnome/GTK widget?
Brian wirelizard.ca
It's actually as GtkVolumeButton in Gtk 2.12
On Wed, 2007-10-24 at 18:05 -0700, Brian Burger wrote:
On 10/24/07, bulia byak <buliabyak@...155...> wrote:
On 10/24/07, jiho <jo.irisson@...155...> wrote:
Does GTK have a widget such as those commonly used for volume control: a button that one can click and a slider appears that one can slide up or down to adjust the volume.
This was discussed just recently: no it does not. As soon as it has such widget, we'll use it.
Volume control in Totem & the Gnome volume-manager taskbar thing is a widget like this - click the speaker button, get a vertical slider.
Evidently it's never been broken out of those specific apps into a generic Gnome/GTK widget?
Brian wirelizard.ca
This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Inkscape-user mailing list Inkscape-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-user
Well, GtkScaleButton is what you would want :)
On Thu, 2007-10-25 at 15:04 +0200, David Christian Berg wrote:
It's actually as GtkVolumeButton in Gtk 2.12
On Wed, 2007-10-24 at 18:05 -0700, Brian Burger wrote:
On 10/24/07, bulia byak <buliabyak@...155...> wrote:
On 10/24/07, jiho <jo.irisson@...155...> wrote:
Does GTK have a widget such as those commonly used for volume control: a button that one can click and a slider appears that one can slide up or down to adjust the volume.
This was discussed just recently: no it does not. As soon as it has such widget, we'll use it.
Volume control in Totem & the Gnome volume-manager taskbar thing is a widget like this - click the speaker button, get a vertical slider.
Evidently it's never been broken out of those specific apps into a generic Gnome/GTK widget?
Brian wirelizard.ca
This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Inkscape-user mailing list Inkscape-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-user
This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Inkscape-user mailing list Inkscape-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-user
bulia byak wrote:
On 10/24/07, Joshua A. Andler <joshua@...233...> wrote:
Yeah, I understand that I can, but that wasn't what I was saying. For me I was just requesting the ability to adjust a stops alpha with a modifier via the color gesturing.
That is a good idea in itself, but we just don't have any more modifiers left (I plan to use Alt for "no change" drag). And in any case it would be more logical to adjust opacity by dragging the opacity control, not color swatch. Though, unfortunately, it looks like this trick won't work with a spinbutton anyway.
Do modifier keys have to be either SHIFT, ALT or CTRL?
I still haven't got to try this feature because there isn't a Windows build yet. But I was thinking it might be neat to use R, G and B as a modifier key to tweak specific red, green and blue values. Likewise, you could use O for opacity if it were possible.
On Wed, 24 Oct 2007 15:57:54 -0700 (PDT), microUgly <drworm@...2123...> wrote:
Do modifier keys have to be either SHIFT, ALT or CTRL?
Briefly, yeah. The only other modifiers supported natively by Gdk are SUPER, META and one other I forget.
If we rewrote our own event processing, in principle we could keep track of other keys as modifiers, but then we still have the issue of dealing with key repeat and how to represent modifier masks since it wouldn't be possible to use an integer bitmask anymore.
-mental
On Oct 24, 2007, at 4:27 PM, MenTaLguY wrote:
Briefly, yeah. The only other modifiers supported natively by Gdk are SUPER, META and one other I forget.
If we rewrote our own event processing, in principle we could keep track of other keys as modifiers, but then we still have the issue of dealing with key repeat and how to represent modifier masks since it wouldn't be possible to use an integer bitmask anymore.
The GDK ones are
SHIFT LOCK CONTROL MOD1 MOD2 MOD3 MOD4 MOD5
and then combo ones of
SUPER HYPER META
that were added as of 2.10. These last ones are added since "GDK recognizes which of the Meta, Super or Hyper keys are mapped to Mod2 - Mod5"
The docs also mention that "Typical modifier keys are Shift, Control, Meta, Super, Hyper, Alt, Compose, Apple, CapsLock or ShiftLock." And also that Mod1 is usually mapped to the Alt key.
Now for the real trick. What do all those things mean?!??!
If you're on a windows box, which of those will you see? What about on a Mac? Or on a European keyboard?
For example, I know that for Emacs use here on this Mac running OSX the Command/Apple key is Meta. And I also have an Alt/Option key. But on Windows the Alt key is often taken as Meta...
So... perhaps some users might help us do a good survey so we can discover more keys we can use. :-)
People, I have set up Inkscape 0710231640-dw2 and immediately ran into a problem with gradients. It may be something dead simple.
I drew a rectangle I filled it with colour I set up a linear gradient from colour to white. I selected the rectangle plus gradient and rotated it. Both rotated but when I deselected the rectangle went black.
Similarly I duplicated the rectangle plus gradient. It looked good and I moved it. Still looked good but when I let it go it went black. The original still had its gradient. The fill is a liner gradient and the rotate/trnslate button is on.
Can someone verify this behaviour or tell me what I am doing wrong? Please tell me I should have switch on that is off or summit.
The standard 0.45 release works OK.
cheers, Erik kaver@...45...
On 10/26/07, kaver <kaver@...45...> wrote:
The fill is a liner gradient and the rotate/trnslate button is on.
I assume you mean the third Affect: button on selector controls bar?
Can someone verify this behaviour or tell me what I am doing wrong? Please tell me I should have switch on that is off or summit.
That's strange. Please submit a bug with the svg file attached, as well as your preferences.xml and your platform.
bulia byak wrote:
The fill is a liner gradient and the rotate/trnslate button is on.
I assume you mean the third Affect: button on selector controls bar?
Yes.
That's strange. Please submit a bug with the svg file attached, as well as your preferences.xml and your platform.
Done. The xml preferences file did not go across. I have added it below:
Erik
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> - <inkscape xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="0.46dev+devel"> - <group id="window"> <group id="menu" state="1" /> <group id="commands" state="1" /> <group id="toppanel" state="1" /> <group id="toolbox" state="1" /> <group id="statusbar" state="1" /> <group id="panels" state="1" /> <group id="rulers" state="1" /> <group id="scrollbars" state="1" /> </group> - <group id="fullscreen"> <group id="menu" state="1" /> <group id="commands" state="1" /> <group id="toppanel" state="1" /> <group id="toolbox" state="1" /> <group id="statusbar" state="1" /> <group id="panels" state="1" /> <group id="rulers" state="1" /> <group id="scrollbars" state="1" /> </group> - <group id="documents"> - <group id="recent"> <document uri="D:\Inkscape 7-zip versions\Inkscape-0710231640-dw2\Test files\RotateGradient1.svg" name="RotateGradient1.svg" /> </group> </group> - <group id="template"> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" objecttolerance="10.0" gridtolerance="10.0" guidetolerance="10.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-width="640" inkscape:window-height="480" /> </group> - <group id="tools" style="fill:none;stroke:black;stroke-opacity:1;stroke-width:1px;stroke-linej oin:miter;stroke-linecap:butt;"> - <group id="shapes" style="fill-rule:evenodd;" selcue="1" gradientdrag="1"> <eventcontext id="rect" style="fill:blue;" usecurrent="0" width="247.93874" height="79.891372" rx="0" ry="0" /> - <eventcontext id="3dbox" style="stroke:none;stroke-linejoin:round;" usecurrent="1"> <side id="XYfront" style="fill:#8686bf;stroke:none;stroke-linejoin:round;" usecurrent="0" /> <side id="XYrear" style="fill:#e9e9ff;stroke:none;stroke-linejoin:round;" usecurrent="0" /> <side id="XZtop" style="fill:#4d4d9f;stroke:none;stroke-linejoin:round;" usecurrent="0" /> <side id="XZbottom" style="fill:#afafde;stroke:none;stroke-linejoin:round;" usecurrent="0" /> <side id="YZright" style="fill:#353564;stroke:none;stroke-linejoin:round;" usecurrent="0" /> <side id="YZleft" style="fill:#d7d7ff;stroke:none;stroke-linejoin:round;" usecurrent="0" /> </eventcontext> <eventcontext id="arc" style="fill:red;" end="0" start="0" usecurrent="1" /> <eventcontext id="star" magnitude="5" style="fill:yellow;" usecurrent="1" proportion="0.49999998" rounded="0" randomized="0" isflatsided="false" /> <eventcontext id="spiral" style="fill:none;" usecurrent="0" revolution="3" expansion="1" t0="0" /> </group> - <group id="freehand" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-line join:miter;stroke-linecap:butt;"> <eventcontext id="pencil" tolerance="4.0" selcue="1" style="stroke-width:1px;" usecurrent="0" /> <eventcontext id="pen" mode="drag" selcue="1" style="stroke-width:1px;" usecurrent="0" /> </group> <eventcontext id="calligraphic" style="fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;" mass="0.02" drag="1" angle="30" width="0.15" thinning="0.1" flatness="0.9" cap_rounding="0" usecurrent="1" tracebackground="0" usepressure="1" usetilt="0" keep_selected="1" tremor="0" wiggle="0" /> <eventcontext id="text" usecurrent="0" gradientdrag="1" font_sample="AaBbCcIiPpQq12369$€¢?.;/()" style="fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:20" selcue="1" /> <eventcontext id="nodes" selcue="1" gradientdrag="1" show_handles="1" sculpting_profile="1" /> <eventcontext id="tweak" selcue="0" gradientdrag="0" show_handles="0" width="0.2" force="0.2" fidelity="0.5" usepressure="1" style="fill:red;stroke:none;" usecurrent="0" doo="1" dol="1" dos="1" doh="1" /> <eventcontext id="gradient" selcue="1" newgradient="1" newfillorstroke="1" /> <eventcontext id="zoom" selcue="1" gradientdrag="0" /> <eventcontext id="dropper" selcue="1" gradientdrag="1" pick="1" setalpha="1" /> <eventcontext id="select" selcue="1" gradientdrag="0" /> <eventcontext id="connector" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-line join:miter;stroke-width:1px;stroke-linecap:butt;" selcue="1" length="100" /> <eventcontext id="paintbucket" style="fill:#a0a0a0;stroke:none;" usecurrent="1" offset="0" threshold="5" /> </group> - <group id="palette"> - <group id="dashes"> <dash id="solid" style="stroke-dasharray:none" /> <dash id="dash-1-1" style="stroke-dasharray:1,1" /> <dash id="dash-1-2" style="stroke-dasharray:1,2" /> <dash id="dash-1-3" style="stroke-dasharray:1,3" /> <dash id="dash-1-4" style="stroke-dasharray:1,4" /> <dash id="dash-1-6" style="stroke-dasharray:1,6" /> <dash id="dash-1-8" style="stroke-dasharray:1,8" /> <dash id="dash-1-12" style="stroke-dasharray:1,12" /> <dash id="dash-1-24" style="stroke-dasharray:1,24" /> <dash id="dash-1-48" style="stroke-dasharray:1,48" /> <dash id="dash-2-1" style="stroke-dasharray:2,1" /> <dash id="dash-3-1" style="stroke-dasharray:3,1" /> <dash id="dash-4-1" style="stroke-dasharray:4,1" /> <dash id="dash-6-1" style="stroke-dasharray:6,1" /> <dash id="dash-8-1" style="stroke-dasharray:8,1" /> <dash id="dash-12-1" style="stroke-dasharray:12,1" /> <dash id="dash-24-1" style="stroke-dasharray:24,1" /> <dash id="dash-2-2" style="stroke-dasharray:2,2" /> <dash id="dash-3-3" style="stroke-dasharray:3,3" /> <dash id="dash-4-4" style="stroke-dasharray:4,4" /> <dash id="dash-6-6" style="stroke-dasharray:6,6" /> <dash id="dash-8-8" style="stroke-dasharray:8,8" /> <dash id="dash-12-12" style="stroke-dasharray:12,12" /> <dash id="dash-24-24" style="stroke-dasharray:24,24" /> <dash id="dash-2-4" style="stroke-dasharray:2,4" /> <dash id="dash-4-2" style="stroke-dasharray:4,2" /> <dash id="dash-2-6" style="stroke-dasharray:2,6" /> <dash id="dash-6-2" style="stroke-dasharray:6,2" /> <dash id="dash-4-8" style="stroke-dasharray:4,8" /> <dash id="dash-8-4" style="stroke-dasharray:8,4" /> <dash id="dash-2-1-012-1" style="stroke-dasharray:2,1,0.5,1" /> <dash id="dash-4-2-1-2" style="stroke-dasharray:4,2,1,2" /> <dash id="dash-8-2-1-2" style="stroke-dasharray:8,2,1,2" /> <dash id="dash-012-012" style="stroke-dasharray:0.5,0.5" /> <dash id="dash-014-014" style="stroke-dasharray:0.25,0.25" /> <dash id="dash-0110-0110" style="stroke-dasharray:0.1,0.1" /> </group> </group> <group id="colorselector" page="0" /> - <group id="embedded"> <group id="swatches" panel_size="1" panel_mode="1" panel_wrap="0" palette="Inkscape default" /> </group> - <group id="dialogs"> <group id="toolbox" /> <group id="fillstroke" x="0" y="0" w="287" h="415" state="2" /> <group id="filtereffects" /> <group id="textandfont" /> <group id="transformation" applyseparately="0" /> <group id="align" /> <group id="xml" /> <group id="find" /> <group id="documentoptions" state="1" axonomgrid_enabled="0" /> <group id="preferences" state="1" page="9" x="326" y="282" w="623" h="432" /> <group id="gradienteditor" /> <group id="object" /> - <group id="export"> <group id="exportarea" /> <group id="defaultxdpi" /> </group> <group id="save_as" default="org.inkscape.output.svg.inkscape" append_extension="1" enable_preview="0" path="D:\Inkscape 7-zip versions\Inkscape-0710231640-dw2\Test files" /> <group id="open" enable_preview="1" path="" /> <group id="debug" redirect="0" /> <group id="clonetiler" /> <group id="gridtiler" /> <group id="extension-error" show-on-startup="0" /> <group id="memory" /> <group id="messages" /> <group id="swatches" /> <group id="iconpreview" /> <group id="aboutextensions" /> <group id="treeeditor" /> <group id="layers" maxDepth="20" /> <group id="extensioneditor" /> <group id="trace" state="1" /> <group id="script" /> <group id="input" /> <group id="colorpickerwindow" /> <group id="undo-history" /> <group id="filtereffects" /> </group> - <group id="printing"> <settings id="ps" /> <group id="debug" add-label-comments="0" /> </group> - <group id="options"> <group id="mapalt" value="1" /> <group id="useextinput" value="1" /> <group id="nudgedistance" value="2" /> <group id="rotationsnapsperpi" value="12" /> <group id="cursortolerance" value="8.0" /> <group id="dragtolerance" value="4.0" /> <group id="displayprofile" enable="0" intent="0" uri="" /> <group id="softproof" enable="0" intent="0" gamutcolor="#808080" gamutwarn="0" bpc="0" preserveblack="0" uri="" /> <group id="savewindowgeometry" value="1" /> <group id="defaultoffsetwidth" value="2" /> <group id="defaultscale" value="2" /> <group id="maxrecentdocuments" value="36" /> <group id="zoomincrement" value="1.414213562" /> <group id="keyscroll" value="15" /> <group id="wheelscroll" value="40" /> <group id="spacepans" value="0" /> <group id="wheelzooms" value="0" /> <group id="transientpolicy" value="1" /> <group id="scrollingacceleration" value="0.4" /> <group id="autoscrollspeed" value="0.7" /> <group id="autoscrolldistance" value="-10" /> <group id="simplifythreshold" value="0.002" /> <group id="dialogtype" value="1" /> <group id="dock" cancenterdock="1" dockbarstyle="2" switcherstyle="2" /> <group id="dialogsskiptaskbar" value="1" /> <group id="dialogsontopwin32" value="0" /> <group id="arenatilescachesize" value="8192" /> <group id="preservetransform" value="0" /> <group id="clonecompensation" value="1" /> <group id="cloneorphans" value="0" /> <group id="stickyzoom" value="0" /> <group id="selcue" value="2" /> <group id="transform" stroke="0" rectcorners="0" pattern="0" gradient="1" /> <group id="kbselection" inlayer="1" onlyvisible="1" onlysensitive="1" /> <group id="selection" layerdeselect="1" /> <group id="createbitmap" /> <group id="compassangledisplay" value="0" /> <group id="maskobject" topmost="1" remove="1" /> <group id="blurquality" value="0" /> <group id="startmode" outline="0" /> <group id="outlinemode" value="0" /> <group id="ocalurl" str="openclipart.org" /> <group id="ocalusername" str="" /> <group id="ocalpassword" str="" /> <group id="wireframecolors" onlight="255" ondark="4294967295" images="4278190335" clips="16711935" masks="65535" /> <group id="svgoutput" usenamedcolors="0" numericprecision="8" minimumexponent="-8" inlineattrs="0" indent="2" /> <group id="forkgradientvectors" value="1" /> <group value="1" id="importbitmapsasimages" /> </group> <group id="extensions" /> - <group id="desktop" style="fill:#ff00ff;stroke:#000000;stroke-opacity:1;font-size:20"> <group width="640" height="480" x="0" y="0" fullscreen="0" id="geometry" maximized="1" /> <group id="XYfront" /> <group id="XYrear" /> <group id="XZtop" /> <group id="XZbottom" /> <group id="YZleft" /> <group id="YZright" /> </group> <group id="devices" /> - <group id="toolbox" icononly="1" small="1"> <group id="tools" icononly="1" small="0" /> </group> - <group id="iconpreview"> - <group id="sizes"> - <group id="default"> <group value="16" show="1" id="size16" /> <group value="24" show="1" id="size24" /> <group value="32" show="1" id="size32" /> <group value="48" show="1" id="size48" /> <group value="50" show="0" id="size50" /> <group value="64" show="0" id="size64" /> <group value="72" show="0" id="size72" /> <group value="80" show="0" id="size80" /> <group value="96" show="0" id="size96" /> <group value="128" show="1" id="size128" /> <group value="256" show="0" id="size256" /> </group> </group> </group> - <group id="whiteboard"> <group id="server" name="jabber.org" port="5222" username="" ssl="0" /> <group id="room" name="inkboard" server="gristle.org" /> </group> </inkscape>
Erik kaver@...45...
I have spent a little more time on this problem.
I removed all my inkscape versions and removed preferences. Then I reinstalled numerous versions since 071012 onwards and they all show this behaviour. The Inkscape .exe file in these is in the 12-14 MB range. I also removed and reinstalled the stable version of 0.45 1-1and it behaves normally. The exe file here is 6.7MB.
I am sure it is something stupidly simple. Any suggestions are welcome. Erik.
On Oct 24, 2007, at 3:57 PM, microUgly wrote:
That is a good idea in itself, but we just don't have any more modifiers left (I plan to use Alt for "no change" drag). And in any case it would be more logical to adjust opacity by dragging the opacity control, not color swatch. Though, unfortunately, it looks like this trick won't work with a spinbutton anyway.
Do modifier keys have to be either SHIFT, ALT or CTRL?
I wonder if something like this might come in handy
On Wed, 24 Oct 2007, bulia byak wrote:
... The only thing I want to downplay in the UI is the fill-opacity and stroke-opacity, which you call "alpha". NOT master opacity. I do it for the following reasons:
- it is redundant, because cases where you want a fill to be
transparent but stroke to be opaque or vice versa are quite rare, and in all other cases you can use master opacity;
Rare, perhaps, but the effect of a stained-glass window comes to mind. Would you propose to get rid of the possibility altogether? (Of course one could work around it, but clumsily.)
- stroke opacity works a bit counterintuitively - it makes fill show
through the stroke, and fill only fills up to the centerline, which makes a confusing and rarely useful sight. ...
I can't think of a counterexample for this :-)
- master opacity equally well applies to groups, again preserving the
group appearance. Fill/stroke opacity is unavailable for groups.
Is it unavailable for a fundamental reason?
- Robert
On 10/24/07, Robert Funnell <robert.funnell@...2351...> wrote:
Rare, perhaps, but the effect of a stained-glass window comes to mind. Would you propose to get rid of the possibility altogether? (Of course one could work around it, but clumsily.)
The possibility is there all right. Nobody is removing it. You have the A: slider in fill&stroke for that. I just don't want to provide additional controls and shortcuts for it.
- master opacity equally well applies to groups, again preserving the
group appearance. Fill/stroke opacity is unavailable for groups.
Is it unavailable for a fundamental reason?
Groups have no fill/stroke. Well, they can have it in fact, but it works simply by assinging that fill/stroke to all members, same as if they were selected separately. And it's not the same as master opacity on group - it looks different when objects overlap.
On Wed, Oct 24, 2007 at 01:35:04PM -0400, Robert Funnell wrote:
- it is redundant, because cases where you want a fill to be
transparent but stroke to be opaque or vice versa are quite rare, and in all other cases you can use master opacity;
Rare, perhaps, but the effect of a stained-glass window comes to mind. Would you propose to get rid of the possibility altogether? (Of course one could work around it, but clumsily.)
I agree that tanslucent stroke/opaque fill is unusual, but I use the opaque stroke/transluscent fill all the time when I'm working on things like boardgame module design to show ranges/etc.
- master opacity equally well applies to groups, again preserving the
group appearance. Fill/stroke opacity is unavailable for groups.
Is it unavailable for a fundamental reason?
group fill/stroke opacity only applies to the sub item when the subitem is set to inheritable, while master opacity gets multiplied in.
Jeff
bulia byak wrote:
Oh my. I wonder why I'm so misunderstood.
I get where you are coming from now. The reason why you are misunderstood is because until now, the Inkscape GUI has given all us users the impression that colour is in the form of RGBA. Not only do the colour sliders promote this idea but so does the HEX code.
You're experiancing resistance to this because we all think we know how colour is defined and your breaking the concept for colour stops. We don't understand why it can't follow what we are already very familiar with.
As a developer it's easy for you to understand because you know colour is not RGBA. It's RGB and fill-opacity, where fill-opacity is a parameter that applies to any fill whether it is flat colour, gradient or pattern.
You also know that opacity and fill-opacity peform near identical functions. But users don't. Users only know what they see in the GUI, and that is that "Master Opacity" (renamed to "Opacity) previously controlled the opacity of an entire object, and "Alpha" which previously controlled the transparency of colour. People who know SVG know this isn't true, but your users don't and now you're trying to convince them otherwise.
At the end of the day, it doesn't matter if colour is controlled using "Opacity" or "Fill-opacity" - there is little difference. But it does matter how the GUI changes to reflect this to the users. Any changes that is going to twist the users brain to understand is not a good change. So my question is, does the GUI need to change at all?
Is there any reason why the Alpha slider cannot be mapped to "opacity" instead of "fill-opacity"? This way users do not have to give up the concepts they know. Not to mention users get to benefit from the advantages the Alpha slider has over the Opacity slider.
On 10/24/07, microUgly <drworm@...2123...> wrote:
As a developer it's easy for you to understand because you know colour is not RGBA. It's RGB and fill-opacity, where fill-opacity is a parameter that applies to any fill whether it is flat colour, gradient or pattern.
Exactly. There's no RGBA in SVG. But representing color+opacity as RGBA is often convenient, so it's used in the UI.
At the end of the day, it doesn't matter if colour is controlled using "Opacity" or "Fill-opacity" - there is little difference. But it does matter how the GUI changes to reflect this to the users. Any changes that is going to twist the users brain to understand is not a good change. So my question is, does the GUI need to change at all?
Maybe not. But it's not really changing in any big way, in fact.
Is there any reason why the Alpha slider cannot be mapped to "opacity" instead of "fill-opacity"?
No because it's on the fill or stroke tab, and thus must apply to fill and stroke only. And outside of these tabs, we already have the Opacity slider. The only partially sensible idea would be to remove the A:, but I don't want to go that far because, no matter how rarely, it's necessary (for example to eliminate or adjust fill/stroke opacity in those old or non-Inkscape files which already use it).
bulia byak wrote:
No because it's on the fill or stroke tab, and thus must apply to fill and stroke only. And outside of these tabs, we already have the Opacity slider. The only partially sensible idea would be to remove the A:, but I don't want to go that far because, no matter how rarely, it's necessary (for example to eliminate or adjust fill/stroke opacity in those old or non-Inkscape files which already use it).
What if Alpha was mapped to Opacity only when a colour stop is selected? Users don't need to know the SVG parameter being controlled has changed provided they see what they expect to see.
On 10/24/07, microUgly <drworm@...2123...> wrote:
What if Alpha was mapped to Opacity only when a colour stop is selected? Users don't need to know the SVG parameter being controlled has changed provided they see what they expect to see.
Guess what, it already is :) Try it - for a stop, both A: and O: change its opacity in the same way.
bulia byak wrote:
Guess what, it already is :) Try it - for a stop, both A: and O: change its opacity in the same way.
Sorry for the delayed reply, I was waiting for a new windows build with the changes
The problem with the current implementation is that whilst you can change A and it maps back to Opactiy, when you reselect the stop the A value has returned to 255. Is there any reason why A can't always reflect the O value?
When were these changes commited? Its just I want to try them out via a windows autobuild, and I don't want to download one if it is not in there yet...
Cheers,
ryanlerch
-----Original Message----- From: inkscape-user-bounces@lists.sourceforge.net [mailto:inkscape-user- bounces@lists.sourceforge.net] On Behalf Of bulia byak Sent: Wednesday, 24 October 2007 11:32 AM To: Inkscape List Devel; Inkscape User Community Subject: [Inkscape-user] NEW: color gestures
Color gestures
A new method for quick and precise adjustment of colors is added in this version: color gestures. It works on the selected objects by grabbing the fill or stroke color swatch in the selected style indicator (on the left of the statusbar) and dragging it in various directions as described below. Note that this only works when the swatch displays a flat color; it does not work for a swatch showing "None", "N/A", or displaying a gradient (although you can select one or more gradient stops in Gradient tool and color-adjust them by color gestures just as you would do for objects). Color gestures can work on fill or stroke, depending on which swatch in the selected color indicator you drag.
Color gestures work in HSL color space. Dragging without any keyboard modifiers adjusts the hue channel, dragging with Shift adjusts saturation, and dragging with Ctrl adjusts lightness.
The adjustment is done by rotating the color swatch away from the original direction which is assumed to be NE at 45 degrees (i.e. from the swatch into the document window). That is, once you click and drag the color swatch, imagine a line going from the point where you clicked in the NE direction, across the entire Inkscape window. By dragging below or to the right of that line, you decrease the corresponding color channel, to the minimum at the lower edge of the window; by dragging it above or to the left, you increase it, to the maximum at the left edge of the window. If you hover your mouse exactly over the 45 degrees line, the change will be zero.
Note that you can easily vary the precision of your adjustment. If you drag close enough to the swatch, each small movement results in a big change of the color. If you need a finer adjustment, just drag farther away from the swatch, towards the center of the Inkscape window or even to its upper right corner, where minute movements will produce very small changes in the color. In fact, this method gives you more color precision than even the color wheel in the Fill and Stroke dialog, unless you expand that dialog to fill the entire screen which is rarely practical.
Watch the statusbar which will indicate, as you drag, the channel you are adjusting, the original value of that channel, and the new value.
You can switch channels while you drag. That is, you don't need to restart dragging from the swatch if you want to adjust all three channels - you can do it in one drag, pressing and releasing Ctrl and Shift as necessary. Note that when you change the keyboard modifiers during drag, the position of the zero-change line is temporarily set to the current position of the mouse; this is done so that there are no sudden changes in color if you are switching modifiers away from the original 45-degree line.
For example, you can select a green rectangle and first turn it into greenish-blue by dragging away from the Fill swatch and slightly above the 45 degrees line; then, without releasing the mouse, press Ctrl and drag a bit to the right to darken the color; then press Shift, release Ctrl, and adjust saturation. You can press or release Ctrl and Shift as many times as necessary during a single drag; when you are finally satisfied with your color, release the mouse to commit the change.
Apart from precise adjustments, you can use color gestures to quickly perform common color transformations:
* Ctrl+drag the swatch to the right and down to color all selected
objects black.
* Ctrl+drag the swatch upwards and to the left to color all
selected objects white.
* Shift+drag the swatch to the right and down to desaturate the
color of selected objects.
* Shift+drag the swatch upwards and to the left to maximize
saturation of the color of selected objects.
Note that when several objects or gradient stops with different colors are selected, the selected style indicator shows their averaged color. If you adjust that color by gesturing, the changed color will be assigned back to all selected objects/stops, in effect eliminating any difference between them. If you want to adjust many different-colored objects preserving their relative differences, use the color modes of the Tweak tool or color adjustment extension effects.
This new technique requires some getting used to, but once you get the idea it is quite convenient, fast, and precise.
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org
This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Inkscape-user mailing list Inkscape-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-user
ryan lerch wrote:
When were these changes commited? Its just I want to try them out via a windows autobuild, and I don't want to download one if it is not in there yet...
I just downloaded Inkscape0710251937.7z (which says Sep 24 in the about screen) and it doesn't appear the function is included yet. Maybe the next build.
Cool feature!
* Can you change the mousecursor when dragging? Just a visual clue to sign that one is rotate-changing something.
* Statusbar text gets overwritten for a rectangle with shift and ctrl pressed.
Cheers, Johan
On 10/24/07, J.B.C.Engelen@...2072... <J.B.C.Engelen@...2072...> wrote:
Cool feature!
- Can you change the mousecursor when dragging? Just a visual clue to sign that one is rotate-changing something.
good idea, try svn now
The mouse cursor changes when you're doing color gestures, reflecting the channel currently adjusted and indicating the directions for increasing and decreasing the value.
- Statusbar text gets overwritten for a rectangle with shift and ctrl pressed.
I can't see it - can you give more details?
This does sound like an interesting feature to play around with.
I had a thought while reading the description. Since you can switch which HSL component you're modifying during the drag, it might be nice to have a modifier key that means "no change", so you can reposition the mouse cursor without affecting anything.
Here's my line of thought: Suppose you're modifying saturation, and you want the minimum. You Shift-drag to the bottom of the window. Now you want to decrease the lightness. But you can't, because the mouse cursor can't move down any farther. Or if you weren't at the absolute bottom, you'll have much less precision for the lightness because you only have a very small area in the downward direction. And if you try to reposition, you'll change something you don't want. You could release the mouse, and Ctrl-drag from the swatch again, sure. But what about making Shift-Ctrl-drag into a no change mode, so you can reposition the mouse, and then release either Shift or Ctrl or both, and go back to modifying another component.
Kurt
On 10/24/07, Kurt Hutchinson <kelanslists@...155...> wrote:
I had a thought while reading the description. Since you can switch which HSL component you're modifying during the drag, it might be nice to have a modifier key that means "no change", so you can reposition the mouse cursor without affecting anything.
Yes. I thought about that too. But the only modifier left is Alt, and we'll again get an outcry of those who can't use Alt :) Still, since this is not such a crucial functionality, I think Alt is OK for that.
On 10/24/07, Kurt Hutchinson <kelanslists@...155...> wrote:
This does sound like an interesting feature to play around with.
I had a thought while reading the description. Since you can switch which HSL component you're modifying during the drag, it might be nice to have a modifier key that means "no change", so you can reposition the mouse cursor without affecting anything.
this is now done in svn:
The Alt modifier is special. Pressing Alt means "do nothing"; this allows you to move the mouse, without releasing, to a more convenient place from where to continue tweaking the color after letting go of Alt. As with the other modifiers, releasing Alt temporarily redefines the zero-change axis to go through the point where Alt was released. For example, imagine you made your color darker by Ctrl+dragging towards the bottom edge of the window and you now need to make it less saturated. You cannot however Shift+drag it any lower because there's just not enough room for that. In that situation, without releasing the mouse, Alt+drag it upwards to a convenient spot and then Shift+drag downwards as needed. Also, you can start dragging from the swatch with Alt pressed to avoid changing the color while you take a more convenient position for adjustments.
On 10/24/07, bulia byak <buliabyak@...155...> wrote:
Color gestures
A new method for quick and precise adjustment of colors is added in this version: color gestures. It works on the selected objects by grabbing the fill or stroke color swatch in the selected style indicator (on the left of the statusbar) and dragging it in various directions as described below. Note that this only works when the swatch displays a flat color; it does not work for a swatch showing "None", "N/A", or displaying a gradient (although you can select one or more gradient stops in Gradient tool and color-adjust them by color gestures just as you would do for objects). Color gestures can work on fill or stroke, depending on which swatch in the selected color indicator you drag.
Color gestures work in HSL color space. Dragging without any keyboard modifiers adjusts the hue channel, dragging with Shift adjusts saturation, and dragging with Ctrl adjusts lightness.
The adjustment is done by rotating the color swatch away from the original direction which is assumed to be NE at 45 degrees (i.e. from the swatch into the document window). That is, once you click and drag the color swatch, imagine a line going from the point where you clicked in the NE direction, across the entire Inkscape window. By dragging below or to the right of that line, you decrease the corresponding color channel, to the minimum at the lower edge of the window; by dragging it above or to the left, you increase it, to the maximum at the left edge of the window. If you hover your mouse exactly over the 45 degrees line, the change will be zero.
Note that you can easily vary the precision of your adjustment. If you drag close enough to the swatch, each small movement results in a big change of the color. If you need a finer adjustment, just drag farther away from the swatch, towards the center of the Inkscape window or even to its upper right corner, where minute movements will produce very small changes in the color. In fact, this method gives you more color precision than even the color wheel in the Fill and Stroke dialog, unless you expand that dialog to fill the entire screen which is rarely practical.
Watch the statusbar which will indicate, as you drag, the channel you are adjusting, the original value of that channel, and the new value.
You can switch channels while you drag. That is, you don't need to restart dragging from the swatch if you want to adjust all three channels - you can do it in one drag, pressing and releasing Ctrl and Shift as necessary. Note that when you change the keyboard modifiers during drag, the position of the zero-change line is temporarily set to the current position of the mouse; this is done so that there are no sudden changes in color if you are switching modifiers away from the original 45-degree line.
For example, you can select a green rectangle and first turn it into greenish-blue by dragging away from the Fill swatch and slightly above the 45 degrees line; then, without releasing the mouse, press Ctrl and drag a bit to the right to darken the color; then press Shift, release Ctrl, and adjust saturation. You can press or release Ctrl and Shift as many times as necessary during a single drag; when you are finally satisfied with your color, release the mouse to commit the change.
Apart from precise adjustments, you can use color gestures to quickly perform common color transformations:
* Ctrl+drag the swatch to the right and down to color all selected
objects black.
* Ctrl+drag the swatch upwards and to the left to color all
selected objects white.
* Shift+drag the swatch to the right and down to desaturate the
color of selected objects.
* Shift+drag the swatch upwards and to the left to maximize
saturation of the color of selected objects.
Note that when several objects or gradient stops with different colors are selected, the selected style indicator shows their averaged color. If you adjust that color by gesturing, the changed color will be assigned back to all selected objects/stops, in effect eliminating any difference between them. If you want to adjust many different-colored objects preserving their relative differences, use the color modes of the Tweak tool or color adjustment extension effects.
This new technique requires some getting used to, but once you get the idea it is quite convenient, fast, and precise.
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org
Having played with it for about a minute, I have to say., this rocks! Love the way you keep on coming up with these things, 0.46 is gonna be awesome.
participants (15)
-
unknown@example.com
-
Brian Burger
-
bulia byak
-
David Christian Berg
-
Jeffrey Brent McBeth
-
jiho
-
john cliff
-
Jon A. Cruz
-
Joshua A. Andler
-
kaver
-
Kurt Hutchinson
-
MenTaLguY
-
microUgly
-
Robert Funnell
-
Ryan Lerch