public NotificationViewModel(Dispatcher dispatcher)
        {
            List      = new ObservableCollection <ItemPriceList>();
            LocalList = new SortedDictionary <string, ItemPriceList>();

            _dispatcher = dispatcher;

            timer          = new Timer(15000);
            timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);

            //if ((wnd == null) || (wnd.Visibility != System.Windows.Visibility.Visible) || (!wnd.IsActive))
            if (wnd == null)
            {
                wnd             = new NotificationWnd();
                wnd.DataContext = this;
            }
        }
Ejemplo n.º 2
0
        public MainWindow()
        {
            InitializeComponent();

            this.Title = string.Format("{0} v{1} by David Xanatos", App.Title, App.Version);
            if (App.lic.LicenseStatus != QLicense.LicenseStatus.VALID)
            {
                if (!App.lic.CommercialUse)
                {
                    this.Title += " - Freeware for Private NOT Commercial Use";
                }
                else if (App.IsEvaluationExpired())
                {
                    this.Title += " - Evaluation license EXPIRED";
                }
                else
                {
                    this.Title += " - Evaluation license for Commercial Use";
                }
            }

            /*else
             * {
             *  if (App.lic.CommercialUse)
             *      this.Title += " - Business Edition";
             * }*/

            App.LoadWnd(this, "Main");

            bool HasEngine = App.client.IsConnected();

            notificationWnd         = new NotificationWnd(HasEngine);
            notificationWnd.Closed += NotificationClosed;

            mPages.Add("Overview", new PageItem(new OverviewPage()));
            mPages.Add("Privacy", new PageItem(new PrivacyPage()));
            mPages.Add("Firewall", new PageItem(HasEngine ? new FirewallPage() : null));
            mPages.Add("Dns", new PageItem(new DnsPage()));
            mPages.Add("Control", new PageItem(new ControlPage()));
            //mPages.Add("Terminator", new PageItem(null));
            //mPages.Add("VPN", new PageItem(new VPNPage()));
            mPages.Add("Settings", new PageItem(new SettingsPage()));
            mPages.Add("About", new PageItem(new AboutPage()));

            foreach (var page in mPages.Values)
            {
                if (page.ctrl != null)
                {
                    page.ctrl.Visibility = Visibility.Collapsed;
                    this.Main.Children.Add(page.ctrl);
                }
            }

            Brush brushOn  = (TryFindResource("SidePanel.on") as Brush);
            Brush brushOff = (TryFindResource("SidePanel.off") as Brush);

            foreach (var val in mPages)
            {
                string name = val.Key;

                TabItem item = new TabItem();
                val.Value.tab = item;
                this.SidePanel.Items.Add(item);

                item.KeyDown           += SidePanel_Click;
                item.MouseLeftButtonUp += SidePanel_Click;
                item.Name  = "PanelItem_" + name;
                item.Style = (TryFindResource("SidePanelItem") as Style);

                StackPanel panel = new StackPanel();
                item.Header   = panel;
                panel.ToolTip = Translate.fmt("lbl_" + name.ToLower());

                Image image = new Image();
                image.Width  = 32;
                image.Height = 32;
                image.SnapsToDevicePixels = true;
                image.Name = "PanelItem_" + name + "_Image";
                panel.Children.Add(image);

                Path pin = new Path();
                pin.Width            = 4;
                pin.Height           = 24;
                pin.Margin           = new Thickness(-43, -32, 0, 0);
                pin.Fill             = TryFindResource("SidePanel.Pin") as SolidColorBrush;
                pin.IsHitTestVisible = false;
                pin.Name             = "PanelItem_" + name + "_Pin";
                pin.Data             = new RectangleGeometry(new Rect(new Point(0, 0), new Point(4, 24)));
                panel.Children.Add(pin);

                Geometry geometry = (TryFindResource("Icon_" + name) as Geometry);
                image.Tag = new Tuple <DrawingImage, DrawingImage>(new DrawingImage(new GeometryDrawing(brushOn, null, geometry)), new DrawingImage(new GeometryDrawing(brushOff, null, geometry)));
            }

            //Main.Loaded += (sender, e) =>{
            SwitchPage(App.GetConfig("GUI", "CurPage", "Overview"));
            //};

            FullyLoaded = true;

            UpdateEnabled();
        }