type Gtkada_Application_Record is new Gtk_Application_Record with private;
type Gtkada_Application is access all Gtkada_Application_Record'Class;
type GFile_Array is array (Positive range <>) of GFile;
type Cb_Gtkada_Application_Files is access procedure (Application : Gtkada_Application; Files : GFile_Array);
Gtkada_Application_Flags_None : constant Gtkada_Application_Flags := 0;
Gtkada_Application_Handles_Open : constant Gtkada_Application_Flags := 1;
Gtkada_Application_OSX_FullScreen : constant Gtkada_Application_Flags := 2;
procedure Gtk_New
( | Self | : out Gtkada_Application; |
Application_Id | : UTF8_String := ""; | |
Flags | : Glib.Application.GApplication_Flags; | |
Gtkada_Flags | : Gtkada_Application_Flags); |
procedure Initialize
( | Self | : not null access Gtkada_Application_Record'Class; |
Application_Id | : UTF8_String := ""; | |
Flags | : Glib.Application.GApplication_Flags; | |
Gtkada_Flags | : Gtkada_Application_Flags); |
function Gtk_Application_New
( | Application_Id | : UTF8_String := ""; |
Flags | : Glib.Application.GApplication_Flags; | |
Gtkada_Flags | : Gtkada_Application_Flags) return Gtkada_Application; |
function Get_Path
( | File | : GFile) return UTF8_String; |
procedure On_Open
( | Self | : not null access Gtkada_Application_Record; |
Call | : Cb_Gtkada_Application_Files); |
This object adds support for opening files from OS commands, using the standard Glib Application mechanism for opening those files.
This requires some support that is system-specific: On windows, this registers a DDE server using the application's Id as name.
So for example com.adacore.TestGtk will register a DDE server whose name is TestGtk.
On OSX, this requires the application to be part of a bundle. This bundle needs to declare the file patterns that are supported by the application.