コード例 #1
0
ファイル: paint_main.cpp プロジェクト: CCChaos/RyzomCore
void PaintPatchMod::BeginEditParams(IObjParam *ip, ULONG flags, Animatable *prev)
{
	this->ip = ip;
	
	CreatePatchDataTempData();

	hOpsPanel = ip->AddRollupPage(hInstance, MAKEINTRESOURCE(IDD_EDPATCH_OPS),
		PatchOpsDlgProc, "Geometry", (LPARAM) this, rsOps ? 0 : APPENDROLL_CLOSED);

	// Create sub object editing modes.
	paintMode		= new EPM_PaintCMode(this, ip);
	
	// Disable show end result.
	ip->EnableShowEndResult(FALSE);
	
	// Setup named selection sets	
	SetupNamedSelDropDown();
	
	TimeValue t = ip->GetTime();
	NotifyDependents(Interval(t, t), PART_ALL, REFMSG_BEGIN_EDIT);
	NotifyDependents(Interval(t, t), PART_ALL, REFMSG_MOD_DISPLAY_ON);
	SetAFlag(A_MOD_BEING_EDITED);	
}
コード例 #2
0
void EditPatchMod::BeginEditParams(IObjParam *ip, ULONG flags, Animatable *prev)
{
    this->ip = ip;

    patchUIValid = FALSE;
    CreatePatchDataTempData();

    hSelectPanel = ip->AddRollupPage(hInstance, MAKEINTRESOURCE(IDD_EDPATCH_SELECT),
                                     PatchSelectDlgProc, GetString(IDS_TH_SELECTION), (LPARAM)this, rsSel ? 0 : APPENDROLL_CLOSED);
    hOpsPanel = ip->AddRollupPage(hInstance, MAKEINTRESOURCE(IDD_EDPATCH_OPS),
                                  PatchOpsDlgProc, GetString(IDS_TH_GEOMETRY), (LPARAM) this, rsOps ? 0 : APPENDROLL_CLOSED);
    /* watje 3 - 18 - 99
    if (selLevel == EP_OBJECT)
    {
    hSurfPanel = ip->AddRollupPage(hInstance, MAKEINTRESOURCE(IDD_EDPATCH_SURF_OBJ),
    PatchObjSurfDlgProc, GetString(IDS_TH_SURFACEPROPERTIES), (LPARAM) this, rsSurf ? 0 : APPENDROLL_CLOSED);
    }
    else
    */
    if (selLevel == EP_PATCH)
    {
        hSurfPanel = ip->AddRollupPage(hInstance, MAKEINTRESOURCE(IDD_EDPATCH_SURF),
                                       PatchSurfDlgProc, GetString(IDS_TH_SURFACEPROPERTIES), (LPARAM) this, rsSurf ? 0 : APPENDROLL_CLOSED);
    }
    else
        hSurfPanel = NULL;

    if (selLevel == EP_TILE)
    {
        hTilePanel = ip->AddRollupPage(hInstance, MAKEINTRESOURCE(IDD_EDPATCH_TILE),
                                       PatchTileDlgProc, "Tile Properties", (LPARAM) this, rsTile ? 0 : APPENDROLL_CLOSED);
    }
    else
        hTilePanel = NULL;

    if (selLevel == EP_EDGE)
    {
        hEdgePanel = ip->AddRollupPage(hInstance, MAKEINTRESOURCE(IDD_EDPATCH_EDGE),
                                       PatchEdgeDlgProc, "Edge Properties", (LPARAM) this, rsEdge ? 0 : APPENDROLL_CLOSED);
    }
    else
        hEdgePanel = NULL;

    // Create sub object editing modes.
    moveMode        = new MoveModBoxCMode(this, ip);
    rotMode         = new RotateModBoxCMode(this, ip);
    uscaleMode      = new UScaleModBoxCMode(this, ip);
    nuscaleMode     = new NUScaleModBoxCMode(this, ip);
    squashMode      = new SquashModBoxCMode(this, ip);
    selectMode      = new SelectModBoxCMode(this, ip);
    extrudeMode		= new EPM_ExtrudeCMode(this, ip);
    bevelMode		= new EPM_BevelCMode(this, ip);
    bindMode		= new EPM_BindCMode(this, ip);

    // Restore the selection level.
    ip->SetSubObjectLevel(selLevel);

    // Disable show end result.
    ip->EnableShowEndResult(FALSE);

    // Setup named selection sets
    SetupNamedSelDropDown();

    // Update selection UI display
    SelectionChanged();

    TimeValue t = ip->GetTime();
    NotifyDependents(Interval(t, t), PART_ALL, REFMSG_BEGIN_EDIT);
    NotifyDependents(Interval(t, t), PART_ALL, REFMSG_MOD_DISPLAY_ON);
    SetAFlag(A_MOD_BEING_EDITED);
}