25 #ifndef JUCE_TABLEHEADERCOMPONENT_H_INCLUDED 26 #define JUCE_TABLEHEADERCOMPONENT_H_INCLUDED 64 appearsOnColumnMenu = 8,
70 defaultFlags = (visible | resizable | draggable | appearsOnColumnMenu | sortable),
73 notResizable = (visible | draggable | appearsOnColumnMenu | sortable),
76 notResizableOrSortable = (visible | draggable | appearsOnColumnMenu),
79 notSortable = (visible | resizable | draggable | appearsOnColumnMenu)
102 void addColumn (
const String& columnName,
105 int minimumWidth = 30,
106 int maximumWidth = -1,
107 int propertyFlags = defaultFlags,
108 int insertIndex = -1);
115 void removeColumn (
int columnIdToRemove);
122 void removeAllColumns();
131 int getNumColumns (
bool onlyCountVisibleColumns)
const;
136 String getColumnName (
int columnId)
const;
139 void setColumnName (
int columnId,
const String& newName);
146 void moveColumn (
int columnId,
int newVisibleIndex);
150 int getColumnWidth (
int columnId)
const;
156 void setColumnWidth (
int columnId,
int newWidth);
163 void setColumnVisible (
int columnId,
bool shouldBeVisible);
168 bool isColumnVisible (
int columnId)
const;
179 void setSortColumnId (
int columnId,
bool sortForwards);
185 int getSortColumnId()
const;
190 bool isSortedForwards()
const;
205 int getTotalWidth()
const;
214 int getIndexOfColumnId (
int columnId,
bool onlyCountVisibleColumns)
const;
223 int getColumnIdOfIndex (
int index,
bool onlyCountVisibleColumns)
const;
236 int getColumnIdAtX (
int xToFind)
const;
244 void setStretchToFitActive (
bool shouldStretchToFit);
249 bool isStretchToFitActive()
const;
257 void resizeAllColumnsToFit (
int targetTotalWidth);
269 void setPopupMenuActive (
bool hasMenu);
274 bool isPopupMenuActive()
const;
291 void restoreFromString (
const String& storedVersion);
329 int columnIdNowBeingDragged);
333 void addListener (
Listener* newListener);
336 void removeListener (
Listener* listenerToRemove);
344 virtual void columnClicked (
int columnId,
const ModifierKeys& mods);
355 virtual void addMenuItems (
PopupMenu& menu,
int columnIdClicked);
366 virtual void reactToMenuItem (
int menuReturnId,
int columnIdClicked);
376 virtual void drawTableHeaderColumn (
Graphics&,
const String& columnName,
int columnId,
377 int width,
int height,
378 bool isMouseOver,
bool isMouseDown,
int columnFlags) = 0;
385 void resized()
override;
402 virtual void showColumnChooserMenu (
int columnIdClicked);
408 int id, propertyFlags,
width, minimumWidth, maximumWidth;
409 double lastDeliberateWidth;
411 bool isVisible()
const;
419 bool columnsChanged, columnsResized, sortChanged, menuActive, stretchToFit;
420 int columnIdBeingResized, columnIdBeingDragged, initialColumnWidth;
421 int columnIdUnderMouse, draggingColumnOffset, draggingColumnOriginalIndex, lastDeliberateWidth;
423 ColumnInfo* getInfoForId (
int columnId)
const;
424 int visibleIndexToTotalIndex (
int visibleIndex)
const;
425 void sendColumnsChanged();
426 void handleAsyncUpdate()
override;
428 void endDrag (
int finalIndex);
429 int getResizeDraggerAt (
int mouseX)
const;
430 void updateColumnUnderMouse (
const MouseEvent&);
431 void setColumnUnderMouse (
int columnId);
432 void resizeColumnsToFit (
int firstColumnIndex,
int targetTotalWidth);
441 #endif // JUCE_TABLEHEADERCOMPONENT_H_INCLUDED Definition: juce_TableHeaderComponent.h:370
Definition: juce_MouseCursor.h:36
Definition: juce_ModifierKeys.h:38
Definition: juce_String.h:43
#define JUCE_API
Definition: juce_StandardHeader.h:139
Definition: juce_AsyncUpdater.h:39
Definition: juce_Rectangle.h:36
Definition: juce_Component.h:33
png_const_structrp png_const_inforp int png_fixed_point * width
Definition: juce_PNGLoader.cpp:2339
Definition: juce_Array.h:60
Definition: juce_OwnedArray.h:55
Definition: juce_GraphicsContext.h:42
virtual ~LookAndFeelMethods()
Definition: juce_TableHeaderComponent.h:372
Definition: juce_MouseEvent.h:36