diff --git a/CrossPlatformModules.csproj b/CrossPlatformModules.csproj index 98b8b41c8..eca1d024d 100644 --- a/CrossPlatformModules.csproj +++ b/CrossPlatformModules.csproj @@ -118,8 +118,12 @@ + + + page17.xml + @@ -578,6 +582,10 @@ + + Designer + + diff --git a/apps/tests/pages/page16.ts b/apps/tests/pages/page16.ts new file mode 100644 index 000000000..3d66f18b4 --- /dev/null +++ b/apps/tests/pages/page16.ts @@ -0,0 +1,55 @@ +import pageModule = require("ui/page"); +import buttonModule = require("ui/button"); +import stackModule = require("ui/layouts/stack-layout"); +import frame = require("ui/frame"); + +export function createPage() { + var page = new pageModule.Page(); + + var iconItem = new pageModule.MenuItem(); + iconItem.text = "TEST"; + + iconItem.icon = "~/app" + "/tests" + "/test-icon.png"; // use + to stop regex replace during build + iconItem.on("tap", () => { + console.log("Icon item tapped"); + }); + page.optionsMenu.addItem(iconItem); + + var textItem = new pageModule.MenuItem(); + textItem.text = "SAVE"; + textItem.on("tap", () => { + console.log("Save item tapped"); + }); + page.optionsMenu.addItem(textItem); + + var stackLayout = new stackModule.StackLayout(); + var count = 0; + var btn1 = new buttonModule.Button(); + btn1.text = "add item"; + btn1.on("tap", () => { + console.log("adding menu item"); + + var newItem = new pageModule.MenuItem(); + var text = "item " + count; + newItem.text = text + newItem.on("tap", () => { + console.log("ITEM [" + text + "] tapped"); + }); + page.optionsMenu.addItem(newItem); + count++; + }); + + stackLayout.addChild(btn1); + + var btn2 = new buttonModule.Button(); + btn2.text = "navigate"; + btn2.on("tap", () => { + var nextPage = "app/tests/pages/page16"; + frame.topmost().navigate(nextPage); + }); + + stackLayout.addChild(btn2); + + page.content = stackLayout; + return page; +} \ No newline at end of file diff --git a/apps/tests/pages/page17.ts b/apps/tests/pages/page17.ts new file mode 100644 index 000000000..6390bf553 --- /dev/null +++ b/apps/tests/pages/page17.ts @@ -0,0 +1,20 @@ +import observable = require("data/observable"); +import pages = require("ui/page"); + +// Event handler for Page "loaded" event attached in main-page.xml +export function pageLoaded(args: observable.EventData) { + // Get the event sender + var page = args.object; + + var textItem = new pages.MenuItem(); + textItem.text = "from loaded"; + textItem.on("tap", () => { + console.log("item added in page.loaded tapped!!!"); + }); + page.optionsMenu.addItem(textItem); +} + +export function optionTap(args) { + console.log("item added form XML tapped!!!"); +} + diff --git a/apps/tests/pages/page17.xml b/apps/tests/pages/page17.xml new file mode 100644 index 000000000..fe7e9d1f2 --- /dev/null +++ b/apps/tests/pages/page17.xml @@ -0,0 +1,9 @@ + + + + + + +