Exemple #1
0
void UnwrapMod::ActivateActionTable()
{
	pCallback = new UnwrapActionCallback();
	pCallback->SetUnwrap(this);

	if  (GetCOREInterface()->GetActionManager()->ActivateActionTable(pCallback, kUnwrapActions) )
	{
		ActionTable *actionTable =  GetCOREInterface()->GetActionManager()->FindTable(kUnwrapActions);
		if (actionTable)
		{
			int actionCount = NumElements(spActions)/3;
			for (int i =0; i < actionCount; i++)
			{
				int id = spActions[i*3];
				UnwrapAction *action =  (UnwrapAction *) actionTable->GetAction(spActions[i*3]);
				if (action)
				{
					action->SetUnwrap(this);
				}

			}

		}
	}

}
void WeightTableWindow::ActivateActionTable()
	{

	if (pCallback) DeActivateActionTable();

	pCallback = new WeightTableActionCallback();
	pCallback->SetWeightTable(this);

	if (GetCOREInterface()->GetActionManager()->ActivateActionTable(pCallback, kWeightTableActions) )
		{

		ActionTable *actionTable =  GetCOREInterface()->GetActionManager()->FindTable(kWeightTableActions);
		if (actionTable)
			{
			for (int i =0; i < actionCount; i++)
				{
				WeightTableAction *action =  (WeightTableAction *) actionTable->GetAction(actionIDs[i]);
				if (action)
					{
					action->SetWeightTable(this);
					}

				}

			}
		}
	}
Exemple #3
0
void AddPlasmaExportMenu()
{
    IMenuManager* pMenuMan = GetCOREInterface()->GetMenuManager();
    IMenu* fileMenu = pMenuMan->FindMenu("&File");

    int i;

    bool plasmaExportFound = false;

    // Make sure our action isn't already in the menu
    TSTR ourName = GetString(IDS_PLASMA_EXPORT);
    for (i = 0; i < fileMenu->NumItems(); i++)
    {
        IMenuItem* fileMenuItem = fileMenu->GetItem(i);
        const TSTR& title = fileMenuItem->GetTitle();
        if (title == ourName)
            plasmaExportFound = true;

        // KLUDGE - MaxAss didn't define the file submenu with an accelerator.
        // This fixes it.
        if (title == (CStr)"MAX File Operations")
        {
            fileMenuItem->SetUseCustomTitle(true);
            bool custom = fileMenuItem->GetUseCustomTitle();
            fileMenuItem->SetTitle("MAX File Opera&tions");

            pMenuMan->UpdateMenuBar();
        }
    }

    if (!plasmaExportFound)
    {
        // Menu item isn't there, add it
        for (i = 0; i < fileMenu->NumItems(); i++)
        {
            IMenuItem* fileMenuItem = fileMenu->GetItem(i);
            const TSTR& title = fileMenuItem->GetTitle();
            // We want to add it after the "Export Selected" menu item
            if (title == (CStr)"Export Selected...")
            {
                ActionTable* pActionTable = GetCOREInterface()->GetActionManager()->FindTable(kActionId);
                if (!pActionTable)
                {
                    hsAssert(0, "Action table not found");
                    return;
                }

                IMenuItem* menuItem = GetIMenuItem();
                menuItem->SetActionItem(pActionTable->GetAction(kActionExport));
                fileMenu->AddItem(menuItem, i+1);

                pMenuMan->UpdateMenuBar();

                return;
            }
        }
    }
}
void WeightTableWindow::DeActivateActionTable()
	{
	ActionTable *actionTable =  GetCOREInterface()->GetActionManager()->FindTable(kWeightTableActions);
	if (actionTable)
		{
		for (int i =0; i < actionCount; i++)
			{
			WeightTableAction *action =  (WeightTableAction *) actionTable->GetAction(actionIDs[i]);
			if (action)
				{
				action->SetWeightTable(NULL);
				}
			}
		}
	GetCOREInterface()->GetActionManager()->DeactivateActionTable(pCallback, kWeightTableActions); 
	delete pCallback;
	pCallback = NULL;
	}
Exemple #5
0
//action Table methods
void UnwrapMod::DeActivateActionTable()
{
	ActionTable *actionTable =  GetCOREInterface()->GetActionManager()->FindTable(kUnwrapActions);
	if (actionTable)
	{
		int actionCount = NumElements(spActions)/3;
		for (int i =0; i < actionCount; i++)
		{
			UnwrapAction *action =  (UnwrapAction *) actionTable->GetAction(spActions[i*3]);
			if (action)
			{
				action->SetUnwrap(NULL);
			}
		}
	}

	if (pCallback) {
		GetCOREInterface()->GetActionManager()->DeactivateActionTable(pCallback, kUnwrapActions); 
		delete pCallback;
		pCallback = NULL;
	}
}
Exemple #6
0
void plCreateMenu()
{
#if MAX_VERSION_MAJOR <= 11
    AddPlasmaExportMenu();
#endif

    IMenuManager* pMenuMan = GetCOREInterface()->GetMenuManager();
    bool newlyRegistered = pMenuMan->RegisterMenuBarContext(kMyMenuContextId, kMenuName);

    // Is the Max menu version the most recent?
    bool wrongVersion = GetPrivateProfileIntW(L"Menu", L"Version", 0, plMaxConfig::GetPluginIni().WideString().data()) < kMenuVersion;
    if (wrongVersion)
    {
        // Delete the old version of the menu
        IMenu *oldMenu = pMenuMan->FindMenu(kMenuName);
        if (oldMenu)
            pMenuMan->UnRegisterMenu(oldMenu);

        // Update the menu version
        wchar_t buf[12];
        snwprintf(buf, arrsize(buf), L"%d", kMenuVersion);
        WritePrivateProfileStringW(L"Menu", L"Version", buf, plMaxConfig::GetPluginIni().WideString().data());
    }
    
    if (wrongVersion || newlyRegistered)
    {
        IMenu *pMainMenu = pMenuMan->GetMainMenuBar();
        if (!pMainMenu)
        {
            hsAssert(0, "Main menu not found");
            return;
        }

        // Get our action table
        ActionTable* pActionTable = GetCOREInterface()->GetActionManager()->FindTable(kActionId);
        if (!pActionTable)
        {
            hsAssert(0, "Action table not found");
            return;
        }

        // Create the Plasma menu
        IMenu* pPlasmaMenu = GetIMenu();
        pPlasmaMenu->SetTitle(kMenuName);

        // Register the new menu with the system
        pMenuMan->RegisterMenu(pPlasmaMenu, 0);

        /////////////////////////////////////////////////
        // Add the menu items
        //
        IMenuItem* pMenuItem;
 
#if MAX_VERSION_MAJOR >= 12
        // Add the export action to the menu
        pMenuItem = GetIMenuItem();
        pMenuItem->SetActionItem(pActionTable->GetAction(kActionExport));
        pPlasmaMenu->AddItem(pMenuItem);
#endif

        // Add the save selected action to the menu
        pMenuItem = GetIMenuItem();
        pMenuItem->SetActionItem(pActionTable->GetAction(kActionSaveSel));
        pPlasmaMenu->AddItem(pMenuItem);

        // Add the merge action to the menu
        pMenuItem = GetIMenuItem();
        pMenuItem->SetActionItem(pActionTable->GetAction(kActionMerge));
        pPlasmaMenu->AddItem(pMenuItem);

        // Add the component copy action to the menu
        pMenuItem = GetIMenuItem();
        pMenuItem->SetActionItem(pActionTable->GetAction(kActionCompCopy));
        pPlasmaMenu->AddItem(pMenuItem);

        // Add a separator
        pMenuItem = GetIMenuItem();
        pMenuItem->ActAsSeparator();
        pPlasmaMenu->AddItem(pMenuItem);
    
        // Add the component manager to the menu
        pMenuItem = GetIMenuItem();
        pMenuItem->SetActionItem(pActionTable->GetAction(kActionComponent));
        pPlasmaMenu->AddItem(pMenuItem);

        // Add the resource collector to the menu
        pMenuItem = GetIMenuItem();
        pMenuItem->SetActionItem(pActionTable->GetAction(kActionResCollect));
        pPlasmaMenu->AddItem(pMenuItem);

        // Add the texture search to the menu
        pMenuItem = GetIMenuItem();
        pMenuItem->SetActionItem(pActionTable->GetAction(kActionTexSearch));
        pPlasmaMenu->AddItem(pMenuItem);

        // Add the age description to the menu
        pMenuItem = GetIMenuItem();
        pMenuItem->SetActionItem(pActionTable->GetAction(kActionAgeDesc));
        pPlasmaMenu->AddItem(pMenuItem);

        // Add a separator
        pMenuItem = GetIMenuItem();
        pMenuItem->ActAsSeparator();
        pPlasmaMenu->AddItem(pMenuItem);

        // Add the Lock Selected to the menu
        pMenuItem = GetIMenuItem();
        pMenuItem->SetActionItem(pActionTable->GetAction(kActionLock));
        pPlasmaMenu->AddItem(pMenuItem);

        // Add the Unlock Selected to the menu
        pMenuItem = GetIMenuItem();
        pMenuItem->SetActionItem(pActionTable->GetAction(kActionUnlock));
        pPlasmaMenu->AddItem(pMenuItem);

        // Add the Reset Selected to the menu
        pMenuItem = GetIMenuItem();
        pMenuItem->SetActionItem(pActionTable->GetAction(kActionReset));
        pPlasmaMenu->AddItem(pMenuItem);

        // Add the SelectNonRenderables to the menu
        pMenuItem = GetIMenuItem();
        pMenuItem->SetActionItem(pActionTable->GetAction(kActionSelectNonRenderables));
        pPlasmaMenu->AddItem(pMenuItem);

        // Create a new menu item to hold the sub-menu
        IMenuItem* pSubMenuItem1 = GetIMenuItem();   //menu in menu bar...
        pSubMenuItem1->SetSubMenu(pPlasmaMenu);
        pMainMenu->AddItem(pSubMenuItem1);

        pMenuMan->UpdateMenuBar();

        // Save the dang menu, in case Max crashes
        const char *uiDir = GetCOREInterface()->GetDir(APP_UI_DIR);
        char path[MAX_PATH];
        sprintf(path, "%s\\%s", uiDir, "MaxMenus.mnu");
        
        pMenuMan->SaveMenuFile(path);
    }

}
ActionTable* GetEditPolyActions() {
	TSTR name = GetString (IDS_EDITPOLY_EDIT_POLY);
	HACCEL hAccel = LoadAccelerators (hInstance, MAKEINTRESOURCE (IDR_ACCEL_EPOLY));
	ActionTable* pTab = NULL;
	pTab = new ActionTable (kEditPolyActionID, kEditPolyActionID,
		name, hAccel, kNumEPolyActions, epolyActions, hInstance);
    GetCOREInterface()->GetActionManager()->RegisterActionContext
		(kEditPolyActionID, name.data());

	IActionItemOverrideManager *actionOverrideMan = static_cast<IActionItemOverrideManager*>(GetCOREInterface(IACTIONITEMOVERRIDEMANAGER_INTERFACE ));
	if(actionOverrideMan)
	{
		//register the action items
		TSTR desc;
		ActionItem *item = pTab->GetAction(ID_EP_SEL_LEV_OBJ);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}
	/*  Kelcey said don't do these guys only the object.. leave in case she changes her mind..
		item = pTab->GetAction(ID_EP_SEL_LEV_VERTEX);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}
		item = pTab->GetAction(ID_EP_SEL_LEV_EDGE);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	
		item = pTab->GetAction(ID_EP_SEL_LEV_BORDER);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		item = pTab->GetAction(ID_EP_SEL_LEV_FACE);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		item = pTab->GetAction(ID_EP_SEL_LEV_ELEMENT);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	
	*/
		//command overrides	
		item = pTab->GetAction(ID_EP_EDIT_CUT);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		//new edit soft selection mode
		item = pTab->GetAction(ID_EP_EDIT_SS);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}
		item = pTab->GetAction(ID_EP_EDIT_QUICKSLICE);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	
		/*
		item = pTab->GetAction(ID_EP_EDIT_SLICEPLANE);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}
		*/

		//face command mdoes
		item = pTab->GetAction(ID_EP_SUB_BEVEL);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		item = pTab->GetAction(ID_EP_SUB_OUTLINE);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		item = pTab->GetAction(ID_EP_SUB_INSET);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		item = pTab->GetAction(ID_EP_SUB_HINGE);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		//less than edge 
		item = pTab->GetAction(ID_EP_SUB_WELD);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		//greater edge
		item = pTab->GetAction(ID_EP_TURN);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		item = pTab->GetAction(ID_EP_SURF_EDITTRI);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		//chamfer
		item = pTab->GetAction(ID_EP_SUB_CHAMFER);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		//create
		item = pTab->GetAction(ID_EP_EDIT_CREATE);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		//insert
		item = pTab->GetAction(ID_EP_SUB_INSERTVERT);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		//bridge
		item = pTab->GetAction(ID_EP_SUB_BRIDGE);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	

		//extrude
		item = pTab->GetAction(ID_EP_SUB_EXTRUDE);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}	
		
		//none constrain
		item = pTab->GetAction(ID_EP_NONE_CONSTRAINT);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}
		//normal constrain
		item = pTab->GetAction(ID_EP_NORMAL_CONSTRAINT);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}
		//edge constrain
		item = pTab->GetAction(ID_EP_EDGE_CONSTRAINT);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}
		//face constrain
		item = pTab->GetAction(ID_EP_FACE_CONSTRAINT);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}
		
		//paint 
		item = pTab->GetAction(ID_EP_SS_PAINT);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}

		//paint push/pull
		item = pTab->GetAction(ID_EP_SS_PAINTPUSHPULL);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}

		//paint relax
		item = pTab->GetAction(ID_EP_SS_PAINTRELAX);
		if(item)
		{
			item->GetDescriptionText(desc);
			actionOverrideMan->RegisterActionItemOverride(item,desc); 
		}



	}
	return pTab;
}