X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=Ada95%2Fsamples%2Fncurses2-attr_test.adb;h=66271042c0bbddb76857fc0762ab212cb0bb6cc7;hp=d852bb7f2749f1e18650157ecc6a3dbc89b8c034;hb=fd52bfa49753d67673ba8d7aef9239f5b16c1ad0;hpb=46722468f47c2b77b3987729b4bcf2321cccfd01;ds=sidebyside diff --git a/Ada95/samples/ncurses2-attr_test.adb b/Ada95/samples/ncurses2-attr_test.adb index d852bb7f..66271042 100644 --- a/Ada95/samples/ncurses2-attr_test.adb +++ b/Ada95/samples/ncurses2-attr_test.adb @@ -7,7 +7,7 @@ -- B O D Y -- -- -- ------------------------------------------------------------------------------ --- Copyright (c) 2000 Free Software Foundation, Inc. -- +-- Copyright (c) 2000-2007,2008 Free Software Foundation, Inc. -- -- -- -- Permission is hereby granted, free of charge, to any person obtaining a -- -- copy of this software and associated documentation files (the -- @@ -35,7 +35,8 @@ ------------------------------------------------------------------------------ -- Author: Eugene V. Melaragno 2000 -- Version Control --- $Revision: 1.2 $ +-- $Revision: 1.9 $ +-- $Date: 2008/07/26 18:47:26 $ -- Binding Version 01.00 ------------------------------------------------------------------------------ with ncurses2.util; use ncurses2.util; @@ -55,11 +56,10 @@ procedure ncurses2.attr_test is attr : Character_Attribute_Set; name : String; once : Boolean) return Line_Position; - procedure attr_getc (skip : out Integer; + procedure attr_getc (skip : in out Integer; fg, bg : in out Color_Number; result : out Boolean); - function subset (super, sub : Character_Attribute_Set) return Boolean is begin if @@ -85,7 +85,6 @@ procedure ncurses2.attr_test is end if; end subset; - function intersect (b, a : Character_Attribute_Set) return Boolean is begin if @@ -179,9 +178,9 @@ procedure ncurses2.attr_test is end if; m := rest mod 2; rest := rest / 2; --- if 1 = m then --- a.Protected_Character := True; --- end if; + if 1 = m then + a.Protected_Character := True; + end if; m := rest mod 2; rest := rest / 2; if 1 = m then @@ -222,7 +221,7 @@ procedure ncurses2.attr_test is elsif ncv > 0 and has_A_COLOR (Get_Background) then declare Color_Supported_Attributes : - Character_Attribute_Set := make_record (ncv); + constant Character_Attribute_Set := make_record (ncv); begin if intersect (Color_Supported_Attributes, attr) then Add (Str => " (NCV) "); @@ -234,20 +233,18 @@ procedure ncurses2.attr_test is return row + 2; end show_attr; - procedure attr_getc (skip : out Integer; fg, bg : in out Color_Number; - result : out Boolean) is - ch : Key_Code := Getchar; + procedure attr_getc (skip : in out Integer; + fg, bg : in out Color_Number; + result : out Boolean) is + ch : constant Key_Code := Getchar; nc : constant Color_Number := Color_Number (Number_Of_Colors); - curscr : Window; - pragma Import (C, curscr, "curscr"); - -- curscr is not implemented in the Ada binding begin result := True; if Ada.Characters.Handling.Is_Digit (Character'Val (ch)) then skip := ctoi (Code_To_Char (ch)); elsif ch = CTRL ('L') then Touch; - Touch (curscr); + Touch (Current_Window); Refresh; elsif Has_Colors then case ch is @@ -264,8 +261,6 @@ procedure ncurses2.attr_test is end if; end attr_getc; - - -- pairs could be defined as array ( Color_Number(0) .. colors - 1) of -- array (Color_Number(0).. colors - 1) of Boolean; pairs : array (Color_Pair'Range) of Boolean := (others => False); @@ -292,18 +287,18 @@ begin begin -- row := 2; -- weird, row is set to 0 without this. -- TODO delete the above line, it was a gdb quirk that confused me - if Has_Colors then declare - pair : Color_Pair := + if Has_Colors then + declare pair : constant Color_Pair := Color_Pair (fg * Color_Number (Number_Of_Colors) + bg); - begin - -- Go though each color pair. Assume that the number of - -- Redefinable_Color_Pairs is 8*8 with predefined Colors 0..7 - if not pairs (pair) then - Init_Pair (pair, fg, bg); - pairs (pair) := True; - end if; - normal.Color := pair; - end; + begin + -- Go though each color pair. Assume that the number of + -- Redefinable_Color_Pairs is 8*8 with predefined Colors 0..7 + if not pairs (pair) then + Init_Pair (pair, fg, bg); + pairs (pair) := True; + end if; + normal.Color := pair; + end; end if; Set_Background (Ch => normal); Erase;