Package: GWindows.Scroll_Bars


with GWindows.Base;
with GWindows.Constants;


GWINDOWS - Ada 95 Framework for Win32 Development

G W I N D O W S . S C R O L L _ B A R S

S p e c

$Revision: 1.2 $

Copyright (C) 1999 - 2004 David Botton

This is free software; you can redistribute it and/or modify it under terms of the GNU General Public License as published by the Free Soft- ware Foundation; either version 2, or (at your option) any later ver- sion. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License distributed with this; see file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

As a special exception, if other files instantiate generics from this unit, or you link this unit with other files to produce an executable, this unit does not by itself cause the resulting executable to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU Public License.

More information about GWindows and the latest current release can be located on the web at



package GWindows.Scroll_Bars is

Type Summary

Scroll_Bar_Type derived from Base_Window_Type
Overridden Operations:  On_Horizontal_Scroll, On_Vertical_Scroll
New Operations:  Create, Fire_On_Scroll, On_Scroll, On_Scroll_Handler, Scroll_Drag_Position, Scroll_Maximum, Scroll_Maximum, Scroll_Minimum, Scroll_Minimum, Scroll_Page_Size, Scroll_Page_Size, Scroll_Position, Scroll_Position, Scroll_Range
Inherited Operations:  Accelerator_Handle, Accelerator_Handle, Accelerator_Table, Attach, Attach_Control, Attach_Dialog, Attach_Dialog_Item, Border, Border, Capture_Mouse, Center, Center, Child, Client_Area_Height, Client_Area_Height, Client_Area_Size, Client_Area_Width, Client_Area_Width, Close, Control, Controlling_Parent, Create_Control, Disable, Dock, Dock, Enable, Enabled, Enabled, End_Dialog, Enumerate_Children, Finalize, Fire_On_Context_Menu, Fire_On_Create, Fire_On_Destroy, Fire_On_Horizontal_Scroll, Fire_On_Pre_Create, Fire_On_Vertical_Scroll, First_Window, Focus, Focus, Freeze, Get_Canvas, Get_Font, Get_Full_Window_Canvas, Group, Group, Handle, Height, Height, Hide, Horizontal_Scroll_Bar, Horizontal_Scroll_Bar, ID, Initialize, Is_Dialog, Is_Dialog, Is_Modal, Is_Modal, Keyboard_Support, Keyboard_Support, Last_Window, Left, Left, MDI_Client_Window, MDI_Client_Window, Modal_Result, Modal_Result, Move, Next_Tab_Stop, Next_Window, On_Command, On_Context_Menu, On_Context_Menu_Handler, On_Create, On_Create_Handler, On_Destroy, On_Destroy_Handler, On_Draw_Item, On_Filter_Message, On_Horizontal_Scroll_Handler, On_Message, On_Notify, On_Pre_Create, On_Pre_Create_Handler, On_Vertical_Scroll_Handler, Order, Order, Parent, Parent, Point_To_Client, Point_To_Desktop, Previous_Tab_Stop, Previous_Window, Redraw, Set_Font, Show, Size, Tab_Stop, Tab_Stop, Text, Text, Text_Length, Thaw, Top, Top, Valid, Vertical_Scroll_Bar, Vertical_Scroll_Bar, Visible, Visible, Width, Width

Other Items:

type Scroll_Bar_Type is new GWindows.Base.Base_Window_Type with private;

type Scroll_Bar_Access is access all Scroll_Bar_Type;

type Pointer_To_Scroll_Bar_Class is access all Scroll_Bar_Type'Class;
Scroll_Bar_Type - Creation Methods

type Scroll_Direction_Type is (Horizontal, Vertical);

procedure Create
  (Bar        : in out Scroll_Bar_Type;
   Parent     : in out GWindows.Base.Base_Window_Type'Class;
   Direction  : in     Scroll_Direction_Type;
   Left       : in     Integer                              :=
   Top        : in     Integer                              :=
   Width      : in     Integer                              :=
   Height     : in     Integer                              :=
   ID         : in     Integer                              := 0;
   Show       : in     Boolean                              := True;
   Is_Dynamic : in     Boolean                              := False);
Create Scroll_Bar

procedure Scroll_Range
  (Bar  : in out Scroll_Bar_Type;
   Minimum : in     Integer;
   Maximum : in     Integer);

procedure Scroll_Maximum
  (Bar  : in out Scroll_Bar_Type;
   Maximum : in     Integer);

function Scroll_Maximum
  (Bar : in Scroll_Bar_Type) return Integer;

procedure Scroll_Minimum
  (Bar  : in out Scroll_Bar_Type;
   Minimum : in     Integer);

function Scroll_Minimum
  (Bar : in Scroll_Bar_Type) return Integer;
Scroll Range Property

procedure Scroll_Position
  (Bar   : in out Scroll_Bar_Type;
   Position : in     Integer);

function Scroll_Position
  (Bar : in Scroll_Bar_Type) return Integer;
Scroll Position

procedure Scroll_Page_Size
  (Bar   : in out Scroll_Bar_Type;
   Size     : in     Natural);

function Scroll_Page_Size
  (Bar : in Scroll_Bar_Type) return Natural;
Scroll Page_Size

function Scroll_Drag_Position
  (Bar : in Scroll_Bar_Type) return Integer;
Scroll position during a Thumb_Drag scroll event

procedure On_Scroll_Handler
  (Bar    : in out Scroll_Bar_Type;
   Handler : in     GWindows.Base.Scroll_Event);

procedure Fire_On_Scroll
  (Bar    : in out Scroll_Bar_Type;
   Request : in     GWindows.Base.Scroll_Request_Type);
Scroll thumb position is updated in On_Scroll first and then the On_Scroll_Handler is called

procedure On_Scroll
  (Bar     : in out Scroll_Bar_Type;
   Request : in     GWindows.Base.Scroll_Request_Type);
Called when scroll bar is moved Call base class to insure that scroll thumb position is updated

procedure On_Horizontal_Scroll
  (Window  : in out Scroll_Bar_Type;
   Request : in     GWindows.Base.Scroll_Request_Type;
   Control : in     GWindows.Base.Pointer_To_Base_Window_Class);
Handles horizontal scroll requests

procedure On_Vertical_Scroll
  (Window  : in out Scroll_Bar_Type;
   Request : in     GWindows.Base.Scroll_Request_Type;
   Control : in     GWindows.Base.Pointer_To_Base_Window_Class);
Handles vertical scroll requests


   --  Implementation-defined ...
end GWindows.Scroll_Bars;