How to make a private chat look in another window

hi
   iam new to flex
and now what my question is when i double click on the particular user present in the chat room
i should get chat open in new window
is this possible please help out in this issue

hi
   thanks for urs replys its helping a lot
and now i wnt some information from u abt private chat
see wt my doubt is iam getting user name and uid when i click on the user in the userlist with that iam creating an instance to the class "ChatMessageDescriptor" and with that iam sending msgs to the user clicked by the property recipient
and iam initiating that private chat in seperate label privatechat space and now wt the problem is when i click on the username
for example iam the user A and i clicked on user B the window gets open for userA and user A can send msgs to user B directly
but where as in place of User B the window doesnot get open,  only when he clicks on User A  he is able to send msgs to User A and he can chat w User A directly from there on words
so wt i want is how to intiate him that chat is open with User A  so click him in the userlist  or directly open him a window as soon as User A clicks
User B is this possible plz refer my code u will get clearly understood the problem
<?xml version="1.0" encoding="utf-8"?>
<mx:Application layout="absolute"
    xmlns:mx="http://www.adobe.com/2006/mxml"
    applicationComplete="init()"
    xmlns:rtc="AfcsNameSpace">
    <mx:Script>
        <![CDATA[
            import com.adobe.rtc.pods.simpleChatClasses.ChatMessageDescriptor;
            import com.adobe.coreUI.controls.WhiteBoard;
            import com.adobe.rtc.sharedModel.SharedCollection;
            import com.adobe.rtc.sharedManagers.UserManager;
            import com.adobe.rtc.sharedManagers.descriptors.UserDescriptor;
            import mx.controls.listClasses.IListItemRenderer;
            import mx.controls.listClasses.ListBaseSelectionData;
            import mx.collections.IList;
            import mx.events.ItemClickEvent;
            import mx.controls.Alert;
            import com.adobe.rtc.events.AuthenticationEvent;
            import com.adobe.rtc.events.ConnectSessionEvent;
            import com.adobe.rtc.events.SessionEvent;
            import mx.core.IFlexDisplayObject;
            import mx.managers.PopUpManager;
            import flash.net.*;
            import mx.collections.ArrayCollection;
            import com.adobe.rtc.pods.simpleChatClasses.SimpleChatModel;
            import com.adobe.rtc.events.ChatEvent;
            private const applicationTitle:String = "AFCS Sample Application";
              [Bindable]
       public var chatModel:SimpleChatModel;
       public var clickeduser:UserDescriptor = new UserDescriptor;
         public var userwnt:String=new String;
          public var clickusername:String=new String;
           public var selindex:int;
           public var count:int;
            private function init():void
                sess.addEventListener(SessionEvent.ERROR, onEventNotification);
                sess.addEventListener(SessionEvent.SYNCHRONIZATION_CHANGE, onEventNotification);
                auth.addEventListener(AuthenticationEvent.AUTHENTICATION_FAILURE, onEventNotification);
                auth.addEventListener(AuthenticationEvent.AUTHENTICATION_SUCCESS, onEventNotification);
                popup(loginWindow);
            private function popup(window:IFlexDisplayObject):void
                PopUpManager.addPopUp(window, this, true);
                PopUpManager.centerPopUp(window);
                window.visible = true;
             * Process AFCS Events
            private function onEventNotification(p_event:Event):void
                if (p_event.type == SessionEvent.SYNCHRONIZATION_CHANGE) {
                    if (sess.isSynchronized) {
                        // isSyncronized==true : we are connected to the room
                        panel.title = "Connected to room " + sess.roomURL;
                        PopUpManager.removePopUp(loginWindow);
                    } else {
                        // isSyncronized==false : we are disconnected from the room
                        panel.title = applicationTitle;
                        sess.roomURL = null;
                        notificationMessage.text = "";
                        popup(loginWindow);
                else if (p_event.type == AuthenticationEvent.AUTHENTICATION_SUCCESS) {
                    // Authentication succeeded
                    notificationMessage.text = "Authentication Succeeded";
                else if (p_event.type == AuthenticationEvent.AUTHENTICATION_FAILURE) {
                    // Authentication failed : bad password or invalid username
                    notificationMessage.text = "Authentication Failed";
                else if (p_event.type == SessionEvent.ERROR) {
                    // Generic session error, but this can happen if you mispell the account/room names
                    // (sError.error.name == "INVALID_INSTANCE" and sError.error.message == "Invalid Instance")
                    var sError:SessionEvent = p_event as SessionEvent;
                    notificationMessage.text = sError.error.message;
                else
                    notificationMessage.text = "Got event " + p_event;
            private function login():void
                notificationMessage.text = "";
                auth.userName = username.text;
                auth.password = passwordBox.visible ? password.text : null; // password==null : the user is a guest
                 userwnt=username.text;
                sess.roomURL = roomURL.text;       
                sess.login();
            protected function buildModel():void
                // Create the model: just calling the constructor won't create the collection node or pass the messages.
                // Call subscribe and give it a shared ID while creating the model.
                // The shared ID becomes the name of the collection node.
                  if(clickusername==userwnt)
                     Alert.show(clickusername);
                     viewStack.selectedChild=white;
                chatModel = new SimpleChatModel();
                chatModel.sharedID = "myChat_SimpleChatModel";                               
                chatModel.subscribe();                       
                chatModel.addEventListener(ChatEvent.HISTORY_CHANGE, onChatMsg);
                this.addEventListener(KeyboardEvent.KEY_UP, onKeyStroke);
             public var cmd:ChatMessageDescriptor = new ChatMessageDescriptor();
            public function userclick(bharath):void
                count=0;     
                selindex=bharath;
                clickeduser= sess.userManager.userCollection[bharath] as UserDescriptor;
                var orignaluser:UserDescriptor = sess.userManager.userCollection[0] as UserDescriptor;
                var username=orignaluser.displayName;
                clickusername=clickeduser.displayName;  
                cmd= new ChatMessageDescriptor();           
                cmd.recipient=clickeduser.userID;
                cmd.recipientDisplayName=clickusername;
                cmd.msg="hi";               
                viewStack.selectedChild=white;
                  buildModel();                
                chatModel.sendMessage(cmd);                                  
                protected function clearChat():void
                chat_mesg_area.text = "";
                chatModel.clear();
            protected function submitChat(str:String):void
             if(count==0)
             clearChat();
             count=1;
            var clickeduser:UserDescriptor = sess.userManager.userCollection[selindex] as UserDescriptor;
            var clickusername=clickeduser.displayName;  
             cmd= new ChatMessageDescriptor();           
                cmd.recipient=clickeduser.userID;
                cmd.recipientDisplayName=clickusername;
                cmd.msg=chat_mesg_input.text;                 
                chatModel.sendMessage(cmd);
                chat_mesg_input.text = "";               
            protected function onChatMsg(p_evt:ChatEvent):void
                if(p_evt.message != null && p_evt.message.msg != null && p_evt.message.displayName != null)
                    chat_mesg_area.text += "\r\n" +  p_evt.message.displayName + ": " + p_evt.message.msg;
                else
                    chat_mesg_area.text = "";   
            protected function onKeyStroke(p_evt:KeyboardEvent):void
                if(p_evt.keyCode == Keyboard.ENTER) {
                    submitChat(chat_mesg_input.text);
        ]]>
    </mx:Script>       
    <rtc:AdobeHSAuthenticator id="auth"/>       
    <rtc:RoomSettings id="settings" autoPromote="true"/>
    <mx:Panel id="panel" title="{applicationTitle}" width="100%" height="100%" paddingLeft="5" paddingTop="5" paddingRight="5" paddingBottom="5">
        <!--
         | Login Dialog Box
         -->
        <mx:TitleWindow id="loginWindow" title="Connect to Room" visible="false">
            <mx:VBox>
                <mx:HBox>
                    <mx:Label text="Room URL:" width="70"/>
                    <mx:TextInput id="roomURL" width="295" tabIndex="1">
                        <mx:text>http://connect.acrobat.com/exampleURL/exampleroom</mx:text>
                    </mx:TextInput>
                </mx:HBox>
                <mx:HBox>
                    <mx:Label text="Username:" width="70"/>
                    <mx:TextInput id="username" tabIndex="2">
                        <mx:text>guest</mx:text>
                    </mx:TextInput>           
                    <mx:Button label="Login" click="login()" width="126" tabIndex="4"/>
                </mx:HBox>
                <mx:HBox>
                    <mx:HBox id="passwordBox">
                    <mx:Label text="Password:" width="70"/>
                    <mx:TextInput id="password" displayAsPassword="true" tabIndex="3"/>
                    </mx:HBox>
                    <mx:RadioButton label="User" selected="true" click="passwordBox.visible = true"/>
                    <mx:RadioButton label="Guest" click="passwordBox.visible = false"/>
                </mx:HBox>
                <mx:Text id="notificationMessage" text=""/>
            </mx:VBox>
        </mx:TitleWindow>
        <!--
         | AFCS application UI wrapped in ConnectSession
         -->       
        <rtc:ConnectSessionContainer
            id="sess"
            authenticator="{auth}"
            initialRoomSettings="{settings}"
            autoLogin="false" width="100%" height="100%" >       
            <mx:HBox width="100%" height="100%" horizontalGap="0">
                <mx:VBox>
                    <mx:TabBar dataProvider="viewStack" direction="vertical" width="100" verticalGap="0"/>
                    <!--mx:Button label="Disconnect" click="sess.close()"/-->
                </mx:VBox>
                <mx:ViewStack id="viewStack" width="100%" height="100%" borderSides="left top right bottom" borderStyle="solid" borderThickness="2">
                    <!--
                     | Chat pod and roster
                     -->
                    <mx:HBox label="Chat" width="100%" height="100%">
                        <rtc:SimpleChat width="40%" height="100%"/>
                        <rtc:WebCamera left="0" right="0" top="0" bottom="0" width="40%" height="100%"/>
                        <mx:List alternatingItemColors="[#DFDFDF,#EEEEEE]" dataProvider="{sess.userManager.userCollection}" width="10%" height="100%" labelField="displayName" id="abc" click="userclick(abc.selectedIndex)"/>
                    </mx:HBox>
                    <mx:Canvas id="white" label="privatechat" width="100%" height="100%" creationComplete="buildModel()">
                     <mx:VBox id="chatBox">
                <rtc:WebCamera id="webcam" width="400" height="223"/>
                <mx:TextArea width="398" height="140" id="chat_mesg_area"/>
                <mx:HBox>
                </mx:HBox>                               
            </mx:VBox>
            <mx:TextInput width="400" id="chat_mesg_input" y="370"/>
            <mx:Button label="Submit Chat" click="submitChat(chat_mesg_input.text)" y="398"/>
            </mx:Canvas>
                    <!--
                     | Fileshare pod
                     -->
                    <mx:Canvas label="FileShare" width="100%" height="100%">
                        <rtc:FileShare left="0" right="0" top="0" bottom="0"/>
                    </mx:Canvas>
                </mx:ViewStack>
            </mx:HBox>
        </rtc:ConnectSessionContainer>
    </mx:Panel>
</mx:Application>

Similar Messages

  • Can someone tell me how to make the letters that look like fabric?

    Can someone tell me how to make the letters that look like fabric?

    pharrout wrote:
    Can someone tell me how to make the letters that look like fabric?
    It could be as simple as clipping an image of the fabric of your choice, to a text layer.
    In this example the Hessian texture was downloaded from Google images, and placed over a Type layer.  You then Alt (Opt) click the intersection of the Type and Hessian layer to clip them together.  This just means that only the shape of the underlying layer will show in the clipped layer.

  • How long does my private chat/message convertation...

    How long does my private chat/message convertation last in skype? I can't find back one convertation from januar-feb 2015 and some from 2014. Do skype delete my message if i don't write for a while?
    This post was transferred from its previous location to create its own new topic here; its subject and/or title has been edited from "Skype messages" to differentiate the post from other inquiries and to reflect the post's content.

    thanks for the reply, how ever ive already contacted itunes support and they didnt say any thing about why my ID was disabled. So now what go directly to Tim cook an have this problem resolved ? P.S your user name is great

  • HT2492 How do I use the calculator widget in another window?

    How do I use the calculator widget in another window?  For ex: if I want to move the calculator to a window that shows prices of products on a web page.  I used to be able to click on the calculator and use it in another window, before I upgraded to OSX. What am i doing wrong?

    I think you have to bring it back up in widgets in a new window, you can set up a hot corner to make tis qciker

  • How to make embedded HTML form look normal?

    Hello,
    In Muse, if I Insert HTML code with:
    <form action="action_page.php">
    First name:<br>
    <input type="text" name="firstname" value="Mickey">
    <br>
    Last name:<br>
    <input type="text" name="lastname" value="Mouse">
    <br><br>
    <input type="submit" value="Submit">
    </form>
    …the form is displayed in my Muse page.  However, it doesn't look normal, meaning:
    - The text fields have no border and appear to be invisible until you start typing in them.
    - The Submit button size is minimal, wrapping tightly around the text, and there is no border or bevel.
    * I have experimented with specifying an HTML border and width in the above code, with no change in results.
    Basically, this HTML code looks normal in a regular .html page.  However, in a Muse page (with Insert HTML), the visual appearance of the form elements looks abnormal… stripped-down.
    Can anyone suggest a way to add HTML form content and make it look correct?  I don't want to use the Muse Form Widgets, because they all "require" the email field, and I don't want that capability.  Thanks for any suggestions.

    I answered my own problem.
    It seems that the solution is having knowledge of CSS, which I don't.  That's what Muse is supposed to provide, and I'm not a CSS expert.
    At http://www.ronpershing.com/blog/how-to-make-a-custom-contact-form-in-adobe-muse/ , Ron Pershing gives some very simple code on making it all work with Muse.  I'm not affiliated with him or his website, but since he was kind enough to publish a solution, his work should get some attention.

  • How to make A JButton not look disabled when it is  setEnabled(false);

    how do i make a jbutton not look disabled when i setEnabled(false) because when u disabled abutton it changes and takes away the frame of the button it self..is there a way to make it make a sound when its disabled and not take the frame away...example look at windows calculator when u have an answer for example 2 + 2 when the answer is displayed if u try to click the backspacebutton at this point it makes a sound..is this possible in java thanks

    Why did you repost this question??????
    You where given an answer in the other posting. You have not explained why the solution won't work and you haven't provided any further information about your question.
    You also haven't listened to the other advice, you just reposted the question word for word.

  • How to make a person eye look bigger or smaller?

    How to make a person's eye look bigger or smaller?  Can guide me step by step?  Thank you.

    I never said to do them both at once. Yes, I have seen it done and have done it myself.....
    Of course this is a very quick and un-detailed example, it needs quite a bit of refinement. Techniques will vary from image to image as well. What works for one may not work for another example.
    Benjamin

  • How to make fonts in firefox look prettier? For example like in sleipnir

    Hello,
    I wonder if there is a way to make fonts in firefox look smooth and easy to read?
    I've tried using Sleinpir browser (http://www.fenrir-inc.com/us/sleipnir/) which has aimed to provide smooth and readable text and almost every piece of text looks just better and more pleasant to read.
    I've tried almost every setting both in Options dialog and in about:config (under gfx.font filter).
    Enabling rendering via directwrite helped a lot, but it's still nothing compared to Sleipnir.
    Here are some screenshots:
    Default firefox - http://s5.postimg.org/8ifmq7u7p/ff_default.png
    Firefox with directwrite enabled - http://s5.postimg.org/k15xb3c1h/ff_directdraw.png
    Sleipnir - http://s5.postimg.org/5w049a305/sleipnir_default.png
    So is there a way to make fonts look this pretty in firefox? Is there any iniciative to make FF capable of such thing?
    Thanks a lot
    (EDIT: I've even tried instaling gdi++ https://code.google.com/p/gdipp/ alternative renderer for windows, but it doesn't seem to make any change in firefox)

    Hi stmr,
    I am glad to hear that you are looking to contact FF developers to make an add on. For more information on this mdn has developers answering questions in stackoverflow.com
    There is also documentation
    *[https://developer.mozilla.org/en-US/docs/Developing_add-ons MDN Developing Add ons]
    *[https://developer.mozilla.org/en-US/docs/Mozilla/MathML_Project/Fonts Math ML Fonts]
    *[https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth CSS font-smooth]
    If you have not already, please mark this thread as solved by marking the solution.<br>
    I hope you continue using our products and thank you for contacting Mozilla Support.

  • How to make yahoo mail the default email in Windows 7

    Mozilla Firefox is my default browser. How can I make yahoo mail my default email in Windows 7

    so I am going to accept this truth.
    Thank you,
    Alex
    Am 29.08.2010 um 14:37 schrieb Murray ACP:
    No.  That's a browser-specific function.  In fact, it's much better 
    to make the scrollbar visible on ALL pages than it is to try to hide 
    them on some pages.  You can make the scrollbar always visible 
    (thereby preventing the content on longer pages from shifting left 
    when the scrollbar appears) with this simple CSS -
    >
    html { overflow-y:scroll; }
    >

  • How to make the Printer deskjet 3940 compatible with Windows 7, home basic, 32 bits?

    I have HP Deskjet 3940 Printer. I recently purchased a Lenovo desktop( C320, 57-302429) which has Windows 7,home basic,32 bits operating system. The said printer does not work with the above computer. Please guide how to make this printer compatible with the above operating system.
    This question was solved.
    View Solution.

    1. Click the Start button, click Control Panel and double click Devices and Printers.
    2. Click Add a Printer.
    3. Select Add a local printer.
    4. Choose an existing USBx Local port, click Next.
    5. Click the Windows Update button.
    6. After the update finishes, search for the 3940 driver.
    7. click Next,Next,Next,Next,Finish
    Please mark the post that solves your issue as "Accept as Solution".
    If my answer was helpful click the “Thumbs Up" on the left to say “Thanks”!
    I am not a HP employee.

  • How do I prevent a website from opening another window

    A couple of websites I occasionally visit open up a second window to a spam website. I have put an entry in my Hosts file to prevent Firefox from connecting to the spam websites, so the second window is empty. However, it's still a little annoying.
    I have pop-up blocking turned on. Is there anyway to completely block the opening of the second window?
    If not, why not?

    Thank you for taking the time to reply. I really do appreciate it.
    Unfortunately, the link you posted tells me exactly nothing. My question is "How do I prevent a website from opening unwanted windows". These are full Firefox windows, just like you would get if you right clicked on a link and selected "open in a new window".
    There are only two possible answers:
    (A) To block unwanted windows, do this ________ (insert answer)
    or
    (B) It's not possible.
    If the answer is (B) then the follow-up question is -- Why Not?

  • How to make a handwriting font look like real handwriting in InDesign CS5

    This is a script I've written (AppleScript) that addresses the  problem most handwriting fonts have — they look like fonts, mostly  because they're settled so regularly along the baseline and their glyphs  are so uniform.
    It began as a way for me to address a  need for a project I was working on, something designed to look like a  scrapbook. I was using the "Journal" typeface designed by Fontourist  (http://www.dafont.com/journal.font), which gave me a good balance of  readability and organic feel, but of course it had the same issues as  all other fonts of its ilk.
    To address that I wrote a  script to trawl the taxt frames in a specified CS5 INDD document,  looking fist to see if they had that font as their active one, after  which the script shifts each glyph up or down the baseline by a random  amount, gives each glyph a random stroke weight change, and finally  tints each glyph a random amount off of its basic tint.
    Each  of these changes is very subtle, with the result being something that  looks considerably more organic and hand-made than the font did out of  the can. The script should be easily modified by anyone who wants to run  it using a different font instead of "Journal". Here it is. Enjoy!
    -- This script changes the  baseline offset, stroke width, and color tint
    -- of any type set in the "Journal" typeface to randomized values,  giving
    -- the text a much more organic look and feel.
    -- Written by Warren Ockrassa,  http://indigestible.nightwares.com/
    -- Free to use, modify and distribute, but I'd prefer attribution.
    -- Note that this script can take quite a while to execute with  larger
    -- or more complex files.
    set theItem to 0
    set theItem to choose file with prompt "Select a CS5 InDesign  document to modify..."
    if theItem is not equal to 0 then
         tell application "Adobe InDesign CS5"
             open theItem
             tell active document
                 -- Determine how many text frames we need to change
                 set myFrames to the number of text frames
                 if myFrames is not equal to 0 then
                     set theFrame to 1
                     repeat until theFrame > myFrames
                         set myText to text frame theFrame
                         set myFont to applied font of character 1 of myText  as string
                         -- Check to make sure we're only modifying text  frames
                         -- that have been set in the "Journal" typeface
                         if word 1 of myFont is "Journal" then
                             repeat with thisCharacter in (characters of  myText)
                                 -- Randomize the values of baseline shift,  stroke, and tint
                                 set baselineShift to ((random number from -5  to 5) / 10)
                                 set strokeWeight to (((random number 10)) /  100)
                                 set myTint to (100 - (random number 10))
                                 set fillColor to fill color of thisCharacter
                                 set baseline shift of thisCharacter to  baselineShift
                                 set stroke color of thisCharacter to  fillColor
                                 set stroke weight of thisCharacter to  strokeWeight
                                 set fill tint of thisCharacter to myTint
                                 set stroke tint of thisCharacter to myTint
                             end repeat
                         end if
                         set theFrame to (theFrame + 1)
                     end repeat
                 end if
             end tell
         end tell
         beep
         display dialog "Modifications finished!" buttons {"Groovy!"} default  button 1
    else
         display dialog "Operation cancelled" buttons {"OK"} default button 1
    end if

    For the fonts, the really cheap and dirty method would probably be to load the names of the fonts you want to use into an array variable in the AppleScript, then get a random index count to grab one of the font names out of that array.
    The script as it exists now goes character by character - you'd want to revise it so it went word by word instead, or else you'd end up setting each word's character to one of your random font choices. Instead of
    repeat with thisCharacter in (characters of  myText)
    you'd do something like
    repeat with thisWord in (words of  myText)
    As for loading an array variable in AppleScript - I've not done that before, but it's probably something like:
    set myFontArray to {"Papyrus", "Arial", "Comic Sans"}
    The curly braces are necessary, as it appears that AppleScript supports lists rather than arrays (a minor but not entirely unimportant detail). Anyway, from there, you'd grab one font at a time, randomly, probably like this:
    set myWordFontNumber to random ( length of myFontArray ) - 1
      set myWordFont to item myWordFontNumber of myFontArray
    You do the first line to get a random number based on the number of items in your list of fonts. You subtract 1 from it because the count on the actual list begins at 0 rather than 1, which means that sometimes you'll get a random number that's actually 1 larger than the number of items in the list, and you'll never see the first item (which is at position 0). This is a very old-school gotcha when working with arrays and lists - a ten-item list will count from 0 to 9, not 1 to 10.
    From there, you'd set the given word in your text frame's font to the name of the font you pulled out of the myFontArray variable. You'll want to make sure that the font names you load into your list are the actual names of the fonts you're working with - the examples I used here probably won't work.
    Please note that this is just a high-level gloss of what you'd need to do in order to modify the script. You'll have to hit the AppleScript documentation (and InDesign's scripting documentation) to get the precise syntax.

  • How to make a rasterized word look like it was written with dirt?

    Im trying to make an image where this word looks like it is written in dirt on the sidewalk.  Iv' already taken a pile of dirt and created a clip mask out of it but it doesnt look natural enough.  How do I do this so it looks realistic? And this is a graphic not font and I am using photoshop cs6. Thank you.

    I'll just add a little footnote to the above, while I'm thinking about it.  One problem with layer styles - especially complex ones like Bevel & Emboss, is that you have limited control of the different aspects of the effect.  I didn't use Bevel & Emboss in the above example because the highlights were too strong, and made it look wrong.
    A way round this is to right click the effect and choose 'Create layers'.  This breaks up the effect into one or more layers, so you can reduce, say, the highlight without effecting the shadow.
    I think if I was trying to do a stand out job, I'd use a finer font, so it looked like it had been drawn with a stick, and I'd use a combination of Bevel and Emboss layer style to get the depth, but I'd also use JJ's idea of a displacement map clipped to the text layer, to roughen the edges realistically, and add texture to the bottom of the indented text.
    An alternative is to find a suitable texture, and save it as a Pattern.  That would make it available to use as a 'Texture' in the Bevel Emboss sub options. The beauty of this is that the texture works very much like a Displacement map with depth and lighting effects.  In fact, I think that might be the easiest way to go about it.

  • How to make my Aluminum Casing Look new again

    How can I clean up my physical appearence of my mac so as to make it look all new and shiny. There are sever ***** and dents which I can open it up and smooth it out, but there are some scratches and spots where the paint has rubbed of and I want to paint over it.

    Your best bet would be to just go on eBay and find someone who sells the LCD casing by itself. I got one for $50+ from LaptopAid (user ID / seller).
    Or, you can buy one BRAND NEW from WeLoveMacs.com for $99.99 (or it might have been $79.99). An Apple OEM part.
    There's no other way to make your lid/casing brand new. And it's "easy" to pop off and put the new one in. You don't have to take off the display unit just to do it, as I learned.
    Also, the top casing where the keyboard is is also replaceable. Also got mine on eBay. The model A1106 and after are easy to take off. Before that, is harder, since there was a "latch" on the top of the optical drive area that had to be undone before you could replace the top case or even remove it. Putting it back together was a pain, and most people who've done so have shown evidence of doing so, since the top case and bottom pan don't line up anymore.
    Although, do you have an Aluminum or a Titanium?? You said "there are some scratches and spots where the paint has rubbed off and I want to paint over it."
    Our aluminums don't have paint on it. It's strictly aluminum. So there's no paint to paint over.

  • How to make a flat object look round?

    I have a round logo for a company. I want to make it look like it is painted on to a christmas tree ornament.. so it almost needs to look 3D. Can I do this in photoshop or illustrator or something? Any thoughts?

    And for the lights/shadows one can often achieve good effects just with brushing in black and white on either two Solid Color-layers or two Gradient-Adjustment Layers Clipping Masked to the content-layer.
    Or, if one has CS4, one can use the small 3D-objects-library under 3D – New Shape From Layer, map the content onto that and light it according to one’s taste.

Maybe you are looking for