Index

Package: Invalidate_Maybe_Recurse_User_Data (generic)

Description

generic
      type User_Data_Type (<>) is private;
      with procedure Destroy (Data : in out User_Data_Type) is null;
   package Invalidate_Maybe_Recurse_User_Data is

Types

User_Data_Type

type User_Data_Type (<>) is private;

Gdk_Window_Child_Func

type Gdk_Window_Child_Func is access function
        (Window    : Gdk.Gdk_Window;
         User_Data : User_Data_Type) return Boolean;
A function of this type is passed to Gdk.Window.Invalidate_Maybe_Recurse. It gets called for each child of the window to determine whether to recursively invalidate it or now. "window": a Gdk.Gdk_Window "user_data": user data

Subprograms & Entries

Destroy

procedure Destroy 
(Data: in out User_Data_Type) is null;

Invalidate_Maybe_Recurse

procedure Invalidate_Maybe_Recurse 
(Self: Gdk.Gdk_Window;
Region: Cairo.Region.Cairo_Region;
Child_Func: Gdk_Window_Child_Func;
User_Data: User_Data_Type);
Adds Region to the update area for Window. The update area is the region that needs to be redrawn, or "dirty region." The call Gdk.Window.Process_Updates sends one or more expose events to the window, which together cover the entire update area. An application would normally redraw the contents of Window in response to those expose events. GDK will call Gdk.Window.Process_All_Updates on your behalf whenever your program returns to the main loop and becomes idle, so normally there's no need to do that manually, you just need to invalidate regions that you know should be redrawn. The Child_Func parameter controls whether the region of each child window that intersects Region will also be invalidated. Only children for which Child_Func returns TRUE will have the area invalidated. "region": a cairo_region_t "child_func": function to use to decide if to recurse to a child, null means never recurse. "user_data": data passed to Child_Func