/* dispose of a menu */ VOID StMObDispose P1C(LVAL, menu) { LVAL menu_list; if (StMObAllocated(menu)) StMObDisposeMach(menu); standard_hardware_clobber(menu); menu_list = GetMenuList(); menu_list = remove_from_list(menu, menu_list); SetMenuList(menu_list); }
/* allocate a menu and enter it into the list of allocated menus */ VOID StMObAllocate P1C(LVAL, menu) { LVAL menu_list; StMObDispose(menu); StMObAllocateMach(menu); StMObEnable(menu, menu_enabled_p(menu)); StMObAppendItems(menu, slot_value(menu, s_items)); menu_list = GetMenuList(); menu_list = xlcallsubr2(xadjoin, menu, menu_list); SetMenuList(menu_list); }
ViewBitmapWin_::ViewBitmapWin_() { Flags |= sGWF_PAINT3D; ShowOp = 0; FullSize = 0; ShowSizeX = 4; ShowSizeY = 4; #if VARIANT==VARIANT_TEXTURE ShowVariant = 0; #else ShowVariant = 2; #endif BitmapX = 10; BitmapY = 10; BitmapTile = 0; BitmapAlpha = 0; BitmapZoom = 5; MtrlEnv.Init(); MtrlEnv.Orthogonal = sMEO_PIXELS; MtrlTex = new sMaterial11; MtrlTex->ShaderLevel = sPS_00; MtrlTex->SetTex(0,0); MtrlTex->TFlags[0] = 0; MtrlTex->Combiner[sMCS_TEX0] = sMCOA_SET; MtrlTex->BaseFlags = sMBF_NONORMAL; MtrlTex->Compile(); MtrlTexAlpha = new sMaterial11; MtrlTexAlpha->CopyFrom(MtrlTex); MtrlTexAlpha->BaseFlags |= sMBF_BLENDALPHA; MtrlTexAlpha->AlphaCombiner = sMCA_TEX0; MtrlTexAlpha->Compile(); if(sSystem->GetShaderLevel()<sPS_11) { MtrlNormal = new sMaterial11; MtrlNormal->CopyFrom(MtrlTex); MtrlNormalLight = new sMaterial11; MtrlNormalLight->CopyFrom(MtrlTex); } else { MtrlNormal = new sMaterial11; MtrlNormal->CopyFrom(MtrlTex); MtrlNormal->ShaderLevel = sPS_11; MtrlNormal->Combiner[sMCS_COLOR0] = sMCOA_SET; MtrlNormal->Combiner[sMCS_TEX0] = sMCOA_MUL; MtrlNormal->Combiner[sMCS_COLOR2] = sMCOA_ADD; MtrlNormal->Color[0] = 0x00808080; MtrlNormal->Color[2] = 0x00808080; MtrlNormal->BaseFlags = sMBF_NONORMAL; MtrlNormal->Compile(); MtrlNormalLight = new sMaterial11; MtrlNormalLight->ShaderLevel = sPS_11; MtrlNormalLight->BaseFlags = sMBF_ZOFF; MtrlNormalLight->LightFlags = sMLF_BUMPX; MtrlNormalLight->SpecPower = 24.0f; MtrlNormalLight->Combiner[sMCS_LIGHT] = sMCOA_SET; MtrlNormalLight->Combiner[sMCS_COLOR0] = sMCOA_MUL; MtrlNormalLight->Color[0] = 0x80c0c0c0; MtrlNormalLight->SetTex(1,0); MtrlNormalLight->TFlags[1] = 0; MtrlNormalLight->Compile(); } { static sGuiMenuList ml[] = { { sGML_COMMAND ,'r' ,CMD_VIEWBMP_RESET ,0,"Reset" }, { sGML_SPACER }, { sGML_CHECKMARK,'t' ,CMD_VIEWBMP_TILE ,sOFFSET(ViewBitmapWin_,BitmapTile) ,"Tile" }, { sGML_CHECKMARK,'a' ,CMD_VIEWBMP_ALPHA ,sOFFSET(ViewBitmapWin_,BitmapAlpha),"Alpha" }, { sGML_CHECKMARK,sKEY_TAB ,CMD_VIEWBMP_FULLSIZE ,sOFFSET(ViewBitmapWin_,FullSize) ,"Full size" }, { 0 }, }; SetMenuList(ml); } Tools = new sToolBorder; Tools->AddLabel(".preview bitmap"); Tools->AddContextMenu(CMD_VIEWBMP_POPUP); sControl *con; con = new sControl; con->EditChoice(0,&ShowSizeX,0,"16|32|64|128|256|512|1024|2048"); con->Style &=~ sCS_FATBORDER; con->Style |= sCS_NOBORDER|sCS_SMALLWIDTH|sCS_DONTCLEARBACK|sCS_FAT; Tools->AddChild(con); con = new sControl; con->EditChoice(0,&ShowSizeY,0,"16|32|64|128|256|512|1024|2048"); con->Style &=~ sCS_FATBORDER; con->Style |= sCS_NOBORDER|sCS_SMALLWIDTH|sCS_DONTCLEARBACK|sCS_FAT; Tools->AddChild(con); con = new sControl; con->EditChoice(0,&ShowVariant,0,"16C|16I|8C|8I"); con->Style &=~ sCS_FATBORDER; con->Style |= sCS_NOBORDER|sCS_SMALLWIDTH|sCS_DONTCLEARBACK|sCS_FAT; Tools->AddChild(con); AddBorder(Tools); }