Tabber help
BlitzPlus Forums/BlitzPlus Beginners Area/Tabber help
| ||
Can anyone give me an example of creating a new tab when the menu item new is selected and how to delete them when the menu item delete is selected? I've been working on figuring it out but I can't get it. Thanks |
| ||
Basically, when the user clicks New,AddGadgetItem tabber,"New Tab" And when they hit Delete, If SelectedGadgetItem(tabber)>-1 RemoveGadgetItem tabber,SelectedGadgetItem(tabber) Sorry I couldn't provide an example. That should be enough to get you going. If you need more help, let me know. |
| ||
Why doesn't this work though?Global window=CreateWindow("TAB TEST",0,0,640,480,Desktop(),1+2+4) Dim tabtextareas(10) Dim tabpanels(10) Global tabcount=0 tabber=CreateTabber(0,0,ClientWidth(window),ClientHeight(window),window) SetGadgetLayout tabber,1,1,1,1 tabpanels(tabcount)=CreatePanel(0,0,ClientWidth(tabber),ClientHeight(tabber),tabber) SetGadgetLayout tabpanels(tabcount),1,1,1,1 tabtextareas(tabcount)=CreateTextArea(0,0,ClientWidth(tabpanels(tabcount)),ClientHeight(tabpanels(tabcount)),tabpanels(tabcount)) SetGadgetLayout tabtextareas(tabcount),1,1,1,1 AddGadgetItem tabber,"New Tab",True tabcount=tabcount+1 filemenu=CreateMenu("File",0,WindowMenu(window)) CreateMenu("New Tab",1,filemenu) CreateMenu("Delete Tab",2,filemenu) CreateMenu("",0,filemenu) CreateMenu("Exit",3,filemenu) UpdateWindowMenu window Repeat Select WaitEvent() Case $803 Select EventSource() Case window End End Select Case $1001 Select EventData() Case 1 tabpanels(tabcount)=CreatePanel(0,0,ClientWidth(tabber),ClientHeight(tabber),tabber) SetGadgetLayout tabpanels(tabcount),1,1,1,1 tabtextareas(tabcount)=CreateTextArea(0,0,ClientWidth(tabpanels(tabcount)),ClientHeight(tabpanels(tabcount)),tabpanels(tabcount)) SetGadgetLayout tabtextareas(tabcount),1,1,1,1 AddGadgetItem tabber,"New Tab" tabcount=tabcount+1 Case 2 If SelectedGadgetItem(tabber)>-1 RemoveGadgetItem tabber,SelectedGadgetItem(tabber) FreeGadget tabpanels(SelectedGadgetItem(tabber)) tabcount=tabcount-1 EndIf End Select Case $401 Select EventSource() Case tabber For i=0 To tabcount-1 If i=EventData() ShowGadget tabpanels(i) Else HideGadget tabpanels(i) EndIf Next End Select End Select Forever End |
| ||
Ked, I have a better idea over using the Global function. Here is an example of using banks, banks are much better then Globals. ;Combo Box example ;by Siopses ;Event List KEY_DOWN=$101 ;A key was pressed down-needs the keys scancode for EventData(). KEY_UP=$102 ;A key has been released on the keyboard-needs the keys scancode for EventData(). KEY_USED=$103 ;A key has been typed-needs keys ascii value. MOUSE_BUTTON_DOWN=$201 ;self explanatory, needs one of the following values(1=left,2=middle,3=right). MOUSE_OVER_CANVAS=$203 ;self explanatory, you need to use EventX() and EventY() along with the canvas handle. GADGET_USED=$401 ;self explanatory, you need to be specific to what kind of gadget it is, and what the gadgets handle is as well. MENU_SELECTED=$1001 ;something has been selected from a menu, needs the menu identifier X_HIT=$803 ;The X was hit APPLICATION_HALTED=$2001 ;Self explanatory, means that the program was suspended APPLICATION_RESUMED=$2002 ;Self explanatory, means that the program was resumed ;GUI ;Window window=CreateWindow("COMBO BOX EXAMPLE",250,350,350,400,window,15) ;Combo box box=CreateComboBox(125,125,100,50,window) AddGadgetItem box,"HELLO" AddGadgetItem box,"BYE" bank=CreateBank(12) PokeInt bank,0,box PokeInt bank,4,hello PokeInt bank,8,bye .begin Repeat WaitEvent() ComboBox(bank) Until EventID()=$803 AppTitle("Quit?") blah=Confirm("Are you sure you want to quit?",1) If blah=1 Then End Else If blah<>1 Then Gosub begin EndIf EndIf Function ComboBox(bank) box=PeekInt(bank,0) Select EventID() Case $401 If SelectedGadgetItem(box)=0 Then AppTitle("Hello") Notify("HELLO") Else If SelectedGadgetItem(box)=1 Then AppTitle("Bye") Notify("BYE") EndIf EndIf End Select End Function I forgot why though, but a while back CS_TBL was helping me get a grasp on programming, and banks was what he used to store GUI, and other stuff. |
| ||
Thanks! I will use that from now on. But what about my tabber problem? |
| ||
Sorry, I'm not quite sure how to fix this one. Particularly because I still don't understand the For/Next loop. |
| ||
I got it. I ended up having to use types. If anyone is interested I'll post the code up here. |