WB3D Help

Blitz3D Forums/Blitz3D Programming/WB3D Help

Guy Fawkes(Posted 2008) [#1]
Can someone please fix this so that only when you click on the "Open" menu, it will open file request.

Also, can someone please help fix the file extension code, so it shows files like this:

*.mp3
*.mid

instead of:

*.mp3;*.mid

Include "WB3DStyles.bb"

; setup gfx mode.
Graphics3D 800,600,32,2

Global RuntimeWindow_hWnd = WB3D_InitializeGUI(SystemProperty("AppHwnd"),10,10,GraphicsWidth(),GraphicsHeight())
 
Global FrameStart
Global DeltaTime# = 0.1
Global GameTime# = 0
Global FPS = 1200
Global FPSCount = FPS
Global timFPS

Global keypressed
Global menu
 
WB3D_HotKeyEvent MOD_CONTROL,65,1	; ctrl+a
WB3D_HotKeyEvent MOD_CONTROL,76,25	; ctrl+l

; menus
menus = WB3D_WindowMenu(RuntimeWindow_hWnd)
file = WB3D_CreateMenu("File",0,menus,0)
	NewItem = WB3D_CreateMenu("&New "+WB3D_MENUHOTKEY_SPACER+"Ctrl+L",1,file,0) ;: WB3D_AddMenuIcon(file,1,"menuBMPS/MENUNEW.BMP")
			
	OpenItem = WB3D_CreateMenu("Open..",2,file,1) : WB3D_AddMenuIcon(file,2,"menuBMPS/MENULOAD.BMP")
	
;		OpenItem_1 = WB3D_CreateMenu("Open Sub Item 1",43,OpenItem,0) 
;		OpenItem_2 = WB3D_CreateMenu("Open Sub Item 2",20,OpenItem,0) 

		Open = WB3D_CreateMenu("File",menu,OpenItem,0)
		
		extension$ = ".txt,.mp3"
		
		ext$ = FileExtension(extension$)

						 WB3D_OpenFileRequest("..", "..",ext$, "") 		 
				
			If opens = 1 Then DebugLog menu
				
;		If KeyDown(29) And KeyHit(24) = 1 Then WB3D_OpenFileRequest("..", "..", ".mp3", "") 

						
;			SUBOpenItem_1 = WB3D_CreateMenu("Sub Item 1",44,OpenItem_2,0) : WB3D_AddMenuIcon(file,44,"menuBMPS/MENULOAD.BMP") 
;			SUBOpenItem_2 = WB3D_CreateMenu("Sub Item 2",45,OpenItem_2,1) 
;				SUBOpenItem_5 = WB3D_CreateMenu("Sub Item 2",46,SUBOpenItem_2,0)
			
	WB3D_CreateMenu("",0,file,0)
	SaveItem = WB3D_CreateMenu("Save",3,file,0)  : WB3D_AddMenuIcon(file,3,"menuBMPS/MENUSAVE.BMP")
	WB3D_CreateMenu("",0,file,0)
	QuitItem = WB3D_CreateMenu("Quit",4,file,0) : WB3D_AddMenuIcon(file,4,"menuBMPS/MENUQUIT.BMP")

editmenu_window_1 = WB3D_CreateMenu("Edit",0,menus,0)
	CutItem = WB3D_CreateMenu("Cut",5,editmenu_window_1,0) ;: WB3D_AddMenuIcon(editmenu_window_1,5,"menuBMPS/MENUCUT.BMP")
	CopyItem = WB3D_CreateMenu("Copy",6,editmenu_window_1,0) ;: WB3D_AddMenuIcon(editmenu_window_1,6,"menuBMPS/MENUCOPY.BMP")
	PasteItem = WB3D_CreateMenu("Paste",7,editmenu_window_1,0) ;: WB3D_AddMenuIcon(editmenu_window_1,7,"menuBMPS/menupaste.BMP")
 
	WB3D_RadiocheckMenu editmenu_window_1,5,7,6
		
WB3D_UpdateWindowMenu(RuntimeWindow_hWnd)


statusbar = WB3D_CreateStatusBar(RuntimeWindow_hWnd,"")
WB3D_SetStatusParts statusbar,0

WB3D_StatusPartWidth(statusbar,0,150)
;WB3D_StatusPartWidth(statusbar,1,50)
;WB3D_StatusPartWidth(statusbar,2,50)
;WB3D_StatusPartWidth(statusbar,3,200)
;WB3D_StatusPartWidth(statusbar,4,-1)


;WB3D_SetStatusText statusbar,1,"part 1"
;WB3D_SetStatusText statusbar,2,"part 2"
;WB3D_SetStatusText statusbar,3,"part 3"
;WB3D_SetStatusText statusbar,4,"part 4"

WB3D_UpdateStatusbar statusbar

; cleanup any old creation events, its better to do this before we enter the main
; event loop, when some gadgets are created they generate events.
WB3D_FlushEvents 

; setup out quit flag, and loop until the flag is set.
QUIT = 0
While Not QUIT = 1

    ; Frame Update
    FrameStart = MilliSecs()
    If timFPS < FrameStart Then
        FPS = FPSCount
        FPSCount = 0
        timFPS = FrameStart + 1000
        DeltaTime = 1.0 / Float(FPS)
        GameTime = GameTime + DeltaTime
    End If

WB3D_SetStatusText statusbar,0,"FPS: "+FPS
 
	; generate an internal blitz event
	Flip
		
	; get an event of the event queue.
	event = WB3D_WaitEvent()
	
	Select event
					
		Case WB3D_EVENT_MENU
						
		If menu = 43
										
		EndIf
							
		Case WB3D_EVENT_KEYPRESS
		
			; wb_eventdata holds the key code that was pressed.
			keypressed = WB3D_EventData()
			DebugLog "Keypressed: "+keypressed + " : " + "flag: "+WB3D_EventFlagKey() 
			
			Select keypressed
							
				;Case WB3D_KEY_CONTROL
				;	DebugLog "Keypressed: "+ + " : " + flagkey

					
				Case WB3D_KEY_ESCAPE	
					
					; set the flag to leave the loop.
					QUIT = 1
					
			End Select
				
		Case WB3D_EVENT_WINDOW_CLOSE
			;WB3D_ShowGadget RuntimeWindow_hWnd

			Select WB3D_EventSource()
				Case RuntimeWindow_hWnd
					QUIT = 1
										
					;state = WB3D_Notify("Quit","Save changes",MB_YESNOCANCEL)
					;Select state
					;
					;	Case IDCANCEL
					;	
					;	Case IDYES	
					;	
					;	Case IDNO
					;		QUIT = 1
					;			
					;End Select
					
				
			End Select
			
	End Select
	
    FPSCount = FPSCount + 1

Flip

Wend

Function FileExtension$(ext$)

For I% = Len(ext$) To 1 Step -1

If Mid$(ext$, I%,1) = "," Then Return "*"+Left(ext$, I%-1)+";"+"*"+ Right$(ext$, I%-1)

Next

End Function

Function FileName$(File$)
For I% = Len(File$) To 1 Step -1
	If Mid(File$, I%, 1) = "\" Or Mid(File$, I%, 1) = "/" Then Return Mid(File$, I% + 1)
	Next
Return File$
End Function

Function FileExtention$(File$)
For I% = Len(File$) To 1 Step -1
	If Mid(File$, I%, 1) = "." Return "."+Mid(File$, I% + 1)
	If Mid(File$, I%, 1) = "\" Or Mid(File$, I%, 1) = "/" Then Return ""
	Next
End Function

Function FilePath$(File$)
For I% = Len(File$) To 1 Step -1
	If Mid(File$, I%, 1) = "\" Or Mid(File$, I%, 1) = "/" Then Return Left(File$, I% - 1)
	Next
End Function

; Adds a file extention, if not exists. | FEt eine Dateiendung hinzu falls noch keine da ist.
Function AddFileExtention$(File$, Extention$)
If FileExtention(File$) = "" Then Return File$ + "." + Extention$ Else Return File$
End Function

; use notify using external winapi constants. 
WB3D_Notify "WB3D GUI Window Example","Bye, Thats It I Quit",MB_OK Or MB_ICONASTERISK
WB3D_EndGUI()
EndGraphics
End


Thanks to anyone who can help! =)

~DarkShadowWing~


John Blackledge(Posted 2008) [#2]
You're trying to do an OpenFile during menu creation????

Anyway...
ext$ = "*.bmp;*.jpg;*.png"+Chr(0)+"*.bmp;*.jpg;*.png"+Chr(0)
file$ = WB3D_OpenFileRequest("Load Colour Map","Terrain\",ext$,"")


Guy Fawkes(Posted 2008) [#3]
how do i get the cancel event for open file? you know, the cancel button in open file?

~DarkShadowWing~


John Blackledge(Posted 2008) [#4]
Check if WB3D_OpenFileRequest() returns ""