def __init__(self, interval=5): ''' :param int interval: Number of milliseconds that represents interval when messages will be processed. ''' self._subscribers = defaultdict(list) self._messages = Queue() self._lock = Lock() self._timer = DispatcherTimer() self._timer.Interval = TimeSpan.FromMilliseconds(5) self._timer.Tick += self._execute self._timer.Start()
class XamlWindow(Window): def __init__(self): rd = ResourceDictionary() rd.Source = Uri("pack://application:,,,/ClassicAssist.Shared;component/Resources/DarkTheme.xaml") self.Resources.MergedDictionaries.Add(rd) self.Background = self.Resources["ThemeWindowBackgroundBrush"] self.Content = XamlReader.Parse(xaml) self.Title = "Durability" self.Topmost = True self.SizeToContent = SizeToContent.Width self.Height = 400 self.refreshTime = TimeSpan.FromSeconds(30) self.listView = self.Content.FindName('listView') self.startButton = self.Content.FindName('startButton') self.startButton.Click += self.onClick self.timer = DispatcherTimer() self.timer.Tick += self.onTick self.timer.Interval = TimeSpan().FromSeconds(0) self.timer.Start() self.timer.Interval = self.refreshTime self.Running = True def onClick(self, sender, event): self.Running = not self.Running self.startButton.Content = "Start" if not self.Running else 'Stop' if self.Running: print 'Starting timer...' self.timer.Interval = TimeSpan().FromSeconds(0) self.timer.Start() self.timer.Interval = self.refreshTime else: print 'Stopping timer...' self.timer.Stop() self.listView.Items.Clear() def onTick(self, sender, event): print 'Updating durabilities' self.listView.Items.Clear() durabilities = [] for layer in layers: (res, durability) = GetDurability(layer) if res: durabilities.append(LayerDurability(layer, durability)) sorted = durabilities.OrderBy(lambda i: int(i.Durability)) for item in sorted: self.listView.Items.Add(item)
def OnSelectionChanged(self, sender, e): obj = wpf.get_focused() if obj is not self.tbx: # Surprise, surprise this event is too early to be useful... # FIXME: Must be a less hackish way to get this working t = DispatcherTimer() t.Interval = TimeSpan.FromSeconds(0.1) def OnTick(sender, e): self.complete_from_member_list() self.tbx.Focus() t.Stop() t.Tick += OnTick t.Start()
def __init__(self): rd = ResourceDictionary() rd.Source = Uri("pack://application:,,,/ClassicAssist.Shared;component/Resources/DarkTheme.xaml") self.Resources.MergedDictionaries.Add(rd) self.Background = self.Resources["ThemeWindowBackgroundBrush"] self.Content = XamlReader.Parse(xaml) self.Title = "Durability" self.Topmost = True self.SizeToContent = SizeToContent.Width self.Height = 400 self.refreshTime = TimeSpan.FromSeconds(30) self.listView = self.Content.FindName('listView') self.startButton = self.Content.FindName('startButton') self.startButton.Click += self.onClick self.timer = DispatcherTimer() self.timer.Tick += self.onTick self.timer.Interval = TimeSpan().FromSeconds(0) self.timer.Start() self.timer.Interval = self.refreshTime self.Running = True
def onCompleted(task): global maxWidth, maxHeight window = Window() contentControl = ContentControl() grid1 = Grid() tickTimer = DispatcherTimer(DispatcherPriority.Normal) closeTimer = DispatcherTimer(DispatcherPriority.Background) def onLoaded(sender, args): global rectList, digits storyboard = Storyboard() def onCurrentStateInvalidated(sender, args): if sender.CurrentState == ClockState.Filling: for element in grid1.Children: element.Opacity = 1 storyboard.Remove(contentControl) if not grid1.Tag: closeTimer.Start() storyboard.CurrentStateInvalidated += onCurrentStateInvalidated r = Random(Environment.TickCount) dateTime = DateTime.Now digits[0] = dateTime.Hour / 10 digits[1] = dateTime.Hour % 10 digits[2] = dateTime.Minute / 10 digits[3] = dateTime.Minute % 10 digits[4] = dateTime.Second / 10 digits[5] = dateTime.Second % 10 for i in range(digits.Length): beginTime = Nullable[TimeSpan](TimeSpan.FromMilliseconds(r.Next(500))) for element1 in grid1.Children: if Grid.GetColumn(element1) == i: doubleAnimation = DoubleAnimation(element1.Opacity, 1, TimeSpan.FromMilliseconds(500)) doubleAnimation.BeginTime = beginTime sineEase = SineEase() sineEase.EasingMode = EasingMode.EaseOut doubleAnimation.EasingFunction = sineEase storyboard.Children.Add(doubleAnimation) Storyboard.SetTarget(doubleAnimation, element1) Storyboard.SetTargetProperty(doubleAnimation, PropertyPath(UIElement.OpacityProperty)) if Grid.GetRow(element1) == 0: scale1 = Math.Max(element1.ActualWidth / maxWidth, element1.ActualHeight / maxHeight) if rectList[digits[Grid.GetColumn(element1)]].Width > maxWidth and rectList[digits[Grid.GetColumn(element1)]].Height > maxHeight: translateX = Math.Round(-(rectList[digits[Grid.GetColumn(element1)]].X + (rectList[digits[Grid.GetColumn(element1)]].Width - maxWidth) / 2.0)) translateY = Math.Round(-(rectList[digits[Grid.GetColumn(element1)]].Y + (rectList[digits[Grid.GetColumn(element1)]].Height - maxHeight) / 2.0)) elif rectList[digits[Grid.GetColumn(element1)]].Width > maxWidth: translateX = Math.Round(-(rectList[digits[Grid.GetColumn(element1)]].X + (rectList[digits[Grid.GetColumn(element1)]].Width - maxWidth) / 2.0)) translateY = Math.Round(-rectList[digits[Grid.GetColumn(element1)]].Y) elif rectList[digits[Grid.GetColumn(element1)]].Height > maxHeight: translateX = Math.Round(-rectList[digits[Grid.GetColumn(element1)]].X) translateY = Math.Round(-(rectList[digits[Grid.GetColumn(element1)]].Y + (rectList[digits[Grid.GetColumn(element1)]].Height - maxHeight) / 2.0)) else: translateX = Math.Round(-rectList[digits[Grid.GetColumn(element1)]].X) translateY = Math.Round(-rectList[digits[Grid.GetColumn(element1)]].Y) scale2 = Math.Max(maxWidth / rectList[digits[Grid.GetColumn(element1)]].Width, maxHeight / rectList[digits[Grid.GetColumn(element1)]].Height) if scale2 > 1: scale2 = 1 for element2 in element1.Child.Children: transformGroup1 = TransformGroup() transformGroup1.Children.Add(TranslateTransform((element2.ActualWidth - maxWidth) / 2, (element2.ActualHeight - maxHeight) / 2)) transformGroup1.Children.Add(ScaleTransform(scale1, scale1, element2.ActualWidth / 2, element2.ActualHeight / 2)) element2.RenderTransform = transformGroup1 for element3 in element2.Children: transformGroup2 = TransformGroup() transformGroup2.Children.Add(TranslateTransform(translateX, translateY)) transformGroup2.Children.Add(ScaleTransform(scale2, scale2, maxWidth / 2, maxHeight / 2)) element3.RenderTransform = transformGroup2 contentControl.BeginStoryboard(storyboard, HandoffBehavior.SnapshotAndReplace, True) tickTimer.Start() def onWindowMouseEnter(sender, args): closeTimer.Stop() grid1.Tag = True def onWindowMouseLeave(sender, args): if closeTimer.Tag: closeTimer.Start() grid1.Tag = False def onTick(sender, args): global rectList, digits if rectList.Count > 0: dateTime = DateTime.Now for element1 in grid1.Children: if Grid.GetRow(element1) == 0: if Grid.GetColumn(element1) == 0: digit = dateTime.Hour / 10 elif Grid.GetColumn(element1) == 1: digit = dateTime.Hour % 10 elif Grid.GetColumn(element1) == 2: digit = dateTime.Minute / 10 elif Grid.GetColumn(element1) == 3: digit = dateTime.Minute % 10 elif Grid.GetColumn(element1) == 4: digit = dateTime.Second / 10 else: digit = dateTime.Second % 10 if digit != digits[Grid.GetColumn(element1)]: for element2 in element1.Child.Children: for element3 in element2.Children: storyboard = Storyboard() for transform in element3.RenderTransform.Children: if clr.GetClrType(TranslateTransform).IsInstanceOfType(transform): if rectList[digit].Width > maxWidth and rectList[digit].Height > maxHeight: translateX = Math.Round(-(rectList[digits[Grid.GetColumn(element1)]].X + (rectList[digit].X + (rectList[digit].Width - maxWidth) / 2.0 - rectList[digits[Grid.GetColumn(element1)]].X))) translateY = Math.Round(-(rectList[digits[Grid.GetColumn(element1)]].Y + (rectList[digit].Y + (rectList[digit].Height - maxHeight) / 2.0 - rectList[digits[Grid.GetColumn(element1)]].Y))) elif rectList[digit].Width > maxWidth: translateX = Math.Round(-(rectList[digits[Grid.GetColumn(element1)]].X + (rectList[digit].X + (rectList[digit].Width - maxWidth) / 2.0 - rectList[digits[Grid.GetColumn(element1)]].X))) translateY = Math.Round(-(rectList[digits[Grid.GetColumn(element1)]].Y + (rectList[digit].Y - rectList[digits[Grid.GetColumn(element1)]].Y))) elif rectList[digit].Height > maxHeight: translateX = Math.Round(-(rectList[digits[Grid.GetColumn(element1)]].X + (rectList[digit].X - rectList[digits[Grid.GetColumn(element1)]].X))) translateY = Math.Round(-(rectList[digits[Grid.GetColumn(element1)]].Y + (rectList[digit].Y + (rectList[digit].Height - maxHeight) / 2.0 - rectList[digits[Grid.GetColumn(element1)]].Y))) else: translateX = Math.Round(-(rectList[digits[Grid.GetColumn(element1)]].X + (rectList[digit].X - rectList[digits[Grid.GetColumn(element1)]].X))) translateY = Math.Round(-(rectList[digits[Grid.GetColumn(element1)]].Y + (rectList[digit].Y - rectList[digits[Grid.GetColumn(element1)]].Y))) doubleAnimation1 = DoubleAnimation(translateX, TimeSpan.FromMilliseconds(500)) doubleAnimation2 = DoubleAnimation(translateY, TimeSpan.FromMilliseconds(500)) sineEase = SineEase() sineEase.EasingMode = EasingMode.EaseInOut doubleAnimation1.EasingFunction = sineEase doubleAnimation2.EasingFunction = sineEase storyboard.Children.Add(doubleAnimation1) storyboard.Children.Add(doubleAnimation2) Storyboard.SetTarget(doubleAnimation1, element3) Storyboard.SetTarget(doubleAnimation2, element3) Storyboard.SetTargetProperty(doubleAnimation1, PropertyPath("(0).(1)[0].(2)", Canvas.RenderTransformProperty, TransformGroup.ChildrenProperty, TranslateTransform.XProperty)) Storyboard.SetTargetProperty(doubleAnimation2, PropertyPath("(0).(1)[0].(2)", Canvas.RenderTransformProperty, TransformGroup.ChildrenProperty, TranslateTransform.YProperty)) else: scale1 = Math.Max(maxWidth / rectList[digits[Grid.GetColumn(element1)]].Width, maxHeight / rectList[digits[Grid.GetColumn(element1)]].Height) scale2 = Math.Max(maxWidth / rectList[digit].Width, maxHeight / rectList[digit].Height) if scale1 > 1: scale1 = 1 if scale2 > 1: scale2 = 1 transform.ScaleX = transform.ScaleY = scale1 + (scale2 - scale1) doubleAnimation1 = DoubleAnimation(scale1 + (scale2 - scale1), TimeSpan.FromMilliseconds(500)) doubleAnimation2 = DoubleAnimation(scale1 + (scale2 - scale1), TimeSpan.FromMilliseconds(500)) sineEase = SineEase() sineEase.EasingMode = EasingMode.EaseInOut doubleAnimation1.EasingFunction = sineEase doubleAnimation2.EasingFunction = sineEase storyboard.Children.Add(doubleAnimation1) storyboard.Children.Add(doubleAnimation2) Storyboard.SetTarget(doubleAnimation1, element3) Storyboard.SetTarget(doubleAnimation2, element3) Storyboard.SetTargetProperty(doubleAnimation1, PropertyPath("(0).(1)[1].(2)", Canvas.RenderTransformProperty, TransformGroup.ChildrenProperty, ScaleTransform.ScaleXProperty)) Storyboard.SetTargetProperty(doubleAnimation2, PropertyPath("(0).(1)[1].(2)", Canvas.RenderTransformProperty, TransformGroup.ChildrenProperty, ScaleTransform.ScaleYProperty)) element3.BeginStoryboard(storyboard, HandoffBehavior.SnapshotAndReplace) digits[Grid.GetColumn(element1)] = digit def onClose(sender, args): global digits closeTimer.Stop() storyboard = Storyboard() def onCurrentStateInvalidated(sender, args): if sender.CurrentState == ClockState.Filling: for element in grid1.Children: element.Opacity = 0 storyboard.Remove(contentControl) tickTimer.Stop() window.Close() storyboard.CurrentStateInvalidated += onCurrentStateInvalidated r = Random(Environment.TickCount) for i in range(digits.Length): beginTime = Nullable[TimeSpan](TimeSpan.FromMilliseconds(r.Next(500))) for element in grid1.Children: if Grid.GetColumn(element) == i: doubleAnimation = DoubleAnimation(element.Opacity, 0, TimeSpan.FromMilliseconds(500)) doubleAnimation.BeginTime = beginTime sineEase = SineEase() sineEase.EasingMode = EasingMode.EaseIn doubleAnimation.EasingFunction = sineEase storyboard.Children.Add(doubleAnimation) Storyboard.SetTarget(doubleAnimation, element) Storyboard.SetTargetProperty(doubleAnimation, PropertyPath(UIElement.OpacityProperty)) contentControl.BeginStoryboard(storyboard, HandoffBehavior.SnapshotAndReplace, True) closeTimer.Tag = False tickTimer.Tick += onTick tickTimer.Interval = TimeSpan.FromMilliseconds(100) closeTimer.Tick += onClose closeTimer.Interval = TimeSpan.FromSeconds(3) closeTimer.Tag = True window.Owner = Application.Current.MainWindow window.Title = Application.Current.MainWindow.Title window.WindowStartupLocation = WindowStartupLocation.CenterScreen window.AllowsTransparency = True window.WindowStyle = WindowStyle.None window.ResizeMode = ResizeMode.NoResize window.ShowActivated = False window.ShowInTaskbar = Application.Current.MainWindow.ContextMenu.Items[5].IsChecked window.Topmost = True window.SizeToContent = SizeToContent.WidthAndHeight window.Background = Brushes.Transparent window.Loaded += onLoaded window.MouseEnter += onWindowMouseEnter window.MouseLeave += onWindowMouseLeave contentControl.UseLayoutRounding = True contentControl.HorizontalAlignment = HorizontalAlignment.Stretch contentControl.VerticalAlignment = VerticalAlignment.Stretch window.Content = contentControl grid1.HorizontalAlignment = HorizontalAlignment.Center grid1.VerticalAlignment = VerticalAlignment.Center grid1.Background = Brushes.Transparent grid1.Tag = False contentControl.Content = grid1 bitmapImageList1 = List[BitmapImage]() bitmapImageList2 = List[BitmapImage]() width = 0 height = 0 for stream in task.Result.Key: try: bitmapImage = BitmapImage() bitmapImage.BeginInit() bitmapImage.StreamSource = stream bitmapImage.CacheOption = BitmapCacheOption.OnLoad bitmapImage.CreateOptions = BitmapCreateOptions.None bitmapImage.EndInit() width += bitmapImage.PixelWidth if bitmapImage.PixelHeight > height: height = bitmapImage.PixelHeight bitmapImageList1.Add(bitmapImage) finally: stream.Close() for stream in task.Result.Value: try: bitmapImage = BitmapImage() bitmapImage.BeginInit() bitmapImage.StreamSource = stream bitmapImage.CacheOption = BitmapCacheOption.OnLoad bitmapImage.CreateOptions = BitmapCreateOptions.None bitmapImage.EndInit() bitmapImageList2.Add(bitmapImage) finally: stream.Close() x = 0 kvpList = List[KeyValuePair[Point, BitmapImage]]() for bitmapImage in bitmapImageList1: rect = Rect(x, (height - bitmapImage.PixelHeight) / 2, bitmapImage.PixelWidth, bitmapImage.PixelHeight) rectList.Add(rect) kvpList.Add(KeyValuePair[Point, BitmapImage](rect.Location, bitmapImage)) x += bitmapImage.PixelWidth rowDefinition1 = RowDefinition() rowDefinition1.Height = GridLength(1, GridUnitType.Auto) grid1.RowDefinitions.Add(rowDefinition1) for i in range(digits.Length): columnDefinition = ColumnDefinition() columnDefinition.Width = GridLength(1, GridUnitType.Star) grid1.ColumnDefinitions.Add(columnDefinition) border = Border() border.HorizontalAlignment = HorizontalAlignment.Stretch border.VerticalAlignment = VerticalAlignment.Stretch border.Margin = Thickness(4) border.BorderBrush = Brushes.Black border.BorderThickness = Thickness(1) border.Padding = Thickness(0) border.Width = 160 border.Height = 480 border.Background = Brushes.White border.Opacity = 0 grid1.Children.Add(border) Grid.SetColumn(border, i); Grid.SetRow(border, 0) grid2 = Grid() grid2.HorizontalAlignment = HorizontalAlignment.Stretch grid2.VerticalAlignment = VerticalAlignment.Stretch grid2.Background = Brushes.Transparent grid2.ClipToBounds = True border.Child = grid2 grid3 = Grid() grid3.HorizontalAlignment = HorizontalAlignment.Left grid3.VerticalAlignment = VerticalAlignment.Top grid3.Width = 160 grid3.Height = 480 grid3.Background = Brushes.Transparent grid2.Children.Add(grid3) canvas = Canvas() canvas.HorizontalAlignment = HorizontalAlignment.Left canvas.VerticalAlignment = VerticalAlignment.Top canvas.Width = width canvas.Height = maxHeight canvas.Background = Brushes.Transparent grid3.Children.Add(canvas) for kvp in kvpList: image = Image() image.HorizontalAlignment = HorizontalAlignment.Left image.VerticalAlignment = VerticalAlignment.Top image.Source = kvp.Value image.Width = kvp.Value.PixelWidth image.Height = kvp.Value.PixelHeight image.Stretch = Stretch.Fill canvas.Children.Add(image) Canvas.SetLeft(image, kvp.Key.X) Canvas.SetTop(image, kvp.Key.Y) column = 1 rowDefinition2 = RowDefinition() rowDefinition2.Height = GridLength(1, GridUnitType.Auto) grid1.RowDefinitions.Add(rowDefinition2) for bitmapImage in bitmapImageList2: image = Image() image.HorizontalAlignment = HorizontalAlignment.Right image.VerticalAlignment = VerticalAlignment.Top image.Margin = Thickness(0, 0, 8, 0) image.Source = bitmapImage image.Width = bitmapImage.PixelWidth / 2 image.Height = bitmapImage.PixelHeight / 2 image.Stretch = Stretch.Fill grid1.Children.Add(image) Grid.SetColumn(image, column); Grid.SetRow(image, 1); column += 2 window.Show()
elif iSextant == 2: return Color.FromArgb(Convert.ToByte(a), Convert.ToByte(iMin), Convert.ToByte(iMax), Convert.ToByte(iMid)) elif iSextant == 3: return Color.FromArgb(Convert.ToByte(a), Convert.ToByte(iMin), Convert.ToByte(iMid), Convert.ToByte(iMax)) elif iSextant == 4: return Color.FromArgb(Convert.ToByte(a), Convert.ToByte(iMid), Convert.ToByte(iMin), Convert.ToByte(iMax)) elif iSextant == 5: return Color.FromArgb(Convert.ToByte(a), Convert.ToByte(iMax), Convert.ToByte(iMin), Convert.ToByte(iMid)) return Color.FromArgb(Convert.ToByte(a), Convert.ToByte(iMax), Convert.ToByte(iMid), Convert.ToByte(iMin)) def onStart(s, e): global timer timer.Start() def onStop(s, e): global timer timer.Stop() idList = List[Double]() timer = DispatcherTimer(DispatcherPriority.Background) timer.Tick += onTick timer.Interval = TimeSpan.FromMilliseconds(30000) Script.Instance.Start += onStart Script.Instance.Stop += onStop
remaining_tests = list(tests) start_time = None iframes = '' for t in tests: # TODO delete any existing files in IsoStore from this test iframes += '<iframe width="25%%" height="100" id=%s src="sub.html?test=%s"></iframe>' % (t, t) sl_ctl = HtmlPage.Document.CreateElement("span") sl_ctl.Id = "test-domain-loading" sl_ctl.SetProperty("innerHTML", iframes) HtmlPage.Document.Body.AppendChild(sl_ctl) ht = DispatcherTimer() ht.Interval = TimeSpan.FromSeconds(TimerInterval) timer_counter = 0 def CheckForDonFile(sender, args): # check for exception and signal global timer_counter global tests if remaining_tests: if timer_counter > MAXTIMERCOUNT - 1: print "Time out! %d tests didn't finish." % len(remaining_tests) # stop timer ht.Stop() else:
remaining_tests = list(tests) start_time = None iframes = '' for t in tests: # TODO delete any existing files in IsoStore from this test iframes += '<iframe width="25%%" height="100" id=%s src="sub.html?test=%s"></iframe>' % ( t, t) sl_ctl = HtmlPage.Document.CreateElement("span") sl_ctl.Id = "test-domain-loading" sl_ctl.SetProperty("innerHTML", iframes) HtmlPage.Document.Body.AppendChild(sl_ctl) ht = DispatcherTimer() ht.Interval = TimeSpan.FromSeconds(TimerInterval) timer_counter = 0 def CheckForDonFile(sender, args): # check for exception and signal global timer_counter global tests if remaining_tests: if timer_counter > MAXTIMERCOUNT - 1: print "Time out! %d tests didn't finish." % len(remaining_tests) # stop timer ht.Stop()
def onCompleted(task): global maxWidth, maxHeight window = Window() contentControl = ContentControl() grid1 = Grid() tickTimer = DispatcherTimer(DispatcherPriority.Normal) closeTimer = DispatcherTimer(DispatcherPriority.Background) def onLoaded(sender, args): global rectList, digits storyboard = Storyboard() def onCurrentStateInvalidated(sender, args): if sender.CurrentState == ClockState.Filling: for element in grid1.Children: element.Opacity = 1 storyboard.Remove(contentControl) if not grid1.Tag: closeTimer.Start() storyboard.CurrentStateInvalidated += onCurrentStateInvalidated r = Random(Environment.TickCount) dateTime = DateTime.Now digits[0] = dateTime.Hour / 10 digits[1] = dateTime.Hour % 10 digits[2] = dateTime.Minute / 10 digits[3] = dateTime.Minute % 10 digits[4] = dateTime.Second / 10 digits[5] = dateTime.Second % 10 for i in range(digits.Length): beginTime = Nullable[TimeSpan](TimeSpan.FromMilliseconds( r.Next(500))) for element1 in grid1.Children: if Grid.GetColumn(element1) == i: doubleAnimation = DoubleAnimation( element1.Opacity, 1, TimeSpan.FromMilliseconds(500)) doubleAnimation.BeginTime = beginTime sineEase = SineEase() sineEase.EasingMode = EasingMode.EaseOut doubleAnimation.EasingFunction = sineEase storyboard.Children.Add(doubleAnimation) Storyboard.SetTarget(doubleAnimation, element1) Storyboard.SetTargetProperty( doubleAnimation, PropertyPath(UIElement.OpacityProperty)) if Grid.GetRow(element1) == 0: scale1 = Math.Max( element1.ActualWidth / maxWidth, element1.ActualHeight / maxHeight) if rectList[digits[Grid.GetColumn( element1 )]].Width > maxWidth and rectList[digits[ Grid.GetColumn( element1)]].Height > maxHeight: translateX = Math.Round( -(rectList[digits[Grid.GetColumn( element1)]].X + (rectList[digits[Grid.GetColumn( element1)]].Width - maxWidth) / 2.0)) translateY = Math.Round( -(rectList[digits[Grid.GetColumn( element1)]].Y + (rectList[digits[Grid.GetColumn( element1)]].Height - maxHeight) / 2.0)) elif rectList[digits[Grid.GetColumn( element1)]].Width > maxWidth: translateX = Math.Round( -(rectList[digits[Grid.GetColumn( element1)]].X + (rectList[digits[Grid.GetColumn( element1)]].Width - maxWidth) / 2.0)) translateY = Math.Round(-rectList[digits[ Grid.GetColumn(element1)]].Y) elif rectList[digits[Grid.GetColumn( element1)]].Height > maxHeight: translateX = Math.Round(-rectList[digits[ Grid.GetColumn(element1)]].X) translateY = Math.Round( -(rectList[digits[Grid.GetColumn( element1)]].Y + (rectList[digits[Grid.GetColumn( element1)]].Height - maxHeight) / 2.0)) else: translateX = Math.Round(-rectList[digits[ Grid.GetColumn(element1)]].X) translateY = Math.Round(-rectList[digits[ Grid.GetColumn(element1)]].Y) scale2 = Math.Max( maxWidth / rectList[digits[Grid.GetColumn( element1)]].Width, maxHeight / rectList[digits[Grid.GetColumn( element1)]].Height) if scale2 > 1: scale2 = 1 for element2 in element1.Child.Children: transformGroup1 = TransformGroup() transformGroup1.Children.Add( TranslateTransform( (element2.ActualWidth - maxWidth) / 2, (element2.ActualHeight - maxHeight) / 2)) transformGroup1.Children.Add( ScaleTransform( scale1, scale1, element2.ActualWidth / 2, element2.ActualHeight / 2)) element2.RenderTransform = transformGroup1 for element3 in element2.Children: transformGroup2 = TransformGroup() transformGroup2.Children.Add( TranslateTransform( translateX, translateY)) transformGroup2.Children.Add( ScaleTransform( scale2, scale2, maxWidth / 2, maxHeight / 2)) element3.RenderTransform = transformGroup2 contentControl.BeginStoryboard( storyboard, HandoffBehavior.SnapshotAndReplace, True) tickTimer.Start() def onWindowMouseEnter(sender, args): closeTimer.Stop() grid1.Tag = True def onWindowMouseLeave(sender, args): if closeTimer.Tag: closeTimer.Start() grid1.Tag = False def onTick(sender, args): global rectList, digits if rectList.Count > 0: dateTime = DateTime.Now for element1 in grid1.Children: if Grid.GetRow(element1) == 0: if Grid.GetColumn(element1) == 0: digit = dateTime.Hour / 10 elif Grid.GetColumn(element1) == 1: digit = dateTime.Hour % 10 elif Grid.GetColumn(element1) == 2: digit = dateTime.Minute / 10 elif Grid.GetColumn(element1) == 3: digit = dateTime.Minute % 10 elif Grid.GetColumn(element1) == 4: digit = dateTime.Second / 10 else: digit = dateTime.Second % 10 if digit != digits[Grid.GetColumn(element1)]: for element2 in element1.Child.Children: for element3 in element2.Children: storyboard = Storyboard() for transform in element3.RenderTransform.Children: if clr.GetClrType( TranslateTransform ).IsInstanceOfType(transform): if rectList[ digit].Width > maxWidth and rectList[ digit].Height > maxHeight: translateX = Math.Round(-( rectList[digits[ Grid.GetColumn( element1)]].X + (rectList[digit].X + (rectList[digit].Width - maxWidth) / 2.0 - rectList[digits[ Grid.GetColumn( element1)]].X) )) translateY = Math.Round(-( rectList[digits[ Grid.GetColumn( element1)]].Y + (rectList[digit].Y + (rectList[digit]. Height - maxHeight) / 2.0 - rectList[digits[ Grid.GetColumn( element1)]].Y) )) elif rectList[ digit].Width > maxWidth: translateX = Math.Round(-( rectList[digits[ Grid.GetColumn( element1)]].X + (rectList[digit].X + (rectList[digit].Width - maxWidth) / 2.0 - rectList[digits[ Grid.GetColumn( element1)]].X) )) translateY = Math.Round(-( rectList[digits[ Grid.GetColumn( element1)]].Y + (rectList[digit].Y - rectList[digits[ Grid.GetColumn( element1)]].Y) )) elif rectList[ digit].Height > maxHeight: translateX = Math.Round(-( rectList[digits[ Grid.GetColumn( element1)]].X + (rectList[digit].X - rectList[digits[ Grid.GetColumn( element1)]].X) )) translateY = Math.Round(-( rectList[digits[ Grid.GetColumn( element1)]].Y + (rectList[digit].Y + (rectList[digit]. Height - maxHeight) / 2.0 - rectList[digits[ Grid.GetColumn( element1)]].Y) )) else: translateX = Math.Round(-( rectList[digits[ Grid.GetColumn( element1)]].X + (rectList[digit].X - rectList[digits[ Grid.GetColumn( element1)]].X) )) translateY = Math.Round(-( rectList[digits[ Grid.GetColumn( element1)]].Y + (rectList[digit].Y - rectList[digits[ Grid.GetColumn( element1)]].Y) )) doubleAnimation1 = DoubleAnimation( translateX, TimeSpan.FromMilliseconds( 500)) doubleAnimation2 = DoubleAnimation( translateY, TimeSpan.FromMilliseconds( 500)) sineEase = SineEase() sineEase.EasingMode = EasingMode.EaseInOut doubleAnimation1.EasingFunction = sineEase doubleAnimation2.EasingFunction = sineEase storyboard.Children.Add( doubleAnimation1) storyboard.Children.Add( doubleAnimation2) Storyboard.SetTarget( doubleAnimation1, element3) Storyboard.SetTarget( doubleAnimation2, element3) Storyboard.SetTargetProperty( doubleAnimation1, PropertyPath( "(0).(1)[0].(2)", Canvas. RenderTransformProperty, TransformGroup. ChildrenProperty, TranslateTransform. XProperty)) Storyboard.SetTargetProperty( doubleAnimation2, PropertyPath( "(0).(1)[0].(2)", Canvas. RenderTransformProperty, TransformGroup. ChildrenProperty, TranslateTransform. YProperty)) else: scale1 = Math.Max( maxWidth / rectList[digits[ Grid.GetColumn( element1)]].Width, maxHeight / rectList[ digits[Grid.GetColumn( element1)]].Height) scale2 = Math.Max( maxWidth / rectList[digit].Width, maxHeight / rectList[digit].Height) if scale1 > 1: scale1 = 1 if scale2 > 1: scale2 = 1 transform.ScaleX = transform.ScaleY = scale1 + ( scale2 - scale1) doubleAnimation1 = DoubleAnimation( scale1 + (scale2 - scale1), TimeSpan.FromMilliseconds( 500)) doubleAnimation2 = DoubleAnimation( scale1 + (scale2 - scale1), TimeSpan.FromMilliseconds( 500)) sineEase = SineEase() sineEase.EasingMode = EasingMode.EaseInOut doubleAnimation1.EasingFunction = sineEase doubleAnimation2.EasingFunction = sineEase storyboard.Children.Add( doubleAnimation1) storyboard.Children.Add( doubleAnimation2) Storyboard.SetTarget( doubleAnimation1, element3) Storyboard.SetTarget( doubleAnimation2, element3) Storyboard.SetTargetProperty( doubleAnimation1, PropertyPath( "(0).(1)[1].(2)", Canvas. RenderTransformProperty, TransformGroup. ChildrenProperty, ScaleTransform. ScaleXProperty)) Storyboard.SetTargetProperty( doubleAnimation2, PropertyPath( "(0).(1)[1].(2)", Canvas. RenderTransformProperty, TransformGroup. ChildrenProperty, ScaleTransform. ScaleYProperty)) element3.BeginStoryboard( storyboard, HandoffBehavior.SnapshotAndReplace) digits[Grid.GetColumn(element1)] = digit def onClose(sender, args): global digits closeTimer.Stop() storyboard = Storyboard() def onCurrentStateInvalidated(sender, args): if sender.CurrentState == ClockState.Filling: for element in grid1.Children: element.Opacity = 0 storyboard.Remove(contentControl) tickTimer.Stop() window.Close() storyboard.CurrentStateInvalidated += onCurrentStateInvalidated r = Random(Environment.TickCount) for i in range(digits.Length): beginTime = Nullable[TimeSpan](TimeSpan.FromMilliseconds( r.Next(500))) for element in grid1.Children: if Grid.GetColumn(element) == i: doubleAnimation = DoubleAnimation( element.Opacity, 0, TimeSpan.FromMilliseconds(500)) doubleAnimation.BeginTime = beginTime sineEase = SineEase() sineEase.EasingMode = EasingMode.EaseIn doubleAnimation.EasingFunction = sineEase storyboard.Children.Add(doubleAnimation) Storyboard.SetTarget(doubleAnimation, element) Storyboard.SetTargetProperty( doubleAnimation, PropertyPath(UIElement.OpacityProperty)) contentControl.BeginStoryboard( storyboard, HandoffBehavior.SnapshotAndReplace, True) closeTimer.Tag = False tickTimer.Tick += onTick tickTimer.Interval = TimeSpan.FromMilliseconds(100) closeTimer.Tick += onClose closeTimer.Interval = TimeSpan.FromSeconds(3) closeTimer.Tag = True window.Owner = Application.Current.MainWindow window.Title = Application.Current.MainWindow.Title window.WindowStartupLocation = WindowStartupLocation.CenterScreen window.AllowsTransparency = True window.WindowStyle = WindowStyle.None window.ResizeMode = ResizeMode.NoResize window.ShowActivated = False window.ShowInTaskbar = Application.Current.MainWindow.ContextMenu.Items[ 5].IsChecked window.Topmost = True window.SizeToContent = SizeToContent.WidthAndHeight window.Background = Brushes.Transparent window.Loaded += onLoaded window.MouseEnter += onWindowMouseEnter window.MouseLeave += onWindowMouseLeave contentControl.UseLayoutRounding = True contentControl.HorizontalAlignment = HorizontalAlignment.Stretch contentControl.VerticalAlignment = VerticalAlignment.Stretch window.Content = contentControl grid1.HorizontalAlignment = HorizontalAlignment.Center grid1.VerticalAlignment = VerticalAlignment.Center grid1.Background = Brushes.Transparent grid1.Tag = False contentControl.Content = grid1 bitmapImageList1 = List[BitmapImage]() bitmapImageList2 = List[BitmapImage]() width = 0 height = 0 for stream in task.Result.Key: try: bitmapImage = BitmapImage() bitmapImage.BeginInit() bitmapImage.StreamSource = stream bitmapImage.CacheOption = BitmapCacheOption.OnLoad bitmapImage.CreateOptions = BitmapCreateOptions.None bitmapImage.EndInit() width += bitmapImage.PixelWidth if bitmapImage.PixelHeight > height: height = bitmapImage.PixelHeight bitmapImageList1.Add(bitmapImage) finally: stream.Close() for stream in task.Result.Value: try: bitmapImage = BitmapImage() bitmapImage.BeginInit() bitmapImage.StreamSource = stream bitmapImage.CacheOption = BitmapCacheOption.OnLoad bitmapImage.CreateOptions = BitmapCreateOptions.None bitmapImage.EndInit() bitmapImageList2.Add(bitmapImage) finally: stream.Close() x = 0 kvpList = List[KeyValuePair[Point, BitmapImage]]() for bitmapImage in bitmapImageList1: rect = Rect(x, (height - bitmapImage.PixelHeight) / 2, bitmapImage.PixelWidth, bitmapImage.PixelHeight) rectList.Add(rect) kvpList.Add(KeyValuePair[Point, BitmapImage](rect.Location, bitmapImage)) x += bitmapImage.PixelWidth rowDefinition1 = RowDefinition() rowDefinition1.Height = GridLength(1, GridUnitType.Auto) grid1.RowDefinitions.Add(rowDefinition1) for i in range(digits.Length): columnDefinition = ColumnDefinition() columnDefinition.Width = GridLength(1, GridUnitType.Star) grid1.ColumnDefinitions.Add(columnDefinition) border = Border() border.HorizontalAlignment = HorizontalAlignment.Stretch border.VerticalAlignment = VerticalAlignment.Stretch border.Margin = Thickness(4) border.BorderBrush = Brushes.Black border.BorderThickness = Thickness(1) border.Padding = Thickness(0) border.Width = 160 border.Height = 480 border.Background = Brushes.White border.Opacity = 0 grid1.Children.Add(border) Grid.SetColumn(border, i) Grid.SetRow(border, 0) grid2 = Grid() grid2.HorizontalAlignment = HorizontalAlignment.Stretch grid2.VerticalAlignment = VerticalAlignment.Stretch grid2.Background = Brushes.Transparent grid2.ClipToBounds = True border.Child = grid2 grid3 = Grid() grid3.HorizontalAlignment = HorizontalAlignment.Left grid3.VerticalAlignment = VerticalAlignment.Top grid3.Width = 160 grid3.Height = 480 grid3.Background = Brushes.Transparent grid2.Children.Add(grid3) canvas = Canvas() canvas.HorizontalAlignment = HorizontalAlignment.Left canvas.VerticalAlignment = VerticalAlignment.Top canvas.Width = width canvas.Height = maxHeight canvas.Background = Brushes.Transparent grid3.Children.Add(canvas) for kvp in kvpList: image = Image() image.HorizontalAlignment = HorizontalAlignment.Left image.VerticalAlignment = VerticalAlignment.Top image.Source = kvp.Value image.Width = kvp.Value.PixelWidth image.Height = kvp.Value.PixelHeight image.Stretch = Stretch.Fill canvas.Children.Add(image) Canvas.SetLeft(image, kvp.Key.X) Canvas.SetTop(image, kvp.Key.Y) column = 1 rowDefinition2 = RowDefinition() rowDefinition2.Height = GridLength(1, GridUnitType.Auto) grid1.RowDefinitions.Add(rowDefinition2) for bitmapImage in bitmapImageList2: image = Image() image.HorizontalAlignment = HorizontalAlignment.Right image.VerticalAlignment = VerticalAlignment.Top image.Margin = Thickness(0, 0, 8, 0) image.Source = bitmapImage image.Width = bitmapImage.PixelWidth / 2 image.Height = bitmapImage.PixelHeight / 2 image.Stretch = Stretch.Fill grid1.Children.Add(image) Grid.SetColumn(image, column) Grid.SetRow(image, 1) column += 2 window.Show()
class _Messenger(object): ''' Thread-safe messenger that ensures that all message handlers are executed in main dispatcher thread. This class should be used as singleton. It is not enforced, but recomanded way of getting instance is by using :meth:`_Messenger.instance` class method. ''' _instance = None @classmethod def instance(cls, interval=5): ''' Returns existing instance of messenger. If one does not exist it will be created and returned. :param int interval: Number of miliseconds that represents interval when messages will be processed. Note that this parameter will be used only the first time when instance is requested, every other time it will be ignored because existing instance of :class:`._Messenger` is returned. ''' if not cls._instance: cls._instance = _Messenger(interval) return cls._instance def __init__(self, interval=5): ''' :param int interval: Number of milliseconds that represents interval when messages will be processed. ''' self._subscribers = defaultdict(list) self._messages = Queue() self._lock = Lock() self._timer = DispatcherTimer() self._timer.Interval = TimeSpan.FromMilliseconds(5) self._timer.Tick += self._execute self._timer.Start() def send(self, message, *args, **kwargs): ''' Sends provided message to all listeners. Message is only added to queue and will be processed on next tick. :param Message message: Message to send. ''' self._messages.put((message, args, kwargs), False) def subscribe(self, message, handler): ''' Adds hander for specified message. :param str message: Name of message to subscribe to. :param callable handler: Handler for this message type. Handler must receive single parameter and that parameter will be instance of sent message. ''' with self._lock: ref = WeakCallable(handler, self._on_collect) self._subscribers[message].append(ref) # TODO: Unsubscribing with WeakCallable does not work def unsubscribe(self, message, handler): ''' Removes handler from message listeners. :param str message: Name of message to unsubscribe handler from. :param callable handler: Callable that should be removed as handler for `message`. ''' with self._lock: self._subscribers[message].remove(WeakCallable(handler)) def _execute(self, sender, event_args): ''' Event handler for timer that processes all queued messages. ''' with self._lock: while not self._messages.empty(): msg, args, kwargs = self._messages.get(False) for subscriber in self._subscribers[msg]: try: subscriber(*args, **kwargs) except weakref.ReferenceError: # Reference to handler is lost and it is OK to silence it pass def _on_collect(self, ref): with self._lock: for msg in self._subscribers: if ref in self._subscribers[msg]: self._subscribers[msg].remove(ref)
menuItem.Header = "Gmail" for window in Application.Current.Windows: if window is Application.Current.MainWindow and window.ContextMenu is not None: if not window.ContextMenu.Items.Contains(menuItem): window.ContextMenu.Opened += onOpened window.ContextMenu.Items.Insert( window.ContextMenu.Items.Count - 4, menuItem) if not clr.GetClrType(Separator).IsInstanceOfType( window.ContextMenu.Items[10]): separator = Separator() window.ContextMenu.Items.Insert(10, separator) timer.Start() def onStop(s, e): global timer timer.Stop() dateTime = DateTime.Now - TimeSpan(12, 0, 0) menuItem = None separator = None timer = DispatcherTimer(DispatcherPriority.Background) timer.Tick += onTick timer.Interval = TimeSpan.FromMinutes(1) Script.Instance.Start += onStart Script.Instance.Stop += onStop
def _create_and_start_timer(self): self.timer = DispatcherTimer() self.timer.Tick += self.dispatcherTimer_Tick self.timer.Interval = TimeSpan(0, 0, 0, 0, self.timer_slider.Value) self.timer.Start()
def create_timer(self, f, freq): timer = DispatcherTimer() timer.Tick += EventHandler(f) timer.Interval = TimeSpan.FromMilliseconds(freq) return timer
class MainWindow(Window): def __init__(self): ''' get the window design from Window.xaml FindLogicalNode maps each component to a variable += maps an event to a function, the name of the event can be found in Windows class help file ''' Window.__init__(self) stream = StreamReader("Window.xaml") window = XamlReader.Load(stream.BaseStream) self._timer = DispatcherTimer() self._timer.Tick += self._timer_Tick self._timer.Interval = TimeSpan.FromMilliseconds(10) 'run the timer every 10ms' self._timer.Start() initializing = True print("main window") while Transfer.all_connected() == False and initializing: if MessageBox.Show("Devices not initialized, retry?","warning", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.Yes: Transfer.reinitialize() else: initializing = False if initializing == False: Application.Current.Shutdown() return self.UI_x = LogicalTreeHelper.FindLogicalNode(window, "UI_x") self.UI_x.Content = KCubeDCServoUI.CreateLargeView(Transfer.x) self.UI_y = LogicalTreeHelper.FindLogicalNode(window, "UI_y") self.UI_y.Content = KCubeDCServoUI.CreateLargeView(Transfer.y) self.UI_z = LogicalTreeHelper.FindLogicalNode(window, "UI_z") self.UI_z.Content = KCubeDCServoUI.CreateLargeView(Transfer.z) self.UI_rx = LogicalTreeHelper.FindLogicalNode(window, "UI_rx") self.UI_rx.Content = KCubeDCServoUI.CreateLargeView(Transfer.rx) self.UI_ry = LogicalTreeHelper.FindLogicalNode(window, "UI_ry") self.UI_ry.Content = KCubeDCServoUI.CreateLargeView(Transfer.ry) self.UI_r = LogicalTreeHelper.FindLogicalNode(window, "UI_r") self.UI_r.Content = KCubeDCServoUI.CreateLargeView(Transfer.r) self.Help = LogicalTreeHelper.FindLogicalNode(window, "Help") self.Help.Click += self.Help_Click self.ZUp = LogicalTreeHelper.FindLogicalNode(window, "ZUp") self.ZUp.Checked += self.ZUp_Checked self.ZUp.Unchecked += self.ZUp_Unchecked self.ZDown = LogicalTreeHelper.FindLogicalNode(window, "ZDown") self.ZDown.Checked += self.ZDown_Checked self.ZDown.Unchecked += self.ZDown_Unchecked self.ViewMode = LogicalTreeHelper.FindLogicalNode(window, "ViewMode") self.ViewMode.SelectionChanged += self.ViewMode_Changed self.Button1 = LogicalTreeHelper.FindLogicalNode(window, "Button1") self.Button1.Click += self.Button1_Click self.Mode = LogicalTreeHelper.FindLogicalNode(window, "Mode") self.Mode.Text = "High speed mode" self.RotateAngle = LogicalTreeHelper.FindLogicalNode(window, "Angle") self.Title = "Gaming..." '''lock the size''' Application().Run(window) def ViewMode_Changed(self, sender, e): if self.ViewMode.SelectedValue.Name == "SimpleMode": self.UI_x.Content = KCubeDCServoUI.CreateSmallView(Transfer.x) self.UI_y.Content = KCubeDCServoUI.CreateSmallView(Transfer.y) self.UI_z.Content = KCubeDCServoUI.CreateSmallView(Transfer.z) self.UI_rx.Content = KCubeDCServoUI.CreateSmallView(Transfer.rx) self.UI_ry.Content = KCubeDCServoUI.CreateSmallView(Transfer.ry) self.UI_r.Content = KCubeDCServoUI.CreateSmallView(Transfer.r) if self.ViewMode.SelectedValue.Name == "ComplexMode": self.UI_x.Content = KCubeDCServoUI.CreateLargeView(Transfer.x) self.UI_y.Content = KCubeDCServoUI.CreateLargeView(Transfer.y) self.UI_z.Content = KCubeDCServoUI.CreateLargeView(Transfer.z) self.UI_rx.Content = KCubeDCServoUI.CreateLargeView(Transfer.rx) self.UI_ry.Content = KCubeDCServoUI.CreateLargeView(Transfer.ry) self.UI_r.Content = KCubeDCServoUI.CreateLargeView(Transfer.r) self.SizeToContent = True def Button1_Click(self, sender, e): try: angle = float(self.RotateAngle.Text) Transfer.rotate(angle) except ValueError: MessageBox.Show("Input invalid") self.RotateAngle.Clear() def _timer_Tick(self, sender, e): ''' keeps running to get the command and control. event is the signal from Xbox controller ''' #Transfer.check()\ #print("for/bavk/stop:{0}{1}{2}".format(Transfer.rx.Status.IsMovingForward, Transfer.rx.Status.IsMovingBackward, Transfer.rx.Status.IsMoving)) events = get_events() for event in events: if event.type == EVENT_BUTTON_RELEASED and event.button == "BACK": Transfer.close() if event.type == EVENT_BUTTON_RELEASED and event.button == "START": Transfer.__init__() #self.__init__() !!!! if event.type == EVENT_BUTTON_PRESSED and event.button == "LEFT_SHOULDER": if self.Mode.Text == "Low speed mode": Transfer.setspeed([200000, 500000, 25000, 300000]) self.Mode.Text = "High speed mode" else: Transfer.setspeed([20000, 20000, 2500, 5000]) self.Mode.Text = "Low speed mode" print(Transfer.speed) WrongInfo = Transfer.move(event) if WrongInfo != 'None': MessageBox.Show(WrongInfo) def ZUp_Checked(self, sender, e): ''' the function for the checkbox (the switch of z up/down) ''' if self.ZDown.IsChecked == True: try: Transfer.z.Stop(0) except: pass sleep(0.5) self.ZDown.IsChecked = False Transfer.z.MoveContinuousAtVelocity(FORWARD, 500) def ZUp_Unchecked(self, sender, e): Transfer.z.Stop(0) def ZDown_Checked(self, sender, e): if self.ZUp.IsChecked == True: try: Transfer.z.Stop(0) except: pass sleep(0.5) self.ZUp.IsChecked = False Transfer.z.MoveContinuousAtVelocity(BACKWARD, 500) def ZDown_Unchecked(self, sender, e): Transfer.z.Stop(0) def Help_Click(self, sender, e): ''' can show a help file after clicking the help ''' pass
if not String.IsNullOrEmpty(selectedTerm2) and selectedTerm1.Length < selectedTerm2.Length: if not selectedTermList.Contains(selectedTerm2): selectedTermList.Add(selectedTerm2) stringBuilder.Remove(0, max) else: if not selectedTermList.Contains(selectedTerm1): selectedTermList.Add(selectedTerm1) stringBuilder.Remove(0, selectedTerm1.Length) return selectedTermList def onStart(s, e): global timer timer.Start() def onStop(s, e): global timer timer.Stop() dateTime = DateTime.Now processDictionary = Dictionary[Int32, String]() timer = DispatcherTimer(DispatcherPriority.Background) timer.Tick += onTick timer.Interval = TimeSpan.FromSeconds(15) Script.Instance.Start += onStart Script.Instance.Stop += onStop
else: newText = newText.strip() if newText == oldText: return e = fracexpr(newText) Document.evalExpression.innerHTML= e.evaltext() Document.formattedExpression.innerHTML = e.html() try: r = e.eval() if r is None: r = '' elif not isinstance(r, frac): raise Exception('Unexpected result type.') Document.result.innerHTML = fracexpr(str(r)).html() Document.evalException.innerHTML = 'None' except Exception, exp: Document.result.innerHTML = 'n/a' Document.evalException.innerHTML = exp.Message oldText = newText oldText = '' t = DispatcherTimer() t.Interval = TimeSpan.FromSeconds(0.5) t.Tick += Refract t.Start()
def __init__(self): ''' get the window design from Window.xaml FindLogicalNode maps each component to a variable += maps an event to a function, the name of the event can be found in Windows class help file ''' Window.__init__(self) stream = StreamReader("Window.xaml") window = XamlReader.Load(stream.BaseStream) self._timer = DispatcherTimer() self._timer.Tick += self._timer_Tick self._timer.Interval = TimeSpan.FromMilliseconds(10) 'run the timer every 10ms' self._timer.Start() initializing = True print("main window") while Transfer.all_connected() == False and initializing: if MessageBox.Show("Devices not initialized, retry?","warning", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.Yes: Transfer.reinitialize() else: initializing = False if initializing == False: Application.Current.Shutdown() return self.UI_x = LogicalTreeHelper.FindLogicalNode(window, "UI_x") self.UI_x.Content = KCubeDCServoUI.CreateLargeView(Transfer.x) self.UI_y = LogicalTreeHelper.FindLogicalNode(window, "UI_y") self.UI_y.Content = KCubeDCServoUI.CreateLargeView(Transfer.y) self.UI_z = LogicalTreeHelper.FindLogicalNode(window, "UI_z") self.UI_z.Content = KCubeDCServoUI.CreateLargeView(Transfer.z) self.UI_rx = LogicalTreeHelper.FindLogicalNode(window, "UI_rx") self.UI_rx.Content = KCubeDCServoUI.CreateLargeView(Transfer.rx) self.UI_ry = LogicalTreeHelper.FindLogicalNode(window, "UI_ry") self.UI_ry.Content = KCubeDCServoUI.CreateLargeView(Transfer.ry) self.UI_r = LogicalTreeHelper.FindLogicalNode(window, "UI_r") self.UI_r.Content = KCubeDCServoUI.CreateLargeView(Transfer.r) self.Help = LogicalTreeHelper.FindLogicalNode(window, "Help") self.Help.Click += self.Help_Click self.ZUp = LogicalTreeHelper.FindLogicalNode(window, "ZUp") self.ZUp.Checked += self.ZUp_Checked self.ZUp.Unchecked += self.ZUp_Unchecked self.ZDown = LogicalTreeHelper.FindLogicalNode(window, "ZDown") self.ZDown.Checked += self.ZDown_Checked self.ZDown.Unchecked += self.ZDown_Unchecked self.ViewMode = LogicalTreeHelper.FindLogicalNode(window, "ViewMode") self.ViewMode.SelectionChanged += self.ViewMode_Changed self.Button1 = LogicalTreeHelper.FindLogicalNode(window, "Button1") self.Button1.Click += self.Button1_Click self.Mode = LogicalTreeHelper.FindLogicalNode(window, "Mode") self.Mode.Text = "High speed mode" self.RotateAngle = LogicalTreeHelper.FindLogicalNode(window, "Angle") self.Title = "Gaming..." '''lock the size''' Application().Run(window)
def onStart(s, e): global timer, menuItem, separator for window in Application.Current.Windows: if window is Application.Current.MainWindow and window.ContextMenu is not None: if not window.ContextMenu.Items.Contains(menuItem): window.ContextMenu.Opened += onOpened window.ContextMenu.Items.Insert(window.ContextMenu.Items.Count - 4, menuItem) window.ContextMenu.AddHandler(Button.KeyDownEvent, RoutedEventHandler(onKeyDown), True) if not clr.GetClrType(Separator).IsInstanceOfType(window.ContextMenu.Items[10]): separator = Separator() window.ContextMenu.Items.Insert(10, separator) timer.Start() def onStop(s, e): global timer timer.Stop() dateTime = DateTime.Now - TimeSpan(12, 0, 0) menuItem = MenuItem() menuItem.Header = "Facebook" separator = None timer = DispatcherTimer(DispatcherPriority.Background) timer.Tick += onTick timer.Interval = TimeSpan.FromMinutes(1) Script.Instance.Start += onStart Script.Instance.Stop += onStop
me.Play_MouseEnterValue.To = buttonOverHexValue me.Pause_MouseEnterValue.To = buttonOverHexValue me.Volume_MouseEnterValue.To = buttonOverHexValue me.Volume1_MouseEnterValue.To = buttonOverHexValue me.Volume2_MouseEnterValue.To = buttonOverHexValue me.NextA_MouseEnterValue.To = buttonOverHexValue me.NextB_MouseEnterValue.To = buttonOverHexValue me.PreviousA_MouseEnterValue.To = buttonOverHexValue me.PreviousB_MouseEnterValue.To = buttonOverHexValue me.FullA_MouseEnterValue.To = buttonOverHexValue me.FullB_MouseEnterValue.To = buttonOverHexValue me.FullC_MouseEnterValue.To = buttonOverHexValue me.FullD_MouseEnterValue.To = buttonOverHexValue # UI update timer _positionTimer = DispatcherTimer() _positionTimer.Interval = TimeSpan(0, 0, 0, 0, 100) _positionTimer.Tick += positionTimer_Tick _positionTimer.Start() #get XML from page DOM name = Application.Current.Host.InitParams["xamlid"].Split("-")[0] xmlSettings = HtmlPage.Document.GetElementById(name + "-settings").text settings = MediaInfo(xmlSettings) # assign values declared in markup _loop = settings.Loop me.Width = settings.Width me.Height = settings.Height if settings.Poster != "":
class MyWindow(Window): def __init__(self): self.mouse_drag = False self.animal_window = None self.selected_animal = None self.mouse_start_point = Point(0, 0) self.start_time = time() self.world = world.World(500, 200, constants=WorldConstants()) self.window = wpf.LoadComponent(self, 'iron_unconditioned_reflexes.xaml') self._create_and_start_timer() self._renderer = Renderer(self.canvas, self.world) self.world.food_timer = self.food_slider.Value self._renderer.draw_food_smell = self.food_smell_checkBox.IsChecked self._renderer.draw_eat_distance = self.eat_distance_checkBox.IsChecked self._renderer.draw_chunks = self.chunks_checkBox.IsChecked self._renderer.draw_animal_smell = self.animal_smell_checkBox.IsChecked self._simulation_scenario = SimulationScenario(self) def _create_and_start_timer(self): self.timer = DispatcherTimer() self.timer.Tick += self.dispatcherTimer_Tick self.timer.Interval = TimeSpan(0, 0, 0, 0, self.timer_slider.Value) self.timer.Start() def dispatcherTimer_Tick(self, sender, e): self._simulation_scenario.tic() self._check_performance() self._show_world_info_in_ui() self.world.update() self._renderer.render() if self.animal_window: self.animal_window.update() def _check_performance(self): if self.world.time % 10 == 0: performance = (time() - self.start_time) / 10.0 self.performance_textblock.Text = "performance={}".format( performance) self.start_time = time() def _show_world_info_in_ui(self): self.world_time_textblock.Text = "world time={}".format( self.world.time) self.animal_count_textblock.Text = "animal count={}".format( len(self.world.animals)) self.food_count_textblock.Text = "food count={}".format( len(self.world.food)) def timer_slider_ValueChanged(self, sender, e): self.timer.Interval = TimeSpan(0, 0, 0, 0, sender.Value) def scale_slider_ValueChanged(self, sender, e): # todo fix this crutch if hasattr(self, 'canvas'): self.canvas.RenderTransform = ScaleTransform( sender.Value, sender.Value) def canvas_SizeChanged(self, sender, e): self.world.width = int(sender.ActualWidth) self.world.height = int(sender.ActualHeight) def canvas_MouseRightButtonDown(self, sender, e): self.mouse_drag = True self.mouse_start_point = e.GetPosition(self.canvas) def canvas_MouseRightButtonUp(self, sender, e): self.mouse_drag = False def canvas_MouseLeave(self, sender, e): self.mouse_drag = False def canvas_MouseMove(self, sender, e): if self.mouse_drag: point = e.GetPosition(self.canvas) left = self.parent_canvas.GetLeft(self.canvas) top = self.parent_canvas.GetTop(self.canvas) if float.IsNaN(left): left = 0 if float.IsNaN(top): top = 0 self.parent_canvas.SetLeft( self.canvas, left + point.X - self.mouse_start_point.X) self.parent_canvas.SetTop(self.canvas, top + point.Y - self.mouse_start_point.Y) def canvas_MouseWheel(self, sender, e): self.scale_slider.Value += (e.Delta / 120) * 0.05 def food_slider_ValueChanged(self, sender, e): self.world.food_timer = int(sender.Value) def food_smell_changed(self, sender, e): self._renderer.draw_food_smell = self.food_smell_checkBox.IsChecked def eat_distance_changed(self, sender, e): self._renderer.draw_eat_distance = self.eat_distance_checkBox.IsChecked def chunks_changed(self, sender, e): self._renderer.draw_chunks = self.chunks_checkBox.IsChecked def animal_smell_changed(self, sender, e): self._renderer.draw_animal_smell = self.animal_smell_checkBox.IsChecked def MenuItem_Click(self, sender, e): if self.animal_window is None or not self.animal_window.IsLoaded: self.animal_window = AnimalWindow() self.animal_window.animal = self.selected_animal self.animal_window.Show() def canvas_MouseLeftButtonDown(self, sender, e): point = e.GetPosition(self.canvas) self.selected_animal = self.world.get_animal(point.X, point.Y) self._renderer.selected_animal = self.selected_animal if self.animal_window: self.animal_window.animal = self.selected_animal