virtual void InsertObject(void *root,void *userdata,void *obj,Int32 dragtype,void *dragobject,Int32 insertmode, Bool bCopy) { TreeView* pTree = (TreeView*)userdata; if (dragtype == DRAGTYPE_FILES) { Filename* fn = (Filename*)dragobject; if (!fn) return; ((CTreeDialog*)pTree->m_pParent)->OpenDialog(*fn); } if (dragtype == pTree->m_lElementType) { TreeViewItem* pDragItem = (TreeViewItem*)dragobject; TreeViewItem* pDestItem = (TreeViewItem*)obj; if (bCopy) { if (!pDragItem || !pDestItem) return; CTreeDialog* pDlg = (CTreeDialog*)pTree->m_pParent; if (!pDlg) return; CDialogDoc* pDoc = pDlg->GetDocument(); if (!pDoc) return; CDialogItem* pDlgItemDrag = (CDialogItem*)pDragItem->GetData()->GetVoid(TREEVIEW_DATA); CDialogItem* pDlgItemDrop = (CDialogItem*)pDestItem->GetData()->GetVoid(TREEVIEW_DATA); if (!pDlgItemDrag || !pDlgItemDrop) return; pDoc->ExportMacro(GeGetPluginPath() + String("DragDrop.dmf"), pDlgItemDrag); CDialogItem* pNewItem = pDoc->ImportMacro(GeGetPluginPath() + String("DragDrop.dmf"), pDlgItemDrop); GeFKill(GeGetPluginPath() + String("DragDrop.dmf")); if (pNewItem) { TreeViewItem* pNewTreeItem = pNewItem->m_pTreeViewItem; switch (insertmode) { case INSERT_BEFORE: pNewTreeItem->ChangeParent(pDestItem->GetParent(), pDestItem, nullptr); break; case INSERT_UNDER: pNewTreeItem->ChangeParent(pDestItem, nullptr, nullptr); Open(root, userdata, obj, true); break; default: pNewTreeItem->ChangeParent(pDestItem->GetParent(), nullptr, pDestItem); break; } Select(root, userdata, pNewTreeItem, SELECTION_NEW); } } else { switch (insertmode) { case INSERT_BEFORE: pDragItem->ChangeParent(pDestItem->GetParent(), pDestItem, nullptr); break; case INSERT_UNDER: pDragItem->ChangeParent(pDestItem, nullptr, nullptr); Open(root, userdata, obj, true); break; default: pDragItem->ChangeParent(pDestItem->GetParent(), nullptr, pDestItem); break; } } BaseContainer bc; bc.SetInt32(TREEVIEW_MESSAGE_TYPE, TREEVIEW_STRUCTURE_CHANGE); pTree->m_pParent->Command(pTree->m_lTreeID, bc); pTree->m_pTree->Refresh(); } }
/// *************************************************************************** /// *************************************************************************** Bool RegisterContainerObject(Bool menu) { if (menu) { BaseContainer* menu = nullptr; FindMenuResource("M_EDITOR", "IDS_MENU_OBJECT", &menu); if (menu) { menu->InsData(MENURESOURCE_SEPERATOR, true); menu->InsData(MENURESOURCE_COMMAND, "PLUGIN_CMD_" + LongToString(Ocontainer)); } return true; } _orig_GetInfo = C4DOS.Bo->GetInfo; C4DOS.Bo->GetInfo = _hook_GetInfo; AutoAlloc<BaseBitmap> bmp; bmp->Init(GeGetPluginPath() + "res" + "img" + "ocontainer.png"); return RegisterObjectPlugin( Ocontainer, GeLoadString(IDS_OCONTAINER), OBJECT_GENERATOR, ContainerObject::Alloc, "Ocontainer", bmp, CONTAINEROBJECT_DISKLEVEL); }
/*********************************************************************\ Function name : CHelpMenu::Execute Description : Created at : 26.03.02, @ 11:41:38 Created by : Thomas Kunert Modified by : \*********************************************************************/ Bool CHelpMenu::Execute(BaseDocument *doc) { Filename fn = GeGetPluginPath(); fn += Filename("Doc"); fn += GeLoadString(IDS_HELP_FILE); GeExecuteFile(fn); return true; }
Bool RegisterGradient(void) { Filename fn = GeGetPluginPath()+"res"+"gradienttypes.tif"; AutoAlloc<BaseBitmap> bmp; if (IMAGERESULT_OK!=bmp->Init(fn)) return FALSE; RegisterIcon(200000135,bmp,0*32,0,32,32,ICONFLAG_COPY); RegisterIcon(200000136,bmp,1*32,0,32,32,ICONFLAG_COPY); RegisterIcon(200000137,bmp,2*32,0,32,32,ICONFLAG_COPY); RegisterIcon(200000138,bmp,3*32,0,32,32,ICONFLAG_COPY); RegisterIcon(200000139,bmp,4*32,0,32,32,ICONFLAG_COPY); RegisterIcon(200000140,bmp,5*32,0,32,32,ICONFLAG_COPY); RegisterIcon(200000141,bmp,6*32,0,32,32,ICONFLAG_COPY); RegisterIcon(200000142,bmp,7*32,0,32,32,ICONFLAG_COPY); // be sure to use a unique ID obtained from www.plugincafe.com return RegisterShaderPlugin(1001161,GeLoadString(IDS_SDKGRADIENT),0,SDKGradientClass::Alloc,"Xsdkgradient",0); }
void StringReplace::Init(const String &strBuildVersion) { DateTime dt; BaseContainer bc; char ch[100]; GetDateTimeNow(dt); sprintf_safe(ch, sizeof(ch), "%4d%02d%02d", (int)dt.year, (int)dt.month, (int)dt.day); m_strDate = ch; sprintf_safe(ch, sizeof(ch), "%02d%02d%02d", (int)dt.hour, (int)dt.minute, (int)dt.second); m_strTime = ch; m_strDateTime = m_strDate + "_" + m_strTime; Int32 lVersion = GetC4DVersion(); sprintf_safe(ch, sizeof(ch), "%.3f", ((Float32)lVersion) / 1000.0f); m_strCurrentVersion = ch; m_strStartupPath = GeGetStartupPath().GetString(); m_strPluginPath = GeGetPluginPath().GetString(); m_strBuildVersion = strBuildVersion; bc = GetMachineFeatures(); m_strReleaseLine = bc.GetString(1000001); m_strBuildID = bc.GetString(1000002); }
Bool ApplinkDialog::InitValues(void) { if (!GeDialog::InitValues()) return false; filenamePrefs = GeGetPluginPath()+ "preference.ini"; dirty = false; AutoAlloc<HyperFile> hyperfilePrefs; if(!GeFExist(filenamePrefs, false)) { if (!hyperfilePrefs->Open('coat', filenamePrefs.GetString(), FILEOPEN_WRITE, FILEDIALOG_ANY)) return false; gPreferences.SetString(IDC_TMP_FOLDER, ""); Filename path; #if defined _WIN32 || defined _WIN64 path = GeGetC4DPath(C4D_PATH_MYDOCUMENTS); #elif __APPLE__ path = GeGetC4DPath(C4D_PATH_HOME); #endif //file magic! Filename exFolder = path + "3D-CoatV3" + "Exchange"; if(GeFExist(exFolder, true)) { gPreferences.SetString(IDC_EXCH_FOLDER, exFolder.GetString()); } else { exFolder = path + "3D-CoatV4" + "Exchange"; if (GeFExist(exFolder, true)) { gPreferences.SetString(IDC_EXCH_FOLDER, exFolder.GetString()); } else { GePrint("Not Find"); #if defined _WIN32 || defined _WIN64 GePrint(String("Folder ..\\MyDocuments\\3D-CoatV3\\Exchange not found!")); #elif __APPLE__ GePrint(String("Folder ../Users/admin/3D-CoatV3/Exchange not found!")); #endif gPreferences.SetString(IDC_EXCH_FOLDER, ""); } } gPreferences.SetInt32(IDC_COMBO_MAP_TYPE, 0); gPreferences.SetBool(IDC_CHK_EXP_MAT, true); gPreferences.SetBool(IDC_CHK_EXP_UV, true); gPreferences.SetBool(IDC_CHK_SKIP_IMP_DIALOG, false); gPreferences.SetBool(IDC_CHK_SKIP_EXP_DIALOG, false); gPreferences.SetBool(IDC_CHK_IMP_MAT, true); gPreferences.SetInt32(IDC_COMBO_MAP_IMPORT, 0); gPreferences.SetBool(IDC_CHK_IMP_UV, true); gPreferences.SetBool(IDC_CHK_REPLACE, true); gPreferences.SetBool(IDC_CHK_PROMPT, false); gPreferences.SetString(IDC_COAT_EXE_PATH, ""); gPreferences.SetBool(IDC_CHK_COAT_START, false); hyperfilePrefs->WriteContainer(gPreferences); hyperfilePrefs->Close(); } if(!hyperfilePrefs->Open('coat', filenamePrefs.GetString(), FILEOPEN_READ, FILEDIALOG_ANY)) return false; hyperfilePrefs->ReadContainer(&gPreferences, true); hyperfilePrefs->Close(); SetString(IDC_TMP_FOLDER, gPreferences.GetString(IDC_TMP_FOLDER)); SetString(IDC_EXCH_FOLDER, gPreferences.GetString(IDC_EXCH_FOLDER)); SetInt32(IDC_COMBO_MAP_TYPE, gPreferences.GetInt32(IDC_COMBO_MAP_TYPE)); SetBool(IDC_CHK_EXP_MAT, gPreferences.GetBool(IDC_CHK_EXP_MAT)); SetBool(IDC_CHK_EXP_UV, gPreferences.GetBool(IDC_CHK_EXP_UV)); SetBool(IDC_CHK_SKIP_IMP_DIALOG, gPreferences.GetBool(IDC_CHK_SKIP_IMP_DIALOG)); SetBool(IDC_CHK_SKIP_EXP_DIALOG, gPreferences.GetBool(IDC_CHK_SKIP_EXP_DIALOG)); SetBool(IDC_CHK_IMP_MAT, gPreferences.GetBool(IDC_CHK_IMP_MAT)); SetInt32(IDC_COMBO_MAP_IMPORT, gPreferences.GetInt32(IDC_COMBO_MAP_IMPORT)); SetBool(IDC_CHK_IMP_UV, gPreferences.GetBool(IDC_CHK_IMP_UV)); SetBool(IDC_CHK_REPLACE, gPreferences.GetBool(IDC_CHK_REPLACE)); SetBool(IDC_CHK_PROMPT, gPreferences.GetBool(IDC_CHK_PROMPT)); SetString(IDC_COAT_EXE_PATH, gPreferences.GetString(IDC_COAT_EXE_PATH)); SetBool(IDC_CHK_COAT_START, gPreferences.GetBool(IDC_CHK_COAT_START)); #ifdef __APPLE__ //------------ temp //Enable(IDC_CHK_COAT_START, false); //Enable(IDC_COAT_EXE_PATH, false); //------------- // SetString(IDS_STATIC12, "Folder ../Users/user/3D-CoatV3/Exchange not found!"); #endif SetTimer(1000); return true; }
static void loadBitmap(BaseBitmap *&bmp, const char *filename){ bmp = BaseBitmap::Alloc(); bmp->Init(GeGetPluginPath() + Filename("res") + Filename(filename)); }
void Color::LoadICCProfiles() { if(m_iccSearchPaths!= NULL){ delete m_iccSearchPaths; } const Int32 NUMSEARCHPATHS = 4; m_iccSearchPaths = new String[NUMSEARCHPATHS]; Filename cmykDir = GeGetPluginPath(); cmykDir += Filename(String("cmyk")); m_iccSearchPaths[0] = cmykDir.GetString(); m_iccSearchPaths[1] = "/Library/ColorSync/Profiles/"; m_iccSearchPaths[2] = "/Users/vidarn/Library/ColorSync"; m_iccSearchPaths[3] = "C:\\Windows\\System32\\Spool\\Drivers\\Color\\"; Logger::AddLine("Creating LAB profile",1); m_LABProfile = cmsCreateLab4Profile(NULL); Logger::AddLine("Creating default sRGB profile",1); m_displayProfile = cmsCreate_sRGBProfile(); m_RGBProfiles.Insert(vnColorProfile("sRGB",m_displayProfile),0); for(Int32 i=0;i<NUMSEARCHPATHS;++i){ BrowseFiles* bf = BrowseFiles::Alloc(); Filename dir(m_iccSearchPaths[i]); bf->Init(dir,FALSE); int RGBPos = m_RGBProfiles.GetCount(); int CMYKPos = m_CMYKProfiles.GetCount(); int spotPos = m_spotProfiles.GetCount(); if (bf) { while (bf->GetNext()) { Filename fileName = bf->GetFilename(); fileName.SetDirectory(dir); String str = fileName.GetString(); Char *buffer = new Char[str.GetCStringLen()+1]; str.GetCString(buffer,str.GetCStringLen()+1); Logger::AddLine(buffer,1); cmsHPROFILE profile = cmsOpenProfileFromFile(buffer, "r"); if(profile != NULL){ cmsColorSpaceSignature sig = cmsGetColorSpace(profile); Int32 length = cmsGetProfileInfoASCII(profile,cmsInfoDescription,"en","US",NULL,0); Char *buffer2 = new Char[length]; cmsGetProfileInfoASCII(profile,cmsInfoDescription,"en","US",buffer2,length); String info(buffer2); int pt = _cmsLCMScolorSpace(sig); if(PT_RGB == pt){ Logger::AddLine("RGB profile",1); m_RGBProfiles.Insert(vnColorProfile(info,profile),RGBPos); RGBPos++; } if(PT_CMYK == pt){ cmsHTRANSFORM xform = cmsCreateTransform(profile,TYPE_NAMED_COLOR_INDEX,m_displayProfile,TYPE_RGB_DBL,INTENT_PERCEPTUAL,0); if(xform != NULL){ cmsNAMEDCOLORLIST* colorList = cmsGetNamedColorList(xform); if(colorList != NULL){ m_spotProfiles.Insert(vnColorProfile(info,profile),spotPos); spotPos++; } else{ Logger::AddLine("CMYK profile",1); m_CMYKProfiles.Insert(vnColorProfile(info,profile),CMYKPos); CMYKPos++; } cmsDeleteTransform(xform); } } delete buffer2; } else { Logger::AddLine("Invalid",1); } delete buffer; } } BrowseFiles::Free(bf); } }
Bool ApplinkDialog::InitValues(void) { if (!GeDialog::InitValues()) return FALSE; filenamePrefs = GeGetPluginPath()+ "preference.ini"; dirty = FALSE; AutoAlloc<HyperFile> hyperfilePrefs; if(!GeFExist(filenamePrefs, FALSE)) { if (!hyperfilePrefs->Open(filenamePrefs.GetString(), GE_WRITE, FILE_NODIALOG)) return FALSE; gPreferences.SetString(IDC_TMP_FOLDER, ""); Filename exFolder = GeGetC4DPath(C4D_PATH_MYDOCUMENTS) + "3D-CoatV3" + "Exchange"; if(GeFExist(exFolder, TRUE)) { gPreferences.SetString(IDC_EXCH_FOLDER, exFolder.GetString()); } else { GePrint(String("Folder ..\\MyDocuments\\3D-CoatV3\\Exchange not found!")); gPreferences.SetString(IDC_EXCH_FOLDER, ""); } gPreferences.SetLong(IDC_COMBO_MAP_TYPE, 0); gPreferences.SetBool(IDC_CHK_EXP_MAT, TRUE); gPreferences.SetBool(IDC_CHK_EXP_UV, TRUE); gPreferences.SetBool(IDC_CHK_IMP_MAT, TRUE); gPreferences.SetLong(IDC_COMBO_MAP_IMPORT, 0); gPreferences.SetBool(IDC_CHK_IMP_UV, TRUE); gPreferences.SetBool(IDC_CHK_REPLACE, TRUE); gPreferences.SetBool(IDC_CHK_PROMPT, FALSE); gPreferences.SetString(IDC_COAT_EXE_PATH, ""); gPreferences.SetBool(IDC_CHK_COAT_START, FALSE); hyperfilePrefs->WriteContainer(gPreferences); hyperfilePrefs->Close(); } if(!hyperfilePrefs->Open(filenamePrefs.GetString(), GE_READ, FILE_NODIALOG)) return FALSE; hyperfilePrefs->ReadContainer(&gPreferences, TRUE); hyperfilePrefs->Close(); SetString(IDC_TMP_FOLDER, gPreferences.GetString(IDC_TMP_FOLDER)); SetString(IDC_EXCH_FOLDER, gPreferences.GetString(IDC_EXCH_FOLDER)); SetLong(IDC_COMBO_MAP_TYPE, gPreferences.GetLong(IDC_COMBO_MAP_TYPE)); SetBool(IDC_CHK_EXP_MAT, gPreferences.GetBool(IDC_CHK_EXP_MAT)); SetBool(IDC_CHK_EXP_UV, gPreferences.GetBool(IDC_CHK_EXP_UV)); SetBool(IDC_CHK_IMP_MAT, gPreferences.GetBool(IDC_CHK_IMP_MAT)); SetLong(IDC_COMBO_MAP_IMPORT, gPreferences.GetLong(IDC_COMBO_MAP_IMPORT)); SetBool(IDC_CHK_IMP_UV, gPreferences.GetBool(IDC_CHK_IMP_UV)); SetBool(IDC_CHK_REPLACE, gPreferences.GetBool(IDC_CHK_REPLACE)); SetBool(IDC_CHK_PROMPT, gPreferences.GetBool(IDC_CHK_PROMPT)); SetString(IDC_COAT_EXE_PATH, gPreferences.GetString(IDC_COAT_EXE_PATH)); SetBool(IDC_CHK_COAT_START, gPreferences.GetBool(IDC_CHK_COAT_START)); SetTimer(1000); return TRUE; }