ActionBar, Actions, TabActions. Help

I have the code of work from the following thread:
http://supportforums.BlackBerry.com/T5/Adobe-AIR-development/BB10-Beta4-ActionBar-issues/TD-p/201530...

I understand that RIM away air, but why have the feature and thus a new OS when there are no samples and what information there is very rare and base?

Really just, I'm looking for the more docs on how I can use this feature to built a decent application.

How to use would be a good place to start. I read the SDK reference over and over again, but I can't seem to understand how to effectively use this code and what does what? I might just need a better explanation...

... What is the difference between Action and TabAction?

... How do I use the ActionBar with a multiple page application and have 'actions' in the ActionBar the current page change?

... How do I imlement an application Menu?

... Can I use events to SLIP as with the PlayBook to open the 'IN_OVERFLOW' of the ActionBar menu?

The appearance of the button is different. Tab buttons have a selected state. Like normal views "tab", a tab is selected to show what view is currently displayed. Actions are more like a button that performs a "momentary" action in the display.

If you have the tab buttons, you can have an action button "back". If you allow a person return to the previous page of a back action, then you can not use tabs.

There are a lot of elements of the action that we have no examples and why one form be used over another. Personally, I did have a lot of time playing with it. I know that you can take the back button and make draggable to expose a bottom view. Once there is more applications BB10, I might have better ideas of how to improve the UX on BB10, but right now, I just use Basic Actions, without tab.

Tags: BlackBerry Developers

Similar Questions

  • Image slideshow Action Script Help

    I'm doing my last post Flash and I hit an ing works the road with the Action Script. I'm supposed to make a slideshow of image using Script of Action, etc., but looks like I broke mine.

    Instead of playing the slideshow, the resulting film sparkles just the elements on the stage when played space.

    Ce http://i346.Photobucket.com/albums/p417/CloneOutcast/Screenshot2011-04-25at32910PM.PNG is what my code looks like and some of the errors listed below and this http://i346.Photobucket.com/albums/p417/CloneOutcast/Screenshot2011-04-25at32919PM.PNG is what I based my Script of Action out of.

    Someone paid with Flash knows what I'm doing wrong?

    you have var imageData:Array = new Array({...}, {...}, ... {...},); remove the last comma before the closing parenthesis.

  • Action Script HELP

    I have a web site template, have 4 links that go to other scenes (type button with rollover effects links) I'm trying to make these buttons link to pages html (URL) instead... I found the action script that makes the effect of substitution and links to another scene in... but did anyone know how to make sure it had an effect of substitution but links to url instead of the scene? Here are his... I think I have to put it on the roll out or release but do not know and do not know what to leave and what to go out

    Thanks in advance!


    {onClipEvent (load)}
    Num = 2;
    }

    {run}
    If {(_root.link <>num)
    this.gotoAndPlay ("s1");
    }
    }

    on (deployment, releaseOutside) {}
    If {(_root.link <>num)
    this.gotoAndPlay ("s2");
    }
    }


    {We (Release)}
    If (_root.link <>num and _root.animation == 1) {}
    this.gotoAndPlay ('s3');
    _root. Animation = 0;
    _root.link_prev = _root. Link;
    _parent ["item" + _root.link] .gotoAndPlay ("s4");
    _root. Link = num;
    _root.pages.page.play ();

    }
    }

    You want to use the getURL() function to navigate to another web page instead of the gotoAndPlay or similar controls.  I do not know what lines you must stay, so I'll remobve them all since it will go to a new web page in any way...

    {We (Release)}
    If (_root.link<>num and _root.animation == 1) {}
    getURL (http://www.somesite.com' ");

    }
    }

  • Dynamic selection of actions LOV

    I have a form with 12 fields and a pop up Lov. This LOV is called model.  When I select a value LOV (Template), all 12 fields must be defined with a default value based on the model.

    The model is nothing more than a row of a table. Can be done by using the dynamic action?  Help, please

    George

    Yes, you can create a dynamic Action as follows:

    Event: change

    Selection type: product (s)

    Article (s): PXX_TEMPLATE

    Real Action

    Action: execute the PL/SQL Code

    BEGIN
      SELECT COLUMN1, COLUMN2
      INTO PXX_COLUMN1, PXX_COLUMN2
      FROM TABLE
      WHERE ID = PXX_TEMPLATE;
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        PXX_COLUMN1 := NULL;
        PXX_COLUMN2 := NULL;
    END;
    

    Page to submit items: PXX_TEMPLATE

    Page to return items: PXX_COLUMN1, PXX_COLUMN2

    Thank you

    Erick

  • Tip action DOES not work in the Flash output

    Hello

    I created a module in line with Captivate 9 using an advanced conditional action to display the button at the end of 2 sections.

    The trigger works well in the release of HTML5, but it does not work in the Flash output: users need to go back to the slide with the action advanced a second time in order to show the next button.

    It is the created tip action:

    advanced_action.png

    Help, please. Thank you

    Lisa

    Change the order in the updated standard measure jump to slide as last order, or at least after the command of the increment.  The actions are executed in sequence, if you jump first to this slide, where the on enter event is executed, the variable has not yet been incremented. Try to see if it solves the problem. HTML is different from SWF to react (it is converted to JS so that SWF to ACE).

    You post the screenshot of the timeline.

    Moreover, as I have indicated already, I would add continue to the part of the TIME as well as the ELSE part. I learned that, in certain circumstances, a conditional action with that one decision, and no ELSE part does not work well. It is not a problem if you have several decisions.

  • Can not do an action combining a JPG with a PNG for a logo

    Hello

    I'm a big user and creator of actions that help me do everything from tattoo to resizing and I am very familiar with how to do actions in several steps.

    This one has me baffled well.

    I have a PNG transparent with a logo that I try to apply in the lower-left corner of about 200 oriented landscape photos that have already been cut to 8 x 12.

    So I try many ways to register as long as action and none of them work actually once I have try to play.

    I tried to open the JPG file, and then creating a new action.

    I've name it "Logo landscape."

    First step: open (and then I direct to the file where the logo is)

    Second step: drag the PNG (logo) lower left corner of the JPG

    Third step: Save as (when you navigate to a specified folder, where they all go by).

    Fourth step: I close the JPG without saving changes (for not altering the source)

    Action recording ended.

    Now when I play it back it will tell me the option MOVE is not available once he opens the PNG.

    Yet once again, stocks are not new for me, but for the life of me I can't understand this.


    Any help would be appreciated.

    Thank you!

    You can try to use the 'place' to insert the logo.

  • Save for Web action CC 2015

    Hello

    I just created an Action to help with batch save images for the web. I have several hundred photos I need to reduce and put on a Web site.

    • I can go through the process manually and everything works fine.
    • I created an action, according to the manual process, and it does not work.
    • I also tried to run the action as a batch command and I get the error message "does not recognize the Export command.  I understand that it is obvious that the action does not work, but I thought I would try it anyway.

    Someone had problems with the creation of an action or with batch save for Web and how did you get around it if you please.

    Thank you

    George

    I'm on Win 10. Where do you work, do not forget this: when measures registration do not change the file name when recording and save to the folder where you want to save the files when batch processing option because: Override Action "save under" commands will not work for the reason that you do not save (command) step in your action.

  • How do dynamic actions using work to set the value in all browsers?

    I'm having a problem of incompatibility between browsers with dynamic actions to help to set the value.  Dynamic action works like a charm on Chrome but has no effect on IE or Firefox.  The code in oracle.apex.com and here are the credentials:

    Workspace: DDBA

    Username: [email protected]

    Password: redtruck12

    These codes is on page 3 and here are the details:

    There are two lists of report (Standard and special) and some reports require additional information provided in the lists of selection or text boxes.

    If the user selects a report select Standard requiring a list/text box, then the dynamic action sets the value of the special reports to NULL (and vice versa).

    Dynamic action is to prevent a simultaneous Standard reports and special selection.  To see how it works on Chrome, follow these steps:


    1. Run the Page 3
    2. Select the "Search report" option in the list Report Standard .  A text 'Search criteria' box
    3. Select the option 'Release report' in the list of special reports .  A selection list appears and disappears from the text box 'search criteria '.

    If you do the same on IE or Firefox, the text box does not disappear.

    Hi Edward,.

    Please check page 4 of your app, I made a copy of your page and made a few changes:

    I have set up an example of dynamic action 1 this hanles the report and special report selection list.

    Dynamic action games, select the value of the selection list and he accompanies in detail the report lists to null and then submits the page.

    For this I have deleted the page submit events to the time the report and special report select lists. Instead I handed them a HTML class. The dynamic action is triggered by a change of this category of html.

    When the trigger is the report selection list, select special report is set to null. Also underlying selection sub lists are set to null.

    When the trigger is the special report selection list, the selection of the report is set to null. Also underlying selection sub lists are set to null.

    The two end of the action with a "Send" page to manage the show and hide appropriate items. Note that there is a lag in time due to the submission of the page. As I have suggested, it would be treated better by a refresh of the region. On the other hand you depend on now submit for the continuation of the treatment of your page. With the help of an update of the region would require a work more javascript and cost more redisgn of your page. If you need IE8 support, additional javsascript likely to cause other unexpected behaviors. In other words, a page is maybe in your case probably better then an update of the region after all.

    I checked this page 4, Chrome, Firefox and IE (latest version) and I get the same behavior in all browsers.

    Kind regards

    Vincent

    http://vincentdeelen.blogspot.com

  • Help with IMMEDIATE EXECUTION and drop

    Hi all

    We strive to create a procedure to do the following:

    * We have in the database of the tables named as C$ _XXXXXXXXX
    * We want to drop some of these tables with a common prefix (Fe C$ _1203101)

    DECLARE
    v_sql VARCHAR2 (300);
    BEGIN
    SELECT 'DROP TABLE ODISTAG.' | TABLE_NAME | « ; » IN v_sql FROM USER_TABLES WHERE TABLE_NAME LIKE ' C$ _1203101% ';
    EXECUTE IMMEDIATE v_sql;
    END;

    But we are getting this error:


    Error report:
    ORA-00911: invalid character
    ORA-06512: at line 5
    00911 00000 - "invalid character".
    * Cause: identifiers may not start with any character other than ASCII
    letters and numbers. $# _ are allowed after the first
    character. May contain identifiers surrounded by doublequotes
    any character other than a quotation mark. Other quotes
    (q' #... #') cannot use spaces, tabs or as carriage returns
    delimiters. For all other settings, consult the SQL language
    Reference manual.
    * Action:


    Any help on this please?

    Thank you!

    You don't need the semicolon.

  • Newbie needs help w / script revision



    So, I created a slide show, where each image is a link. I have selected _blank in the selection of the window. I would like to change that to _parent. Problem is that I can't find the script! Seems that the actions are associated with the instance. And I can not find them in order to change the action. Help?

    Use the movie Explorer. It is in the Windows menu.

    When loading, you can refine what it shows by using the icons at the top. For Actionscript, this is the icon with the arrow. To change a particular frame, you can double-click the name of the image or the code then it will open the actionscript Panel.

  • In-App purchase issue

    While the investigation into the issue of images do not hit any fly/scrolling in a Webview (http://supportforums.blackberry.com/t5/Native-Development/Issue-With-Scrolling-Images-In-Webview/m-p...) I came across the question if a user buys my in-app purchase then removes the application and reinstall the in-app purchase did not work.

    First of all, in-app purchase is to remove the ads - it does that very well, but when the application is removed and reinstalled ads appear once more and I don't want to force consumers to pay twice, so I really need to get this fixed number as it is preventing me to release an update of my application.

    I'm working out of this example: http://supportforums.blackberry.com/t5/Native-Development/Sample-Removing-In-App-Ads/m-p/2783323/hig... and have used it to create buying app for my application.

    Here's my source, my main.qml of my application file code:

    import bb.cascades 1.0
    import bb.platform 1.0
    import com.sample.payment 1.0
    
    TabbedPane {
        id: tabbedPane
        property variant payment
    
        Menu.definition: MenuDefinition {
            id: appMenu
            actions: [
                ActionItem {
                    title: "About"
                    imageSource: "asset:///IMG/ic_info.png"
    
                    onTriggered: {
                        aboutSheet.open()
                    }
                },
                ActionItem {
                    title: "Contact Us"
                    imageSource: "asset:///IMG/ic_email.png"
    
                    onTriggered: {
                        emailInvocation.query.uri = "mailto:[email protected]?subject=Shopping For eBay App: Contact"
                        emailInvocation.query.updateQuery();
                    }
    
                },
                ActionItem {
                    id: upgradeAction
                    title: "Remove Ads"
                    imageSource: "asset:///IMG/ic_clear_list.png"
    
                    onTriggered: {
                        if (tabbedPane.payment) {
                            /* replace the values in quotes "" below with the values from
                             * your vendor account for this application's add-on. */
                            payment.mPaymentControl.pid = "{REMOVED}"
                            payment.mPaymentControl.sku = "{REMOVED}"
                            payment.mPaymentControl.name = "Remove Ads"
                            payment.mPaymentControl.metadata = "Purchasing this will remove the adverts!"
                            payment.mPaymentControl.getPrice(payment.mPaymentControl.pid, payment.mPaymentControl.sku);
                            payment.mPaymentControl.purchase(payment.mPaymentControl.pid, payment.mPaymentControl.sku, payment.mPaymentControl.name, payment.mPaymentControl.metadata)
                        }
                    }
                    attachedObjects: [
                        // Definition to hold the PaymentControl so it is only created when neccesary
                        ComponentDefinition {
                            id: paymentdef
                            Container {
                                id: payContainer
                                onCreationCompleted: {
                                    console.log("Payment Definition Created - Checking for Existing Purchases")
                                    paymentControl.getExisting(true);
                                }
    
                                property alias mPaymentControl: paymentControl
    
                                attachedObjects: [
                                    PaymentServiceControl {
                                        id: paymentControl
                                        property string pid
                                        property string sku
                                        property string name
                                        property string metadata
    
                                        // Play receipt animation on purchase response
    
                                        onPurchaseResponseSuccess: {
                                            cpp.saveValueFor("removedAds", "23");
                                            root.removedAds = 23;
                                            console.log("purchaseResponse - " + receiptString)
                                        }
                                        onInfoResponseError: {
                                            console.log("Purchase Error - " + errorCode + " - " + errorText)
                                        }
    
                                        onExistingPurchasesResponseSuccess: {
                                            if (receiptsString == "(No purchases)") {
                                                console.log("existing unable to find receipt")
                                            } else {
                                                console.log("existing receiptString - " + receiptsString)
                                                cpp.saveValueFor("removedAds", "23");
                                                root.removedAds = 23;
                                            }
                                            console.log("existingPurchaseResponse Success - " + receiptsString)
                                        }
                                    }
                                ]
                            }
                        }
                    ]
                },
                ActionItem {
                    title: "Share App"
                    imageSource: "asset:///IMG/ic_share.png"
    
                    onTriggered: {
                        invokeShare.trigger("bb.action.SHARE")
                    }
                },
                ActionItem {
                    title: "More Apps"
                    imageSource: "asset:///IMG/ic_buy.png"
    
                    onTriggered: {
                        invokebb.trigger("bb.action.OPEN")
                    }
                }
            ]
            attachedObjects: [
                Sheet {
                    id: aboutSheet
                    About {
                    }
                },
                Invocation {
                    id: invokeShare
                    query {
                        mimeType: "text/plain"
                        data: qsTr("Get your shopping done easily on your #BlackBerry10 with 'Shopping For eBay'; check it out in @BlackBerry World: http://appworld.blackberry.com/webstore/content/35964888/")
                        invokeActionId: "bb.action.SHARE"
                    }
                },
                Invocation {
                    id: invokebb
                    query {
                        mimeType: "text/html"
                        uri: "appworld://vendor/64825/"
                        invokeActionId: "bb.action.OPEN"
                    }
                },
                Invocation {
                    id: emailInvocation
                    query.mimeType: "text/plain"
                    query.invokeTargetId: "sys.pim.uib.email.hybridcomposer"
                    query.invokeActionId: "bb.action.SENDEMAIL"
                    onArmed: {
                        emailInvocation.trigger(emailInvocation.query.invokeActionId);
                    }
                }
            ]
        }
        showTabsOnActionBar: false
        Tab {
            title: qsTr("Home") + Retranslate.onLocaleOrLanguageChanged
            imageSource: "IMG/101.Home.png"
            NavigationPane {
                id: navigationPane0
                Page {
                    onCreationCompleted: {
                        root.removedAds = parseInt(cpp.getValueFor("removedAds", ""))
                        if (root.removedAds != 23) {
                            tabbedPane.payment = paymentdef.createObject(navigationPane0);
                        } else {
                            console.log("Not Creating Payment Definition, User has Already Paid To Remove Ads")
                        }
    
                    }
                    id: page1
                    //actionBar actions
    
                    //Title bar
    
                    Container {
                        id: root
                        property int removedAds
    
                        onRemovedAdsChanged: {
                            if (removedAds == 23) {
                                myAds.visible = false
                                myAds2.visible = false
                                appMenu.removeAction(upgradeAction)
                            }
                        }
                        Container {
                            id: myAds
                            horizontalAlignment: HorizontalAlignment.Center
                            layout: StackLayout {
    
                            }
                            MyAds {
                                horizontalAlignment: HorizontalAlignment.Center
                                topPadding: 15.0
                            }
                        }
                        Container {
    
                            layout: DockLayout {
    
                            }
                            // To enable scrolling in the WebView, it is put inside a ScrollView.
                            ScrollView {
                                id: scrollView
    
                                scrollViewProperties.overScrollEffectMode: OverScrollEffectMode.None
                                // We let the scroll view scroll in both x and y and enable zooming,
                                // max and min content zoom property is set in the WebViews onMinContentScaleChanged
                                // and onMaxContentScaleChanged signal handlers.
                                scrollViewProperties {
                                    scrollMode: ScrollMode.Vertical
                                    pinchToZoomEnabled: true
                                }
    
                                //Webview
    
                            } // ScrollView// A progress indicator that is used to show the loading status
                            Container {
                                bottomPadding: 25
                                horizontalAlignment: HorizontalAlignment.Center
                                verticalAlignment: VerticalAlignment.Bottom
    
                                ProgressIndicator {
                                    id: progressIndicator
                                    opacity: 0.0
                                }
                            }
                        }
                    } // End of container
                }
            }
        } //End of first tab
    } //End of tabbedPane
    

    Any help and advice in this regard would be greatly appricated.

    Thanks in advance!

    If you test using a sandbox past purchases account cannot be restored. Purchases made with a sandbox account did not get connected to the server, so if you try to restore (ex after you remove and then re - install the app even) then no purchase will be returned.

    You can test your rollback logic with purchases in the same session of the app: open the app, make a purchase, try a restore, all this without closing the application.

    The only other option would be to remove your account from the sandbox and try buying using real $$

  • Cannot create the tab menu

    Hello

    I am trying to create a 'Menu of the tab' as described in

    http://developer.BlackBerry.com/native/documentation/Cascades/dev/ios_porting/mapping.html

    I want to hide the tabs and actionbar and try to implement showing on the sliding tab menu to the right!

    I am able to hide the tab menu! But cannot hide the actionbar! Please help me with that! Also, I want to know if it is possible to load the menu tab by code?

    I think that's the problem you describe

    You've created a tabbed pane and have the tabs stored in the overflow but want to hide the whole action bar("tabbedPane").
    

    I'm not posotive, but I am not belive this is possible, because the action bar is now the tabbed pane is the default component, which allows you to switch between tabs.   I have not noticed all the apps that hide the pane tabs, and I did not belive it would be consistent with the user B4BB interface instructions either.

  • color photos

    In printing a color image in brilliant, a strange thing happened.  I adjusted the 'best' print quality, and then must have done something else because when I started to print a questionnaire appeared asking me what brand of photo paper I used, what quality of picture I used, what is the size of paper that I used, etc., etc.

    In any case the impression proved to be bright, he was tall, with bright colors, etc..

    I don't know what I did to produce the questionnaire, but I would like to reproduce every time I print a photo.  WHAT I DID to MAKE THIS action CONCRETE-HELP-tell me how reproduce

    Thanks, Larry

    computer system (from 12/06/14)

    operating system: wind 7, ultimate

    email = mozilla thunderbird

    Carbonite

    RAM = 4 g, chrome + Explorer browsers

    CD-ROM 16 x & cd + burner

    Malwarebytes,

    APC surge p

    processor : inter core i5-2400 [email protected] 310 ghz

    RAM :8gb

    memory : 931 GB

    op.Syst 64-bit

    monitor: screen monitor flat dell ultrasharp u2412m 24 inch widescreen team viewewer =

     

     

     

     

     

    Hey @lhz,

    I see that you are wondering about how to open a window that gave you a lot of questions on your Windows 7 PC. I can help you find that.

    I think what happened is open to the top of the Windows Photo Viewer, before you print. For again right click on a photo you want to print. Now click on open with and then left click on the Windows Photo Viewer.

    If it helps please let me know. If it don't then please provide some details and I'll see what I can find.

    I hope this helps and I hope you have a great weekend!

  • Windows XP starts, an error message appears. 'RUNDLL error loading C:\Windows\ihukuqej.dll'. The module specific cound not be found.

    Original title: Windows Rundll error on startup

    My laptop, Windows XP startup, an error message appears. RUNDLL error loading C:\Windows\ihukuqej.dll.  The module specific cound not be found.  I downloaded ParetoLogic PC Health, did a full scan on the registry and fixed all of them, rebooted and its still there.

    What is a rundll error?

    File rundll.exe are processes systems directly connected to your computer Windows registry. All of the Dll files are a part of the vast library that contains code and data that are shared by many programs. This allows to obtain the effectiveness of speed and memory of your operating system by reusing the same code or file to run many functions of various programs. An error occurs when the program are not allowed to access this code.

    Why do you Rundll errors?

    Windows uses rundll files to load programs, files, and applications. If the dll file is missing or damaged, any application using this file cannot be loaded. This will produce a rundll error. The reason why the file has disappeared is often related to a virus or spyware. This type of malware often tries to divert the files shared by the rundll file. Other sharing programs file then do not work effectively or to load any.

    STEP 1: IDENTIFY

    The first thing you need to do is to identify the process specific rundll. This isn't a difficult task; There is a library online extensive process in which you can assess the validity of the process that is running. When the error dialog box opens, it displays the name of the process. For example, if the dialog box appears and tells you the dll error:

    STEP 2: STOP THE PROCESS

    Often, you can locate the Dll of enforcement in the services of the exe. You can open your services configuration by following the instructions below:
    1. open your Start menu.
    2. click on run
    3. in the command screen type:services.msc
    4. This will bring to the top of the window Management of the Services . If you drag the mouse to one of the services. It will give you a detailed explanation of the service in question. By right-clicking the individual service.
    5.stop the "dll" service immediately.

    NOTE: sometimes the dll process can not be stopped by this method.

    STEP 3: CHECK FOR AND REMOVE

    You need to open your Windows registry file system. It is an extremely delicate process. The registry key: HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > RUN

    This action will help you speed up the considerable load time of your applications. Here's how:

    1. click on Start
    2. click on run
    3. type regedit
    4. find this registry key:
    HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > RUN

    5. in the right section click on: "rusvdgpo" = "%System%undll32.exe % System%usvdgpo.dll, [RANDOM LETTERS].
    6. delete the value and reboot.

    SPECIAL REMARKS

    Rundll.exe is a critical system process. However, there a great vulnerability is back, which makes it more prone to malicious purposes by an attacker allowing access to your computer from remote locations, stealing passwords, personal data and Internet banking.

    The Trojans are usually use this attack method to share a process that invites the other malware be more Trojan horses or other forms of spyware. The best defense is to keep your security up-to-date software and explain the process of rundll on your computer.

    ======================

    More information is a lot to explain and resolve the problem.

    Since it is a painful process for beginners, it is best to create a new user account and remove the error causing the user account.

    Because not only it solves problems, there will be new user settings and the program files needed for the user account.

    Once you are in the new user account, you can scan by using a program that synchronize with the server and check for virus/malware/spyware.

    Here is the link.

    Run hitman pro 3.5

    http://www.SurfRight.nl/en/downloads

  • How to uninstall AVG standalone Linkscanner 2011?

    I want to uninstall it, but every time I tried this message:

    Configuration error

    Severity: error
    Error code: 0XC0070643
    Error message: General internal error
    Additional message: installation/uninstall toolbar failed (0XE0020001)
    Context: Failed MSI Action

    Help, please

    First disable it.  Then try to uninstall it after a reboot, but before you run all browsers...

    Also, exactly how are you trying to remove it?  You could try to use the control panel "Add or remove programs", click "Edit" on AVG 2011 and then "Add or remove features".

Maybe you are looking for