## Documentation

Table of Contents
Class Inheritance Tree
Widget Screenshots
Package groups

1.     -----------------------------------------------------------------------

2.     --               GtkAda - Ada95 binding for Gtk+/Gnome               --

3.     --                                                                   --

4.     --      Copyright (C) 2000 E. Briot, J. Brobecker and A. Charlet     --

5.     --                Copyright (C) 2000-2006 AdaCore                    --

6.     --                                                                   --

7.     -- This library is free software; you can redistribute it and/or     --

8.     -- modify it under the terms of the GNU General Public               --

9.     -- License as published by the Free Software Foundation; either      --

10.     -- version 2 of the License, or (at your option) any later version.  --

11.     --                                                                   --

12.     -- This library is distributed in the hope that it will be useful,   --

13.     -- but WITHOUT ANY WARRANTY; without even the implied warranty of    --

14.     -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU --

15.     -- General Public License for more details.                          --

16.     --                                                                   --

17.     -- You should have received a copy of the GNU General Public         --

18.     -- License along with this library; if not, write to the             --

19.     -- Free Software Foundation, Inc., 59 Temple Place - Suite 330,      --

20.     -- Boston, MA 02111-1307, USA.                                       --

21.     --                                                                   --

22.     -- As a special exception, if other files instantiate generics from  --

23.     -- this unit, or you link this unit with other files to produce an   --

24.     -- executable, this  unit  does not  by itself cause  the resulting  --

25.     -- executable to be covered by the GNU General Public License. This  --

26.     -- exception does not however invalidate any other reasons why the   --

27.     -- executable file  might be covered by the  GNU Public License.     --

28.     -----------------------------------------------------------------------

30.     --  <description>

31.     --  A Gtk_Sheet is a table like the one you can find in most spreadsheets.

32.     --  Each cell can contain some text or any kind of widgets.

33.     --  </description>

34.     --  <c_version>gtkextra 2.1.1</c_version>

35.     --  <group>GtkExtra, additional widgets</group>

36.     --  <testgtk>create_sheet.adb</testgtk>

37.     --  <screenshot>gtk-sheet</screenshot>

39.     with Gtk.AdjustmentTo API docTo specTo body;  use Gtk.AdjustmentTo API docTo specTo body;

40.     with Gtk.ContainerTo API docTo specTo body;

41.     with Gtk.EnumsTo API docTo specTo body;       use Gtk.EnumsTo API docTo specTo body;

42.     with Gtk.GEntryTo API docTo specTo body;

43.     with Gdk.RectangleTo API docTo specTo body;

44.     with Gdk.ColorTo API docTo specTo body;

45.     with Gdk.GCTo API docTo specTo body;

46.     with Pango.FontTo API docTo specTo body;

47.     with Gtk.WidgetTo API docTo specTo body;

49.     package Gtk.Extra.SheetTo API docTo specTo body is

51.        type Gtk_Sheet_RecordTo API docTo body is new Gtk.Container.Gtk_Container_RecordTo API docTo specTo body

52.          with private;

53.        type Gtk_Sheet is access all Gtk_Sheet_RecordTo API docTo specTo body'Class;

55.        type Gtk_Sheet_Range_Record is record

56.           Row0, Col0 : GintTo API docTo spec;  --  Upper-left cell

57.           Rowi, Coli : GintTo API docTo spec;  --  Lower-Right cell

58.        end record;

60.        type Gtk_Sheet_Range is access all Gtk_Sheet_Range_RecordTo API docTo spec;

61.        --  A range in the sheet.

62.        --  This is a part of the sheet represented by its upper-left cell and

63.        --  its lower-right cell.

64.        --  Most operations below apply to such ranges.

66.        type Gtk_Sheet_Child_RecordTo API docTo body is

67.          new Gtk.Widget.Gtk_Widget_RecordTo API docTo specTo body with private;

68.        type Gtk_Sheet_Child is access all Gtk_Sheet_Child_RecordTo API docTo specTo body'Class;

69.        --  A widget insert in the sheet.

70.        --  This structure includes both a widget pointer and the position in the

71.        --  table in which it is put.

73.        ----------------

74.        -- Enum types --

75.        ----------------

77.        --  <doc_ignore>

78.        type Sheet_Attr_Type is

79.          (Sheet_Foreground,

80.           Sheet_Background,

81.           Sheet_Font,

82.           Sheet_Justification,

83.           Sheet_Border,

84.           Sheet_Border_Color,

85.           Sheet_Is_Editable,

86.           Sheet_Is_Visible);

87.        --  Attributes that can be set for the sheet.

88.        --  No function is provided at the Ada level to modify these attributes

89.        --  directly.

90.        pragma Convention (C, Sheet_Attr_TypeTo API docTo spec);

91.        --  </doc_ignore>

93.        type Sheet_State is

94.          (Sheet_Normal,

95.           Sheet_Row_Selected,

96.           Sheet_Column_Selected,

97.           Sheet_Range_Selected);

98.        --  The state of the selection.

99.        pragma Convention (C, Sheet_StateTo API docTo spec);

101.        type Gtk_Sheet_Border is new Integer;

102.        --  Mask that indicates which borders should be visible in a cell.

104.        No_Border     : constant Gtk_Sheet_BorderTo API docTo spec;

105.        Left_Border   : constant Gtk_Sheet_BorderTo API docTo spec;

106.        Right_Border  : constant Gtk_Sheet_BorderTo API docTo spec;

107.        Top_Border    : constant Gtk_Sheet_BorderTo API docTo spec;

108.        Bottom_Border : constant Gtk_Sheet_BorderTo API docTo spec;

109.        All_Borders   : constant Gtk_Sheet_BorderTo API docTo spec;

111.        -------------------------------

112.        -- Creation and modification --

113.        -------------------------------

115.        procedure Gtk_NewTo API docTo body

116.          (Sheet      : out Gtk_SheetTo API docTo spec;

117.           Rows       : GuintTo API docTo spec;

118.           Columns    : GuintTo API docTo spec;

119.           Title      : UTF8_StringTo API docTo spec := "";

120.           Entry_Type : Gtk_TypeTo API docTo spec := GType_InvalidTo API docTo spec);

121.        --  Create a new sheet with a specific number of rows and columns.

122.        --  You can fully specify which type the entry used to modify the value of

123.        --  cells should have. The value of Entry_Type can be found by using one

124.        --  of the Get_Type subprograms in the GtkAda packages.

125.        --  The Title is internal, and does not appear on the screen.

127.        procedure InitializeTo API docTo body

128.          (Sheet      : access Gtk_Sheet_RecordTo API docTo specTo body'Class;

129.           Rows       : GuintTo API docTo spec;

130.           Columns    : GuintTo API docTo spec;

131.           Title      : UTF8_StringTo API docTo spec := "";

132.           Entry_Type : Gtk_TypeTo API docTo spec := GType_InvalidTo API docTo spec);

133.        --  Internal initialization function.

134.        --  See the section "Creating your own widgets" in the documentation.

136.        procedure Gtk_New_BrowserTo API docTo body

137.          (Sheet   : out Gtk_SheetTo API docTo spec;

138.           Rows    : GuintTo API docTo spec;

139.           Columns : GuintTo API docTo spec;

140.           Title   : UTF8_StringTo API docTo spec := "");

141.        --  Create a new sheet browser with a specific number of rows and columns.

142.        --  This is a standard Gtk_Sheet, except that it is read-only and that its

143.        --  cells will automatically resize themselves depending on their contents.

145.        procedure Initialize_BrowserTo API docTo body (Sheet   : access Gtk_Sheet_RecordTo API docTo specTo body'Class;

146.                                      Rows    : in GuintTo API docTo spec;

147.                                      Columns : in GuintTo API docTo spec;

148.                                      Title   : in UTF8_StringTo API docTo spec := "");

149.        --  Internal initialization function.

150.        --  See the section "Creating your own widgets" in the documentation.

152.        function Get_TypeTo API docTo body return Gtk.Gtk_TypeTo API docTo spec;

153.        --  Return the internal value associated with a Gtk_Sheet.

155.        procedure Set_HadjustmentTo API docTo body

156.          (Sheet      : access Gtk_Sheet_RecordTo API docTo specTo body;

157.           Adjustment : access Gtk_Adjustment_RecordTo API docTo spec'Class);

158.        --  Change the horizontal adjustment.

159.        --  It indicates what range of columns is visible.

161.        procedure Set_VadjustmentTo API docTo body

162.           (Sheet      : access Gtk_Sheet_RecordTo API docTo specTo body;

163.            Adjustment : access Gtk_Adjustment_RecordTo API docTo spec'Class);

164.        --  Change the vertical adjustment.

165.        --  It indicates what range of rows is visible.

167.        function Get_VadjustmentTo API docTo body

168.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body)

169.           return      Gtk.Adjustment.Gtk_AdjustmentTo API docTo spec;

170.        --  Return the adjustment used to indicate the range of visible rows.

172.        function Get_HadjustmentTo API docTo body

173.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body)

174.           return      Gtk.Adjustment.Gtk_AdjustmentTo API docTo spec;

175.        --  Return the adjustment used to indicate the range of visible columns.

177.        procedure Change_EntryTo API docTo body

178.          (Sheet      : access Gtk_Sheet_RecordTo API docTo specTo body;

179.           Entry_Type : Gtk_TypeTo API docTo spec);

180.        --  Change the type of widget used to interactively modify the value of

181.        --  the cells.

183.        function Get_EntryTo API docTo body

184.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Gtk.GEntry.Gtk_EntryTo API docTo spec;

185.        --  Return the entry used to modify the content of the cells.

186.        --  This can be the same widget as Get_Entry_Widget, if set, or some default

187.        --  widget associated with the specific child otherwise

189.        function Get_Entry_WidgetTo API docTo body

190.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Gtk.Widget.Gtk_WidgetTo API docTo spec;

191.        --  Return the entry used to modify the content of the cells.

193.        procedure Set_TitleTo API docTo body

194.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

195.           Title : UTF8_StringTo API docTo spec);

196.        --  Change the title of the sheet.

198.        procedure FreezeTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body);

199.        --  Freeze all visual updates of the sheet, until you thaw it.

200.        --  The update will occur in a more efficient way.

202.        procedure ThawTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body);

203.        --  Thaw the sheet, so that visual updates occur again.

204.        --  Note that you have to call Thaw as many times as you have called

205.        --  Freeze to actually thaw the widget.

207.        procedure MovetoTo API docTo body

208.          (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

209.           Row       : GintTo API docTo spec;

210.           Column    : GintTo API docTo spec;

211.           Row_Align : GfloatTo API docTo spec;

212.           Col_Align : GfloatTo API docTo spec);

213.        --  Scroll the viewing area to (Row, Column).

214.        --  (Row_Align, Col_Align) represent the location on the screen that the

215.        --  cell should appear at. (0.0, 0.0) is at the top-left of the screen,

216.        --  whereas (1.0, 1.0) is at the bottom-right corner.

217.        --  If Row or Column is negative, there is no change.

219.        procedure Set_BackgroundTo API docTo body

220.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; ColorTo API docTo body : Gdk.Color.Gdk_ColorTo API docTo specTo body);

221.        --  Change the background color of the cells.

223.        procedure Set_GridTo API docTo body

224.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; ColorTo API docTo body : Gdk.Color.Gdk_ColorTo API docTo specTo body);

225.        --  Set the color to use for the grid.

227.        procedure Show_GridTo API docTo body

228.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; Show : Boolean);

229.        --  Whether the grid should be made visible

231.        function Grid_VisibleTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Boolean;

232.        --  Whether the grid is currently visible

234.        ----------------------------

235.        -- Selection and Clipping --

236.        ----------------------------

238.        function Get_StateTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Sheet_StateTo API docTo spec;

239.        --  Return the status of the selection in the sheet.

241.        function Get_RangeTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Gtk_Sheet_RangeTo API docTo spec;

242.        --  Return the selected range.

244.        procedure Get_Visible_RangeTo API docTo body

245.          (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

246.           The_Range : out Gtk_Sheet_RangeTo API docTo spec);

247.        --  Return the range visible on the screen.

249.        procedure Set_Selection_ModeTo API docTo body

250.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

251.           ModeTo API docTo body  : Gtk.Enums.Gtk_Selection_ModeTo API docTo spec);

252.        --  Change the selection mode.

254.        procedure Select_ColumnTo API docTo body

255.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

256.           Column : GintTo API docTo spec);

257.        --  Replace the current selection with a specific column.

258.        --  The range is highlighted.

260.        procedure Select_RowTo API docTo body

261.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

262.           Row   : GintTo API docTo spec);

263.        --  Replace the current selection with a specific row.

264.        --  The range is highlighted.

266.        procedure Set_AutoresizeTo API docTo body

267.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; Autoresize : Boolean);

268.        --  Whether cells should automatically resize to fit their contents

270.        function AutoresizeTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Boolean;

271.        --  Whether cells automatically resize to fit their contents

273.        procedure Set_AutoscrollTo API docTo body

274.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; Autoscroll : Boolean);

275.        --  Whether the sheet should automatically scroll to show the active cell at

276.        --  all times.

278.        function AutoscrollTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Boolean;

279.        --  Whether the sheet automatically scrolls to show the active cell at all

280.        --  times.

282.        procedure Set_Clip_TextTo API docTo body

283.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; Clip : Boolean);

284.        --  Set when the text contained in the cells is automatically clipped to

285.        --  their width.

287.        function Clip_TextTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Boolean;

288.        --  Whether the text contained in the cells is automatically clipped to

289.        --  their width.

291.        procedure Set_Justify_EntryTo API docTo body

292.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; Justify_Entry : Boolean);

293.        --  Set when the justification attribute for entries should be taken into

294.        --  account

296.        function Justify_EntryTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Boolean;

297.        --  Whether the justification attribute is used for entries

299.        procedure Set_LockedTo API docTo body

300.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; Locked : Boolean);

301.        --  If Locked is true, the cells are no longer editable

303.        function LockedTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Boolean;

304.        --  Whether cells are currently read-only

306.        procedure Select_RangeTo API docTo body

307.          (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

308.           The_Range : Gtk_Sheet_RangeTo API docTo spec);

309.        --  Select a new range of cells.

311.        procedure Unselect_RangeTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body);

312.        --  Unselect a specific range of cells.

313.        --  If null is passed, the current selected range is used.

315.        procedure Clip_RangeTo API docTo body (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

316.                              The_Range : in Gtk_Sheet_RangeTo API docTo spec);

317.        --  Create a new clip range, which is copied to the clipboard

318.        --  That range is flashed on the screen.

320.        procedure Unclip_RangeTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body);

321.        --  Destroy the clip area.

323.        function In_ClipTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Boolean;

324.        --  Whether a range was copied to the clipboard

326.        function Set_Active_CellTo API docTo body

327.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

328.           Row    : GintTo API docTo spec;

329.           Column : GintTo API docTo spec)

330.           return Boolean;

331.        --  Set active cell where the entry will be displayed.

332.        --  Returns FALSE if the current cell can not be deactivated or if the

333.        --  requested cell can't be activated.

334.        --  Depending on the value passed to Set_Autoscroll, the sheet might be

335.        --  scrolled.

337.        procedure Get_Active_CellTo API docTo body

338.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

339.           Row    : out GintTo API docTo spec;

340.           Column : out GintTo API docTo spec);

341.        --  Return the coordinates of the active cell.

342.        --  This is the cell that the user is currently editing.

344.        -------------

345.        -- Columns --

346.        -------------

348.        procedure Set_Column_TitleTo API docTo body

349.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

350.           Column : GintTo API docTo spec;

351.           Title  : UTF8_StringTo API docTo spec);

352.        --  Modify the title of a column.

353.        --  The first column on the left has the number 0.

354.        --  Note that this title does not appear on the screen, and can only be

355.        --  used internally to find a specific column.

357.        function Get_Column_TitleTo API docTo body

358.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

359.           Column : GintTo API docTo spec) return UTF8_StringTo API docTo spec;

360.        --  Return the title of a specific column.

362.        procedure Set_Column_Titles_HeightTo API docTo body

363.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body; Height : GuintTo API docTo spec);

364.        --  Modify the height of the row in which the column titles appear.

366.        procedure Column_Button_Add_LabelTo API docTo body

367.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

368.           Column : GintTo API docTo spec;

369.           Label  : UTF8_StringTo API docTo spec);

370.        --  Modify the label of the button that appears at the top of each column.

372.        function Column_Button_Get_LabelTo API docTo body

373.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; Column : GintTo API docTo spec) return UTF8_StringTo API docTo spec;

374.        --  Return the label for the button that appears at the top of each column

376.        procedure Column_Button_JustifyTo API docTo body

377.           (Sheet         : access Gtk_Sheet_RecordTo API docTo specTo body;

378.            Column        : GintTo API docTo spec;

379.            JustificationTo API docTo body : Gtk.Enums.Gtk_JustificationTo API docTo spec);

380.        --  Modify the justification for the label in the column button.

382.        procedure Show_Column_TitlesTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body);

383.        --  Show the row in which the column titles appear.

385.        procedure Hide_Column_TitlesTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body);

386.        --  Hide the row in which the column titles appear.

388.        function Column_Titles_VisibleTo API docTo body

389.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Boolean;

390.        --  Whether a special row is added at the top to show the title of the

391.        --  columns.

393.        procedure Columns_Set_SensitivityTo API docTo body

394.          (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

395.           Sensitive : Boolean);

396.        --  Modify the sensitivity of all the columns.

397.        --  If Sensitive is False, the columns can not be resized dynamically.

398.        --  This also modifies the sensitivity of the button at the top of the

399.        --  columns.

401.        procedure Column_Set_SensitivityTo API docTo body

402.          (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

403.           Column    : GintTo API docTo spec;

404.           Sensitive : Boolean);

405.        --  Modify the sensitivity of a specific column and its title button.

406.        --  If Sensitive if False, the column can not be dynamically resized.

408.        procedure Column_Set_VisibilityTo API docTo body

409.          (Sheet   : access Gtk_Sheet_RecordTo API docTo specTo body;

410.           Column  : GintTo API docTo spec;

411.           Visible : Boolean);

412.        --  Change the visibility of a column.

414.        procedure Columns_Set_ResizableTo API docTo body

415.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; Resizable : Boolean);

416.        --  Whether columns are resizable

418.        function Columns_ResizableTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Boolean;

419.        --  Whether columns are resizable

421.        procedure Column_Label_Set_VisibilityTo API docTo body

422.          (Sheet   : access Gtk_Sheet_RecordTo API docTo specTo body;

423.           Column  : GintTo API docTo spec;

424.           Visible : Boolean := True);

425.        --  Change the visibility of the label in a given column.

427.        procedure Columns_Labels_Set_VisibilityTo API docTo body

428.          (Sheet   : access Gtk_Sheet_RecordTo API docTo specTo body;

429.           Visible : Boolean := True);

430.        --  Change the visibility for all the column labels.

432.        procedure Set_Column_WidthTo API docTo body

433.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

434.           Column : GintTo API docTo spec;

435.           Width  : GuintTo API docTo spec);

436.        --  Modify the width in pixels of a specific column.

438.        function Get_Column_WidthTo API docTo body (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

439.                                   Column : in GintTo API docTo spec)

440.                                  return GintTo API docTo spec;

441.        --  Return the width in pixels of the Column-nth in Sheet.

443.        procedure Add_ColumnTo API docTo body

444.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

445.           Ncols : GuintTo API docTo spec);

446.        --  Add some empty columns at the end of the sheet.

448.        procedure Insert_ColumnsTo API docTo body

449.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

450.           Col   : GuintTo API docTo spec;

451.           Ncols : GuintTo API docTo spec);

452.        --  Add Ncols empty columns just before the columns number Col.

454.        procedure Delete_ColumnsTo API docTo body

455.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

456.           Col   : GuintTo API docTo spec;

457.           Ncols : GuintTo API docTo spec);

458.        --  Delete Ncols columns starting from Col.

460.        procedure Column_Set_JustificationTo API docTo body

461.          (Sheet         : access Gtk_Sheet_RecordTo API docTo specTo body;

462.           Column        : GintTo API docTo spec;

463.           JustificationTo API docTo body : Gtk.Enums.Gtk_JustificationTo API docTo spec);

464.        --  Set the default justification for the cells in the specific column.

466.        function Get_Columns_CountTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return GuintTo API docTo spec;

467.        --  Return the maximum column number of the displayed cells.

469.        ----------

470.        -- Rows --

471.        ----------

473.        procedure Set_Row_TitleTo API docTo body

474.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

475.           Row   : GintTo API docTo spec;

476.           Title : UTF8_StringTo API docTo spec);

477.        --  Modify the title of a row.

478.        --  The first row at the top has the number 0.

479.        --  Note that this title does not appear on the screen, and can only be

480.        --  used internally to find a specific row.

482.        function Get_Row_TitleTo API docTo body

483.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body; Row : GintTo API docTo spec) return UTF8_StringTo API docTo spec;

484.        --  Return the title of a specific row.

486.        procedure Set_Row_Titles_WidthTo API docTo body

487.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; Width : GuintTo API docTo spec);

488.        --  Modify the width of the column that has the row titles.

490.        procedure Row_Button_Add_LabelTo API docTo body

491.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

492.           Row   : GintTo API docTo spec;

493.           Label : UTF8_StringTo API docTo spec);

494.        --  Modify the label of the button that appears on the left of each row.

496.        function Row_Button_Get_LabelTo API docTo body

497.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; Row : GintTo API docTo spec) return UTF8_StringTo API docTo spec;

498.        --  Return the label for the button that appears on the left of each row.

500.        procedure Row_Button_JustifyTo API docTo body

501.           (Sheet         : access Gtk_Sheet_RecordTo API docTo specTo body;

502.            Row           : GintTo API docTo spec;

503.            JustificationTo API docTo body : Gtk.Enums.Gtk_JustificationTo API docTo spec);

504.        --  Modify the justification for the label of the row button.

506.        procedure Show_Row_TitlesTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body);

507.        --  Show the column in which the row titles appear.

509.        procedure Hide_Row_TitlesTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body);

510.        --  Hide the column in which the row titles appear.

512.        function Row_Titles_VisibleTo API docTo body

513.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Boolean;

514.        --  Whether a special column is added to the left to show the title of the

515.        --  rows.

517.        procedure Rows_Set_SensitivityTo API docTo body (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

518.                                        Sensitive : in Boolean);

519.        --  Modify the sensitivity of all the rows.

520.        --  If Sensitive is False, the rows can not be resized dynamically.

521.        --  This also modifies the sensitivity of the button at the left of the

522.        --  row.

524.        procedure Row_Set_SensitivityTo API docTo body (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

525.                                       Row       : in GintTo API docTo spec;

526.                                       Sensitive : in Boolean);

527.        --  Modify the sensitivity of a specific row and its title button.

528.        --  If Sensitive if False, the row can not be dynamically resized.

530.        procedure Row_Set_VisibilityTo API docTo body (Sheet   : access Gtk_Sheet_RecordTo API docTo specTo body;

531.                                      Row     : in GintTo API docTo spec;

532.                                      Visible : in Boolean);

533.        --  Modify the visibility of a specific row

535.        procedure Row_Label_Set_VisibilityTo API docTo body

536.          (Sheet   : access Gtk_Sheet_RecordTo API docTo specTo body;

537.           Row    : in GintTo API docTo spec;

538.           Visible : in Boolean := True);

539.        --  Change the visibility of the label in a given Row.

541.        procedure Rows_Labels_Set_VisibilityTo API docTo body

542.          (Sheet   : access Gtk_Sheet_RecordTo API docTo specTo body;

543.           Visible : Boolean := True);

544.        --  Change the visibility for all the row labels.

546.        procedure Rows_Set_ResizableTo API docTo body

547.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body; Resizable : Boolean);

548.        --  Whether rows are resizable

550.        function Rows_ResizableTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return Boolean;

551.        --  Whether rows are resizable

553.        procedure Set_Row_HeightTo API docTo body

554.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

555.           Row    : GintTo API docTo spec;

556.           Height : GuintTo API docTo spec);

557.        --  Set the height in pixels of a specific row.

559.        function Get_Row_HeightTo API docTo body (Sheet   : access Gtk_Sheet_RecordTo API docTo specTo body;

560.                                 Row     : in GintTo API docTo spec)

561.                                return GintTo API docTo spec;

562.        --  Return the height in pixels of the Row-th row in Sheet.

564.        procedure Add_RowTo API docTo body

565.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

566.           Nrows : GuintTo API docTo spec);

567.        --  Append Nrows row at the end of the sheet.

569.        procedure Insert_RowsTo API docTo body

570.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

571.           Row   : GuintTo API docTo spec;

572.           Nrows : GuintTo API docTo spec);

573.        --  Add Nrows empty rows just before the row number Row.

575.        procedure Delete_RowsTo API docTo body

576.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

577.           Row   : GuintTo API docTo spec;

578.           Nrows : GuintTo API docTo spec);

579.        --  Delete Nrows rows starting from Row.

581.        function Get_Rows_CountTo API docTo body (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body) return GuintTo API docTo spec;

582.        --  Return the maximum row number of displayed cells.

584.        -----------

585.        -- Range --

586.        -----------

588.        function Range_Get_TypeTo API docTo body return Gtk.Gtk_TypeTo API docTo spec;

589.        --  Return the internal value associate with a Gtk_Sheet_Range

591.        procedure Range_ClearTo API docTo body

592.          (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

593.           The_Range : Gtk_Sheet_RangeTo API docTo spec);

594.        --  Clear the content of the range.

596.        procedure Range_DeleteTo API docTo body

597.          (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

598.           The_Range : Gtk_Sheet_RangeTo API docTo spec);

599.        --  Clear the content of the range and delete all the links (user_data)

601.        procedure Range_Set_BackgroundTo API docTo body

602.          (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

603.           The_Range : Gtk_Sheet_RangeTo API docTo spec;

604.           ColorTo API docTo body     : Gdk.Color.Gdk_ColorTo API docTo specTo body);

605.        --  Set the background color for the cells in a specific range.

607.        procedure Range_Set_ForegroundTo API docTo body

608.          (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

609.           The_Range : Gtk_Sheet_RangeTo API docTo spec;

610.           ColorTo API docTo body     : Gdk.Color.Gdk_ColorTo API docTo specTo body);

611.        --  Set the foreground color for the cells in a specific range.

613.        procedure Range_Set_JustificationTo API docTo body

614.          (Sheet         : access Gtk_Sheet_RecordTo API docTo specTo body;

615.           The_Range     : Gtk_Sheet_RangeTo API docTo spec;

616.           JustificationTo API docTo body : Gtk.Enums.Gtk_JustificationTo API docTo spec);

617.        --  Set the text justification for the cells in the range.

619.        procedure Range_Set_EditableTo API docTo body

620.          (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

621.           The_Range : Gtk_Sheet_RangeTo API docTo spec;

622.           Editable  : Boolean);

623.        --  Set whether the cells in the range are editable.

625.        procedure Range_Set_VisibleTo API docTo body (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

626.                                     The_Range : in Gtk_Sheet_RangeTo API docTo spec;

627.                                     Visible   : in Boolean);

628.        --  Set whether the cells in the range are visible.

630.        procedure Range_Set_BorderTo API docTo body

631.          (Sheet      : access Gtk_Sheet_RecordTo API docTo specTo body;

632.           The_Range  : Gtk_Sheet_RangeTo API docTo spec;

633.           Mask       : Gtk_Sheet_BorderTo API docTo spec;

634.           Width      : GuintTo API docTo spec;

635.           Line_StyleTo API docTo body : Gdk.GC.Gdk_Line_StyleTo API docTo spec);

636.        --  Set the style of the border for the cells in the range.

638.        procedure Range_Set_Border_ColorTo API docTo body

639.          (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

640.           The_Range : Gtk_Sheet_RangeTo API docTo spec;

641.           ColorTo API docTo body     : Gdk.Color.Gdk_ColorTo API docTo specTo body);

642.        --  Change the color for the borders of the cells in the range.

644.        procedure Range_Set_FontTo API docTo body

645.          (Sheet     : access Gtk_Sheet_RecordTo API docTo specTo body;

646.           The_Range : Gtk_Sheet_RangeTo API docTo spec;

647.           Font      : Pango.Font.Pango_Font_DescriptionTo API docTo spec);

648.        --  Change the font of the cells in the range.

650.        -----------

651.        -- Cells --

652.        -----------

654.        procedure Set_CellTo API docTo body

655.          (Sheet         : access Gtk_Sheet_RecordTo API docTo specTo body;

656.           Row           : GintTo API docTo spec;

657.           Col           : GintTo API docTo spec;

658.           JustificationTo API docTo body : Gtk.Enums.Gtk_JustificationTo API docTo spec;

659.           Text          : UTF8_StringTo API docTo spec);

660.        --  Set the cell contents.

661.        --  Set Text to the empty string to delete the content of the cell.

663.        procedure Set_Cell_TextTo API docTo body

664.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

665.           Row   : GintTo API docTo spec;

666.           Col   : GintTo API docTo spec;

667.           Text  : UTF8_StringTo API docTo spec);

668.        --  Set the cell contents.

669.        --  The justification used is the previous one used in that cell.

671.        function Cell_Get_TextTo API docTo body

672.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

673.           Row    : GintTo API docTo spec;

674.           Col    : GintTo API docTo spec)

675.           return UTF8_StringTo API docTo spec;

676.        --  Return the text put in a specific cell.

677.        --  The empty string is returned if there is no text in that cell.

679.        procedure Cell_ClearTo API docTo body

680.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

681.           Row   : GintTo API docTo spec;

682.           Col   : GintTo API docTo spec);

683.        --  Clear the contents of the cell.

685.        procedure Cell_DeleteTo API docTo body

686.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

687.           Row   : GintTo API docTo spec;

688.           Col   : GintTo API docTo spec);

689.        --  Clear the contents of the cell and remove the user data associated

690.        --  with it.

692.        function Cell_Get_StateTo API docTo body (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

693.                                 Row    : in GintTo API docTo spec;

694.                                 Col    : in GintTo API docTo spec)

695.                                return  Gtk.Enums.Gtk_State_TypeTo API docTo spec;

696.        --  Return the state of the cell (normal or selected).

698.        procedure Get_Pixel_InfoTo API docTo body

699.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

700.           X      : GintTo API docTo spec;

701.           Y      : GintTo API docTo spec;

702.           Row    : out GintTo API docTo spec;

703.           Column : out GintTo API docTo spec);

704.        --  Return the row and column matching a given pixel on the screen.

705.        --  Constraint_Error is raised if no such cell exists.

707.        procedure Get_Cell_AreaTo API docTo body

708.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

709.           Row    : GintTo API docTo spec;

710.           Column : GintTo API docTo spec;

711.           AreaTo API docTo body   : out Gdk.Rectangle.Gdk_RectangleTo API docTo spec);

712.        --  Get the area of the screen that a cell is mapped to.

713.        --  Constraint_Error is raised if no such cell exists;

715.        --------------

716.        -- Children --

717.        --------------

718.        --  A Gtk_Sheet can contain some children, attached to some specific

719.        --  cells.

721.        procedure PutTo API docTo body

722.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

723.           Widget : access Gtk.Widget.Gtk_Widget_RecordTo API docTo specTo body'Class;

724.           X      : GintTo API docTo spec;

725.           Y      : GintTo API docTo spec);

726.        --  Put a new child at a specific location (in pixels) in the sheet.

728.        procedure AttachTo API docTo body

729.           (Sheet    : access Gtk_Sheet_RecordTo API docTo specTo body;

730.            Widget   : access Gtk.Widget.Gtk_Widget_RecordTo API docTo specTo body'Class;

731.            Row      : GintTo API docTo spec;

732.            Col      : GintTo API docTo spec;

733.            Xoptions : Gtk.Enums.Gtk_Attach_OptionsTo API docTo spec := ExpandTo API docTo spec or FillTo API docTo spec;

734.            Yoptions : Gtk.Enums.Gtk_Attach_OptionsTo API docTo spec := ExpandTo API docTo spec or FillTo API docTo spec;

735.            Xpadding : GintTo API docTo spec := 0;

736.            Ypadding : GintTo API docTo spec := 0);

737.        --  Attach a child to a specific Cell in the sheet.

738.        --  X_Align and Y_Align should be between 0.0 and 1.0, indicating that

739.        --  the child should be aligned from the Left (resp. Top) to the Right

740.        --  (resp. Bottom) of the cell.

741.        --  If Row or Col is negative, the widget is attached to the row buttons or

742.        --  column buttons.

743.        --  Widget will not be moved if the cell is moved.

745.        procedure Attach_FloatingTo API docTo body

746.           (Sheet    : access Gtk_Sheet_RecordTo API docTo specTo body;

747.            Widget   : access Gtk.Widget.Gtk_Widget_RecordTo API docTo specTo body'Class;

748.            Row      : GintTo API docTo spec;

749.            Col      : GintTo API docTo spec);

750.        --  Attach a child at the current location or (Row, Col).

751.        --  If the cell is moved because of resizing or other reasons, Widget will

752.        --  be moved as well.

754.        procedure Move_ChildTo API docTo body

755.           (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

756.            Widget : access Gtk.Widget.Gtk_Widget_RecordTo API docTo specTo body'Class;

757.            X      : GintTo API docTo spec;

758.            Y      : GintTo API docTo spec);

759.        --  Move a child of the table to a specific location in pixels.

760.        --  A warning is printed if Widget is not already a child of Sheet.

762.        function Get_Child_AtTo API docTo body

763.          (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body;

764.           Row    : GintTo API docTo spec;

765.           Col    : GintTo API docTo spec)

766.           return Gtk_Sheet_ChildTo API docTo spec;

767.        --  Return the widget associated with the cell.

769.        function Get_WidgetTo API docTo body (Child : Gtk_Sheet_ChildTo API docTo spec) return Gtk.Widget.Gtk_WidgetTo API docTo spec;

770.        --  Return the widget in the child.

772.        procedure Button_AttachTo API docTo body

773.          (Sheet   : access Gtk_Sheet_RecordTo API docTo specTo body;

774.           Widget  : access Gtk.Widget.Gtk_Widget_RecordTo API docTo specTo body'Class;

775.           Row     : GintTo API docTo spec;

776.           Col     : GintTo API docTo spec);

777.        --  Attach a new button in the row or column title.

778.        --  One of Row or Col must be negative (but only one).

779.        --  This can be used to modify the standard buttons that appear at the top

780.        --  of each column, or on the left of each row.

782.        -----------------------

783.        -- Links / User_Data --

784.        -----------------------

785.        --  You can associate any kind of data with a cell, just like you

786.        --  can associate user_data with all the widgets.

787.        --  Note that this uses a generic package, which must be instantiated at

788.        --  library level since it has internal clean up functions.

790.        generic

791.           --  <doc_ignore>

792.           type Data_Type (<>) is private;

793.        package LinksTo API docTo body is

794.           type Data_Type_Access is access all Data_TypeTo API docTo spec;

795.           --  </doc_ignore>

797.           procedure Link_CellTo API docTo body

798.             (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body'Class;

799.              Row   : GintTo API docTo spec;

800.              Col   : GintTo API docTo spec;

801.              Link  : Data_TypeTo API docTo spec);

802.           --  Associate some user specific data with a given cell.

804.           function Get_LinkTo API docTo body

805.             (Sheet  : access Gtk_Sheet_RecordTo API docTo specTo body'Class;

806.              Row    : GintTo API docTo spec;

807.              Col    : GintTo API docTo spec)

808.              return  Data_Type_AccessTo API docTo spec;

809.           --  Return the user data associated with the cell.

810.           --  null is returned if the cell has no user data.

812.        end LinksTo API docTo specTo body;

814.        procedure Remove_LinkTo API docTo body

815.          (Sheet : access Gtk_Sheet_RecordTo API docTo specTo body;

816.           Row   : GintTo API docTo spec;

817.           Col   : GintTo API docTo spec);

818.        --  Delete the user data associated with the cell.

820.        -------------

821.        -- Signals --

822.        -------------

824.        --  <signals>

825.        --  The following new signals are defined for this widget:

826.        --

827.        --  - "set_scroll_adjustments"

828.        --    procedure Handler (Sheet : access Gtk_Sheet_Record'Class;

829.        --                       Hadj  : Gtk_Adjustement;

830.        --                       Vadj  : Gtk_Adjustment);

831.        --

832.        --    Emitted when the adjustments used to indicate which area of the sheet

833.        --    is visible are set or changed. This is not called when their value is

834.        --    changed, only when a new one is set.

835.        --

836.        --  - "select_row"

837.        --    procedure Handler (Sheet : access Gtk_Sheet_Record'Class;

838.        --                       Row   : Gint);

839.        --

840.        --    Emitted when a new row is selected.

841.        --

842.        --  - "select_column"

843.        --    procedure Handler (Sheet  : access Gtk_Sheet_Record'Class;

844.        --                       Column : Gint);

845.        --

846.        --    Emitted when a new column is selected.

847.        --

848.        --  - "select_range"

849.        --    procedure Handler (Sheet     : access Gtk_Sheet_Record'Class;

850.        --                       The_Range : Gtk_Sheet_Range);

851.        --

852.        --    Emitted when a new range of cells is selected.

853.        --

854.        --  - "clip_range"

855.        --    procedure Handler (Sheet      : access Gtk_Sheet_Record'Class;

856.        --                       Clip_Range : Gtk_Sheet_Range);

857.        --

858.        --    Emitted when the clip area is set to a new value.

859.        --

860.        --  - "resize_range"

861.        --    procedure Handler (Sheet     : access Gtk_Sheet_Record'Class;

862.        --                       Old_Range : Gtk_Sheet_Range;

863.        --                       New_Range : Gtk_Sheet_Range);

864.        --

865.        --    Emitted when the current range of selected cell is resized (ie new

866.        --    cells are added to it or removed from it).

867.        --

868.        --  - "move_range"

869.        --    procedure Handler (Sheet     : access Gtk_Sheet_Record'Class;

870.        --                       Old_Range : Gtk_Sheet_Range;

871.        --                       New_Range : Gtk_Sheet_Range);

872.        --

873.        --    Emitted when the current range of selected cell is moved (ie the

874.        --    top-left cell is changed, but the size is not modified).

875.        --

876.        --  - "traverse"

877.        --    function Handler (Sheet      : access Gtk_Sheet_Record'Class;

878.        --                      Row        : Gint;

879.        --                      Column     : Gint;

880.        --                      New_Row    : Gint_Access;

881.        --                      New_Column : Gint_Access)

882.        --                     return Boolean;

883.        --

884.        --    Emitted when the user wants to make a new cell active. The coordinates

885.        --    of the currently active cell are passed in (Row, Column), the

886.        --    coordinates of the cell that the user would like to select are

887.        --    passed in (New_Row, New_Column). The callback can modify the new

888.        --    values, and should return True if the new coordinates are accepted,

889.        --    False if the selection should be refused.

890.        --

891.        --  - "deactivate"

892.        --    function Handler (Sheet  : access Gtk_Sheet_Record'Class;

893.        --                      Row    : Gint;

894.        --                      Column : Gint)

895.        --                     return Boolean;

896.        --

897.        --    Emitted when the user wants to deactivate a specific cell. The

898.        --    callback should return True if the cell can be deactivated, False

899.        --    otherwise. See the subprogram Deactivate_Cell.

900.        --

901.        --  - "activate"

902.        --    function Handler (Sheet  : access Gtk_Sheet_Record'Class;

903.        --                      Row    : Gint;

904.        --                      Column : Gint)

905.        --                     return Boolean;

906.        --

907.        --    Emitted when the user wants to activate a specific cell. The

908.        --    callback should return True if the cell can be activated, False

909.        --    otherwise. See the subprogram Activate_Cell.

910.        --

911.        --  - "set_cell"

912.        --    procedure Handler (Sheet  : access Gtk_Sheet_Record'Class;

913.        --                       Row    : Gint;

914.        --                       Column : Gint);

915.        --

916.        --    Emitted from Hide_Active_Cell, when the cell is non-empty. ???

917.        --

918.        --  - "clear_cell"

919.        --    procedure Handler (Sheet  : access Gtk_Sheet_Record'Class;

920.        --                       Row    : Gint;

921.        --                       Column : Gint);

922.        --

923.        --    Emitted when the content of the cell has been deleted (the text is

924.        --    now the empty string).

925.        --

926.        --  - "changed"

927.        --    procedure Handler (Sheet  : access Gtk_Sheet_Record'Class;

928.        --                       Row    : Gint;

929.        --                       Column : Gint);

930.        --

931.        --    Emitted when the content of the cell is modified (either the text

932.        --    itself, or its properties, alignment,...)

933.        --    A value of -1 for Row or Column means the row title, the column

934.        --    title, or their intersection.

935.        --

936.        --  - "new_column_width"

937.        --    procedure Handler (Sheet  : access Gtk_Sheet_Record'Class;

938.        --                       Column : Gint;

939.        --                       Width  : Guint);

940.        --

941.        --    Emitted whenever the width of the column is changed, either by the

942.        --    user or automatically if the cells should automatically resize

943.        --    themselves depending on their contents).

944.        --

945.        --  - "new_row_height"

946.        --    procedure Handler (Sheet  : access Gtk_Sheet_Record'Class;

947.        --                       Row    : Gint;

948.        --                       Height : Guint);

949.        --

950.        --    Emitted whenever the height of the row is changed.

951.        --  </signals>

953.     private

954.        type Gtk_Sheet_RecordTo API docTo spec is new Gtk.Container.Gtk_Container_RecordTo API docTo specTo body

955.          with null record;

956.        type Gtk_Sheet_Child_RecordTo API docTo spec is

957.          new Gtk.Widget.Gtk_Widget_RecordTo API docTo specTo body with null record;

959.        pragma Import (C, Get_TypeTo API docTo spec, "gtk_sheet_get_type");

960.        pragma Import (C, Range_Get_TypeTo API docTo spec, "gtk_sheet_range_get_type");

962.        No_BorderTo API docTo spec     : constant Gtk_Sheet_BorderTo API docTo spec := 0;

963.        Left_BorderTo API docTo spec   : constant Gtk_Sheet_BorderTo API docTo spec := 1;

964.        Right_BorderTo API docTo spec  : constant Gtk_Sheet_BorderTo API docTo spec := 2;

965.        Top_BorderTo API docTo spec    : constant Gtk_Sheet_BorderTo API docTo spec := 4;

966.        Bottom_BorderTo API docTo spec : constant Gtk_Sheet_BorderTo API docTo spec := 8;

967.        All_BordersTo API docTo spec   : constant Gtk_Sheet_BorderTo API docTo spec := 15;

968.        pragma Convention (C, Gtk_Sheet_RangeTo API docTo spec);

969.     end Gtk.Extra.SheetTo API docTo specTo body;

971.     --  Unbound:

972.     --    gtk_sheet_get_entry_widget

973.     --    gtk_sheet_get_attributes