diff --git a/src/editor/C4ConsoleWin32.cpp b/src/editor/C4ConsoleWin32.cpp index 6dbe41f67..98d9e0bb0 100644 --- a/src/editor/C4ConsoleWin32.cpp +++ b/src/editor/C4ConsoleWin32.cpp @@ -331,6 +331,7 @@ public: hbmExact(0) { pPreviewWindow = NULL; + toolsDlg->ModeBack = true; } void LoadBitmaps(HINSTANCE instance) @@ -345,8 +346,6 @@ public: if (!hbmRect2) hbmRect2=(HBITMAP)LoadBitmapW(instance,MAKEINTRESOURCEW(IDB_RECT2)); if (!hbmFill2) hbmFill2=(HBITMAP)LoadBitmapW(instance,MAKEINTRESOURCEW(IDB_FILL2)); if (!hbmPicker2) hbmPicker2=(HBITMAP)LoadBitmapW(instance,MAKEINTRESOURCEW(IDB_PICKER2)); - if (!hbmIFT) hbmIFT=(HBITMAP)LoadBitmapW(instance,MAKEINTRESOURCEW(IDB_IFT)); - if (!hbmNoIFT) hbmNoIFT=(HBITMAP)LoadBitmapW(instance,MAKEINTRESOURCEW(IDB_NOIFT)); if (!hbmDynamic) hbmDynamic=(HBITMAP)LoadBitmapW(instance,MAKEINTRESOURCEW(IDB_DYNAMIC)); if (!hbmStatic) hbmStatic=(HBITMAP)LoadBitmapW(instance,MAKEINTRESOURCEW(IDB_STATIC)); if (!hbmExact) hbmExact=(HBITMAP)LoadBitmapW(instance,MAKEINTRESOURCEW(IDB_EXACT)); @@ -461,43 +460,33 @@ INT_PTR CALLBACK ToolsDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) Console.ToolsDlg.SetTool(C4TLS_Picker, false); return true; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - case IDC_BUTTONIFT: - Console.ToolsDlg.SetIFT(true); - return true; - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - case IDC_BUTTONNOIFT: - Console.ToolsDlg.SetIFT(false); - return true; - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - case IDC_COMBOMATERIAL: + case IDC_COMBOFGMATERIAL: case IDC_COMBOBGMATERIAL: + case IDC_COMBOFGTEXTURE: case IDC_COMBOBGTEXTURE: switch (HIWORD(wParam)) { case CBN_SELCHANGE: { + // New material or texture selected. Get selection string wchar_t str[100]; - int32_t cursel = SendDlgItemMessage(hDlg,IDC_COMBOMATERIAL,CB_GETCURSEL,0,0); - SendDlgItemMessage(hDlg,IDC_COMBOMATERIAL,CB_GETLBTEXT,cursel,(LPARAM)str); - Console.ToolsDlg.SetMaterial(StdStrBuf(str).getData()); - break; - } - } - return true; - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - case IDC_COMBOTEXTURE: - switch (HIWORD(wParam)) - { - case CBN_SELCHANGE: - { - wchar_t str[100]; - int32_t cursel = SendDlgItemMessage(hDlg,IDC_COMBOTEXTURE,CB_GETCURSEL,0,0); - SendDlgItemMessage(hDlg,IDC_COMBOTEXTURE,CB_GETLBTEXT,cursel,(LPARAM)str); - Console.ToolsDlg.SetTexture(StdStrBuf(str).getData()); - break; - } + WORD idCombo = LOWORD(wParam); + int32_t cursel = SendDlgItemMessage(hDlg, idCombo, CB_GETCURSEL, 0, 0); + SendDlgItemMessage(hDlg, idCombo, CB_GETLBTEXT, cursel, (LPARAM)str); + // Convert to ascii + StdStrBuf str_buf(str); + const char *astr = str_buf.getData(); + // Update appropriate setting in drawing tool + switch (idCombo) + { + case IDC_COMBOFGMATERIAL: Console.ToolsDlg.SetMaterial(astr); break; + case IDC_COMBOFGTEXTURE: Console.ToolsDlg.SetTexture(astr); break; + case IDC_COMBOBGMATERIAL: Console.ToolsDlg.SetBackMaterial(astr); break; + case IDC_COMBOBGTEXTURE: Console.ToolsDlg.SetBackTexture(astr); break; + } } return true; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - } + } return false; //---------------------------------------------------------------------------------------- } @@ -947,6 +936,8 @@ bool C4ConsoleGUI::ToolsDlgOpen(C4ToolsDlg *dlg) SetWindowTextW(dlg->state->hDialog,LoadResStrW("IDS_DLG_TOOLS")); SetDlgItemTextW(dlg->state->hDialog,IDC_STATICMATERIAL,LoadResStrW("IDS_CTL_MATERIAL")); SetDlgItemTextW(dlg->state->hDialog,IDC_STATICTEXTURE,LoadResStrW("IDS_CTL_TEXTURE")); + SetDlgItemTextW(dlg->state->hDialog, IDC_STATICFOREGROUND, LoadResStrW("IDS_CTL_FOREGROUND")); + SetDlgItemTextW(dlg->state->hDialog, IDC_STATICBACKGROUND, LoadResStrW("IDS_CTL_BACKGROUND")); // Load bitmaps if necessary dlg->state->LoadBitmaps(Application.GetInstance()); // create target ctx for OpenGL rendering @@ -963,10 +954,32 @@ bool C4ConsoleGUI::ToolsDlgOpen(C4ToolsDlg *dlg) void C4ConsoleGUI::ToolsDlgInitMaterialCtrls(class C4ToolsDlg *dlg) { - SendDlgItemMessage(dlg->state->hDialog,IDC_COMBOMATERIAL,CB_ADDSTRING,0,GetWideLPARAM(C4TLS_MatSky)); - for (int32_t cnt=0; cnt< ::MaterialMap.Num; cnt++) - SendDlgItemMessage(dlg->state->hDialog,IDC_COMBOMATERIAL,CB_ADDSTRING,0,GetWideLPARAM(::MaterialMap.Map[cnt].Name)); - SendDlgItemMessage(dlg->state->hDialog,IDC_COMBOMATERIAL,CB_SELECTSTRING,0,GetWideLPARAM(dlg->Material)); + // All foreground materials + SendDlgItemMessage(dlg->state->hDialog, IDC_COMBOFGMATERIAL,CB_ADDSTRING,0,GetWideLPARAM(C4TLS_MatSky)); + for (int32_t cnt = 0; cnt < ::MaterialMap.Num; cnt++) + { + SendDlgItemMessage(dlg->state->hDialog, IDC_COMBOFGMATERIAL, CB_ADDSTRING, 0, GetWideLPARAM(::MaterialMap.Map[cnt].Name)); + } + // Background materials: True background materials first; then the "funny" stuff + SendDlgItemMessage(dlg->state->hDialog, IDC_COMBOBGMATERIAL, CB_ADDSTRING, 0, GetWideLPARAM(C4TLS_MatSky)); + for (int32_t cnt = 0; cnt < ::MaterialMap.Num; cnt++) + { + if (::MaterialMap.Map[cnt].Density == C4M_Background) + { + SendDlgItemMessage(dlg->state->hDialog, IDC_COMBOBGMATERIAL, CB_ADDSTRING, 0, GetWideLPARAM(::MaterialMap.Map[cnt].Name)); + } + } + SendDlgItemMessage(dlg->state->hDialog, IDC_COMBOBGMATERIAL, CB_ADDSTRING, 0, (LPARAM)L"----------"); + for (int32_t cnt = 0; cnt < ::MaterialMap.Num; cnt++) + { + if (::MaterialMap.Map[cnt].Density != C4M_Background) + { + SendDlgItemMessage(dlg->state->hDialog, IDC_COMBOBGMATERIAL, CB_ADDSTRING, 0, GetWideLPARAM(::MaterialMap.Map[cnt].Name)); + } + } + // Select current materials + SendDlgItemMessage(dlg->state->hDialog,IDC_COMBOFGMATERIAL,CB_SELECTSTRING,0,GetWideLPARAM(dlg->Material)); + SendDlgItemMessage(dlg->state->hDialog, IDC_COMBOBGMATERIAL, CB_SELECTSTRING, 0, GetWideLPARAM(dlg->BackMaterial)); } void C4ToolsDlg::UpdateToolCtrls() @@ -987,61 +1000,71 @@ void C4ToolsDlg::UpdateToolCtrls() void C4ConsoleGUI::ToolsDlgSelectTexture(C4ToolsDlg *dlg, const char *texture) { - SendDlgItemMessage(dlg->state->hDialog,IDC_COMBOTEXTURE,CB_SELECTSTRING,0,GetWideLPARAM(texture)); + SendDlgItemMessage(dlg->state->hDialog,IDC_COMBOFGTEXTURE,CB_SELECTSTRING,0,GetWideLPARAM(texture)); } void C4ConsoleGUI::ToolsDlgSelectMaterial(C4ToolsDlg *dlg, const char *material) { - SendDlgItemMessage(dlg->state->hDialog,IDC_COMBOMATERIAL,CB_SELECTSTRING,0,GetWideLPARAM(material)); + SendDlgItemMessage(dlg->state->hDialog,IDC_COMBOFGMATERIAL,CB_SELECTSTRING,0,GetWideLPARAM(material)); } void C4ConsoleGUI::ToolsDlgSelectBackTexture(C4ToolsDlg *dlg, const char *texture) { - // TODO + SendDlgItemMessage(dlg->state->hDialog, IDC_COMBOBGTEXTURE, CB_SELECTSTRING, 0, GetWideLPARAM(texture)); } void C4ConsoleGUI::ToolsDlgSelectBackMaterial(C4ToolsDlg *dlg, const char *material) { - // TODO + SendDlgItemMessage(dlg->state->hDialog, IDC_COMBOBGMATERIAL, CB_SELECTSTRING, 0, GetWideLPARAM(material)); } void C4ToolsDlg::UpdateTextures() { - // Refill dlg - SendDlgItemMessage(state->hDialog,IDC_COMBOTEXTURE,CB_RESETCONTENT,0,(LPARAM)0); - // bottom-most: any invalid textures - bool fAnyEntry = false; int32_t cnt; const char *szTexture; - if (::Landscape.Mode!=C4LSC_Exact) - for (cnt=0; (szTexture=::TextureMap.GetTexture(cnt)); cnt++) - { - if (!::TextureMap.GetIndex(Material, szTexture, false)) + // Refill foreground and background combo boxes in dlg + WORD boxes[2] = { IDC_COMBOFGTEXTURE, IDC_COMBOBGTEXTURE }; + const char *materials[2] = { Material, BackMaterial }; + const char *textures[2] = { Texture, BackTexture }; + for (int i = 0; i < 2; ++i) + { + WORD box = boxes[i]; + const char *material = materials[i]; + const char *texture = textures[i]; + // clear previous + SendDlgItemMessage(state->hDialog, box, CB_RESETCONTENT, 0, (LPARAM)0); + // bottom-most: any invalid textures + bool fAnyEntry = false; int32_t cnt; const char *szTexture; + if (::Landscape.Mode != C4LSC_Exact) + for (cnt = 0; (szTexture = ::TextureMap.GetTexture(cnt)); cnt++) { - // hide normal maps from texture selection - // theoretically, they could be used for drawing but they clutter the list and they don't look good - if (!WildcardMatch("*_NRM", szTexture)) + if (!::TextureMap.GetIndex(material, szTexture, false)) { - fAnyEntry = true; - SendDlgItemMessage(state->hDialog, IDC_COMBOTEXTURE, CB_INSERTSTRING, 0, GetWideLPARAM(szTexture)); + // hide normal maps from texture selection + // theoretically, they could be used for drawing but they clutter the list and they don't look good + if (!WildcardMatch("*_NRM", szTexture)) + { + fAnyEntry = true; + SendDlgItemMessage(state->hDialog, box, CB_INSERTSTRING, 0, GetWideLPARAM(szTexture)); + } } } - } - // separator - if (fAnyEntry) - { - SendDlgItemMessage(state->hDialog,IDC_COMBOTEXTURE,CB_INSERTSTRING,0,(LPARAM)L"-------"); - } - - // atop: valid textures - for (cnt=0; (szTexture=::TextureMap.GetTexture(cnt)); cnt++) - { - // Current material-texture valid? Always valid for exact mode - if (::TextureMap.GetIndex(Material,szTexture,false) || ::Landscape.Mode==C4LSC_Exact) + // separator + if (fAnyEntry) { - SendDlgItemMessage(state->hDialog,IDC_COMBOTEXTURE,CB_INSERTSTRING,0,GetWideLPARAM(szTexture)); + SendDlgItemMessage(state->hDialog, box, CB_INSERTSTRING, 0, (LPARAM)L"-------"); } + + // atop: valid textures + for (cnt = 0; (szTexture = ::TextureMap.GetTexture(cnt)); cnt++) + { + // Current material-texture valid? Always valid for exact mode + if (::TextureMap.GetIndex(material, szTexture, false) || ::Landscape.Mode == C4LSC_Exact) + { + SendDlgItemMessage(state->hDialog, box, CB_INSERTSTRING, 0, GetWideLPARAM(szTexture)); + } + } + // reselect current + SendDlgItemMessage(state->hDialog, box, CB_SELECTSTRING, 0, GetWideLPARAM(texture)); } - // reselect current - SendDlgItemMessage(state->hDialog,IDC_COMBOTEXTURE,CB_SELECTSTRING,0,GetWideLPARAM(Texture)); } void C4ToolsDlg::NeedPreviewUpdate() @@ -1114,27 +1137,22 @@ void C4ToolsDlg::InitGradeCtrl() bool C4ToolsDlg::PopMaterial() { if (!state->hDialog) return false; - SetFocus(GetDlgItem(state->hDialog,IDC_COMBOMATERIAL)); - SendDlgItemMessage(state->hDialog,IDC_COMBOMATERIAL,CB_SHOWDROPDOWN,true,0); + SetFocus(GetDlgItem(state->hDialog,IDC_COMBOFGMATERIAL)); + SendDlgItemMessage(state->hDialog,IDC_COMBOFGMATERIAL,CB_SHOWDROPDOWN,true,0); return true; } bool C4ToolsDlg::PopTextures() { if (!state->hDialog) return false; - SetFocus(GetDlgItem(state->hDialog,IDC_COMBOTEXTURE)); - SendDlgItemMessage(state->hDialog,IDC_COMBOTEXTURE,CB_SHOWDROPDOWN,true,0); + SetFocus(GetDlgItem(state->hDialog,IDC_COMBOFGTEXTURE)); + SendDlgItemMessage(state->hDialog,IDC_COMBOFGTEXTURE,CB_SHOWDROPDOWN,true,0); return true; } void C4ToolsDlg::UpdateIFTControls() { - if (!state->hDialog) - return; - SendDlgItemMessage(state->hDialog,IDC_BUTTONNOIFT,BM_SETSTATE,(ModeIFT==0),0); - UpdateWindow(GetDlgItem(state->hDialog,IDC_BUTTONNOIFT)); - SendDlgItemMessage(state->hDialog,IDC_BUTTONIFT,BM_SETSTATE,(ModeIFT==1),0); - UpdateWindow(GetDlgItem(state->hDialog,IDC_BUTTONIFT)); + // not using IFT } void C4ToolsDlg::UpdateLandscapeModeCtrls() @@ -1166,8 +1184,6 @@ void C4ToolsDlg::EnableControls() SendDlgItemMessage(hDialog,IDC_BUTTONRECT,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)((iLandscapeMode>=C4LSC_Static) ? state->hbmRect : state->hbmRect2)); SendDlgItemMessage(hDialog,IDC_BUTTONFILL,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)((iLandscapeMode>=C4LSC_Exact) ? state->hbmFill : state->hbmFill2)); SendDlgItemMessage(hDialog,IDC_BUTTONPICKER,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)((iLandscapeMode>=C4LSC_Static) ? state->hbmPicker : state->hbmPicker2)); - SendDlgItemMessage(hDialog,IDC_BUTTONIFT,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)state->hbmIFT); - SendDlgItemMessage(hDialog,IDC_BUTTONNOIFT,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)state->hbmNoIFT); SendDlgItemMessage(hDialog,IDC_BUTTONMODEDYNAMIC,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)state->hbmDynamic); SendDlgItemMessage(hDialog,IDC_BUTTONMODESTATIC,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)state->hbmStatic); SendDlgItemMessage(hDialog,IDC_BUTTONMODEEXACT,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)state->hbmExact); @@ -1177,12 +1193,14 @@ void C4ToolsDlg::EnableControls() EnableWindow(GetDlgItem(hDialog,IDC_BUTTONRECT),(iLandscapeMode>=C4LSC_Static)); EnableWindow(GetDlgItem(hDialog,IDC_BUTTONFILL),(iLandscapeMode>=C4LSC_Exact)); EnableWindow(GetDlgItem(hDialog,IDC_BUTTONPICKER),(iLandscapeMode>=C4LSC_Static)); - EnableWindow(GetDlgItem(hDialog,IDC_BUTTONIFT),(iLandscapeMode>=C4LSC_Static)); - EnableWindow(GetDlgItem(hDialog,IDC_BUTTONNOIFT),(iLandscapeMode>=C4LSC_Static)); - EnableWindow(GetDlgItem(hDialog,IDC_COMBOMATERIAL),(iLandscapeMode>=C4LSC_Static)); - EnableWindow(GetDlgItem(hDialog,IDC_COMBOTEXTURE),(iLandscapeMode>=C4LSC_Static) && !SEqual(Material,C4TLS_MatSky)); + EnableWindow(GetDlgItem(hDialog,IDC_COMBOFGMATERIAL),(iLandscapeMode>=C4LSC_Static)); + EnableWindow(GetDlgItem(hDialog,IDC_COMBOFGTEXTURE),(iLandscapeMode>=C4LSC_Static) && !SEqual(Material,C4TLS_MatSky)); + EnableWindow(GetDlgItem(hDialog,IDC_COMBOBGMATERIAL), (iLandscapeMode >= C4LSC_Static) && !SEqual(Material, C4TLS_MatSky)); + EnableWindow(GetDlgItem(hDialog, IDC_COMBOBGTEXTURE), (iLandscapeMode >= C4LSC_Static) && !SEqual(Material, C4TLS_MatSky) && !SEqual(BackMaterial, C4TLS_MatSky)); EnableWindow(GetDlgItem(hDialog,IDC_STATICMATERIAL),(iLandscapeMode>=C4LSC_Static)); EnableWindow(GetDlgItem(hDialog,IDC_STATICTEXTURE),(iLandscapeMode>=C4LSC_Static) && !SEqual(Material,C4TLS_MatSky)); + EnableWindow(GetDlgItem(hDialog,IDC_STATICFOREGROUND), (iLandscapeMode >= C4LSC_Static)); + EnableWindow(GetDlgItem(hDialog,IDC_STATICBACKGROUND), (iLandscapeMode >= C4LSC_Static)); EnableWindow(GetDlgItem(hDialog,IDC_SLIDERGRADE),(iLandscapeMode>=C4LSC_Static)); EnableWindow(GetDlgItem(hDialog,IDC_PREVIEW),(iLandscapeMode>=C4LSC_Static)); diff --git a/src/res/engine.rc b/src/res/engine.rc index 158832579..2f07cf8b9 100644 --- a/src/res/engine.rc +++ b/src/res/engine.rc @@ -136,7 +136,7 @@ BEGIN 22,114,12,WS_EX_STATICEDGE END -IDD_TOOLS DIALOGEX 0, 0, 194, 55 +IDD_TOOLS DIALOGEX 0, 0, 335, 55 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION CAPTION "TOOLS" FONT 8, "MS Sans Serif", 0, 0, 0x1 @@ -147,13 +147,17 @@ BEGIN PUSHBUTTON "Button1",IDC_BUTTONFILL,92,2,16,16,BS_BITMAP CONTROL "Slider1",IDC_SLIDERGRADE,"msctls_trackbar32",TBS_VERT | TBS_TOP | TBS_NOTICKS | WS_TABSTOP,59,18,10,36 - LTEXT "MATERIAL",IDC_STATICMATERIAL,112,3,78,8 - LTEXT "TEXTURE",IDC_STATICTEXTURE,112,27,78,8 - PUSHBUTTON "",IDC_BUTTONNOIFT,71,20,18,15,BS_BITMAP - PUSHBUTTON "",IDC_BUTTONIFT,71,36,18,15,BS_BITMAP - COMBOBOX IDC_COMBOMATERIAL,112,12,78,100,CBS_DROPDOWNLIST | - CBS_SORT | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_COMBOTEXTURE,112,36,78,100,CBS_DROPDOWNLIST | + LTEXT "MATERIAL",IDC_STATICMATERIAL,168,6,78,8 + LTEXT "TEXTURE",IDC_STATICTEXTURE,255,6,78,8 + LTEXT "FOREGROUND",IDC_STATICFOREGROUND,108,20,54,8 + LTEXT "BACKGROUND",IDC_STATICBACKGROUND,108,38,54,8 + COMBOBOX IDC_COMBOFGMATERIAL,168,18,78,100,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBOFGTEXTURE,252,18,78,100,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBOBGMATERIAL,168,36,78,100,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBOBGTEXTURE,252,36,78,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP CONTROL "",IDC_PREVIEW,"Static",SS_BLACKFRAME,24,21,33,30, WS_EX_TRANSPARENT | WS_EX_CLIENTEDGE diff --git a/src/res/resource.h b/src/res/resource.h index d71e0d630..5bcdb34ee 100644 --- a/src/res/resource.h +++ b/src/res/resource.h @@ -12,12 +12,10 @@ #define IDB_FILL2 1007 #define IDB_HALT 1008 #define IDB_HALT2 1009 -#define IDB_IFT 1010 #define IDB_LINE 1011 #define IDB_LINE2 1012 #define IDB_MOUSE 1013 #define IDB_MOUSE2 1014 -#define IDB_NOIFT 1015 #define IDB_PICKER 1016 #define IDB_PICKER2 1017 #define IDB_PLAY 1018 @@ -28,7 +26,6 @@ #define IDC_BUTTONBRUSH 2000 #define IDC_BUTTONFILL 2001 #define IDC_BUTTONHALT 2002 -#define IDC_BUTTONIFT 2003 #define IDC_BUTTONLINE 2004 #define IDC_BUTTONMODEDRAW 2005 #define IDC_BUTTONMODEDYNAMIC 2006 @@ -36,14 +33,13 @@ #define IDC_BUTTONMODEEXACT 2008 #define IDC_BUTTONMODEPLAY 2009 #define IDC_BUTTONMODESTATIC 2010 -#define IDC_BUTTONNOIFT 2011 #define IDC_BUTTONPICKER 2012 #define IDC_BUTTONPLAY 2013 #define IDC_BUTTONRECT 2014 #define IDC_BUTTONRELOADDEF 2015 #define IDC_COMBOINPUT 2016 -#define IDC_COMBOMATERIAL 2017 -#define IDC_COMBOTEXTURE 2018 +#define IDC_COMBOFGMATERIAL 2017 +#define IDC_COMBOFGTEXTURE 2018 #define IDC_EDITDATA 2019 #define IDC_EDITOUTPUT 2020 #define IDC_PREVIEW 2021 @@ -61,6 +57,10 @@ #define IDC_GFXERR_YINP 2034 #define IDC_GFXERR_FSCRN 2035 #define IDC_GFXERR_INVAL 2036 +#define IDC_STATICFOREGROUND 2037 +#define IDC_STATICBACKGROUND 2038 +#define IDC_COMBOBGMATERIAL 2039 +#define IDC_COMBOBGTEXTURE 2040 #define IDD_COMPONENT 3000 #define IDD_CONSOLE 3001 #define IDD_PROPERTIES 3002