Custom XMP palette in PSD...is it even possible?
Hi all,
I currently use DAM software that writes custom XMP info which I can see in the File Info dialog in PSD. I would like to see this info (read only) while I am working in PhotoShop. This custom XMP has instructions on what to do to the PSD file. In my perfect world it would be a floating palette in PSD that would show the XMP.
Stuck and would appreciate any expertise you might pass my way.
Thanks,
Lee
>The ability to create a LabVIEW program from a script or
>from another LabVIEW program does not exist in version 7.
>The technology does exist and is being used but only by
>some NI programs (i.e. Vision Build and State Machine
>Toolkit).
Not any more.
I just create a VI, "Drop VI.vi", which let LabVIEW programmers creating VIs programmatically.
This VI drop a VI on the specified diagram progarmmatically at cursor position; drop a control/indicator on the specified front panel; or drop an image on the front panel/diagram. This VI can also be used to drop a file on Windows Explorer.
Demo can be downloaded from my web site.
George Zou
http://gtoolbox.yeah.net
George Zou
http://webspace.webring.com/people/og/gtoolbox
Similar Messages
-
Custom XMP panels don't show in Bridge CS4's Metadata palette
I've got a CS4 custom XMP panel working (using the "Generic" panel in the SDK) but I can't get it to display in the metadata palette of Bridge CS4 (the thing normally bottom right in the default Bridge "essentials" view).
In the old CS3 format, you could do this by adding an "fbname" attribute to fields of the custom panel. How do we now do this in the new SDK?
The Bridge metadata palette is mentioned on page 25 of the SDK programmer's guide, but the example given is merely of Dublin Core keywords (i.e. dc:subject) so shows in the Bridge metadata palette by default already.Following on from this question, is it possible to build up a Metadata panel group of fields drawn from different namespaces? (by group I mean something like the IPTC Core label and arrow which expands into the IPTC fields).
One would have a heading such as "My data", which when expanded shows x fields from one namespace #1 and y fields from namespace #2. I've tried to do this by leaving the namespace blank and hardcoding it and the prefix into the properties' name argument - eg http://ns.adobe.com/photoshop/1.0/photoshop:Urgency
Hope this isn't a hijack!
John -
Bugs: open new doc, custom XMP panel crash
When opening a new document after starting Photoshop, it appears with half a checkboard pattern:
Drawing on it looks like below:
I also had an issue where I closed the doc (without saving) after drawing, then opened a new doc. The previous drawing then appeared partially twice (large, and a small version in top left corner) in the new doc, this only happened once though.
I added a custom XMP panel that works fine with CS5 to $user-dir\AppData\Roaming\Adobe\XMP\Custom File Info Panels\4.0\panels
On selecting the custom panel, in the File Info window, the panel window / CS6 crashes. (The grey window in the sshot below is an imprint of the irfanview settings I used to take these screenshots, this imprinting behaviour (not sure if it has a proper name) is reasonably common with crashed programs).
I am using the 64 bit version on Windows 7 business 64. 8GB RAM, Sys info from PS CS6 below:
Adobe Photoshop Version: 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00) x64
Operating System: Windows 7 64-bit
Version: 6.1 Service Pack 1
System architecture: Intel CPU Family:6, Model:15, Stepping:6 with MMX, SSE Integer, SSE FP, SSE2, SSE3
Physical processor count: 2
Processor speed: 2666 MHz
Built-in memory: 8191 MB
Free memory: 4745 MB
Memory available to Photoshop: 7256 MB
Memory used by Photoshop: 60 %
Image tile size: 128K
Image cache levels: 4
OpenGL Drawing: Enabled.
OpenGL Drawing Mode: Advanced
OpenGL Allow Normal Mode: True.
OpenGL Allow Advanced Mode: True.
OpenGL Allow Old GPUs: Not Detected.
Video Card Vendor: NVIDIA Corporation
Video Card Renderer: GeForce GT 240/PCIe/SSE2
Display: 1
Display Bounds:= top: 0, left: 0, bottom: 960, right: 1280
Video Card Number: 1
Video Card: NVIDIA GeForce GT 240
OpenCL Unavailable
Driver Version: 8.17.12.9610
Driver Date: 20120229000000.000000-000
Video Card Driver: nvd3dumx.dll,nvwgf2umx.dll,nvwgf2umx.dll,nvd3dum,nvwgf2um,nvwgf2um
Video Mode: 1280 x 960 x 4294967296 colors
Video Card Caption: NVIDIA GeForce GT 240
Video Card Memory: 512 MB
Video Rect Texture Size: 8192
Serial number: Tryout Version
Application folder: C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\
Temporary file path: C:\Users\Rusty\AppData\Local\Temp\
Photoshop scratch has async I/O enabled
Scratch volume(s):
Startup, 136.7G, 48.9G free
Required Plug-ins folder: C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Required\
Primary Plug-ins folder: C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Plug-ins\
Additional Plug-ins folder: not set
Installed components:
A3DLIBS.dll A3DLIB Dynamic Link Library 9.2.0.112
ACE.dll ACE 2012/01/18-15:07:40 66.492997 66.492997
adbeape.dll Adobe APE 2012/01/25-10:04:55 66.1025012 66.1025012
AdobeLinguistic.dll Adobe Linguisitc Library 6.0.0
AdobeOwl.dll Adobe Owl 2012/02/09-16:00:02 4.0.93 66.496052
AdobePDFL.dll PDFL 2011/12/12-16:12:37 66.419471 66.419471
AdobePIP.dll Adobe Product Improvement Program 6.0.0.1642
AdobeXMP.dll Adobe XMP Core 2012/02/06-14:56:27 66.145661 66.145661
AdobeXMPFiles.dll Adobe XMP Files 2012/02/06-14:56:27 66.145661 66.145661
AdobeXMPScript.dll Adobe XMP Script 2012/02/06-14:56:27 66.145661 66.145661
adobe_caps.dll Adobe CAPS 5,0,10,0
AGM.dll AGM 2012/01/18-15:07:40 66.492997 66.492997
ahclient.dll AdobeHelp Dynamic Link Library 1,7,0,56
aif_core.dll AIF 3.0 62.490293
aif_ocl.dll AIF 3.0 62.490293
aif_ogl.dll AIF 3.0 62.490293
amtlib.dll AMTLib (64 Bit) 6.0.0.75 (BuildVersion: 6.0; BuildDate: Mon Jan 16 2012 18:00:00) 1.000000
ARE.dll ARE 2012/01/18-15:07:40 66.492997 66.492997
AXE8SharedExpat.dll AXE8SharedExpat 2011/12/16-15:10:49 66.26830 66.26830
AXEDOMCore.dll AXEDOMCore 2011/12/16-15:10:49 66.26830 66.26830
Bib.dll BIB 2012/01/18-15:07:40 66.492997 66.492997
BIBUtils.dll BIBUtils 2012/01/18-15:07:40 66.492997 66.492997
boost_date_time.dll DVA Product 6.0.0
boost_signals.dll DVA Product 6.0.0
boost_system.dll DVA Product 6.0.0
boost_threads.dll DVA Product 6.0.0
cg.dll NVIDIA Cg Runtime 3.0.00007
cgGL.dll NVIDIA Cg Runtime 3.0.00007
CIT.dll Adobe CIT 2.0.5.19287 2.0.5.19287
CoolType.dll CoolType 2012/01/18-15:07:40 66.492997 66.492997
data_flow.dll AIF 3.0 62.490293
dvaaudiodevice.dll DVA Product 6.0.0
dvacore.dll DVA Product 6.0.0
dvamarshal.dll DVA Product 6.0.0
dvamediatypes.dll DVA Product 6.0.0
dvaplayer.dll DVA Product 6.0.0
dvatransport.dll DVA Product 6.0.0
dvaunittesting.dll DVA Product 6.0.0
dynamiclink.dll DVA Product 6.0.0
ExtendScript.dll ExtendScript 2011/12/14-15:08:46 66.490082 66.490082
FileInfo.dll Adobe XMP FileInfo 2012/01/17-15:11:19 66.145433 66.145433
filter_graph.dll AIF 3.0 62.490293
hydra_filters.dll AIF 3.0 62.490293
icucnv40.dll International Components for Unicode 2011/11/15-16:30:22 Build gtlib_3.0.16615
icudt40.dll International Components for Unicode 2011/11/15-16:30:22 Build gtlib_3.0.16615
image_compiler.dll AIF 3.0 62.490293
image_flow.dll AIF 3.0 62.490293
image_runtime.dll AIF 3.0 62.490293
JP2KLib.dll JP2KLib 2011/12/12-16:12:37 66.236923 66.236923
libifcoremd.dll Intel(r) Visual Fortran Compiler 10.0 (Update A)
libmmd.dll Intel(r) C Compiler, Intel(r) C++ Compiler, Intel(r) Fortran Compiler 10.0
LogSession.dll LogSession 2.1.2.1640
mediacoreif.dll DVA Product 6.0.0
MPS.dll MPS 2012/02/03-10:33:13 66.495174 66.495174
msvcm80.dll Microsoft® Visual Studio® 2005 8.00.50727.6195
msvcm90.dll Microsoft® Visual Studio® 2008 9.00.30729.1
msvcp100.dll Microsoft® Visual Studio® 2010 10.00.40219.1
msvcp80.dll Microsoft® Visual Studio® 2005 8.00.50727.6195
msvcp90.dll Microsoft® Visual Studio® 2008 9.00.30729.1
msvcr100.dll Microsoft® Visual Studio® 2010 10.00.40219.1
msvcr80.dll Microsoft® Visual Studio® 2005 8.00.50727.6195
msvcr90.dll Microsoft® Visual Studio® 2008 9.00.30729.1
pdfsettings.dll Adobe PDFSettings 1.04
Photoshop.dll Adobe Photoshop CS6 CS6
Plugin.dll Adobe Photoshop CS6 CS6
PlugPlug.dll Adobe(R) CSXS PlugPlug Standard Dll (64 bit) 3.0.0.383
PSArt.dll Adobe Photoshop CS6 CS6
PSViews.dll Adobe Photoshop CS6 CS6
SCCore.dll ScCore 2011/12/14-15:08:46 66.490082 66.490082
ScriptUIFlex.dll ScriptUIFlex 2011/12/14-15:08:46 66.490082 66.490082
tbb.dll Intel(R) Threading Building Blocks for Windows 3, 0, 2010, 0406
tbbmalloc.dll Intel(R) Threading Building Blocks for Windows 3, 0, 2010, 0406
TfFontMgr.dll FontMgr 9.3.0.113
TfKernel.dll Kernel 9.3.0.113
TFKGEOM.dll Kernel Geom 9.3.0.113
TFUGEOM.dll Adobe, UGeom© 9.3.0.113
updaternotifications.dll Adobe Updater Notifications Library 6.0.0.24 (BuildVersion: 1.0; BuildDate: BUILDDATETIME) 6.0.0.24
WRServices.dll WRServices Friday January 27 2012 13:22:12 Build 0.17112 0.17112
wu3d.dll U3D Writer 9.3.0.113
Required plug-ins:
3D Studio 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Accented Edges 13.0
Adaptive Wide Angle 13.0
ADM 3.11x01
Angled Strokes 13.0
Average 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Bas Relief 13.0
BMP 13.0
Camera Raw 7.0
Chalk & Charcoal 13.0
Charcoal 13.0
Chrome 13.0
Cineon 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Clouds 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Collada 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Color Halftone 13.0
Colored Pencil 13.0
CompuServe GIF 13.0
Conté Crayon 13.0
Craquelure 13.0
Crop and Straighten Photos 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Crop and Straighten Photos Filter 13.0
Crosshatch 13.0
Crystallize 13.0
Cutout 13.0
Dark Strokes 13.0
De-Interlace 13.0
Dicom 13.0
Difference Clouds 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Diffuse Glow 13.0
Displace 13.0
Dry Brush 13.0
Eazel Acquire 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Embed Watermark 4.0
Entropy 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Extrude 13.0
FastCore Routines 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Fibers 13.0
Film Grain 13.0
Filter Gallery 13.0
Flash 3D 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Fresco 13.0
Glass 13.0
Glowing Edges 13.0
Google Earth 4 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Grain 13.0
Graphic Pen 13.0
Halftone Pattern 13.0
HDRMergeUI 13.0
IFF Format 13.0
Ink Outlines 13.0
JPEG 2000 13.0
Kurtosis 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Lens Blur 13.0
Lens Correction 13.0
Lens Flare 13.0
Liquify 13.0
Matlab Operation 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Maximum 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Mean 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Measurement Core 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Median 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Mezzotint 13.0
Minimum 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
MMXCore Routines 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Mosaic Tiles 13.0
Multiprocessor Support 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Neon Glow 13.0
Note Paper 13.0
NTSC Colors 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Ocean Ripple 13.0
Oil Paint 13.0
OpenEXR 13.0
Paint Daubs 13.0
Palette Knife 13.0
Patchwork 13.0
Paths to Illustrator 13.0
PCX 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Photocopy 13.0
Photoshop 3D Engine 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Picture Package Filter 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Pinch 13.0
Pixar 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Plaster 13.0
Plastic Wrap 13.0
PNG 13.0
Pointillize 13.0
Polar Coordinates 13.0
Portable Bit Map 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Poster Edges 13.0
Radial Blur 13.0
Radiance 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Range 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Read Watermark 4.0
Reticulation 13.0
Ripple 13.0
Rough Pastels 13.0
Save for Web 13.0
ScriptingSupport 13.0
Shear 13.0
Skewness 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Smart Blur 13.0
Smudge Stick 13.0
Solarize 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Spatter 13.0
Spherize 13.0
Sponge 13.0
Sprayed Strokes 13.0
Stained Glass 13.0
Stamp 13.0
Standard Deviation 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Sumi-e 13.0
Summation 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Targa 13.0
Texturizer 13.0
Tiles 13.0
Torn Edges 13.0
Twirl 13.0
U3D 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Underpainting 13.0
Vanishing Point 13.0
Variance 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Variations 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Water Paper 13.0
Watercolor 13.0
Wave 13.0
Wavefront|OBJ 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
WIA Support 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
Wind 13.0
Wireless Bitmap 13.0 (13.0 20120305.m.415 2012/03/05:21:00:00)
ZigZag 13.0
Optional and third party plug-ins: NONE
Plug-ins that failed to load: NONE
Flash:
Mini Bridge
Kuler
Installed TWAIN devices: NONEAccording to Nvidia's website, I already have the latest drivers installed (I updated them just a few days ago). I turned off hardware acceleration as you suggested, and that fixed the problem.
You can download the XMP panel that causes the crash from: http://www.iliveinabin.com/image-xmpPanel%20v2.zip That contains the source for the panel and also the compiled panel I'm using, which is in the target folder. -
Will Lightroom 4 support custom XMP?
XMP stands for eXtensible Metdadata Platform. Supposedly it is a standard developed by Adobe that permits image metadata not just be locked into one rather limited core set of fields like IPTC, but the design of custom metadata panels that in theory permits the addition of all kind of metadata fields.
Now, that sounds great - in theory...
Here is the catch: If you are not an advanced programmer, there is no way you will ever understand Adobes XMP Toolkit. For us normal earthlings it is essentialy impossible to make use of the X in eXpansible, we won't never be able to get a grips of programming custom metadata schemas ;-(
Worse: to date only Photoshop and Bridge even support custom metadata panels. Lightroom does not (please notice: I am NOT talking about the option to customize existing panels, I am talking about creating entirely new, customized panels!).
Currently there is unfortunately only one single software product on the market that fully supports XMP: IDimager. While IDimager is a great image database program it falls short in comparison to Lightrooms Image Editing/Adjustment/Developing capabilities. Thus it would be great, if Lightroom supported at least importing custom metadata panels created in other applications such as IDimager.
(specifically this one: http://wiki.idimager.com/index.php?title=DarwinCoreXMP#.27.27.27Darwin_Core_XMP.27.27.27)...Hi Cornelia,
unfortunately ALL these plugins have one severe limitation: They are not XMP custom metadata, they are not saved as XMP metadata to the image files themselves!
In fact this ability in lightroom to "create" your own custom panels is quite deceiving and not at all serving the purpose xmp was originally intended for.
The plugin by Rob Cole for example (the one you are referring to) permits you to create your own "custom metadata" in Lightroom, yet those metadata are NOT saved as XMP. Instead you have to manually backup the data, a rather cumbersome procedure, prone to data loss.
What is great about XMP is the ability to write metadata diretly into an image file. This way they always stay within the image metadata itself and are never lost. You open that file in another program or exchange it with someone else and there is the metadata - residing inside the file itself.
Now, why do I find custom metadata useful? Are there not enough xmp fields already?
I have been using an xmp implementation of the DarwinCore to manage metadata about photos of Natural History Collections, names of species for example, the genus, family, order, collection data where a specimen was collected, etc...
Although a standard for this kind of metadata already exists (i.e., the DarwinCore) this standard is unfortunately not generally available as XMP for image management. Thus, I made up a DarwinCore implementation of XMP in IDimager (http://wiki.idimager.com/index.php?title=DarwinCoreXMP#.27.27.27Darwin_Core_XMP.27.27.27) and it would be great to be able to use it also in Lightroom (at least be able to read it, better yet also write to those fields). In Photoshop and Bridge I can at least see that information, sadly though Lightroom does not even support reading custom XMP...
Frank -
Custom Swatch Palette (beta)
Hi yall,
I created this custom swatch palette which allows a person to keep swatch info in this palette and instantiate it in documents. The palette can store notes about a particular swatch and there is a save button somewhere which will save your palette state as an xml file.
//==================================================HOBO SWATCHES by Vasily ===========================================//
// BETA
* @@@BUILDINFO@@@ Hobo Swatches_v1.jsx !Version! Sat Jan 18 2014 22:36:40 GMT-0600
function swatchPalette(){
//===================================================Icon Resources========================//
var infoBtnSrc='({total:2, '+
'shape_1:{fillColor:[0.11, 0.18, 1], name:"", tag:"", strokeColor:null, pathPoints:[10, 3, 5, 5], ellipsePath:true, closed:true}, '+
'shape_0:{fillColor:[0.11, 0.18, 1], name:"", tag:"", strokeColor:null, pathPoints:[[15, 15], [15, 11], [18, 11], [18, 9], [13, 9], [8, 9], [8, 11], [11, 11], [11, 15], [7, 15], [7, 17], [19, 17], [19, 15]], ellipsePath:false, closed:true}})';
var addBtnSrc='({total:1, '+
'group_0:{'+
'shape_1:{fillColor:null, name:"", tag:"", strokeColor:[0, 0.14, 1], pathPoints:[[19, 9], [14, 9], [14, 4], [12, 4], [12, 9], [7, 9], [7, 11], [12, 11], [12, 16], [14, 16], [14, 11], [19, 11]], ellipsePath:false, closed:true, strokeWidth:2}, '+
'shape_0:{fillColor:[1, 1, 0], name:"", tag:"", strokeColor:null, pathPoints:[[19, 9], [14, 9], [14, 4], [12, 4], [12, 9], [7, 9], [7, 11], [12, 11], [12, 16], [14, 16], [14, 11], [19, 11]], ellipsePath:false, closed:true}, total:2}})';
var rmvBtnSrc='({total:2, '+
'shape_1:{fillColor:null, name:"", tag:"", strokeColor:[0, 0.22, 0], pathPoints:[[20, 9], [6, 9], [6, 11], [20, 11]], ellipsePath:false, closed:true, strokeWidth:3}, '+
'shape_0:{fillColor:[0.27, 1, 0], name:"", tag:"", strokeColor:null, pathPoints:[[20, 9], [6, 9], [6, 11], [20, 11]], ellipsePath:false, closed:true}})';
var rstBtnSrc='({total:2, '+
'group_1:{'+
'shape_1:{fillColor:[1, 0, 0], name:"", tag:"", strokeColor:[0.14, 0.12, 0.13], pathPoints:[45, 4, 12, 12], ellipsePath:true, closed:true, strokeWidth:2}, '+
'shape_0:{fillColor:null, name:"", tag:"", strokeColor:[0.14, 0.12, 0.13], pathPoints:[[51, 12], [51, 2]], ellipsePath:false, closed:false, strokeWidth:3}, total:2}, '+
'group_0:{'+
'shape_7:{fillColor:null, name:"", tag:"", strokeColor:[0.75, 0.36, 0], pathPoints:[[5, 16], [5, 5], [11, 5], [11, 10], [7, 10], [12, 15]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_6:{fillColor:null, name:"", tag:"", strokeColor:[0.75, 0.36, 0], pathPoints:[[20, 5], [15, 5], [15, 15], [19, 15]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_5:{fillColor:null, name:"", tag:"", strokeColor:[0.75, 0.36, 0], pathPoints:[[14, 10], [18, 10]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_4:{fillColor:null, name:"", tag:"", strokeColor:[0.75, 0.36, 0], pathPoints:[[34, 5], [29, 5], [29, 15], [34, 15]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_3:{fillColor:null, name:"", tag:"", strokeColor:[0.75, 0.36, 0], pathPoints:[[29, 10], [32, 10]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_2:{fillColor:null, name:"", tag:"", strokeColor:[0.75, 0.36, 0], pathPoints:[[21, 15], [26, 15], [26, 10], [22, 10], [22, 5], [27, 5]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_1:{fillColor:null, name:"", tag:"", strokeColor:[0.75, 0.36, 0], pathPoints:[[39, 16], [39, 5]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_0:{fillColor:null, name:"", tag:"", strokeColor:[0.75, 0.36, 0], pathPoints:[[35, 5], [42, 5]], ellipsePath:false, closed:false, strokeWidth:2}, total:8}})';
var labModelSrc='({total:3, '+
'shape_2:{fillColor:null, name:"", tag:"", strokeColor:[1, 1, 1], pathPoints:[[4, 2], [4, 8], [7, 8]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_1:{fillColor:null, name:"", tag:"", strokeColor:[0, 1, 1], pathPoints:[[12, 3], [12, 8], [9, 8], [9, 5], [12, 5]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_0:{fillColor:null, name:"", tag:"", strokeColor:[1, 1, 0], pathPoints:[[15, 2], [15, 8], [18, 8], [18, 5], [15, 5]], ellipsePath:false, closed:false, strokeWidth:2}})';
var cmykModelSrc='({total:4, '+
'shape_3:{fillColor:[0, 1, 1], name:"", tag:"", strokeColor:null, pathPoints:[[2, 9], [5, 9], [5, 8], [3, 8], [3, 3], [5, 3], [5, 2], [2, 2]], ellipsePath:false, closed:true}, '+
'shape_2:{fillColor:[1, 0, 1], name:"", tag:"", strokeColor:null, pathPoints:[[10, 3], [9, 3], [9, 4], [8, 4], [8, 3], [7, 3], [7, 2], [6, 2], [6, 3], [6, 5], [6, 9], [7, 9], [7, 5], [8, 5], [8, 6], [9, 6], [9, 5], [10, 5], [10, 9], [11, 9], [11, 2], [10, 2]], ellipsePath:false, closed:true}, '+
'shape_1:{fillColor:[1, 1, 0], name:"", tag:"", strokeColor:null, pathPoints:[[16, 2], [16, 3], [15, 3], [15, 4], [14, 4], [14, 3], [13, 3], [13, 2], [12, 2], [12, 4], [13, 4], [13, 5], [14, 5], [14, 9], [15, 9], [15, 5], [16, 5], [16, 4], [17, 4], [17, 2]], ellipsePath:false, closed:true}, '+
'group_0:{'+
'shape_4:{fillColor:[0, 0, 0], name:"", tag:"", strokeColor:null, pathPoints:[[19, 5], [19, 2], [18, 2], [18, 9], [19, 9], [19, 6], [20, 6], [20, 5]], ellipsePath:false, closed:true}, '+
'shape_3:{fillColor:[0, 0, 0], name:"", tag:"", strokeColor:null, pathPoints:[[20, 8], [21, 8], [21, 6], [20, 6]], ellipsePath:false, closed:true}, '+
'shape_2:{fillColor:[0, 0, 0], name:"", tag:"", strokeColor:null, pathPoints:[[22, 9], [22, 8], [21, 8], [21, 9]], ellipsePath:false, closed:true}, '+
'shape_1:{fillColor:[0, 0, 0], name:"", tag:"", strokeColor:null, pathPoints:[[21, 3], [20, 3], [20, 5], [21, 5]], ellipsePath:false, closed:true}, '+
'shape_0:{fillColor:[0, 0, 0], name:"", tag:"", strokeColor:null, pathPoints:[[22, 2], [21, 2], [21, 3], [22, 3]], ellipsePath:false, closed:true}, total:5}})';
var rgbModelSrc='({total:5, '+
'shape_4:{fillColor:[1, 0, 0], name:"", tag:"", strokeColor:null, pathPoints:[[2, 2], [2, 9], [3, 9], [3, 3], [5, 3], [5, 5], [3, 5], [3, 7], [4, 7], [4, 6], [6, 6], [6, 2]], ellipsePath:false, closed:true}, '+
'shape_3:{fillColor:[1, 0, 0], name:"", tag:"", strokeColor:null, pathPoints:[[5, 8], [5, 7], [4, 7], [4, 8]], ellipsePath:false, closed:true}, '+
'shape_2:{fillColor:[1, 0, 0], name:"", tag:"", strokeColor:null, pathPoints:[[6, 9], [6, 8], [5, 8], [5, 9]], ellipsePath:false, closed:true}, '+
'shape_1:{fillColor:[0, 1, 0], name:"", tag:"", strokeColor:null, pathPoints:[[7, 9], [11, 9], [11, 6], [9, 6], [9, 7], [10, 7], [10, 8], [8, 8], [8, 3], [10, 3], [10, 4], [11, 4], [11, 2], [7, 2]], ellipsePath:false, closed:true}, '+
'shape_0:{fillColor:[0, 0, 1], name:"", tag:"", strokeColor:null, pathPoints:[[13, 5], [13, 3], [15, 3], [15, 5], [16, 5], [16, 2], [12, 2], [12, 9], [16, 9], [16, 6], [15, 6], [15, 8], [13, 8], [13, 6], [15, 6], [15, 5]], ellipsePath:false, closed:true}})';
var grayModelSrc='({total:7, '+
'shape_6:{fillColor:[0.57, 0.58, 0.59], name:"", tag:"", strokeColor:null, pathPoints:[[7, 2], [7, 9], [8, 9], [8, 3], [10, 3], [10, 5], [8, 5], [8, 7], [9, 7], [9, 6], [11, 6], [11, 2]], ellipsePath:false, closed:true}, '+
'shape_5:{fillColor:[0.57, 0.58, 0.59], name:"", tag:"", strokeColor:null, pathPoints:[[10, 8], [10, 7], [9, 7], [9, 8]], ellipsePath:false, closed:true}, '+
'shape_4:{fillColor:[0.57, 0.58, 0.59], name:"", tag:"", strokeColor:null, pathPoints:[[11, 9], [11, 8], [10, 8], [10, 9]], ellipsePath:false, closed:true}, '+
'shape_3:{fillColor:[0.82, 0.82, 0.83], name:"", tag:"", strokeColor:null, pathPoints:[[2, 9], [6, 9], [6, 6], [4, 6], [4, 7], [5, 7], [5, 8], [3, 8], [3, 3], [5, 3], [5, 4], [6, 4], [6, 2], [2, 2]], ellipsePath:false, closed:true}, '+
'shape_2:{fillColor:[0.35, 0.36, 0.38], name:"", tag:"", strokeColor:null, pathPoints:[[15, 3], [13, 3], [13, 2], [15, 2]], ellipsePath:false, closed:true}, '+
'shape_1:{fillColor:[0.35, 0.36, 0.38], name:"", tag:"", strokeColor:null, pathPoints:[[15, 3], [15, 5], [13, 5], [13, 3], [12, 3], [12, 9], [13, 9], [13, 6], [15, 6], [15, 9], [16, 9], [16, 3]], ellipsePath:false, closed:true}, '+
'shape_0:{fillColor:[0.2, 0.22, 0.24], name:"", tag:"", strokeColor:null, pathPoints:[[21, 2], [21, 3], [20, 3], [20, 4], [19, 4], [19, 3], [18, 3], [18, 2], [17, 2], [17, 4], [18, 4], [18, 5], [19, 5], [19, 9], [20, 9], [20, 5], [21, 5], [21, 4], [22, 4], [22, 2]], ellipsePath:false, closed:true}})';
var noteMarkSrc='({total:4, '+
'shape_3:{fillColor:[0.53, 0.33, 0.26], name:"", tag:"", strokeColor:[0.14, 0.12, 0.13], pathPoints:[[11, 21], [11, 14], [4, 14]], ellipsePath:false, closed:true, strokeWidth:1}, '+
'shape_2:{fillColor:[1, 0.97, 0.62], name:"", tag:"", strokeColor:[0.14, 0.12, 0.13], pathPoints:[[11, 21], [1, 21], [1, 14], [7, 14], [11, 19]], ellipsePath:false, closed:true, strokeWidth:1}, '+
'shape_1:{fillColor:null, name:"", tag:"", strokeColor:[0.14, 0.12, 0.13], pathPoints:[[1, 17], [6, 17]], ellipsePath:false, closed:false, strokeWidth:1}, '+
'shape_0:{fillColor:null, name:"", tag:"", strokeColor:[0.14, 0.12, 0.13], pathPoints:[[1, 19], [6, 19]], ellipsePath:false, closed:false, strokeWidth:1}})';
var okBtnSrc='({total:2, '+
'group_1:{'+
'shape_5:{fillColor:null, name:"", tag:"", strokeColor:[0.39, 0.31, 0], pathPoints:[[11, 5], [5, 5], [5, 15], [11, 15]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_4:{fillColor:null, name:"", tag:"", strokeColor:[0.39, 0.31, 0], pathPoints:[[28, 5], [22, 5], [22, 15], [28, 15]], ellipsePath:false, closed:true, strokeWidth:2}, '+
'shape_3:{fillColor:null, name:"", tag:"", strokeColor:[0.39, 0.31, 0], pathPoints:[[14, 4], [14, 15], [19, 15]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_2:{fillColor:null, name:"", tag:"", strokeColor:[0.39, 0.31, 0], pathPoints:[[45, 5], [40, 5], [40, 15], [45, 15]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_1:{fillColor:null, name:"", tag:"", strokeColor:[0.39, 0.31, 0], pathPoints:[[40, 10], [43, 10]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_0:{fillColor:null, name:"", tag:"", strokeColor:[0.39, 0.31, 0], pathPoints:[[31, 15], [36, 15], [36, 10], [32, 10], [32, 5], [37, 5]], ellipsePath:false, closed:false, strokeWidth:2}, total:6}, '+
'group_0:{'+
'shape_2:{fillColor:[0, 0, 0], name:"", tag:"", strokeColor:[0.57, 0.58, 0.59], pathPoints:[47, 2, 15, 15], ellipsePath:true, closed:true, strokeWidth:1}, '+
'shape_1:{fillColor:null, name:"", tag:"", strokeColor:[0.93, 0.11, 0.14], pathPoints:[[51, 13], [58, 6]], ellipsePath:false, closed:false, strokeWidth:2}, '+
'shape_0:{fillColor:null, name:"", tag:"", strokeColor:[0.93, 0.11, 0.14], pathPoints:[[58, 13], [51, 6]], ellipsePath:false, closed:false, strokeWidth:2}, total:3}})';
var addToDocBtnSrc='({total:5, '+
'shape_4:{fillColor:[1, 1, 0.59], name:"", tag:"", strokeColor:[0.14, 0.12, 0.13], pathPoints:[[22, 16], [13, 16], [13, 9], [17, 5], [22, 5]], ellipsePath:false, closed:true, strokeWidth:2}, '+
'shape_3:{fillColor:[0.14, 0.12, 0.13], name:"", tag:"", strokeColor:null, pathPoints:[[11, 13], [8, 13], [8, 4], [11, 4]], ellipsePath:false, closed:true}, '+
'shape_2:{fillColor:[0.14, 0.12, 0.13], name:"", tag:"", strokeColor:null, pathPoints:[[5, 10], [5, 7], [14, 7], [14, 10]], ellipsePath:false, closed:true}, '+
'shape_1:{fillColor:[1, 0, 0], name:"", tag:"", strokeColor:null, pathPoints:[[13, 9], [6, 9], [6, 8], [13, 8]], ellipsePath:false, closed:true}, '+
'shape_0:{fillColor:[1, 0, 0], name:"", tag:"", strokeColor:null, pathPoints:[[10, 5], [10, 12], [9, 12], [9, 5]], ellipsePath:false, closed:true}})';
//===================================================Basic Functions========================//
var UIElements=[Window,Group,EditText,Panel];
for(var i=0; i<UIElements.length; i++){
UIElements[i].prototype.setBg=function(rgb){
this.graphics.backgroundColor=this.graphics.newBrush(this.graphics.BrushType.SOLID_COLOR, [rgb[0],rgb[1],rgb[2]]);
function round2(num){
return Math.round(num*100)/100;
var env=ScriptUI.environment;
function convertAppColor(src,dest,clrArr){
return app.convertSampleColor(ImageColorSpace[src], clrArr, ImageColorSpace[dest], ColorConvertPurpose.defaultpurpose);
function currentTime(){
var time=new Date();
var hours=time.getHours();
var minutes=time.getMinutes();
var seconds=time.getSeconds();
if(seconds<10){seconds='0'+seconds;}
if(minutes<10){minutes='0'+minutes;}
var ampm=function(){
if(hours>12){
hours-=12;
return 'pm';
} else {
if(hours==0){hours=1;}
return 'am';
return (hours)+":"+minutes+":"+seconds+" "+ampm;
function getUIRGB(type, clr){
for(var x=0; x<clr.length; x++){
clr[x]=clr[x]*1;
if(type=="RGB"){
return [round2(clr[0]/255),round2(clr[1]/255),round2(clr[2]/255)];
} else if(type=="CMYK"){
var newArr=convertAppColor("CMYK","RGB",[clr[0],clr[1],clr[2],clr[3]]);
return [round2(newArr[0]/255),round2(newArr[1]/255),round2(newArr[2]/255)];
} else if(type=="GRAY"){
var newArr=convertAppColor("GrayScale","RGB",[clr[0]]);
return [round2(newArr[0]/255),round2(newArr[1]/255),round2(newArr[2]/255)];
} else if(type=="LAB"){
var newArr=convertAppColor("LAB","RGB",[clr[0],clr[1],clr[2]]);
return [round2(newArr[0]/255),round2(newArr[1]/255),round2(newArr[2]/255)];
} else {
return [0.5,0.5,0.5];
//===================================================Advanced Functions========================//
//===================================XML=============//
function wrapCDATA(str, propNm){
str = '<data>'+str+'</data>';
str = str.replace(/(\<data\>)/g, '<'+propNm+'><![CDATA[');
str = str.replace(/(\<\/data\>)/g,']]\>'+'</'+propNm+'>');
return XML(str);
function stringXmlSafe(str){
str=str.toString();
str=str.replace(/&(?!(amp;|gt;|lt;|quot;|apos;))/g,"&");
str=str.replace(/</g,"<");
str=str.replace(/>/g,">");
str=str.replace(/'/g,"'");
str=str.replace(/"/g,""");
return str;
function getXmlSwatchesArr(xmlFile){
var myFile=xmlFile;
myFile.open('r');
myFile.seek(0,0);
var fileStr=myFile.read();
myFile.close();
var xmlObj=XML(fileStr);
var swatchArr=[];
for(var x=0, ln=xmlObj.children().length(); x<ln; x++){
var sw={};
var thisSw=xmlObj.children()[x];
sw.name=thisSw.descendants("name").toString();
sw.aiSwatchKind=thisSw.descendants("aiswatchkind").toString();
var comp=thisSw.descendants("colorcomp");
sw.colorComp={};
sw.colorComp.mode=comp.descendants("mode").toString();
sw.colorComp.comp=[];
for(var y=0, ln_2=thisSw.descendants("colorcomp").descendants("colorvalues").children().length(); y<ln_2; y++){
sw.colorComp.comp.push(thisSw.descendants("colorcomp").descendants("colorvalues").childre n()[y]*1);
sw.notes=thisSw.descendants("notes");
sw.originDoc=thisSw.descendants("origindoc").toString();
swatchArr.push(sw);
return swatchArr;
function getXmlSwatchesXML(swatchArr){
XML.prettyIndent=4;
var xmlBody=new XML('<swatches></swatches>');
for(var i=0; i<swatchArr.length; i++){
var thisSw=swatchArr[i];
xmlBody.appendChild(new XML("<swatch></swatch>")); xmlBody.swatch[i].@order=i+1;
xmlBody.swatch[i].appendChild(new XML("<name>"+stringXmlSafe(thisSw.name)+"</name>"));
if(thisSw.name!='none'){
if(thisSw.info && thisSw.info.plating){
thisSw.aiSwatchKind=thisSw.info.plating;
thisSw.colorComp.mode=thisSw.colorComp.typename;
thisSw.originDoc=thisSw.info.originDoc;
thisSw.notes=thisSw.info.notes;
xmlBody.swatch[i].appendChild(new XML("<aiswatchkind>"+stringXmlSafe(thisSw.aiSwatchKind)+"</aiswatchkind>"));
xmlBody.swatch[i].appendChild(new XML("<colorcomp></colorcomp>"));
xmlBody.swatch[i].colorcomp[0].appendChild(new XML("<mode>"+stringXmlSafe(thisSw.colorComp.mode)+"</mode>"));
xmlBody.swatch[i].colorcomp[0].appendChild(new XML("<colorvalues></colorvalues>"));
for(var j=0; j<thisSw.colorComp.comp.length; j++){
xmlBody.swatch[i].colorcomp[0].colorvalues[0].appendChild(new XML("<value>"+stringXmlSafe(thisSw.colorComp.comp[j])+"</value>"));
xmlBody.swatch[i].notes=wrapCDATA(thisSw.notes, 'notes');
xmlBody.swatch[i].origindoc=stringXmlSafe(thisSw.originDoc);
return xmlBody;
//===================================end XML=============//
// gets type and color array from swatch in swatch palette - for BT
function getAISwatchColor(processColorOrSpot,name){
function round2(num){
return Math.round(num*100)/100;
var result={type:null, name:null, colorArr:null, uiColor:null, plating:null, originDoc:null, creDt:null, rgbClr:null, cmykClr:null, grayClr:null, labClr:null};
var clr=processColorOrSpot;
result.name=name;
if(clr=="[RGBColor]"){
result.type="RGB"; result.colorArr=[round2(clr.red),round2(clr.green),round2(clr.blue)];
result.uiColor=[clr.red/255,clr.green/255,clr.blue/255]; result.plating='Process';
} else if(clr=="[CMYKColor]"){
result.type="CMYK"; result.colorArr=[round2(clr.cyan),round2(clr.magenta),round2(clr.yellow),round2(clr.black )]; result.uiColor=function(){
var newArr=convertAppColor("CMYK","RGB",[clr.cyan,clr.magenta,clr.yellow,clr.black]);
return [newArr[0]/255,newArr[1]/255,newArr[2]/255,];
}(); result.plating='Process';
} else if(clr=="[GrayColor]"){
result.type="GRAY"; result.colorArr=[round2(clr.gray)]; result.uiColor=function(){
var newArr=convertAppColor("GrayScale","RGB",[clr.gray]);
return [newArr[0]/255,newArr[1]/255,newArr[2]/255,];
}(); result.plating='Process';
} else if(clr=="[SpotColor]"){
clr=clr.spot;
if(clr.colorType==ColorModel.SPOT){
result.plating='Spot';
} else if(clr.colorType==ColorModel.PROCESS){
result.plating='GlobalProcess';
} else if(clr.colorType==ColorModel.REGISTRATION){
result.plating='Registration';
} else {
result.plating="Process";
var intClr=clr.getInternalColor();
for(var i=0; i<intClr.length; i++){
intClr[i]=round2(intClr[i]);
if(clr.spotKind==SpotColorKind.SPOTLAB){
result.type="LAB"; result.colorArr=intClr; result.uiColor=function(){
var newArr=convertAppColor("LAB","RGB",[intClr[0],intClr[1],intClr[2]]);
return [newArr[0]/255,newArr[1]/255,newArr[2]/255,];
} else if(clr.spotKind==SpotColorKind.SPOTRGB){
result.type="RGB"; result.colorArr=intClr; result.uiColor=[intClr[0]/255,intClr[1]/255,intClr[2]/255];
} else if(clr.spotKind==SpotColorKind.SPOTCMYK){
result.type="CMYK"; result.colorArr=intClr; result.uiColor=function(){
var newArr=convertAppColor("CMYK","RGB",[intClr[0],intClr[1],intClr[2],intClr[3]]);
return [newArr[0]/255,newArr[1]/255,newArr[2]/255,];
var colorMode=result.type;
if(colorMode=="GRAY"){
colorMode="GrayScale";
var altClrs=[
result.rgbClr=convertAppColor(colorMode, "RGB", result.colorArr),
result.cmykClr=convertAppColor(colorMode, "CMYK", result.colorArr),
result.grayClr=convertAppColor(colorMode, "GrayScale", result.colorArr),
result.labClr=convertAppColor(colorMode, "LAB", result.colorArr),
for(var c=0; c<altClrs.length; c++){
for(var d=0; d<altClrs[c].length; d++){
altClrs[c][d]=round2(altClrs[c][d]);
result.originDoc=app.activeDocument.name;
result.creDt=currentTime();
return result;
function drawPath(shp, canvas){
var thisShp=shp;
if(thisShp.ellipsePath!=true){
var vectorPts=thisShp.pathPoints;
canvas.newPath(); canvas.moveTo(thisShp.pathPoints[0][0],thisShp.pathPoints[0][1]);
for(var j=0; j<vectorPts.length; j++){
var thisAnchor=vectorPts[j];
var x=thisAnchor[0], y=thisAnchor[1];
canvas.lineTo(x,y);
if(thisShp.closed==true){
canvas.closePath();
} else {
var cirPts=thisShp.pathPoints;
canvas.newPath();
canvas.ellipsePath(round2(cirPts[0]), round2(cirPts[1]), round2(cirPts[2]), round2(cirPts[3]));
canvas.closePath();
if(thisShp.fillColor!=null){
var clr=thisShp.fillColor;
var myBrush=canvas.newBrush(canvas.BrushType.SOLID_COLOR,clr);
canvas.fillPath(myBrush);
if(thisShp.strokeColor!=null){
var clr=thisShp.strokeColor;
var myPen=canvas.newPen(canvas.PenType.SOLID_COLOR,[clr[0],clr[1],clr[2],1], thisShp.strokeWidth);
canvas.strokePath(myPen);
function drawImg(objString, canvasArea){
// using drawPath();
var obj=eval(objString.replace(/(^'|';$)/g,''));
var canvas=canvasArea.graphics;
var counter=obj.total;
while(counter>=0){
for(all in obj){
if(all.match(/\d{1,2}$/g) && all.match(/\d{1,2}$/g)==counter){
var thisShp=obj[all];
if(all.match('group')){
var ctr=obj[all].total;
while(ctr>=0){
for(paths in obj[all]){
if(paths.match(/\d{1,2}$/g) && paths.match(/\d{1,2}$/g)==ctr){
drawPath(obj[all][paths], canvas);
ctr--;
} else {
drawPath(thisShp, canvas);
counter-=1;
function btnSkin(elem,aClr,w,h){
var g=elem.graphics; var brush=g.newBrush(g.BrushType.SOLID_COLOR,aClr);
g.newPath(); g.moveTo(1,1); g.lineTo(w-1,1); g.lineTo(w-1,h-1); g.lineTo(1,h-1); g.closePath(); g.fillPath(brush);
var ltr=[aClr[0]*1.2,aClr[1]*1.2,aClr[2]*1.2];
for(var c=0; c<ltr.length; c++){
if(ltr[c]>1){
ltr[c]=1;
brush=g.newBrush(g.BrushType.SOLID_COLOR,ltr); g.newPath(); g.rectPath(0,0,w,h/2); g.fillPath(brush);
var pen=g.newPen(g.PenType.SOLID_COLOR,[1,1,1,1],2);
g.newPath(); g.moveTo(1,1); g.lineTo(w-1,1); g.lineTo(w-1,h-1); g.lineTo(1,h-1); g.closePath();
g.strokePath(pen);
function createAltDisp(swObj, uiParent){
var altClrs=swObj.info.altClrs;
var modes=['CMYK','RGB','LAB','GRAY'];
for(var m=0; m<modes.length; m++){
if(swObj.colorComp.typename!=modes[m]){
var altG=uiParent.add('panel',undefined,modes[m]); altG.margins=[2,6,2,2];
altG.size=[80,88]; altG.spacing=2; altG.alignChildren='left';
if(modes[m]=="RGB"){
altG.add('statictext',undefined,'R: '+altClrs.rgbClr[0]);
altG.add('statictext',undefined,'G: '+altClrs.rgbClr[1]);
altG.add('statictext',undefined,'B: '+altClrs.rgbClr[2]);
} else if(modes[m]=="CMYK"){
altG.add('statictext',undefined,'C: '+altClrs.cmykClr[0]);
altG.add('statictext',undefined,'M: '+altClrs.cmykClr[1]);
altG.add('statictext',undefined,'Y: '+altClrs.cmykClr[2]);
altG.add('statictext',undefined,'K: '+altClrs.cmykClr[3]);
} else if(modes[m]=="LAB"){
altG.add('statictext',undefined,'L: '+altClrs.labClr[0]);
altG.add('statictext',undefined,'A: '+altClrs.labClr[1]);
altG.add('statictext',undefined,'B: '+altClrs.labClr[2]);
} else if(modes[m]=="GRAY"){
altG.add('statictext',undefined,'Black: '+altClrs.grayClr[0]);
function swatchInfoBox(swObj, uiParent){
var baseG=uiParent; // usually a group
var g_1=baseG.add("panel",undefined,"Swatch Info"); g_1.size=[340,340]; g_1.spacing=2; g_1.margins=[4,12,4,4];
var nameD=g_1.add('edittext',undefined,swObj.name,{readonly:true}); nameD.characters=20; nameD.justify='center';
if(swObj.name!='none'){
var mode=swObj.colorComp.typename;
var sep=g_1.add('panel'); sep.size=[310,2];
var g_1_0=g_1.add('group');
var txtG=g_1_0.add('group'); txtG.orientation='column'; txtG.spacing=2; txtG.margins=[2,2,2,2]; txtG.alignChildren='left';
txtG.add('statictext',undefined,'Color Model: '+swObj.colorComp.typename);
txtG.add('statictext',undefined,'Illustrator Swatch Type: '+swObj.info.plating);
var swD=g_1_0.add('panel'); swD.size=[34,34]; swD.setBg(swObj.fillColor);
var sep_1=g_1.add('panel'); sep_1.size=[310,2];
var g_1_1=g_1.add('group'); g_1_1.spacing=2;
if(mode=="RGB"){
var rD=g_1_1.add('statictext',undefined,'Red: '+swObj.colorComp.comp[0]+',');
var gD=g_1_1.add('statictext',undefined,'Green: '+swObj.colorComp.comp[1]+',');
var bD=g_1_1.add('statictext',undefined,'Blue: '+swObj.colorComp.comp[2]);
} else if(mode=="CMYK"){
var cD=g_1_1.add('statictext',undefined,'Cyan: '+swObj.colorComp.comp[0]+',');
var mD=g_1_1.add('statictext',undefined,'Magenta: '+swObj.colorComp.comp[1]+',');
var yD=g_1_1.add('statictext',undefined,'Yellow: '+swObj.colorComp.comp[2]+',');
var kD=g_1_1.add('statictext',undefined,'Black: '+swObj.colorComp.comp[3]);
} else if(mode=="LAB"){
var lD=g_1_1.add('statictext',undefined,'Luminance: '+swObj.colorComp.comp[0]+',');
var aD=g_1_1.add('statictext',undefined,'a: '+swObj.colorComp.comp[1]+',');
var bD=g_1_1.add('statictext',undefined,'b: '+swObj.colorComp.comp[2]);
} else if(mode=="GRAY"){
var gD=g_1_1.add('statictext',undefined,'Gray-Scale Black: '+swObj.colorComp.comp[0]);
var g_1_2=g_1.add('group');
createAltDisp(swObj, g_1_2);
var sep_2=g_1.add('panel'); sep_2.size=[310,2];
var originDocG=g_1.add('group'); originDocG.orientation='row';
var originDocH=originDocG.add('statictext',undefined,"Originating Document");
var originDocE=originDocG.add('edittext',undefined,swObj.info.originDoc,{readonly:true}); originDocE.characters=18;
var g_1_3=g_1.add('panel',undefined,'Notes'); g_1_3.margins=[2,8,2,2]; g_1_3.spacing=2;
var notesE=g_1_3.add('edittext',undefined,'',{readonly:true, multiline:true}); notesE.size=[310,60];
if(swObj.info && swObj.info.notes && swObj.info.notes!=''){
notesE.text=swObj.info.notes;
var notesBtnG=g_1_3.add('group');
var viewBigBtn=notesBtnG.add('button',undefined,"View Big");
var editBtn=notesBtnG.add('button',undefined,"Edit Notes");
var clearBtn=notesBtnG.add('button',undefined,"Clear Notes");
viewBigBtn.onClick=function(){
if(notesE.text!=''){
var notesW=new Window('dialog',"Notes in a bigger window:"); notesW.margins=[4,4,4,4];
var bignotesE=notesW.add('edittext',undefined,notesE.text,{multiline:true, readonly:true}); bignotesE.size=[300,360];
var closeNotes=notesW.add('button',undefined,"Ok");
notesW.show();
} else {
alert("There are no notes here.");
editBtn.onClick=function(){
var editResult=function(){
var newNotes=null;
var w=new Window('dialog','Edit Notes');
var inst=w.add('statictext',undefined,"Tip: use Ctrl+Return to enter in a carriage-return.");
var editE=w.add('edittext',undefined,notesE.text,{multiline:true}); editE.size=[310,160]; editE.active=true;
var btnG=w.add('group');
var okBtn=btnG.add('button',undefined,'Set Notes (OK)');
var cclBtn=btnG.add('button',undefined,'Cancel');
okBtn.onClick=function(){
if(editE.text.replace(/\s/g)!=''){
newNotes=editE.text;
} else {
newNotes='';
w.close();
w.show();
return newNotes;
if(editResult!=null){
notesE.text=editResult;
swObj.info.notes=editResult;
swObj.noteChange=currentTime();
clearBtn.onClick=function(){
if(confirm("Are you sure you want to clear the notes?")==true){
notesE.text='';
swObj.info.notes='';
swObj.noteChange=currentTime();
function infoWindow(SESSION){ //======================================MINI UI
var noteChange;
var userChoice={showMode:SESSION.options.showMode, showNotes:SESSION.options.showNotes, noteChange:false};
var swatchBox=function(){
if(SESSION.selection.length==0){
return null;
} else if(SESSION.selection.length==1){
return SESSION.selection[0];
} else if(SESSION.selection.length>1){
return "--Multiple Selection--";
var w=new Window('dialog',"Swatch Info & Preferences"); w.margins=[4,4,4,4];
var g_0=w.add('group'); g_0.orientation='column'; g_0.spacing=4;
var g_0_1=g_0.add("group");
if(swatchBox!=null){
if(swatchBox=="--Multiple Selection--"){ // Multi
var msg=g_0_1.add('statictext',undefined,swatchBox);
} else { //Single
if(swatchBox.name!='none'){
noteChange=swatchBox.noteChange;
swatchInfoBox(swatchBox, g_0_1);
} else {
var msg=g_0_1.add('statictext',undefined,"Empty Cell");
} else { // NONE
//var msg=g_0_1.add('statictext',undefined,"NONE");
var g_0_1=g_0.add("panel",undefined,"Main Window Prefrences"); g_0_1.size=[340,44]; g_0_1.orientation='column';
var boxGrp=g_0_1.add('group');
var modelBx=boxGrp.add('checkbox',undefined,"Show Color Mode"); modelBx.value=SESSION.options.showMode;
var noteBx=boxGrp.add('checkbox',undefined,"Show Note Marker"); noteBx.value=SESSION.options.showNotes;
var g_0_2=g_0.add("panel",undefined,"Persistence Options"); g_0_2.size=[340,54];
var saveBtn=g_0_2.add('button',undefined,"Save Current Session");
var okBtn=w.add('button',undefined,'Ok'); okBtn.size=[340,20]; okBtn.margins=[0,0,0,0];
okBtn.onClick=function(){
w.close();
saveBtn.onClick=function(){
var swcs=SESSION.swatchBoxes, swcsLn=SESSION.swatchBoxes.length;
var dir=SESSION.presetFolder;
var saveFl=File(dir+"/HoboSwatchSession.xml");
var blank=function(){
for(var s=0; s<swcsLn; s++){
if(swcs[s].name!='none'){
return false;
return true;
var go=false;
if(blank==true){
if(confirm('Set saved session to all blanks?',true,'Confirm this action:')==true){
go=true;
} else if(confirm('Save current session?',true,'Confirm this action:')==true){
go=true;
if(go==true){
if(!dir.exists){
dir.create();
saveFl.open('w');
saveFl.write('<?xml version="1.0"?>\r'+getXmlSwatchesXML(swcs));
saveFl.close();
if(saveFl.exists){
alert("Successfully Saved in: "+decodeURI(saveFl),'SUCCESS!');
} else {
alert("Sorry, "+decodeURI(saveFl)+"'s save operation was NOT successful!",'Failure... Horrible abysmal failure. :\'(');
w.show();
userChoice.showMode=modelBx.value;
userChoice.showNotes=noteBx.value;
userChoice.noteChange=function(){
if(swatchBox!=null && (swatchBox.noteChange != noteChange)){
return true;
return false;
return userChoice;
//===================================================For Bridge Talk========================//
function asSourceString(func, withArgs){
if(withArgs!=undefined && withArgs==true){
return func.toSource().toString().replace("(","").replace(/\)$/,"");
} else {
return func.toSource().toString().replace("(function "+func.name+"(){","").replace(/}\)$/,"");
function sendBTmsg(func, updateObj, resultFunc, resultFuncArgs){
if(updateObj==undefined){updateObj={self: 'nothing'}};
var updateObjName=updateObj.self;
if(updateObjName!=undefined){
var bt=new BridgeTalk;
bt.target='illustrator';
var btMsg=asSourceString(func);
for(all in updateObj){
if(all!='self'){
var rx=new RegExp(updateObjName+'\\.'+all,'g');
btMsg=btMsg.replace(rx,updateObj[all]);
bt.body=btMsg;
//$.write(btMsg);
if(resultFunc!=undefined){
bt.onResult=function(result){
resultFunc(result.body, resultFuncArgs);
bt.send();
} else {
$.writeln("Error, function 'sendBTmsg(func, updateOb)': the update object should have a 'self' property, indentifying its' name.");
function doNothing(){
var nothing=function(){
return;
function initSwatch(SESSION, sw, name, mode, clrArr, uiClr, info){ // Result of getting document swatches.
sw.fillColor=uiClr;
sw.name=name;
if(mode=="RGB" || mode=="LAB"){
sw.colorComp={typename:ColorComp[mode].typename,comp:[clrArr[0],clrArr[1],clrArr[2]]};
} else if(mode=="CMYK"){
sw.colorComp={typename:ColorComp[mode].typename,comp:[clrArr[0],clrArr[1],clrArr[2],clrAr r[3]]};
} else if(mode=="GRAY"){
sw.colorComp={typename:ColorComp[mode].typename,comp:[clrArr[0]]};
sw.colorComp.name=sw.name;
SESSION.nameDisplay.text=sw.name;
sw.info=info;
sw.addDrawPhase(sw.coloredState);
if(info.plating=="Spot"){
sw.addDrawPhase(sw.spotMark);
} else if(info.plating=="GlobalProcess"){
sw.addDrawPhase(sw.globalMark);
if(SESSION.options.showMode==true){
sw.addDrawPhase(sw[mode+'Model']);
if(SESSION.options.showNotes==true && sw.info && sw.info.notes!=''){
sw.addDrawPhase(sw.noteMark);
if(sw.selected==true){
sw.removeDrawPhase(sw.selectedMark);
sw.addDrawPhase(sw.selectedMark);
sw.refresh();
sw.instantiated=true;
sw.elem.helpTip=sw.getInfo();
//=========<<<<<<<<<<<<<<<BT Function
function bt_func(){
var outcome={swatches:[],};
if(app.documents.length>0){
var doc=app.activeDocument;
var swcs=doc.swatches.getSelected();
if(swcs.length>0){
BTOBJ.func_convertAppColor;
BTOBJ.func_currentTime;
BTOBJ.func_getAISwatchColor;
for(var s=0; s<swcs.length; s++){
var thisSw=swcs[s];
if(thisSw.color!="[PatternColor]" && thisSw.color!="[GradientColor]"
&& thisSw.name!="[Registration]" && thisSw.name!="[None]"){
outcome.swatches.push(getAISwatchColor(thisSw.color, thisSw.name));
outcome=outcome.toSource();
} else {
alert("Please select some swatches from the document's swatches palette.");
} else {
alert("Please open a document with swatches.");
function bt_func_rt(objString, args){ //puts swatches into palette.
var docSws=eval(objString).swatches; var SESSION=args[0];
for(var s=0; s<docSws.length; s++){
var thisSw=docSws[s];
if(SESSION.selection[s]!=undefined){
if(thisSw.name!='none'){
var sw=SESSION.selection[s];
var info={plating: thisSw.plating, originDoc: thisSw.originDoc,
altClrs:{rgbClr:thisSw.rgbClr,cmykClr:thisSw.cmykClr,labClr:thisSw.labClr,grayClr:thisSw. grayClr},
notes: '',
initSwatch(SESSION, sw, thisSw.name, thisSw.type, thisSw.colorArr, thisSw.uiColor, info);
} else {
alert("Sorry, can't have a swatch by the name of '"+thisSw.name+"'");
function bt_func_2(){
BTOBJ.func_currentTime;
var outcome={};
if(app.documents.length>0){
var doc=app.activeDocument;
var swcs=eval(BTOBJ.sessionSelection);
var nonConflictingSwatches=[];
for(var s=0; s<swcs.length; s++){
var thisSw=swcs[s];
try{
doc.swatches.getByName(thisSw.name);
continue;
} catch(e){
nonConflictingSwatches.push(thisSw);
for(var s=0; s<nonConflictingSwatches.length; s++){
var thisSw=nonConflictingSwatches[s];
for(var t=0; t<nonConflictingSwatches.length; t++){
var thisOtherSw=nonConflictingSwatches[t];
if(t!=s && thisSw.name==thisOtherSw.name){
nonConflictingSwatches.splice(s,1);
s=0;
break;
if(nonConflictingSwatches.length>0){
var swG=doc.swatchGroups.add(); var d=new Date();
swG.name="Added at "+((d.getMonth()+1)+"/"+d.getDate()+"/"+d.getFullYear()+" "+currentTime());
for(var s=0; s<nonConflictingSwatches.length; s++){
var thisSw=nonConflictingSwatches[s];
if(thisSw.plating!='Process'){
var dsw=doc.spots.add();
if(thisSw.colorComp.typename=="LAB"){
dsw.colorType=ColorModel.SPOT;
dsw.color=function(){
if(thisSw.colorComp.typename=="RGB"){
var c=new RGBColor();
c.red=thisSw.colorComp.comp[0];
c.green=thisSw.colorComp.comp[1];
c.blue=thisSw.colorComp.comp[2];
return c;
} else if(thisSw.colorComp.typename=="CMYK"){
var c=new CMYKColor();
c.cyan=thisSw.colorComp.comp[0];
c.magenta=thisSw.colorComp.comp[1];
c.yellow=thisSw.colorComp.comp[2];
c.black=thisSw.colorComp.comp[3];
return c;
} else if(thisSw.colorComp.typename=="LAB"){
var c=new LabColor();
c.l=thisSw.colorComp.comp[0];
c.a=thisSw.colorComp.comp[1];
c.b=thisSw.colorComp.comp[2];
return c;
} else if(thisSw.colorComp.typename=="GRAY"){
var c=new CMYKColor();
c.cyan=0;
c.magenta=0;
c.yellow=0;
c.black=thisSw.colorComp.comp[0];
return c;
dsw.name=thisSw.name;
if(thisSw.plating=="Spot"){
dsw.colorType=ColorModel.SPOT;
} else if(thisSw.plating=="GlobalProcess"){
dsw.colorType=ColorModel.PROCESS;
swG.addSpot(dsw);
} else {
var dsw=doc.swatches.add();
var color=function(){
if(thisSw.colorComp.typename=="RGB"){
var c=new RGBColor();
c.red=thisSw.colorComp.comp[0];
c.green=thisSw.colorComp.comp[1];
c.blue=thisSw.colorComp.comp[2];
return c;
} else if(thisSw.colorComp.typename=="CMYK"){
var c=new CMYKColor();
c.cyan=thisSw.colorComp.comp[0];
c.magenta=thisSw.colorComp.comp[1];
c.yellow=thisSw.colorComp.comp[2];
c.black=thisSw.colorComp.comp[3];
return c;
} else if(thisSw.colorComp.typename=="GRAY"){
var c=new GrayColor();
c.gray=thisSw.colorComp.comp[0];
return c;
dsw.color=color;
dsw.name=thisSw.name;
swG.addSwatch(dsw);
outcome=outcome.toSource();
} else {
alert("Please open a document with swatches.");
//===================================================Used Objects========================//
var BTOBJ={
self: "BTOBJ",
doNothing: asSourceString(doNothing),
func_getAISwatchColor: asSourceString(getAISwatchColor, true),
func_convertAppColor: asSourceString(convertAppColor, true),
func_currentTime: asSourceString(currentTime, true),
func_round2: asSourceString(round2, true),
sessionSelection: null,
var ColorComp={
CMYK:{typename:'CMYK', name:'', comp: [0,0,0,0]},
RGB:{typename:'RGB', name:'', comp: [0,0,0]},
LAB:{typename:'LAB', name:'', comp: [0,0,0]},
GRAY:{typename:'GRAY', name:'', comp: [0]},
NULL:{typename:'NULL', name:'None', comp:null},
function SwatchBox(elem){
this.uiOrder=elem.order;
this.name='none';
this.elem=elem;
this.colorComp=ColorComp.NULL;
this.elem.parentObj=this; // access constructor through UI element.
this.selected=false;
this.instantiated=false;
this.refresh=function(){
this.assignOnDraw(this.currentDrawingState);
this.elem.hide(); this.elem.show();
this.elem.helpTip='none';
this.fillColor=[0.4,0.4,0.4];
this.selectedMark={id: 'selected',
func:function(elem){
var g = elem.graphics;
var pen=g.newPen(g.PenType.SOLID_COLOR,[0,0,0,0.7],3);
g.rectPath(2, 2, 19, 19); g.strokePath(pen);
pen=g.newPen(g.PenType.SOLID_COLOR,[1,1,1,1],2);
g.newPath(); g.moveTo(2,7); g.lineTo(2,2); g.lineTo(7,2); g.strokePath(pen);
g.newPath(); g.moveTo(21,7); g.lineTo(21,2); g.lineTo(16,2); g.strokePath(pen);
g.newPath(); g.moveTo(2,16); g.lineTo(2,21); g.lineTo(7,21); g.strokePath(pen);
g.newPath(); g.moveTo(21,16); g.lineTo(21,21); g.lineTo(16,21); g.strokePath(pen);
this.coloredState={id:'colored',
func:function(elem){
var g = elem.graphics;
var pen=g.newPen(g.PenType.SOLID_COLOR,[0.7,0.7,0.7,1],1);
var brush=g.newBrush(g.BrushType.SOLID_COLOR,elem.parentObj.fillColor);
g.newPath(); g.moveTo(1,1); g.lineTo(22,1); g.lineTo(22,22); g.lineTo(1,22); g.closePath();
g.fillPath(brush); g.strokePath(pen);
this.noneState={id:'none',
func:function(elem){
var g = elem.graphics;
var pen=g.newPen(g.PenType.SOLID_COLOR,[0.7,0.7,0.7,1],1);
var brush=g.newBrush(g.BrushType.SOLID_COLOR,[0.4,0.4,0.4]);
g.newPath(); g.moveTo(1,1); g.lineTo(22,1); g.lineTo(22,22); g.lineTo(1,22); g.closePath();
g.strokePath(pen); g.fillPath(brush);
this.spotMark={id:'spot',
func:function(elem){
var g = elem.graphics;
var brush=g.newBrush(g.BrushType.SOLID_COLOR,[1,1,1]), pen=g.newPen(g.PenType.SOLID_COLOR,[0.7,0.7,0.7,1],1);
g.newPath(); g.moveTo(22,13); g.lineTo(22,22); g.lineTo(13,22); g.closePath();
g.fillPath(brush); g.strokePath(pen);
g.newPath();
brush=g.newBrush(g.BrushType.SOLID_COLOR,[0,0,0]);
g.ellipsePath(18,18,2,2); g.fillPath(brush);
this.globalMark={id:'global',
func:function(elem){
var g = elem.graphics;
var brush=g.newBrush(g.BrushType.SOLID_COLOR,[1,1,1]), pen=g.newPen(g.PenType.SOLID_COLOR,[0.7,0.7,0.7,1],1);
g.newPath(); g.moveTo(22,13); g.lineTo(22,22); g.lineTo(13,22); g.closePath();
g.fillPath(brush); g.strokePath(pen);
this.noteMark={id:'notes',
func:function(elem){
drawImg(noteMarkSrc, elem);
this.LABModel={id:'labmodel',
func:function(elem){
drawImg(labModelSrc, elem);
this.GRAYModel={id:'graymodel',
func:function(elem){
drawImg(grayModelSrc, elThank you W_J_T and here is the place where I got my drawing from:
http://forums.adobe.com/message/5819478#5819478
* I posted the latest update at the bottom on Jan 25 2014.
The principles of this method are to draw by reading the string object and that;s how you can change colors and things by changing the eval-led objects and redrawing them with putting an updating function into OnDraw and hiding/showing the element to force the OnDraw. If you end up using this , I'd like to see some examples! -
Using SDK to create custom XMP panel in Bridge CS4
Using the SDK materials how exactly does one go about creating their own custom XMP panel for Bridge CS4?
I feel like I'm getting close- I was able to copy the BasicControlSamplePanel folder from SDK to my local C drive @
C:\Documents and Settings\tony\Application Data\Adobe\XMP\Custom File Info Panels\2.0\panels
I figure once that file is in the right place I can simply modify it to get custom fields
Now when I did this I noticed in Bridge when rightclicked on an image and clicked file info- the BasicControlSamplePanel tab was visible but upon clicking on BasicControlSamplePanel tab there was nothing in this dialogue box. Tried restarting computer- and still nothing- seems like it is the correct folder what do I need to do to get the properties to show up
Help please
Thanks
TonyHi Tony,
please refer to the section "Creating custom XMP properties using XML" in the XMP FILEINFO SDK PROGRAMMER’S GUIDE for information how to create custom panels for the metadata panels in applications like Bridge or Premiere.
Regards
Jörg
Adobe XMP -
How to install custom XMP Get Info Panels in Adobe Bridge CC
Adobe changed their way they store the custom XMP Get Info Panels in Adobe Bridge CC. Check out this blog to see how you can install the XMP Get Info Panels that you used in Adobe Bridge CS6 in Adobe Bridge CC:
http://www.databasepublish.com/blog/installing-custom-metadata-panels-and-get-info-panels- adobe-bridge-ccCheck your Bridge preferences. It seems that you have the "Don't process images larger than…" option set to a lower amount than some of your files.
So, don't blame it on Bridge, but on the user who neglects that setting. -
Custom xmp in Lightroom?
I have written a few custom xmp panels that work beautifully in PS, IL, IND, Acrobat, Portfolio etc.. Alas I can't seem to access this info in LR.
Am i missing some crucial step?
I have the txt file in the adobe custom xmp panels folder but it is nowhere to be found in Lightroom's workspace.
Thanks.
aI have also experimented with customized XMP data with Bridge and found it quite powerful and useful. You do need to work with a bit of Javascript to do this, but this is not too difficult to learn.
For example, you can create your own namespace (e.g. "http://ns.mynamespace.com/customdata/1.0/"). and then a series of custom fields (e.g. CustomSetting, CustomName, CustomGroup etc.).
You can then add this namespace and custom fields to any image (except RAW) without affecting any of the existing metadata or the image itself. Once you have this extra metatdata imbedded in images you can use it in a number of other metadata-aware programs for advanced searching or sorting purposes.
Creating a custom metadata field is better than using an existing metadata field (e.g. IPTC fields) for your own purposes. In this way you are free to define the purpose of these fields without worrying that other programs will mess-up this metadata or choke on your image.
Regards, Nigel -
Custom Color Palette - Chart Designer
Hi all, I need to change the colors that my pie chart uses. You can do this in chart designer under the global settings section. The property, color pallete has 4 selectable entries, Frog, Streamline, Tradeshow, and Custom. By selecting "Custom", this means that I can choose the exact colors that I want to use, right? If so, where and how do I specify the colors for my custom color palette. Any reply would be appreciated. Thanks.
Regards,
Rich HeilmanHi Rich,
Did you go through my post here https://www.sdn.sap.com/irj/sdn/profile?userid=397656 ? I`m not 100% sure that you are able to do this using only Chart Designer. The problem is that you need association between series data id in cutomization XML and data XML. If you know such id on design time, you can re-design my example by moving generated piece of XML from WD to static customizing XML.
Best regards, Maksim Rashchynski. -
Custom Color Palette for Charts
Hi all,
Can I define the colors of a chart by a custom color palette in Design Studio (as you can do it in Web Intelligence) or does SAP intend to implement such a function in a next release? With CSS this isn't fully possible, because it doesn't allow you to coloring the additional line like the corresponding main line.
I've already seen and commented this post Re: Custom Color Palette for Charts / CSS, but it's still unanswered. Maybe I've with a new discussion more success.
Thank you and kind regards
SilvanCarola,
Dirk Mayrock has a nice list here Design Studio 1.1 Full List of CSS classes (?)
I think you have seen that already.
Also see Styling a chart in Design Studio
Especially see participated David Gyurasz as he has answered several CSS questions CSS-Customizing of Column-Combination chart as an example
Tammy -
Custom colour palette in Keynote for iOS?
Is there some workaround that would let me create a custom colour palette in Keynote for iOS? Importing a PPT slide seems to change the palette, so I assume it's possible, but I don't want to have to use PPT just to set up Keynote! Ideally, I'd like to be able to import a Kuler palette into the iOS app using only the iPad (I don't have a Mac).
FOUND THE SOLUTION:
I had this same problem and this resolved it for me:
-Go to your "Settings" icon and click on the "General" tab.
-About 2/3 way down the page you will see "Use side switch to:" - make sure "mute" is checked rather than "lock rotation."
-Then make sure the side switch, located next to the volume toggle switch on the side of your ipad, is moved to the right (no red dot showing).
My audio worked fine in embedded videos after I did those two things. Hope it works for you. -
Custom color palette in WAD charts
Hi BI Experts,
we are trying to create a custom color palette, which we want to apply to all your WAD charts.
Can anyone tell us how to do this?
Of course we can customize the colors in each chart, but that's a hell of a lot of work. Moreover, there doesn't seem to be any way to save the custom colors, but we have to recreate the colors with the color picker for every single chart.
The WAD chart wizard allows to choose between color palettes "Enjoy", "Streamline", "Tradeshow" and "User specific".
If it is not possible to create a custom color palette, can we modify one of these SAP color palettes? What does "User specific" mean?
Any help will be much appreciated (and of course rewarded with points).Moin, bei dem Problem kann ich leider überhaupt nicht helfen. Solltest Du allerdings, wie ich annehme, in Göttingen studiert haben und dann ein paar Jahre in den USA gewesen sein, dann melde Dich doch einfach mal, so Du Lust hast.
Besten Gruß,
Andi -
Custom Color Palette for Charts / CSS
Is there a way of creating a custom color palette for charts (as you can do it in WebIntelligence) and install it on the tomcat?
Or will I have to set my custom colors in the css? And if so: where can I find a description of classes for Charts? Is there any description of css classes at all? All I could find was a list of classes for a crosstab (but no description).
Thank you
CarolaCarola,
Dirk Mayrock has a nice list here Design Studio 1.1 Full List of CSS classes (?)
I think you have seen that already.
Also see Styling a chart in Design Studio
Especially see participated David Gyurasz as he has answered several CSS questions CSS-Customizing of Column-Combination chart as an example
Tammy -
Custom color-palette keeps becoming read-only and will not let me add new swatches
I need to make a custom colour palette for work that i can open on different adobe programs, share with others and add new swatches to as I go. I create a custom palette, save it a custom name but whenever I re-open it, it has become a read-only palette and I can no longer add custom swatches to it. How do I get around this problem if I need to keep adding colours to my custom palettes?
ThanksIn case you need to keep swatches from the ASE:
create a new document
empty the swatches panel
add all the swatches from the ASE into that document's swatches panel
add new colors as swatches
from the swatches panel's menu select "save library"
Also see the manual on creating swatches. -
Custom Composed Look not appearing in Change the Look with custom color palette
Hi,
I created custom color palette, (which was a copy of one of the out of the box ones) and uploaded it to the Themes folder under a different name. I then went to the Composed Looks and created a new Composed Look(using the New
Items), which the seattle master page, and the new color palette that I created.
When I go to Change a Look, the new Composed Look does not appear as part of the options.
When I change the color palette of the Composed Look, to one of the out of the box ones, I see it I the Change a Look page.
What am I doing wrong?
ThanksI would check two things. First, did you check in the spcolor file you created? Second, I would review all of the properties of your composed look found in "/_catalogs/design/AllItems.aspx". You might want to copy and paste all properties (except
title and name) and see if your new composed look shows up in "Change the look". Then link to your own custom spcolor file.
Eric Overfield - PixelMill -
blog.pixelmill.com/ericoverfield -
@EricOverfield
Maybe you are looking for
-
This problem occured with every type of downloader plug-in or extension. I also get a warning saying V.Protect encountered a problem & needs to close. This all happened when I updated to Firefox 10.0.2 for Yahoo UK & Ireland yahoogb 1.9
-
Network adapter not working, wireless button on Hp 655 AMD E1-1200 APU Remains orange
The Hp controller driver is not found n the system. The device details are: PCI\VEN_168C&DEV_0036&SUBSYS_18E3103C&REV_01PCI\VEN_168C&DEV_0036&SUBSYS_18E3103CPCI\VEN_168C&DEV_0036&CC_028000PCI\VEN_168C&DEV_0036&CC_0280 Please, link me to the driver fo
-
BT removing discount but not pre warning me-can th...
hi last yr, i was receving free eve and wkend calls as some sort of special discount i had with BT. unbeknown to me, this discount of 3.30 stopped end october and then BT started charging me for it..i didnt realise til i saw the bill for november by
-
How can I prevent spam with Safari?
Sometimes I get some spam on my iPad 2 using Safari. How can I prevent this?
-
Incremental RMAN Backup to tape.
Hi, We have 2.2 TByte Oracle Dataware House. At weekends, we would like to take inceremental level 0 backup to tape and then incemental level 1 to disk daily. So that we expect to reduce disk space for backup. We also handle the cover risk of direct