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: NONE

    According 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,"&amp;");
            str=str.replace(/</g,"&lt;");
            str=str.replace(/>/g,"&gt;");
            str=str.replace(/'/g,"&apos;");
            str=str.replace(/"/g,"&quot;");
            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, el

    Thank 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
    Tony

    Hi 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-cc

    Check 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.
    a

    I 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 Heilman

    Hi 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
    Silvan

    Carola,
    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
    Carola

    Carola,
    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?
    Thanks

    In 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?
    Thanks

    I 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