AutoPlay Media Studio 9

Application.GetMenu

Application.GetMenu

This is the first topic This is the last topic  

Application.GetMenu

This is the first topic This is the last topic  

OverviewExamples

table Application.GetMenu (

)

Example 1

-- Output all top level menu items:

local strMenuData = "";

 

-- Store the contents of the menu in a table

tblMenu = Application.GetMenu();

 

-- Check that the table exists

if(tblMenu)then

 local nNumItems = Table.Count(tblMenu);

 

 -- Step through the table row by row

 for index = 1, nNumItems do

     local tblItemInfo = tblMenu[index];

     if(tblItemInfo)then

         -- Add the text to the string

         strMenuData = strMenuData..tblItemInfo.Text.."\r\n";

     end

 end

 

 -- Output the created string to the user

 Dialog.Message("Top Level Menu Items", strMenuData);

end

Outputs all the top level menu items to the user in a dialog message.

Example 2

--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

--%  Name:    OutputMenu (tMenuToOutput, nLevelCount = 0, sMenuString = "");       %

--%  Values:  tMenuToOutput: REQUIRED - the menu table generated from              %

--%           Application.GetMenu                                                  %

--%           nLevelCount: Optional (default to 0), the indent the current item    %

--%           should have in the output.                                           %

--%           sMenuString: Optional (default to ""), a string containing           %

--%           the menu items.                                                      %

--%  Returns: A string containing the menu items ready for output.                 %

--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function OutputMenu (tMenuToOutput, nLevelCount, sMenuString)

 -- Since we don't want to make nLevelCount required (for the first call),

 -- we have to initialize it if it is not passed to the function

 if not nLevelCount then

    nLevelCount = 0;

 end

 

 -- sMenuString is not a required variable (for the first call),

 -- therefore we must initialize it if it was not passed to the function.

 if not sMenuString then

    sMenuString = "";

 end

 

 -- Menu table is numerically indexed, step through for each node

 for nIndex, tMenuItem in pairs(tMenuToOutput) do

    -- Add the current menu item to the string to return, whether it has a sub menu or not

    sMenuString = sMenuString .. String.Repeat(" ", nLevelCount*4) .. tMenuItem.Text .. " (ID: " .. tMenuItem.ID .. ")".. "\r\n";

    -- Check if a sub menu exists at the current menu's location

    if type(tMenuItem.SubMenu) == 'table' and tMenuItem.ID == -1 then

       -- A sub menu exists.  Recursively call this function to include the sub menu.

       -- Increasing the level count by 1 controls the indent that the item will have in the output.

       sMenuString = OutputMenu (tMenuItem.SubMenu, nLevelCount + 1, sMenuString);

    end

 end

 

 -- Return the menu string

 return sMenuString;

end

 

 

 

 

 

-- Get the menu structure and store in a table

tMenu = Application.GetMenu();

 

-- Set the title and message for the Dialog.Message box

sTitle = "Current Menu Structure";

sMessage = OutputMenu(tMenu);

 

-- Display a Dialog.Message box to the user

Dialog.Message(sTitle, sMessage);

Outputs the entire menu structure to the user through a dialog message. This example uses an advanced implementation of a function to recursively step through the menu.

See also: Related Actions


Learn More: Indigo Rose Software - AutoPlay Media Studio - Buy Now - Contact Us