Header indentation and *-style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29835 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -69,31 +69,31 @@ class BColumn;
|
||||
class BColumnListView;
|
||||
|
||||
enum LatchType {
|
||||
B_NO_LATCH,
|
||||
B_OPEN_LATCH,
|
||||
B_PRESSED_LATCH,
|
||||
B_CLOSED_LATCH
|
||||
B_NO_LATCH = 0,
|
||||
B_OPEN_LATCH = 1,
|
||||
B_PRESSED_LATCH = 2,
|
||||
B_CLOSED_LATCH = 3
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
B_ALLOW_COLUMN_NONE = 0,
|
||||
B_ALLOW_COLUMN_MOVE = 1,
|
||||
B_ALLOW_COLUMN_RESIZE = 2,
|
||||
B_ALLOW_COLUMN_POPUP = 4,
|
||||
B_ALLOW_COLUMN_REMOVE = 8,
|
||||
B_ALLOW_COLUMN_NONE = 0,
|
||||
B_ALLOW_COLUMN_MOVE = 1,
|
||||
B_ALLOW_COLUMN_RESIZE = 2,
|
||||
B_ALLOW_COLUMN_POPUP = 4,
|
||||
B_ALLOW_COLUMN_REMOVE = 8
|
||||
} column_flags;
|
||||
|
||||
enum ColumnListViewColor {
|
||||
B_COLOR_BACKGROUND = 0,
|
||||
B_COLOR_TEXT = 1,
|
||||
B_COLOR_ROW_DIVIDER = 2,
|
||||
B_COLOR_SELECTION = 3,
|
||||
B_COLOR_SELECTION_TEXT = 4,
|
||||
B_COLOR_NON_FOCUS_SELECTION = 5,
|
||||
B_COLOR_EDIT_BACKGROUND = 6,
|
||||
B_COLOR_EDIT_TEXT = 7,
|
||||
B_COLOR_HEADER_BACKGROUND = 8,
|
||||
B_COLOR_HEADER_TEXT = 9,
|
||||
B_COLOR_BACKGROUND = 0,
|
||||
B_COLOR_TEXT = 1,
|
||||
B_COLOR_ROW_DIVIDER = 2,
|
||||
B_COLOR_SELECTION = 3,
|
||||
B_COLOR_SELECTION_TEXT = 4,
|
||||
B_COLOR_NON_FOCUS_SELECTION = 5,
|
||||
B_COLOR_EDIT_BACKGROUND = 6,
|
||||
B_COLOR_EDIT_TEXT = 7,
|
||||
B_COLOR_HEADER_BACKGROUND = 8,
|
||||
B_COLOR_HEADER_TEXT = 9,
|
||||
B_COLOR_SEPARATOR_LINE = 10,
|
||||
B_COLOR_SEPARATOR_BORDER = 11,
|
||||
|
||||
@@ -101,18 +101,18 @@ enum ColumnListViewColor {
|
||||
};
|
||||
|
||||
enum ColumnListViewFont {
|
||||
B_FONT_ROW = 0,
|
||||
B_FONT_HEADER = 1,
|
||||
B_FONT_ROW = 0,
|
||||
B_FONT_HEADER = 1,
|
||||
|
||||
B_FONT_TOTAL = 2
|
||||
B_FONT_TOTAL = 2
|
||||
};
|
||||
|
||||
|
||||
// A single row/column intersection in the list.
|
||||
class BField {
|
||||
public:
|
||||
BField();
|
||||
virtual ~BField();
|
||||
BField();
|
||||
virtual ~BField();
|
||||
};
|
||||
|
||||
// A single line in the list. Each line contains a BField object
|
||||
@@ -121,32 +121,34 @@ public:
|
||||
// a parent of a row, using the AddRow() function in BColumnListView().
|
||||
class BRow {
|
||||
public:
|
||||
BRow(float height = 16.0);
|
||||
virtual ~BRow();
|
||||
virtual bool HasLatch() const;
|
||||
BRow(float height = 16.0);
|
||||
virtual ~BRow();
|
||||
virtual bool HasLatch() const;
|
||||
|
||||
int32 CountFields() const;
|
||||
BField* GetField(int32 logicalFieldIndex);
|
||||
const BField* GetField(int32 logicalFieldIndex) const;
|
||||
void SetField(BField* field, int32 logicalFieldIndex);
|
||||
int32 CountFields() const;
|
||||
BField* GetField(int32 logicalFieldIndex);
|
||||
const BField* GetField(int32 logicalFieldIndex) const;
|
||||
void SetField(BField* field,
|
||||
int32 logicalFieldIndex);
|
||||
|
||||
float Height() const;
|
||||
bool IsExpanded() const;
|
||||
float Height() const;
|
||||
bool IsExpanded() const;
|
||||
|
||||
private:
|
||||
// Blows up into the debugger if the validation fails.
|
||||
void ValidateFields() const;
|
||||
void ValidateField(const BField *field, int32 logicalFieldIndex) const;
|
||||
void ValidateFields() const;
|
||||
void ValidateField(const BField* field,
|
||||
int32 logicalFieldIndex) const;
|
||||
private:
|
||||
BList fFields;
|
||||
BPrivate::
|
||||
BRowContainer* fChildList;
|
||||
bool fIsExpanded;
|
||||
float fHeight;
|
||||
BRow* fNextSelected;
|
||||
BRow* fPrevSelected;
|
||||
BRow* fParent;
|
||||
BColumnListView* fList;
|
||||
BList fFields;
|
||||
BPrivate::
|
||||
BRowContainer* fChildList;
|
||||
bool fIsExpanded;
|
||||
float fHeight;
|
||||
BRow* fNextSelected;
|
||||
BRow* fPrevSelected;
|
||||
BRow* fParent;
|
||||
BColumnListView* fList;
|
||||
|
||||
|
||||
friend class BColumnListView;
|
||||
@@ -158,211 +160,231 @@ private:
|
||||
// how to display the BField objects that occur at its location in
|
||||
// each of the list's rows. See ColumnTypes.h for particular
|
||||
// subclasses of BField and BColumn that handle common data types.
|
||||
class BColumn
|
||||
{
|
||||
class BColumn {
|
||||
public:
|
||||
BColumn(float width,
|
||||
float minWidth,
|
||||
float maxWidth,
|
||||
alignment align = B_ALIGN_LEFT);
|
||||
virtual ~BColumn();
|
||||
BColumn(float width, float minWidth,
|
||||
float maxWidth,
|
||||
alignment align = B_ALIGN_LEFT);
|
||||
virtual ~BColumn();
|
||||
|
||||
float Width() const;
|
||||
void SetWidth(float width);
|
||||
float MinWidth() const;
|
||||
float MaxWidth() const;
|
||||
float Width() const;
|
||||
void SetWidth(float width);
|
||||
float MinWidth() const;
|
||||
float MaxWidth() const;
|
||||
|
||||
virtual void DrawTitle(BRect rect, BView *targetView);
|
||||
virtual void DrawField(BField *field, BRect rect, BView *targetView);
|
||||
virtual int CompareFields(BField *field1, BField *field2);
|
||||
virtual void DrawTitle(BRect rect, BView* targetView);
|
||||
virtual void DrawField(BField* field, BRect rect,
|
||||
BView* targetView);
|
||||
virtual int CompareFields(BField* field1, BField* field2);
|
||||
|
||||
virtual void MouseMoved(BColumnListView *parent, BRow *row, BField *field,
|
||||
BRect field_rect, BPoint point, uint32 buttons, int32 code);
|
||||
virtual void MouseDown(BColumnListView *parent, BRow *row, BField *field,
|
||||
BRect field_rect, BPoint point, uint32 buttons);
|
||||
virtual void MouseUp(BColumnListView *parent, BRow *row, BField *field);
|
||||
virtual void MouseMoved(BColumnListView* parent, BRow* row,
|
||||
BField* field, BRect fieldRect,
|
||||
BPoint point, uint32 buttons, int32 code);
|
||||
virtual void MouseDown(BColumnListView* parent, BRow* row,
|
||||
BField* field, BRect fieldRect,
|
||||
BPoint point, uint32 buttons);
|
||||
virtual void MouseUp(BColumnListView* parent, BRow* row,
|
||||
BField* field);
|
||||
|
||||
virtual void GetColumnName(BString* into) const;
|
||||
virtual float GetPreferredWidth(BField *field, BView *parent) const;
|
||||
virtual void GetColumnName(BString* into) const;
|
||||
virtual float GetPreferredWidth(BField* field,
|
||||
BView* parent) const;
|
||||
|
||||
bool IsVisible() const;
|
||||
void SetVisible(bool);
|
||||
bool IsVisible() const;
|
||||
void SetVisible(bool);
|
||||
|
||||
bool WantsEvents() const;
|
||||
void SetWantsEvents(bool);
|
||||
bool WantsEvents() const;
|
||||
void SetWantsEvents(bool);
|
||||
|
||||
bool ShowHeading() const;
|
||||
void SetShowHeading(bool);
|
||||
bool ShowHeading() const;
|
||||
void SetShowHeading(bool);
|
||||
|
||||
alignment Alignment() const;
|
||||
void SetAlignment(alignment);
|
||||
alignment Alignment() const;
|
||||
void SetAlignment(alignment);
|
||||
|
||||
int32 LogicalFieldNum() const;
|
||||
int32 LogicalFieldNum() const;
|
||||
|
||||
/*!
|
||||
\param field The BField derivative to validate.
|
||||
|
||||
Implement this function on your BColumn derivatives to validate BField derivatives
|
||||
that your BColumn will be drawing/manipulating.
|
||||
|
||||
This function will be called when BFields are added to the Column, use dynamic_cast<> to
|
||||
determine if it is of a kind that your BColumn know how ot handle. return false if it is not.
|
||||
|
||||
\note The debugger will be called if you return false from here with information about
|
||||
what type of BField and BColumn and the logical field index where it occured.
|
||||
|
||||
\note Do not call the inherited version of this, it just returns true;
|
||||
Implement this function on your BColumn derivatives to validate
|
||||
BField derivatives that your BColumn will be drawing/manipulating.
|
||||
|
||||
This function will be called when BFields are added to the Column,
|
||||
use dynamic_cast<> to determine if it is of a kind that your
|
||||
BColumn know how ot handle. return false if it is not.
|
||||
|
||||
\note The debugger will be called if you return false from here
|
||||
with information about what type of BField and BColumn and the
|
||||
logical field index where it occured.
|
||||
|
||||
\note Do not call the inherited version of this, it just returns
|
||||
true;
|
||||
*/
|
||||
virtual bool AcceptsField(const BField* field) const;
|
||||
virtual bool AcceptsField(const BField* field) const;
|
||||
|
||||
private:
|
||||
float fWidth;
|
||||
float fMinWidth;
|
||||
float fMaxWidth;
|
||||
bool fVisible;
|
||||
int32 fFieldID;
|
||||
BColumnListView *fList;
|
||||
bool fSortAscending;
|
||||
bool fWantsEvents;
|
||||
bool fShowHeading;
|
||||
alignment fAlignment;
|
||||
|
||||
friend class BPrivate::OutlineView;
|
||||
friend class BColumnListView;
|
||||
friend class BPrivate::TitleView;
|
||||
float fWidth;
|
||||
float fMinWidth;
|
||||
float fMaxWidth;
|
||||
bool fVisible;
|
||||
int32 fFieldID;
|
||||
BColumnListView* fList;
|
||||
bool fSortAscending;
|
||||
bool fWantsEvents;
|
||||
bool fShowHeading;
|
||||
alignment fAlignment;
|
||||
|
||||
friend class BPrivate::OutlineView;
|
||||
friend class BColumnListView;
|
||||
friend class BPrivate::TitleView;
|
||||
};
|
||||
|
||||
// The column list view class.
|
||||
class BColumnListView : public BView, public BInvoker
|
||||
{
|
||||
class BColumnListView : public BView, public BInvoker {
|
||||
public:
|
||||
BColumnListView(BRect rect,
|
||||
const char *name,
|
||||
uint32 resizingMode,
|
||||
uint32 drawFlags,
|
||||
border_style = B_NO_BORDER,
|
||||
bool showHorizontalScrollbar = true);
|
||||
virtual ~BColumnListView();
|
||||
BColumnListView(BRect rect,
|
||||
const char* name,
|
||||
uint32 resizingMode,
|
||||
uint32 drawFlags,
|
||||
border_style = B_NO_BORDER,
|
||||
bool showHorizontalScrollbar = true);
|
||||
virtual ~BColumnListView();
|
||||
|
||||
// Interaction
|
||||
virtual bool InitiateDrag(BPoint, bool wasSelected);
|
||||
virtual void MessageDropped(BMessage*, BPoint point);
|
||||
virtual void ExpandOrCollapse(BRow *row, bool expand);
|
||||
virtual status_t Invoke(BMessage *message = NULL);
|
||||
virtual void ItemInvoked();
|
||||
virtual void SetInvocationMessage(BMessage*);
|
||||
BMessage* InvocationMessage() const;
|
||||
uint32 InvocationCommand() const;
|
||||
BRow* FocusRow() const;
|
||||
void SetFocusRow(int32 index, bool select=false);
|
||||
void SetFocusRow(BRow *row, bool select=false);
|
||||
void SetMouseTrackingEnabled(bool);
|
||||
virtual bool InitiateDrag(BPoint, bool wasSelected);
|
||||
virtual void MessageDropped(BMessage*, BPoint point);
|
||||
virtual void ExpandOrCollapse(BRow* row, bool expand);
|
||||
virtual status_t Invoke(BMessage* message = NULL);
|
||||
virtual void ItemInvoked();
|
||||
virtual void SetInvocationMessage(BMessage* message);
|
||||
BMessage* InvocationMessage() const;
|
||||
uint32 InvocationCommand() const;
|
||||
BRow* FocusRow() const;
|
||||
void SetFocusRow(int32 index, bool select = false);
|
||||
void SetFocusRow(BRow* row, bool select = false);
|
||||
void SetMouseTrackingEnabled(bool);
|
||||
|
||||
// Selection
|
||||
list_view_type SelectionMode() const;
|
||||
void Deselect(BRow *row);
|
||||
void AddToSelection(BRow *row);
|
||||
void DeselectAll();
|
||||
BRow* CurrentSelection(BRow *lastSelected = 0) const;
|
||||
virtual void SelectionChanged();
|
||||
virtual void SetSelectionMessage(BMessage *);
|
||||
BMessage* SelectionMessage();
|
||||
uint32 SelectionCommand() const;
|
||||
void SetSelectionMode(list_view_type); // list_view_type is defined in ListView.h.
|
||||
list_view_type SelectionMode() const;
|
||||
void Deselect(BRow* row);
|
||||
void AddToSelection(BRow* row);
|
||||
void DeselectAll();
|
||||
BRow* CurrentSelection(BRow* lastSelected = 0) const;
|
||||
virtual void SelectionChanged();
|
||||
virtual void SetSelectionMessage(BMessage* message);
|
||||
BMessage* SelectionMessage();
|
||||
uint32 SelectionCommand() const;
|
||||
void SetSelectionMode(list_view_type type);
|
||||
// list_view_type is defined in ListView.h.
|
||||
|
||||
// Sorting
|
||||
void SetSortingEnabled(bool);
|
||||
bool SortingEnabled() const;
|
||||
void SetSortColumn(BColumn *column, bool add, bool ascending);
|
||||
void ClearSortColumns();
|
||||
void SetSortingEnabled(bool);
|
||||
bool SortingEnabled() const;
|
||||
void SetSortColumn(BColumn* column, bool add,
|
||||
bool ascending);
|
||||
void ClearSortColumns();
|
||||
|
||||
// The status view is a little area in the lower left hand corner.
|
||||
void AddStatusView(BView *view);
|
||||
BView* RemoveStatusView();
|
||||
void AddStatusView(BView* view);
|
||||
BView* RemoveStatusView();
|
||||
|
||||
// Column Manipulation
|
||||
void AddColumn(BColumn*, int32 logicalFieldIndex);
|
||||
void MoveColumn(BColumn*, int32 index);
|
||||
void RemoveColumn(BColumn*);
|
||||
int32 CountColumns() const;
|
||||
BColumn* ColumnAt(int32 index) const;
|
||||
void SetColumnVisible(BColumn*, bool isVisible);
|
||||
void SetColumnVisible(int32, bool);
|
||||
bool IsColumnVisible(int32) const;
|
||||
void SetColumnFlags(column_flags flags);
|
||||
void AddColumn(BColumn* column,
|
||||
int32 logicalFieldIndex);
|
||||
void MoveColumn(BColumn* column, int32 index);
|
||||
void RemoveColumn(BColumn* column);
|
||||
int32 CountColumns() const;
|
||||
BColumn* ColumnAt(int32 index) const;
|
||||
void SetColumnVisible(BColumn* column,
|
||||
bool isVisible);
|
||||
void SetColumnVisible(int32, bool);
|
||||
bool IsColumnVisible(int32) const;
|
||||
void SetColumnFlags(column_flags flags);
|
||||
|
||||
// Row manipulation
|
||||
const BRow* RowAt(int32 index, BRow *parent = 0) const;
|
||||
BRow* RowAt(int32 index, BRow *parent = 0);
|
||||
const BRow* RowAt(BPoint) const;
|
||||
BRow* RowAt(BPoint);
|
||||
bool GetRowRect(const BRow *row, BRect *outRect) const;
|
||||
bool FindParent(BRow *row, BRow **outs_parent, bool *out_isVisible) const;
|
||||
int32 IndexOf(BRow *row);
|
||||
int32 CountRows(BRow *parent = 0) const;
|
||||
void AddRow(BRow*, BRow *parent = 0);
|
||||
void AddRow(BRow*, int32 index, BRow *parent = 0);
|
||||
|
||||
void ScrollTo(const BRow* Row);
|
||||
void ScrollTo(BPoint point);
|
||||
const BRow* RowAt(int32 index, BRow *parent = 0) const;
|
||||
BRow* RowAt(int32 index, BRow *parent = 0);
|
||||
const BRow* RowAt(BPoint) const;
|
||||
BRow* RowAt(BPoint);
|
||||
bool GetRowRect(const BRow* row, BRect* _rect) const;
|
||||
bool FindParent(BRow* row, BRow** _parent,
|
||||
bool *_isVisible) const;
|
||||
int32 IndexOf(BRow* row);
|
||||
int32 CountRows(BRow* parent = 0) const;
|
||||
void AddRow(BRow* row, BRow* parent = NULL);
|
||||
void AddRow(BRow* row, int32 index,
|
||||
BRow* parent = NULL);
|
||||
|
||||
void ScrollTo(const BRow* Row);
|
||||
void ScrollTo(BPoint point);
|
||||
|
||||
// Does not delete row or children at this time.
|
||||
// todo: Make delete row and children
|
||||
void RemoveRow(BRow*);
|
||||
void RemoveRow(BRow* row);
|
||||
|
||||
void UpdateRow(BRow*);
|
||||
void Clear();
|
||||
void UpdateRow(BRow* row);
|
||||
void Clear();
|
||||
|
||||
// Appearance (DEPRECATED)
|
||||
void GetFont(BFont* font) const {BView::GetFont(font);}
|
||||
virtual void SetFont(const BFont *font, uint32 mask = B_FONT_ALL);
|
||||
virtual void SetHighColor(rgb_color);
|
||||
void SetSelectionColor(rgb_color);
|
||||
void SetBackgroundColor(rgb_color);
|
||||
void SetEditColor(rgb_color);
|
||||
const rgb_color SelectionColor() const;
|
||||
const rgb_color BackgroundColor() const;
|
||||
const rgb_color EditColor() const;
|
||||
void GetFont(BFont* font) const
|
||||
{ BView::GetFont(font); }
|
||||
virtual void SetFont(const BFont* font,
|
||||
uint32 mask = B_FONT_ALL);
|
||||
virtual void SetHighColor(rgb_color);
|
||||
void SetSelectionColor(rgb_color);
|
||||
void SetBackgroundColor(rgb_color);
|
||||
void SetEditColor(rgb_color);
|
||||
const rgb_color SelectionColor() const;
|
||||
const rgb_color BackgroundColor() const;
|
||||
const rgb_color EditColor() const;
|
||||
|
||||
// Appearance (NEW STYLE)
|
||||
void SetColor(ColumnListViewColor color_num, rgb_color color);
|
||||
void SetFont(ColumnListViewFont font_num, const BFont* font, uint32 mask = B_FONT_ALL);
|
||||
rgb_color Color(ColumnListViewColor color_num) const;
|
||||
void GetFont(ColumnListViewFont font_num, BFont* font) const;
|
||||
void SetColor(ColumnListViewColor colorIndex,
|
||||
rgb_color color);
|
||||
void SetFont(ColumnListViewFont fontIndex,
|
||||
const BFont* font,
|
||||
uint32 mask = B_FONT_ALL);
|
||||
rgb_color Color(ColumnListViewColor colorIndex) const;
|
||||
void GetFont(ColumnListViewFont fontIndex,
|
||||
BFont* font) const;
|
||||
|
||||
BPoint SuggestTextPosition(const BRow* row, const BColumn* column=NULL) const;
|
||||
BPoint SuggestTextPosition(const BRow* row,
|
||||
const BColumn* column = NULL) const;
|
||||
|
||||
void SetLatchWidth(float width);
|
||||
float LatchWidth() const;
|
||||
virtual void DrawLatch(BView*, BRect, LatchType, BRow*);
|
||||
virtual void MakeFocus(bool isfocus = true);
|
||||
void SaveState(BMessage *msg);
|
||||
void LoadState(BMessage *msg);
|
||||
void SetLatchWidth(float width);
|
||||
float LatchWidth() const;
|
||||
virtual void DrawLatch(BView* view, BRect frame,
|
||||
LatchType type, BRow* row);
|
||||
virtual void MakeFocus(bool isfocus = true);
|
||||
void SaveState(BMessage* archive);
|
||||
void LoadState(BMessage* archive);
|
||||
|
||||
BView* ScrollView() const { return (BView *)fOutlineView; }
|
||||
void SetEditMode(bool state);
|
||||
void Refresh();
|
||||
BView* ScrollView() const
|
||||
{ return (BView*)fOutlineView; }
|
||||
void SetEditMode(bool state);
|
||||
void Refresh();
|
||||
|
||||
protected:
|
||||
virtual void MessageReceived(BMessage *message);
|
||||
virtual void KeyDown(const char *bytes, int32 numBytes);
|
||||
virtual void AttachedToWindow();
|
||||
virtual void WindowActivated(bool active);
|
||||
virtual void Draw(BRect);
|
||||
virtual void MessageReceived(BMessage* message);
|
||||
virtual void KeyDown(const char* bytes, int32 numBytes);
|
||||
virtual void AttachedToWindow();
|
||||
virtual void WindowActivated(bool active);
|
||||
virtual void Draw(BRect updateRect);
|
||||
|
||||
private:
|
||||
rgb_color fColorList[B_COLOR_TOTAL];
|
||||
BPrivate::TitleView* fTitleView;
|
||||
BPrivate::OutlineView* fOutlineView;
|
||||
BList fColumns;
|
||||
BScrollBar* fHorizontalScrollBar;
|
||||
BScrollBar* fVerticalScrollBar;
|
||||
BList fSortColumns;
|
||||
BView* fStatusView;
|
||||
BMessage* fSelectionMessage;
|
||||
bool fSortingEnabled;
|
||||
float fLatchWidth;
|
||||
border_style fBorderStyle;
|
||||
rgb_color fColorList[B_COLOR_TOTAL];
|
||||
BPrivate::TitleView* fTitleView;
|
||||
BPrivate::OutlineView* fOutlineView;
|
||||
BList fColumns;
|
||||
BScrollBar* fHorizontalScrollBar;
|
||||
BScrollBar* fVerticalScrollBar;
|
||||
BList fSortColumns;
|
||||
BView* fStatusView;
|
||||
BMessage* fSelectionMessage;
|
||||
bool fSortingEnabled;
|
||||
float fLatchWidth;
|
||||
border_style fBorderStyle;
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif // _COLUMN_LIST_VIEW_H
|
||||
|
||||
Reference in New Issue
Block a user