Beispiel #1
0
 public void Panel_PreferredSize_GetWithChildrenAdvanced_ReturnsExpected()
 {
     using var control = new BorderedPanel
           {
               Padding = new Padding(1, 2, 3, 4)
           };
     using var child = new Control
           {
               Size = new Size(16, 20)
           };
     control.Controls.Add(child);
     Assert.Equal(new Size(26, 31), control.PreferredSize);
 }
Beispiel #2
0
        private void CreateDisassemblyView()
        {
            // Create the new list view with a reference to the disassembled lines. This is super important, see DisassemblyListView.
            ListViewDisassembly = new DisassemblyListView(DisassemblerInstance.ParsedLines, new Size(620, 382))
            {
                Location  = new Point(0, 0),
                BackColor = LayerBrush.Color,
            };

            // When addresses are clicked, toggle them as breakpoints.
            ListViewDisassembly.OnAddressClicked += VMInstance.ToggleBreakpoint;

            // DisassemblyPadding is a necessary aethetic component of the DisassemblyListView. There is a scrollbar "feature" buried
            // into liewviews that doesn't fit into the program(especially with the dark theme it currently has) at all and looks
            // very out of place, which furthermore cannot be disabled without disabling scrolling entirely, which would
            // be even worse on a listview that is expected to hold all of the disassembly for a program. My workaround is to create
            // a padding that overlaps the scrollbar, therefore gives the best of both worlds as the listview is still scrollable.
            DisassemblyPadding = new Panel()
            {
                // Slightly smaller and offset from the listview to prevent overlapping the border.
                Location = new Point(ListViewDisassembly.Location.X + 15, ListViewDisassembly.Location.Y + 15),
                Size     = new Size(583, 382)
            };

            // Create a nice border around the control.
            DisassemblyBorder = new BorderedPanel()
            {
                BackColor = LayerBrush.Color,
                Location  = Dock_LeftTop,
                Size      = new Size(600, 400),
                Tag       = "Disassembly"
            };

            // Add the controls to the form. To ensure the controls are visible, the list view has to be a member
            // of the padding panel otherwise the panel with overlap it.
            DisassemblyPadding.Controls.Add(ListViewDisassembly);
            DisassemblyBorder.Controls.Add(DisassemblyPadding);
            Controls.Add(DisassemblyBorder);
        }
Beispiel #3
0
        private void CreateMemView()
        {
            PanelMemory = new BorderedPanel
            {
                Location = Dock_LeftBot,
                AutoSize = false,

                // For an unknown reason, the panel will resize slightly more than this value. It seems to become the size of the child control
                // plus an extra constant. This happens regardless of $AutoSize.
                Size = new Size(0x1a0, 383),
                Tag  = "Memory"
            };
            MemoryViewer = new MemoryListView(new Size(0x1d8, 383))
            {
                // This position is relative to the panel. A small offset makes sure that the
                // text and border will not be clipped over.
                Location = new Point(3, 16),
            };

            PanelMemory.Controls.Add(MemoryViewer);
            Controls.Add(PanelMemory);
        }
Beispiel #4
0
 private static void scalePanelIcon(BorderedPanel panel)
 {
     panel.ScaleDpi();
     panel.BackgroundImage = ((Bitmap)panel.BackgroundImage).HalfResizeDpi();
 }
Beispiel #5
0
        internal override void RenderBeginList(System.Web.UI.HtmlTextWriter output)
        {
            BorderedPanel panel = new BorderedPanel();

            panel.Page = fileView.Page;
            if (fileView.DetailsColumnHeaderStyle.HorizontalAlign == HorizontalAlign.NotSet)
            {
                fileView.DetailsColumnHeaderStyle.HorizontalAlign = fileView.Controller.CurrentUICulture.TextInfo.IsRightToLeft ? HorizontalAlign.Right : HorizontalAlign.Left;
            }
            panel.ControlStyle.CopyFrom(fileView.DetailsColumnHeaderStyle);

            output.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
            output.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");
            output.AddAttribute(HtmlTextWriterAttribute.Border, "0");
            output.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            output.RenderBeginTag(HtmlTextWriterTag.Table);
            output.RenderBeginTag(HtmlTextWriterTag.Thead);
            output.RenderBeginTag(HtmlTextWriterTag.Tr);
            output.RenderBeginTag(HtmlTextWriterTag.Th);

            output.AddAttribute(HtmlTextWriterAttribute.Onclick, fileView.GetSortEventReference(SortMode.Name));
            output.AddStyleAttribute(HtmlTextWriterStyle.Cursor, "default");
            output.AddStyleAttribute(HtmlTextWriterStyle.WhiteSpace, "nowrap");
            output.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            output.AddAttribute(HtmlTextWriterAttribute.Id, fileView.ClientID + "_Thead_Name");

            panel.RenderBeginTag(output);
            output.Write(HttpUtility.HtmlEncode(controller.GetResourceString("Name", "Name")));
            panel.RenderEndTag(output);

            output.RenderEndTag();
            output.RenderBeginTag(HtmlTextWriterTag.Th);

            output.AddAttribute(HtmlTextWriterAttribute.Onclick, fileView.GetSortEventReference(SortMode.Size));
            output.AddStyleAttribute(HtmlTextWriterStyle.Cursor, "default");
            output.AddStyleAttribute(HtmlTextWriterStyle.WhiteSpace, "nowrap");
            output.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            output.AddAttribute(HtmlTextWriterAttribute.Id, fileView.ClientID + "_Thead_Size");

            panel.RenderBeginTag(output);
            output.Write(HttpUtility.HtmlEncode(controller.GetResourceString("Size", "Size")));
            panel.RenderEndTag(output);

            output.RenderEndTag();
            output.RenderBeginTag(HtmlTextWriterTag.Th);

            output.AddAttribute(HtmlTextWriterAttribute.Onclick, fileView.GetSortEventReference(SortMode.Type));
            output.AddStyleAttribute(HtmlTextWriterStyle.Cursor, "default");
            output.AddStyleAttribute(HtmlTextWriterStyle.WhiteSpace, "nowrap");
            output.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            output.AddAttribute(HtmlTextWriterAttribute.Id, fileView.ClientID + "_Thead_Type");

            panel.RenderBeginTag(output);
            output.Write(HttpUtility.HtmlEncode(controller.GetResourceString("Type", "Type")));
            panel.RenderEndTag(output);

            output.RenderEndTag();
            output.RenderBeginTag(HtmlTextWriterTag.Th);

            output.AddAttribute(HtmlTextWriterAttribute.Onclick, fileView.GetSortEventReference(SortMode.Modified));
            output.AddStyleAttribute(HtmlTextWriterStyle.Cursor, "default");
            output.AddStyleAttribute(HtmlTextWriterStyle.WhiteSpace, "nowrap");
            output.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            output.AddAttribute(HtmlTextWriterAttribute.Id, fileView.ClientID + "_Thead_Modified");

            panel.RenderBeginTag(output);
            output.Write(HttpUtility.HtmlEncode(controller.GetResourceString("Date_Modified", "Date Modified")));
            panel.RenderEndTag(output);

            output.RenderEndTag();
            output.RenderEndTag();
            output.RenderEndTag();

            output.AddStyleAttribute(HtmlTextWriterStyle.Overflow, "auto");
            output.RenderBeginTag(HtmlTextWriterTag.Tbody);
        }
        internal override void RenderBeginList(System.Web.UI.HtmlTextWriter output)
        {
            BorderedPanel panel = new BorderedPanel ();
            panel.Page = fileView.Page;
            if (fileView.DetailsColumnHeaderStyle.HorizontalAlign == HorizontalAlign.NotSet)
                fileView.DetailsColumnHeaderStyle.HorizontalAlign = fileView.Controller.CurrentUICulture.TextInfo.IsRightToLeft ? HorizontalAlign.Right : HorizontalAlign.Left;
            panel.ControlStyle.CopyFrom (fileView.DetailsColumnHeaderStyle);

            output.AddAttribute (HtmlTextWriterAttribute.Cellpadding, "0");
            output.AddAttribute (HtmlTextWriterAttribute.Cellspacing, "0");
            output.AddAttribute (HtmlTextWriterAttribute.Border, "0");
            output.AddStyleAttribute (HtmlTextWriterStyle.Width, "100%");
            output.RenderBeginTag (HtmlTextWriterTag.Table);
            output.RenderBeginTag (HtmlTextWriterTag.Thead);
            output.RenderBeginTag (HtmlTextWriterTag.Tr);
            output.RenderBeginTag (HtmlTextWriterTag.Th);

            output.AddAttribute (HtmlTextWriterAttribute.Onclick, fileView.GetSortEventReference (SortMode.Name));
            output.AddStyleAttribute (HtmlTextWriterStyle.Cursor, "default");
            output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
            output.AddStyleAttribute (HtmlTextWriterStyle.Width, "100%");
            output.AddAttribute (HtmlTextWriterAttribute.Id, fileView.ClientID + "_Thead_Name");

            panel.RenderBeginTag (output);
            output.Write (HttpUtility.HtmlEncode (controller.GetResourceString ("Name", "Name")));
            panel.RenderEndTag (output);

            output.RenderEndTag ();
            output.RenderBeginTag (HtmlTextWriterTag.Th);

            output.AddAttribute (HtmlTextWriterAttribute.Onclick, fileView.GetSortEventReference (SortMode.Size));
            output.AddStyleAttribute (HtmlTextWriterStyle.Cursor, "default");
            output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
            output.AddStyleAttribute (HtmlTextWriterStyle.Width, "100%");
            output.AddAttribute (HtmlTextWriterAttribute.Id, fileView.ClientID + "_Thead_Size");

            panel.RenderBeginTag (output);
            output.Write (HttpUtility.HtmlEncode (controller.GetResourceString ("Size", "Size")));
            panel.RenderEndTag (output);

            output.RenderEndTag ();
            output.RenderBeginTag (HtmlTextWriterTag.Th);

            output.AddAttribute (HtmlTextWriterAttribute.Onclick, fileView.GetSortEventReference (SortMode.Type));
            output.AddStyleAttribute (HtmlTextWriterStyle.Cursor, "default");
            output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
            output.AddStyleAttribute (HtmlTextWriterStyle.Width, "100%");
            output.AddAttribute (HtmlTextWriterAttribute.Id, fileView.ClientID + "_Thead_Type");

            panel.RenderBeginTag (output);
            output.Write (HttpUtility.HtmlEncode (controller.GetResourceString ("Type", "Type")));
            panel.RenderEndTag (output);

            output.RenderEndTag ();
            output.RenderBeginTag (HtmlTextWriterTag.Th);

            output.AddAttribute (HtmlTextWriterAttribute.Onclick, fileView.GetSortEventReference (SortMode.Modified));
            output.AddStyleAttribute (HtmlTextWriterStyle.Cursor, "default");
            output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
            output.AddStyleAttribute (HtmlTextWriterStyle.Width, "100%");
            output.AddAttribute (HtmlTextWriterAttribute.Id, fileView.ClientID + "_Thead_Modified");

            panel.RenderBeginTag (output);
            output.Write (HttpUtility.HtmlEncode (controller.GetResourceString ("Date_Modified", "Date Modified")));
            panel.RenderEndTag (output);

            output.RenderEndTag ();
            output.RenderEndTag ();
            output.RenderEndTag ();

            output.AddStyleAttribute (HtmlTextWriterStyle.Overflow, "auto");
            output.RenderBeginTag (HtmlTextWriterTag.Tbody);
        }