function onCreated() { this.allowedfiles = { ".png", ".gif", ".bmp", ".jpeg", ".jpg", ".apng", ".mng" }; } function onActionServerSide() { switch(params[0]) { case "getfolder": temp.folder.loadFolder("levels/" @ params[1] @ "/*", false); if (temp.folder == NULL) { triggerclient("gui",name,"error"); } else { for (images : temp.folder) { temp.filebase = extractfilebase(images); temp.imagesuffix = images.substring(temp.filebase.length()); if (imagesuffix in this.allowedfiles) { temp.image_list.add(images); } } waitfor(temp.image_list.add,"",1); triggerclient("gui",name,"addfiles",temp.image_list); } break; case "getheightandwidth": temp.imagewidth = getimgwidth(params[1]); temp.imageheight = getimgheight(params[1]); triggerclient("gui",name,"setwidthandheight",temp.imagewidth,temp.imageheight); break; } } //#CLIENTSIDE function onCreated() { drawGUI(); } function onKeyPressed(code, Key) { if (Key == "V") { if (ImageViewerWindow.visible != true) { ImageViewerWindow.visible = true; } else { ImageViewerWindow.visible = false; } } } function DrawGUI() { new GuiWindowCtrl("ImageViewerWindow") { profile = GuiBlueWindowProfile; width = 525; height = 225; x = screenwidth / 2 - width / 2; y = screenheight / 2 - height / 2; clientrelative = true; clientextent = {width,height}; visible = true; canmaximize = canresize = false; text = "GUI Image Viewer"; new GuiTextEditCtrl("ImageViewerSearchBar") { profile = GuiBlueTextEditProfile; width = 200; height = 25; x = 0; y = 200; active = true; } new GuiTextEditCtrl("ImageViewerImageBar") { profile = GuiBlueTextEditProfile; width = 200; height = 25; x = 325; y = 200; active = true; } new GuiControl("ImageViewerImageBorder") { useownprofile = true; width = 275; height = 200; x = 250; y = 0; profile.border = 0; profile.opaque = true; profile.fillcolor = {255,255,255,255}; new GuiScrollCtrl("ImageViewerImageScroll") { profile = GuiBlueScrollProfile; width = 275; height = 200; x = y = 0; vscrollbar = "dynamic"; hscrollbar = "dynamic"; new GuiShowImgCtrl("ImageViewerImage") { x = y = 0; } } } new GuiTextCtrl("ImageViewerFileCount") { profile = GuiBlueTextProfile; width = 125; height = 25; x = 205; y = 200; text = "File Count: 0"; } new GuiScrollCtrl("ImageViewerScroll") { profile = GuiBlueScrollProfile; width = 250; height = 200; x = y = 0; vscrollbar = "dynamic"; hscrollbar = "dynamic"; new GuiTextListCtrl("ImageViewerList") { profile = GuiBlueTextListProfile; x = y = 0; } } } } /* Gui Actions */ function ImageViewerSearchBar.onAction() { if (ImageViewerSearchBar.text.starts("levels/")) { return; } else { FetchImageList(ImageViewerSearchBar.text); } ImageViewerSearchBar.text = ""; } function ImageViewerList.onSelect() { temp.image = ImageViewerList.selected.text; ImageViewerImage.image = temp.image; triggerserver("gui",name,"getheightandwidth",ImageViewerList.selected.text); } function ImageViewerImageBar.onAction() { ImageViewerImage.image = ImageViewerImageBar.text; triggerserver("gui",name,"getheightandwidth",ImageViewerImageBar.text); ImageViewerImageBar.text = ""; } /* functions */ function FetchImageList(folder) { ImageViewerList.clearrows(); triggerserver("gui",name,"getfolder",folder); } /* action clientside */ function onActionClientSide() { switch(params[0]) { case "addfiles": for (images : params[1]) { ImageViewerList.addrow(0,images); } ImageViewerList.sort(); ImageViewerFileCount.text = "Files:" SPC params[1].size(); break; case "setwidthandheight": ImageViewerImage.width = params[1]; ImageViewerImage.height = params[2]; break; } }