78 lines
1.9 KiB
C++
78 lines
1.9 KiB
C++
/*
|
|
* Copyright 2008 Ralf Schülke, ralf.schuelke@googlemail.com.
|
|
* Copyright 2010 Adam Smith <adamd.smith@utoronto.ca>
|
|
* Copyright 2014 Haiku, Inc. All rights reserved.
|
|
*
|
|
* Distributed under the terms of the MIT License.
|
|
*
|
|
* Authors:
|
|
* Ralf Schülke, ralf.schuelke@googlemail.com
|
|
* John Scipione, jscipione@gmail.com
|
|
* Adam Smith, adamd.smith@utoronto.ca
|
|
*/
|
|
#ifndef PAIRS_VIEW_H
|
|
#define PAIRS_VIEW_H
|
|
|
|
|
|
#include <ObjectList.h>
|
|
#include <View.h>
|
|
|
|
|
|
const uint8 kSmallIconSize = 32;
|
|
const uint8 kMediumIconSize = 64;
|
|
const uint8 kLargeIconSize = 128;
|
|
|
|
const uint32 kMsgCardButton = 'card';
|
|
|
|
|
|
class BBitmap;
|
|
class PairsButton;
|
|
|
|
|
|
class PairsView : public BView {
|
|
public:
|
|
PairsView(BRect frame, const char* name,
|
|
uint8 rows, uint8 cols, uint8 iconSize);
|
|
|
|
virtual ~PairsView();
|
|
virtual void AttachedToWindow();
|
|
virtual void Draw(BRect updateRect);
|
|
virtual void FrameResized(float newWidth, float newHeight);
|
|
|
|
virtual void CreateGameBoard();
|
|
|
|
int32 Rows() const { return fRows; };
|
|
int32 Cols() const { return fCols; };
|
|
BObjectList<PairsButton>* PairsButtonList() const
|
|
{ return fPairsButtonList; };
|
|
|
|
int32 GetIconPosition(int32 index);
|
|
|
|
int32 IconSize() const { return fIconSize; };
|
|
void SetIconSize(int32 size) { fIconSize = size; };
|
|
|
|
int32 Spacing() const { return fIconSize / 6; };
|
|
|
|
private:
|
|
void _GenerateCardPositions();
|
|
void _ReadRandomIcons();
|
|
void _SetPairsBoard();
|
|
void _SetPositions();
|
|
|
|
uint8 fRows;
|
|
uint8 fCols;
|
|
uint8 fIconSize;
|
|
int32 fButtonsCount;
|
|
int32 fCardsCount;
|
|
BObjectList<PairsButton>* fPairsButtonList;
|
|
BObjectList<BBitmap>* fSmallBitmapsList;
|
|
BObjectList<BBitmap>* fMediumBitmapsList;
|
|
BObjectList<BBitmap>* fLargeBitmapsList;
|
|
int32* fRandomPosition;
|
|
int32* fPositionX;
|
|
int32* fPositionY;
|
|
};
|
|
|
|
|
|
#endif // PAIRS_VIEW_H
|