summaryrefslogtreecommitdiff
path: root/mwidget
diff options
context:
space:
mode:
Diffstat (limited to 'mwidget')
-rw-r--r--mwidget/.cvsignore2
-rw-r--r--mwidget/icons.pngbin0 -> 448 bytes
-rw-r--r--mwidget/test.bmx455
3 files changed, 457 insertions, 0 deletions
diff --git a/mwidget/.cvsignore b/mwidget/.cvsignore
new file mode 100644
index 0000000..8f686ea
--- /dev/null
+++ b/mwidget/.cvsignore
@@ -0,0 +1,2 @@
+test.debug.exe
+.bmx \ No newline at end of file
diff --git a/mwidget/icons.png b/mwidget/icons.png
new file mode 100644
index 0000000..66ab29f
--- /dev/null
+++ b/mwidget/icons.png
Binary files differ
diff --git a/mwidget/test.bmx b/mwidget/test.bmx
new file mode 100644
index 0000000..38812f7
--- /dev/null
+++ b/mwidget/test.bmx
@@ -0,0 +1,455 @@
+' $Id$
+Strict
+Import noddybox.mwidget
+
+Incbin "icons.png"
+
+Const SUBCLASS:Int=False
+Const TESTTIMER:Int=False
+
+Global top:TMWindow
+Global tabs:TMTabber
+Global ok:TMButton
+Global cancel:TMButton
+
+Global check:TMCheckbox
+
+Global radio1:TMRadioButton
+Global radio2:TMRadioButton
+Global radio3:TMRadioButton
+
+Global radios:TMRadioButtonSet
+
+Global txtfield:TMTextField
+Global txtarea:TMTextArea
+
+Global list:TMListBox
+
+Global icons:TIconStrip=LoadIconStrip("incbin::icons.png")
+
+Global html:TMHTMLView
+Global html_url:TMTextField
+Global html_go:TMButton
+Global html_back:TMButton
+Global html_forward:TMButton
+
+Local slider1:TMSlider
+Local slider2:TMSlider
+
+Global tree:TMTreeView
+
+Global tree_node:TMTextField
+Global tree_add:TMButton
+Global tree_remove:TMButton
+
+'
+' CALLBACK FUNCTION VERSION
+'
+Function OnTimer(w:TMWidget)
+ w.Text("(Callback) Test Managed Widgets -- " + CurrentTime() + " " + CurrentDate())
+End Function
+
+Function OnClose(o:TMWidget)
+ Local w:TMWindow=TMWindow(o)
+ w.closed=Confirm("(Callback) Really quit?")
+End Function
+
+Function OnMove(o:TMWidget, x:Int, y:Int)
+ Local w:TMWindow=TMWindow(o)
+ w.StatusText("(Callback) "+x+","+y)
+End Function
+
+Function OnResize(o:TMWidget, x:Int, y:Int)
+ Local w:TMWindow=TMWindow(o)
+ w.StatusText("(Callback) ["+x+","+y+"]")
+End Function
+
+Function OnPress_OK(o:TMWidget)
+ top.Close()
+End Function
+
+Function OnPress_Cancel(o:TMWidget)
+ Notify("Cancel pressed -- text='" + txtfield.GetText() + "'")
+End Function
+
+Function OnPress_Check(o:TMWidget, checked:Int)
+ Notify("Ticked - " + checked)
+End Function
+
+Function OnSelected_Radio(o:TMWidget, index:Int)
+ Notify("Radio changed - " + index)
+End Function
+
+Function OnTextChanged_Field(o:TMWidget, txt:String)
+ top.StatusText(MilliSecs() + " -- " + txt)
+End Function
+
+Function ShowAreaStatus(o:TMWidget)
+ Local t:TMTextArea=TMTextArea(o)
+ Local s:String=""
+ s:+"Pos: " + t.GetCursorColumn() + "," + t.GetCursorRow() + " "
+ s:+"Len: " + t.GetLength() + " "
+ s:+"[Sel: " + t.GetSelectionLength() + "," + t.GetSelectionRows() +"]"
+ top.StatusText(MilliSecs() + " -- " + s)
+End Function
+
+Function OnMenu_Area(o:TMWidget)
+ Notify("No menu!")
+End Function
+
+Function ShowChangedInt(o:TMWidget, val:Int)
+ top.StatusText(MilliSecs() + " -- " + val)
+End Function
+
+Function OnForward(o:TMWidget)
+ html.Forward()
+End Function
+
+Function OnBack(o:TMWidget)
+ html.Back()
+End Function
+
+Function OnGO(o:TMWidget)
+ html.Go(html_url.GetText())
+End Function
+
+Function OnPageLoaded(o:TMWidget, url:String)
+ top.StatusText(MilliSecs() + " -- Loaded " + url)
+End Function
+
+Function OnSelectURL(o:TMWidget, url:String)
+ html_url.Text(url)
+End Function
+
+Function OnSelected_Tree(o:TMWidget, path:String, tag:Object)
+ top.StatusText(MilliSecs() + " -- Selected " + path + " (" + tag.ToString() + ")")
+End Function
+
+Function OnClicked_Tree(o:TMWidget, path:String, tag:Object)
+ top.StatusText(MilliSecs() + " -- Clicked " + path + " (" + tag.ToString() + ")")
+End Function
+
+Function OnExpanded_Tree(o:TMWidget, path:String, tag:Object)
+ top.StatusText(MilliSecs() + " -- Expanded " + path + " (" + tag.ToString() + ")")
+End Function
+
+Function OnCollapsed_Tree(o:TMWidget, path:String, tag:Object)
+ top.StatusText(MilliSecs() + " -- Collapsed " + path + " (" + tag.ToString() + ")")
+End Function
+
+Function OnMenu_Tree(o:TMWidget, path:String, tag:Object)
+ top.StatusText(MilliSecs() + " -- Menu " + path + " (" + tag.ToString() + ")")
+End Function
+
+'
+' SUBCLASS VERSION
+'
+Type MyApp Extends TMWindow
+ Method OnTimer()
+ Text("Test Managed Widgets -- " + CurrentTime() + " " + CurrentDate())
+ End Method
+
+ Method OnClose()
+ closed=Confirm("Really quit?")
+ End Method
+
+ Method OnMove(x:Int, y:Int)
+ StatusText(x+","+y)
+ End Method
+
+ Method OnResize(x:Int, y:Int)
+ StatusText("["+x+","+y+"]")
+ End Method
+End Type
+
+Type MyOK Extends TMButton
+ Method OnPress()
+ top.Close()
+ End Method
+End Type
+
+Type MyCancel Extends TMButton
+ Method OnPress()
+ Notify("Cancel pressed -- text='" + txtfield.GetText() + "'")
+ End Method
+End Type
+
+Type MyCheck Extends TMCheckbox
+ Method OnPress(checked:Int)
+ Notify("Ticked - " + checked)
+ End Method
+End Type
+
+Type MyRadio Extends TMRadioButtonSet
+ Method OnSelected(index:Int)
+ Notify("Radio changed - " + index)
+ End Method
+End Type
+
+Type MyTextField Extends TMTextField
+ Method OnTextChanged(txt:String)
+ top.StatusText(MilliSecs() + " -- " + txt)
+ End Method
+End Type
+
+Type MyTextArea Extends TMTextArea
+ Method SetStatus()
+ Local s:String=""
+ s:+"Pos: " + GetCursorColumn() + "," + GetCursorRow() + " "
+ s:+"Len: " + GetLength() + " "
+ s:+"[Sel: " + GetSelectionLength() + "," + GetSelectionRows() +"]"
+ top.StatusText(MilliSecs() + " -- " + s)
+ End Method
+ Method OnTextChanged()
+ SetStatus()
+ End Method
+
+ Method OnSelection()
+ SetStatus()
+ End Method
+
+ Method OnMenu()
+ Notify("No menu!")
+ End Method
+End Type
+
+Type MySlider Extends TMSlider
+ Method OnValueChanged(val:Int)
+ top.StatusText(MilliSecs() + " -- " + val)
+ End Method
+End Type
+
+Type MyList Extends TMListBox
+ Method OnIndexChanged(index:Int)
+ top.StatusText(MilliSecs() + " -- " + index)
+ End Method
+End Type
+
+Type MyForward Extends TMButton
+ Method OnPress()
+ html.Forward()
+ End Method
+End Type
+
+Type MyBack Extends TMButton
+ Method OnPress()
+ html.Back()
+ End Method
+End Type
+
+Type MyGo Extends TMButton
+ Method OnPress()
+ html.Go(html_url.GetText())
+ End Method
+End Type
+
+Type MyHTML Extends TMHTMLView
+ Method OnPageLoaded(url:String)
+ top.StatusText(MilliSecs() + " -- Loaded " + url)
+ End Method
+
+ Method OnSelectURL(url:String)
+ html_url.Text(url)
+ End Method
+End Type
+
+Type MyTree Extends TMTreeView
+ Method OnSelected(path:String, tag:Object)
+ top.StatusText(MilliSecs() + " -- Selected " + path + " (" + tag.ToString() + ")")
+ End Method
+
+ Method OnClicked(path:String, tag:Object)
+ top.StatusText(MilliSecs() + " -- Clicked " + path + " (" + tag.ToString() + ")")
+ End Method
+
+ Method OnExpanded(path:String, tag:Object)
+ top.StatusText(MilliSecs() + " -- Expanded " + path + " (" + tag.ToString() + ")")
+ End Method
+
+ Method OnCollapsed(path:String, tag:Object)
+ top.StatusText(MilliSecs() + " -- Collapsed " + path + " (" + tag.ToString() + ")")
+ End Method
+
+ Method OnMenu(path:String, tag:Object)
+ top.StatusText(MilliSecs() + " -- Menu " + path + " (" + tag.ToString() + ")")
+ End Method
+End Type
+
+'
+' GENERIC SUBCLASSES
+'
+Type AddToTree Extends TMButton
+ Method OnPress()
+ tree.Set(tree_node.GetText(),StripDir(tree_node.GetText()))
+ End Method
+End Type
+
+Type RemoveFromTree Extends TMButton
+ Method OnPress()
+ tree.Remove(tree_node.GetText())
+ End Method
+End Type
+
+'
+' TEST
+'
+
+If SUBCLASS
+ top=New MyApp.Create("Test Managed Widgets",100,100,640,400,Null,WINDOW_TITLEBAR|WINDOW_CLIENTCOORDS|WINDOW_STATUS|WINDOW_RESIZABLE|WINDOW_MENU)
+Else
+ top=New TMWindow.Create("Test Managed Widgets",100,100,640,400,Null,WINDOW_TITLEBAR|WINDOW_CLIENTCOORDS|WINDOW_STATUS|WINDOW_RESIZABLE|WINDOW_MENU)
+ top.OnCloseEvent.Add(OnClose)
+ top.OnTimerEvent.Add(OnTimer)
+ top.OnMoveEvent.Add(OnMove)
+ top.OnResizeEvent.Add(OnResize)
+EndIf
+
+top.MinSize(top.Width(),top.Height())
+
+tabs=New TMTabber.Create(0,10,640,390,top)
+tabs.SetIconStrip(icons)
+tabs.AddItem(CreateListEntry("Buttons",0,0,"Test different button types"))
+tabs.AddItem(CreateListEntry("Text",0,1,"Test text entry fields"))
+tabs.AddItem(CreateListEntry("Sliders",0,2,"Test sliders"))
+tabs.AddItem(CreateListEntry("Lists",0,3,"Test list"))
+tabs.AddItem(CreateListEntry("HTML",0,-1,"Test HTML view"))
+tabs.AddItem(CreateListEntry("Tree View",0,-1,"Test tree view"))
+tabs.AddItem(CreateListEntry("Canvas",0,-1,"Test canvas"))
+
+If SUBCLASS
+ ok=New MyOK.CreateOK("OK",10,300,80,30,tabs)
+ cancel=New MyCancel.CreateCancel("Cancel",100,300,80,30,tabs)
+
+ check=New MyCheck.Create("Checkbox",10,10,100,20,tabs)
+
+ radio1=New TMRadioButton.Create("Radio 1",10,30,100,20,tabs)
+ radio2=New TMRadioButton.Create("Radio 2",10,50,100,20,tabs)
+ radio3=New TMRadioButton.Create("Radio 3",10,70,100,20,tabs)
+
+ radio1.Checked(True)
+
+ radios=New MyRadio.Create([radio1,radio2,radio3])
+
+ txtfield=New MyTextField.Create(90,10,80,20,tabs)
+ txtarea=New MyTextArea.Create(10,40,620,300,tabs)
+
+ slider1=New MySlider.Create(10,10,15,300,tabs,SLIDER_VERTICAL|SLIDER_SCROLLBAR)
+ slider2=New MySlider.Create(30,10,300,15,tabs,SLIDER_HORIZONTAL|SLIDER_TRACKBAR)
+
+ list=New MyList.Create(10,10,300,300,tabs)
+
+ html=New MyHTML.Create(10,10,620,300,tabs,HTMLVIEW_NOCONTEXTMENU|HTMLVIEW_NONAVIGATE)
+ html_url=New TMTextField.Create(10,320,620,20,tabs)
+ html_go=New MyGo.Create("GO",10,345,90,20,tabs)
+ html_back=New MyBack.Create("Back",110,345,90,20,tabs)
+ html_forward=New MyForward.Create("Forward",210,345,90,20,tabs)
+
+ tree=New MyTree.Create(10,10,620,250,tabs)
+Else
+ ok=New TMButton.CreateOK("OK",10,300,80,30,tabs)
+ cancel=New TMButton.CreateCancel("Cancel",100,300,80,30,tabs)
+
+ check=New TMCheckbox.Create("Checkbox",10,10,100,20,tabs)
+
+ radio1=New TMRadioButton.Create("Radio 1",10,30,100,20,tabs)
+ radio2=New TMRadioButton.Create("Radio 2",10,50,100,20,tabs)
+ radio3=New TMRadioButton.Create("Radio 3",10,70,100,20,tabs)
+
+ radio1.Checked(True)
+
+ radios=New TMRadioButtonSet.Create([radio1,radio2,radio3])
+
+ txtfield=New TMTextField.Create(90,10,80,20,tabs)
+ txtarea=New TMTextArea.Create(10,40,620,300,tabs)
+
+ slider1=New MySlider.Create(10,10,15,300,tabs,SLIDER_VERTICAL|SLIDER_SCROLLBAR)
+ slider2=New MySlider.Create(30,10,300,15,tabs,SLIDER_HORIZONTAL|SLIDER_TRACKBAR)
+
+ list=New TMListBox.Create(10,10,300,300,tabs)
+
+ html=New TMHTMLView.Create(10,10,620,300,tabs,HTMLVIEW_NOCONTEXTMENU|HTMLVIEW_NONAVIGATE)
+ html_url=New TMTextField.Create(10,320,620,20,tabs)
+ html_go=New TMButton.Create("GO",10,345,90,20,tabs)
+ html_back=New TMButton.Create("Back",110,345,90,20,tabs)
+ html_forward=New TMButton.Create("Forward",210,345,90,20,tabs)
+
+ tree=New TMTreeView.Create(10,10,620,250,tabs)
+
+ ok.OnPressEvent.Add(OnPress_OK)
+ cancel.OnPressEvent.Add(OnPress_Cancel)
+ check.OnPressEvent.Add(OnPress_Check)
+
+ radios.OnSelectedEvent.Add(OnSelected_Radio)
+
+ txtfield.OnTextChangedEvent.Add(OnTextChanged_Field)
+ txtarea.OnTextChangedEvent.Add(ShowAreaStatus)
+ txtarea.OnSelectionEvent.Add(ShowAreaStatus)
+ txtarea.OnMenuEvent.Add(OnMenu_Area)
+
+ slider1.OnValueChangedEvent.Add(ShowChangedInt)
+ slider2.OnValueChangedEvent.Add(ShowChangedInt)
+ list.OnIndexChangedEvent.Add(ShowChangedInt)
+
+ html.OnPageLoadedEvent.Add(OnPageLoaded)
+ html.OnSelectURLEvent.Add(OnSelectURL)
+ html_go.OnPressEvent.Add(OnGO)
+ html_forward.OnPressEvent.Add(OnForward)
+ html_back.OnPressEvent.Add(OnBack)
+
+ tree.OnSelectedEvent.Add(OnSelected_Tree)
+ tree.OnClickedEvent.Add(OnClicked_Tree)
+ tree.OnExpandedEvent.Add(OnExpanded_Tree)
+ tree.OnCollapsedEvent.Add(OnCollapsed_Tree)
+ tree.OnMenuEvent.Add(OnMenu_Tree)
+
+EndIf
+
+Local label:TMLabel=New TMLabel.Create("Label:",10,10,80,20,tabs)
+
+list.SetIconStrip(icons)
+list.AddItem(CreateListEntry("Item 1",0,0))
+list.AddItem(CreateListEntry("Item 2",0,1))
+list.AddItem(CreateListEntry("Item 3",0,2))
+list.AddItem(CreateListEntry("Item 4",0,3))
+
+list.ItemEnabled(2,False)
+
+tabs.ItemEnabled(4,True)
+tabs.ItemEnabled(5,False)
+tabs.ItemEnabled(6,False)
+
+list.SetSelectedIndex(0)
+
+tree.SetIconStrip(icons)
+tree.BeginUpdate()
+tree.Set("/dir1","Dir1",0)
+tree.Set("/dir2","Dir2",1)
+tree.Set("/dir1/ent1","Ent1",2)
+tree.Set("/dir1/ent2","Ent2",3)
+tree.Set("/dir1/ent3","Ent3",3)
+tree.Set("/dir1/ent3","Ent3 (Edit)",3)
+tree.EndUpdate()
+
+html.Go("http://www.noddybox.demon.co.uk")
+
+tree_node=New TMTextField.Create(10,280,300,20,tabs)
+tree_add=New AddToTree.Create("Add",320,280,100,20,tabs)
+tree_remove=New RemoveFromTree.Create("Remove",430,280,100,20,tabs)
+
+tabs.SetPages([ [TMWidget(ok),TMWidget(cancel),TMWidget(check),TMWidget(radio1),TMWidget(radio2),TMWidget(radio3)], ..
+ [TMWidget(label),TMWidget(txtfield),TMWidget(txtarea)], ..
+ [TMWidget(slider1),TMWidget(slider2)], ..
+ [TMWidget(list)], ..
+ [TMWidget(html), TMWidget(html_url), TMWidget(html_go), TMWidget(html_back), TMWidget(html_forward)], ..
+ [TMWidget(tree), TMWidget(tree_node), TMWidget(tree_add), TMWidget(tree_remove)]])
+
+
+tabs.SetSelectedIndex(0)
+
+If TESTTIMER
+ top.SetTimer(1)
+EndIf
+
+MWidgetMainLoop(top)
+
+End