comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Error converting from UTF8 to ISO-8859-1
Date: Thu, 30 Jul 2009 17:01:58 +0200
Date: 2009-07-30T17:01:56+02:00	[thread overview]
Message-ID: <1k4t22qb76xtx.rde9b5zvltd0.dlg@40tude.net> (raw)
In-Reply-To: 4a717cbf$0$31793$703f8584@news.kpn.nl

On Thu, 30 Jul 2009 12:58:15 +0200, ldries46 wrote:

> My only interest at this moment is to find the reason for the Error messages 
> and the way to avoid them. The way to activate the buttons is something I 
> try to discover myself because I want to understand what I do

Your code contains errors. Wall_Color_Pkg:
----------------------------------------------------
with Glib; use Glib;
with Gtk; use Gtk;
with Gdk.Types; use Gdk.Types;
with Gtk.Widget; use Gtk.Widget;
with Gtk.Window; use Gtk.Window;
with Gtk.Enums; use Gtk.Enums;
with Gtk.Button; use Gtk.Button;
with Gtk.Color_Selection; use Gtk.Color_Selection;
with Gtk.Handlers; use Gtk.Handlers;
with Gtkada.Handlers; use Gtkada.Handlers;
with Callbacks_Escape; use Callbacks_Escape;
with Escape_Intl; use Escape_Intl;
--with Escape_Pkg.Callbacks; use Escape_Pkg.Callbacks;

package body Wall_Color_Pkg is

   package Button_Callback is new Gtk.Handlers.User_Callback
  -- This is User_Callback ^^^^^^^^^^^^^^^^^^^^^
   (Gtk_Button_Record, Gtk_Window);


   procedure On_WallFloorOK_Activate(Object : access
GTK_Button_Record'Class) is
   begin
      null;
   end;

   procedure Gtk_New (Wall_Color : out Wall_Color_Access) is
   begin
      Wall_Color := new Wall_Color_Record;
      Wall_Color_Pkg.Initialize (Wall_Color);
   end Gtk_New;

   procedure Initialize (Wall_Color : access Wall_Color_Record'Class) is
      pragma Suppress (All_Checks);
      Pixmaps_Dir : constant String := "pixmaps/";
      ColorSelection : Gtk_Color_Selection;
      OK : Gtk_Button;
      Cancel : Gtk_Button;
      Help : Gtk_Button;
   begin
      Gtk.Color_Selection_Dialog.Initialize (Wall_Color, -"Wall Color");
      Set_Border_Width (Wall_Color, 5);
      Set_Title (Wall_Color, -"Wall Color");
      Set_Position (Wall_Color, Win_Pos_None);
      Set_Modal (Wall_Color, False);
      Set_Resizable (Wall_Color, False);
      ColorSelection := Get_ColorSel (Wall_Color );
      OK := Get_OK_Button (Wall_Color);
      Cancel := Get_Cancel_Button (Wall_Color);
      Help := Get_Help_Button (Wall_Color);
      Set_Current_Color( ColorSelection, Current_Color );
      Button_CallBack.Connect(OK, "clicked",
On_WallFloorOK_Activate'Access);
  -- This connects to plain Gtk.Handlers.Callback ^^


   end Initialize;

   procedure Set_Wall_Color( Red : in Guint16; Green : in Guint16; Blue :
in Guint16 ) is
   begin
      Set_Rgb(Current_Color, Red, Green, Blue);
   end;

end Wall_Color_Pkg;
----------------------------------------------------
I have no idea what you are trying to achieve, but using
Gtk.Handlers.User_Callback could go as follows:
----------------------------------------------------
with Gtk.Enums; use Gtk.Enums;
with Gtk.Button; use Gtk.Button;
with Gtk.Color_Selection; use Gtk.Color_Selection;
with Gtk.Handlers; use Gtk.Handlers;
with Escape_Intl; use Escape_Intl;

package body Wall_Color_Pkg is

   package Button_Callback is
      new Gtk.Handlers.User_Callback
          (  Gtk_Button_Record,
             Wall_Color_Access
          );

   procedure On_WallFloorOK_Activate
             (  Button : access GTK_Button_Record'Class;
                Widget : Wall_Color_Access
             )  is
   begin
      null;
   end;

   procedure Gtk_New (Wall_Color : out Wall_Color_Access) is
   begin
      Wall_Color := new Wall_Color_Record;
      Wall_Color_Pkg.Initialize (Wall_Color);
   end Gtk_New;

   procedure Initialize (Wall_Color : access Wall_Color_Record'Class) is
      ColorSelection : Gtk_Color_Selection;
      OK : Gtk_Button;
      Cancel : Gtk_Button;
      Help : Gtk_Button;
   begin
      Gtk.Color_Selection_Dialog.Initialize (Wall_Color, -"Wall Color");
      Set_Border_Width (Wall_Color, 5);
      Set_Title (Wall_Color, -"Wall Color");
      Set_Position (Wall_Color, Win_Pos_None);
      Set_Modal (Wall_Color, False);
      Set_Resizable (Wall_Color, False);
      ColorSelection := Get_ColorSel (Wall_Color );
      OK := Get_OK_Button (Wall_Color);
      Cancel := Get_Cancel_Button (Wall_Color);
      Help := Get_Help_Button (Wall_Color);
      Set_Current_Color( ColorSelection, Current_Color );
      Button_CallBack.Connect
      (  OK,
         "clicked",
         Button_CallBack.To_Marshaller (On_WallFloorOK_Activate'Access),
         Wall_Color.all'Unchecked_Access
      );
   end Initialize;

   procedure Set_Wall_Color( Red : in Guint16; Green : in Guint16; Blue :
in Guint16 ) is
   begin
      Set_Rgb(Current_Color, Red, Green, Blue);
   end;

end Wall_Color_Pkg;
----------------------------------------------------
-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  parent reply	other threads:[~2009-07-30 15:01 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-29 15:11 Error converting from UTF8 to ISO-8859-1 ldries46
2009-07-29 15:55 ` Dmitry A. Kazakov
2009-07-29 16:46   ` ldries46
2009-07-29 17:20     ` Dmitry A. Kazakov
     [not found]       ` <4a717cbf$0$31793$703f8584@news.kpn.nl>
2009-07-30 15:01         ` Dmitry A. Kazakov [this message]
2009-07-30 15:08         ` Dmitry A. Kazakov
2009-08-06  8:50           ` ldries46
2009-08-06 10:03             ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox