{$IfDef read_interface} type PGnomeDockPlacement = ^TGnomeDockPlacement; TGnomeDockPlacement = (GNOME_DOCK_TOP,GNOME_DOCK_RIGHT,GNOME_DOCK_BOTTOM, GNOME_DOCK_LEFT,GNOME_DOCK_FLOATING); type TGnomeDockItemBehavior = (GNOME_DOCK_ITEM_BEH_NORMAL := 0,GNOME_DOCK_ITEM_BEH_EXCLUSIVE := 1 shl 0, GNOME_DOCK_ITEM_BEH_NEVER_FLOATING := 1 shl 1, GNOME_DOCK_ITEM_BEH_NEVER_VERTICAL := 1 shl 2, GNOME_DOCK_ITEM_BEH_NEVER_HORIZONTAL := 1 shl 3, GNOME_DOCK_ITEM_BEH_LOCKED := 1 shl 4); const GNOME_DOCK_ITEM_BEH_NEVER_DETACH = GNOME_DOCK_ITEM_BEH_NEVER_FLOATING; type PGnomeDockItem = ^TGnomeDockItem; TGnomeDockItem = record bin : TGtkBin; name : Pgchar; bin_window : PGdkWindow; float_window : PGdkWindow; shadow_type : TGtkShadowType; orientation : TGtkOrientation; behavior : TGnomeDockItemBehavior; flag0 : word; dragoff_x : gint; dragoff_y : gint; float_x : gint; float_y : gint; grab_on_map_event : guint; end; GNOME_DOCK_ITEM = PGnomeDockItem; function GNOME_DOCK_ITEM_NOT_LOCKED(x : PGnomeDockItem) : gboolean; const bm__GnomeDockItem_float_window_mapped = $1; bp__GnomeDockItem_float_window_mapped = 0; bm__GnomeDockItem_is_floating = $2; bp__GnomeDockItem_is_floating = 1; bm__GnomeDockItem_in_drag = $4; bp__GnomeDockItem_in_drag = 2; function float_window_mapped(var a : TGnomeDockItem) : gboolean; procedure set_float_window_mapped(var a : TGnomeDockItem; __float_window_mapped : gboolean); function is_floating(var a : TGnomeDockItem) : gboolean; procedure set_is_floating(var a : TGnomeDockItem; __is_floating : gboolean); function in_drag(var a : TGnomeDockItem) : gboolean; procedure set_in_drag(var a : TGnomeDockItem; __in_drag : gboolean); type PGnomeDockItemClass = ^TGnomeDockItemClass; TGnomeDockItemClass = record parent_class : TGtkBinClass; dock_drag_begin : procedure (item:PGnomeDockItem);cdecl; dock_drag_motion : procedure (item:PGnomeDockItem; x:gint; y:gint);cdecl; dock_drag_end : procedure (item:PGnomeDockItem);cdecl; dock_detach : procedure (item:PGnomeDockItem);cdecl; end; GNOME_DOCK_ITEM_CLASS = PGnomeDockItemClass; type PGnomeDockLayoutItem = ^TGnomeDockLayoutItem; TGnomeDockLayoutItem = record item : PGnomeDockItem; placement : TGnomeDockPlacement; position : record case longint of 0 : ( floating : record x : gint; y : gint; orientation : TGtkOrientation; end ); 1 : ( docked : record band_num : gint; band_position : gint; offset : gint; end ); end; end; GNOME_DOCK_LAYOUT_ITEM = PGnomeDockLayoutItem; PGnomeDockLayout = ^TGnomeDockLayout; TGnomeDockLayout = record theobject : TGtkObject; items : PGList; end; GNOME_DOCK_LAYOUT = PGnomeDockLayout; PGnomeDockLayoutClass = ^TGnomeDockLayoutClass; TGnomeDockLayoutClass = record parent_class : TGtkObjectClass; end; GNOME_DOCK_LAYOUT_CLASS = PGnomeDockLayoutClass; type PGnomeDockBand = ^TGnomeDockBand; TGnomeDockBand = record container : TGtkContainer; orientation : TGtkOrientation; children : PGList; num_children : guint; floating_child : PGList; doing_drag : gboolean; max_space_requisition : guint; tot_offsets : guint; drag_allocation : TGtkAllocation; flag0 : word; end; GNOME_DOCK_BAND = PGnomeDockBand; const bm__GnomeDockBand_new_for_drag = $1; bp__GnomeDockBand_new_for_drag = 0; function new_for_drag(var a : TGnomeDockBand) : Boolean; procedure set_new_for_drag(var a : TGnomeDockBand; __new_for_drag : Boolean); type PGnomeDockBandClass = ^TGnomeDockBandClass; TGnomeDockBandClass = record parent_class : TGtkContainerClass; end; GNOME_DOCK_BAND_CLASS = PGnomeDockBandClass; PGnomeDockBandChild = ^TGnomeDockBandChild; TGnomeDockBandChild = record widget : PGtkWidget; offset : guint; real_offset : guint; drag_offset : guint; drag_allocation : TGtkAllocation; prev_space : guint; foll_space : guint; drag_prev_space : guint; drag_foll_space : guint; max_space_requisition : guint; end; GNOME_DOCK_BAND_CHILD = PGnomeDockBandChild; type PGnomeDock = ^TGnomeDock; TGnomeDock = record container : TGtkContainer; client_area : PGtkWidget; top_bands : PGList; bottom_bands : PGList; right_bands : PGList; left_bands : PGList; floating_children : PGList; client_rect : TGtkAllocation; flag0 : word; end; GNOME_DOCK = PGnomeDock; const bm__GnomeDock_floating_items_allowed = $1; bp__GnomeDock_floating_items_allowed = 0; function floating_items_allowed(var a : TGnomeDock) : gboolean; procedure set_floating_items_allowed(var a : TGnomeDock; __floating_items_allowed : gboolean); type PGnomeDockClass = ^TGnomeDockClass; TGnomeDockClass = record parent_class : TGtkContainerClass; layout_changed : procedure (dock:PGnomeDock);cdecl; end; GNOME_DOCK_CLASS = PGnomeDockClass; function GNOME_TYPE_DOCK_ITEM : TGTKType; function GNOME_IS_DOCK_ITEM(obj : Pointer) : Boolean; function GNOME_IS_DOCK_ITEM_CLASS(klass : Pointer) : Boolean; function gnome_dock_item_get_type:TGTKType;cdecl;external libgnomeuidll name 'gnome_dock_item_get_type'; function gnome_dock_item_new(name:Pgchar; behavior:TGnomeDockItemBehavior):PGtkWidget;cdecl;external libgnomeuidll name 'gnome_dock_item_new'; procedure gnome_dock_item_construct(new_dock_item:PGnomeDockItem; name:Pgchar; behavior:TGnomeDockItemBehavior);cdecl;external libgnomeuidll name 'gnome_dock_item_construct'; function gnome_dock_item_get_child(dock_item:PGnomeDockItem):PGtkWidget;cdecl;external libgnomeuidll name 'gnome_dock_item_get_child'; function gnome_dock_item_get_name(dock_item:PGnomeDockItem):Pchar;cdecl;external libgnomeuidll name 'gnome_dock_item_get_name'; procedure gnome_dock_item_set_shadow_type(dock_item:PGnomeDockItem; thetype:TGtkShadowType);cdecl;external libgnomeuidll name 'gnome_dock_item_set_shadow_type'; function gnome_dock_item_get_shadow_type(dock_item:PGnomeDockItem):TGtkShadowType;cdecl;external libgnomeuidll name 'gnome_dock_item_get_shadow_type'; function gnome_dock_item_set_orientation(dock_item:PGnomeDockItem; orientation:TGtkOrientation):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_item_set_orientation'; function gnome_dock_item_get_orientation(dock_item:PGnomeDockItem):TGtkOrientation;cdecl;external libgnomeuidll name 'gnome_dock_item_get_orientation'; function gnome_dock_item_get_behavior(dock_item:PGnomeDockItem):TGnomeDockItemBehavior;cdecl;external libgnomeuidll name 'gnome_dock_item_get_behavior'; function gnome_dock_item_detach(item:PGnomeDockItem; x:gint; y:gint):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_item_detach'; procedure gnome_dock_item_attach(item:PGnomeDockItem; parent:PGtkWidget; x:gint; y:gint);cdecl;external libgnomeuidll name 'gnome_dock_item_attach'; procedure gnome_dock_item_grab_pointer(item:PGnomeDockItem);cdecl;external libgnomeuidll name 'gnome_dock_item_grab_pointer'; procedure gnome_dock_item_drag_floating(item:PGnomeDockItem; x:gint; y:gint);cdecl;external libgnomeuidll name 'gnome_dock_item_drag_floating'; procedure gnome_dock_item_handle_size_request(item:PGnomeDockItem; requisition:PGtkRequisition);cdecl;external libgnomeuidll name 'gnome_dock_item_handle_size_request'; procedure gnome_dock_item_get_floating_position(item:PGnomeDockItem; x:Pgint; y:Pgint);cdecl;external libgnomeuidll name 'gnome_dock_item_get_floating_position'; function GNOME_TYPE_DOCK_LAYOUT : TGTKType; function GNOME_IS_DOCK_LAYOUT(obj : pointer) : Boolean; function GNOME_IS_DOCK_LAYOUT_CLASS(klass : pointer) : boolean; function gnome_dock_layout_new:PGnomeDockLayout;cdecl;external libgnomeuidll name 'gnome_dock_layout_new'; function gnome_dock_layout_get_type:TGTKType;cdecl;external libgnomeuidll name 'gnome_dock_layout_get_type'; function gnome_dock_layout_add_item(layout:PGnomeDockLayout; item:PGnomeDockItem; placement:TGnomeDockPlacement; band_num:gint; band_position:gint; offset:gint):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_layout_add_item'; function gnome_dock_layout_add_floating_item(layout:PGnomeDockLayout; item:PGnomeDockItem; x:gint; y:gint; orientation:TGtkOrientation):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_layout_add_floating_item'; function gnome_dock_layout_get_item(layout:PGnomeDockLayout; item:PGnomeDockItem):PGnomeDockLayoutItem;cdecl;external libgnomeuidll name 'gnome_dock_layout_get_item'; function gnome_dock_layout_get_item_by_name(layout:PGnomeDockLayout; name:Pgchar):PGnomeDockLayoutItem;cdecl;external libgnomeuidll name 'gnome_dock_layout_get_item_by_name'; function gnome_dock_layout_remove_item(layout:PGnomeDockLayout; item:PGnomeDockItem):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_layout_remove_item'; function gnome_dock_layout_remove_item_by_name(layout:PGnomeDockLayout; name:Pgchar):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_layout_remove_item_by_name'; function gnome_dock_layout_create_string(layout:PGnomeDockLayout):Pgchar;cdecl;external libgnomeuidll name 'gnome_dock_layout_create_string'; function gnome_dock_layout_parse_string(layout:PGnomeDockLayout; _string:Pgchar):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_layout_parse_string'; function gnome_dock_layout_add_to_dock(layout:PGnomeDockLayout; dock:PGnomeDock):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_layout_add_to_dock'; function GNOME_TYPE_DOCK_BAND : TGTKType; function GNOME_IS_DOCK_BAND(obj : Pointer) : Boolean; function GNOME_IS_DOCK_BAND_CLASS(klass : Pointer) : Boolean; function gnome_dock_band_new:PGtkWidget;cdecl;external libgnomeuidll name 'gnome_dock_band_new'; function gnome_dock_band_get_type:TGTKType;cdecl;external libgnomeuidll name 'gnome_dock_band_get_type'; procedure gnome_dock_band_set_orientation(band:PGnomeDockBand; orientation:TGtkOrientation);cdecl;external libgnomeuidll name 'gnome_dock_band_set_orientation'; function gnome_dock_band_get_orientation(band:PGnomeDockBand):TGtkOrientation;cdecl;external libgnomeuidll name 'gnome_dock_band_get_orientation'; function gnome_dock_band_insert(band:PGnomeDockBand; child:PGtkWidget; offset:guint; position:gint):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_band_insert'; function gnome_dock_band_prepend(band:PGnomeDockBand; child:PGtkWidget; offset:guint):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_band_prepend'; function gnome_dock_band_append(band:PGnomeDockBand; child:PGtkWidget; offset:guint):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_band_append'; procedure gnome_dock_band_set_child_offset(band:PGnomeDockBand; child:PGtkWidget; offset:guint);cdecl;external libgnomeuidll name 'gnome_dock_band_set_child_offset'; function gnome_dock_band_get_child_offset(band:PGnomeDockBand; child:PGtkWidget):guint;cdecl;external libgnomeuidll name 'gnome_dock_band_get_child_offset'; procedure gnome_dock_band_move_child(band:PGnomeDockBand; old_child:PGList; new_num:guint);cdecl;external libgnomeuidll name 'gnome_dock_band_move_child'; function gnome_dock_band_get_num_children(band:PGnomeDockBand):guint;cdecl;external libgnomeuidll name 'gnome_dock_band_get_num_children'; procedure gnome_dock_band_drag_begin(band:PGnomeDockBand; item:PGnomeDockItem);cdecl;external libgnomeuidll name 'gnome_dock_band_drag_begin'; function gnome_dock_band_drag_to(band:PGnomeDockBand; item:PGnomeDockItem; x:gint; y:gint):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_band_drag_to'; procedure gnome_dock_band_drag_end(band:PGnomeDockBand; item:PGnomeDockItem);cdecl;external libgnomeuidll name 'gnome_dock_band_drag_end'; function gnome_dock_band_get_item_by_name(band:PGnomeDockBand; name:Pchar; position_return:Pguint; offset_return:Pguint):PGnomeDockItem;cdecl;external libgnomeuidll name 'gnome_dock_band_get_item_by_name'; procedure gnome_dock_band_layout_add(band:PGnomeDockBand; layout:PGnomeDockLayout; placement:TGnomeDockPlacement; band_num:guint);cdecl;external libgnomeuidll name 'gnome_dock_band_layout_add'; function GNOME_TYPE_DOCK : TGTKType; function GNOME_IS_DOCK(obj : Pointer) : Boolean; function GNOME_IS_DOCK_CLASS(klass : Pointer) : Boolean; function gnome_dock_new:PGtkWidget;cdecl;external libgnomeuidll name 'gnome_dock_new'; function gnome_dock_get_type:TGTKType;cdecl;external libgnomeuidll name 'gnome_dock_get_type'; procedure gnome_dock_allow_floating_items(dock:PGnomeDock; enable:gboolean);cdecl;external libgnomeuidll name 'gnome_dock_allow_floating_items'; procedure gnome_dock_add_item(dock:PGnomeDock; item:PGnomeDockItem; placement:TGnomeDockPlacement; band_num:guint; position:gint; offset:guint; in_new_band:gboolean);cdecl;external libgnomeuidll name 'gnome_dock_add_item'; procedure gnome_dock_add_floating_item(dock:PGnomeDock; widget:PGnomeDockItem; x:gint; y:gint; orientation:TGtkOrientation);cdecl;external libgnomeuidll name 'gnome_dock_add_floating_item'; procedure gnome_dock_set_client_area(dock:PGnomeDock; widget:PGtkWidget);cdecl;external libgnomeuidll name 'gnome_dock_set_client_area'; function gnome_dock_get_client_area(dock:PGnomeDock):PGtkWidget;cdecl;external libgnomeuidll name 'gnome_dock_get_client_area'; function gnome_dock_get_item_by_name(dock:PGnomeDock; name:Pgchar; placement_return:PGnomeDockPlacement; num_band_return:Pguint; band_position_return:Pguint; offset_return:Pguint):PGnomeDockItem;cdecl;external libgnomeuidll name 'gnome_dock_get_item_by_name'; function gnome_dock_get_layout(dock:PGnomeDock):PGnomeDockLayout;cdecl;external libgnomeuidll name 'gnome_dock_get_layout'; function gnome_dock_add_from_layout(dock:PGnomeDock; layout:PGnomeDockLayout):gboolean;cdecl;external libgnomeuidll name 'gnome_dock_add_from_layout'; {$EndIf read_interface} {$Ifdef read_implementation} function GNOME_TYPE_DOCK_ITEM : TGTKType; begin GNOME_TYPE_DOCK_ITEM:=gnome_dock_band_get_type; end; function GNOME_IS_DOCK_ITEM(obj : pointer) : Boolean; begin GNOME_IS_DOCK_ITEM:=(obj<>nil) and GNOME_IS_DOCK_ITEM_CLASS(PGtkTypeObject(obj)^.klass); end; function GNOME_IS_DOCK_ITEM_CLASS(klass : pointer) : boolean; begin GNOME_IS_DOCK_ITEM_CLASS:= (klass<>nil) and (PGtkTypeClass(klass)^.thetype=GNOME_TYPE_DOCK_ITEM); end; function GNOME_DOCK_ITEM_NOT_LOCKED(x : PGnomeDockItem) : gboolean; begin GNOME_DOCK_ITEM_NOT_LOCKED:= not gboolean(gint(x^.behavior) and gint(GNOME_DOCK_ITEM_BEH_LOCKED)); end; function float_window_mapped(var a : TGnomeDockItem) : gboolean; begin float_window_mapped:=gboolean((a.flag0 and bm__GnomeDockItem_float_window_mapped) shr bp__GnomeDockItem_float_window_mapped); end; procedure set_float_window_mapped(var a : TGnomeDockItem; __float_window_mapped : gboolean); begin a.flag0:=a.flag0 or ((gint(__float_window_mapped) shl bp__GnomeDockItem_float_window_mapped) and bm__GnomeDockItem_float_window_mapped); end; function is_floating(var a : TGnomeDockItem) : gboolean; begin is_floating:=gboolean((a.flag0 and bm__GnomeDockItem_is_floating) shr bp__GnomeDockItem_is_floating); end; procedure set_is_floating(var a : TGnomeDockItem; __is_floating : gboolean); begin a.flag0:=a.flag0 or ((gint(__is_floating) shl bp__GnomeDockItem_is_floating) and bm__GnomeDockItem_is_floating); end; function in_drag(var a : TGnomeDockItem) : gboolean; begin in_drag:=gboolean((a.flag0 and bm__GnomeDockItem_in_drag) shr bp__GnomeDockItem_in_drag); end; procedure set_in_drag(var a : TGnomeDockItem; __in_drag : gboolean); begin a.flag0:=a.flag0 or ((gint(__in_drag) shl bp__GnomeDockItem_in_drag) and bm__GnomeDockItem_in_drag); end; function GNOME_TYPE_DOCK_LAYOUT : TGTKType; begin GNOME_TYPE_DOCK_LAYOUT:=gnome_dock_layout_get_type; end; function GNOME_IS_DOCK_LAYOUT(obj : pointer) : Boolean; begin GNOME_IS_DOCK_LAYOUT:=(obj<>nil) and GNOME_IS_DOCK_LAYOUT_CLASS(PGtkTypeObject(obj)^.klass); end; function GNOME_IS_DOCK_LAYOUT_CLASS(klass : pointer) : boolean; begin GNOME_IS_DOCK_LAYOUT_CLASS:= (klass<>nil) and (PGtkTypeClass(klass)^.thetype=GNOME_TYPE_DOCK_LAYOUT); end; function GNOME_TYPE_DOCK_BAND : TGTKType; begin GNOME_TYPE_DOCK_BAND:=gnome_dock_band_get_type; end; function GNOME_IS_DOCK_BAND(obj : pointer) : Boolean; begin GNOME_IS_DOCK_BAND:=(obj<>nil) and GNOME_IS_DOCK_BAND_CLASS(PGtkTypeObject(obj)^.klass); end; function GNOME_IS_DOCK_BAND_CLASS(klass : pointer) : boolean; begin GNOME_IS_DOCK_BAND_CLASS:= (klass<>nil) and (PGtkTypeClass(klass)^.thetype=GNOME_TYPE_DOCK_BAND); end; function new_for_drag(var a : TGnomeDockBand) : boolean; begin new_for_drag:=boolean((a.flag0 and bm__GnomeDockBand_new_for_drag) shr bp__GnomeDockBand_new_for_drag); end; procedure set_new_for_drag(var a : TGnomeDockBand; __new_for_drag : boolean); begin a.flag0:=a.flag0 or ((longint(__new_for_drag) shl bp__GnomeDockBand_new_for_drag) and bm__GnomeDockBand_new_for_drag); end; function GNOME_TYPE_DOCK : TGTKType; begin GNOME_TYPE_DOCK:=gnome_dock_get_type; end; function GNOME_IS_DOCK(obj : pointer) : Boolean; begin GNOME_IS_DOCK:=(obj<>nil) and GNOME_IS_DOCK_CLASS(PGtkTypeObject(obj)^.klass); end; function GNOME_IS_DOCK_CLASS(klass : pointer) : boolean; begin GNOME_IS_DOCK_CLASS:= (klass<>nil) and (PGtkTypeClass(klass)^.thetype=GNOME_TYPE_DOCK); end; function floating_items_allowed(var a : TGnomeDock) : gboolean; begin floating_items_allowed:=gBoolean((a.flag0 and bm__GnomeDock_floating_items_allowed) shr bp__GnomeDock_floating_items_allowed); end; procedure set_floating_items_allowed(var a : TGnomeDock; __floating_items_allowed : gboolean); begin a.flag0:=a.flag0 or ((gint(__floating_items_allowed) shl bp__GnomeDock_floating_items_allowed) and bm__GnomeDock_floating_items_allowed); end; {$Endif read_implementation}