StanfordCPPLib
Classes | Public Types | Public Member Functions | Protected Member Functions | List of all members
GTable Class Reference

A GTable represents a graphical editable 2D table, like a mediocre facsimile of an Excel spreadsheet. More...

#include "gtable.h"

Inheritance diagram for GTable:
GInteractor GObservable

Public Types

enum  ColumnHeaderStyle { COLUMN_HEADER_NONE, COLUMN_HEADER_EXCEL, COLUMN_HEADER_NUMERIC }
 Styles of column header labels that can be shown. More...
 
enum  TextPosition { TEXT_BESIDE_ICON, TEXT_UNDER_ICON, TEXT_ONLY }
 The places where an interactor can place its text relative to its icon. More...
 

Public Member Functions

 GTable(int rows=0, int columns=0, double width=0, double height=0, QWidget* parent=nullptr)
 Constructs a new table with the given dimensions and (optional) size. More...
 
~GTable()
 
void addActionListener() (deprecated)
 Adds an event listener to be notified when this interactor is clicked or generally interacted with. More...
 
void autofitColumnWidths()
 Changes widths of all columns to be perfectly large enough to fit their contents. More...
 
void clear()
 Sets all cells in the table to store an empty string value. More...
 
void clearCell(int row, int column)
 Sets the given cell to store an empty string value. More...
 
void clearCellFormatting(int row, int column)
 Removes any formatting that has been applied to the given cell. More...
 
void clearFormatting()
 Removes any per-cell/column/row formatting that has been applied to the table. More...
 
void clearSelection()
 Deselects any currently selected cell. More...
 
bool eventsEnabled() const
 Returns true if this interactor is currently accepting events. More...
 
void fill(string text)
 Sets every cell in the table to have the given value. More...
 
string get(int row, int column) const
 Returns the text stored in the given cell. More...
 
string getAccelerator() const
 Returns a string representing a hotkey for this interactor, or an empty string if no accelerator has been set. More...
 
string getActionCommand() const
 Returns an action command for this interactor, which is a semi-unique string you can use to identify it when events occur. More...
 
string getBackground() const
 Returns the background color of the interactor as a string. More...
 
int getBackgroundInt() const
 Returns the background color of the interactor as an RGB integer. More...
 
GRectangle getBounds() const
 Returns a rectangle representing the x/y position and size of this interactor. More...
 
string getColor() const
 Returns the foreground/text color of the interactor as a string. More...
 
int getColorInt() const
 Returns the foreground/text color of the interactor as an RGB integer. More...
 
ColumnHeaderStyle getColumnHeaderStyle() const
 Returns the column headers to use the given style. More...
 
double getColumnWidth(int column) const
 Returns the width of the given column index in pixels. More...
 
GContainergetContainer() const
 Returns a pointer to the onscreen container holding this interactor. More...
 
string getFont() const
 Returns the font of this interactor's text as a font string such as "Helvetica-12-Bold". More...
 
string getForeground() const
 Returns the foreground/text color of the interactor as a string. More...
 
int getForegroundInt() const
 Returns the foreground/text color of the interactor as an RGB integer. More...
 
double getHeight() const
 Returns the current onscreen height of this interactor in pixels. More...
 
string getIcon() const
 Returns the file name of the icon associated with this interactor, or an empty string if no icon has been set. More...
 
int getID() const
 Returns a globally unique identifier for this interactor, which is set when the interactor is constructed. More...
 
_Internal_QWidget*  getInternalWidget() const
 Returns a direct pointer to the internal Qt widget being wrapped by this interactor. More...
 
GPoint getLocation() const
 Returns an (x, y) point representing the onscreen location of the top-left corner of this interactor within its containing window. More...
 
double getMinimumHeight() const
 Returns the minimum height in pixels that this interactor will permit itself to be resized to. More...
 
GDimension getMinimumSize() const
 Returns a GDimension structure representing the minimum size in pixels that this interactor will permit itself to be resized to. More...
 
double getMinimumWidth() const
 Returns the minimum width in pixels that this interactor will permit itself to be resized to. More...
 
string getName() const
 Returns a string representing a unique name for this interactor. More...
 
double getPreferredHeight() const
 Returns the height in pixels that this interactor would prefer to be, which would exactly fit its contents with no stretching or scrollbars. More...
 
GDimension getPreferredSize() const
 Returns a GDimension structure storing the width and height in pixels that this interactor would prefer to be, which would exactly fit its contents with no stretching or scrollbars. More...
 
double getPreferredWidth() const
 Returns the height in pixels that this interactor would prefer to be, which would exactly fit its contents with no stretching or scrollbars. More...
 
double getRowHeight(int row) const
 Returns the height of the given row index in pixels. More...
 
GridLocation getSelectedCell() const
 Returns the row and column of the cell that is currently selected. More...
 
void getSelectedCell(int &row, int &column) const
 Returns the row and column of the cell that is currently selected by filling the given reference parameters. More...
 
string getSelectedCellValue() const
 Returns the text in the cell that is currently selected. More...
 
int getSelectedColumn() const
 Returns the column of the cell that is currently selected, or -1 if no cell is currently selected. More...
 
int getSelectedRow() const
 Returns the row of the cell that is currently selected, or -1 if no cell is currently selected. More...
 
GDimension getSize() const
 Returns a GDimension structure storing the current onscreen width and height of this interactor in pixels. More...
 
string getType() const
 Returns a string representing the class name of this interactor, such as "GButton" or "GCheckBox". More...
 
QWidget*  getWidget() const
 Returns a direct pointer to the internal Qt widget being wrapped by this interactor. More...
 
double getWidth() const
 Returns the current onscreen width of this interactor in pixels. More...
 
double getX() const
 Returns the x-coordinate of the top-left pixel of this interactor within its onscreen window. More...
 
double getY() const
 Returns the y-coordinate of the top-left pixel of this interactor within its onscreen window. More...
 
bool hasSelectedCell() const
 Returns true if a cell is currently selected. More...
 
int height() const
 Returns the number of rows in the table. More...
 
bool inBounds(int row, int column) const
 Returns true if the given 0-based row/column index is within the bounds of the table. More...
 
bool inBounds(double x, double y) const
 Returns true if the given x/y pixel is within the bounds of this interactor. More...
 
bool isEditable() const
 Returns whether cells of the table can be edited. More...
 
bool isEnabled() const
 Returns true if this interactor is currently enabled. More...
 
bool isVisible() const
 Returns true if the interactor is visible on the screen. More...
 
int numCols() const
 Returns the number of columns in the table. More...
 
int numRows() const
 Returns the number of rows in the table. More...
 
void removeTableListener()
 Removes the table listener from this button so that it will no longer call it when events occur. More...
 
void requestFocus()
 Transfers keyboard focus to this interactor. More...
 
void resize(int numRows, int numCols)
 Modifies the table to have the given number of rows and columns. More...
 
bool rowColumnHeadersVisible() const
 Returns whether row and column headers are shown in the table. More...
 
void select(int row, int column)
 Sets the given cell to become currently selected, replacing any previous selection. More...
 
void set(int row, int column, string text)
 Modifies the value in the given cell to store the given text. More...
 
void setAccelerator(string accelerator)
 Sets an accelerator hotkey for this interactor, such as "Ctrl-S". More...
 
void setActionCommand(string actionCommand)
 Sets the action command for this interactor. More...
 
void setBackground(int rgb)
 Sets the background color that appears behind each cell. More...
 
void setBackground(string color)
 Sets the background color that appears behind each cell. More...
 
void setBounds(double x, double y, double width, double height)
 Sets the size and location of the widget. More...
 
void setBounds(const GRectangle &size)
 Sets the size and location of the widget. More...
 
void setCellAlignment(int row, int column, HorizontalAlignment alignment)
 Sets the horizontal alignment of the given cell. More...
 
void setCellBackground(int row, int column, int color)
 Sets the background color of the given cell to the given color. More...
 
void setCellBackground(int row, int column, string color)
 Sets the background color of the given cell to the given color. More...
 
void setCellFont(int row, int column, string font)
 Sets the text font of the given cell to the given RGB color. More...
 
void setCellForeground(int row, int column, int color)
 Sets the foreground/text color of the given cell to the given color. More...
 
void setCellForeground(int row, int column, string color)
 Sets the foreground/text color of the given cell to the given color. More...
 
void setColor(int rgb)
 Sets the color used for the text of each cell. More...
 
void setColor(string color)
 Sets the color used for the text of each cell. More...
 
void setColumnAlignment(int column, HorizontalAlignment alignment)
 Sets the horizontal alignment of the given column. More...
 
void setColumnBackground(int column, int color)
 Sets the background color of the given column to the given color. More...
 
void setColumnBackground(int column, string color)
 Sets the background color of the given column to the given color. More...
 
void setColumnFont(int column, string font)
 Sets the text font of the given column to the given RGB color. More...
 
void setColumnForeground(int column, int color)
 Sets the foreground/text color of the given column to the given color. More...
 
void setColumnForeground(int column, string color)
 Sets the foreground/text color of the given column to the given color. More...
 
void setColumnHeaderStyle(ColumnHeaderStyle style)
 Sets the column headers to use the given style. More...
 
void setColumnWidth(int column, double width)
 Sets the given column index to have the given width in pixels. More...
 
void setEditable(bool editable)
 Sets whether cells of the table can be edited. More...
 
void setEditorValue(int row, int column, string text)
 Modifies the value in the cell that is currently being edited to store the given text. More...
 
void setEnabled(bool value)
 Sets whether this interactor is currently enabled. More...
 
void setEventsEnabled(bool eventsEnabled)
 Sets whether the object is currently allowing itself to fire events. More...
 
void setFont(const QFont &font)
 Sets the font used to display each cell's text. More...
 
void setFont(string font)
 Sets the font used to display each cell's text. More...
 
void setForeground(int rgb)
 Sets the color used for the text of each cell. More...
 
void setForeground(string color)
 Sets the color used for the text of each cell. More...
 
void setHeight(double height)
 Sets the onscreen height of the interactor in pixels. More...
 
void setHorizontalAlignment(HorizontalAlignment alignment)
 Sets the horizontal alignment of the text in all cells in the table. More...
 
void setIcon(string filename, bool retainIconSize=true)
 Sets the file name of the icon associated with this interactor, or an empty string if no icon has been set. More...
 
void setLocation(double x, double y)
 Sets the onscreen x/y-coordinate of the top-left corner of the interactor relative to its window. More...
 
void setMinimumSize(double width, double height)
 Sets the minimum size in pixels that this interactor will permit itself to be resized to. More...
 
void setMinimumSize(const GDimension &size)
 Sets the minimum size in pixels that this interactor will permit itself to be resized to. More...
 
void setName(string name)
 Sets a string representing a unique name for this interactor. More...
 
void setPreferredHeight(double height)
 Sets the height in pixels that this interactor would prefer to be. More...
 
void setPreferredSize(double width, double height)
 Sets the width and height in pixels that this interactor would prefer to be. More...
 
void setPreferredSize(const GDimension &size)
 Sets the size in pixels that this interactor would prefer to be. More...
 
void setPreferredWidth(double width)
 Sets the width in pixels that this interactor would prefer to be. More...
 
void setRowAlignment(int row, HorizontalAlignment alignment)
 Sets the horizontal alignment of the given row. More...
 
void setRowBackground(int row, int rgb)
 Sets the background color of the given row to the given RGB color. More...
 
void setRowBackground(int row, string color)
 Sets the background color of the given row to the given color. More...
 
void setRowColumnHeadersVisible(bool visible)
 Sets whether row and column headers should be shown in the table. More...
 
void setRowFont(int row, string font)
 Sets the text font of the given row to the given font. More...
 
void setRowForeground(int row, int rgb)
 Sets the foreground/text color of the given row to the given color. More...
 
void setRowForeground(int row, string color)
 Sets the foreground/text color of the given row to the given color. More...
 
void setRowHeight(int row, double width)
 Sets the given row index to have the given height in pixels. More...
 
void setSelectedCellValue(string text)
 Sets the text in the cell that is currently selected. More...
 
void setSize(double width, double height)
 Sets the onscreen width and height of the interactor in pixels. More...
 
void setSize(const GDimension &size)
 Sets the onscreen width and height of the interactor in pixels. More...
 
void setTableListener(GEventListener func)
 Sets the given function to be called when events occur in this table. More...
 
void setTableListener(GEventListenerVoid func)
 Sets the given function to be called when events occur in this table. More...
 
void setTooltip(string tooltipText)
 Sets a "tooltip" that will appear if the user hovers their mouse over the interactor. More...
 
void setVisible(bool visible)
 Returns true if the interactor is visible on the screen. More...
 
void setWidth(double width)
 Sets the onscreen width of the interactor in pixels. More...
 
void setX(double x)
 Sets the onscreen x-coordinate of the top-left corner of the interactor relative to its window. More...
 
void setY(double y)
 Sets the onscreen y-coordinate of the top-left corner of the interactor relative to its window. More...
 
string toString() const
 Returns a string representation of this observable object's state. More...
 
int width() const
 Returns the number of columns in the table. More...
 

Protected Member Functions

void clearEventListeners()
 Removes all event listeners from this object. More...
 
void ensureThreadSafety(string memberName="")
 Ensures that we are currently in the Qt GUI thread. More...
 
void fireEvent(GEvent &event)
 Sends out the given event to any attached listeners. More...
 
void fireGEvent(QEvent *event, EventType eventType, string eventName)
 Creates an event of the given type, then sends it out to any attached listeners. More...
 
void fireGEvent(QCloseEvent *event, EventType eventType, string eventName)
 Creates an event of the given type, then sends it out to any attached listeners. More...
 
void fireGEvent(QKeyEvent *event, EventType eventType, string eventName)
 Creates an event of the given type, then sends it out to any attached listeners. More...
 
void fireGEvent(QMouseEvent *event, EventType eventType, string eventName, string actionCommand="")
 Creates an event of the given type, then sends it out to any attached listeners. More...
 
void fireGEvent(QResizeEvent *event, EventType eventType, string eventName)
 Creates an event of the given type, then sends it out to any attached listeners. More...
 
void fireGEvent(QTimerEvent *event, EventType eventType, string eventName)
 Creates an event of the given type, then sends it out to any attached listeners. More...
 
void fireGEvent(QWheelEvent *event, EventType eventType, string eventName)
 Creates an event of the given type, then sends it out to any attached listeners. More...
 
void fireGEvent(QWindowStateChangeEvent *event, EventType eventType, string eventName)
 Creates an event of the given type, then sends it out to any attached listeners. More...
 
bool hasEventListener(string eventName) const
 Returns true if the observable object has a listener for the given type of event. More...
 
bool isAcceptingEvent(int eventMask) const
 Returns true if the observable object has a listener for the given type of event. More...
 
bool isAcceptingEvent(const GEvent &event) const
 Returns true if the observable object has a listener for the given type of event. More...
 
bool isAcceptingEvent(string eventType) const
 Returns true if the observable object has a listener for the given type of event. More...
 
void removeEventListener(string eventName)
 Removes any event listener from this observable object that would respond to the given type of event, such as "click" or "keydown". More...
 
void removeEventListeners(std::initializer_list< string > eventNames)
 Removes any event listener from this observable object that would respond to the given types of events, such as "click" or "keydown". More...
 
void setEventListener(string eventName, GEventListener func)
 Adds an event listener from this observable object to respond to the given type of event, such as "click" or "keydown". More...
 
void setEventListener(string eventName, GEventListenerVoid func)
 Adds an event listener from this observable object to respond to the given type of event, such as "click" or "keydown". More...
 
void setEventListeners(std::initializer_list< string > eventNames, GEventListener func)
 Adds an event listener from this observable object to respond to the given types of events, such as "click" or "keydown". More...
 
void setEventListeners(std::initializer_list< string > eventNames, GEventListenerVoid func)
 Adds an event listener from this observable object to respond to the given types of events, such as "click" or "keydown". More...
 

Detailed Description

A GTable represents a graphical editable 2D table, like a mediocre facsimile of an Excel spreadsheet.

After creating a GTable, you can listen for table events to be notified when the user types a new value into a table cell by calling setTableListener.

An editable table has a semi-complex editing model where the user can begin modifying a cell by highlighting it and typing, which replaces the existing value, or by double-clicking it, which edits the existing value. You can also press F2 on a cell to edit it, equivalent to a double-click. During editing, you can press Esc to cancel editing, or Tab or Enter to complete editing and move to the next cell.

All row/column indexes in this class are 0-based.

Member Enumeration Documentation

◆ ColumnHeaderStyle

Styles of column header labels that can be shown.

The "Excel" style is to use column names A-Z, then AA-AZ, BA-BZ, ..., ZA-ZZ, then AAA, AAB, and so on. The "numeric" style is to use simple numbers like 1, 2, 3, ... The "none" style means not to use any column headers at all.

Enumerator
COLUMN_HEADER_NONE 
COLUMN_HEADER_EXCEL 
COLUMN_HEADER_NUMERIC 

◆ TextPosition

enum TextPosition
inherited

The places where an interactor can place its text relative to its icon.

Enumerator
TEXT_BESIDE_ICON 
TEXT_UNDER_ICON 
TEXT_ONLY 

Constructor & Destructor Documentation

◆ GTable()

GTable ( int  rows = 0,
int  columns = 0,
double  width = 0,
double  height = 0,
QWidget*   parent = nullptr 
)

Constructs a new table with the given dimensions and (optional) size.

If x, y, width, or height are omitted, they are set automatically by the layout manager of the GWindow into which the table is placed. This is often what you want.

Exceptions
ErrorExceptionif the number of rows, columns, width, or height is negative.

◆ ~GTable()

~GTable ( )
virtual

Member Function Documentation

◆ addActionListener()

void addActionListener ( )
virtualinherited

Adds an event listener to be notified when this interactor is clicked or generally interacted with.

Deprecated:
does nothing; use setActionListener instead

◆ autofitColumnWidths()

void autofitColumnWidths ( )
virtual

Changes widths of all columns to be perfectly large enough to fit their contents.

◆ clear()

void clear ( )
virtual

Sets all cells in the table to store an empty string value.

◆ clearCell()

void clearCell ( int  row,
int  column 
)
virtual

Sets the given cell to store an empty string value.

Exceptions
ErrorExceptionif the given row/column index is out of bounds

◆ clearCellFormatting()

void clearCellFormatting ( int  row,
int  column 
)
virtual

Removes any formatting that has been applied to the given cell.

◆ clearEventListeners()

void clearEventListeners ( )
protectedvirtualinherited

Removes all event listeners from this object.

◆ clearFormatting()

void clearFormatting ( )
virtual

Removes any per-cell/column/row formatting that has been applied to the table.

◆ clearSelection()

void clearSelection ( )
virtual

Deselects any currently selected cell.

If no cell is selected, calling this has no effect.

◆ ensureThreadSafety()

void ensureThreadSafety ( string   memberName = "")
protectedvirtualinherited

Ensures that we are currently in the Qt GUI thread.

◆ eventsEnabled()

bool eventsEnabled ( ) const
virtualinherited

Returns true if this interactor is currently accepting events.

Initially true. An interactor must be visible and added to an onscreen window to receive events.

Reimplemented from GObservable.

◆ fill()

void fill ( string   text)
virtual

Sets every cell in the table to have the given value.

◆ fireEvent()

void fireEvent ( GEvent event)
protectedvirtualinherited

Sends out the given event to any attached listeners.

◆ fireGEvent() [1/8]

void fireGEvent ( QEvent *  event,
EventType  eventType,
string   eventName 
)
protectedvirtualinherited

Creates an event of the given type, then sends it out to any attached listeners.

◆ fireGEvent() [2/8]

void fireGEvent ( QCloseEvent *  event,
EventType  eventType,
string   eventName 
)
protectedvirtualinherited

Creates an event of the given type, then sends it out to any attached listeners.

◆ fireGEvent() [3/8]

void fireGEvent ( QKeyEvent *  event,
EventType  eventType,
string   eventName 
)
protectedvirtualinherited

Creates an event of the given type, then sends it out to any attached listeners.

◆ fireGEvent() [4/8]

void fireGEvent ( QMouseEvent *  event,
EventType  eventType,
string   eventName,
string   actionCommand = "" 
)
protectedvirtualinherited

Creates an event of the given type, then sends it out to any attached listeners.

◆ fireGEvent() [5/8]

void fireGEvent ( QResizeEvent *  event,
EventType  eventType,
string   eventName 
)
protectedvirtualinherited

Creates an event of the given type, then sends it out to any attached listeners.

◆ fireGEvent() [6/8]

void fireGEvent ( QTimerEvent *  event,
EventType  eventType,
string   eventName 
)
protectedvirtualinherited

Creates an event of the given type, then sends it out to any attached listeners.

◆ fireGEvent() [7/8]

void fireGEvent ( QWheelEvent *  event,
EventType  eventType,
string   eventName 
)
protectedvirtualinherited

Creates an event of the given type, then sends it out to any attached listeners.

◆ fireGEvent() [8/8]

void fireGEvent ( QWindowStateChangeEvent *  event,
EventType  eventType,
string   eventName 
)
protectedvirtualinherited

Creates an event of the given type, then sends it out to any attached listeners.

◆ get()

string get ( int  row,
int  column 
) const
virtual

Returns the text stored in the given cell.

Exceptions
ErrorExceptionif the given row or column are out of bounds

◆ getAccelerator()

string getAccelerator ( ) const
virtualinherited

Returns a string representing a hotkey for this interactor, or an empty string if no accelerator has been set.

Returns
an accelerator such as "Ctrl-S"

Reimplemented in GButton.

◆ getActionCommand()

string getActionCommand ( ) const
virtualinherited

Returns an action command for this interactor, which is a semi-unique string you can use to identify it when events occur.

For example, for buttons, the default action command is the button's text.

Reimplemented in GChooser, GRadioButton, GCheckBox, and GButton.

◆ getBackground()

string getBackground ( ) const
virtualinherited

Returns the background color of the interactor as a string.

Returns
a string such as "blue" or "#7700ff"

Reimplemented in GCanvas.

◆ getBackgroundInt()

int getBackgroundInt ( ) const
virtualinherited

Returns the background color of the interactor as an RGB integer.

Returns
an integer such as 0x7700ff

Reimplemented in GCanvas.

◆ getBounds()

GRectangle getBounds ( ) const
virtualinherited

Returns a rectangle representing the x/y position and size of this interactor.

◆ getColor()

string getColor ( ) const
virtualinherited

Returns the foreground/text color of the interactor as a string.

Equivalent to getForeground.

Returns
a string such as "blue" or "#7700ff"

◆ getColorInt()

int getColorInt ( ) const
virtualinherited

Returns the foreground/text color of the interactor as an RGB integer.

Equivalent to getForegroundInt.

Returns
an integer such as 0x7700ff

◆ getColumnHeaderStyle()

GTable::ColumnHeaderStyle getColumnHeaderStyle ( ) const
virtual

Returns the column headers to use the given style.

Default is none, but can be set to Excel style or numeric instead.

◆ getColumnWidth()

double getColumnWidth ( int  column) const
virtual

Returns the width of the given column index in pixels.

When a table is constructed, all columns initially have equal width.

Exceptions
ErrorExceptionif the given column index is out of bounds

◆ getContainer()

GContainer * getContainer ( ) const
virtualinherited

Returns a pointer to the onscreen container holding this interactor.

When an interactor is created, its container is initially null. This will become non-null automatically if you add the interactor to a window or other layout container. Interactors must be added to a container or window to receive events or to become visible on the screen.

Returns
the container, or nullptr if interactor has not yet been added to any container

◆ getFont()

string getFont ( ) const
virtualinherited

Returns the font of this interactor's text as a font string such as "Helvetica-12-Bold".

Returns
a font string such as "Helvetica-12-Bold"

Reimplemented in GCanvas.

◆ getForeground()

string getForeground ( ) const
virtualinherited

Returns the foreground/text color of the interactor as a string.

Equivalent to getColor.

Returns
a string such as "blue" or "#7700ff"

◆ getForegroundInt()

int getForegroundInt ( ) const
virtualinherited

Returns the foreground/text color of the interactor as an RGB integer.

Equivalent to getColorInt.

Returns
an integer such as 0x7700ff

◆ getHeight()

double getHeight ( ) const
virtualinherited

Returns the current onscreen height of this interactor in pixels.

◆ getIcon()

string getIcon ( ) const
virtualinherited

Returns the file name of the icon associated with this interactor, or an empty string if no icon has been set.

Not all types of interactors support icons.

◆ getID()

int getID ( ) const
virtualinherited

Returns a globally unique identifier for this interactor, which is set when the interactor is constructed.

These IDs can be useful for debugging to help identify interactors uniquely.

◆ getInternalWidget()

_Internal_QWidget* getInternalWidget ( ) const
virtual

Returns a direct pointer to the internal Qt widget being wrapped by this interactor.

This must be overridden by all interactor subclasses. Students/clients generally should not need to call this.

Implements GInteractor.

◆ getLocation()

GPoint getLocation ( ) const
virtualinherited

Returns an (x, y) point representing the onscreen location of the top-left corner of this interactor within its containing window.

◆ getMinimumHeight()

double getMinimumHeight ( ) const
virtualinherited

Returns the minimum height in pixels that this interactor will permit itself to be resized to.

◆ getMinimumSize()

GDimension getMinimumSize ( ) const
virtualinherited

Returns a GDimension structure representing the minimum size in pixels that this interactor will permit itself to be resized to.

◆ getMinimumWidth()

double getMinimumWidth ( ) const
virtualinherited

Returns the minimum width in pixels that this interactor will permit itself to be resized to.

◆ getName()

string getName ( ) const
virtualinherited

Returns a string representing a unique name for this interactor.

The default name string uses the interactor's type and its ID to make a string like "GButton_14", but you can override this by calling setName.

Returns
a string such as "GButton_14"

◆ getPreferredHeight()

double getPreferredHeight ( ) const
virtualinherited

Returns the height in pixels that this interactor would prefer to be, which would exactly fit its contents with no stretching or scrollbars.

◆ getPreferredSize()

GDimension getPreferredSize ( ) const
virtualinherited

Returns a GDimension structure storing the width and height in pixels that this interactor would prefer to be, which would exactly fit its contents with no stretching or scrollbars.

Reimplemented in GContainer.

◆ getPreferredWidth()

double getPreferredWidth ( ) const
virtualinherited

Returns the height in pixels that this interactor would prefer to be, which would exactly fit its contents with no stretching or scrollbars.

◆ getRowHeight()

double getRowHeight ( int  row) const
virtual

Returns the height of the given row index in pixels.

When a table is constructed, all rows initially have equal height.

Exceptions
ErrorExceptionif the given row index is out of bounds

◆ getSelectedCell() [1/2]

GridLocation getSelectedCell ( ) const
virtual

Returns the row and column of the cell that is currently selected.

Sets both row and column to -1 if no cell is currently selected.

◆ getSelectedCell() [2/2]

void getSelectedCell ( int &  row,
int &  column 
) const
virtual

Returns the row and column of the cell that is currently selected by filling the given reference parameters.

Sets both row and column to -1 if no cell is currently selected.

◆ getSelectedCellValue()

string getSelectedCellValue ( ) const
virtual

Returns the text in the cell that is currently selected.

If no cell is currently selected, returns an empty string.

◆ getSelectedColumn()

int getSelectedColumn ( ) const
virtual

Returns the column of the cell that is currently selected, or -1 if no cell is currently selected.

◆ getSelectedRow()

int getSelectedRow ( ) const
virtual

Returns the row of the cell that is currently selected, or -1 if no cell is currently selected.

◆ getSize()

GDimension getSize ( ) const
virtualinherited

Returns a GDimension structure storing the current onscreen width and height of this interactor in pixels.

◆ getType()

string getType ( ) const
virtual

Returns a string representing the class name of this interactor, such as "GButton" or "GCheckBox".

All subclasses of GInteractor must implement this method.

Returns
a string such as "GCheckBox"

Implements GInteractor.

◆ getWidget()

QWidget* getWidget ( ) const
virtual

Returns a direct pointer to the internal Qt widget being wrapped by this interactor.

This must be overridden by all interactor subclasses. Students/clients generally should not need to call this.

Implements GInteractor.

◆ getWidth()

double getWidth ( ) const
virtualinherited

Returns the current onscreen width of this interactor in pixels.

◆ getX()

double getX ( ) const
virtualinherited

Returns the x-coordinate of the top-left pixel of this interactor within its onscreen window.

◆ getY()

double getY ( ) const
virtualinherited

Returns the y-coordinate of the top-left pixel of this interactor within its onscreen window.

◆ hasEventListener()

bool hasEventListener ( string   eventName) const
protectedvirtualinherited

Returns true if the observable object has a listener for the given type of event.

◆ hasSelectedCell()

bool hasSelectedCell ( ) const
virtual

Returns true if a cell is currently selected.

◆ height()

int height ( ) const
virtual

Returns the number of rows in the table.

Equivalent to numRows().

◆ inBounds() [1/2]

bool inBounds ( int  row,
int  column 
) const
virtual

Returns true if the given 0-based row/column index is within the bounds of the table.

In other words, whether the index is between (0, 0) and (numRows-1, numCols-1) inclusive.

Reimplemented from GInteractor.

◆ inBounds() [2/2]

bool inBounds ( double  x,
double  y 
) const
virtualinherited

Returns true if the given x/y pixel is within the bounds of this interactor.

◆ isAcceptingEvent() [1/3]

bool isAcceptingEvent ( int  eventMask) const
protectedvirtualinherited

Returns true if the observable object has a listener for the given type of event.

See gevent.h for event types and masks.

◆ isAcceptingEvent() [2/3]

bool isAcceptingEvent ( const GEvent event) const
protectedvirtualinherited

Returns true if the observable object has a listener for the given type of event.

◆ isAcceptingEvent() [3/3]

bool isAcceptingEvent ( string   eventType) const
protectedvirtualinherited

Returns true if the observable object has a listener for the given type of event.

◆ isEditable()

bool isEditable ( ) const
virtual

Returns whether cells of the table can be edited.

Defaults to true when a table is initially created.

◆ isEnabled()

bool isEnabled ( ) const
virtualinherited

Returns true if this interactor is currently enabled.

Most interactors begin as enabled but can be disabled to stop them from being able to be clicked on or otherwise emit events.

◆ isVisible()

bool isVisible ( ) const
virtualinherited

Returns true if the interactor is visible on the screen.

Interactors will not be visible until they are added to an onscreen window or container.

◆ numCols()

int numCols ( ) const
virtual

Returns the number of columns in the table.

Equivalent to width().

◆ numRows()

int numRows ( ) const
virtual

Returns the number of rows in the table.

Equivalent to height().

◆ removeEventListener()

void removeEventListener ( string   eventName)
protectedvirtualinherited

Removes any event listener from this observable object that would respond to the given type of event, such as "click" or "keydown".

◆ removeEventListeners()

void removeEventListeners ( std::initializer_list< string >  eventNames)
protectedvirtualinherited

Removes any event listener from this observable object that would respond to the given types of events, such as "click" or "keydown".

◆ removeTableListener()

void removeTableListener ( )
virtual

Removes the table listener from this button so that it will no longer call it when events occur.

◆ requestFocus()

void requestFocus ( )
virtual

Transfers keyboard focus to this interactor.

Reimplemented from GInteractor.

◆ resize()

void resize ( int  numRows,
int  numCols 
)
virtual

Modifies the table to have the given number of rows and columns.

Any existing data is retained, and any new cells are empty.

Exceptions
ErrorExceptionif numRows or numCols is negative

◆ rowColumnHeadersVisible()

bool rowColumnHeadersVisible ( ) const
virtual

Returns whether row and column headers are shown in the table.

Initially false.

◆ select()

void select ( int  row,
int  column 
)
virtual

Sets the given cell to become currently selected, replacing any previous selection.

Note that the user can click a different cell to select it afterward. To indicate that you do not want to select any cell, call clearSelection.

Exceptions
ErrorExceptionif the given row or column are out of bounds

◆ set()

void set ( int  row,
int  column,
string   text 
)
virtual

Modifies the value in the given cell to store the given text.

Exceptions
ErrorExceptionif the given row or column are out of bounds

◆ setAccelerator()

void setAccelerator ( string   accelerator)
virtualinherited

Sets an accelerator hotkey for this interactor, such as "Ctrl-S".

Not all interactor types support accelerators.

Parameters
acceleratora hotkey such as "Ctrl-S"

Reimplemented in GButton.

◆ setActionCommand()

void setActionCommand ( string   actionCommand)
virtualinherited

Sets the action command for this interactor.

The action command is meant to be a semi-unique string you can use to identify the interactor when events occur. For example, for buttons, the default action command is the button's text, but you can change it to a different string if you prefer. The main usage of this feature is if you want to use the same function as an event listener for many interactors, you can use the action command to help distinguish which interactor generates each event.

◆ setBackground() [1/2]

void setBackground ( int  rgb)
virtual

Sets the background color that appears behind each cell.

See gcolor.h for more detail about colors.

Reimplemented from GInteractor.

◆ setBackground() [2/2]

void setBackground ( string   color)
virtual

Sets the background color that appears behind each cell.

See gcolor.h for more detail about colors.

Reimplemented from GInteractor.

◆ setBounds() [1/2]

void setBounds ( double  x,
double  y,
double  width,
double  height 
)
virtualinherited

Sets the size and location of the widget.

In general you should avoid explicitly sizing and positioning widgets in this way; instead, use containers and regions to help you lay out widgets at the proper sizes.

Reimplemented in GLabel.

◆ setBounds() [2/2]

void setBounds ( const GRectangle size)
virtualinherited

Sets the size and location of the widget.

In general you should avoid explicitly sizing and positioning widgets in this way; instead, use containers and regions to help you lay out widgets at the proper sizes.

Reimplemented in GLabel.

◆ setCellAlignment()

void setCellAlignment ( int  row,
int  column,
HorizontalAlignment  alignment 
)
virtual

Sets the horizontal alignment of the given cell.

The row/column is specified by a 0-based row/column index from the top/left of the table.

Exceptions
ErrorExceptionif the given row/column index is out of bounds

◆ setCellBackground() [1/2]

void setCellBackground ( int  row,
int  column,
int  color 
)
virtual

Sets the background color of the given cell to the given color.

The row/column is specified by a 0-based row/column index from the top/left of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given row/column index is out of bounds

◆ setCellBackground() [2/2]

void setCellBackground ( int  row,
int  column,
string   color 
)
virtual

Sets the background color of the given cell to the given color.

The row/column is specified by a 0-based row/column index from the top/left of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given row/column index is out of bounds

◆ setCellFont()

void setCellFont ( int  row,
int  column,
string   font 
)
virtual

Sets the text font of the given cell to the given RGB color.

The row/column is specified by a 0-based row/column index from the top/left of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given row/column index is out of bounds

◆ setCellForeground() [1/2]

void setCellForeground ( int  row,
int  column,
int  color 
)
virtual

Sets the foreground/text color of the given cell to the given color.

The row/column is specified by a 0-based row/column index from the top/left of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given row/column index is out of bounds

◆ setCellForeground() [2/2]

void setCellForeground ( int  row,
int  column,
string   color 
)
virtual

Sets the foreground/text color of the given cell to the given color.

The row/column is specified by a 0-based row/column index from the top/left of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given row/column index is out of bounds

◆ setColor() [1/2]

void setColor ( int  rgb)
virtual

Sets the color used for the text of each cell.

Equivalent to setForeground. See gcolor.h for more detail about colors.

Reimplemented from GInteractor.

◆ setColor() [2/2]

void setColor ( string   color)
virtual

Sets the color used for the text of each cell.

Equivalent to setForeground. See gcolor.h for more detail about colors.

Reimplemented from GInteractor.

◆ setColumnAlignment()

void setColumnAlignment ( int  column,
HorizontalAlignment  alignment 
)
virtual

Sets the horizontal alignment of the given column.

The column is specified by a 0-based column index from the left of the table.

Exceptions
ErrorExceptionif the given column index is out of bounds

◆ setColumnBackground() [1/2]

void setColumnBackground ( int  column,
int  color 
)
virtual

Sets the background color of the given column to the given color.

The column is specified by a 0-based column index from the left of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given column index is out of bounds

◆ setColumnBackground() [2/2]

void setColumnBackground ( int  column,
string   color 
)
virtual

Sets the background color of the given column to the given color.

The column is specified by a 0-based column index from the left of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given column index is out of bounds

◆ setColumnFont()

void setColumnFont ( int  column,
string   font 
)
virtual

Sets the text font of the given column to the given RGB color.

The column is specified by a 0-based column index from the left of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given column index is out of bounds

◆ setColumnForeground() [1/2]

void setColumnForeground ( int  column,
int  color 
)
virtual

Sets the foreground/text color of the given column to the given color.

The column is specified by a 0-based column index from the left of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given column index is out of bounds

◆ setColumnForeground() [2/2]

void setColumnForeground ( int  column,
string   color 
)
virtual

Sets the foreground/text color of the given column to the given color.

The column is specified by a 0-based column index from the left of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given column index is out of bounds

◆ setColumnHeaderStyle()

void setColumnHeaderStyle ( GTable::ColumnHeaderStyle  style)
virtual

Sets the column headers to use the given style.

Default is none, but can be set to Excel style or numeric instead.

◆ setColumnWidth()

void setColumnWidth ( int  column,
double  width 
)
virtual

Sets the given column index to have the given width in pixels.

Exceptions
ErrorExceptionif the given column index is out of bounds or if the width is negative

◆ setEditable()

void setEditable ( bool  editable)
virtual

Sets whether cells of the table can be edited.

Initially true.

◆ setEditorValue()

void setEditorValue ( int  row,
int  column,
string   text 
)
virtual

Modifies the value in the cell that is currently being edited to store the given text.

This does not modify the value in the table cell but merely the value in the editor widget.

Exceptions
ErrorExceptionif the given row or column are out of bounds

◆ setEnabled()

void setEnabled ( bool  value)
virtualinherited

Sets whether this interactor is currently enabled.

Most interactors begin as enabled but can be disabled to stop them from being able to be clicked on or otherwise emit events.

◆ setEventListener() [1/2]

void setEventListener ( string   eventName,
GEventListener  func 
)
protectedvirtualinherited

Adds an event listener from this observable object to respond to the given type of event, such as "click" or "keydown".

Any prior listener for that type of event is replaced.

◆ setEventListener() [2/2]

void setEventListener ( string   eventName,
GEventListenerVoid  func 
)
protectedvirtualinherited

Adds an event listener from this observable object to respond to the given type of event, such as "click" or "keydown".

Any prior listener for that type of event is replaced.

◆ setEventListeners() [1/2]

void setEventListeners ( std::initializer_list< string >  eventNames,
GEventListener  func 
)
protectedvirtualinherited

Adds an event listener from this observable object to respond to the given types of events, such as "click" or "keydown".

Any prior listener for those types of event are replaced.

◆ setEventListeners() [2/2]

void setEventListeners ( std::initializer_list< string >  eventNames,
GEventListenerVoid  func 
)
protectedvirtualinherited

Adds an event listener from this observable object to respond to the given types of events, such as "click" or "keydown".

Any prior listener for those types of event are replaced.

◆ setEventsEnabled()

void setEventsEnabled ( bool  eventsEnabled)
virtualinherited

Sets whether the object is currently allowing itself to fire events.

Initially this is true.

◆ setFont() [1/2]

void setFont ( const QFont &  font)
virtual

Sets the font used to display each cell's text.

Reimplemented from GInteractor.

◆ setFont() [2/2]

void setFont ( string   font)
virtual

Sets the font used to display each cell's text.

See gfont.h for more detail about fonts.

Reimplemented from GInteractor.

◆ setForeground() [1/2]

void setForeground ( int  rgb)
virtual

Sets the color used for the text of each cell.

Equivalent to setColor. See gcolor.h for more detail about colors.

Reimplemented from GInteractor.

◆ setForeground() [2/2]

void setForeground ( string   color)
virtual

Sets the color used for the text of each cell.

Equivalent to setColor. See gcolor.h for more detail about colors.

Reimplemented from GInteractor.

◆ setHeight()

void setHeight ( double  height)
virtualinherited

Sets the onscreen height of the interactor in pixels.

Exceptions
ErrorExceptionif height is negative

Reimplemented in GLabel.

◆ setHorizontalAlignment()

void setHorizontalAlignment ( HorizontalAlignment  alignment)
virtual

Sets the horizontal alignment of the text in all cells in the table.

The alignment can be LEFT, CENTER, or RIGHT and is initially LEFT.

◆ setIcon()

void setIcon ( string   filename,
bool  retainIconSize = true 
)
virtualinherited

Sets the file name of the icon associated with this interactor, or an empty string if no icon has been set.

Not all types of interactors support icons.

Parameters
filenameicon file path to use
retainIconSizetrue if icon should stay at its existing pixel size (default), or false if it should be resized to fit the interactor

Reimplemented in GLabel, and GButton.

◆ setLocation()

void setLocation ( double  x,
double  y 
)
virtualinherited

Sets the onscreen x/y-coordinate of the top-left corner of the interactor relative to its window.

Generally clients should not call this and should instead use containers and layout regions to position interactors.

Reimplemented in GLabel.

◆ setMinimumSize() [1/2]

void setMinimumSize ( double  width,
double  height 
)
virtualinherited

Sets the minimum size in pixels that this interactor will permit itself to be resized to.

Exceptions
ErrorExceptionif width or height is negative

◆ setMinimumSize() [2/2]

void setMinimumSize ( const GDimension size)
virtualinherited

Sets the minimum size in pixels that this interactor will permit itself to be resized to.

Exceptions
ErrorExceptionif width or height is negative

◆ setName()

void setName ( string   name)
virtualinherited

Sets a string representing a unique name for this interactor.

The default name string uses the interactor's type and its ID to make a string like "GButton_14", but you can override this by calling setName.

Parameters
namea string such as "GButton_14"

◆ setPreferredHeight()

void setPreferredHeight ( double  height)
virtualinherited

Sets the height in pixels that this interactor would prefer to be.

Normally clients do not need to call this method; the interactor can figure out its own preferred size. But calling it can help you to hint to the container/layout system if you want a given interactor to "prefer" to make itself larger or smaller for the purposes of your particular program.

◆ setPreferredSize() [1/2]

void setPreferredSize ( double  width,
double  height 
)
virtualinherited

Sets the width and height in pixels that this interactor would prefer to be.

Normally clients do not need to call this method; the interactor can figure out its own preferred size. But calling it can help you to hint to the container/layout system if you want a given interactor to "prefer" to make itself larger or smaller for the purposes of your particular program.

◆ setPreferredSize() [2/2]

void setPreferredSize ( const GDimension size)
virtualinherited

Sets the size in pixels that this interactor would prefer to be.

Normally clients do not need to call this method; the interactor can figure out its own preferred size.

◆ setPreferredWidth()

void setPreferredWidth ( double  width)
virtualinherited

Sets the width in pixels that this interactor would prefer to be.

Normally clients do not need to call this method; the interactor can figure out its own preferred size.

◆ setRowAlignment()

void setRowAlignment ( int  row,
HorizontalAlignment  alignment 
)
virtual

Sets the horizontal alignment of the given row.

The row is specified by a 0-based row index from the top of the table.

Exceptions
ErrorExceptionif the given row index is out of bounds

◆ setRowBackground() [1/2]

void setRowBackground ( int  row,
int  rgb 
)
virtual

Sets the background color of the given row to the given RGB color.

The row is specified by a 0-based row index from the top of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given row index is out of bounds

◆ setRowBackground() [2/2]

void setRowBackground ( int  row,
string   color 
)
virtual

Sets the background color of the given row to the given color.

The row is specified by a 0-based row index from the top of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given row index is out of bounds

◆ setRowColumnHeadersVisible()

void setRowColumnHeadersVisible ( bool  visible)
virtual

Sets whether row and column headers should be shown in the table.

Initially false.

◆ setRowFont()

void setRowFont ( int  row,
string   font 
)
virtual

Sets the text font of the given row to the given font.

The row is specified by a 0-based row index from the top of the table. See gfont.h for more detail about fonts.

Exceptions
ErrorExceptionif the given row index is out of bounds

◆ setRowForeground() [1/2]

void setRowForeground ( int  row,
int  rgb 
)
virtual

Sets the foreground/text color of the given row to the given color.

The row is specified by a 0-based row index from the top of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given row index is out of bounds

◆ setRowForeground() [2/2]

void setRowForeground ( int  row,
string   color 
)
virtual

Sets the foreground/text color of the given row to the given color.

The row is specified by a 0-based row index from the top of the table. See gcolor.h for more detail about colors.

Exceptions
ErrorExceptionif the given row index is out of bounds

◆ setRowHeight()

void setRowHeight ( int  row,
double  width 
)
virtual

Sets the given row index to have the given height in pixels.

Exceptions
ErrorExceptionif the given row index is out of bounds or if the height is negative

◆ setSelectedCellValue()

void setSelectedCellValue ( string   text)
virtual

Sets the text in the cell that is currently selected.

If no cell is currently selected, does nothing.

◆ setSize() [1/2]

void setSize ( double  width,
double  height 
)
virtualinherited

Sets the onscreen width and height of the interactor in pixels.

Exceptions
ErrorExceptionif width or height is negative

Reimplemented in GLabel.

◆ setSize() [2/2]

void setSize ( const GDimension size)
virtualinherited

Sets the onscreen width and height of the interactor in pixels.

Exceptions
ErrorExceptionif width or height is negative

Reimplemented in GLabel.

◆ setTableListener() [1/2]

void setTableListener ( GEventListener  func)
virtual

Sets the given function to be called when events occur in this table.

Any existing table listener will be replaced.

◆ setTableListener() [2/2]

void setTableListener ( GEventListenerVoid  func)
virtual

Sets the given function to be called when events occur in this table.

Any existing table listener will be replaced.

◆ setTooltip()

void setTooltip ( string   tooltipText)
virtualinherited

Sets a "tooltip" that will appear if the user hovers their mouse over the interactor.

Set an empty string to clear the tooltip.

◆ setVisible()

void setVisible ( bool  visible)
virtualinherited

Returns true if the interactor is visible on the screen.

Interactors will not be visible until they are added to an onscreen window or container. If you call setVisible on an interactor that is not in any onscreen container, it will have no effect.

Reimplemented in GLabel.

◆ setWidth()

void setWidth ( double  width)
virtualinherited

Sets the onscreen width of the interactor in pixels.

Exceptions
ErrorExceptionif width is negative

Reimplemented in GLabel.

◆ setX()

void setX ( double  x)
virtualinherited

Sets the onscreen x-coordinate of the top-left corner of the interactor relative to its window.

Generally clients should not call this and should instead use containers and layout regions to position interactors.

Reimplemented in GLabel.

◆ setY()

void setY ( double  y)
virtualinherited

Sets the onscreen y-coordinate of the top-left corner of the interactor relative to its window.

Generally clients should not call this and should instead use containers and layout regions to position interactors.

Reimplemented in GLabel.

◆ toString()

string toString ( ) const
virtualinherited

Returns a string representation of this observable object's state.

Primarily used for debugging purposes.

◆ width()

int width ( ) const
virtual

Returns the number of columns in the table.

Equivalent to numCols().