Example #1
0
        public void ShowWnd()
        {
            if (!WpfFunc.LoadWnd(this, "Notify"))
            {
                this.Left = SystemParameters.WorkArea.Width - this.Width - 4.0;
                this.Top  = SystemParameters.WorkArea.Height - this.Height - 4.0;
            }

            Show();
        }
Example #2
0
        public NotificationWnd()
        {
            InitializeComponent();

            this.Title                      = Translate.fmt("wnd_notify");
            this.btnPrev.Content            = Translate.fmt("lbl_prev");
            this.btnNext.Content            = Translate.fmt("lbl_next");
            this.lblRemember.Content        = Translate.fmt("lbl_remember");
            this.btnIgnore.Content          = Translate.fmt("lbl_ignore");
            this.btnApply.Content           = Translate.fmt("lbl_apply");
            this.consGrid.Columns[0].Header = Translate.fmt("lbl_protocol");
            this.consGrid.Columns[1].Header = Translate.fmt("lbl_ip_port");
            this.consGrid.Columns[2].Header = Translate.fmt("lbl_time_stamp");

            this.Topmost = true;

            cmbAccess.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("acl_none"), Tag = Program.Config.AccessLevels.Unconfigured
            });
            cmbAccess.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("acl_silence"), Tag = Program.Config.AccessLevels.StopNotify
            });
            cmbAccess.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("acl_allow"), Tag = Program.Config.AccessLevels.FullAccess
            });
            cmbAccess.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("acl_edit"), Tag = Program.Config.AccessLevels.CustomConfig
            });
            cmbAccess.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("acl_lan"), Tag = Program.Config.AccessLevels.LocalOnly
            });
            cmbAccess.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("acl_block"), Tag = Program.Config.AccessLevels.BlockAccess
            });
            foreach (ComboBoxItem item in cmbAccess.Items)
            {
                item.Background = ProgramControl.GetAccessColor((Program.Config.AccessLevels)item.Tag);
            }

            cmbRemember.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("lbl_permanent"), Tag = 0
            });
#if DEBUG
            cmbRemember.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("lbl_temp", "1 min"), Tag = 60
            });
#endif
            cmbRemember.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("lbl_temp", "5 min"), Tag = 5 * 60
            });
            cmbRemember.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("lbl_temp", "15 min"), Tag = 15 * 60
            });
            cmbRemember.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("lbl_temp", "1 h"), Tag = 60 * 60
            });
            cmbRemember.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("lbl_temp", "24 h"), Tag = 24 * 60 * 60
            });
            cmbRemember.SelectedIndex = 0;

            WpfFunc.LoadWnd(this, "Notify");
        }
Example #3
0
        public RuleWindow(List <Program> progs, FirewallRule rule)
        {
            InitializeComponent();

            this.Title = Translate.fmt("wnd_rule");

            this.grpRule.Header = Translate.fmt("lbl_rule");
            this.lblName.Text   = Translate.fmt("lbl_name");
            this.lblGroup.Text  = Translate.fmt("lbl_group");

            this.grpProgram.Header  = Translate.fmt("lbl_program");
            this.lblProgram.Text    = Translate.fmt("lbl_program");
            this.lblExecutable.Text = Translate.fmt("lbl_exe");
            this.lblService.Text    = Translate.fmt("lbl_svc");
            this.lblApp.Text        = Translate.fmt("lbl_app");

            this.grpAction.Header = Translate.fmt("grp_action");
            this.lblAction.Text   = Translate.fmt("lbl_action");

            this.radProfileAll.Content    = Translate.fmt("lbl_prof_all");
            this.radProfileCustom.Content = Translate.fmt("lbl_prof_sel");
            this.chkPublic.Content        = Translate.fmt("lbl_prof_pub");
            this.chkDomain.Content        = Translate.fmt("lbl_prof_dmn");
            this.chkPrivate.Content       = Translate.fmt("lbl_prof_priv");

            this.radNicAll.Content    = Translate.fmt("lbl_itf_all");
            this.radNicCustom.Content = Translate.fmt("lbl_itf_select");
            this.chkLAN.Content       = Translate.fmt("lbl_itf_lan");
            this.chkVPN.Content       = Translate.fmt("lbl_itf_vpn");
            this.chkWiFi.Content      = Translate.fmt("lbl_itf_wifi");

            this.grpNetwork.Header = Translate.fmt("grp_network");
            this.lblDirection.Text = Translate.fmt("lbl_direction");
            this.lblProtocol.Text  = Translate.fmt("lbl_protocol");

            this.lblLocalPorts.Text  = Translate.fmt("lbl_local_port");
            this.lblRemotePorts.Text = Translate.fmt("lbl_remote_port");

            this.lblICMP.Text = Translate.fmt("lbl_icmp");

            this.lblLocalIP.Text  = Translate.fmt("lbl_local_ip");
            this.lblRemoteIP.Text = Translate.fmt("lbl_remote_ip");

            this.btnOK.Content     = Translate.fmt("lbl_ok");
            this.btnCancel.Content = Translate.fmt("lbl_cancel");

            Rule = rule;
            bool bNew = Rule.guid == null;

            viewModel   = new RuleWindowViewModel();
            DataContext = viewModel;

            //txtName.Text = Rule.Name;
            viewModel.RuleName   = Rule.Name;
            cmbGroup.ItemsSource = GroupModel.GetInstance().GetGroups();
            if (!WpfFunc.CmbSelect(cmbGroup, Rule.Grouping))
            {
                cmbGroup.Text = Rule.Grouping;
            }
            txtInfo.Text = Rule.Description;

            foreach (Program prog in progs)
            {
                ContentControl program = new ContentControl()
                {
                    Content = prog.Description, Tag = prog.ID
                };
                cmbProgram.Items.Add(program);
                if (Rule.ProgID != null && prog.ID.CompareTo(Rule.ProgID) == 0)
                {
                    cmbProgram.SelectedItem = program;
                }
            }

            cmbAction.Items.Add(new ContentControl()
            {
                Content = Translate.fmt("str_allow"), Tag = FirewallRule.Actions.Allow
            });
            cmbAction.Items.Add(new ContentControl()
            {
                Content = Translate.fmt("str_block"), Tag = FirewallRule.Actions.Block
            });
            //WpfFunc.CmbSelect(cmbAction, Rule.Action.ToString());
            viewModel.RuleAction = WpfFunc.CmbPick(cmbAction, Rule.Action.ToString());

            if (Rule.Profile == (int)FirewallRule.Profiles.All)
            {
                radProfileAll.IsChecked = true;
                chkPrivate.IsChecked    = true;
                chkDomain.IsChecked     = true;
                chkPublic.IsChecked     = true;
            }
            else
            {
                radProfileCustom.IsChecked = true;
                chkPrivate.IsChecked       = ((Rule.Profile & (int)FirewallRule.Profiles.Private) != 0);
                chkDomain.IsChecked        = ((Rule.Profile & (int)FirewallRule.Profiles.Domain) != 0);
                chkPublic.IsChecked        = ((Rule.Profile & (int)FirewallRule.Profiles.Public) != 0);
            }

            if (Rule.Interface == (int)FirewallRule.Interfaces.All)
            {
                radNicAll.IsChecked = true;
                chkLAN.IsChecked    = true;
                chkVPN.IsChecked    = true;
                chkWiFi.IsChecked   = true;
            }
            else
            {
                radNicCustom.IsChecked = true;
                chkLAN.IsChecked       = ((Rule.Interface & (int)FirewallRule.Interfaces.Lan) != 0);
                chkVPN.IsChecked       = ((Rule.Interface & (int)FirewallRule.Interfaces.RemoteAccess) != 0);
                chkWiFi.IsChecked      = ((Rule.Interface & (int)FirewallRule.Interfaces.Wireless) != 0);
            }

            if (bNew)
            {
                cmbDirection.Items.Add(new ContentControl()
                {
                    Content = Translate.fmt("str_inandout"), Tag = FirewallRule.Directions.Bidirectiona
                });
            }
            cmbDirection.Items.Add(new ContentControl()
            {
                Content = Translate.fmt("str_outbound"), Tag = FirewallRule.Directions.Outboun
            });
            cmbDirection.Items.Add(new ContentControl()
            {
                Content = Translate.fmt("str_inbound"), Tag = FirewallRule.Directions.Inbound
            });
            WpfFunc.CmbSelect(cmbDirection, Rule.Direction.ToString());

            cmbProtocol.Items.Add(new ContentControl()
            {
                Content = Translate.fmt("pro_any"), Tag = (int)NetFunc.KnownProtocols.Any
            });
            for (int i = (int)NetFunc.KnownProtocols.Min; i <= (int)NetFunc.KnownProtocols.Max; i++)
            {
                string name = NetFunc.Protocol2Str((UInt32)i);
                if (name != null)
                {
                    cmbProtocol.Items.Add(new ContentControl()
                    {
                        Content = i.ToString() + " - " + name, Tag = i
                    });
                }
            }
            //if (!WpfFunc.CmbSelect(cmbProtocol, Rule.Protocol.ToString()))
            //    cmbProtocol.Text = Rule.Protocol.ToString();
            viewModel.Protocol = WpfFunc.CmbPick(cmbProtocol, Rule.Protocol.ToString());
            if (viewModel.Protocol == null)
            {
                viewModel.ProtocolTxt = Rule.Protocol.ToString();
            }

            UpdatePorts();

            addrDest.Address = Rule.RemoteAddresses;
            addrSrc.Address  = Rule.LocalAddresses;

            WpfFunc.LoadWnd(this, "Rule");
        }
Example #4
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";
             * }*/

            WpfFunc.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("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();
        }
Example #5
0
        public MainWindow()
        {
            InitializeComponent();

            //if (!MiscFunc.IsRunningAsUwp())
            this.Title = string.Format("{0} v{1} by David Xanatos", App.mName, App.mVersion);
            if (!App.lic.CommercialUse)
            {
                this.Title += " - Freeware for Private NOT Commercial Use";
            }

            WpfFunc.LoadWnd(this, "Main");

            mPages.Add("Overview", new OverviewPage());
            mPages.Add("Privacy", new PrivacyPage());
            if (App.client.IsConnected())
            {
                mPages.Add("Firewall", new FirewallPage());
            }
            else
            {
                mPages.Add("Firewall", null);
            }
            //mPages.Add("VPN", new VPNPage());
            mPages.Add("Settings", new SettingsPage());
            mPages.Add("About", new AboutPage());

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

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

            foreach (string name in mPages.Keys)
            {
                TabItem item = new TabItem();
                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;

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

            SwitchPage(App.GetConfig("GUI", "CurPage", "Overview"));
        }
Example #6
0
        public MainWindow()
        {
            InitializeComponent();

            //if (!MiscFunc.IsRunningAsUwp())
            this.Title = string.Format("{0} v{1} by David Xanatos", App.mName, App.mVersion);
            if (!App.lic.CommercialUse)
            {
                this.Title += " - for Private non Commercial Use";
            }

            WpfFunc.LoadWnd(this, "Main");

            mPages.Add("Overview", new OverviewPage());
            mPages.Add("Privacy", new PrivacyPage());
            if (App.client.IsConnected())
            {
                mPages.Add("Firewall", new FirewallPage());
            }
            else
            {
                mPages.Add("Firewall", null);
            }
            //mPages.Add("VPN", new VPNPage());
            mPages.Add("Settings", new SettingsPage());
            mPages.Add("About", new AboutPage());

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

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

            foreach (string name in mPages.Keys)
            {
                /*TabItem item = new TabItem();
                 * item.KeyDown += SidePanel_Click;
                 * item.MouseLeftButtonUp += SidePanel_Click;
                 * item.Name = "PanelItem_" + name;
                 * item.Style = (TryFindResource("SidePanelItem") as Style);
                 *
                 * StackPanel panel = new StackPanel();
                 *
                 * Image image = new Image();
                 * image.Width = 32;
                 * image.Height = 32;
                 * image.Name = "PanelItem_" + name + "_Image";
                 *
                 * panel.Children.Add(image);
                 * item.Content = panel;
                 * this.SidePanel.Items.Add(item);*/

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

            SwitchPage(App.GetConfig("GUI", "CurPage", "Overview"));
        }
Example #7
0
        public NotificationWnd()
        {
            InitializeComponent();

            this.Title                      = Translate.fmt("wnd_notify");
            this.btnPrev.Content            = Translate.fmt("lbl_prev");
            this.btnNext.Content            = Translate.fmt("lbl_next");
            this.lblRemember.Content        = Translate.fmt("lbl_remember");
            this.btnIgnore.Content          = Translate.fmt("lbl_ignore");
            this.btnApply.Content           = Translate.fmt("lbl_apply");
            this.consGrid.Columns[0].Header = Translate.fmt("lbl_protocol");
            this.consGrid.Columns[1].Header = Translate.fmt("lbl_ip_port");
            this.consGrid.Columns[2].Header = Translate.fmt("lbl_remote_host");
            this.consGrid.Columns[3].Header = Translate.fmt("lbl_time_stamp");
            this.consGrid.Columns[4].Header = Translate.fmt("lbl_pid");

            consGridExt = new DataGridExt(consGrid);
            consGridExt.Restore(App.GetConfig("GUI", "consGrid_Columns", ""));

            this.Topmost = true;

            cmbAccess.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("acl_none"), Tag = ProgramSet.Config.AccessLevels.Unconfigured
            });
            cmbAccess.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("acl_silence"), Tag = ProgramSet.Config.AccessLevels.StopNotify
            });
            cmbAccess.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("acl_allow"), Tag = ProgramSet.Config.AccessLevels.FullAccess
            });
            cmbAccess.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("acl_edit"), Tag = ProgramSet.Config.AccessLevels.CustomConfig
            });
            cmbAccess.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("acl_lan"), Tag = ProgramSet.Config.AccessLevels.LocalOnly
            });
            cmbAccess.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("acl_block"), Tag = ProgramSet.Config.AccessLevels.BlockAccess
            });
            foreach (ComboBoxItem item in cmbAccess.Items)
            {
                item.Background = ProgramControl.GetAccessColor((ProgramSet.Config.AccessLevels)item.Tag);
            }

#if DEBUG
            cmbRemember.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("lbl_temp", "1 min"), Tag = 60
            });
#endif
            cmbRemember.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("lbl_temp", "5 min"), Tag = 5 * 60
            });
            cmbRemember.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("lbl_temp", "15 min"), Tag = 15 * 60
            });
            cmbRemember.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("lbl_temp", "1 h"), Tag = 60 * 60
            });
            cmbRemember.SelectedIndex = cmbRemember.Items.Count - 1; // default is 1h
            cmbRemember.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("lbl_temp", "24 h"), Tag = 24 * 60 * 60
            });
            cmbRemember.Items.Add(new ComboBoxItem()
            {
                Content = Translate.fmt("lbl_permanent"), Tag = 0
            });

            if (!WpfFunc.LoadWnd(this, "Notify"))
            {
                this.Left = SystemParameters.WorkArea.Width - this.Width - 4.0;
                this.Top  = SystemParameters.WorkArea.Height - this.Height - 4.0;
            }
        }