Search Unity

FastGUI - The perfect solution for GUI Placement form Photoshop to Unity3D | RELEASED

Discussion in 'Assets and Asset Store' started by badawe, Oct 26, 2012.

  1. EnergyStar

    EnergyStar

    Joined:
    Feb 22, 2013
    Posts:
    2
    In FastGUIExporter.jsx file...

    // open the file, write the data, then close the file
    csvFile.open('w');
    csvFile.writeln(str + "</psd>"); <---------------------- It's not working on Mac OS X sometimes... str has data. but file is empty...
    csvFile.close();
     
  2. Tsurugi

    Tsurugi

    Joined:
    Sep 21, 2012
    Posts:
    97
    Hi.. just got Fastgui and it was pretty cool going through the one tutorial in the manual but i have tons of questions to ask......

    can i still use the animation scripts for ngui.... if yes how? will i still need to put prefixes in photoshop?

    im currently working on a tdtk game and it will be targeting android devices and each device has its own resolution so my question is will the fastgui re-size
    on different device?
     
  3. atmuc

    atmuc

    Joined:
    Feb 28, 2011
    Posts:
    1,166
    can i use it with photoshop elements?
     
  4. negativecap

    negativecap

    Joined:
    Jan 27, 2013
    Posts:
    99
    What would be the easiest way to use multiple atlases with FastGUI? Thanks for the great program!
     
  5. Mickman

    Mickman

    Joined:
    May 9, 2012
    Posts:
    153
    HI,
    I use BMGlyph which creates fonts for NGUI. It creates fonts with gradients even textured fonts... will this be ok to use ?

    Does this mean I should place this font into demo/fonts into the Photoshop fonts folder before I start to create my buttons in photoshop ?

    hhmm.... ?
     
    Last edited: Mar 17, 2013
  6. CTRLconsole

    CTRLconsole

    Joined:
    Jan 9, 2013
    Posts:
    19
    9-sliced sprites?

    I can see in the manual you support 9-sliced sprites using the slc_ group name. But no examples! And since Photoshop doesn't do 9-sliced sprites, we're not sure what you intend as the workflow! We'd like to integrate them to improve the performance of our app, where FastGUI is a big part of our workflow, can you show us how to do it? Perhaps using the border in the FastGUI example?

    Also, we've run into errors with our fonts in the Unity import process (solved), but had to force quit Unity to get control back. Can you add an abort button that allows us to exit the process without having to force quite Unity?
     
    Last edited: Mar 19, 2013
  7. cjubb

    cjubb

    Joined:
    Dec 17, 2012
    Posts:
    7
    First a tip, then a question for badawe.

    If you are having Photoshop randomly crash when using FastGUI, run the script from ExtendScript Toolkit. I've been running it for weeks now using this method and don't have any crashes.


    I'm now having problems with using FastGUI with the latest Unity version - 4.1.
    It crashes in the NGUI atlas creation. I have successfully used the NGUI Atlas creator without FastGUI so it's not to blame.
    To reproduce it, create a photoshop file with at least two sprites in.

    I hope you can help. Thanks


    Here is the stack trace:

    MissingReferenceException: The object of type 'Texture2D' has been destroyed but you are still trying to access it.
    Your script should either check if it is null or you should not destroy the object.
    UIAtlasMaker.AddSprite (System.Collections.Generic.List`1 sprites, .SpriteEntry se) (at Assets/Editor/NGUI/UIAtlasMaker.cs:260)
    UIAtlasMaker.ReplaceSprites (.UIAtlas atlas, System.Collections.Generic.List`1 sprites) (at Assets/Editor/NGUI/UIAtlasMaker.cs:436)
    UIAtlasMaker.UpdateAtlas (.UIAtlas atlas, System.Collections.Generic.List`1 sprites) (at Assets/Editor/NGUI/UIAtlasMaker.cs:602)
    UIAtlasMaker.AddOrUpdate (.UIAtlas atlas, UnityEngine.Texture2D tex) (at Assets/Editor/NGUI/UIAtlasMaker.cs:631)
    FastGUIPostProcessing.CreateImageButton (.XMLNode pNode, .UIPanel pTargetRootPannel, UnityEngine.Transform pLastAnchor, System.String pLastAnchorPath) (at Assets/Editor/FastGUI/FastGUI/Unity/FastGUIPostProcessing.cs:710)
    FastGUI.ParseeTargetFolder () (at Assets/Editor/FastGUI/FastGUI/Unity/FastGUI.cs:256)
    FastGUI.OnGUI () (at Assets/Editor/FastGUI/FastGUI/Unity/FastGUI.cs:171)
     
  8. cjubb

    cjubb

    Joined:
    Dec 17, 2012
    Posts:
    7
    It seems to be a problem with this method call in UIAtlasMaker.cs:

    static void ExtractSprites (UIAtlas atlas, List<SpriteEntry> sprites)

    The 'sprites' list is passed in, and a new SpriteEntry is created with a new Texture2D and added to the 'sprites' list:

    sprite.tex = new Texture2D(newWidth, newHeight);
    ....
    sprites.Add(sprite);


    But then when the method returns and we're back in AddOrUpdate, the SpriteEntry is there but the 'tex' data member is now null :/
     
  9. twiesner

    twiesner

    Joined:
    Oct 4, 2011
    Posts:
    309
    What versions of Photoshop does this work with?
     
  10. lggmonclar

    lggmonclar

    Joined:
    Oct 17, 2012
    Posts:
    14
    Unfortunately, there is no support for sprite animations using FastGUI's exporter.

    Also, there is no way that we can make your interface resize itself simply using FastGUI. You can set this option manually by using NGUI's Root settings (Fixed Size on newer versions -- Automatic disabled for older versions of NGUI).

    "slc_" prefixes are imported into Unity as NGUI's Sliced Sprite component, and the dimensions for each slice are equally divided. If you wish to change the dimensions, you have to do so yourself through NGUI's atlas inspector.

    We'll look into a way of adding an "abort" button to cancel operations.

    We'll check this out, thanks.

    It has been tested with Photoshop CS4, CS5 and CS6, and it is working normally.
     
    Last edited: Mar 25, 2013
  11. Screenhog

    Screenhog

    Joined:
    Jul 2, 2009
    Posts:
    498
    When creating a GUI, whether it be your example in the tutorial or a simple one created myself, the placement of objects is incorrect. Objects that are touching in the Photoshop file are spaced apart in Unity. Your solution mentioned checking if the images are larger than the canvas size, but they are not. Do you have any other suggestions?

    Windows 7 64-bit
    Photoshop CS5 Extended

    EDIT: I've found a way to make it work properly... making the Photoshop canvas height the same dimensions as the width. That makes it look perfect (although it's obviously not a good fix since most UIs are not square). Does that help to diagnose it?
     
    Last edited: Mar 27, 2013
  12. twiesner

    twiesner

    Joined:
    Oct 4, 2011
    Posts:
    309
    NullReferenceException: Object reference not set to an instance of an object
    FastGUIPostProcessing.CreateImageButton (.XMLNode pNode, .UIPanel pTargetRootPannel, UnityEngine.Transform pLastAnchor, System.String pLastAnchorPath) (at Assets/Editor/FastGUI/Unity/FastGUIPostProcessing.cs:682)
    FastGUIPostProcessing.CreateImageButton (.XMLNode pNode, .UIPanel pTargetRootPannel, UnityEngine.Transform pLastAnchor, System.String pLastAnchorPath) (at Assets/Editor/FastGUI/Unity/FastGUIPostProcessing.cs:655)
    FastGUI.ParseeTargetFolder () (at Assets/Editor/FastGUI/Unity/FastGUI.cs:228 )
    FastGUI.OnGUI () (at Assets/Editor/FastGUI/Unity/FastGUI.cs:157)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Applications/buildAgent/work/b59ae78cff80e584/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)


    I get half of it imported before it gives me this error. Any clues on what I need to change?
     
  13. lggmonclar

    lggmonclar

    Joined:
    Oct 17, 2012
    Posts:
    14
    What Unity version are you using?

    Also, make sure your UIRoot is fixed size (or not automatic, depending on your NGUI version).
     
  14. lggmonclar

    lggmonclar

    Joined:
    Oct 17, 2012
    Posts:
    14
    Could you send an image of your ibtn_ folder? Off the top of my head, I suspect this error may be related to button states (this is being fixed) OR one of your layers or layer folders has special characters, which is not allowed.
     
  15. twiesner

    twiesner

    Joined:
    Oct 4, 2011
    Posts:
    309
    Got it to work. Resized the Photoshop canvas to be the resolution I am working with in Unity and it imported without problems. Only downside to that is now I have a lot of wasted space in the atlas.
     
  16. Screenhog

    Screenhog

    Joined:
    Jul 2, 2009
    Posts:
    498
    Thanks, lggmonclar, that fixed it!

    I've taken FastGUI through more extensive testing today, and intend to write a Unity Asset Store review soon. My general feeling is that it's an absolutely wonderful tool for creating the NGUI atlases, and is decent (but not perfect) for creating the actual layouts in the game.

    I have a few questions:

    1. How does clip_ and clipping-area work? The details in the documentation were vague, and I didn't see it being used.
    2. Why isn't the slider background a sliced sprite instead of a regular sprite?
    3. Can vertical sliders be created, or just horizontal?

    Also, some bug reports:

    1. Sometimes the "FastGUI It!" button will stop right at the beginning of the process with a NullReferenceException error. Fortunately, it's only the process that crashes, not Unity, so you just have to shut down the FastGUI window, reopen it, and try again.
    2. When exporting a new version of the UIAtlas, 9-sliced sprite information for the slices is reset. If I had previously set the 9-slice scaling to be exactly where I needed it to be, and then reimported it, the 9-sliced info would be back to its original default of dividing the sprite into 9 equal portions.
    3. For checkboxes, it seems to be assumed that the checkmark will be exactly in the center of the checkbox. This is frequently not the case.
    4. Last (but certainly not least), when the new GUI is created within the Panel, it's assumed that it should be on the Default layer (Layer 0) in Unity. However, I frequently put my UI Root and all children on its own layer instead. It would be far more convenient if the new UI would set its layer to the layer of the parent Panel.

    Overall, though, the utility is great! Well worth the Asset Store purchase, now that I've seen its quirks.
     
  17. TechnicianStudios

    TechnicianStudios

    Joined:
    Aug 6, 2012
    Posts:
    60
    so this plug in allows me to make my GUI in Photoshop and import it into unity, but this plug in will add all the code i need tot he art i have made?
     
  18. lggmonclar

    lggmonclar

    Joined:
    Oct 17, 2012
    Posts:
    14
    No, there is no way that FastGUI can predict what you wish to do with your interface. It only handles widget creation and positioning as it reads from Photoshop layers.

    Meaning, you still have to code your interface yourself.
     
  19. tomhog

    tomhog

    Joined:
    Dec 22, 2012
    Posts:
    36
    Hi

    Just purchased Fast GUI, seems like it will do what I need, but I keep running into bugs.

    I'm using unity 4.1, PhotoShop CS6

    First bug is with photoshop, you get a crash in the plugin if the text uses pure black.

    Then when doing the conversion in Unity i keep getting crashes related to Textures being released/destroyed

    One was in
    static void ExtractSprites (UIAtlas atlas, List<SpriteEntry> sprites)

    Changed to look like this

    foreach (SpriteEntry se in sprites)
    {
    if(se.tex != null){
    if (asp.name == se.tex.name)

    That fixed that, then did a new test today and I'm now getting error in

    static UIAtlas.Sprite AddSprite (List<UIAtlas.Sprite> sprites, SpriteEntry se)

    First fix was similar thing

    foreach (UIAtlas.Sprite sp in sprites)
    {
    if(se.tex != null) {
    if (sp.name == se.tex.name)

    but then get a crash at

    else
    {
    sprite = new UIAtlas.Sprite();
    sprite.name = se.tex.name;

    around line 287 ish

    Not sure what to do with this one as not sure what name to use if the texture is gone.

    If I could get some help it would be appreciated, otherwise I'm stuck.
    too long fixing it.

    Thanks
    Tom
     
  20. ibps13

    ibps13

    Joined:
    Oct 6, 2012
    Posts:
    113
    Hi,

    I have same problem with unity 4.1.2 and FastGUI 1.2 ( NGUI 2.5.1)

    No problem for export PSD but import always wrong crashes related to Textures being released/destroyed

    Thanks

    EDIT:

    I'have tested with unity 3.5.6 and works fine... but I need to use with last unity version

    thx
     
    Last edited: Apr 9, 2013
  21. Tsurugi

    Tsurugi

    Joined:
    Sep 21, 2012
    Posts:
    97
    hi... i have to same problem as twiesner.... i tried to resize the file in photoshop but it didnt work....
    i read one of your post and it said something to do with the ibtn_ well here is the pic
    $Captudre.JPG
     
  22. tomhog

    tomhog

    Joined:
    Dec 22, 2012
    Posts:
    36
    Bump, still no reply on this issue (Textures being released in 4.1), will be looking for a refund if it is not resolved soon.
    Poster below has the same issue so its not a problem my end.
     
  23. NikolaiS

    NikolaiS

    Joined:
    Dec 28, 2012
    Posts:
    9
    Encountered the same issue after upgrading to Unity 4.1.0f4. I managed to fix the issue by modifying the line 260 at UIAtlasMaker.cs. Replace the following string:

    if (sp.name == se.tex.name)

    with this one:

    if ((se.tex)(sp.name == se.tex.name)) //checks whether Texture2D object is not null

    Not sure this does not break something else. However, I managed to successfully import my images I previously exported from PSD via FastGUIExporter script (exported as sprites, not widgets).
     
  24. badawe

    badawe

    Joined:
    Jan 17, 2011
    Posts:
    297

    The last Unity bring some bugs to FastGUI we are fully working to make a new update solving this issues, sorry about the late answers!

    The solution @NikolaiS solve these issues! If anyone have anything else, please let me know.
     
  25. yangster

    yangster

    Joined:
    Apr 19, 2013
    Posts:
    2
    Do you have an estimate on when the new update will be out? We are trying to balance between fixing FASTGUI ourselves, using sprites only export mode, or using a different approach entirely.
     
  26. rdamon2

    rdamon2

    Joined:
    Apr 18, 2013
    Posts:
    1
    Hi,

    Is there a Trial or Demo version for FastGUI ?

    I am doing some test and proof of concept of how I am gonna make UI in Unity.
    I am using the trial version of NGUI and whished also to give a try to the Fast CGI approach.

    Thanks in advance!
    Reg
     
  27. Tim Toxopeus

    Tim Toxopeus

    Joined:
    Mar 18, 2013
    Posts:
    7
    Hello,

    We purchased FastGUI a couple of days ago, and when it works it works very nicely, however, we are having some issues with it.

    First, exporting from photoshop CS 5.1 seems to work occasionally, and it crashes a lot of the times other times. Some of our PSDs do not export until we greatly reduce the amount of elements in it, like, from 15-20 elements to 5. It's almost gotten to the point where we are manually designing GUIs in code again. Any idea why the export script would crash so often?

    Secondly, importing into Unity had a lot of issues. It would occasionally crash, leaving the importing progress bar floating in the screen and requiring a Unity restart to remove. I fixed this by adding a try-catch to the import script, but I figured you'd like to know.

    Also, atlasses aren't being built correctly, according to the NGUI documentation every time you adjust the atlas, you have to save the scene. Your import script doesn't do this, so the imports almost always failed on my computer until I added EditorApplication.SaveScene(); after every UIAtlasMaker.AddOrUpdate(NGUISettings.atlas, tTexture);

    The import script I have right now is working alright, but our export issues are becoming a real problem now. Do you have any ideas what could be going wrong? I am not too familiar with photoshop scripting, so debugging it is a bit of an unknown to me.

    Regards,

    Tim Toxopeus
    Triangle Studios
     
  28. wangzy_88

    wangzy_88

    Joined:
    Sep 12, 2012
    Posts:
    14
    I just need generate one font when use the same font in different style?
     
  29. Tim Toxopeus

    Tim Toxopeus

    Joined:
    Mar 18, 2013
    Posts:
    7
    Aha, I have figured out a way to get around the crash issues. When you open the script through the Adobe ExtendScript Toolkit program, and start Photoshop through that, then play the script from the toolkit program it will not crash.

    At least we can work now. :) Any idea what could be causing this issue?
     
  30. paraself

    paraself

    Joined:
    Jun 30, 2012
    Posts:
    139
    Hiiii It's a awesome tool, but some of the workflow in Photoshop is not clear.
    Doest it support Layer Style or does the Extendscript plugin rasterize layer during exporting ?
    Will the layer hierarchy and top-down relationship be translated into NGUI's depth hierarchy?
    Thanks for answering
     
  31. badawe

    badawe

    Joined:
    Jan 17, 2011
    Posts:
    297
    Actually there is no trial version, because i can't figure how do a FastGUI with less features, but drop me a email at bruno@monsterjuice.com.br and lets talk about something

    WE just submitted a new version of FastGUI with many issues fixed, and compatibility with the NGUI 2.5.1 this can solve many issues, about the Photoshop export, the script is really heavy, the best way to use it, is Use with the Extended Script ToolKit this make everything better, and come with Photoshop.

    Try use this, and let me know if you have any problems.


    Sadly yes, the Bitmap font is only for one type/style of font.


    The problem is, the script is really heavy, we spend a lot time trying to improving this process in photoshop, but we can't figure out yet, by now use with ExtendScript Toolkit.

    Yes the layer need to be rasterized.
    The hierarchy for ngui is exactly the same as photoshop. Top-Down -> Depth
     
  32. Hays

    Hays

    Joined:
    Mar 5, 2013
    Posts:
    19
    every time, compile whole scripts, this issue just gone. but when you 2rd time use FastGUI, it crashes again.
    so, you should reimport FastGUI after you use it, that avoid crashes.

    I think the author will figure it out

    well, another situation I found is when you process 2rd time, some widgets go the wrong position.

    and I got a question, how can two image buttons share the same skin?
     
    Last edited: Apr 26, 2013
  33. xKroniK13x

    xKroniK13x

    Joined:
    Jun 19, 2012
    Posts:
    164
    Did this and still am getting a missing reference error... really need this asset to be working, could we please get some sort of update?
     
  34. Deleted User

    Deleted User

    Guest

    I bought this and followed the demo exactly and on the very last part of "FASTGUI IT" it doesn't work. It randomly stops at 3/20 or 7/20 and never finishes and the interface never goes into the game fully or at all.

    Using latest version of Unity Pro and NGUI.
     
  35. Deleted User

    Deleted User

    Guest

    Has anyone experienced this god forsaken error making it impossible to FASTGUI anything?

    MissingReferenceException: The object of type 'Texture2D' has been destroyed but you are still trying to access it.
    Your script should either check if it is null or you should not destroy the object.
    UIAtlasMaker.AddSprite (System.Collections.Generic.List`1 sprites, .SpriteEntry se) (at Assets/NGUI/Scripts/Editor/UIAtlasMaker.cs:260)
    UIAtlasMaker.ReplaceSprites (.UIAtlas atlas, System.Collections.Generic.List`1 sprites) (at Assets/NGUI/Scripts/Editor/UIAtlasMaker.cs:436)
    UIAtlasMaker.UpdateAtlas (.UIAtlas atlas, System.Collections.Generic.List`1 sprites) (at Assets/NGUI/Scripts/Editor/UIAtlasMaker.cs:602)
    UIAtlasMaker.AddOrUpdate (.UIAtlas atlas, UnityEngine.Texture2D tex) (at Assets/NGUI/Scripts/Editor/UIAtlasMaker.cs:631)
    FastGUIPostProcessing.CreateCheckBox (.XMLNode pNode, .UIPanel pTargetRootPannel, UnityEngine.Transform pLastAnchor, System.String pLastAnchorPath) (at Assets/FastGUI/Editor/FastGUI/Unity/FastGUIPostProcessing.cs:316)
    FastGUI.ParseeTargetFolder () (at Assets/FastGUI/Editor/FastGUI/Unity/FastGUI.cs:252)
    FastGUI.OnGUI () (at Assets/FastGUI/Editor/FastGUI/Unity/FastGUI.cs:157)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Applications/buildAgent/work/b59ae78cff80e584/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
     
  36. Doddler

    Doddler

    Joined:
    Jul 12, 2011
    Posts:
    269
    I'm running the same issues, just a multitude of errors when importing. Closing/restarting unity sometimes fixes it, but it still usually fails importing all the layers/objects.
     
  37. lggmonclar

    lggmonclar

    Joined:
    Oct 17, 2012
    Posts:
    14
    Hey guys, just letting you know that we're updating FastGUI to fix all these issues that have been appearing since Unity 4.1.

    The update should be up in the asset store very soon!

    Thank you for your patience and reports.
     
  38. Deleted User

    Deleted User

    Guest

    works fine now :) thanks!
     
  39. xKroniK13x

    xKroniK13x

    Joined:
    Jun 19, 2012
    Posts:
    164
    Updated it and still same error...
     
  40. Deleted User

    Deleted User

    Guest

    The dynamic fonts are missing in my export :I

     
    Last edited by a moderator: May 7, 2013
  41. Doddler

    Doddler

    Joined:
    Jul 12, 2011
    Posts:
    269
    I have updated to the new version, but I still receive errors when attempting to "FastGUI It!". The error I get is as follows:

     
  42. xKroniK13x

    xKroniK13x

    Joined:
    Jun 19, 2012
    Posts:
    164
    Same here, identical.
     
  43. Doddler

    Doddler

    Joined:
    Jul 12, 2011
    Posts:
    269
    Ok I figured it out. If any element is empty in the export from photoshop (like the group in photoshop had only hidden layers), FastGUI will crash. I had an ibtn_ group with a pressed group that existed, but the layers inside the group were hidden, It exported a completely transparent object for that layer, but when importing it would outright crash. You can avoid the error simply by making sure every element has some kind of texture, but in the future it would be better if FastGUI handled this situation a little more gracefully.

    Edit: Or it did, until I updated NGUI... now it's dead again. :/
     
    Last edited: May 7, 2013
  44. xKroniK13x

    xKroniK13x

    Joined:
    Jun 19, 2012
    Posts:
    164
    Lol, that's what happened to me too! I thought I had it all figured out and then I updated NGUI and it got this error again!
     
  45. xKroniK13x

    xKroniK13x

    Joined:
    Jun 19, 2012
    Posts:
    164
    Any estimate of when this could be updated? I saw OP online earlier, would love some input. Something we're doing wrong? Something we can try? My project is a sitting duck right now because I can't export as I anticipated... very disappointing.
     
  46. merlin981

    merlin981

    Joined:
    Apr 16, 2012
    Posts:
    305
    Can you "clean up" your PSDs for the export? Duplicate the non-hidden layers/groups over to a new PSD, and export that?

    Also, one thing I've noticed that can cause FastGUI to crash is if your groups are not "organized". You need to keep all the "ibtn_" groups together. Example:
    This crashes:
    • ibtn_Button1
    • pgsb_Progress1
    • ibtn_Button2
    • txt_SomeText
    • pgsb_Progress2
    • ibtn_Button3

    This works:
    • ibtn_Button1
    • ibtn_Button2
    • ibtn_Button3
    • txt_SomeText
    • pgsb_Progress1
    • pgsb_Progress2
     
    Last edited: May 10, 2013
  47. xKroniK13x

    xKroniK13x

    Joined:
    Jun 19, 2012
    Posts:
    164
    I just tried doing this and it actually crashed before it did normally :eek: There's no invisible layers, everything is according to the documentation, I organized it like you suggested... I just don't get it.
     
  48. merlin981

    merlin981

    Joined:
    Apr 16, 2012
    Posts:
    305
    Can you PM me the PSD? I can take a quick look, maybe I can see something you missed.
     
  49. lggmonclar

    lggmonclar

    Joined:
    Oct 17, 2012
    Posts:
    14
    Hey everyone,

    We're taking a look in what's going on with the compatibility of FastGUI with the latest versions of Unity and NGUI. We'll get you an answer as soon as possible.
     
  50. xKroniK13x

    xKroniK13x

    Joined:
    Jun 19, 2012
    Posts:
    164
    After following Merlin's instructions, I did get one successful import, but now this is not even coming close. I barely changed a thing, simply added another sprite (ThemeBG). Getting the texture has been destroyed error. I'm at a complete loss, I have no clue whats going on.

    $NotWorking.png
    All of my ibtns are set up in the same way as the first one, and everything else is expanded so you can see my exact layout...