OptionsMenu XML support

This commit is contained in:
Erjan Gavalji
2015-03-03 10:34:44 +02:00
committed by hshristov
parent 71a01a53e0
commit 70756fb115
12 changed files with 260 additions and 5 deletions

View File

@@ -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;
}

View File

@@ -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 = <pages.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!!!");
}

View File

@@ -0,0 +1,9 @@
<Page loaded="pageLoaded">
<Page.optionsMenu>
<MenuItem text="test" tap="optionTap"/>
<MenuItem text="with icon" tap="optionTap" icon="~/app/test-icon.png"/>
</Page.optionsMenu>
<StackLayout>
<Button text="button" />
</StackLayout>
</Page>

BIN
apps/tests/test-icon.png Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB