本文整理汇总了C#中Runtime.PostCustomEvent方法的典型用法代码示例。如果您正苦于以下问题:C# Runtime.PostCustomEvent方法的具体用法?C# Runtime.PostCustomEvent怎么用?C# Runtime.PostCustomEvent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Runtime
的用法示例。
在下文中一共展示了Runtime.PostCustomEvent方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Init
//.........这里部分代码省略.........
IScreen screen = (IScreen)mWidgets[_widget];
//Read the icon path
string iconPath = core.GetDataMemory().ReadStringAtAddress(_iconPath);
//If the iconPath is not empty and we don't have a predefined icon
//then we have an ApplicationBarButton object with a given icon and text.
if (!iconPath.Equals("") && 0 == _iconPredefined && screen.GetApplicationBar().Buttons.Count < 5)
{
//Read the text
string buttonText = core.GetDataMemory().ReadStringAtAddress(_title);
//Create the native object.
Microsoft.Phone.Shell.ApplicationBarIconButton btn = new Microsoft.Phone.Shell.ApplicationBarIconButton();
//Create the icon path.
btn.IconUri = new Uri(applicationBarIconsFolder + iconPath, UriKind.RelativeOrAbsolute);
btn.Text = buttonText;
//Associate an index to the native object.
int btnIndex = screen.AddApplicationBarItemIndex(btn);
btn.Click += new EventHandler(
delegate(object from, EventArgs target)
{
Memory eventData = new Memory(12);
const int MAWidgetEventData_eventType = 0;
const int MAWidgetEventData_widgetHandle = 4;
const int MAWidgetEventData_itemIndex = 8;
eventData.WriteInt32(MAWidgetEventData_eventType, MoSync.Constants.MAW_EVENT_OPTIONS_MENU_ITEM_SELECTED);
eventData.WriteInt32(MAWidgetEventData_widgetHandle, _widget);
eventData.WriteInt32(MAWidgetEventData_itemIndex, btnIndex);
//Posting a CustomEvent
runtime.PostCustomEvent(MoSync.Constants.EVENT_TYPE_WIDGET, eventData);
});
screen.GetApplicationBar().Buttons.Add(btn);
screen.EnableApplicationBar();
return btnIndex;
}
//If the iconPath is not empty and we have a predefined icon
//then we have an ApplicationBarButton object with a predefined icon and text.
else if (!iconPath.Equals("") && _iconPredefined > 0 && screen.GetApplicationBar().Buttons.Count < 5)
{
//Read the text.
string buttonText = core.GetDataMemory().ReadStringAtAddress(_title);
//Create the native object.
Microsoft.Phone.Shell.ApplicationBarIconButton btn = new Microsoft.Phone.Shell.ApplicationBarIconButton();
//Create the icon path.
btn.IconUri = new Uri(applicationBarIconsFolder + iconPath + ".png", UriKind.RelativeOrAbsolute);
btn.Text = buttonText;
//Associate an index to the native object.
int btnIndex = screen.AddApplicationBarItemIndex(btn);
btn.Click += new EventHandler(
delegate(object from, EventArgs target)
{
Memory eventData = new Memory(12);
const int MAWidgetEventData_eventType = 0;
const int MAWidgetEventData_widgetHandle = 4;
const int MAWidgetEventData_itemIndex = 8;
eventData.WriteInt32(MAWidgetEventData_eventType, MoSync.Constants.MAW_EVENT_OPTIONS_MENU_ITEM_SELECTED);
eventData.WriteInt32(MAWidgetEventData_widgetHandle, _widget);
示例2: Init
//.........这里部分代码省略.........
if (mCompass != null && !mCompassEnabled)
{
mCompass.Stop();
mCompass = null;
}
mMagneticFieldEnabled = false;
break;
case MoSync.Constants.SENSOR_TYPE_COMPASS:
if (!mCompassEnabled)
return MoSync.Constants.SENSOR_ERROR_NOT_ENABLED;
if (mCompass != null && !mMagneticFieldEnabled)
{
mCompass.Stop();
mCompass = null;
}
mCompassEnabled = false;
break;
case MoSync.Constants.SENSOR_TYPE_ORIENTATION:
if (mMotion != null)
{
mMotion.Stop();
mMotion = null;
}
else
{
return MoSync.Constants.SENSOR_ERROR_NOT_ENABLED;
}
break;
}
return MoSync.Constants.SENSOR_ERROR_NONE;
};
ioctls.maLocationStart = delegate()
{
if (mGeoWatcher == null)
{
mGeoWatcher = new GeoCoordinateWatcher();
//mGeoWatcher.MovementThreshold = 20;
mGeoWatcher.StatusChanged += delegate(object sender,
GeoPositionStatusChangedEventArgs args)
{
int maState;
switch (args.Status)
{
case GeoPositionStatus.Disabled:
maState = MoSync.Constants.MA_LPS_OUT_OF_SERVICE;
break;
case GeoPositionStatus.NoData:
case GeoPositionStatus.Initializing:
maState = MoSync.Constants.MA_LPS_TEMPORARILY_UNAVAILABLE;
break;
case GeoPositionStatus.Ready:
maState = MoSync.Constants.MA_LPS_AVAILABLE;
break;
default:
throw new Exception("invalid GeoPositionStatus");
}
Memory evt = new Memory(2 * 4);
evt.WriteInt32(MoSync.Struct.MAEvent.type, MoSync.Constants.EVENT_TYPE_LOCATION_PROVIDER);
evt.WriteInt32(MoSync.Struct.MAEvent.state, maState);
runtime.PostEvent(new Event(evt));
};
mGeoWatcher.PositionChanged += delegate(object sender,
GeoPositionChangedEventArgs<GeoCoordinate> args)
{
int maValidity = args.Position.Location.IsUnknown ?
MoSync.Constants.MA_LOC_INVALID : MoSync.Constants.MA_LOC_QUALIFIED;
Memory evt = new Memory(4 + 4 * 8 + 4);
GeoCoordinate l = args.Position.Location;
evt.WriteInt32(MoSync.Struct.MALocation.state, maValidity);
evt.WriteDouble(MoSync.Struct.MALocation.lat, l.Latitude);
evt.WriteDouble(MoSync.Struct.MALocation.lon, l.Longitude);
evt.WriteDouble(MoSync.Struct.MALocation.horzAcc, l.HorizontalAccuracy);
evt.WriteDouble(MoSync.Struct.MALocation.vertAcc, l.VerticalAccuracy);
evt.WriteFloat(MoSync.Struct.MALocation.alt, (float)l.Altitude);
runtime.PostCustomEvent(MoSync.Constants.EVENT_TYPE_LOCATION, evt);
};
mGeoWatcher.Start();
}
return 0;
};
ioctls.maLocationStop = delegate()
{
if (mGeoWatcher != null)
{
mGeoWatcher.Stop();
mGeoWatcher = null;
}
return 0;
};
}
示例3: Init
//.........这里部分代码省略.........
IScreen screen = (IScreen)mWidgets[_widget];
//Read the icon path
string iconPath = core.GetDataMemory().ReadStringAtAddress(_iconPath);
//If the iconPath is not empty and we don't have a predefined icon
//then we have an ApplicationBarButton object with a given icon and text.
if (!iconPath.Equals("") && 0 == _iconPredefined && screen.GetApplicationBar().Buttons.Count < 5)
{
//Read the text
string buttonText = core.GetDataMemory().ReadStringAtAddress(_title);
//Create the native object.
Microsoft.Phone.Shell.ApplicationBarIconButton btn = new Microsoft.Phone.Shell.ApplicationBarIconButton();
//Create the icon path.
btn.IconUri = new Uri(applicationBarIconsFolder + iconPath, UriKind.RelativeOrAbsolute);
btn.Text = buttonText;
//Associate an index to the native object.
int btnIndex = screen.AddApplicationBarItemIndex(btn);
btn.Click += new EventHandler(
delegate(object from, EventArgs target)
{
Memory eventData = new Memory(12);
const int MAWidgetEventData_eventType = 0;
const int MAWidgetEventData_widgetHandle = 4;
const int MAWidgetEventData_itemIndex = 8;
eventData.WriteInt32(MAWidgetEventData_eventType, MoSync.Constants.MAW_EVENT_OPTIONS_MENU_ITEM_SELECTED);
eventData.WriteInt32(MAWidgetEventData_widgetHandle, _widget);
eventData.WriteInt32(MAWidgetEventData_itemIndex, btnIndex);
//Posting a CustomEvent
runtime.PostCustomEvent(MoSync.Constants.EVENT_TYPE_WIDGET, eventData);
});
screen.GetApplicationBar().Buttons.Add(btn);
screen.EnableApplicationBar();
return btnIndex;
}
//If the iconPath is not empty and we have a predefined icon
//then we have an ApplicationBarButton object with a predefined icon and text.
else if (!iconPath.Equals("") && _iconPredefined > 0 && screen.GetApplicationBar().Buttons.Count < 5)
{
//Read the text.
string buttonText = core.GetDataMemory().ReadStringAtAddress(_title);
//Create the native object.
Microsoft.Phone.Shell.ApplicationBarIconButton btn = new Microsoft.Phone.Shell.ApplicationBarIconButton();
//Create the icon path.
btn.IconUri = new Uri(applicationBarIconsFolder + iconPath + ".png", UriKind.RelativeOrAbsolute);
btn.Text = buttonText;
//Associate an index to the native object.
int btnIndex = screen.AddApplicationBarItemIndex(btn);
btn.Click += new EventHandler(
delegate(object from, EventArgs target)
{
Memory eventData = new Memory(12);
const int MAWidgetEventData_eventType = 0;
const int MAWidgetEventData_widgetHandle = 4;
const int MAWidgetEventData_itemIndex = 8;
eventData.WriteInt32(MAWidgetEventData_eventType, MoSync.Constants.MAW_EVENT_OPTIONS_MENU_ITEM_SELECTED);
eventData.WriteInt32(MAWidgetEventData_widgetHandle, _widget);
示例4: SendSensorEventVector
private void SendSensorEventVector(Runtime runtime, int type, Vector3 data)
{
Memory eventData = new Memory(4 * 4);
eventData.WriteInt32(MoSync.Struct.MASensor.type, type);
eventData.WriteInt32(MoSync.Struct.MASensor.values + 0, MoSync.Util.ConvertToInt(data.X));
eventData.WriteInt32(MoSync.Struct.MASensor.values + 4, MoSync.Util.ConvertToInt(data.Y));
eventData.WriteInt32(MoSync.Struct.MASensor.values + 8, MoSync.Util.ConvertToInt(data.Z));
runtime.PostCustomEvent(MoSync.Constants.EVENT_TYPE_SENSOR, eventData);
}