From 9581d7a8ecc07d6ff40c436467c77005300bf38a Mon Sep 17 00:00:00 2001 From: Ian C Date: Sun, 15 Jan 2006 01:04:40 +0000 Subject: *** empty log message *** --- mwidget/test.bmx | 331 +++++++++++++++++++++++++++++++++++++++++++++++++--- mwidget/toolbar.png | Bin 0 -> 429 bytes 2 files changed, 313 insertions(+), 18 deletions(-) create mode 100644 mwidget/toolbar.png diff --git a/mwidget/test.bmx b/mwidget/test.bmx index 38812f7..8c80dd2 100644 --- a/mwidget/test.bmx +++ b/mwidget/test.bmx @@ -3,6 +3,7 @@ Strict Import noddybox.mwidget Incbin "icons.png" +Incbin "toolbar.png" Const SUBCLASS:Int=False Const TESTTIMER:Int=False @@ -41,6 +42,28 @@ Global tree:TMTreeView Global tree_node:TMTextField Global tree_add:TMButton Global tree_remove:TMButton +Global tree_count:TMButton + +Global menu:TMMenu +Global popup:TMMenu + +Global menu_path:TMTextField +Global menu_name:TMTextField +Global menu_add:TMButton +Global menu_remove:TMButton +Global menu_check:TMButton +Global menu_uncheck:TMButton +Global menu_enable:TMButton +Global menu_disable:TMButton +Global menu_popup:TMButton +Global menu_status:TMLabel + +Global canvas:TMCanvas + +Global canvas_mx:Int +Global canvas_my:Int + +Global toolbar:TMToolbar ' ' CALLBACK FUNCTION VERSION @@ -141,6 +164,80 @@ Function OnMenu_Tree(o:TMWidget, path:String, tag:Object) top.StatusText(MilliSecs() + " -- Menu " + path + " (" + tag.ToString() + ")") End Function +Function OnRedraw_Canvas(w:TMWidget) + Local c:TMCanvas=TMCanvas(w) + c.SetupGraphics() + SetColor(Rand(100,200),Rand(100,200),Rand(100,200)) + DrawRect(0,0,w.Width(),w.Height()) + Flip +End Function + +Function OnMouseEnter_Canvas(w:TMWidget) + SetPointer(POINTER_CROSS) +End Function + +Function OnMouseLeave_Canvas(w:TMWidget) + SetPointer(POINTER_DEFAULT) +End Function + +Function OnButtonDown_Canvas(w:TMWidget, b:Int) + Local c:TMCanvas=TMCanvas(w) + c.SetupGraphics() + SetColor(255,255,255) + DrawLine(w.Width(),w.Height(),canvas_mx,canvas_my) + Flip() + top.StatusText(MilliSecs() + " -- Button Down " + b) +End Function + +Function OnButtonUp_Canvas(w:TMWidget, b:Int) + top.StatusText(MilliSecs() + " -- Button Up " + b) +End Function + +Function OnMouseMove_Canvas(w:TMWidget, x:Int, y:Int) + canvas_mx=x + canvas_my=y + top.StatusText(MilliSecs() + " -- Mouse move " + x + "," + y) +End Function + +Function OnMouseWheel_Canvas(w:TMWidget, b:Int) + top.StatusText(MilliSecs() + " -- Mouse wheel " + b) +End Function + +Function OnKeyDown_Canvas(w:TMWidget, b:Int) + Local c:TMCanvas=TMCanvas(w) + SetColor(0,0,0) + DrawRect(0,0,600,19) + c.SetupGraphics() + SetColor(255,255,255) + DrawText(MilliSecs() + " -- Key down " + b,0,0) + Flip() +End Function + +Function OnKeyUp_Canvas(w:TMWidget, b:Int) + Local c:TMCanvas=TMCanvas(w) + c.SetupGraphics() + SetColor(0,0,0) + DrawRect(0,20,600,19) + SetColor(255,255,255) + DrawText(MilliSecs() + " -- Key up " + b,0,20) + Flip() +End Function + +Function OnKey_Canvas(w:TMWidget, b:Int) + Local c:TMCanvas=TMCanvas(w) + c.SetupGraphics() + SetColor(0,0,0) + DrawRect(0,40,600,19) + SetColor(255,255,255) + DrawText(MilliSecs() + " -- Key " + b + "(" + Chr(b) + ")",0,40) + Flip() +End Function + +Function OnSelected_Toolbar(w:TMWidget, i:Int) + Local tb:TMToolbar=TMToolbar(w) + top.StatusText(MilliSecs() + " -- Toolbar " + i) + toolbar.ItemEnabled(1,Not i=0) +End Function ' ' SUBCLASS VERSION ' @@ -275,8 +372,84 @@ Type MyTree Extends TMTreeView End Method End Type +Type MyCanvas Extends TMCanvas + Field mx:Int + Field my:Int + + Method OnRedraw() + SetupGraphics() + SetColor(Rand(100,200),Rand(100,200),Rand(100,200)) + DrawRect(0,0,Width(),Height()) + Flip + End Method + + Method OnMouseEnter() + SetPointer(POINTER_CROSS) + End Method + + Method OnMouseLeave() + SetPointer(POINTER_DEFAULT) + End Method + + Method OnButtonDown(b:Int) + SetupGraphics() + SetColor(255,255,255) + DrawLine(0,0,mx,my) + Flip() + top.StatusText(MilliSecs() + " -- Button Down " + b) + End Method + + Method OnButtonUp(b:Int) + top.StatusText(MilliSecs() + " -- Button Up " + b) + End Method + + Method OnMouseMove(x:Int, y:Int) + mx=x + my=y + top.StatusText(MilliSecs() + " -- Mouse move " + x + "," + y) + End Method + + Method OnMouseWheel(b:Int) + top.StatusText(MilliSecs() + " -- Mouse wheel " + b) + End Method + + Method OnKeyDown(b:Int) + SetupGraphics() + SetColor(0,0,0) + DrawRect(0,0,600,19) + SetColor(255,255,255) + DrawText(MilliSecs() + " -- Key down " + b,0,0) + Flip() + End Method + + Method OnKeyUp(b:Int) + SetupGraphics() + SetColor(0,0,0) + DrawRect(0,20,600,19) + SetColor(255,255,255) + DrawText(MilliSecs() + " -- Key up " + b,0,20) + Flip() + End Method + + Method OnKey(b:Int) + SetupGraphics() + SetColor(0,0,0) + DrawRect(0,40,600,19) + SetColor(255,255,255) + DrawText(MilliSecs() + " -- Key " + b + "(" + Chr(b) + ")",0,40) + Flip() + End Method +End Type + +Type MyToolbar Extends TMToolbar + Method OnSelected(i:Int) + top.StatusText(MilliSecs() + " -- Toolbar " + i) + ItemEnabled(1,Not i=0) + End Method +End Type + ' -' GENERIC SUBCLASSES +' ALWAYS SUBCLASSES ' Type AddToTree Extends TMButton Method OnPress() @@ -290,6 +463,72 @@ Type RemoveFromTree Extends TMButton End Method End Type +Type CountTree Extends TMButton + Method OnPress() + Local path:String=tree_node.GetText() + Notify("Children of " + path + " = " + tree.CountChildren(path)) + End Method +End Type + +Type AddToMenu Extends TMButton + Method OnPress() + menu.Set(menu_path.GetText(),menu_name.GetText(),MenuCallback) + End Method +End Type + +Type RemoveFromMenu Extends TMButton + Method OnPress() + menu.Remove(menu_path.GetText()) + End Method +End Type + +Type MenuCheck Extends TMButton + Method OnPress() + menu.Check(menu_path.GetText(),True) + End Method +End Type + +Type MenuUncheck Extends TMButton + Method OnPress() + menu.Check(menu_path.GetText(),False) + End Method +End Type + +Type MenuEnable Extends TMButton + Method OnPress() + menu.Enable(menu_path.GetText(),True) + End Method +End Type + +Type MenuDisable Extends TMButton + Method OnPress() + menu.Enable(menu_path.GetText(),False) + End Method +End Type + +Type MenuPopup Extends TMButton + Method OnPress() + popup.Popup(Self) + End Method +End Type + +Type MyMenu Extends TMMenu + Method OnMenuItem(path:String, tag:Object) + menu_status.Text(MilliSecs() + " -- Selected " + path + " (" + tag.ToString() + ") check=" + IsChecked(path)) + End Method +End Type + +' +' ALWAYS CALLBACKS +' +Function MenuCallback(m:TMMenu, path:String, tag:Object) + top.StatusText(MilliSecs() + " -- Selected " + path + " (" + tag.ToString() + ") check=" + m.IsChecked(path)) +End Function + +Function PopupMenuCallback(m:TMMenu, path:String, tag:Object) + top.StatusText(MilliSecs() + " -- Selected popup " + path + " (" + tag.ToString() + ") check=" + m.IsChecked(path)) +End Function + ' ' TEST ' @@ -306,7 +545,7 @@ EndIf top.MinSize(top.Width(),top.Height()) -tabs=New TMTabber.Create(0,10,640,390,top) +tabs=New TMTabber.Create(0,30,640,370,top) tabs.SetIconStrip(icons) tabs.AddItem(CreateListEntry("Buttons",0,0,"Test different button types")) tabs.AddItem(CreateListEntry("Text",0,1,"Test text entry fields")) @@ -314,6 +553,7 @@ 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("Menu",0,-1,"Test menus")) tabs.AddItem(CreateListEntry("Canvas",0,-1,"Test canvas")) If SUBCLASS @@ -338,13 +578,17 @@ If SUBCLASS 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) + html=New MyHTML.Create(10,10,620,280,tabs,HTMLVIEW_NOCONTEXTMENU|HTMLVIEW_NONAVIGATE) + html_url=New TMTextField.Create(10,300,620,20,tabs) + html_go=New MyGo.Create("GO",10,325,90,20,tabs) + html_back=New MyBack.Create("Back",110,325,90,20,tabs) + html_forward=New MyForward.Create("Forward",210,325,90,20,tabs) tree=New MyTree.Create(10,10,620,250,tabs) + + canvas=New MyCanvas.Create(10,10,620,320,tabs) + + toolbar=New MyToolbar.Create("incbin::toolbar.png",top) Else ok=New TMButton.CreateOK("OK",10,300,80,30,tabs) cancel=New TMButton.CreateCancel("Cancel",100,300,80,30,tabs) @@ -367,13 +611,17 @@ Else 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) + html=New TMHTMLView.Create(10,10,620,280,tabs,HTMLVIEW_NOCONTEXTMENU|HTMLVIEW_NONAVIGATE) + html_url=New TMTextField.Create(10,300,620,20,tabs) + html_go=New TMButton.Create("GO",10,325,90,20,tabs) + html_back=New TMButton.Create("Back",110,325,90,20,tabs) + html_forward=New TMButton.Create("Forward",210,325,90,20,tabs) tree=New TMTreeView.Create(10,10,620,250,tabs) + + canvas=New TMCanvas.Create(10,10,620,320,tabs) + + toolbar=New TMToolbar.Create("incbin::toolbar.png",top) ok.OnPressEvent.Add(OnPress_OK) cancel.OnPressEvent.Add(OnPress_Cancel) @@ -402,6 +650,18 @@ Else tree.OnCollapsedEvent.Add(OnCollapsed_Tree) tree.OnMenuEvent.Add(OnMenu_Tree) + canvas.OnRedrawEvent.Add(OnRedraw_Canvas) + canvas.OnMouseEnterEvent.Add(OnMouseEnter_Canvas) + canvas.OnMouseLeaveEvent.Add(OnMouseLeave_Canvas) + canvas.OnButtonDownEvent.Add(OnButtonDown_Canvas) + canvas.OnButtonUpEvent.Add(OnButtonUp_Canvas) + canvas.OnMouseWheelEvent.Add(OnMouseWheel_Canvas) + canvas.OnMouseMoveEvent.Add(OnMouseMove_Canvas) + canvas.OnKeyDownEvent.Add(OnKeyDown_Canvas) + canvas.OnKeyUpEvent.Add(OnKeyUp_Canvas) + canvas.OnKeyEvent.Add(OnKey_Canvas) + + toolbar.OnSelectedEvent.Add(OnSelected_Toolbar) EndIf Local label:TMLabel=New TMLabel.Create("Label:",10,10,80,20,tabs) @@ -420,7 +680,7 @@ tabs.ItemEnabled(6,False) list.SetSelectedIndex(0) -tree.SetIconStrip(icons) +'tree.SetIconStrip(icons) tree.BeginUpdate() tree.Set("/dir1","Dir1",0) tree.Set("/dir2","Dir2",1) @@ -433,15 +693,50 @@ 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)], .. +tree_add=New AddToTree.Create("Add",320,280,80,20,tabs) +tree_remove=New RemoveFromTree.Create("Remove",420,280,80,20,tabs) +tree_count=New CountTree.Create("Count",520,280,80,20,tabs) + +menu=New MyMenu.CreateWindowMenu(top) +popup=New MyMenu.CreatePopupMenu() + +popup.Set("/menu1","Menu 1") +popup.Set("/menu2","Menu 2") +popup.Set("/menu1/opt1","Opt 1.1",PopupMenuCallback) +popup.Set("/menu1/opt2","Opt 1.2",PopupMenuCallback) +popup.Set("/menu2/opt1","Opt 2.1",PopupMenuCallback) + +menu.Set("/file","File") +menu.Set("/file/quit","Quit",MenuCallback) + +menu_status=New TMLabel.Create("",10,10,600,20,tabs) +menu_path=New TMTextField.Create(10,30,300,20,tabs) +menu_name=New TMTextField.Create(320,30,300,20,tabs) +menu_add=New AddToMenu.Create("Add",10,60,100,20,tabs) +menu_remove=New RemoveFromMenu.Create("Remove",200,60,100,20,tabs) +menu_check=New MenuCheck.Create("Check",10,90,100,20,tabs) +menu_uncheck=New MenuUncheck.Create("Uncheck",200,90,100,20,tabs) +menu_enable=New MenuEnable.Create("Enable",10,120,100,20,tabs) +menu_disable=New MenuDisable.Create("Disable",200,120,100,20,tabs) +menu_popup=New MenuPopup.Create("Popup",10,150,100,20,tabs) + +toolbar.SetTooltips(["Tip1","Tip2","","Tip3","Tip4"]) + +toolbar.AddItem(0,0,"Tip5") +toolbar.AddItem(1,0,"Tip6") +toolbar.AddItem(3,0,"Tip7") +toolbar.AddItem(4,0,"Tip8") + +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)]]) + [TMWidget(tree), TMWidget(tree_node), TMWidget(tree_add), TMWidget(tree_remove), TMWidget(tree_count)], .. + [TMWidget(menu_status), TMWidget(menu_path), TMWidget(menu_name), TMWidget(menu_add), TMWidget(menu_remove), TMWidget(menu_check), TMWidget(menu_uncheck), TMWidget(menu_enable), TMWidget(menu_disable), TMWidget(menu_popup)], .. + [TMWidget(canvas)] .. + ]) tabs.SetSelectedIndex(0) diff --git a/mwidget/toolbar.png b/mwidget/toolbar.png new file mode 100644 index 0000000..583d180 Binary files /dev/null and b/mwidget/toolbar.png differ -- cgit v1.2.3