Here is a three pain layout with a Tab and Card View for the Fill.

David Botton


with Gnoga.Gui.Base;
with Gnoga.Gui.View;
with Gnoga.Gui.View.Docker;
with Gnoga.Gui.Element.Common;
with Gnoga.Gui.View.Card;

package Dapp.View is

   type Button_Array is array (1 .. 8) of
Gnoga.Gui.Element.Common.Button_Type;

   type Default_View_Type is new Gnoga.Gui.View.Docker.Docker_View_Type with
      record
         Left_Panel   : aliased Gnoga.Gui.View.View_Type;
         Fill_Panel   : aliased Gnoga.Gui.View.Docker.Docker_View_Type;
         Status_Panel : aliased Gnoga.Gui.View.View_Type;

         Tabs         : aliased Gnoga.Gui.View.Card.Tab_Type;
         Cards        : aliased Gnoga.Gui.View.Card.Card_View_Type;

         Buttons      : Button_Array;
      end record;

   type Default_View_Access is access all Default_View_Type;
   type Pointer_to_Default_View_Class is access all Default_View_Type'Class;

   overriding
   procedure Create
     (View    : in out Default_View_Type;
      Parent  : in out Gnoga.Gui.Base.Base_Type'Class;
      Attach  : in     Boolean := True;
      ID      : in     String  := "");

end Dapp.View;

package body Dapp.View is

   ------------
   -- Create --
   ------------

   overriding
   procedure Create
     (View    : in out Default_View_Type;
      Parent  : in out Gnoga.Gui.Base.Base_Type'Class;
      Attach  : in     Boolean := True;
      ID      : in     String  := "")
   is
      A_Card : Gnoga.Gui.View.View_Access;
   begin
      Gnoga.Gui.View.View_Type (View).Create (Parent, Attach, ID);

      --  Create panels for Main View
      View.Left_Panel.Create (View);
      View.Left_Panel.Width (150);
      View.Left_Panel.Border (Width => "1px");

      View.Fill_Panel.Create (View);
      View.Fill_Panel.Border (Width => "1px");

      View.Status_Panel.Create (View);
      View.Status_Panel.Height (50);
      View.Status_Panel.Background_Color ("lightblue");

      View.Fill_Dock (View.Fill_Panel'Access);
      View.Left_Dock (View.Left_Panel'Access);
      View.Bottom_Dock (View.Status_Panel'Access);

      --  Create panels for fill panel
      View.Cards.Create (View.Fill_Panel);
      View.Tabs.Create (View.Fill_Panel, View.Cards);

      A_Card := new Gnoga.Gui.View.View_Type;
      A_Card.Dynamic;
      A_Card.Create (View.Cards);
      A_Card.Padding ("5px","5px","5px","5px");

      View.Cards.Add_Card
        (Name => "tab 1",
         Card => A_Card,
         Show => True);
      View.Tabs.Add_Tab (Card     => "tab 1",
                         Label    => "Tab 1",
                         Selected => True);

      A_Card := new Gnoga.Gui.View.View_Type;
      A_Card.Dynamic;
      A_Card.Create (View.Cards);
      A_Card.Padding ("5px","5px","5px","5px");

      View.Cards.Add_Card
        (Name => "tab 2",
         Card => A_Card,
         Show => False);
      View.Tabs.Add_Tab (Card     => "tab 2",
                         Label    => "Tab 2",
                         Selected => False);

      View.Fill_Panel.Top_Dock (View.Tabs'Access);
      view.Fill_Panel.Fill_Dock (View.Cards'Access);

      for i in View.Buttons'Range loop
         View.Buttons (i).Create (View.Cards.Card ("tab 1").all,
                                  "Button" & i'img);
         View.Cards.Card ("tab 1").New_Line;
      end loop;

      View.Cards.Card ("tab 2").Put_Line ("Hello World");
   end Create;

end Dapp.View;


On Fri, Jan 9, 2015 at 1:11 AM, Jeremiah Breeden <jeremiah.bree...@gmail.com
> wrote:

> I've been trying different layouts using Gnoga, but have had trouble
> actually getting things to display they way I want.  Is there a resource
> that goes through exactly the order of operations to get each element to
> display the way you want?  For example, I want to lay out a page with 3
> rectangular areas.  One will be vertical with some buttons and other
> elements.  One will be the main area and included a Tabbed view.  Another
> will be the bottom "status" area.  I want everything to pack itself up and
> left so that even if the user stretches the browser, the elements don't
> stretch or move.  Below is some ascii art of what I am looking for:
>
> |------|-------------------------------------------------|
> | []   |_/====\/====\____________________________________|
> |      | []                                              |
> |      | []                                              |
> |      | []                                              |
> |      | []                                              |
> |      | []                                              |
> |      | []                                              |
> |      | []                                              |
> |------|-------------------------------------------------|
> | []                                                     |
> |--------------------------------------------------------|
>
>
>
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Gnoga-list mailing list
Gnoga-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gnoga-list

Reply via email to