1 /**************************************************************************
2 ** (c) Copyright 1999, Andromeda Technology & Automation
3 ***************************************************************************
4 ** MODULE INFORMATION *
5 ***********************
7 ** SYSTEM NAME : AXE - Andromeda X-windows Encapsulation
8 ** VERSION NUMBER : $Revision: 1.1 $
10 ** DESCRIPTION : Definition of table_view class
12 ** EXPORTED OBJECTS : class table_view
15 ***************************************************************************
16 ** ADMINISTRATIVE INFORMATION *
17 ********************************
18 ** ORIGINAL AUTHOR : Arjen Baart - arjen@andromeda.nl
19 ** CREATION DATE : Aug 26, 1999
20 ** LAST UPDATE : Aug 26, 1999
22 **************************************************************************/
24 /*****************************
26 Revision 1.1 2002-07-25 08:01:27 arjen
27 First checkin, AXE release 0.2
29 *****************************/
31 /* static const char *RCSID = "$Id: table.h,v 1.1 2002-07-25 08:01:27 arjen Exp $"; */
37 ///////////////////////////////////////////////////////////////////////////
48 // LAST MODIFIED : Aug 26, 1999
49 ///////////////////////////////////////////////////////////////////////////
52 class table_view : public window
58 hor_alignment alignment;
65 int nr_rows, nr_columns;
70 font header_font, cell_font;
75 table_view(window &parent, int rows, int columns)
80 Vscroll = new scrollbar(*this, 120, 260, 16);
82 Head = new header[columns];
83 Cells = new String * [rows];
84 for (i = 0; i < rows; i++)
86 Cells[i] = new String[columns];
89 for (i = 0; i < columns; i++)
91 Head[i].alignment = Left;
99 g.SetForeground(Black);
100 g.SetBackground(stddpy.White());
101 header_font.Load("6x13bold");
102 cell_font.Load("6x13");
103 SelectInput(ExposureMask | ButtonPressMask, 1);
110 for (int i = 0; i < nr_rows; i++)
117 void recreate(int rows)
121 for (i = 0; i < nr_rows; i++)
128 Cells = new String * [nr_rows];
129 for (i = 0; i < nr_rows; i++)
131 Cells[i] = new String[nr_columns];
134 Vscroll->move_slider(-*Vscroll);
139 // Provide access to the cells of the table
141 String & head(int col)
143 return Head[col].title;
146 String & cell(int row, int col)
148 return Cells[row][col];
156 void top_row(int row_nr)
158 Vscroll->move_slider(row_nr - *Vscroll);
163 return int(*Vscroll);
166 // Functions for layout control
168 void align(int col, hor_alignment al)
170 Head[col].alignment = al;
175 return Head[col].width;
178 virtual void redraw();
180 virtual int EV_Expose(XExposeEvent ev)
186 virtual int EV_ButtonPress(XButtonEvent);
188 virtual void ChildMessage(win_message &msg);