예제 #1
0
 public Overlay(FullScreenForm owner)
 {
     Owner   = owner;
     Opacity = 0.75;
     Owner.LocationChanged += SyncToOwner;
     DoubleClick           += (s, e) => Hide();
     KeyPreview             = true;
     KeyUp += KeyPressed;
 }
예제 #2
0
    public SearchOverlay(FullScreenForm owner) : base(owner)
    {
        // Bounds?
        int ScreenWidth  = Screen.WorkingArea.Width - Width;
        int ScreenHeight = Screen.WorkingArea.Height - Height;

        var SearchPanel = new Panel
        {
            Height    = 71,
            BackColor = Color.Gray,
            Width     = (ScreenWidth / 5) * 2,
            Location  = new Point(ScreenWidth / 3, ScreenHeight / 3),
        };

        SearchLabel = new Label
        {
            Height    = 40,
            Text      = SearchLabelText,
            Font      = SearchFont,
            Dock      = DockStyle.Top,
            BackColor = Color.Black,
            ForeColor = Color.WhiteSmoke,
        };

        SearchBox = new TextBox
        {
            Height      = 40,
            Font        = SearchFont,
            Dock        = DockStyle.Top,
            BackColor   = Color.Black,
            Margin      = new Padding(10),
            ForeColor   = Color.WhiteSmoke,
            BorderStyle = BorderStyle.None,
        };

        SearchPanel.Controls.AddRange(new Control[]
        {
            SearchBox,
            SearchLabel
        });

        Grid = new Panel()
        {
            AutoScroll = false,
            Dock       = DockStyle.Bottom,
            Height     = 100,
            Padding    = new Padding(0, 0, 0, 40),
            BackColor  = Color.Black,
        };

        Grid.VerticalScroll.Enabled   = true;
        Grid.VerticalScroll.Visible   = false;
        Grid.HorizontalScroll.Enabled = true;
        Grid.HorizontalScroll.Visible = false;

        CloseButton = new Label
        {
            Text      = "×",
            Width     = 50,
            Height    = 50,
            Font      = new Font(SearchFont.Name, 20),        // 30
            ForeColor = Color.White,
            BackColor = Color.Black,
            TabStop   = false,
            Location  = new Point(Screen.WorkingArea.Width - 30, 0)            // 50
        };

        var Logo = new Label
        {
            AutoSize  = true,
            Font      = SearchFont,
            ForeColor = Color.White,
            Dock      = DockStyle.Left,
            Text      = $"Desktop2 ({GetResolution()})"
        };

        CloseButton.Click += (s, e) => (Owner as Form).Close();

        Controls.AddRange(new Control[]
        {
            Logo,
            CloseButton,
            Grid,
            SearchPanel
        });

        Searcher.DoWork += (s, e) =>
        {
            Status("Searching...");
            var term = (string)e.Argument;
            e.Result = term != null?Wallhaven.Search(term) : Wallhaven.Random();
        };

        Searcher.RunWorkerCompleted += (s, e) =>
        {
            LoadImages((IEnumerable <Image>)e.Result);
            Status();
        };

        SearchBox.KeyUp += Search;
        Searcher.RunWorkerAsync();
        SearchBox.Focus();
    }